﻿//<!-- REGION: LOCAL FIELDS -->
var int_BrowserVersion;
var string_AppCodeName;
var string_BrowserName;
var string_BrowserVersion;
//<!-- END_REGION -->

//<!-- REGION: LOCAL OBJECTS -->
var object_XmlHttp;
//<!-- END_REGION -->

//<!-- REGION: LOCAL METHODS -->
//<!-- REGION: LOCAL HELPER METHODS -->


function BackgroundImage(obj_element, str_url)
{
    try
    {
        //<!-- REGION: LOCAL FIELDS -->
        //<!-- END_REGION -->
        obj_element.style.backgroundImage = "url(" + str_url + ")";
    }
    catch(err)
    {
        alert(ComposeErrMsg("BackgroundImage(obj_element, str_url)", null, err));
    }
}

function CheckContainsItem(obj_item, obj_arr)
{
    try
    {
        //<!-- REGION: LOCAL FIELDS -->
        //<!-- END_REGION -->
        for (i = 0;i < obj_arr.length; i++){
            if(obj_arr[i] == obj_item) {
                return true; } }
        return false;
    }
    catch(err)
    {
        alert(ComposeErrMsg("CheckContainsItem(obj_item, obj_arr))", null, err));
    }
}

function ComposeErrMsg(str_FunctionTitle, str_ErrorMessage, obj_Err)
{
    //<!-- REGION: LOCAL FIELDS -->
    var string_msg;
    //<!-- END_REGION -->
    
    string_msg = "There was a problem while trying to execute some JavaScript.\n\n";
    string_msg += "Function: " + str_FunctionTitle + "\n";
    string_msg += "Function Error Description: " + str_ErrorMessage + "\n";
    string_msg += "Error Object Name: " + obj_Err.name + "\n";
    string_msg += "Error Object Number: " + obj_Err.number + "\n";
    string_msg += "Error Object Description: " + obj_Err.description + "\n";
    string_msg += "Error Object Message: " + obj_Err.message + "\n";
    return string_msg;
}

function CursorIcon(obj_domElement, enum_cursorIconEnum)
{
    try
    {
        //<!-- REGION: LOCAL FIELDS -->
        //<!-- END_REGION -->
        obj_domElement.style.cursor=enum_cursorIconEnum;
    }
    catch(err)
    {
        alert(composeErrMsg("CursorIcon(obj_domElement, enum_cursorIconEnum)", null, err));
    }   
}

function ExecuteXmlHttp(string_WebMethod, string_Data)
{
    try
    {
        //<!-- REGION: LOCAL FIELDS -->
        //<!-- END_REGION -->
        object_XmlHttp.open("POST", string_WebMethod, false);
        object_XmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        object_XmlHttp.send(string_Data);
    }
    catch(err)
    {
        alert(ComposeErrMsg("ExecuteXmlHttp(string_WebMethod, string_Data)", null, err));
    }
}

function GetBrowserInfo()
{
    try
    {
        string_AppCodeName = navigator.appCodeName;
        string_BrowserName = navigator.appName;
        string_BrowserVersion = navigator.appVersion;
        int_BrowserVersion = parseFloat(string_BrowserVersion);
    }
    catch(err)
    {
        alert(ComposeErrMsg("GetBrowserInfo()", null, err));
    }
}

/* Stupid IE can't parse objects correctly so this function will not work with IE on every occasion (Just one time which is the strange M$ thing) */
function OpacitySetting(obj_Element, int_filter, flt_opacity)
{
    try
    {
        obj_Element.style.filter="alpha(opacity=" & int_filter & ")";
        obj_Element.style.opacity=flt_opacity;
    }
    catch(err)
    {
        alert(ComposeErrMsg("OpacitySetting(obj_Element, int_filter, flt_opacity)", null, err));
    }
}

function ScrollTo(str_ScrollElementId, str_ScrollStoreElementId)
{
    try
    {
        if (document.getElementById(string_ScrollElementId) !== undefined){
            document.getElementById(string_ScrollElementId).scrollTop = document.getElementById(string_ScrollStoreElementId).value; }
    }
    catch(err)
    {
        alert(ComposeErrMsg("ScrollTo(str_ScrollElementId, str_ScrollStoreElementId)", null, err));
    }
}

function SetScroll(str_ScrollStoreElementId, str_ScrollElementId)
{
    try
    {
        document.getElementById(string_ScrollStoreElementId).value = document.getElementById(string_ScrollElementId).scrollTop;
    }
    catch(err)
    {
        alert(ComposeErrMsg("SetScroll(str_ScrollStoreElementId, str_ScrollElementId)", null, err));
    }
}

function TryCreateXmlHttp()
{
    try
    {
        //<!-- REGION: LOCAL FIELDS -->
        var int_BrowserCase;
        //<!-- END_REGION -->
        
        object_XmlHttp = new function() {
            try { return new XMLHttpRequest() } catch(err) {}
            try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch(err) {}
            try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch(err) {}
            try { return new ActiveXObject("Msxml2.XMLHTTP") } catch(err) {}
            try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(err) {}
            throw new Error( "Error encountered while creating XMLHttpRequest/ActiveXObject objects." )
        };

        //Set connection object based on browser type.

        // ** Setup the XmlHttp object.
        object_XmlHttp.onreadystatechange = function()
            {
                if(object_XmlHttp.readyState == 4 || object_XmlHttp == "complete"){
                    ajaxCallback(object_XmlHttp); }
            }
    }
    catch(err)
    {
        var string_ErrDescription = "Your browser cannot support AJAX. Some features on this web page may not function/display correctly";
        alert(ComposeErrMsg("TryCreateXmlHttp()", string_ErrDescription, err));
    }
}

function WindowLocation(str_windowUrl)
{
    try
    {
    
        window.location=str_windowUrl;
    }
    catch(err)
    {
        alert(ComposeErrMsg("windowLocation(str_windowUrl)", null, err));
    }   
}
//<!-- END_REGION -->

//<!-- REGION: LOCAL EVENT HANDLERS -->
// Remember to attach functions to events in reverse order as browsers tend to execute latest entry first.
if (window.addEventListener){
    //window.addEventListener('load', TryCreateXmlHttp, false); 
    window.addEventListener('load', GetBrowserInfo, false); }
if (window.attachEvent){
    //window.attachEvent("onload", TryCreateXmlHttp);
    window.attachEvent("onload", GetBrowserInfo); }
//<!-- END_REGION -->
//<!-- END_REGION -->
