var cancel = false;
var file_size;
var total_size = 0;
var total_loaded = 0;
var queue = 0;
var temp_total_size = 0;
var temp_bytes_loaded = 0;
var files_to_upload = new Object();
var files_id = new Object();
var files_progress_info = new Array();
var files_to_remote_upload = new Array();
var file_id;
var url_current;
var file_current = 0;
var current_file_size = 0;
var id_mod = 0;
var current = new Object();
var files_urls = new Array();

var total_precent_corection = 3;

function add_from_list(){
	
	if ($('#files_to_load').val()) {
		$('#button_add_box').hide();
				$('#add_from_box_error').hide();
		$.getJSON(url_base + "remote_upload/add_from_list", {
			urls: $('#files_to_load').val()
		
		
		}, function(json){
			for (i = 0; i < json.url.length; i++) {
				add_to_upload_box(json.url[i]);
			}
			$('#files_to_load').val('');
			$('#div_add_from_box').hide();
			
			
		});
	}else{
		$('#add_from_box_error').show();
	}
}
function add_to_upload_box(url){

    var file_url = url;
    if (!file_url) {
        $('#same_url_error').hide();
		 $('#zero_files_error').hide();
        $('#wrong_url_error').show();
        return false;
    }
    else {
		    $('#same_url_error').hide();
		 $('#zero_files_error').hide();
       
        $('#wrong_url_error').hide();
    }
   	if(file_url.search('http://') == -1&&file_url.search('https://') == -1&&file_url.search('ftp://') == -1) {
			file_url='http://'+file_url;
	}


    if (files_urls[file_url]) {
		    $('#same_url_error').show();
		 $('#zero_files_error').hide();
        $('#wrong_url_error').hide();
      
         return false;
    }
    else {
				    $('#same_url_error').hide();
		 $('#zero_files_error').hide();
       
        $('#wrong_url_error').hide();
    }
    
    if (queue == 5) {
        $('#wraper2').hide();
    }
    queue = queue + 1;
    var queued_file = 'file_' + queue;
    files_urls[file_url] = queued_file;
    files_id[queued_file] = file_url;
    files_to_upload
    //alert(file_id.value);
    $("#wraper").clone().insertBefore("#wraper2").attr('id', queued_file).show();
    if (file_url.length > 50) {
        $(".file_name_multi_" + queue).html(file_url.substr(0, 50) + '...');
        $('#' + queued_file + ">.progressContainer > .progressName").html(file_url.substr(0, 50) + '...');
    }
    else {
        $(".file_name_multi_" + queue).html(file_url);
        $('#' + queued_file + " > .progressContainer > .progressName").html(file_url);
    }
    $('#' + queued_file + ">.progressCancel").show();
    $('#' + queued_file + ">.info_toggle").show();
    $('#' + queued_file + ">.back_top").show();
    $('#file_to_big').hide();
    $('#zero_files_error').hide();
    $('#file_url').attr('value','');
}


function add_to_upload(){

    var file_url = $('#file_url').attr('value');
    if (!file_url) {
        $('#same_url_error').hide();
		 $('#zero_files_error').hide();
        $('#wrong_url_error').show();
        return false;
    }
    else {
		    $('#same_url_error').hide();
		 $('#zero_files_error').hide();
       
        $('#wrong_url_error').hide();
    }
   	if(file_url.search('http://') == -1&&file_url.search('https://') == -1&&file_url.search('ftp://') == -1) {
			file_url='http://'+file_url;
	}
    

    if (files_urls[file_url]) {
		    $('#same_url_error').show();
		 $('#zero_files_error').hide();
        $('#wrong_url_error').hide();
      
         return false;
    }
    else {
				    $('#same_url_error').hide();
		 $('#zero_files_error').hide();
       
        $('#wrong_url_error').hide();
    }
    
    if (queue == 5) {
        $('#wraper2').hide();
    }
    queue = queue + 1;
    var queued_file = 'file_' + queue;
    files_urls[file_url] = queued_file;
    files_id[queued_file] = file_url;
    files_to_upload
    //alert(file_id.value);
    $("#wraper").clone().insertBefore("#wraper2").attr('id', queued_file).show();
    if (file_url.length > 50) {
        $(".file_name_multi_" + queue).html(file_url.substr(0, 50) + '...');
        $('#' + queued_file + ">.progressContainer > .progressName").html(file_url.substr(0, 50) + '...');
    }
    else {
        $(".file_name_multi_" + queue).html(file_url);
        $('#' + queued_file + " > .progressContainer > .progressName").html(file_url);
    }
    $('#' + queued_file + ">.progressCancel").show();
    $('#' + queued_file + ">.info_toggle").show();
    $('#' + queued_file + ">.back_top").show();
    $('#file_to_big').hide();
    $('#zero_files_error').hide();
    $('#file_url').attr('value','');
}

function checkURL(value){
    var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}[0-9A-Za-z\.\-]*\.[0-9A-Za-z\.\-]*$");
    if (urlregex.test(value)) {
        return (true);
    }
    return (false);
};

function show_add_file(){
    $('#wraper2').show();
};
function cancelRemoteFileUpload(id){
    $("#waiting_" + id).hide();
    if (queue == 5) {
        show_add_file();
    }
    delete files_urls[files_id[id]];
    delete files_id[id];
    queue--;
    //createProgress(file);

};
function beginUpload(){
    $('#start_upload').hide();
    var $i = 0;
    jQuery.each(files_id, function(file_id, url){
        var progress_id = file_id.replace('file_', '');
        files_to_remote_upload.push(file_id);
        $('#progress_wraper_' + progress_id + '> .waiting').show();
    });
    
    $('.progressWrapper').hide();
    $('#title_start').hide();
    $('.sepleft').hide();
    $('.progressContainer').hide();
    $('#spanButtonPlaceholder').hide();
    $("#upload_pattern").show();
    current = files_to_remote_upload.shift();
    var progress_id = current.replace('file_', '');
    
    file_current = progress_id;
    url_current = files_id[current];
    
    showProgress();
    $('#progress_wraper_' + file_current + '> .waiting').hide();
    $('#progress_wraper_' + file_current + '> .progress').show();
    uploadStart();
    
    
    //var progress_id = file_id.replace('file_', '');

}

var remote_timecount;
var remote_timeout;
function setError(msg){
    $('#progress_wraper_' + file_current + '> .waiting').show();
    $('#progress_wraper_' + file_current + '> .progress').hide();
    setStatus(msg);
    clearTimeout(remote_timeout);
    queue--;
    if (queue) {
        delete files_id[current];
        beginUpload();
    }
    
    
}
var file_size;
function showProgress(){
    //
    remote_timeout = setTimeout("showProgress()", 2500);
    $.getJSON(url_base + "remote_upload/get_progress", {
        file_id: file_current,
        url: url_current,
    
    }, function(json){
	    
        $('#tdSizeUploaded_' + file_current).html(size_format(json.uploaded));
        $('#file_size_' + file_current).html(size_format(json.total_size));
        var percent = Math.ceil((json.uploaded / json.total_size) * 100);
		//alert(percent+$('#progress_img_' + file_current).attr('id'));
    $('#progress_img_' + file_current).css('width', percent * 4.5 + 'px');
        $('#tdPercentUploaded_' + file_current).html( percent+ '%');
        
        
        
    });
    
    
}

function sleep(milliseconds){
    var start = new Date().getTime();
    for (var i = 0; i < 1e7; i++) {
        if ((new Date().getTime() - start) > milliseconds) {
            break;
        }
    }
}


function uploadStart(){
	   $('#same_url_error').hide();
	  
		 $('#zero_files_error').hide();       
        $('#wrong_url_error').hide();
    setStatus("Rozpoczynanie uploadu");
    var inputs = $('#' + 'file_'+file_current + ' :input:not([name=password2])');
    var file_info_array = new Array();
    var file_info = new String();
    $('#speed_table').hide();
    inputs.each(function(key, val){
        file_info_array.push($(val).attr('name') + '=' + $(val).val());
    });
    if ($('#public').attr('checked')) {
        file_info_array.push('public=1');
    };
	file_info = file_info_array.join('&');
    $.ajax({
    
        method: "post",
        url: url_base + 'remote_upload/upload?file_id=' + file_current + '&url=' + url_current+'&'+file_info+'&no=' + file_current,
        id: "",
        data: "",
        success: function(html){
			clearTimeout(remote_timeout);
			if (html.length < 100) {				
				eval(html);
			}
			else if(queue) {
				$('#progress_wraper_'+file_current).html(html);				
				fileComplete();
			}
            
        }
    });
    return true;
};
function fileComplete(){
    queue--;
    if (queue) {
        delete files_id[current];
        beginUpload();
    }else{
		 $('#progress_start').hide();
	    $('.title2').hide();
	}
}

function set_size(file_id, size){
    $("#file_size_" + file_current).html(size_format(file.size));
}

function setProgress(uploaded, precent){
    $('#progress_wraper_' + file_current + '> .waiting').hide();
    $('#progress_wraper_' + file_current + '> .progress').show();
	$('#tdPercentUploaded_'+file_current).html(percentage+'%');

}

function setStatus(msg){
    $('#waiting_status_' + file_current).html(msg);
}

