﻿//Need to include errorPageStrings.js when you include this filefunction isExternalUrlSafeForNavigation(urlStr){    var regEx = new RegExp("^(http(s?)|ftp|file)://", "i");    return regEx.exec(urlStr);}function clickRefresh(){    var location = window.location.href;    var poundIndex = location.indexOf('#');        if (poundIndex != -1 && poundIndex+1 < location.length && isExternalUrlSafeForNavigation(location.substring(poundIndex+1)))    {        window.location.replace(location.substring(poundIndex+1));    }}function navCancelInit(){    var location = window.location.href;    var poundIndex = location.indexOf('#');        if (poundIndex != -1 && poundIndex+1 < location.length && isExternalUrlSafeForNavigation(location.substring(poundIndex+1)))    {        var bElement = document.createElement("A");        bElement.innerText = L_REFRESH_TEXT;        bElement.href = 'javascript:clickRefresh()';        navCancelContainer.appendChild(bElement);    }    else    {        var textNode = document.createTextNode(L_RELOAD_TEXT);        navCancelContainer.appendChild(textNode);    }}function expandCollapse(elem, changeImage){    if (document.getElementById)    {        ecBlock = document.getElementById(elem);        if (ecBlock != undefined && ecBlock != null)        {            if (changeImage)            {                //gets the image associated                elemImage = document.getElementById(elem + "Image");            }            //make sure elemImage is good            if (!changeImage || (elemImage != undefined && elemImage != null))            {                if (ecBlock.currentStyle.display == "none" || ecBlock.currentStyle.display == null || ecBlock.currentStyle.display == "")                {                    //shows the info.                    ecBlock.style.display = "block";                    if (changeImage)                    {                        //Just got in expanded mode. Thus, change image to "collapse"                        elemImage.src = "up.png";                    }                }                else if (ecBlock.currentStyle.display == "block")                {                    //hide info                    ecBlock.style.display = "none";                    if (changeImage)                    {                        //Just got in collapsed mode. Thus, change image to "expand"                        elemImage.src = "down.png";                    }                }                else                {                    //catch any weird circumstances.                    ecBlock.style.display = "block";                    if (changeImage)                    {                        elemImage.src = "up.png";                    }                }            }//end check elemImage        }//end check ecBlock    }//end getElemById}//end expandCollapsefunction initHomepage(){    // in real bits, urls get returned to our script like this:    // res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm    //For testing use    //DocURL = "res://shdocvw.dll/http_404.htm#http://www.microsoft.com/bar.htm"    DocURL=document.location.href;    var poundIndex = DocURL.indexOf('#');        if (poundIndex != -1 && poundIndex+1 < location.length && isExternalUrlSafeForNavigation(location.substring(poundIndex+1)))    {          //this is where the http or https will be, as found by searching for :// but skipping the res://       protocolIndex=DocURL.indexOf("://", 4);          //this finds the ending slash for the domain server       serverIndex=DocURL.indexOf("/", protocolIndex + 3);          //for the href, we need a valid URL to the domain. We search for the # symbol to find the begining       //of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker.       //urlresult=DocURL.substring(protocolIndex - 4,serverIndex);       BeginURL=DocURL.indexOf("#",1) + 1;       urlresult=DocURL.substring(BeginURL, serverIndex);       if (protocolIndex - BeginURL > 7)           urlresult="";        //for display, we need to skip after http://, and go to the next slash       displayresult=DocURL.substring(protocolIndex + 3, serverIndex);    }     else    {       displayresult = "";       urlresult = "";    }    var aElement = document.createElement("A");    aElement.innerText = displayresult;    aElement.href = urlresult;    homepageContainer.appendChild(aElement);}function initGoBack(){    //fills in the span container for "back to previous page"    //Basically, makes "back to previous page" a clickable item IF there's something in the navstack.    if (history.length < 1)    {        //this page is the only thing. Nothing in history.        var textNode = document.createTextNode(L_GOBACK_TEXT);        goBackContainer.appendChild(textNode);    }    else    {        var bElement = document.createElement("A");        bElement.innerText = L_GOBACK_TEXT ;        bElement.href = "javascript:history.back();";        goBackContainer.appendChild(bElement);    }				}function initMoreInfo(infoBlockID){    var bElement = document.createElement("A");    bElement.innerText = L_MOREINFO_TEXT;    bElement.href = "javascript:expandCollapse(\'infoBlockID\', true);";    moreInfoContainer.appendChild(bElement);				}function initOfflineUser(offlineUserID){    var bElement = document.createElement("A");    bElement.innerText = L_OFFLINE_USERS_TEXT;    bElement.href = "javascript:expandCollapse('offlineUserID', true);";    offlineUserContainer.appendChild(bElement);}function setTabInfo(tabInfoBlockID){    //removes the previous tabInfo text    var bPrevElement = document.getElementById("tabInfoTextID");    var bPrevImage   = document.getElementById("tabInfoBlockIDImage");    if (bPrevElement != null)    {        tabInfoContainer.removeChild(bPrevElement);    }    if (bPrevImage != null)    {        tabImageContainer.removeChild(bPrevImage);    }    var bElement = document.createElement("A");    var bImageElement = document.createElement("IMG");    var ecBlock = document.getElementById(tabInfoBlockID);    //determines if the block is closed    if ((ecBlock != undefined && ecBlock != null) &&        (ecBlock.currentStyle.display == "none" || ecBlock.currentStyle.display == null || ecBlock.currentStyle.display == ""))    {        bElement.innerText = L_SHOW_HOTKEYS_TEXT;        bImageElement.alt = L_SHOW_HOTKEYS_TEXT;        bImageElement.src="down.png";    }    else    {        bElement.innerText = L_HIDE_HOTKEYS_TEXT;        bImageElement.alt = L_HIDE_HOTKEYS_TEXT;        bImageElement.src="up.png";    }    bElement.id = "tabInfoTextID";    bElement.href = "javascript:expandCollapse(\'tabInfoBlockID\', false); setTabInfo('tabInfoBlockID');";    bImageElement.id="tabInfoBlockIDImage";    bImageElement.border="0";    bImageElement.className="actionIcon";    tabInfoContainer.appendChild(bElement);    tabImageContainer.appendChild(bImageElement);}function skipTabCheck(skipTabFrom){    if (skipTabFrom.skipTabCheckbox.checked)    {        window.external.SkipTabsWelcome();    }}function diagnoseConnection(){    window.external.DiagnoseConnection();}
