﻿var time_passed = 0; // The upload time passed

function escapeHtml(unsafe) {
  return unsafe
      .replace(/'/g, ".")
      .replace(/</g, ".")
      .replace(/>/g, ".");
}

function addTime(){
	time_passed++;
}

$(function () {
	var time = "";
	var active_upload = false;
	
	$("#file_data").hide(0);
	$('#rules').click(function() {
		if ($('#rules').is(':checked'))
			$("#file_data").show(500);
		else
			$("#file_data").hide(500);
	});
    $('#fileupload').fileupload({
        dataType: 'json',
        url: 'upload/index.php',
		send: function(e, data){
			if (!data.files[0].name.match(/(\.|\/)(gif|jpeg|png|zip|rar|avi|flv|jpg|wmv|bmp|doc|mp3|mp4|pdf)$/i)){
				alert("הקובץ לא נתמך");
				return false;
			}
			$("#progContain").show(200);
			time = setInterval("addTime()",1000);
			active_upload = true;
		},
		fail: function (e,data){
			alert("Error: " + data.errorThrown);
		},
        done: function (e, data) {
			var new_name = "";
			var end_html = "";
			var file = data.files[0];
			//file.name = escapeHtml(file.name);
			new_name = e.timeStamp + "_" + escapeHtml(file.name);
	
			$("#progress").css("width","100%");
			$("#percent").html("<span>התקדמות: </span> 100%");
			
			// Change file name - check!
			$.post("file.php", { op: "Change", old_name: file.name, new_name: new_name },
				function(data) {
					//alert("changed");
			}); 
			
			$.post("file.php", { op: "AddFile", name: new_name, size: file.size },
				function(data) {
					$("#rules").attr("disabled","disabled");
					$("#file_data").hide(300);
					end_html = "<p><span class='strong'>הקובץ: </span>" + file.name + "</p><p class='strong'>הועלה בהצלחה!</p>";
					end_html += "<p>לינק להורדה: <a href=\"file.php?op=download&name="+new_name+"\">הורדה</a></p>";
					$("#upload_end").html(end_html);
					active_upload = false;
			}); 
        },
		progress: function (e, data) {	
			var to_mb = (1024*1024);
			var to_kb = 1024;
			var progress = parseInt(data.loaded / data.total * 100, 10);
			var data_left = parseInt((data.total - data.loaded) / to_kb,10);
			$("#progress").css("width",progress + "%");
			$("#time").html("<span>זמן נותר: </span>" + time_left(time_passed,data.loaded / to_kb,data_left));
			$("#percent").html("<span>התקדמות: </span>" + progress + "%");
			$("#size").html("<span>הועלו: </span>" + parseInt(data.loaded / to_mb) + "MB <span>מתוך: </span>" + parseInt(data.total / (1024*1024)) + "MB");
		}
    });
	
	var inFormOrLink;
	$('a').live('click', function() { inFormOrLink = true; });
	$('form').bind('submit', function() { inFormOrLink = true; });

	$(window).bind("beforeunload", function() { 
		if(active_upload)
			return inFormOrLink || confirm("Upload in progress, Do you really want to close?"); 
	})

});

function time_left(time_passed, data_loaded, data_left){
	var remaining_time = 0;
	var mb_per_sec = 0;
	var code = "00:00";
	if (time_passed > 0){
		mb_per_sec = data_loaded / time_passed;
		remaining_time = data_left / mb_per_sec;
		remaining_time = parseInt(remaining_time,10);
		code = parseInt(remaining_time / 60) + ":" + parseInt(remaining_time % 60);
	}
	return code;
}

// Download section
$(document).ready(function() {
	$("#costdata").hide();
	
	$("#downtype a").click(function() {
		var type = $(this).attr("type");
		$("#downtype").hide(200);
		if(type == "free"){
			$("#downdata").html("זמן נותר להמתנה: <span id='timeleft'></span>");
			setTimer("timeleft");
		}
		else{
			$("#costdata").show(200);
		}
	});
	
	$(".btnPass").click(function() {
		//alert($(".txtPass").val());
		var mcode = $("#downdata").attr("code");
		var mpass = $(".txtPass").val();
		// DO AJAX CHECK
		$.post("file.php", { op: "downloadRequestPass", code: mcode, pass: mpass},
		   function(data) {
				if(data <= 0){
					alert("הסיסמא שגוייה או שפג תוקפה");
				}
				//location.href="file.php?op=downloadRequest&code="+mcode;
				//alert(data);
		   });
	});
});

var time = 30;
var interval;

function printTimer(item){
	if(time >= 0){
		$("#"+item).html(time + " <span>שניות</span>");
		time--;
	}
	else{
		$("#downdata").html("<a href='file.php?op=downloadRequest&code="+ $("#downdata").attr("code") +"'>הורד קובץ</a>");
		clearInterval(interval);
	}
}

function setTimer(item){
	interval = setInterval("printTimer('"+item+"')", 1000);
}
