// Copyright © 2009 Formative Innovations Inc. All Rights Reserved.
// The content contained within this file is both confidential and privileged. 
// You are hereby notified that any review, retransmission, conversion to hard copy, copying, circulation
// or other use of the content contained within this file is strictly prohibited.

function CheckFlashVersion() {
    var flash_result = false;
    flash_result = DetectFlashVer('10', '0', '12');
    if (flash_result == false) { window.location = "/NoFlash.html"; }
}
function DetectBrowser() {

    var result = "other";

    try {
        var agent = navigator.userAgent.toLowerCase();

        if (agent.indexOf("msie") != -1) {

            result = "msie";
        }
        else if (agent.indexOf("firefox") != -1) {

            result = "firefox";
        }
        else if (agent.indexOf("opera") != -1) {

            result = "opera";
        }
        else if (agent.indexOf("safari") != -1) {

            result = "safari";
        }
    }
    catch (Exception) {
        alert('DetectBrowser() Exception: ' + Exception.description);
    }

    return result;
}

function ShowWindow(url, name, width, height, allow_scroll, allow_resize) {
    try {
        var scroll_value = 0;
        var resize_value = 0;
        
        if (allow_scroll == 'true') {
            scroll_value = 1;
        }

        if (allow_resize == 'true') {
            resize_value = 1;
        }

        var win = window.open(url, name, 'width=' + width + ', height=' + height + ', scrollbars=' + scroll_value + ' , resizeable=' + resize_value + ', status=1, toolbar=0, menubar=0, location=0');
        return win;
    }
    catch (Exception) {
        alert('PopUpWindow() Exception: ' + Exception.description);
    }
}

function DetectPlatform() {

    var result = "other";

    try {
        var app_version = navigator.appVersion.toLowerCase();

        if (app_version.indexOf("win") != -1) {
            result = "win";
        }
        else if (app_version.indexOf("mac") != -1) {
            result = "mac";
        }
    }
    catch (Exception) {
        alert('DetectPlatform() Exception: ' + Exception.description);
    }

    return result;
}

function ShowDivElement(div_id, visible) {
    try {
        if (visible == 'true') {
            document.getElementById(div_id).style.overflow = "visible";
            document.getElementById(div_id).style.display = "block";
        }
        else {
            document.getElementById(div_id).style.overflow = "hidden";
            document.getElementById(div_id).style.display = "none";
        }
    }
    catch (Exception) {
        alert('ShowDivElement() Exception: ' + Exception.description);
    }
}
function GetStyleSheet(title) {
    for (var i = 0; i < document.styleSheets.length; i++) {
        var sheet = document.styleSheets[i];
        if (sheet.title == title) {
            return sheet;
        }
    }
}
function GetStyleSheetElement(id) {
    for (var i = 0; i < document.getElementsByTagName("link").length; i++) {
        var linkElement = document.getElementsByTagName("link")[i];
        //alert("linkElement[" + i + "].id: " + linkElement.id);
        if (linkElement.id == id) {
            //alert("Found CSS Element: " + id);
            return linkElement;
        }
    }
}
function AssignStylesheet() {
    var browser = DetectBrowser();
    if (browser == "msie") {
        //enter IE specific css        
        document.createStyleSheet("/Styles/IE_Layout.css");
        document.createStyleSheet("/Styles/IE_Content.css");
        document.createStyleSheet("/Styles/IE_Controls.css");
    }
    else if (browser == "firefox") {
        //do nothing since default styles are meant for ff & opera
    }
    else if (browser == "opera") {
        //do nothing since default styles are meant for ff & opera
    }
    else if (browser == "safari") {
    //enter safari specific css
        var defaultLayout = GetStyleSheetElement("layoutStyle");
        var defaultControls = GetStyleSheetElement("controlStyle");
        var defaultContent = GetStyleSheetElement("contentStyle");

        var headTag = defaultContent.parentNode;
        headTag.removeChild(defaultLayout);
        headTag.removeChild(defaultControls);
        headTag.removeChild(defaultContent);
        
        var layoutSS = document.createElement('link');
        layoutSS.rel = 'stylesheet';
        layoutSS.type = "text/css"
        layoutSS.href = "/Styles/Safari_Layout.css";
        var contentSS = document.createElement('link');
        contentSS.rel = 'stylesheet';
        contentSS.type = "text/css"
        contentSS.href = "/Styles/Safari_Content.css";        
        var controlsSS = document.createElement('link');
        controlsSS.rel = 'stylesheet';
        controlsSS.type = "text/css"
        controlsSS.href = "/Styles/Safari_Controls.css";
        document.getElementsByTagName("head")[0].appendChild(layoutSS);
        document.getElementsByTagName("head")[0].appendChild(contentSS);
        document.getElementsByTagName("head")[0].appendChild(controlsSS);
    }
    else {
        //use default styles which are present on the page
    }
}

function disableEnterKey(e) 
{
    var key;
    if (window.event)
        key = window.event.keyCode; //IE
    else
        key = e.which; //firefox

    return (key != 13);
}


// Flash Player Version Detection - Rev 1.6
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) {
    versionStr = GetSwfVer();
    if (versionStr == -1) {
        return false;
    } else if (versionStr != 0) {
        if (isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
            tempString = tempArray[1]; 		// "2,0,0,11"
            versionArray = tempString.split(","); // ['2', '0', '0', '11']
        } else {
            versionArray = versionStr.split(".");
        }
        var versionMajor = versionArray[0];
        var versionMinor = versionArray[1];
        var versionRevision = versionArray[2];

        // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) { return true; } 
        else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer)){return true; }
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision)){ return true;}
            }
        }
        return false;
    }
}
function GetSwfVer() {
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;

    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if (isIE && isWin && !isOpera) {
        flashVer = ControlVersion();
    }
    return flashVer;
}
function ControlVersion() {
    var version;
    var axo;
    var e;

    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }

    if (!version) {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 

            // default to the first public version
            version = "WIN 6,0,21,0";

            // throws if AllowScripAccess does not exist (introduced in 6.0r47)		
            axo.AllowScriptAccess = "always";

            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");

        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }

    return version;
}

