startTime = new Array();
speed = new Array();
files = new Array();
var doneUploading = 0;
var queued = 0;
var savedFiles = 0;
function fileQueued(file) {
	var element = "<div id=\"" + file.id + "\">";
	element += '<div class="row" style="float: left;"><table style="float: right;">\n<tbody id="info' + file.id + '"><tr>\n<td width="75px" class="titleright">\nFile:</td>\n<td>\n<div class="uploadIcons"><a id="save' + file.id + '" onclick="if (document.getElementById(\'fstatus' + file.id +'\').value == 2) { saveUpload(\'' + file.id +'\'); } else { document.getElementById(\'fstatus' + file.id +'\').value = 1; this.innerHTML = \'Saving\'; }"><img src="/images/add.png" alt="Save" title="Save" /></a></div><div class="uploadIcons"><a id="cancel' + file.id + '"><img src="/images/delete.png" alt="Cancel" title="Cancel" /></a></div>' + file.name + '</td>\n</tr>\n<tr>\n<td width="75px" class="titleright">\nTitle:</td>\n<td colspan="5">\n<input type="hidden" name="fstatus' + file.id +'" id="fstatus' + file.id +'" value="0"><input type="text" value="' + file.name + '" name="title' + file.id + '" id="title' + file.id + '" class="text_xl"></td>\n</tr>\n<tr>\n<td class="titleright">\nDescription:</td>\n<td colspan="5">\n<input type="text" name="description' + file.id + '" id="description' + file.id + '" class="text_xl"></td>\n</tr>\n<tr>\n<td class="titleright">\nTags:</td>\n<td colspan="5">\n<input type="text" name="tags' + file.id + '" id="tags' + file.id + '" class="text_xl"></td>\n</tr>\n<tr>\n<td class="titleright">\nCategory:</td>\n<td width="250px">\n<select id="cat' + file.id + '">' + categories + '</select></td>\n</tr>\n<tr>\n<td width="75px" class="titleright">\nEmail To:</td>\n<td colspan="5">\n<input type="text" name="emails' + file.id +'" id="emails' + file.id + '" class="text_xl"></td>\n</tr>\n<tr>\n<td width="75px" class="titleright">\nSensitivity:</td>\n<td colspan="5">\n<input type="radio" id="sensitivity' + file.id + '" name="sensitivity' + file.id + '" value="1" checked="checked"> Public <input type="radio" id="sensitivity' + file.id +'" name="sensitivity' + file.id + '" value="0"> Private<input type="hidden" name="uploadid' + file.id + '" id="uploadid' + file.id + '"></td>\n</tr><tr><td width=\"75px\" class=\"titleright\">\nStream Only:</td><td colspan="5"><input type="checkbox" id="streamonly' + file.id + '" value="1" name="streamonly' + file.id + '"></td></tr></tbody>\n</table>\n<div class="border" style="padding: 3px 0 3px 3px; margin-bottom: 10px;">\n <div id="thumbspot' + file.id + '"><div class="bar1" id="upload_status_wrap' + file.id +'" align="center"><div class="bar2" id="upload_status' + file.id + '"></div></div><div style="clear: left; color: #000000">Percent: <span id="percent' + file.id +'"></span><br />Position: <span id="currentp' + file.id + '"></span><br />Speed: <span id="estspeed' + file.id + '"></span><br /><span id="status' + file.id + '">Uploading...</span></div></div></div>\n\n';
	element += '</div></div></div><br />';
	this.startUpload();
	document.getElementById('queue_location').innerHTML += element;
	files[files.length] = file;
	toggleCancel(file.id);
}

function fileQueueError(file, errorCode, message) {
	alert("Error " + message);
}

function fileDialogComplete(numFilesSelected, numFilesQueued) {
	queued = queued + numFilesQueued;
	document.getElementById('saveall').disabled = false;
}

function uploadStart(file) {
	d = new Date();
	startTime[file.id] = d;
	var i = 0;
	for (i = 0; i < files.length; i++)
	{
		toggleCancel(files[i].id);
	}
}

function toggleCancel(fileid) {
	try {
		queued = queued - 1;
		document.getElementById('cancel' + fileid).onclick = function() {
			swfu.cancelUpload(fileid);
			document.getElementById(fileid).style.display = 'none';
		}
	}
	catch (err)
	{

	}
}

function cancelU(fileid)
{
	swfu.cancelUpload(fileid);
}

function uploadProgress(file, bytesLoaded, bytesTotal) {
	if ((bytesLoaded / bytesTotal * 100) < 100)
	{
		d = new Date();
		document.getElementById('upload_status' + file.id).style.width = (bytesLoaded / bytesTotal * 100) + '%';
		document.getElementById('percent' + file.id).innerHTML = Math.floor(bytesLoaded / bytesTotal * 100) + '%';
		document.getElementById('currentp' + file.id).innerHTML = Math.round(bytesLoaded / 1024 / 1024 * 100) / 100 + ' MB';
		var uTime = Math.ceil((d - startTime[file.id])/1000);
		document.getElementById('estspeed' + file.id).innerHTML = (Math.round(bytesLoaded/uTime/1024 * 100) / 100) + ' KB per sec';
	}
	else
	{
		document.getElementById('status' + file.id).innerHTML = 'Processing...';
	}
}

function uploadSuccess(file, serverData) {
	if (serverData != "error")
	{
		jQuery(document.getElementById('thumbspot' + file.id)).fadeOut("slow", function() { document.getElementById('thumbspot' + file.id).innerHTML = '<a href="/view/' + serverData +'"><img src="http://' + server + '.disperseit.com/download.php?id=' + serverData + '&thumb=1"></a>'; jQuery(document.getElementById('thumbspot' + file.id)).fadeIn("slow"); });
		document.getElementById('upload_status' + file.id).style.width = '100%';
		document.getElementById('uploadid' + file.id).value = serverData;
		document.getElementById('estspeed' + file.id).innerHTML = '0 KB/Sec';
		document.getElementById('currentp' + file.id).innerHTML = 'Finished';
		document.getElementById('status' + file.id).innerHTML = 'Processing Complete';
		doneUploading = doneUploading + 1;
		if (document.getElementById('fstatus' + file.id).value == 1)
			saveUpload(file.id);
		else
			document.getElementById('fstatus' + file.id).value = 2;
	}
	else
		alert("ERROR");
}

function uploadError(file, errorCode, message) {
	//alert("UPLOAD ERROR");
}

function uploadComplete(file) {
}

function queueComplete(numFilesUploaded) {
//	document.getElementById('saveall').disabled = false;
//	alert("Uploading done!");
//	document.getElementById('status').innerHTML = "You have selected " + numFilesUploaded + " files";
}

function saveAll() {
	var i = 0;
	for (i = 0; i < files.length; i++)
	{
		if (document.getElementById('fstatus' + files[i].id).value == 2)
			saveUpload(files[i].id);
		else
		{
			document.getElementById('fstatus' + files[i].id).value = 1;
			document.getElementById('save' + files[i].id).innerHTML = "Saving";
			document.getElementById('saveall').disabled = 'true';
		}
//		saveUpload(files[i].id);
	}
}

function saveUpload(id)
{
	var url = "/save.php?id=" + document.getElementById('uploadid' + id).value + "&title=" + document.getElementById('title' + id).value + "&description=" + document.getElementById('description' + id).value + "&tags=" + document.getElementById('tags' + id).value + "&cat=" + document.getElementById('cat' + id).value + "&email=" + document.getElementById('emails' + id).value + "&sensitivity=" + document.getElementById('sensitivity' + id).checked + "&server=" + server + "&userid=" + userid + "&streamonly=" + document.getElementById('streamonly' + id).checked;
	jQuery.get(url, function(data) { document.getElementById('info' + id).innerHTML = data; });
	savedFiles = savedFiles + 1;
}

window.onbeforeunload = checkStatus;

function checkStatus()
{
	if (doneUploading < Math.abs(queued))
		return "All of the files selected are not done uploading! Leaving the site will stop the uploads!";
	if (savedFiles < Math.abs(queued))
		return "All of the files have uploaded but you have not saved them. Please click the Save All link at the bottom of the page. All unsaved files will be deleted at midnight automatically!";
}

