//------------------------
//-- START OF AJAX CODE --
//------------------------
var currentPage = "default.aspx";

function GetXMLHTTPObject()
{
    var XMLHTTP=false;    
    try {
        XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            XMLHTTP = false;
        }
    }    
    if (!XMLHTTP && typeof XMLHttpRequest!='undefined') {
        try {
            XMLHTTP = new XMLHttpRequest();
        } catch (e) {
            XMLHTTP=false;
        }
    }
    if (!XMLHTTP && window.createRequest) {
        try {
            XMLHTTP = window.createRequest();
        } catch (e) {
            XMLHTTP=false;
        }
    }
    return XMLHTTP;
}

function XMLHTTPObjectGet(url)
{
    var XMLHTTP = GetXMLHTTPObject();
    XMLHTTP.open("GET", url, true);
    
    XMLHTTP.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT");
    XMLHTTP.setRequestHeader("Pragma", "no-cache");
    XMLHTTP.setRequestHeader("Cache-Control", "no-cache");
    
    return XMLHTTP;
}
    
function GetPage(url, pnl)
{
    //Show Progress
    var html;
    html = "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" border=\"0\">";
    html += "<tr style=\"padding:30px 0px 30px 0px;\"><td align=\"center\"><img src=\"images/ajax-loader.gif\" width=\"32\" height=\"32\" border=\"0\" /></td></tr>";
    html += "</table>";
    document.getElementById(pnl).innerHTML = html;

    var XMLHTTP = XMLHTTPObjectGet(url + (url.indexOf("?") > -1 ? "&" : "?") + "ajax=1");
    XMLHTTP.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT");
    XMLHTTP.setRequestHeader("Cache-Control", "no-cache");
    XMLHTTP.setRequestHeader("Pragma", "no-cache");
    XMLHTTP.onreadystatechange = function(){
        if (XMLHTTP.readyState == 4)
        {
            pageTracker._trackPageview("/" + url);
            
            if(XMLHTTP.responseText.toLowerCase().indexOf("<body") > -1)
            {
                var html = XMLHTTP.responseText.substring(XMLHTTP.responseText.indexOf("<body") + 5);
                html = html.substring(html.indexOf(">") + 1);
                html = html.substring(0, html.indexOf("</body>"));
                document.getElementById(pnl).innerHTML = html;
            }
            else
            {
                document.getElementById(pnl).innerHTML = XMLHTTP.responseText;
            }
            
            //Process scripts...
            var scr = /<script[^>]+?>[^<]+<\/script>/gim;
            var scripts = XMLHTTP.responseText.match(scr);
            
            if(scripts != null)
            {
                var i;
                for(i = 0; i < scripts.length; i++)
                {
                    var scrStart = /<script.+?>/gi;
                    var scrEnd = /<\/script>/gi;
                    var script = scripts[i].replace(scrStart, "").replace(scrEnd, "");
                    eval(script);
                }
            }
            
            currentPage = url.substring(url.lastIndexOf("/") + 1);
        }
    }
    XMLHTTP.send(null);
}

function PostPage(frm, pnl)
{
    //Parse the form.
    var form = "";
    var i;
    for(i = 0; i < frm.length; i++)
    {
        if(frm[i].type == "radio")
        {
            if(frm[i].checked)
            {
                form += frm[i].name + "=" + escape(frm[i].value) + "&";
            }
        }
        else if(frm[i].type == "checkbox")
        {
            if(frm[i].checked)
            {
                form += frm[i].name + "=" + escape(frm[i].value) + "&";
            }
        }
        else if(frm[i].type == "select-one")
        {
            if(frm[i].options.length > 0)
            {
                form += frm[i].name + "=" + escape(frm[i].value) + "&";
            }
        }
        else if(frm[i].type == "select-multiple")
        {
            var j;
            for(j = 0; j < frm[i].options.length; j++)
            {
                if(frm[i].options[j].selected)
                {
                    form += frm[i].name + "=" + escape(frm[i].options[j].value) + "&";
                }
            }
        }
        else
        {
            form += frm[i].name + "=" + escape(frm[i].value) + "&";
        }
    }
    
    if(form != "")
    {
        form = form.substring(0, form.length - 1) + "&ajax=1";
    }
    else
    {
        form = "ajax=1";
    }

    //Show Progress
    var html;
    html = "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" border=\"0\">";
    html += "<tr style=\"padding:30px 0px 300px 0px;\"><td align=\"center\"><img src=\"images/ajax-loader.gif\" width=\"32\" height=\"32\" border=\"0\" /></td></tr>";
    html += "</table>";
    document.getElementById(pnl).innerHTML = html;

    //Get the new page.
    var XMLHTTP = GetXMLHTTPObject();
    XMLHTTP.open("POST", frm.action, true);
    XMLHTTP.setRequestHeader("Cache-Control", "no-cache");
    XMLHTTP.setRequestHeader("Pragma", "no-cache");
    XMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
    XMLHTTP.setRequestHeader("Content-Length", form.length);
    
    XMLHTTP.onreadystatechange = function(){
        if (XMLHTTP.readyState == 4) {
            if(XMLHTTP.responseText.toLowerCase().indexOf("<body") > -1)
            {
                var html = XMLHTTP.responseText.substring(XMLHTTP.responseText.indexOf("<body") + 5);
                html = html.substring(html.indexOf(">") + 1);
                html = html.substring(0, html.indexOf("</body>"));
                document.getElementById(pnl).innerHTML = html;
            }
            else
            {
                document.getElementById(pnl).innerHTML = XMLHTTP.responseText;
            }
            
            //Process scripts...
            var scr = /<script[^>]+?>[^<]+<\/script>/gim;
            var scripts = XMLHTTP.responseText.match(scr);
            
            if(scripts != null)
            {
                var i;
                for(i = 0; i < scripts.length; i++)
                {
                    var scrStart = /<script.+?>/gi;
                    var scrEnd = /<\/script>/gi;
                    var script = scripts[i].replace(scrStart, "").replace(scrEnd, "");
                    eval(script);
                }
            }
        }
    }
    
    XMLHTTP.send(form);
    return false;
}
//----------------------
//-- END OF AJAX CODE --
//----------------------
