var req;
var which;
var isWorking = false;
var isContentWorking = false;
var browser = navigator.appName;

function getURL(url) {
	if(isWorking == true) { setTimeout("getURL(\""+url+"\",\""+text+"\")", "100"); return false; }

	if (url != "") {
		isWorking = true;

		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
			req.onreadystatechange = processStateChange;
			req.open("GET", url, true);
			req.send(null);
		} else if (window.ActiveXObject) { // IE
			try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			if (req) {
				req.onreadystatechange = processStateChange;
				req.open("GET", url, true);
				req.send();
                        } else {
				alert("Your browser does not support ajax");
			}
                } else {
			alert("Your browser does not support ajax");
		}
	}
	return 0;
}

function postURL(url, outbuf) {
	if(isWorking == true) { setTimeout("postURL(\""+url+"\",\""+outbuf+"\",\""+text+"\")", "100"); return false; }
	isWorking = true;

	if (url != "") {
                if (window.XMLHttpRequest) {
                        req = new XMLHttpRequest();
                        req.onreadystatechange = processStateChange;
                        req.open("POST", url, true);
			req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
                        req.send(outbuf);
                } else if (window.ActiveXObject) { // IE
                        try {
                                req = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch (e) {
                                req = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        if (req) {
                                req.onreadystatechange = processStateChange;
                                req.open("POST", url, true);
				req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
                                req.send(outbuf);
                        } else {
				alert("Your browser does not support ajax");
			}
                } else {
			alert("Your browser does not support ajax");
		}
	}

	return 0;
}

function processStateChange() {
	isWorking = false;
	isContentWorking = true;
	if (req.readyState == 4) { // Complete
		if(req.responseText == "" || req.responseText == null) {
			isWorking = false;
		} else {
			if(req.responseText.charAt(0) == "<") {
				if(req.responseText.charAt(1) != "!") {
					alert(req.responseText);
				} else {
					alert("Your session has expired!");
				}
				isWorking = false;
				isContentWorking = false;
			} else {
				isWorking = false;
				eval(req.responseText);
			}
		}
	}
}

function removeCR(inbuf) {
        var outbuf = "";
	if(inbuf) {
	        for (var i = 0; i < inbuf.length; i++) {
	                if (inbuf.charCodeAt(i) == 10) {
	                        outbuf += "%0A";  
	                } else if (inbuf.charCodeAt(i) == 13) {
	                        outbuf += "%0D";   
	                } else if (inbuf.charCodeAt(i) == 9) {
	                        outbuf += "%09";
	                } else {
	                        outbuf += inbuf.charAt(i);
	                }       
	        }
	}
        return outbuf;  
}                

function escapeString(inbuf) {
	if(inbuf) {
		var outbuf=inbuf;
	        outbuf=outbuf.replace(/\%/g,"%25");
	        outbuf=outbuf.replace(/!/g,"%21"); 
	        outbuf=outbuf.replace(/\"/g,"%22");
	        outbuf=outbuf.replace(/\#/g,"%23");
	        outbuf=outbuf.replace(/\$/g,"%24");
	        outbuf=outbuf.replace(/&/g,"%26"); 
	        outbuf=outbuf.replace(/'/g,"%27");
	        outbuf=outbuf.replace(/\^/g,"%5E");
	        outbuf=outbuf.replace(/\(/g,"%28");
	        outbuf=outbuf.replace(/\)/g,"%29");
	        outbuf=outbuf.replace(/=/g,"%3D"); 
	        outbuf=outbuf.replace(/,/g,"%2C");
	        outbuf=outbuf.replace(/`/g,"%60");
	        outbuf=outbuf.replace(/\[/g,"%5B");
	        outbuf=outbuf.replace(/\]/g,"%5D");
	        outbuf=outbuf.replace(/\{/g,"%7B");
	        outbuf=outbuf.replace(/\}/g,"%7D");
	        outbuf=outbuf.replace(/\?/g,"%3F");
	        outbuf=outbuf.replace(/;/g,"%3B"); 
	        outbuf=outbuf.replace(/:/g,"%3A");
	        outbuf=outbuf.replace(/\|/g,"%7C");
	        outbuf=outbuf.replace(/~/g,"%7E"); 
	        outbuf=outbuf.replace(/ /g,"%20");
	        outbuf=outbuf.replace(/\\/g,"%5C");
	        outbuf=outbuf.replace(/\+/g,"%2B");

	        return removeCR(outbuf);
	} else {
		return removeCR(inbuf);
	}        
}
