
var MyXMlHttp =
{
	_LoadingImg: "../images/loading.gif",
	_StateDiv: null,
	_XmlHttpPool: [],
	_ResData: "",
	_ResStatus: -1,
	_getXMLHttpObj: function()
	{
		for(var i=0;i<this._XmlHttpPool.length;i++)
		{
			var thisObjReadyState = this._XmlHttpPool[i].readyState;
			if(thisObjReadyState==0 || thisObjReadyState==4)
			{
				return this._XmlHttpPool[i];
			}
		}
		this._XmlHttpPool.push(this._setXMLHttpObj());
		return this._XmlHttpPool[this._XmlHttpPool.length -1];
	},
	_setXMLHttpObj: function()
	{
		var objXmlHttp;
		if(window.XMLHttpRequest)
		{
			objXmlHttp = new XMLHttpRequest();
		}
		else
		{
			var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
			for(var j=0;j<MSXML.length;j++)
			{
				try
				{
					objXmlHttp =new ActiveXObject(MSXML[j]);
					break;
				}
				catch(e)
				{
				}
			}			
		}
		return objXmlHttp;
	},
	_SendReq: function(url,method,dataSended,callBakFunction)
	{
		var aXmlHttpObj = this._getXMLHttpObj();
		if(aXmlHttpObj)
		{
			try
			{				
				if(url.indexOf("?")>-1)
				{
					url = url + "&randparam=" + Math.random().toString().replace("0.","");
				}
				else
				{
					url = url + "?randparam=" + Math.random().toString().replace("0.","");
				}
				
				aXmlHttpObj.abort();				
				aXmlHttpObj.open(method,url,true);
				aXmlHttpObj.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=utf-8');				
				aXmlHttpObj.send(dataSended);
				
				aXmlHttpObj.onreadystatechange=function()
				{
					switch(aXmlHttpObj.readyState)
					{
						case 0: case 1: case 2: case 3:
						{  
							//MyXMlHttp._DisPlayAjaxState("Loading...");							
							break;
						}	
						case 4:
						{	 	
						    //MyXMlHttp._DisPlayAjaxState("Data Loaded");		
							if(aXmlHttpObj.status==200)
							{	
								callBakFunction(aXmlHttpObj);
								MyXMlHttp._ResStatus = 0; 
								
							}
						}						
					}
					//MyXMlHttp._HideAjaxState();
				}
			}
			catch(e)
			{
				MyXMlHttp._HideAjaxState();
				alert(e.message);
			}
			
		}
	},
	_DisPlayAjaxState: function(stateMsg)
	{
		this._StateDiv = document.getElementById("divLoading");				
		if(!this._StateDiv)
		{		    
			this._StateDiv = document.createElement("div");
			this._StateDiv.setAttribute("id","divLoading");
			this._StateDiv.style.width = "200px";
			this._StateDiv.style.height = "50px";
			this._StateDiv.style.left = ((document.body.clientWidth - 10 )/2 - 100) + "px";
			this._StateDiv.style.top =  ((document.body.clientHeight - 5 )/2 - 30) +"px";
			this._StateDiv.style.border = "1px solid #000";
			this._StateDiv.style.position = "absolute";
			this._StateDiv.style.background = "#fff";
		}
	    if(this._LoadingImg!="")
	    {
		    this._StateDiv.innerHTML = "<img src='"+ this._LoadingImg +"' /><br/>";
		    this._StateDiv.innerHTML += "<span id='loadMsg'>@Loading@</span>";
	    }
	    else
	    {
		    this._StateDiv.innerHTML = "<span id='loadMsg'>@Loading@</span>";
	    }
		this._StateDiv.innerHTML = this._StateDiv.innerHTML.replace("@Loading@",stateMsg);
		this._StateDiv.style.display = "block";
		if(!document.getElementById("divLoading"))
		{
		    document.body.appendChild(this._StateDiv);
		}
		
	},
	_HideAjaxState: function()
	{		
		if(this._StateDiv)
		{
			this._StateDiv.style.display = "none";
		}
	},
	//Display Ajax responsetext to a div
	_AjaxDiv: function(div,url)
	{	
	    var dspDiv = document.getElementById(div);
	   	//this._StateDiv = dspDiv;	
		this._SendReq(url,"GET",null,function(xmlHttpObj)
		{
			if(dspDiv)
			{
				dspDiv.innerHTML = xmlHttpObj.responseText;
			}
		}
		);
		
	},
	_AjaxGetData: function(url)
	{		    
		this._SendReq(url,"GET",null,function(xmlHttpObj)
		{ 
			MyXMlHttp._ResData = xmlHttpObj.responseText;
		}
		);
		return MyXMlHttp._ResData;
	},
	//Alert result message	
	_AjaxAlert: function(url)
	{
		this._SendReq(url,"GET",null,function(xmlHttpObj)
		{
			MyXMlHttp._HideAjaxState();
			alert(xmlHttpObj.responseText);			
		})
	},
	_AjaxDivSendData: function(div,url,data)
	{
	    var dspDiv = document.getElementById(div);
	   	//this._StateDiv = dspDiv;	
		this._SendReq(url,"POST",data,function(xmlHttpObj)
		{
			if(dspDiv)
			{
				dspDiv.innerHTML = xmlHttpObj.responseText;
			}
		}
		);
	}
	
};

var request ={
 QueryString : function(val) 
 {
     var uri = window.location.search;
     uri = unescape(uri);
     var re = new RegExp("" +val+ "\=([^\&\?]*)", "ig");
     return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);
 }};
