﻿//START KeyDownSSL.js

// The following contional statements allow the event to work in FireFox
if (window.document.addEventListener) {
    window.document.addEventListener("keydown", KeyDown, false);
} else {
    window.document.attachEvent("onkeydown", KeyDown);
}
function KeyDown(evt) {
    if (!evt) evt = event;
    if (evt.ctrlKey && evt.altKey && evt.keyCode == 83) { //CTRL+ALT+s
        //switch url protocol from http to https because ssl is enabled (see config key IsSSLEnabled in wcms_configuration table)
        if (document.URL.substring(0, 5) == 'https') {
            var strURL = document.URL;
        }
        else {
            var strURL = 'https' + document.URL.substring(4);
        }
        location.href = "/staff/Default.aspx?ReturnUrl=" + strURL;
    }
}

// END KeyDownSSL.js

/* "Common" JavaScript.  Used to be in Public.master */

function selectivelySelectText() {
    var txtSearchTerm1 = document.getElementById('txtSearchTerm');

    if (txtSearchTerm1.value != "SEARCH") {
        txtSearchTerm1.select();
    }
}

function selectivelyClearText() {
    var txtSearchTerm1 = document.getElementById('txtSearchTerm');

    if (txtSearchTerm1.value == "SEARCH") {
        txtSearchTerm1.value = '';
    }
}

function handleError() {
return true;
}
window.onerror = handleError;

function DoCallback(param1, param2) {
    Callback1.Callback(param1, param2);
}

function textboxMultilineMaxNumber(txt, maxLen) {
    try {
        if (txt.value.length > (maxLen - 1)) return false;
    } catch (e) {
    }
}

function GetNumberOfItemsStatic() {
    for (var t = 0; t <= 6; t++) {
        GetNumberOfItems('ctl00_phlMainContent_ctl00_imgHoverFeature' + t);
    }
}

// START AC_OETags.js
// 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 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;
}

// JavaScript helper required to detect Flash Player PlugIn version information
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;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
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 AC_AddExtension(src, ext) {
    if (src.indexOf('?') != -1)
        return src.replace(/\?/, ext + '?');
    else
        return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) {
    var str = '';
    if (isIE && isWin && !isOpera) {
        str += '<object ';
        for (var i in objAttrs)
            str += i + '="' + objAttrs[i] + '" ';
        for (var i in params)
            str += '><param name="' + i + '" value="' + params[i] + '" /> ';
        str += '></object>';
    } else {
        str += '<embed ';
        for (var i in embedAttrs)
            str += i + '="' + embedAttrs[i] + '" ';
        str += '> </embed>';
    }

    document.write(str);
}

function AC_FL_RunContent() {
    var ret =
    AC_GetArgs
    (arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i = 0; i < args.length; i = i + 2) {
        var currArg = args[i].toLowerCase();

        switch (currArg) {
            case "classid":
                break;
            case "pluginspage":
                ret.embedAttrs[args[i]] = args[i + 1];
                break;
            case "src":
            case "movie":
                args[i + 1] = AC_AddExtension(args[i + 1], ext);
                ret.embedAttrs["src"] = args[i + 1];
                ret.params[srcParamName] = args[i + 1];
                break;
            case "onafterupdate":
            case "onbeforeupdate":
            case "onblur":
            case "oncellchange":
            case "onclick":
            case "ondblClick":
            case "ondrag":
            case "ondragend":
            case "ondragenter":
            case "ondragleave":
            case "ondragover":
            case "ondrop":
            case "onfinish":
            case "onfocus":
            case "onhelp":
            case "onmousedown":
            case "onmouseup":
            case "onmouseover":
            case "onmousemove":
            case "onmouseout":
            case "onkeypress":
            case "onkeydown":
            case "onkeyup":
            case "onload":
            case "onlosecapture":
            case "onpropertychange":
            case "onreadystatechange":
            case "onrowsdelete":
            case "onrowenter":
            case "onrowexit":
            case "onrowsinserted":
            case "onstart":
            case "onscroll":
            case "onbeforeeditfocus":
            case "onactivate":
            case "onbeforedeactivate":
            case "ondeactivate":
            case "type":
            case "codebase":
                ret.objAttrs[args[i]] = args[i + 1];
                break;
            case "id":
            case "width":
            case "height":
            case "align":
            case "vspace":
            case "hspace":
            case "class":
            case "title":
            case "accesskey":
            case "name":
            case "tabindex":
                ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i + 1];
                break;
            default:
                ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i + 1];
        }
    }
    ret.objAttrs["classid"] = classid;
    if (mimeType) ret.embedAttrs["type"] = mimeType;
    return ret;
}



// END AC_OETags.js

// START AdjustLeftMainRightHeight.js
function AdjustLeftMainRightHeight() {
    /*
    
    Description:
    - Enforces min height
    - Adjusts the height of left, main, and right section of the page to be the same.
    
    MODs:
    - 2007-??-??: Initial script.
    - 2007-08-24: Add the ability to re-adjust heights of the containers in the array
    */

    var arrContainerNames = new Array("ctl00_pnlPublicLeftContent", "ctl00_pnlPublicMainContent", "ctl00_pnlPublicRightContent", "Content");

    var intMininumHeightAllowed = 0;                // 0 means no minimum height being enforced
    var intMinimumHeight = intMininumHeightAllowed; // the mininum height of the containers in the array
    var intMaximumHeight = intMininumHeightAllowed; // the maximum height of the containers in the array

    for (i = 0; i < arrContainerNames.length; i++) {
        var obj = document.getElementById(arrContainerNames[i]);
        if (obj != null) {
            obj.style.height = "auto";  // reset height that was previously set (by this script)

            var intCurrentHeight = obj.offsetHeight;
            // find minimum height
            if (intCurrentHeight > intMininumHeightAllowed   // must be at least greater than the height allowed
                && intCurrentHeight < intMinimumHeight) {
                intMinimumHeight = intCurrentHeight;
            }

            // find maximum height
            if (intCurrentHeight > intMaximumHeight) {
                intMaximumHeight = intCurrentHeight;
            }
        }
    }
    //intMaximumHeight = intMaximumHeight - 20;
    // by now, min and max height have been found    

    for (i = 0; i < arrContainerNames.length; i++) {
        var obj = document.getElementById(arrContainerNames[i]);
        if (obj != null) {

            obj.style.height = intMaximumHeight + "px";
        }
    }
}

function CheckUploadImageArea() {
    var strUploadImageContainer = document.getElementById('PublicRightContent');
    var intWidth = strUploadImageContainer.offsetWidth;

    //alert(intWidth);

    //    document.getElementById(lblImageAreaWidth).innerHTML = 'Tiger';
    //    var txtBox = document.getElementById('<%= lblImageAreaWidth.ClientID %>').innerHTML;
    //    
    //    alert(txtBox);
    //    
    //   
}

function setViewportDimensions(hiddenFieldID) {

    var field = document.getElementById(hiddenFieldID);
    var width;
    var height;

    // see http://evolt.org/node/30655

    if (window.innerWidth) {
        width = window.innerWidth;
        height = window.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientWidth) {
        width = document.documentElement.clientWidth;
        height = document.documentElement.clientHeight;
    }
    else if (document.body) {
        width = document.body.clientWidth;
        height = document.body.clientHeight;
    }
    field.value = width + "," + height;

}

// END AdjustLeftMainRightHeight.js

//START FooterSticker.js
function getWindowHeight() {
    var windowHeight = 0;
    if (typeof (window.innerHeight) == 'number') {
        windowHeight = window.innerHeight;
    }
    else {
        if (document.documentElement && document.documentElement.clientHeight) {
            windowHeight = document.documentElement.clientHeight;
        }
        else {
            if (document.body && document.body.clientHeight) {
                windowHeight = document.body.clientHeight;
            }
        }
    }
    return windowHeight;
}
function getWindowWidth() {
    var windowWidth = 0;
    if (typeof (window.innerWidth) == 'number') {
        // firefox scrollbar is 18px width
        windowWidth = window.innerWidth - 18;
    }
    else {
        // internet explorer
        if (document.documentElement && document.documentElement.clientWidth) {
            windowWidth = document.documentElement.clientWidth;
        }
        else {
            if (document.body && document.body.clientWidth) {
                windowWidth = document.body.clientWidth;
            }
        }
        windowWidth -= 1;
    }
    return windowWidth;
}
function SetFooter() {
    if (document.getElementById) {
        var windowHeight = getWindowHeight();
        var bodyHeight = document.getElementById('Content').offsetHeight;
        var headerElement = document.getElementById('Header');
        var footerElement = document.getElementById('Footer');
        var middleElement = document.getElementById('Content');
        var midContentElement = document.getElementById('ctl00_phlMainContent_pnlMainContent');
        var midContentElement2 = document.getElementById('ctl00_phlMainContent_pnlCategoryContent');
        var footerHeight = footerElement.offsetHeight;
        var headerHeight = headerElement.offsetHeight;

        bodyHeight += headerHeight + footerHeight + 24 + 18 + 108; //adding menu, breadcrumbs and footer content' height
        if (bodyHeight <= windowHeight) {
            if (document.getElementById('FeaturedCategory')) {
                middleElement.style.height = (windowHeight - footerHeight - headerHeight - 184) + "px";
            }
            else {
                middleElement.style.height = (windowHeight - footerHeight - headerHeight - 70) + "px"

                //midContentElement.style.height = (windowHeight - footerHeight - headerHeight - 260) + "px";
                //midContentElement2.style.height = (windowHeight - footerHeight - headerHeight - 240) + "px";
            }
            //alert("bodyHeight " + windowHeight + ", headerHeight " + headerHeight + ", footerHeight " + footerHeight + " = " + middleElement.style.height)
            //alert("middleElement" + middleElement.offsetHeight);
        }
        else {
        }
    }
}
function SetMainRightWidth() {

    var BodyWidth = getWindowWidth();

    var LeftContentElement = document.getElementById('PublicLeftContent');
    var MainRightContentElement = document.getElementById('PublicMainRightContent');

    var LeftContentWidth = LeftContentElement.offsetWidth;

    //alert("bodyWidth: " + BodyWidth + " Left: " + LeftContentWidth)

    MainRightContentElement.style.width = (BodyWidth - LeftContentWidth) + "px";
}
function SetBorderHeights() {
    /*
    - Enforces min height
    - Adjusts the height of left, main, and right section of the page to be the same.
    */

    var arrContainerNames = new Array("FeaturedCategory", "FeaturedCaseStudy", "StaticHomePageText");

    var intMininumHeightAllowed = 0;
    var intMinimumHeight = intMininumHeightAllowed; // the mininum height out of the three sections
    var intMaximumHeight = intMininumHeightAllowed; // the maximum height out of the three sections

    for (i = 0; i < arrContainerNames.length; i++) {
        var obj = document.getElementById(arrContainerNames[i]);
        if (obj != null) {
            var intCurrentHeight = obj.offsetHeight;
            //alert(intCurrentHeight);

            // find minimum height
            if (intCurrentHeight > intMininumHeightAllowed // must be at least greater than the height allowed
                && intCurrentHeight < intMinimumHeight) {
                intMinimumHeight = intCurrentHeight;
            }

            // find maximum height
            if (intCurrentHeight > intMaximumHeight) {
                intMaximumHeight = intCurrentHeight;
            }
        }
    }

    // by now, min and max height are found    

    for (i = 0; i < arrContainerNames.length; i++) {
        var obj = document.getElementById(arrContainerNames[i]);
        if (obj != null) {
            obj.style.height = intMaximumHeight + "px";
            //alert(arrContainerNames[i] + intMaximumHeight);
        }
    }
}



function changeOpacity2(elementIDForOpcity) {
    var ClientWindowWidth = getWindowWidth();
    var BackgroundContainer = document.getElementById('theBackgroundContainer');
    var thisElement = document.getElementById(elementIDForOpcity);

    thisElement.style.filter = 'alpha(opacity=' + 0 + ')';
    thisElement.style.opacity = '.' + 0 + '';
    thisElement.style.display = 'block';
    BackgroundContainer.style.width = ClientWindowWidth + 'px';
    var actStep = 0;
    var intOpacityIncrement = 2;

    var elemwidthChangeMemInt = window.setInterval(
	function () {
	    intOpacityIncrement = intOpacityIncrement + 2;

	    thisElement.style.filter = 'alpha(opacity=' + intOpacityIncrement + ')';
	    thisElement.style.opacity = '.' + intOpacityIncrement + '';
	    actStep++;
	    if (actStep > 30) window.clearInterval(elemwidthChangeMemInt);

	}
	, 5)

}

function setBackgroundWidth() {
    var ClientWindowWidth = getWindowWidth();
    var ClientWindowHeight = getWindowHeight();
    var BackgroundContainer = document.getElementById('theBackgroundContainer');
    BackgroundContainer.style.width = ClientWindowWidth + 'px';
    //BackgroundContainer.style.height = (ClientWindowHeight - 20) + 'px';
}

function SetBackgroundWhenResize() {
    var ClientWindowWidth = getWindowWidth();
    var BackgroundContainer = document.getElementById('theBackgroundContainer');
    BackgroundContainer.style.width = '103.3%';

}

//END FooterSticker.js

//START HomePageFadeINOUTFeatures.js

var intervalID;
var intPreviousElementIDInLoop = 0;
var elemwidthChangeMemIntFeature = 0;
var intPreviousElementID = 0;
var j = 1;
var intNumberOfItems = 0;
function OnMouseOverFeature(elementID) {
    for (var t = 0; t <= 6; t++) {
        SetDisplayNone('ctl00_phlMainContent_ctl00_imgHoverFeature' + t);
        SetDisplayNone('ctl00_phlMainContent_ctl00_hypHoverFeature' + t);
    }
    var hypFeatureImageHover = document.getElementById('ctl00_phlMainContent_ctl00_hypHoverFeature' + elementID);
    hypFeatureImageHover.style.display = 'block';
    var imgFeatureImageHover = document.getElementById('ctl00_phlMainContent_ctl00_imgHoverFeature' + elementID);
    //imgFeatureImageHover.style.display = 'block';

    clearInterval(intervalID);
    clearInterval(elemwidthChangeMemIntFeature);
    changeOpacity(imgFeatureImageHover);

    var linkFeatureHeadingHoverPrevious = document.getElementById('FeatureHeadingLi' + intPreviousElementIDInLoop);
    linkFeatureHeadingHoverPrevious.style.background = '#FFFFFF';
    var linkFeatureHeadingHoverPreviousA = document.getElementById('ctl00_phlMainContent_ctl00_LinkButton' + intPreviousElementIDInLoop);
    linkFeatureHeadingHoverPreviousA.style.color = '#000000';

    linkFeatureHeadingHoverPrevious = document.getElementById('FeatureHeadingLi' + intPreviousElementID);
    linkFeatureHeadingHoverPrevious.style.background = '#FFFFFF';
    var linkFeatureHeadingHoverPreviousA = document.getElementById('ctl00_phlMainContent_ctl00_LinkButton' + intPreviousElementID);
    linkFeatureHeadingHoverPreviousA.style.color = '#000000';

    var linkFeatureHeadingHover = document.getElementById('FeatureHeadingLi' + elementID);
    linkFeatureHeadingHover.style.background = '#00828a';

    var linkFeatureHeadingHoverA = document.getElementById('ctl00_phlMainContent_ctl00_LinkButton' + elementID);
    linkFeatureHeadingHoverA.style.color = '#FFFFFF';

}
function OnMouseOverFeatureLoop(elementID) {

    intPreviousElementID = elementID;
    intPreviousElementID--;
    if (intPreviousElementID == 0) {
        intPreviousElementID = intNumberOfItems;
    }

    if (intNumberOfItems != 1) {
        var linkFeatureHeadingHoverPrevious = document.getElementById('FeatureHeadingLi' + intPreviousElementID);
        linkFeatureHeadingHoverPrevious.style.background = '#FFFFFF';
        var linkFeatureHeadingHoverPreviousA = document.getElementById('ctl00_phlMainContent_ctl00_LinkButton' + intPreviousElementID);
        linkFeatureHeadingHoverPreviousA.style.color = '#000000';

    }
    for (var t = 0; t <= 6; t++) {
        SetDisplayNone('ctl00_phlMainContent_ctl00_imgHoverFeature' + t);
        SetDisplayNone('ctl00_phlMainContent_ctl00_hypHoverFeature' + t);

    }
    var hypFeatureImageHover = document.getElementById('ctl00_phlMainContent_ctl00_hypHoverFeature' + elementID);
    hypFeatureImageHover.style.display = 'block';
    var imgFeatureImageHover = document.getElementById('ctl00_phlMainContent_ctl00_imgHoverFeature' + elementID);
    //imgFeatureImageHover.style.display = 'block';
    changeOpacity(imgFeatureImageHover);

    var linkFeatureHeadingHover = document.getElementById('FeatureHeadingLi' + elementID);
    linkFeatureHeadingHover.style.background = '#00828a';

    var linkFeatureHeadingHoverA = document.getElementById('ctl00_phlMainContent_ctl00_LinkButton' + elementID);
    linkFeatureHeadingHoverA.style.color = '#FFFFFF';

    intPreviousElementIDInLoop = elementID;

    for (var t = 6; t > intNumberOfItems; t--) {
        SetDisplayNone('FeatureHeadingLi' + t);
    }
}
function OnMouseOutFeature(elementID) {
    intPreviousElementID = elementID;
    if (intPreviousElementID == 0) {
        intPreviousElementID = intNumberOfItems;
    }

    clearInterval(intervalID);
    foo(elementID);

}
function foo(i) {
    var linkFeatureHeadingHover = document.getElementById('FeatureHeadingLi' + intNumberOfItems);
    linkFeatureHeadingHover.style.border = 'none';
    i++;
    j = i;

    if (j == (intNumberOfItems + 1)) {
        j = 1;
    }

    function bar() {

        OnMouseOverFeatureLoop(j);

        if (j == intNumberOfItems) {
            j = 0;
        }

        j = j + 1;
    }

    intervalID = setInterval(bar, 3500);
}
function SetDisplayNone(strElementID) {
    if (document.getElementById(strElementID))
        document.getElementById(strElementID).style.display = 'none';
}
function GetNumberOfItems(strElementID) {
    if (document.getElementById(strElementID)) {
        intNumberOfItems++;
        var liStyle = document.getElementById('FeatureHeadingLi' + intNumberOfItems);
        liStyle.style.borderBottom = '1px solid #999999';
    }
}
/* example of fade in - out */
function changeOpacity(elementIDForOpcity) {
    window.clearInterval(elemwidthChangeMemIntFeature)
    var thisElement = elementIDForOpcity;
    thisElement.style.filter = 'alpha(opacity=' + 21 + ')';
    thisElement.style.opacity = '.' + 21 + '';
    thisElement.style.display = 'block';
    var actStep = 0;
    var intOpacityIncrement = 21;

    elemwidthChangeMemIntFeature = window.setInterval(
	function () {
	    intOpacityIncrement = intOpacityIncrement + 3;

	    thisElement.style.filter = 'alpha(opacity=' + intOpacityIncrement + ')';
	    thisElement.style.opacity = '.' + intOpacityIncrement + '';
	    actStep++;
	    if (actStep > 25) window.clearInterval(elemwidthChangeMemIntFeature);
	}
	, 40)

}


//END HomePageFadeINOUTFeatures.js

//START swfobject.js
/**
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if (typeof deconcept == "undefined") { var deconcept = new Object(); } if (typeof deconcept.util == "undefined") { deconcept.util = new Object(); } if (typeof deconcept.SWFObjectUtil == "undefined") { deconcept.SWFObjectUtil = new Object(); } deconcept.SWFObject = function (_1, id, w, h, _5, c, _7, _8, _9, _a) { if (!document.getElementById) { return; } this.DETECT_KEY = _a ? _a : "detectflash"; this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY); this.params = new Object(); this.variables = new Object(); this.attributes = new Array(); if (_1) { this.setAttribute("swf", _1); } if (id) { this.setAttribute("id", id); } if (w) { this.setAttribute("width", w); } if (h) { this.setAttribute("height", h); } if (_5) { this.setAttribute("version", new deconcept.PlayerVersion(_5.toString().split("."))); } this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion(); if (!window.opera && document.all && this.installedVer.major > 7) { deconcept.SWFObject.doPrepUnload = true; } if (c) { this.addParam("bgcolor", c); } var q = _7 ? _7 : "high"; this.addParam("quality", q); this.setAttribute("useExpressInstall", false); this.setAttribute("doExpressInstall", false); var _c = (_8) ? _8 : window.location; this.setAttribute("xiRedirectUrl", _c); this.setAttribute("redirectUrl", ""); if (_9) { this.setAttribute("redirectUrl", _9); } }; deconcept.SWFObject.prototype = { useExpressInstall: function (_d) { this.xiSWFPath = !_d ? "expressinstall.swf" : _d; this.setAttribute("useExpressInstall", true); }, setAttribute: function (_e, _f) { this.attributes[_e] = _f; }, getAttribute: function (_10) { return this.attributes[_10]; }, addParam: function (_11, _12) { this.params[_11] = _12; }, getParams: function () { return this.params; }, addVariable: function (_13, _14) { this.variables[_13] = _14; }, getVariable: function (_15) { return this.variables[_15]; }, getVariables: function () { return this.variables; }, getVariablePairs: function () { var _16 = new Array(); var key; var _18 = this.getVariables(); for (key in _18) { _16[_16.length] = key + "=" + _18[key]; } return _16; }, getSWFHTML: function () { var _19 = ""; if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); this.setAttribute("swf", this.xiSWFPath); } _19 = "<embed type=\"application/x-shockwave-flash\" src=\"" + this.getAttribute("swf") + "\" width=\"" + this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\""; _19 += " id=\"" + this.getAttribute("id") + "\" name=\"" + this.getAttribute("id") + "\" "; var _1a = this.getParams(); for (var key in _1a) { _19 += [key] + "=\"" + _1a[key] + "\" "; } var _1c = this.getVariablePairs().join("&"); if (_1c.length > 0) { _19 += "flashvars=\"" + _1c + "\""; } _19 += "/>"; } else { if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); this.setAttribute("swf", this.xiSWFPath); } _19 = "<object id=\"" + this.getAttribute("id") + "\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"" + this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\">"; _19 += "<param name=\"movie\" value=\"" + this.getAttribute("swf") + "\" />"; var _1d = this.getParams(); for (var key in _1d) { _19 += "<param name=\"" + key + "\" value=\"" + _1d[key] + "\" />"; } var _1f = this.getVariablePairs().join("&"); if (_1f.length > 0) { _19 += "<param name=\"flashvars\" value=\"" + _1f + "\" />"; } _19 += "</object>"; } return _19; }, write: function (_20) { if (this.getAttribute("useExpressInstall")) { var _21 = new deconcept.PlayerVersion([6, 0, 65]); if (this.installedVer.versionIsValid(_21) && !this.installedVer.versionIsValid(this.getAttribute("version"))) { this.setAttribute("doExpressInstall", true); this.addVariable("MMredirectURL", escape(this.getAttribute("xiRedirectUrl"))); document.title = document.title.slice(0, 47) + " - Flash Player Installation"; this.addVariable("MMdoctitle", document.title); } } if (this.skipDetect || this.getAttribute("doExpressInstall") || this.installedVer.versionIsValid(this.getAttribute("version"))) { var n = (typeof _20 == "string") ? document.getElementById(_20) : _20; n.innerHTML = this.getSWFHTML(); return true; } else { if (this.getAttribute("redirectUrl") != "") { document.location.replace(this.getAttribute("redirectUrl")); } } return false; } }; deconcept.SWFObjectUtil.getPlayerVersion = function () { var _23 = new deconcept.PlayerVersion([0, 0, 0]); if (navigator.plugins && navigator.mimeTypes.length) { var x = navigator.plugins["Shockwave Flash"]; if (x && x.description) { _23 = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")); } } else { if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0) { var axo = 1; var _26 = 3; while (axo) { try { _26++; axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + _26); _23 = new deconcept.PlayerVersion([_26, 0, 0]); } catch (e) { axo = null; } } } else { try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); } catch (e) { try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); _23 = new deconcept.PlayerVersion([6, 0, 21]); axo.AllowScriptAccess = "always"; } catch (e) { if (_23.major == 6) { return _23; } } try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); } catch (e) { } } if (axo != null) { _23 = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(",")); } } } return _23; }; deconcept.PlayerVersion = function (_29) { this.major = _29[0] != null ? parseInt(_29[0]) : 0; this.minor = _29[1] != null ? parseInt(_29[1]) : 0; this.rev = _29[2] != null ? parseInt(_29[2]) : 0; }; deconcept.PlayerVersion.prototype.versionIsValid = function (fv) { if (this.major < fv.major) { return false; } if (this.major > fv.major) { return true; } if (this.minor < fv.minor) { return false; } if (this.minor > fv.minor) { return true; } if (this.rev < fv.rev) { return false; } return true; }; deconcept.util = { getRequestParameter: function (_2b) { var q = document.location.search || document.location.hash; if (_2b == null) { return q; } if (q) { var _2d = q.substring(1).split("&"); for (var i = 0; i < _2d.length; i++) { if (_2d[i].substring(0, _2d[i].indexOf("=")) == _2b) { return _2d[i].substring((_2d[i].indexOf("=") + 1)); } } } return ""; } }; deconcept.SWFObjectUtil.cleanupSWFs = function () { var _2f = document.getElementsByTagName("OBJECT"); for (var i = _2f.length - 1; i >= 0; i--) { _2f[i].style.display = "none"; for (var x in _2f[i]) { if (typeof _2f[i][x] == "function") { _2f[i][x] = function () { }; } } } }; if (deconcept.SWFObject.doPrepUnload) { if (!deconcept.unloadSet) { deconcept.SWFObjectUtil.prepUnload = function () { __flash_unloadHandler = function () { }; __flash_savedUnloadHandler = function () { }; window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs); }; window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload); deconcept.unloadSet = true; } } if (!document.getElementById && document.all) { document.getElementById = function (id) { return document.all[id]; }; } var getQueryParamValue = deconcept.util.getRequestParameter; var FlashObject = deconcept.SWFObject; var SWFObject = deconcept.SWFObject;
//END swfobject.js

//START swfobject.js
/**
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if (typeof deconcept == "undefined") { var deconcept = new Object(); } if (typeof deconcept.util == "undefined") { deconcept.util = new Object(); } if (typeof deconcept.SWFObjectUtil == "undefined") { deconcept.SWFObjectUtil = new Object(); } deconcept.SWFObject = function (_1, id, w, h, _5, c, _7, _8, _9, _a) { if (!document.getElementById) { return; } this.DETECT_KEY = _a ? _a : "detectflash"; this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY); this.params = new Object(); this.variables = new Object(); this.attributes = new Array(); if (_1) { this.setAttribute("swf", _1); } if (id) { this.setAttribute("id", id); } if (w) { this.setAttribute("width", w); } if (h) { this.setAttribute("height", h); } if (_5) { this.setAttribute("version", new deconcept.PlayerVersion(_5.toString().split("."))); } this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion(); if (!window.opera && document.all && this.installedVer.major > 7) { deconcept.SWFObject.doPrepUnload = true; } if (c) { this.addParam("bgcolor", c); } var q = _7 ? _7 : "high"; this.addParam("quality", q); this.setAttribute("useExpressInstall", false); this.setAttribute("doExpressInstall", false); var _c = (_8) ? _8 : window.location; this.setAttribute("xiRedirectUrl", _c); this.setAttribute("redirectUrl", ""); if (_9) { this.setAttribute("redirectUrl", _9); } }; deconcept.SWFObject.prototype = { useExpressInstall: function (_d) { this.xiSWFPath = !_d ? "expressinstall.swf" : _d; this.setAttribute("useExpressInstall", true); }, setAttribute: function (_e, _f) { this.attributes[_e] = _f; }, getAttribute: function (_10) { return this.attributes[_10]; }, addParam: function (_11, _12) { this.params[_11] = _12; }, getParams: function () { return this.params; }, addVariable: function (_13, _14) { this.variables[_13] = _14; }, getVariable: function (_15) { return this.variables[_15]; }, getVariables: function () { return this.variables; }, getVariablePairs: function () { var _16 = new Array(); var key; var _18 = this.getVariables(); for (key in _18) { _16[_16.length] = key + "=" + _18[key]; } return _16; }, getSWFHTML: function () { var _19 = ""; if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); this.setAttribute("swf", this.xiSWFPath); } _19 = "<embed type=\"application/x-shockwave-flash\" src=\"" + this.getAttribute("swf") + "\" width=\"" + this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\""; _19 += " id=\"" + this.getAttribute("id") + "\" name=\"" + this.getAttribute("id") + "\" "; var _1a = this.getParams(); for (var key in _1a) { _19 += [key] + "=\"" + _1a[key] + "\" "; } var _1c = this.getVariablePairs().join("&"); if (_1c.length > 0) { _19 += "flashvars=\"" + _1c + "\""; } _19 += "/>"; } else { if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); this.setAttribute("swf", this.xiSWFPath); } _19 = "<object id=\"" + this.getAttribute("id") + "\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"" + this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\">"; _19 += "<param name=\"movie\" value=\"" + this.getAttribute("swf") + "\" />"; var _1d = this.getParams(); for (var key in _1d) { _19 += "<param name=\"" + key + "\" value=\"" + _1d[key] + "\" />"; } var _1f = this.getVariablePairs().join("&"); if (_1f.length > 0) { _19 += "<param name=\"flashvars\" value=\"" + _1f + "\" />"; } _19 += "</object>"; } return _19; }, write: function (_20) { if (this.getAttribute("useExpressInstall")) { var _21 = new deconcept.PlayerVersion([6, 0, 65]); if (this.installedVer.versionIsValid(_21) && !this.installedVer.versionIsValid(this.getAttribute("version"))) { this.setAttribute("doExpressInstall", true); this.addVariable("MMredirectURL", escape(this.getAttribute("xiRedirectUrl"))); document.title = document.title.slice(0, 47) + " - Flash Player Installation"; this.addVariable("MMdoctitle", document.title); } } if (this.skipDetect || this.getAttribute("doExpressInstall") || this.installedVer.versionIsValid(this.getAttribute("version"))) { var n = (typeof _20 == "string") ? document.getElementById(_20) : _20; n.innerHTML = this.getSWFHTML(); return true; } else { if (this.getAttribute("redirectUrl") != "") { document.location.replace(this.getAttribute("redirectUrl")); } } return false; } }; deconcept.SWFObjectUtil.getPlayerVersion = function () { var _23 = new deconcept.PlayerVersion([0, 0, 0]); if (navigator.plugins && navigator.mimeTypes.length) { var x = navigator.plugins["Shockwave Flash"]; if (x && x.description) { _23 = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")); } } else { if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0) { var axo = 1; var _26 = 3; while (axo) { try { _26++; axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + _26); _23 = new deconcept.PlayerVersion([_26, 0, 0]); } catch (e) { axo = null; } } } else { try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); } catch (e) { try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); _23 = new deconcept.PlayerVersion([6, 0, 21]); axo.AllowScriptAccess = "always"; } catch (e) { if (_23.major == 6) { return _23; } } try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); } catch (e) { } } if (axo != null) { _23 = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(",")); } } } return _23; }; deconcept.PlayerVersion = function (_29) { this.major = _29[0] != null ? parseInt(_29[0]) : 0; this.minor = _29[1] != null ? parseInt(_29[1]) : 0; this.rev = _29[2] != null ? parseInt(_29[2]) : 0; }; deconcept.PlayerVersion.prototype.versionIsValid = function (fv) { if (this.major < fv.major) { return false; } if (this.major > fv.major) { return true; } if (this.minor < fv.minor) { return false; } if (this.minor > fv.minor) { return true; } if (this.rev < fv.rev) { return false; } return true; }; deconcept.util = { getRequestParameter: function (_2b) { var q = document.location.search || document.location.hash; if (_2b == null) { return q; } if (q) { var _2d = q.substring(1).split("&"); for (var i = 0; i < _2d.length; i++) { if (_2d[i].substring(0, _2d[i].indexOf("=")) == _2b) { return _2d[i].substring((_2d[i].indexOf("=") + 1)); } } } return ""; } }; deconcept.SWFObjectUtil.cleanupSWFs = function () { var _2f = document.getElementsByTagName("OBJECT"); for (var i = _2f.length - 1; i >= 0; i--) { _2f[i].style.display = "none"; for (var x in _2f[i]) { if (typeof _2f[i][x] == "function") { _2f[i][x] = function () { }; } } } }; if (deconcept.SWFObject.doPrepUnload) { if (!deconcept.unloadSet) { deconcept.SWFObjectUtil.prepUnload = function () { __flash_unloadHandler = function () { }; __flash_savedUnloadHandler = function () { }; window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs); }; window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload); deconcept.unloadSet = true; } } if (!document.getElementById && document.all) { document.getElementById = function (id) { return document.all[id]; }; } var getQueryParamValue = deconcept.util.getRequestParameter; var FlashObject = deconcept.SWFObject; var SWFObject = deconcept.SWFObject;
//END swfobject.js

// START Searchhi.js
/* New: Variable searchhi_string to keep track of words being searched. */
var searchhi_string = '';

/* http://www.kryogenix.org/code/browser/searchhi/ */
/* Modified 20021006 to fix query string parsing and add case insensitivity */
function highlightWord(node, word) {
    // Iterate into this nodes childNodes
    if (node.hasChildNodes) {
        var hi_cn;
        for (hi_cn = 0; hi_cn < node.childNodes.length; hi_cn++) {
            highlightWord(node.childNodes[hi_cn], word);
        }
    }

    // And do this node itself
    if (node.nodeType == 3) { // text node
        tempNodeVal = node.nodeValue.toLowerCase();
        tempWordVal = word.toLowerCase();
        if (tempNodeVal.indexOf(tempWordVal) != -1) {
            pn = node.parentNode;
            if (pn.className != "searchword") {
                // word has not already been highlighted!
                nv = node.nodeValue;
                ni = tempNodeVal.indexOf(tempWordVal);
                // Create a load of replacement nodes
                before = document.createTextNode(nv.substr(0, ni));
                docWordVal = nv.substr(ni, word.length);
                after = document.createTextNode(nv.substr(ni + word.length));
                hiwordtext = document.createTextNode(docWordVal);
                hiword = document.createElement("span");
                hiword.className = "searchword";
                hiword.appendChild(hiwordtext);
                pn.insertBefore(before, node);
                pn.insertBefore(hiword, node);
                pn.insertBefore(after, node);
                pn.removeChild(node);
            }
        }
    }
}

function unhighlightWord(node, word) {
    // Iterate into this nodes childNodes
    if (node.hasChildNodes) {
        var hi_cn;
        for (hi_cn = 0; hi_cn < node.childNodes.length; hi_cn++) {
            highlightWord(node.childNodes[hi_cn], word);
        }
    }

    // And do this node itself
    if (node.nodeType == 3) { // text node
        tempNodeVal = node.nodeValue.toLowerCase();
        tempWordVal = word.toLowerCase();
        if (tempNodeVal.indexOf(tempWordVal) != -1) {
            pn = node.parentNode;
            if (pn.className == "searchword") {
                prevSib = pn.previousSibling;
                nextSib = pn.nextSibling;
                nextSib.nodeValue = prevSib.nodeValue + node.nodeValue + nextSib.nodeValue;
                prevSib.nodeValue = '';
                node.nodeValue = '';
            }
        }
    }
}

function unhighlight(node) {
    // Iterate into this nodes childNodes
    if (node.hasChildNodes) {
        var hi_cn;
        for (hi_cn = 0; hi_cn < node.childNodes.length; hi_cn++) {
            unhighlight(node.childNodes[hi_cn]);
        }
    }

    // And do this node itself
    if (node.nodeType == 3) { // text node
        pn = node.parentNode;
        if (pn.className == "searchword") {
            prevSib = pn.previousSibling;
            nextSib = pn.nextSibling;
            nextSib.nodeValue = prevSib.nodeValue + node.nodeValue + nextSib.nodeValue;
            prevSib.nodeValue = '';
            node.nodeValue = '';
        }
    }
}

function googleSearchHighlight() {
    if (!document.createElement) return;
    ref = document.referrer;
    ref = ref.replace(/\/search\/web\//, '?search&q='); // Most WebCrawler searches
    if (ref.indexOf('?') == -1) return;
    qs = ref.substr(ref.indexOf('?') + 1);
    qsa = qs.split('#');
    qs = qsa[0];
    qs = qs.replace(/(^|&)p=Q&ts=e&/, '&'); // Most Eurekster searches
    qs = qs.replace(/(^|&)query=/, '&q='); // Most Lycos searches
    qs = qs.replace(/(^|&)key=/, '&q='); // Most Walhello searches
    qs = qs.replace(/(^|&)keywords=/i, '&q='); // Most Overture searches
    qs = qs.replace(/(^|&)searchfor=/, '&q='); // Most Mysearch.com searches
    qs = qs.replace(/(^|&)qt=/, '&q='); // Most Acoona.com searches
    qs = qs.replace(/(^|&)s=/, '&q='); // Most Technirati GET searches
    qsa = qs.split('&');
    for (i = 0; i < qsa.length; i++) {
        qsip = qsa[i].split('=');
        if (qsip.length == 1) continue;
        if (qsip[0] == 'q' || qsip[0] == 'p' || qsip[0] == 'w') { // q= for Google, p= for Yahoo, w= for Eurekster
            // Trim leading and trailing spaces after unescaping
            qsip[1] = unescape(qsip[1]).replace(/^\s+|\s+$/g, "");
            if (qsip[1] == '') continue;
            phrases = qsip[1].replace(/\+/g, ' ').split(/\"/);
            for (p = 0; p < phrases.length; p++) {
                phrases[p] = unescape(phrases[p]).replace(/^\s+|\s+$/g, "");
                if (phrases[p] == '') continue;
                if (p % 2 == 0) words = phrases[p].replace(/([+,()]|%(29|28)|\W+(AND|OR)\W+)/g, ' ').split(/\s+/);
                else { words = Array(1); words[0] = phrases[p]; }
                for (w = 0; w < words.length; w++) {
                    if (words[w] == '') continue;
                    highlightWord(document.getElementsByTagName("body")[0], words[w]);
                    if (p % 2 == 0) searchhi_string = searchhi_string + ' ' + words[w];
                    else searchhi_string = searchhi_string + ' "' + words[w] + '"';
                }
            }

        }
    }
}

// Everything form this point on is modified to allow for highlighting
// of terms found in the REQUEST URI
function localSearchHighlight(searchStr) {
    if (!document.createElement) return;
    if (searchStr == '') return;
    if (searchStr.indexOf('?') == -1) qs = searchStr.substr(0);
    else qs = searchStr.substr(1);
    qsa = qs.split('&');
    for (i = 0; i < qsa.length; i++) {
        qsip = qsa[i].split('=');
        if (qsip.length == 1) continue;
        if (qsip[0] == 'h') { // don't make this q or p or will get ghost highlights
            // Trim leading and trailing spaces after unescaping
            qsip[1] = unescape(qsip[1]).replace(/^\s+|\s+$/g, "");
            if (qsip[1] == '') continue;
            phrases = qsip[1].replace(/\+/g, ' ').split(/\"/);
            // Use this next line if you would like to force the script to always
            // search for phrases. See below as well!!!
            //phrases = new Array(); phrases[0] = ''; phrases[1] = qsip[1].replace(/\+/g,' ');
            for (p = 0; p < phrases.length; p++) {
                phrases[p] = unescape(phrases[p]).replace(/^\s+|\s+$/g, "");
                if (phrases[p] == '') continue;
                if (p % 2 == 0) words = phrases[p].replace(/([+,()]|%(29|28)|\W+(AND|OR)\W+)/g, ' ').split(/\s+/);
                else { words = Array(1); words[0] = phrases[p]; }
                for (w = 0; w < words.length; w++) {
                    if (words[w] == '') continue;
                    highlightWord(document.getElementById("SearchResultContainer"), words[w]);
                    if (p % 2 == 0) searchhi_string = searchhi_string + ' ' + words[w];
                    else searchhi_string = searchhi_string + ' "' + words[w] + '"';
                    // As before, use this next line if forcing phrase searching
                    //else searchhi_string = searchhi_string + ' ' + words[w];
                }
            }
        }
    }
}

function SearchHighlight() {
    googleSearchHighlight();
    localSearchHighlight(location.search);

    // Trim any leading or trailing space
    // (this is an overkill way of getting rid of the leading
    //  space that always is present in searchhi_string)
    searchhi_string = searchhi_string.replace(/^\s+|\s+$/g, "");

    // In MSIE, sometimes the dynamic generation of the spans
    // for the highlighting takes the anchor out of focus.
    // Here, we put it back in focus.
    if (location.hash.length > 1) location.hash = location.hash;
}


function SmartHighlight() {
    // This function is like SearchHighlight()
    // but it detects a page refresh and toggles highlighting
    // on each refresh. This gives a quick way to turn off
    // highlighting (and quickly turn it on after).

    var today = new Date();
    var now = today.getUTCSeconds();

    var cookie = document.cookie;
    var cookieArray = cookie.split('; ');

    // Get timestamp stored in cookie
    for (var loop = 0; loop < cookieArray.length; loop++) {
        var nameValue = cookieArray[loop].split("=");
        if (nameValue[0].toString() == 'SHTS') {
            var cookieTime = parseInt(nameValue[1]);
        }
        else if (nameValue[0].toString() == 'SHTSP') {
            var cookieName = nameValue[1];
        }
    }

    // If we got a cookie, the cookie is from this page,
    // and the cookie's time is very close to now, then
    // this must be a page refresh (or very similar)
    // so we don't want to highlight. (the 5 second threshold
    // may need to be adjusted for slower browsers/pages/etc.)
    if (cookieName &&
		cookieTime &&
		cookieName == escape(location.href) &&
		Math.abs(now - cookieTime) < 5) {
        // Refresh detected, so don't highlight

        // Disable refresh detection for this run;
        // this is what allows us to toggle the highlighting
        // back *ON* on the next refresh
        searchhi_unl = 0;
    }
    else {
        // This is not a refresh, so highlight
        SearchHighlight();
    }

}

function SmartHLUnload() {
    if (searchhi_unl > 0) {
        // Turn refresh detection on so that if this
        // page gets quickly loaded, we know it's a refresh
        var today = new Date();
        var now = today.getUTCSeconds();
        document.cookie = 'SHTS=' + now + ';';
        document.cookie = 'SHTSP=' + escape(location.href) + ';';
    }
    else {
        // Refresh detection has been disabled
        document.cookie = 'SHTS=;';
        document.cookie = 'SHTSP=;';
    }
}

function NotRefreshHL() {
    // This is not a refresh. It's probably a submit
    // with the same search string, so disable refresh
    // detection on this go around.
    searchhi_unl = 0;
    return true;
}

// By default, turn refresh detection on
var searchhi_unl = 1;

// window.onload = SearchHighlight;
// window.onload = SmartHighlight;
// window.onunload = SmartHLUnload;

// END Searchhi.js
