function getLink(){
	postFileDetails();
}

function postFileDetails(){
	url = "/upload/file";
	params = $('details').serialize(true);
	params['ajax'] = 'true';
	new Ajax.Request(url, {
		method: 'POST',
		parameters: params,
		onSuccess: function(transport) {
			$('linkD').show();
			$('uploadD').hide();;
			$('link').update(transport.responseText);
		}
	});
}


function submitFrm(frmId, resId, hidId){
	url = location.href;
	params = $(frmId).serialize(true);
	params['ajax'] = 'true';
	new Ajax.Request(url, {
		method: 'POST',
		parameters: params,
		onSuccess: function(transport) {
			$(resId).update(transport.responseText);
			if(hidId!='') $(hidId).hide();
		}
	});
	return false;
}

function toggleAddForm() {
	$('additionForm').toggle();
}

function sendRegForm() {
	var form = document.getElementById('regData');
	form.submit();

}
function startWatch(){
	params = $('F2').serialize(true);
	if(params['filex1']=='') return false;

	$('uploadD').hide();
	$('progressBar').show();
	generateSID();
	var now = new Date();
	startTime = now.getTime();
	window.setTimeout("mrequest(" + UID + ")", 1000);
	return true;
}

function generateSID()
{
	UID = Math.round(10000*Math.random())+'0'+Math.round(10000*Math.random());
	var f1=document.getElementById('F2');
	f1.action = f1.action.split('?')[0]+'?X-Progress-ID='+UID;
}

function finished(down, del){
	$('linkD').show();
	$('progressBar').hide();
	$('link').update(down);
	$('linkDel').update(del);
}

function submitBadFile(){
	var url = window.location.href;
	params = $('frmDown').serialize(true);
	params['mode'] = 'abuse';
	new Ajax.Request(url, {
		method: 'POST',
		parameters: params,
		onSuccess: function(transport) {
			$('badFile').update("Спасибо, ваша жалоба будет рассмотрена в ближайшее время.");
		}
	});

}

function sRound(num, count){
	num = Math.round(num * Math.pow(10, count)) / Math.pow(10, count);
	return num;
}

function setP(delta, totalB){
	cur = $('bytes').innerHTML;
	fake = parseInt(cur) + delta;
	fakePrc = Math.round((fake/totalB)*100);

	if(fakePrc<100){
		$('prc').update(fakePrc);
		$('bytes').update(Math.round(fake));
		$('bytesS').update(sRound(fake/1048576, 2)+" Мб");
		timeout = window.setTimeout("setP(" + delta + ", " + totalB + ")", 500);
		$('pgrs').style.width = 300 * fakePrc/100;
	}
}

function secsToString(secs){
	ret = '';
	if(secs>3600) {
		ret += Math.floor(secs/3600) + " ч ";
		secs = secs - Math.floor(secs/3600)*3600; 
	}
	if(secs>60) {
		ret += Math.floor(secs/60) + " мин ";
		secs = secs - Math.floor(secs/60)*60; 
	}
	ret += secs + " сек";
	return ret;
}

function updateP(ev){
	var upload = eval(ev);

	if(upload.state=='uploading') {
		$('state').update('Закачка');
		uploadedB = upload.received;
		totalB = upload.size;

		var now = new Date();
		td = now.getTime() - startTime;
		tds = Math.round((totalB-uploadedB)/(uploadedB/(td/1000)));
		tds = secsToString(tds);

		$('speed').update(Math.round( (uploadedB/1024) / (td/1000) ));
		$('time').update(tds);
		

		if(uploadedB > $('bytes').innerHTML) {
			Prc = Math.round((uploadedB/totalB)*100);
			$('prc').update(Prc);
			$('pgrs').style.width = 300 * Prc/100;
			

			delta = uploadedB - $('bytes').innerHTML;
			$('bytes').update(uploadedB);
			$('bytesS').update(sRound(uploadedB/1048576, 2)+" Мб");
			window.setTimeout("setP(" + delta/4 + ", " + totalB + ")", 500);
		}
	}
	if(upload.state=='error'){
		if(upload.status=='413') { $('state').update('Ошибка, файл слишком большой.'); } else {	$('state').update('Ошибка!');}
		if(typeof(timeout)!='undefined') window.clearTimeout(timeout);
	}
	if(upload.state=='done'){
		$('state').update('Закончено');
		if(typeof(timeout)!='undefined') window.clearTimeout(timeout);
	}
	if(upload.state=='starting'){
		$('state').update('Ожидание');
	}
	if(upload.state=='unsupported'){
		$('state').update('Индикатор закачки временно не работает. Дождитесь окончания закачки.');
		if(typeof(timeout)!='undefined') window.clearTimeout(timeout);
	}

}

function mrequest(uid){
	var url = '/progress';
	var params = new Hash();
	params['X-Progress-ID'] = uid;
	new Ajax.Request(url, {
		method: 'GET',
		parameters: params,
		onSuccess: function(transport) {
			if(typeof(timeout)!='undefined') window.clearTimeout(timeout);
			timeout = window.setTimeout("mrequest(" + uid + ")", 2000);
			updateP(transport.responseText);
		}
	});

}

function generatePass(){
	var digit = new Array("0","1","2","3","4","5","6","7","8","9")
	var halp = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","Z")
	var lalp = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","y","z")

	passInp = document.getElementById('pass');
	passInpS = document.getElementById('passS');
	pasw = ""

	for (var i= 0; i<8; i++)
	{
		r = Math.random()
		if ( (r - 1.0/3.0) < 0.0)
		{
			r = Math.floor(Math.random() * 9);
			pasw += digit[r]
		}
		else if ( (r - 2.0/3.0) < 0.0)
		{
			r = Math.floor(Math.random() * 24);
			pasw += halp[r]
		}
		else
		{
			r = Math.floor(Math.random() * 24);
			pasw += lalp[r]
		}
	}

	passInpS.value=pasw;
	passInp.style.display="none";
	passInpS.style.display="inline";
}