//==============================================================================
// File:    utils.js
// Brief:   Implementation of JavaScript utility functions and globals.
// Author:  Jordan Massey
// Created: 07.03.2008
// Updated: 07.04.2008
//==============================================================================

function UtInclude (file) {
    document.write('<script type = "text/javascript" language = "javascript" src = "' + jsFile + '"></script>');
}

// ERROR HANDLING
//==============================================================================
function Error (msg, url, line) {
    alert("ERROR!\nDetails: " + msg + "\nFile url: " + url + "\nLine: " + line);
}

// HTML DOM FUNCTIONS
//==============================================================================
//==============================================================================
function DomGetChildByName (parent, childName) {
    var node = parent.firstChild;
    
    if (node == null)
        return null;
    
    while (node != null) {
        if (node.name == childName)
            return node;
        node = node.nextSibling;
    }
    return null;
}

//==============================================================================
function DomFilterNodeListByName (nodelist, nodename) {
    var newlist = new Array();
    var id = 0;
    
    for (i in nodelist) {
        if (nodelist[i].name == nodename) {
            newlist[id] = nodelist[i];
            ++id;
        }
    }
    
    return newlist;
}

//==============================================================================
// Returns an HTTP Request object for whichever browser the user is on.
function DomGetHTTPRequest () {
    var req = null;
    
    // Firefox, Opera, Safari
    try {
        req = new XMLHttpRequest();
    }
    catch (e) {
        // IE
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    
    // If an object was acquired, return it.
    if (req)
        return req;
    
    // AJAX not supported. User needs new browser!
    var msg; 
    
    msg = "This page requires Javascript features that your browser does not support. Please upgrade your browser to at least one of these versions:\n\n";
    msg += "Google Chrome.\n"
    msg += "Mozilla Firefox.\n";
    msg += "Safari 1.2.\n";
    msg += "Opera 8.\n";
    msg += "Internet Explorer 5.0.\n";
    msg += "Netscape 7.\n";
    msg += "\nSorry for the inconvinience.";
    alert(msg);
    return null;
}

