var LoadedLib;
if (!LoadedLib) LoadedLib={}
LoadedLib.FRS_Ajax=true;


function CFRS_Ajax()
{
	
	var xmlHttp=null;
	
	var BaseClass= this;
	
	this.ResultContainer=null;
	
	
	//set to a function to notify when the data loaded
	//OnRequestCompleted= fucntion () { alert('page loaed') }
	this.OnRequestCompleted=null;
	
	//this called before sending request
	this.OnBeforeSendRequest=null;
	
	
	this.Loadingimage = 'images/loading.gif';
	
	this.PostParams = '';
	
	this.RequestType='GET';
	
	
	//get the loaded data
	this.LoadedTextData=null;
	
	//Get Loaded data as XML
	this.LoadedXMLData=null;
	
	this.UseLoadImage=true;
	
	this.ReqURL='';
	



	
	this.SendRequest= function(URL)
	{
		if (URL.length==0 && this.ReqURL =='')
		{
			return;
		}
	
		if(URL.length)
		{
			this.ReqURL = URL ;
		}
	
	
		this.xmlHttp=GetXmlHttpObject();
		if (this.xmlHttp==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		}
		
		xmlHttp=this.xmlHttp;
		
		var nURL=uncache(URL);
		
		if(this.OnBeforeSendRequest!=null)
		{
			this.OnBeforeSendRequest();
		}
		
		if((this.ResultContainer!=null) && (this.UseLoadImage))
		{
			FRS_Public.GetElement(Container).innerHTML='<img src="' + this.LoadingImage + '">';
		}
		
		this.xmlHttp.onreadystatechange=stateChanged;
		
		
		if(this.RequestType=="POST")
		{
			this.xmlHttp.open("POST",nURL,true);
			this.xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			this.xmlHttp.setRequestHeader("Content-length", this.PostParams.length);
			this.xmlHttp.setRequestHeader("Connection", "close");
			this.xmlHttp.send(this.PostParams);
		}else
		{
			this.xmlHttp.open("GET",nURL,true);
			this.xmlHttp.setRequestHeader("Content-Type","text/html; charset=utf-8");
			this.xmlHttp.send(null);
		}
	}
	




	
	function stateChanged()
	{
		if (BaseClass.xmlHttp.readyState==4)
		{
			if(BaseClass.xmlHttp.status != 200)
			{
				alert("Ajax : Error Requestin Data");
			}
	
			if(BaseClass.ResultContainer!=null)
			{
				FRS_Public.GetElement(BaseClass.ResultContainer).innerHTML=xmlHttp.responseText;
			}
	
	
			BaseClass.LoadedTextData = xmlHttp.responseText;
			BaseClass.LoadedXMLData = xmlHttp.responseXML;
	
	
			if (BaseClass.OnRequestCompleted!=null)
			{
				BaseClass.OnRequestCompleted();
			}
		}
	}



	function GetXmlHttpObject()
	{
		var xmlHttp=null;
		try
		{
			// Firefox, Opera 8.0+, Safari
			xmlHttp=new XMLHttpRequest();
		}
		catch (e)
		{
			// Internet Explorer
			try
			{
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e)
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		
		return xmlHttp;
	}
	
	
	
	function uncache(url)
	{
		var d = new Date();
		var time = d.getTime();
		
		if(url.indexOf('?')!=-1)
		{
			return url + '&time='+time;
		}else
		{
			return url + '?time='+time;
		}
	}
}
