function fileUpload(_frm, _actDir) {		
	
	if (_frm.userfile.value == "") {
		alert("File is required.");
		return;
	}	
	
	_frm.action = prg_dwnld + "ACTION=fileUpload&folder_tree=" + _actDir + "&";	
	_frm.submit();	
}


function errorByFileUpload(_msg) {
	alert(_msg);
}


function afterFileUpload(_actDir, _colName, _reqTarget) {
		
	_colName		= document.frm_val.colName.value;
	_next_sort_dir		= document.frm_val.next_sort_dir.value;		
	
	//trg.location.src	= null;		
	downloads(_actDir, _colName, _reqTarget, _next_sort_dir);		
}


function folderCreate(_frm, _actDir) {
	
	if (_frm.userfolder.value == "") {
		alert("Input is required.");
		return;
	}	
	
	req	= ReqCreate();
		if (!req) return;
		
		req.onreadystatechange = function () {	 
			if (req.readyState == 4) {
				res = ReqContent(req);
				if (false != res) {
					_frm.userfolder.value = "";
					reqResHandle(req, "download_dir");	
				}	
			}
		}
		
		
	_colName		= document.frm_val.colName.value;
	_next_sort_dir		= document.frm_val.next_sort_dir.value;		
	p = "col_name=" + _colName + "&next_sort_dir=" + _next_sort_dir + "&";
	
	ReqExec(req, "POST",	prg_dwnld + "ACTION=folderCreate&download_dir=download_dir&folder_tree=" + _actDir + "&userfolder=" + _frm.userfolder.value + "&" + p, true, true, _frm);	
	//ReqExec(req, "POST",	prg_dwnld + "ACTION=folderCreate&download_dir=download_dir&folder_tree=" + _actDir + "&userfolder=" + _frm.userfolder.value + "&", true, true, _frm);	
}


function downloads(_actDir, _colName, _reqTarget, next_sort_dir) {
		 
	req	= ReqCreate();
	if (!req) return;
	
	req.onreadystatechange = function () {	 
		if (req.readyState == 4) {
			res = ReqContent(req);
			if (false != res) reqResHandle(req, _reqTarget);					
		}
	}
	
	if (_reqTarget == "download_dir") {
		p = "download_dir=download_dir&"; 
		if (arguments.length == 4) p = p + "next_sort_dir=" + next_sort_dir + "&";
	}
	else {	
		p = "";
	}
	ReqExec(req, "GET",	prg_dwnld + "ACTION=downloads&folder_tree=" + _actDir + "&col_name=" + _colName + "&" + p, true, true);	
}


function ReqCreate() {	  	
	req	 = false;
	if (window.XMLHttpRequest) { //	Mozilla, Safari,...
	   req = new XMLHttpRequest();
	   if (req.overrideMimeType) {
		  req.overrideMimeType('text/html');		  
	   }	   
	} 
	else if	(window.ActiveXObject) { //	IE
	   try {
		   req = new ActiveXObject("Msxml2.XMLHTTP");			
	   } 
	   catch (e) {			
		   try { req = new ActiveXObject("Microsoft.XMLHTTP"); } 
		   catch (e) {}
	   }
	}

	if (!req) {
	   alert('Error by create of XMLHttpRequest.');
	   return false;
	}
	return req;	 
}


function ReqExec(req, m, url_str, async, req_key, f) {
 	url_str = url_str + "XMLHttpReq=1&"; 	
	if (req_key) url_str = url_str + RequestKey();			
	req.open(m,	url_str, async);	
	if (m == "POST") {	
	   req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	   L = f.length;
	   p = "";
	   ElemLst = " ,hidden,text,select-one,textarea,radio,checkbox,";
	   for (var	i =	0; i < L; i++) {	
		   t = f.elements[i].type.toLowerCase();
		   if (ElemLst.indexOf("," + t + ",") >	0 )	{
			  if (t	== "checkbox") {
				 if	(f.elements[i].checked)	p = p + f.elements[i].name + "=1&";
				 else						p = p + f.elements[i].name + "=0&";				  
			  }	
			  else {
				 p = p + f.elements[i].name	+ "=" +	escape(f.elements[i].value)	+ "&";	  
			  }
		   } 
	   } 
	}					   
	else {		   
	   p = null;	
	}	 
	req.send(p);			  
}


function ReqContent(req) {		  
	r =	false;	
	res	= req.responseText;		
	p = res.indexOf("XMLHttpRes=0", 0);
	
	if (p == -1) { //Fehler bzw. Meldung
		alert(res);
	}
	else { 
	   	if (res.length == p + 12)	r = true;
		else				r = res.substring(p + 12);  	   	
	}			
	return r;
}


function reqResHandle(req, element_id) {		
	res	= ReqContent(req);
	if (res == false) return false;	
	
	if (arguments.length == 1) return true;	
	//if (IsArray(element_id)) {
	//		len = element_id.length;
	//  	for (var i = 0; i < len; i++) {
        //document.getElementById(element_id[i]).innerHTML = res;
     	//}
     //}
     //else {
     	document.getElementById(element_id).innerHTML = res;
    //}
    return true;				
}


function RequestKey() {
	var d = new Date();
	return d;	
}


function reqResHandle_NOTUSE(req, element_id) {		
	res	= ReqContent(req);
	if (res == false) return false;
	
	if (arguments.length == 1) return true;
	
	if (IsArray(element_id)) {
		len = element_id.length;
	
    	for (var i = 0; i < len; i++) {
        	document.getElementById(element_id[i]).innerHTML = res;
     	}
     }
     else {
     	document.getElementById(element_id).innerHTML = res;
    }
    return true;				
}