/**
SAL - Simple Ajax Lib. 23-Sep-2005
by Nigel Liefrink
Email: leafrink@hotmail.com
*/

var debug = false;
/**
Browser Compatability function.
Returns the correct XMLHttpRequest depending on the current browser.
*/
function GetXmlHttp() {	
	var xmlhttp = false;
	if (window.XMLHttpRequest)
	{
		xmlhttp = new XMLHttpRequest();
  }
	else if (window.ActiveXObject)// code for IE
	{
		try 
		{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlhttp=false;
			}
		}
	}
	return xmlhttp;
}

function PassAjaxResponseToFunction(url, callbackFunction, params)
{		
  var xmlhttp = new GetXmlHttp();
  //now we got the XmlHttpRequest object, send the request.
  if (xmlhttp)
  {
    xmlhttp.onreadystatechange = function () 
                                {
	                                if (xmlhttp && xmlhttp.readyState==4)
	                                {//we got something back..
		                                if (xmlhttp.status==200)
		                                {
			                                var response = xmlhttp.responseText;
			                                var functionToCall = callbackFunction+'(response,'+params+')';
			                                if(debug){
				                                alert(response);
				                                alert (functionToCall);
			                                }
			                                eval(functionToCall);
		                                } else if(debug){
			                                document.write(xmlhttp.responseText);
		                                }
	                                }
                                }
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
  }
}


function SetInnerHTMLFromAjaxResponse(url, obj_id)
{		
  var xmlhttp = new GetXmlHttp();
  //now we got the XmlHttpRequest object, send the request.
  if (xmlhttp)
  {
  
    xmlhttp.onreadystatechange = function () 
                                {
	                                if (xmlhttp && xmlhttp.readyState==4)
	                                {//we got something back..
		                                if (xmlhttp.status==200)
		                                {
			                                if(debug){
				                                alert(xmlhttp.responseText);
			                                }
			                                if(typeof obj_id != 'object')
			                                {
			                                	obj_id = document.getElementById(obj_id);
			                                }
			                                
			                                if(typeof obj_id == 'object'){
				                                obj_id.innerHTML = xmlhttp.responseText;
			                                }
			                                
		                                } else if(true || debug){
		                                	alert(xmlhttp.responseText);
			                                document.Write(xmlhttp.responseText);
		                                }
	                                }
                                }
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
  }
}

function executeAjaxStatementWithLoader(url, loaderSpanId)
{
	document.getElementById(loaderSpanId + "_link").style.visibility = "hidden";
	var loaderSpan = document.getElementById(loaderSpanId);
	showAjaxLoader(loaderSpan);
	PassAjaxResponseToFunction(url, "executeAjaxStatementWithLoaderCallback", '"' + loaderSpanId + '"')
}

function executeAjaxStatementWithLoaderCallback(response, loaderSpanId)
{
	eval(response);
	var loaderSpan = document.getElementById(loaderSpanId);
	stopAjaxLoader(loaderSpan);
	document.getElementById(loaderSpanId + "_link").style.visibility = "visible";
}

function showAjaxLoaderURL(obj, imageURL)
{
	obj.innerHTML = '<img src="' + imageURL + '" />';
}

function stopAjaxLoader(obj)
{
	obj.innerHTML = '';
}

function showAjaxLoader(obj)
{
	showAjaxLoaderURL(obj, "../img/ajax-loader.gif");
}

