/**
 * io.js 2.0 (01-11-2009) (c) by Bernd Kiessling 
 * All Rights Reserved.
 * Es ist nicht erlaubt, diese Scripts ohne schriftliche Zustimmung des Autorīs zu verwenden, zu kopieren oder weiterzugeben !!
**/
function sendPHP(p_data,p_script,p_caller){
	var rqst = null;
	try{
		rqst = new XMLHttpRequest();
	}
	catch (e){
		try{
			rqst = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){
			try{
				rqst = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e){
				rqst = null;
			}
		}  
	}
	if (rqst == null){
		 //nothing
	}
	rqst.open("POST", rtPh()+"scripts/php/"+p_script, true);
	rqst.onreadystatechange = function(){
		switch(rqst.readyState) {
			case 4:
			if(rqst.status!=200) {
				alert("Ein Fehler:"+rqst.status);
				if(p_caller!=null){
					p_caller.phpSended("Fehler");	
				}
			}else{ 
				if(p_caller!=null){
					p_caller.phpSended(rqst);	
				}
			}
			break;
	
			default:
				return false;
			break;     
		}
	};
	rqst.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	try{
		rqst.send(p_data);
	}
	catch(e){
		alert("Ein Fehler ist aufgetreten");
		if(p_caller!=null){
			p_caller.phpSended("Fehler");	
		}
	}
}
function isDm(p_url){
	if(p_url.indexOf(cPh().substring(0,cPh().indexOf("/")))>-1){
		return true;	
	}
	return false;
}
function cPh(){
	var local=parseFilSp(location.pathname);
	local=local.substring(0,local.lastIndexOf("/"));
	var url=parseFilSp(document.URL);
	url=url.substring(0,url.lastIndexOf("/"));
	if(url.indexOf(local)>-1){
		if(url.indexOf("//")==-1){
			url=url.substring(url.indexOf(local));
		}else{
			url=url.substring(url.indexOf("//")+2);			
		}
		while(url.substr(0,1)=="/"){
			url=url.substring(1);	
		}	
		return url;
	}
	return "";
}
function gtRt(p_url){
	var rtfldrs=new Array("local","edt","scripts");
	if(p_url.substr(0,1)!="/"){
		p_url="/"+p_url;
	}
	if(p_url.substr(p_url.length-1,1)!="/"){
		p_url=p_url+"/";
	}
	for(var i=0;i<rtfldrs.length;i++){
		if(p_url.indexOf("/"+rtfldrs[i]+"/")>-1){
			return rtfldrs[i];
		}
	}
	return "";
}
function rtPh(){
	var tmpurl=cPh()+"/";
	var res="";
	if(gtRt(tmpurl)!=""){
		tmpurl=tmpurl.substring(tmpurl.indexOf("/"+gtRt(tmpurl)+"/"),tmpurl.length-1);
		for(var i=0;i<tmpurl.length;i++){
			if(tmpurl.substr(i,1)=="/"){
				res="../"+res;
			}
		}
	}
	return res;
}
function rlPh(p_url){
	if(p_url!=null){
		p_url=parseFilSp(p_url);
		var dmn=cPh();
		if(p_url.substring(0,3)=="../"){
			return p_url;
		}else if(p_url.substring(p_url.length-1)=="#"){
			return "#";	
		}else if(p_url.indexOf(dmn)>-1){
			p_url=p_url.substring(p_url.indexOf(dmn)+dmn.length);
		}else{
			var tmpfldr="";
			if(dmn.indexOf("/")>-1){
				if(p_url.indexOf(dmn.substring(0,dmn.indexOf("/")))>-1){		
					if(gtRt(p_url)==""){
						p_url=getFName(p_url);
					}else{
						p_url=p_url.substring(p_url.indexOf(dmn.substring(0,dmn.indexOf("/"))));
						for(var i=p_url.indexOf("/")+1;i<p_url.length;i++){
							if(p_url.substr(i,1)=="/"){
								if(dmn.indexOf("/"+tmpfldr+"/")>-1){
									dmn=dmn.substring(dmn.indexOf("/"+tmpfldr+"/")+tmpfldr.length+1);
									tmpfldr="";
								}else{
									p_url=p_url.substring(p_url.indexOf("/"+tmpfldr+"/")+1);
									while(dmn.indexOf("/")>-1){
										p_url="../"+p_url;
										dmn=dmn.substring(dmn.indexOf("/")+1);
									}
									break;	
								}
							}else{
								tmpfldr=tmpfldr+p_url.substr(i,1);
							}
						}
					}
				}
			}
		}
		while(p_url.substr(0,1)=="/"){
			p_url=p_url.substring(1);	
		}
		return p_url;
	}
}
function getFldr(p_url){
	p_url=parseFilSp(p_url);
	if(p_url.indexOf("/")>-1){
		p_url=p_url.substring(0,p_url.lastIndexOf("/"));
		if(p_url.substr(0,1)!="/"){
			p_url="/"+p_url;	
		}
		if(p_url.substr(p_url.length-1,1)!="/"){
			p_url=p_url+"/";	
		}
	}
	return p_url;
}
function getFName(p_url){	
	var tmpurl=parseFilSp(p_url);
	var res="";
	if(tmpurl.indexOf(".")>-1){
		if(tmpurl.substr(tmpurl.length-1)=="/"){
			tmpurl=tmpurl.substring(0,tmpurl.length-2);
		}
		res=tmpurl.substring(tmpurl.lastIndexOf("/")+1);
	}
	return res;
}
function parseFilSp(p_url){
	if(p_url.indexOf("\\")>-1){
		for(var i=0;i<p_url.length;i++){
			if(p_url.substr(i,1)=="\\"){
				p_url=p_url.substring(0,i)+"/"+p_url.substring(i+1);	
			}
		}
	}
	return p_url;
}
function parseToPHP(p_string){
	p_string=rplStr("&","#nd#",p_string);
	p_string=rplStr("+","#pl#",p_string);
	return p_string;
}
function parseFromPHP(p_string){
	p_string=rplStr("#nd#","&",p_string);
	p_string=rplStr("#pl#","+",p_string);
	return p_string;
}
function parseToData(p_data){
	var sepa="|";
	var res="";
	for(var i=0;i<p_data.length;i++){
		var tmp=parseToPHP(String(p_data[i][1]));
		for(var j=0;j<tmp.length;j++){
			if(tmp.substr(j,1)==sepa){
				res=res+"#spa#";
			}else{
				res=res+tmp.substr(j,1);
			}
		}
		res=res+sepa;
	}
	return res;
}
function reparseData(p_ids,p_string){
	var sepa="|";
	p_string=p_string+sepa;
	var res=new Array();
	var tmp="";
	var tmpcount=0;
	for(var i=0;i<p_string.length;i++){
		if(p_string.substr(i,1)==sepa){
			while(tmp.indexOf("#spa#")>-1){
				tmp=tmp.substring(0,tmp.indexOf("#spa#"))+sepa+tmp.substring(tmp.indexOf("#spa#")+5);
			}
			if(tmpcount<p_ids.length){				
				res.push(new Array(p_ids[tmpcount],tmp));
				tmpcount++;
				tmp="";
			}else{
				return null;	
			}
		}else{
			tmp=tmp+p_string.substr(i,1);
		}
	}
	return res;
}
function reparseAllData(p_ids,p_string){
	var sepa="|";	
	var tmpcount=1;
	var tmp="";
	var res=new Array();
	for(var i=0;i<p_string.length;i++){
		if(p_string.substr(i,1)==sepa){
			if(tmpcount==p_ids.length){
				var rsdata=reparseData(p_ids,tmp);
				if(rsdata!=null){
					res.push(rsdata);
					tmpcount=1;
					tmp="";
				}else{
					return null;
				}
			}else{
				tmp=tmp+sepa;				
				tmpcount++;
			}
		}else{
			tmp=tmp+p_string.substr(i,1);
		}
	}
	if(res.length!=0){
		return res;
	}else{
		return null;	
	}
}
