/**
 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;
}


/**
 <summary>
 Gets the response stream from the passed url, and then calls the callbackFuntion passing the response and the div_ids.
 </summary>
 <param name="url">The url to make the request to get the response data.</param>
 <param name="callbackFunction">The function to call after the response has been recieved. the response <b>must</b> always be the first argument to the function.</param>
 <param name="params"> (optional) Any other parameters you want to pass to the functions. (Note: only constants/strings/globals can be passed as params, most variables will be out of scope.) </param>
 </summary>
 <example>
 <code>
 PassAjaxResponseToFunction('?getsomehtml=1', 'FunctionToHandleTheResponse', "\'div1\',\'div2\',\'div3\'');
 
 function FunctionToHandleTheResponse(response, d1, d2, d3){
 var data = response.split(';');
 document.getElementById(d1).innerHTML = data[0];
 document.getElementById(d2).innerHTML = data[1];
 document.getElementById(d3).innerHTML = data[2];
 }
 </code>
 </example>
 */
function PassAjaxResponseToFunction(url, callbackFunction, params) {		
    if(debug) {
        alert(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);
    }
}


/**
 ///<summary>
 ///Sets the innerHTML property of obj_id with the response from the passed url./
 ///</summary>
 ///<param name="url">The url to make the request to get the response data.</param>
 ///<param name="obj_id">The object or the id of the object to set the innerHTML for.</param>
 */
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(debug) alert(xmlhttp.status);
                if (xmlhttp.status==200) {
                    if(debug){
                        alert(xmlhttp.responseText);
                    }
                    if(typeof obj_id == 'object'){
                        obj_id.innerHTML = xmlhttp.responseText;
                    } else {
                        document.getElementById(obj_id).innerHTML = xmlhttp.responseText;
                    }
                } else if(debug){
                    document.Write(xmlhttp.responseText);
                }
            }
        }
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null);
    }
}

function SendAjaxAction(url) {		
    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(debug) alert(xmlhttp.status);
                if (xmlhttp.status==200) {
                    if(debug){
                        alert(xmlhttp.responseText);
                    }
                } else if(debug){
                    document.Write(xmlhttp.responseText);
                }
            }
        }
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null);
    }
}



