//<meta http-equiv="content-type" content="text/html;charset=utf-8">
function SetAllToSaved(IDDivElement)
	{
	var FieldDivs=document.getElementById(IDDivElement).getElementsByTagName('DIV');
	document.getElementById(IDDivElement).IsDirty=false;
 	for(var i=0; i<FieldDivs.length; i++)
		{
  		if(FieldDivs[i].className=="InpField")
			{
			var InpFieldNodes=FieldDivs[i].childNodes;
			for(var i2=0; i2<InpFieldNodes.length; i2++)
				{
				var NodeObj=FieldDivs[i].childNodes[i2];
				if ((NodeObj.nodeName=="INPUT" || NodeObj.nodeName=="TEXTAREA" || NodeObj.nodeName=="SELECT") && (NodeObj.name.indexOf("ExcludeFromSaving")==-1))
					{
					if (FieldDivs[i].childNodes[i2].IsDirty)
						{
						FieldDivs[i].childNodes[i2].IsDirty=false;
						FieldDivs[i].childNodes[i2].IsSafed=true;
						}
					}
				}
			}
		}
	}
	
function resetInpDiv(IDDivElement)
	{
	var FieldDivs=document.getElementById(IDDivElement).getElementsByTagName('DIV');
 	for(var i=0; i<FieldDivs.length; i++)
		{
  		if(FieldDivs[i].className=="InpField")
			{
			var InpFieldNodes=FieldDivs[i].childNodes;
			for(var i2=0; i2<InpFieldNodes.length; i2++)
				{
				var NodeObj=FieldDivs[i].childNodes[i2];
				if ((NodeObj.nodeName=="INPUT" || NodeObj.nodeName=="TEXTAREA" || NodeObj.nodeName=="SELECT") && (NodeObj.name.indexOf("ExcludeFromSaving")==-1))
					{
					if ((FieldDivs[i].childNodes[i2].IsDirty) || (FieldDivs[i].childNodes[i2].IsSafed))
						{
						NodeObj=FieldDivs[i].childNodes[i2];
						if (NodeObj.IsSafed)
							{
							NodeObj.IsDirty=true;
							NodeObj.IsSafed=false;
							}
						else
							{
							NodeObj.IsDirty=false;
							}
						if ((NodeObj.type=="checkbox") || (NodeObj.type=="radio") || (NodeObj.type=="select-one"))
							{
							if (NodeObj.type=="checkbox")
								{
								NodeObj.checked=NodeObj.OriginalValue;
								}
							if ((NodeObj.type=="radio") || (NodeObj.type=="select-one"))
								{
								// hier ausflltroutine fr radio oder select-one
								}
							}
						else
							{
							NodeObj.value=NodeObj.OriginalValue;
							}
						}
					}
				}
			}
		}
	}
	
function injectFieldFunctions(database,table,IDDivElement)
	{
	var FieldDivs=document.getElementById(IDDivElement).getElementsByTagName('DIV');
	document.getElementById(IDDivElement).IsDirty=false;
	document.getElementById(IDDivElement).Database=database;
	document.getElementById(IDDivElement).Table=table;
 	for(var i=0; i<FieldDivs.length; i++)
		{
  		if (FieldDivs[i].className.substr(0,8)=="InpField")
			{
			if (FieldDivs[i].className.indexOf(":")==-1) {ID=-1;} else {ID=FieldDivs[i].className.substr(9);}
			var InpFieldNodes=FieldDivs[i].childNodes;
			for(var i2=0; i2<InpFieldNodes.length; i2++)
				{
				var NodeObj=FieldDivs[i].childNodes[i2];
				if ((NodeObj.nodeName=="INPUT" || NodeObj.nodeName=="TEXTAREA" || NodeObj.nodeName=="SELECT") && (NodeObj.name.indexOf("ExcludeFromSaving")==-1))
					{					
					NodeObj.IsDirty=false;
					NodeObj.IsSafed=false;
					NodeObj.ContainerID=IDDivElement;
					NodeObj.ID=ID;
					if ((NodeObj.type=="checkbox") || (NodeObj.type=="radio") || (NodeObj.type=="select-one"))
						{
						if (NodeObj.type=="checkbox" || NodeObj.type=="radio")
							{
							NodeObj.onclick = function(){
														ChangeOccured(this);
														}
							}
						else
							{
							NodeObj.onchange = function(){
														ChangeOccured(this);
														}
							}
						if (NodeObj.type=="checkbox")
							{
							if (NodeObj.checked){NodeObj.OriginalValue=true;} else {NodeObj.OriginalValue=false;}
							}
						if ((NodeObj.type=="radio") || (NodeObj.type=="select-one"))
							{
								//hier originalval
							}
						}
					else
						{
						NodeObj.onchange = function(){
													ChangeOccured(this);
													}
						NodeObj.OriginalValue=NodeObj.value;
						}
					}
				}
			}
		}
	}
	
function ChangeOccured(InpObj)
	{
	InpDiv=document.getElementById(InpObj.ContainerID);
	if (InpObj.ID==-1) {
		InpObj.IsDirty=true;
		if (SafeOnChange==1)
			{
			FormData=bring_dirty_divdata_einzel(InpObj);
			if (FormData[1]==true)
				{
				data="ID="+InpDiv.ID+"&Table="+InpDiv.Table+"&EditEdited=1&db_name="+InpDiv.Database+"&Data="+FormData[0];
				getPage("inc/datasave.php","POST",data,false,"");
//				getPage(RootPath+"inc/datasave.php","POST",data,false,"");
				InpObj.IsDirty=false;
				InpObj.IsSafed=true;
				aftersafe(InpObj);
				}
			}
		else
			{
			InpDiv.IsDirty=true;
			}
		}
	else
		{
		FormData=bring_dirty_divdata_einzel(InpObj);
		if (FormData[1]==true)
			{
			data="ID="+InpObj.ID+"&Table="+InpDiv.Table+"&EditEdited=1&db_name="+InpDiv.Database+"&Data="+FormData[0];
			getPage("inc/datasave.php","POST",data,false,"");
//			getPage(RootPath+"inc/datasave.php","POST",data,false,"");
			InpObj.IsDirty=false;
			InpObj.IsSafed=true;
			aftersafe(InpObj);
			}
		}
	}
	
function CheckInputValue(InpObj)
//{HasActTracking[1]:HasHistory[2]:Min[3]:Max[4]:Code[5]:NULL[6]:Trim[7]}

//Min: Unterer Wert in akt. Format Leer:Ignorieren
//Max: Oberer Wert in akt. Format Leer:Ignorieren
//NULL: 0=Nein, 1=Ja
//Code: T=Text, INT=Integer, N=Dezimalzahl,DZ=Datum und Zeit, D=Datum, Z=Zeit, E=email, W=www, Bool=Boolean, ID=CHAR(32)
//Trim: 0=Keine Akt, 1=Trim
	{
	var ValidityCheck=true;
	InpDiv=document.getElementById(InpObj.ContainerID);
	var ValProps = TableInfo[InpDiv.Database+"@"+InpDiv.Table+"@"+InpObj.name].split(':');
	if (ValProps[7]==1){InpObj.value=trim(InpObj.value);}
	switch (ValProps[5].toUpperCase())
		{
		case "T":
			if (InpObj.value=="" && ValProps[6]=='0')
				{
				InpObj.style.backgroundColor = "red";
				MsgBox("Unzulässige Eingabe:\r\nDas Feld darf nicht leer sein!",0,"Unzulässige Eingabe");
				ValidityCheck=false;
				}
			if (trim(ValProps[4])!="")
				{
				if (InpObj.value.length>ValProps[4])
					{
					InpObj.style.backgroundColor = "red";
					MsgBox("Unzulässige Eingabe:\r\nDas Feld darf nicht mehr als "+ValProps[4]+" Zeichen enthalten!",0,"Unzulässige Eingabe");
					ValidityCheck=false;
					}
				}
			if (trim(ValProps[3])!="")
				{
				if (InpObj.value.length<ValProps[3])
					{
					InpObj.style.backgroundColor = "red";
					MsgBox("Unzulässige Eingabe:\r\nDas Feld darf nicht weniger als "+ValProps[3]+" Zeichen enthalten!",0,"Unzulässige Eingabe");
					ValidityCheck=false;
					}
				}
			break;
		case "INT":
		case "N":
			if (InpObj.value=="" && ValProps[6]=='0')
				{
				InpObj.style.backgroundColor = "red";
				MsgBox("Unzulässige Eingabe:\r\nDas Feld darf nicht leer sein!",0,"Unzulässige Eingabe");
				ValidityCheck=false;
				}
			if (InpObj.value!="")
				{
				if (isNaN(InpObj.value))
					{
					InpObj.style.backgroundColor = "red";
					MsgBox("Unzulässige Eingabe:\r\nDer Wert muss eine Zahl sein!",0,"Unzulässige Eingabe");
					ValidityCheck=false;
					}
				else
					{
					if(parseInt(InpObj.value)!=InpObj.value*1 && ValProps[5]=="INT")
						{
						InpObj.style.backgroundColor = "red";
						MsgBox("Unzulässige Eingabe:\r\nDer Wert muss eine ganzzahlige Zahl sein!",0,"Unzulässige Eingabe");
						ValidityCheck=false;
						}
					if (trim(ValProps[4])!="")
						{
						if (InpObj.value*1>ValProps[4]*1)
							{
							InpObj.style.backgroundColor = "red";
							MsgBox("Unzulässige Eingabe:\r\nDer Wert darf nicht grösser als "+ValProps[4]+" sein!",0,"Unzulässige Eingabe");
							ValidityCheck=false;
							}
						}
					if (trim(ValProps[3])!="")
						{
						if (InpObj.value*1<ValProps[3]*1)
							{
							InpObj.style.backgroundColor = "red";
							MsgBox("Unzulässige Eingabe:\r\nDer Wert darf nicht kleiner als "+ValProps[3]+" sein!",0,"Unzulässige Eingabe");
							ValidityCheck=false;
							}
						}
					}
				}
			break;
		}
	if (!ValidityCheck){InpObj.focus();}
	return ValidityCheck;
	}

function bring_dirty_divdata_einzel(NodeObj)
	{
	ValuList="";
	VarList="";
	ArrList="";
	ValidityCheck=true;
	if(NodeObj.type=="checkbox")
		{
		if(NodeObj.checked){
			ValuList=ValuList + 1 + "[S*E*P]";
			}
		else{
			ValuList=ValuList + 0 + "[S*E*P]";
			}
		VarList=VarList + NodeObj.name + ";";
		}
	if(NodeObj.type=="select-multiple") {
		ArrList="";
		for (var i3 = 0; i3<NodeObj.length; i3++){
			if (NodeObj.options[i3].selected==true){
				ArrList=ArrList  + NodeObj.options[i3].value + "!";
				}
			}
		ValuList=ValuList + ArrList + "[S*E*P]";
		VarList=VarList + NodeObj.name + ";";
		}
	if(NodeObj.type=="radio"){
		if(NodeObj.checked){
			ValuList=ValuList + NodeObj.value + "[S*E*P]";
			VarList=VarList +  NodeObj.name + ";";
			}
		}
	if((NodeObj.type=="text") || (NodeObj.type=="password") || (NodeObj.type=="select-one") || (NodeObj.type=="textarea") || (NodeObj.type=="hidden")) {
		if (CheckInputValue(NodeObj))
			{
			ValuList=ValuList + NodeObj.value + "[S*E*P]";
			VarList=VarList +  NodeObj.name + ";";
			}
		else
			{
			ValidityCheck=false;
			}
		}
	if (VarList!=""){return new Array(VarList+"[S!E!P]"+amp_to_subst(ValuList)+"[S!E!P]"+ArrList,ValidityCheck);} else {return new Array("",ValidityCheck);}
	}

function bring_dirty_divdata(DivID)
	{
	ValuList="";
	VarList="";
	ArrList="";
	ValidityCheck=true;
	var FieldDivs=document.getElementById(DivID).getElementsByTagName('DIV');
 	for(var i=0; i<FieldDivs.length; i++)
		{
  		if(FieldDivs[i].className=="InpField")
			{
			var InpFieldNodes=FieldDivs[i].childNodes;
			for(var i2=0; i2<InpFieldNodes.length; i2++)
				{
				var NodeObj=FieldDivs[i].childNodes[i2];
				if ((NodeObj.nodeName=="INPUT" || NodeObj.nodeName=="TEXTAREA" || NodeObj.nodeName=="SELECT") && (NodeObj.name.indexOf("ExcludeFromSaving")==-1))
					{
					if (NodeObj.IsDirty)
						{
						if(NodeObj.type=="checkbox")
							{
							if(NodeObj.checked){
								ValuList=ValuList + 1 + "[S*E*P]";
								}
							else{
								ValuList=ValuList + 0 + "[S*E*P]";
								}
							VarList=VarList + NodeObj.name + ";";
							}
						if(NodeObj.type=="select-multiple") {
							ArrList="";
							for (var i3 = 0; i3<NodeObj.length; i3++){
								if (NodeObj.options[i3].selected==true){
									ArrList=ArrList  + NodeObj.options[i3].value + "!";
									}
								}
							ValuList=ValuList + ArrList + "[S*E*P]";
							VarList=VarList + NodeObj.name + ";";
							}
						if(NodeObj.type=="radio"){
							if(NodeObj.checked){
								ValuList=ValuList + NodeObj.value + "[S*E*P]";
								VarList=VarList +  NodeObj.name + ";";
								}
							}
						if((NodeObj.type=="text") || (NodeObj.type=="password") || (NodeObj.type=="select-one") || (NodeObj.type=="textarea") || (NodeObj.type=="hidden")) {
							if (CheckInputValue(NodeObj))
								{
								ValuList=ValuList + NodeObj.value + "[S*E*P]";
								VarList=VarList +  NodeObj.name + ";";
								}
							else
								{
								ValidityCheck=false;
								}
							}
						}
					}
				}
			}
		}
	if (VarList!=""){return new Array(VarList+"[S!E!P]"+amp_to_subst(ValuList)+"[S!E!P]"+ArrList,ValidityCheck);} else {return new Array("",ValidityCheck);}
	}
	
	
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


var hD="0123456789abcdef";
function d2h(d,ZeroStr)
	{
	var h = hD.substr(d&15,1);
	while(d>15) {d>>=4;h=hD.substr(d&15,1)+h;}
	return ZeroStr.substr(0,ZeroStr.length-h.length)+h;
	}

function h2d(h)
	{
	return parseInt(h,16);
	} 

function rgb(r,g,b)
	{
	return d2h(r*65536+g*256+b*1,'000000');
	}

function BringColVal(Col)
	{
	if (Col=="transparent"){return Col;}
	if (Col.length==7)
		{
		Col=Col.substr(1);
		}
	else
		{
		Col=eval(Col);
		}
	return Col;
	}
	
var httpRequest="";

function getPage(PageAddress,method,data,mode,header) {
	if(!method || method=="GET"){
		httpRequest = getXMLHttpRequest();
		httpRequest.open('GET', encodeURI(PageAddress), false);
		httpRequest.send(null);
		if (httpRequest.statusText=="OK"){
			ReqText=httpRequest.responseText;
			return php_error_detect(ReqText,PageAddress);
			}
		else
			{
			error_text="Status "+httpRequest.status+": "+httpRequest.statusText+"\nResponse:\n"+httpRequest.response;
			alert("Es ist ein XMLHttpRequest-Fehler (GET) aufgetreten!\nSeitenadresse: "+PageAddress+"\n"+error_text);
			error_reporting("err_type=XMLHttpRequest(GET)&err_page="+amp_to_subst(PageAddress)+"&err_text="+amp_to_subst(error_text));
			return false;
			}
		}
	else
		{
		if(!data){data='nix=nix'};
		if(!header){header='Content-Type:application/x-www-form-urlencoded; charset=UTF-8'};
		httpRequest=getXMLHttpRequest();
		httpRequest.open(method,PageAddress,mode);
		httpRequest.onreadystatechange=displayStatus;
		httpRequest.setRequestHeader(header.split(':')[0],header.split(':')[1]);
		httpRequest.send(spez_encoding(data));
		if (!mode){
			ReqText=httpRequest.responseText;
			return php_error_detect(ReqText,PageAddress);
			}
		}	
	}
	
function spez_encoding(data)
	{
	data=data.replace(/\+/g,"[P!L!U!S]");
	data=data.replace(/"/g,"[a!m!p]!quot!;");
	data=data.replace(/'/g,"[a!p!s!t]");
	data=data.replace(/\\/g,"[b!k!s!l!s!h]");
	return encodeURI(data);
	}
	

function displayStatus()
	{
    if(httpRequest.readyState==4){
		if (httpRequest.statusText!="OK")
			{
			var sPath = window.location.pathname;
			var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
			error_text="Status "+httpRequest.status+": "+httpRequest.statusText+"\nResponse:\n"+httpRequest.response;
			alert("Es ist ein XMLHttpRequest-Fehler (POST) aufgetreten!\nSeitenadresse: "+sPage+"\n"+error_text);
			error_reporting("err_type=XMLHttpRequest(POST)&err_page="+amp_to_subst(sPage)+"&err_text="+amp_to_subst(error_text));
			}
    	}
	}

function getXMLHttpRequest() 
{
    if (window.XMLHttpRequest) {
        return new window.XMLHttpRequest;
    }
    else {
        try {
            return new ActiveXObject("MSXML2.XMLHTTP.3.0");
        }
        catch(ex) {
            return null;
        }
    }
}

function getXMLHTTPObject_alt(){
	httpRequest = new XMLHttpRequest();
	httpRequest.onreadystatechange=displayStatus;
    return httpRequest;
}

function error_reporting(data)
	{
	header='Content-Type:application/x-www-form-urlencoded; charset=UTF-8';
	httpRequest=getXMLHttpRequest();
	httpRequest.open('POST','inc/save_error.php',false);
//	httpRequest.open('POST',RootPath+'inc/save_error.php',false);
	httpRequest.setRequestHeader(header.split(':')[0],header.split(':')[1]);
	httpRequest.send(data);
	}
function php_error_detect(ResponseText,PageAddress){
	errorflag=false;
	error_text="";
	err_type="";
	if (ResponseText.substr(10,11)=='Parse error'){
		errorflag=true;
		error_text="Seitenadresse: "+PageAddress+"\n"+ResponseText.substr(10);
		err_type="Parse error";
		}
		
	if (ResponseText.indexOf("Query not successful") > -1){
		if (!errorflag){
			error_text="Seitenadresse: "+PageAddress+"\n";
			}
		errorflag=true;
		err_type=err_type+"SQL\n";
		error_text=error_text+ResponseText.substr(ResponseText.indexOf("Query not successful"))+"\n";
		}
		
	if (ResponseText.indexOf("<br />\n<b>Fatal error</b>") > -1){
		if (!errorflag){
			error_text="Seitenadresse: "+PageAddress+"\n";
			}
		errorflag=true;
		err_type=err_type+"PHP fatal error\n";
		error_text=error_text+ResponseText.substr(ResponseText.indexOf("Fatal error"))+"\n";
		}
		
	if (ResponseText.indexOf("<br />\n<b>Notice</b>") > -1){
		if (!errorflag){
			error_text="Seitenadresse: "+PageAddress+"\n";
			}
		errorflag=true;
		err_type=err_type+"PHP Notice\n";
		i=ResponseText.indexOf("<br />\n<b>Notice</b>");
		i2=i;
		while (i > -1){
			error_text=error_text+ResponseText.substr(i2+10,ResponseText.substr(i2+9).indexOf("<br />")-1)+"\n";
			i=ResponseText.substr(i2+10).indexOf("<br />\n<b>Notice</b>");
			i2=i2+i+10;
			}
		}
	if (errorflag){
		error_text=remove_tags(BRtoCrLf(error_text));
		error_data="err_type="+err_type+"&err_page="+amp_to_subst(PageAddress)+"&err_text="+amp_to_subst(error_text);
		alert(error_text);
		error_reporting(error_data);
		}
	return ResponseText;
	}
		
function addslashes(str) {
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\'/g,'\\\'');
	str=str.replace(/\"/g,'\\"');
	str=str.replace(/\0/g,'\\0');
	return str;
	}
function stripslashes(str) {
	str=str.replace(/\\'/g,'\'');
	str=str.replace(/\\"/g,'"');
	str=str.replace(/\\0/g,'\0');
	str=str.replace(/\\\\/g,'\\');
	return str;
	}
function amp_to_subst(str){
	return str.replace(/\&/g,'[a!m!p]');
	}
function subst_to_amp(str){
	return str.replace(/\[a!m!p]/g,'&');
	}
	
function CrLftoBR(str){
	retstr="";
	for (i = 0; i < str.length; i++)
		{
		if (str.charCodeAt(i) != 10)
			{
			retstr=retstr.concat(str.substr(i,1));
			}
		else
			{
			retstr=retstr.concat("<br>");
			}
		}
	return retstr;
	}
function BRtoCrLf(str){
	str=str.replace(/\<br \/>/g,'\n');
	return str.replace(/\<br>/g,'\n');
	}
	
function remove_tags(inpstring){
 		return inpstring.replace(/<\/?[^>]+(>|$)/g, "");
	}

function MsgBox(Msg,MsgType,Capt){
		alert(Msg);
		return "";
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function bringdatum(MySQL_Datum){
	return MySQL_Datum.substring(8,10)+"."+MySQL_Datum.substring(5,7)+"."+MySQL_Datum.substring(0,4);
	}

function utf8_decode ( str_data ) {
    var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
    str_data += '';
    while ( i < str_data.length ) {
		c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    } 
    return tmp_arr.join('');
}

function utf8_encode ( argString ) {
    var utftext = "";
    var start, end;
    var stringl = 0; 
    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
		var enc = null;
 
        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
			enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;        }
    }
 
    if (end > start) {
        utftext += string.substring(start, string.length);    }
 
    return utftext;
}

function set_waitcursor(next_funct,zlevel)
	{
	document.getElementById('wait_shield').style.display="block";
	document.getElementById('wait_shield').style.zIndex=zlevel;
	setTimeout(next_funct,1000);
	}

//This Javascript code trim implementation removes all leading and trailing occurrences of a set of characters specified. If no characters are specified it will trim whitespace characters from the beginning or end or both of the string.
//Without the second parameter, Javascript function will trim these characters:
//" " (ASCII 32 (020)), an ordinary space.
// \t  (ASCII 9 (009)), a tab.
// \n  (ASCII 10 (00A)), a new line (line feed).
// \r  (ASCII 13 (00D)), a carriage return.
// \0  (ASCII 0 (000)), the NUL-byte.
// \x0B  (ASCII 11 (00B)), a vertical tab.

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
} 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
} 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function emailcheck(instr) {
	emailadr=instr;
	var at="@";
	var dot=".";
	var lat=emailadr.indexOf(at);
	var lstr=emailadr.length;
	var ldot=emailadr.indexOf(dot);
	if (emailadr.indexOf(at)==-1){
		return false;
		}
	if (emailadr.indexOf(at)==-1 || emailadr.indexOf(at)==0 || emailadr.indexOf(at)==lstr){
		return false;
		}
	if (emailadr.indexOf(dot)==-1 || emailadr.indexOf(dot)==0 || emailadr.indexOf(dot)==lstr){
		return false;
		}
	if (emailadr.indexOf(at,(lat+1))!=-1){
		return false;
		}
	if (emailadr.substring(lat-1,lat)==dot || emailadr.substring(lat+1,lat+2)==dot){
		return false;
		}
	if (emailadr.indexOf(dot,(lat+2))==-1){
		return false;
		}
	if (emailadr.indexOf(" ")!=-1){
		return false;
		}
	return true;				
	}

function popup(XPix,YPix,w_url,w_name,scrollen,resizen){
	popupwind=window.open(w_url,w_name, "width=" + XPix + ",height=" + YPix+", resizable="+resizen+", scrollbars="+scrollen);
	popupwind.focus();
}


