function validate_has_target()
{
	form = document.getElementById('upload_form');

	if (form.elements['files'] && form.elements['files'].value.length)
	{
		return true;
	}
	if (form.elements['ftp_http'] && form.elements['ftp_http'].value.length)
	{
		return true;
	}
	return false;
}

function is_remote_upload()
{
	var form = document.getElementById('upload_form');
	return !form['files'].value.length && !!form['ftp_http'].value.length;
}

function adjust_form_action()
{
	var form = document.getElementById('upload_form');
	if (!is_remote_upload())
	{
		form.action = file_upload_action;
		return;
	}
	form.action = file_upload_action_remote;
}

function add_padding()
{
	if(!document.getElementById('upload_form').elements['padding'])
	{
		var o = document.createElement('input');
		o.type = 'hidden';
		o.name = 'padding';
		for(i=0;i<=3000;i++)
		{
			o.value = o.value+' ';
		}
		document.getElementById('upload_form').appendChild(o);
	}
}

function check_form()
{
	if (!validate_has_target())
	{
		alert(msg_file_one_of);
		return false;
	}

	adjust_form_action();
	generate_upload_id();
	add_padding();
	begin_progress_bar(5);
	return true;
}

var generate_upload_id_allowed_chars = '1234567890qwertyuiopasdfghjklzxcvbnm';
var file_upload_id = '';
function generate_upload_id()
{
	var dt = new Date();
	var upload_id = Math.round(dt.getTime()/1000).toString();

	for(i=0;i<32;i++)
	{
		var idx = Math.round(Math.random() * generate_upload_id_allowed_chars.length);
		upload_id += generate_upload_id_allowed_chars.charAt(idx);
	}
	file_upload_id = upload_id;
	document.getElementById('upload_form').elements['UPLOAD_IDENTIFIER'].value = file_upload_id;

	var form_action = document.getElementById('upload_form').action;
	if (-1 != form_action.indexOf('X-Progress-ID'))
	{
		document.getElementById('upload_form').action = form_action.replace(/\=.*/, '=') + file_upload_id;
	}
}

var every_timeout = 0;
var every_msec = 0;
var every_flag = true;

function hide_form()
{
	document.getElementById('upload_start_block').style.display = "none";
}

function show_form()
{
	document.getElementById('upload_start_block').style.display = "";
	if(document.getElementById('show_extendend_fields_link_block'))
		document.getElementById('show_extendend_fields_link_block').style.display = "";

	document.getElementById('upload_progress_block').style.display="none";
	document.getElementById('upload_done_block').style.display="none";
	document.getElementById('upload_abort_link').style.display="none";
	document.getElementById('upload_another_link').style.display="none";

	if(clipboards.length>0)
	{
		clipboards['download_link'].hide();
		clipboards['forum_tag'].hide();
		clipboards['blog_tag'].hide();
		clipboards['delete_link'].hide();
	}

	progress_bar_reset();
	every_flag = true;
	reset_iframe();
}

function show_bar()
{
	if(!every_flag) return;
	document.getElementById('upload_progress_block').style.display="";

	if(document.getElementById('show_extendend_fields_link_block'))
		document.getElementById('show_extendend_fields_link_block').style.display="none";

	document.getElementById('upload_abort_link').style.display='';
}

function reset_iframe()
{
	document.getElementById('uploadframe_span').innerHTML = '<iframe name="uploadframe" style="display:inline;margin:0;padding:0;height:0;width:0;" width="0" height="0" frameborder="0"></iframe>';
}

var bar_data = null;
function every_func_ajax_callback(data)
{
	bar_data = progress_bar_nginx_data(data);
	progress_bar_update(bar_data);
}

function every_func()
{
	if(!every_flag) return;
	cur = new Date();
	url = file_upload_check_dir;
	if ((-1 == url.indexOf('X-Progress-ID')) || is_remote_upload())
	{
		if (is_remote_upload())
		{
			url = file_upload_check_dir_remote;
		}
		url += '/upt_'+file_upload_id+'.txt?time='+cur.getTime();
		req_send(url,
			 function(text)
			 {
				 bar_data = progress_bar_parse_str(text);
				 progress_bar_update(bar_data);
				 req_clear();
			 }
		);
	}
	else
	{
		url += file_upload_id;
		req_send_subdomain(url, 'every_func_ajax_callback');
	}
	if (bar_data && bar_data.is_done)
	{
		return;
	}
	every_timeout = setTimeout(every_func, every_msec);

}

function get_name_of_file()
{
	form = document.getElementById('upload_form');

	with (form.elements['files'])
	{
		if (value.length)
		  {
				return value;
		  }
	}
	with (form.elements['ftp_http'])
	{
		if (value.length)
		  {
				return value;
		  }
	}
	 return 'Error!';
}

var speed_timer = null;
var speed_interval = 200;
var bar_data = null;
var bar_data_prev_total = 0;
speed_updater_flag = true;
function speed_updater()
{
	if(!speed_updater_flag) return;
	if (!bar_data)
	{
		return;
	}
	if(bar_data.bytes_total < bar_data_prev_total)
	{
		return;
	}
	new_bytes_uploaded= parseInt(bar_data.bytes_uploaded) + Math.round(bar_data.speed_average*speed_interval/1000.0);
	if (new_bytes_uploaded >= bar_data.bytes_total)
	{
		new_bytes_uploaded = bar_data.bytes_total;
		return;
	}
	bar_data_prev_total = bar_data.bytes_total;
	bar_data.bytes_uploaded = new_bytes_uploaded;

	progress_bar_update(bar_data);
}
function speed_run()
{
	speed_timer = setInterval(speed_updater, speed_interval);
}
function speed_stop()
{
	speed_updater_flag = false;
	clearInterval(speed_timer);
}

function begin_progress_bar(sec)
{
	progress_bar_nginx_start();
	every_msec = sec*1000;
	clearTimeout(every_timeout);
	every_timeout = setTimeout(every_func, every_msec);
	speed_run();
	hide_form();
	show_bar();
}
function goto_gold()
{
	document.location.href=http_abs_path+'/gold.php';
}
function stop_progress_bar()
{
	every_flag=false;
	clearTimeout(every_timeout);
	document.getElementById('upload_progress_block').style.display = "none";
	document.getElementById('upload_abort_link').style.display= "none";

	document.getElementById('upload_another_link').style.display = "";
}

var clipboards = new Array();
var addthis_share = {};
function upload_done()
{
	var max_url_length = 55;

	document.getElementById('upload_done_download_url_link').value=ud_download_url;
	document.getElementById('upload_done_download_url_forum_tag').value='[b][URL='+ud_download_url+']'+ud_download_url+'[/URL][/b]';
	document.getElementById('upload_done_download_url_blog_tag').value='<b><a href="'+ud_download_url+'">'+ud_download_url+'</a></b>';
	document.getElementById('upload_done_delete_url_link').value=ud_delete_url

	if(clipboards.length == 0)
	{
		clipboards['download_link'] = new ZeroClipboard.Client();
		clipboards['download_link'].setHandCursor( true );
		clipboards['download_link'].addEventListener('onComplete',function(){document.getElementById('upload_done_download_url_link').select();});

		clipboards['forum_tag'] = new ZeroClipboard.Client();
		clipboards['forum_tag'].setHandCursor( true );
		clipboards['forum_tag'].addEventListener('onComplete',function(){document.getElementById('upload_done_download_url_forum_tag').select();});

		clipboards['blog_tag'] = new ZeroClipboard.Client();
		clipboards['blog_tag'].setHandCursor( true );
		clipboards['blog_tag'].addEventListener('onComplete',function(){document.getElementById('upload_done_download_url_blog_tag').select();});

		clipboards['delete_link'] = new ZeroClipboard.Client();
		clipboards['delete_link'].setHandCursor( true );
		clipboards['delete_link'].addEventListener('onComplete',function(){document.getElementById('upload_done_delete_url_link').select();});
	}
	clipboards['download_link'].setText(document.getElementById('upload_done_download_url_link').value);
	clipboards['forum_tag'].setText(document.getElementById('upload_done_download_url_forum_tag').value);
	clipboards['blog_tag'].setText(document.getElementById('upload_done_download_url_blog_tag').value);
	clipboards['delete_link'].setText(document.getElementById('upload_done_delete_url_link').value);

	stop_progress_bar();
	hide_form();

	document.getElementById('upload_done_block').style.display = "";


	clipboards['download_link'].glue('btn_copy_download_url_link');
	clipboards['download_link'].show();
	clipboards['forum_tag'].glue('btn_copy_download_url_forum_tag');
	clipboards['forum_tag'].show();
	clipboards['blog_tag'].glue('btn_copy_download_url_blog_tag');
	clipboards['blog_tag'].show();
	clipboards['delete_link'].glue('btn_copy_delete_url_link');
	clipboards['delete_link'].show();



	$('#upload_done_block .addthis_toolbox').attr({"addthis:url":ud_download_url, "addthis:title":"depositfiles.com"});
	addthis.toolbox(".addthis_toolbox");

	reset_iframe();


}

var ue_fields = false;
function upload_error()
{
	stop_progress_bar();
	reset_form_errors();
	for(var i=0; i<ue_fields.length; i++)
	{
		if (ue_messages[ue_fields[i]])
		{
			if(document.getElementById('error_' + ue_fields[i]))
			{
				document.getElementById('error_' + ue_fields[i]).innerHTML = ue_messages[ue_fields[i]];
				document.getElementById('error_' + ue_fields[i]).style.display = "";
			}
			else
			{
				alert(ue_fields[i] + ': ' + ue_messages[ue_fields[i]]);
			}
		}
	}
	show_form();
}
function upload_another_file()
{
	document.getElementById('upload_form').reset();
	reset_form_errors();
	show_form();
}
function reset_form_errors()
{
	if(!ue_fields)
	{
		return;
	}
	for(var i=0; i<ue_fields.length; i++)
	{
		if(document.getElementById('error_' + ue_fields[i]))
			document.getElementById('error_' + ue_fields[i]).style.display = "none";
	}
}