function Ajax()
{
	var XHR = null;
	var error = null;
	var response = null;
	var element = null;
	this.Call = Call;
	
	function Call(url, OnResponse, OnError, elmnt)
	{
		try
		{
			error = OnError;
			response = OnResponse;
			
			if(elmnt.style)
			    element=elmnt;
			else
			    element	= document.getElementById(elmnt);
			if(element)
	            if(element.style)
	                element.innerHTML+="<img style='display:none; position:absolute; border:solid activeborder 1pt;' src='design_images/loading.gif'  />";
	       
			BuildXHR(url);
		}
		
		catch(e)
		{
			error(e.message);
		}
	}
	

    
    function BuildXHR(url)
	{
		if (window.XMLHttpRequest)
		{
			/* Universal Read
			try
			{
				netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
			}
			catch(e)
			{
				alert("Permission UniversalBrowserRead denied.");
			}*/
			
			XHR = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			XHR = new ActiveXObject("Microsoft.XMLHTTP");
		}
		
		if (XHR == null)
		{
			alert ("Browser does not support HTTP Request");
			return;
		}		
		

		window.status = "Loading ...";
		XHR.onreadystatechange = StateChanged;
		XHR.open("GET",url,true);
		XHR.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 1900 00:00:00 GMT" );
		//XHR.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8" );	
		XHR.send(null);
	}
	
	function StateChanged() 
	{
		try
		{
			if (XHR.readyState == 4 || XHR.readyState == "complete")
			{
       	        if(element != null)
    			{
                  element.innerHTML=XHR.responseText;
                  if(element.getElementsByTagName("form"))
                    element=element.getElementsByTagName("form");
    			}
				
				if(response != null)
				{
                
					try
					{  if(XHR.readyState == 4)
					   response(XHR.responseText);
					}
					catch(e)
					{
					   eval(response);
					}
					
				}

			}
	
		}
		
		catch(e)
		{
			if(error != null)
			{
				error(e.message);
			}
			else
			{
				alert(e.message);
			}			
		}
		
		window.status = "Done";

	}
	}
