﻿var XmlHttp = new Object;
function createXmlHttpRequest(){if (window.XMLHttpRequest) {return new XMLHttpRequest();}else if (window.ActiveXObject){try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(oError){try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(oError){}}}return null;}
				
XmlHttp.addURLParam = function(sURL, sParamName, sParamValue)
{
	sURL += ((sURL.indexOf("?") == -1)? "?" : "&");
	sURL += encodeURIComponent(sParamName) + "=" + encodeURIComponent(sParamValue);
	return sURL;
}

XmlHttp.addPostParam = function(sParams, sParamName, sParamValue)
{
	if (sParams.length > 0)
		sParams += "&";
	return sParams + encodeURIComponent(sParamName) + "=" + encodeURIComponent(sParamValue);
}
XmlHttp.encodeForm = function(oForm){
	var aParams = new Array();
	var len = oForm.elements.length;
	for(var i = 0; i < len; i++){
		oCtl = oForm.elements[i];
		if((oCtl.type == "checkbox" || oCtl.type == "radio") && !oCtl.checked) continue;
		sParam = encodeURIComponent(oCtl.name) + "=" + encodeURIComponent(oCtl.value);
		aParams.push(sParam);		
	}
	return aParams.join("&");
}

XmlHttp.get = function(sURL, bAsync, callback)
{
	var oRequest = createXmlHttpRequest();	
	if (oRequest != null)
	{
		oRequest.open("get", sURL, bAsync);
		if (bAsync)
		{
			oRequest.onreadystatechange = function(){
				if (oRequest.readyState == 4 && oRequest.status == 200)
					callback.HandleResponse(oRequest.responseText);
				else{callback.HandleError();}
			}
		}
		oRequest.send(null);
		if (!bAsync)
		{
			if (oRequest.readyState == 4 && oRequest.status == 200)
				callback.HandleResponse(oRequest.responseText)
		}
	}
	else
		alert("Your browser doesn't support XML HTTP requests.");
}

XmlHttp.post = function(sURL, bAsync, sParams, callback)
{
	var oRequest = createXmlHttpRequest();
	if (oRequest != null)
	{
		oRequest.open("post", sURL, bAsync);
		oRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		if (bAsync)
		{
			oRequest.onreadystatechange = function(){
				if (oRequest.readyState == 4 && oRequest.status == 200)
					callback.HandleResponse(oRequest.responseText)
				else if(oRequest.readyState == 4){callback.HandleError();}
			}
		}
		oRequest.send(sParams);
		if (!bAsync)
		{
			if (oRequest.readyState == 4 && oRequest.status == 200)
				callback.HandleResponse(oRequest.responseText)
		}
	}
	else
		alert("Your browser doesn't support XML HTTP requests.");
}
XmlHttp.redirect = function(sURL){
	endpos = window.location.href.lastIndexOf("/");
	aurl = window.location.href.slice(0, endpos);
	window.location.href = aurl + "/" + sURL;
}



