/* Ajax Functions - Author: Gladwin George Peter */

/* ############ Return ID Function ########### */
function $(id) {
    return document.getElementById(id);
}

/* ######## GetXmlHttpObject Function ######## */
function GetXmlHttpObject(handler) {
    var objXmlHttp = null

    if (navigator.userAgent.indexOf("Opera") >= 0) {
        objXmlHttp = new XMLHttpRequest();
        objXmlHttp.onload = handler;
        objXmlHttp.onerror = handler;

        return objXmlHttp;
    }

    if (navigator.userAgent.indexOf("MSIE") >= 0) {
        var strName = "Msxml2.XMLHTTP";

        if (navigator.appVersion.indexOf("MSIE 5.5") >= 0) {
            strName = "Microsoft.XMLHTTP";
        }
        try {
            objXmlHttp = new ActiveXObject(strName);
            objXmlHttp.onreadystatechange = handler;

            return objXmlHttp;
        }
        catch (e) {
            alert("ERROR: Scripting for ActiveX might be disabled. If so, please enable ActiveX.");
            return;
        }
    }

    if (navigator.userAgent.indexOf("Mozilla") >= 0) {
        objXmlHttp = new XMLHttpRequest();
        objXmlHttp.onload = handler;
        objXmlHttp.onerror = handler;

        return objXmlHttp;
    }
}

/* ########### makeRequest Function ########## */
//  URL        : server-side script name
//  parameters : URL parameters
//  callback   : callback function
//  requestType: POST or GET
//  async      : asycronous or synchronous (TRUE or FALSE)
function makeRequest(url, parameters, callback, requestType, async) {
    if (requestType == 'POST') {
        xmlHttp = GetXmlHttpObject(callback);

        xmlHttp.open("POST", url, async);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        xmlHttp.send(parameters);
    }
    else if (requestType == "GET") {
        url = url + '?' + parameters;
        xmlHttp = GetXmlHttpObject(callback);

        xmlHttp.open("GET", url, async);
        xmlHttp.send(null);
    }
}

