/*
 * (c) 2006 Michal Kuklis base on  http://labs.beffa.org/w2box/ script
 *
 */ 
 
var ALLOWED_TYPES = ".gif.jpg.jpeg.png.doc.pdf.";
var MAX_FILESIZE =  6291456;
var UPLOAD_SCRIPT = '/cgi-bin/upload.cgi';
 
function deletefile(row) {
	row.className='delete';
	new Ajax.Request("index.php", {
		parameters: 'delete=' + encodeURIComponent(row.cells[0].innerHTML),
		onComplete: function (req) {
			if (req.responseText == "successful") {
				row.parentNode.removeChild(row);
			} else {
				alert(req.responseText);
				row.className='off';
			}
		}
	});
}

function renameSync(id) {
	var fn = document.getElementById("file"+id).value;
	if (fn == ""){
		document.getElementById("filename"+id).value = '';
	} else {
		var filename = fn.match(/[\/|\\]([^\\\/]+)$/);
		if (filename==null)
		filename = fn; //opera...
		else
		filename = filename[1];

		document.getElementById("filename"+id).value = filename;
	}

	filetypeCheck(id);
}

function filetypeCheck(id) {

	var fn = document.getElementById("filename"+id).value;
	if (fn == ""){
		document.getElementById("allowed"+id).className ='';
		document.getElementById("upload"+id).disabled = true;
	} else {
		var ext = fn.split(".");
		if (ext.length==1)
		ext = '.noext.';
		else
		ext = '.' + ext[ext.length-1].toLowerCase() + '.';
		
		if (ALLOWED_TYPES.indexOf(ext) == -1) {
			document.getElementById("allowed"+id).style.color ='#FF0000';
			document.getElementById("upload"+id).disabled = true;
		} else {
			document.getElementById("allowed"+id).style.color ='#000000';
			document.getElementById("upload"+id).disabled = false;
		}
	}

}


var usid="";
var finished = false;
var uploadUpdater;
var key;
var value;
var params;
var uform;
var upb;
var end = false;
var fileid = 0;
function beginUpload(sid,id) {
	fileid  = id
	usid ="";
	end = false;
	finished = false;
	usid=sid;
	//params = {'product_id': 1};
	//$config['upload_cgiscript']."?sid=$sid".'" target="upload_iframe'; 
	uform = document.getElementById('uploadform'+id).getElementsByTagName('form')[0];
	upb = document.getElementById('upload_pb'+id);
	if (uform.file.value=="") return;
	
	upb.style.height = uform.offsetHeight+"px";
	document.getElementById('upload_filename'+id).innerHTML = uform.filename.value;
	uform.style.display = 'none';
	upb.style.display = 'block';
	var pb = document.getElementById('upload_progress'+id);
	pb.style.width = 0;
	//return;
	uform.action = UPLOAD_SCRIPT+'?sid='+sid+'&maxsize='+MAX_FILESIZE;
	//alert(uform.action);
	//return;
	uform.target = 'upload_iframe'+id;
	uform.submit();
	//uploadUpdater = new Ajax.PeriodicalUpdater({},'fileprogress.php',{'decay': 2,'frequency' : 0.5,'method': 'post','parameters': 'sid=' + sid,'onSuccess' : function(request){updateProgress(pb,request)},'onFailure':function(request){updateFailure(pb,request)}})
	uploadUpdater = new Ajax.PeriodicalUpdater({},'/media_manage/fileprogressbar',
	{decay:3, frequency:1, asynchronous:true, method:'post',parameters:'sid=' + sid ,
		onSuccess:function(request){
			updateProgress(pb,request);
		},
		onFailure:function(request){
			updateFailure(pb,request);
		}
	});
}

function updateProgress(pb,req) {
	var percent = parseInt(req.responseText);

	if (finished) return;
	if (isNaN(percent)) {
		uploadUpdater.stop();
		finished = true;
		if (req.responseText == "FINISHED" && end == false) {
			pb.style.width = "100%";
			params = '';
			
			elements = Form.getInputs('upload_form'+fileid, 'hidden');
			//alert(elements);
			elements.each(function(element) {
				params += '&'+element.name+'='+element.value;
				
			});
			new Ajax.Updater({success:'document_view'+fileid}, '/media_manage/add', {asynchronous:true, evalScripts:true, onComplete:function(request, json){new Effect.Highlight('document-list'+fileid, {});}, onLoading:function(request, json){}, parameters:'sid='+usid+params});
			new Effect.Fade(upb);
			upb.hide();
			uform.style.display = 'block';
			pb.style.width=0;
			end = true;
		} else {
			pb.style.width=0;
		}
	} else {
		if(!percent) percent = 0;
		if(percent > 100) percent = 100;
		pb.style.width = ""+percent+"%";
	}
}

function updateFailure(pb,req) {
	if (finished) return;
	
	uploadUpdater.stop();
	finished = true;	
	
	pb.style.width=0;
	alert(req.responseText);
	//post redirect
	/*
	var form = document.createElement('form');
	form.method = 'post';
	var input = document.createElement('input');
	input.name = 'errormsg';
	input.value = escape(req.responseText);
	form.appendChild(input);
	document.body.appendChild(form);
	form.submit();
	*/
}
