var domParser = false

function ReplaceDivs(rootElement)
{
    var nodes = rootElement.childNodes;
    for (var i=0; i < nodes.length; i++) 
    {
        var tag = nodes[i].nodeName
        var div = document.getElementById(tag);
        if (div) {
            div.innerHTML = domParser ? nodes[i].text : nodes[i].textContent
        }
    }
}

function LoadUrl(url, root, callback)
{       
    if (callback == undefined) {
        callback = 'ReplaceDivs';
    }
    var httpReq = new GetXMLHttpRequest();
    if (httpReq)
    {
        httpReq.onreadystatechange = 
            function () {

                if (httpReq && httpReq.readyState==4)
                {
                    if (httpReq.status==200)
                    {
                        var rootElement = GetRootElement(httpReq, root);
                        eval(callback + '(rootElement)');
                    } 
                }
            }
        httpReq.open("GET", url, true);
        httpReq.send(null);
    }
}

function GetRootElement(req, root)
{
    var element = null;
    if (domParser) {
        domParser.async = false;
        domParser.loadXML(req.responseText);
        element = GetNode(domParser.documentElement, root);
    } else {
        element = req.responseXML.getElementsByTagName(root)[0];
    }
    return element;
}

function GetXMLHttpRequest() 
{
    domParser = false
    if (window.ActiveXObject)
    {
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            domParser = new ActiveXObject("Microsoft.XMLDOM");
        } 
        catch (ex1) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                domParser = new ActiveXObject("Microsoft.XMLDOM");
            } catch (ex2) {
                xmlhttp = false;
	        domParser = false
            }
        }
    }
    else if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}

function GetNode(rootElement, tag)
{
    if (! rootElement.childNodes) {
        return rootElement
    }
    var nodes = rootElement.childNodes;
    for (var i=0; i < nodes.length; i++) 
    {
        if (tag == nodes[i].nodeName) {
            return nodes[i]
        }
    }
    return rootElement
}

function GetElementValue(rootElement, tag)
{
    var node = rootElement.getElementsByTagName(tag)
    if (node && node.length > 0) {
        return (typeof node[0].textContent != 'undefined') ? node[0].textContent : node[0].text;
    }
    return false
}

function GetAttributeValue(rootElement, name)
{
    var attrs = rootElement.attributes
    if (attrs) {
        for (var i=0; i < attrs.length; i++) {
            if (attrs[i].name == name) {
                return attrs[i].value
            }
        }
    }
    return false
}

function GetParameter(param)
{
    var query = window.top.location.search.substring(1);
    var param = param + "=";

    if (query.length > 0) 
    {
        var begin = query.indexOf(param);
        if (begin != -1) {
            begin += param.length;
            end = query.indexOf("&" , begin);
            if (end == -1) {
                end = query.length
            }
            return unescape(query.substring(begin, end));
        }
    }
    return false;
}

function FormatCapHours(millis) {
    return String(millis / (60*60*1000)).replace(/([^\.]*)(\.\d\d).*/g, "$1$2");
}

function OpenWindow(url, name, options) {
    window.open(url, name, options);
}

