﻿// Common utility functions

function getQueryParams()
{
    var qsParmArray = new Array();
    var query = window.location.search.substring(1);
    var parms = query.split('&');
    for (var i=0; i<parms.length; i++) 
    {
        var pos = parms[i].indexOf('=');
        if (pos > 0) 
        {
            var key = parms[i].substring(0,pos);
            var val = parms[i].substring(pos+1);
            qsParmArray[key] = val;
        }
    } 
    return qsParmArray;
}

function createXMLHttpRequest() 
{
    try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
    try { return new XMLHttpRequest(); } catch (e) {}
    alert("This browser does not support Ajax");
    return null;
}

function loadDivHTML( url, div) 
{
    var xmlHttpRequest = createXMLHttpRequest();

    var handler = function() {
        if (xmlHttpRequest.readyState==4) {
            if (xmlHttpRequest.status==200) {
                div.innerHTML = xmlHttpRequest.responseText;
            } else {
                alert('Error - LoadHTML failed.');
            }
        }
    }
    
    xmlHttpRequest.onreadystatechange = handler;
    xmlHttpRequest.open("GET", url, true);
    xmlHttpRequest.send(null);
}

//function doWebRequest(id, url, callback)
//{
//    var xmlHttpRequest = createXMLHttpRequest();

//    var handler = function() {
//        if (xmlHttpRequest.readyState==4) {
//           if (xmlHttpRequest.status==200) {
//                callback(id, xmlHttpRequest.responseText);
//            } else {
//                callback(id, null, xmlHttpRequest.status);
//            }
//        }
//    }
//    xmlHttpRequest.onreadystatechange = handler;
//    xmlHttpRequest.open("GET", url, true);
//    xmlHttpRequest.send(null);
//}

//function JsonRequest(id, url, callback) 
//{
//    this.id = id;
//    this.url = url;
//    this.url += ((url.indexOf("?") == -1) ? "?" : "&"); 
//    this.url += "callback=" + callback;
//}

//JsonRequest.prototype = 
//{
//    submit: function()	
//    {
//        var jsonCallback = function(json, error)
//        {
//            if(json != null)
//            {
//                eval(json);
//            }
//        }
//        doWebRequest(this.url, jsonCallback)
//    }
//}

function JsonRequest(id, url) 
{
    var bodyTag = document.getElementsByTagName("body").item(0);
    this.divObjectReference = document.createElement("div");
    this.divObjectReference.id = id;
    this.id = id;
    this.url = url;

    bodyTag.appendChild(this.divObjectReference);
}

JsonRequest.prototype = 
{
    doRequest: function(callback)	
    {
        var headTag = document.getElementsByTagName("head").item(0);

        var Node = $get(this.id + "_script");
        if (Node != null) 
        {
            Node.parentNode.removeChild(Node);
        }

        var requestUrl = this.url + ((this.url.indexOf("?") == -1) ? "?" : "&"); 
        requestUrl += "callback=" + escape(callback);

        var scriptObj = document.createElement("script");
        scriptObj.setAttribute("type", "text/javascript");
        scriptObj.setAttribute("src", requestUrl);
        scriptObj.setAttribute("id", this.id + "_script");

        headTag.appendChild(scriptObj);
    }
}

function makeValidHTMLId(str)
{
    return str.replace(/\W/g,"__");
}

// Notify ScriptManager that this is the end of the script.
if (typeof(Sys) !== 'undefined') {
  Sys.Application.notifyScriptLoaded();
}
