/*********
* Javascript for file upload demo
* Copyright (C) Tomas Larsson 2006
* http://tomas.epineer.se/

* Licence:
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under this License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*/
var uploads_in_progress = 0;
var sids = {};
var apu = null;

function beginUpload(ul,sid) {
	if ( uploads_in_progress == 0 ) {
		ul.form.submit();
		sids[ul.name] = sid;
		uploads_in_progress = 1;
		var pb = $(ul.name + "_progress");
		Element.show(pb.parentNode);
		Element.show("busy");
		apu = new Ajax.PeriodicalUpdater(
			'',
			'/javascripts/fileprogress.php',
			{
				'decay': 2,
				'frequency' : 1,
				'method': 'post',
				'parameters': 'sid=' + sid,
				'onSuccess' : function (request)
				{
					updateProgress(pb,request);
				},
				'onFailure': function (request)
				{
					updateFailure(pb,request);
				}
			}
		)
	}
}

function updateProgress(pb,req) {
	var percent = req.responseText;
	if(!percent) percent = 1;
	pb.style.width = percent+"%";
	if(percent == "100") {
		var inp_id = pb.id.replace("_progress","");
		if(sids[inp_id]) {
			uploads_in_progress = uploads_in_progress - 1;
			var inp = $(inp_id);
			if(inp) {
				inp.value = sids[inp_id];
			}
		}
		sids[inp_id] = false;
		apu.stop();
		document.postform.submit();
		pb.innerHTML = 'Finalizing. One Moment...';
		// Element.hide(pb.parentNode);
		Element.hide("busy");
		setTimeout("window.location.reload();", 1000);
	}
}

function updateFailure(pb,req) {
	var mes = req.responseText;
	pb.style.width=0;
	Element.hide("busy");
	// alert(mes);
	apu.stop();
	uploads_in_progress = uploads_in_progress - 1;
}

function submitUpload(frm) {
	if(uploads_in_progress > 0) {
		alert("File upload in progress. Please wait until upload finishes and try again.");
	} else {
		frm.submit();
	}
}
