/*///////////////////////////////////////////////////////////////////////
//Ajax.js
//Written by Electric Solutions GbR
//Copyright 2002-2009 by Electric Solutions GbR
//Authors: R. Grosseck
//elso@p-link.de
//www.electric-solutions.de
///////////////////////////////////////////////////////////////////////*/
var divbuffer;
var PathHistory=new Array();
var actPathHistory=-1;

function Ajax (params, callback) {
  this.url = url_root+"/ajax.php";
  this.parms = params+'&sid='+sid;
  this.callback = callback;
  this.create ();
  this.req.onreadystatechange = this.dispatch (this);  
}

Ajax.prototype.dispatch = function (ajax) {	
	function funcRef()
	{
		if (ajax.req.readyState == 4) {
			if (ajax.callback) {
				ajax.callback (ajax.req);
			}
		}
	}
	
	return funcRef;
}

Ajax.prototype.request = function () {
	this.req.open("POST", this.url, true);
	this.req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	this.req.send (this.parms);
}

Ajax.prototype.post_form = function (formObj) {
	this.req.open("POST", this.url, true);
	this.req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	for (var i = 0; i < formObj.length; i++) {
		switch (formObj.elements[i].type) {
			case "select-multiple":
				for(var s=0; s<formObj.elements[i].options.length; s++) {
					if (formObj.elements[i].options[s].selected) {
						this.parms+='&'+formObj.elements[i].id+'['+s+']'+'='+formObj.elements[i].options[s].value;						
					}
				}                
			break;
			
			case "checkbox":
				if(formObj.elements[i].checked == true)
				this.parms+='&'+formObj.elements[i].name+'='+formObj.elements[i].value;
			break;

			default:
				this.parms+='&'+formObj.elements[i].name+'='+formObj.elements[i].value;
			break;
		}		
	}
	this.req.send(this.parms);
}

Ajax.prototype.create = function () {

  var http_request;

  if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();			
	} 
	else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {
				alert('Giving up :( Cannot create an XMLHTTP instance');
				return false;	
			}
		}
	}
  this.req = http_request;
}

function handleDebug(req) {		
	if (req.status == 200) {			
		alert(req.responseText);
	} else {
		alert('There was a problem with the request. (Function: HandleDebug) Ausgabe:'+req.responseText);
	}
}

function handleJS(req) {
	if (req.status == 200){
		if(req.responseXML){			
			var xml=req.responseXML;
			//Da bei IE this.http_request.responseXML immer ein Objekt ist, muß überprüft werden
			//ob wirklich ein Error übermittelt wurde
			if(xml.getElementsByTagName("error").length > 0){
				alert(xml.getElementsByTagName("error").item(0).firstChild.data);				
			}
			if(xml.getElementsByTagName("content").length > 0){
				setBuffer(xml.getElementsByTagName("content").item(0).firstChild.data);
			}
			if(xml.getElementsByTagName("function").length > 0){
				try{eval(xml.getElementsByTagName("function").item(0).firstChild.data);}
				catch(e){
					alert(e)	;
				}
			}
			//IE
			else{
				eval(req.responseText);
			}
		}
		//Alle anderen Browser
		else {
			eval(req.responseText);
		}
	}
	else {
		alert('There was a problem with the request. (Function: HandleJS) Ausgabe:'+req.responseText);
	}
}

function wait(){
	document.getElementById('contentFolderFiles').innerHTML='<img src="./images/tree/icon_wait.gif" border="0">';
}