
var menuTimer;
var hardwarePath = '/global/support/PublishingImages/global/';
var searchResultsBaseURL = window.location.pathname;
var helperSearchText = "Search Xbox Support";
var pageInit = true;


function OpenDashboard(dashname, consoleselector) {
    var objDash = document.getElementById(dashname);
    if (objDash != null) {
        objDash.style.display = 'block';
    }
    if (document.getElementById(consoleselector)) {
        document.getElementById(consoleselector).className = 'consoleSelectedXbox360';
    }
}

function initPage() {
    setSearchAction();
    checkServiceStatus();
    applyZebra();
    //setConsoleSpecificUrls();

    /*
    var cookies = checkCookies();
    var consoleValue;

    if (cookies) {
        var cookieValue = getCookie('xboxConsole');
        var onHomePage = ((document.location.href.indexOf('/xbox360/default.aspx') > -1)
                          || (document.location.href.indexOf('/nxe/default.aspx') > -1)
                          || (document.location.href.indexOf('/xbox/default.aspx') > -1));

        if (cookieValue == null && onHomePage) {
            showSelectConsole(true);
            return;
        }

        var urlConsoleValue = getConsole();

        if (urlConsoleValue == 'Xbox360')
            setNXECallToActionState(true);
        else
            setNXECallToActionState(false);

        if (cookieValue != urlConsoleValue)
            consoleValue = urlConsoleValue;
    }
    else {
        consoleValue = getConsole();
    }
    */
    
    //selectConsole(consoleValue, 1);
}

function setSearchAction() {

    var searchForm = document.getElementById('pathfinderProxies');
    var console = ['/', getConsole().toLowerCase(), '/'].join('');
    if (searchForm) searchForm.action = document.location.href.split(console)[0] + console + 'search.aspx';

    document.getElementById("btnBingSearch").disabled = (document.getElementById("SearchQuery") == helperSearchText);
    var searchBox = document.getElementById('SearchQuery');
    if (searchBox != null && searchBox != undefined)
        searchBox.value = helperSearchText;
}

function SearchQueryMouseClicked() {
    
    if (pageInit) {
        var searchBox = document.getElementById('SearchQuery');
        if (searchBox != null && searchBox != undefined && searchBox.value == helperSearchText) {
            searchBox.value = "";
            document.getElementById("btnBingSearch").disabled = false;
        }
        pageInit = false;
    }
}

function SearchQueryEnterKeyClicked(event, input) {
    var key;

    if (window.event)
        key = window.event.keyCode;
    else
        key = event.which;

    
    if(pageInit)
    {
        var searchBox = document.getElementById('SearchQuery');
        if (searchBox != null && searchBox != undefined && searchBox.value == helperSearchText) {
            searchBox.value = "";
            document.getElementById("btnBingSearch").disabled = false;
        }
        pageInit = false;
    }
    if (key == 13) {
        document.getElementById("btnBingSearch").click();
        window.event.keyCode = 0;
        return false;
    }
    
}

//Called by the RPSLogin control as a start up script to run and hide 
//any links flagged as only showing during login.
function showLinksWhenLogged() {
    var link = document.getElementsByTagName('a');
    for (var i = 0; i < link.length; i++) {
        if (link[i].getAttribute('showWhenSignedIn') == 'true') {
            link[i].parentNode.className = 'showOnSignedIn';
        }
    }
}

function setConsoleSpecificUrls(link) {
    var links = document.getElementsByName('consoleSpecific');
    if (!links) return;

    for (var i = 0; i < links.length; i++) {
        var url = links.item(i).href;
        var lastIndexOfSlash = url.lastIndexOf('/');

        var pageName = url.substring(lastIndexOfSlash);
        if (url.indexOf("/xbox360/", 0) > -1) {
            url = url.split('/xbox360/')[0] + "/" + getConsole().toLowerCase() + pageName;
        }
        else if (url.indexOf("/nxe/", 0) > -1) {
            url = url.split('/nxe/')[0] + "/" + getConsole().toLowerCase() + pageName;
        }
        else if (url.indexOf("/xbox/", 0) > -1) {
            url = url.split('/xbox/')[0] + "/" + getConsole().toLowerCase() + pageName;
        }

        links.item(i).href = url;
    }
}


function ExecuteSearch(input) {
    var searchTerm = document.getElementById('SearchQuery');
   
    if (searchTerm != null && searchTerm.value != helperSearchText) {
        newUrl = "/support/en/us/" + getConsole() + "/search.aspx?keyword=" + searchTerm.value;
        input.form.action = newUrl;
    }
    
}

function checkCookies() {
    setCookie('cookieTest', 1337);
    var canCookie = getCookie('cookieTest') == 1337;
    setCookie('cookieTest', 0, -1);
    return canCookie;
}
function getConsole() {
    var console = "";   
    if (document.location.href.toLowerCase().indexOf('/xbox360/') > -1) console = 'xbox360';
    else if (document.location.href.toLowerCase().indexOf('/nxe/') > -1) console = 'nxe';
    else if (document.location.href.toLowerCase().indexOf('/xbox/') > -1) console = 'xbox';
    else {

        console = GetConsoleURLType();   
        }

    return console;
}

function GetConsoleURLType() {

    
        var arrCookieCrumbs =   getCookieCrumbs('PathfinderConsoleSelector');
        
        if( arrCookieCrumbs ==null)
           return "xbox";     
         var key, value;
         var ConsoleType, DashBoardType = "";
         for (index = 0; index < arrCookieCrumbs.length; index++)
           {

               key = arrCookieCrumbs[index][0];
               value = arrCookieCrumbs[index][1];


               if (key == "Console") 
                   ConsoleType = value;                  
                  
               if (key == "Dash")
                   DashBoardType = value;                 
                   
            }

          
            if (ConsoleType == "xbox")
                return "xbox";

            if (ConsoleType == "xbox360" && DashBoardType == "nxe")
                return "nxe";

            if (ConsoleType == "xbox360" && DashBoardType == "prenxe")
                return "xbox360";

            return "xbox";
}

function expandXbox360Div() {
    var xbox360Select = document.getElementById("xbox360Select");
    var consoleSelectXboxA = document.getElementById("consoleSelectXboxA");
    var lightboxOpaqueMiddle = document.getElementById("lightboxOpaqueMiddle");
    var lightboxOpaqueBottom = document.getElementById("lightboxOpaqueBottom");

    if (xbox360Select) {
        if (consoleSelectXboxA) {
            consoleSelectXboxA.style.background = "url('/global/support/PublishingImages/global/select-consol-xbox360-on.jpg') no-repeat top center";
        }
        if (lightboxOpaqueMiddle) {
            lightboxOpaqueMiddle.style.height = "562px";
        }
        if (lightboxOpaqueBottom) {
            lightboxOpaqueBottom.style.height = "630px";
        }
        xbox360Select.style.display = "block";
    }
}


function hideAddressConfirmationPopup() {
    closeLightBoxPopup();
    hide('lightboxContent3');
}

function showAddressConfirmationPopup() {
    lightBoxPopup();
    show('lightboxContent3');
}

function closeLightBoxPopup() {
    if (document.getElementById("lightbox")) {
        document.getElementById("lightbox").style.display = "none";
        // change #hdrTop to have style of z-index:100;
    }
}

function lightBoxPopup() {
    if (document.getElementById("lightbox")) {
        document.getElementById("lightbox").style.display = "block";
        // change #hdrTop to have style of z-index:0;
    }
}

function showConsoleSelector() {
    if (document.getElementById('lightboxBG')) {
        //document.body.parentNode.style.overflowY = "hidden";
        //document.body.style.marginLeft = "-16px";
    }
    if (document.getElementById("lightTable")) {
        document.getElementById("lightTable").style.display = "block";
    }
    show('lightboxBG');
}


function showSelectConsole(forceContract) {
    var ieversion = parseFloat(navigator.userAgent.split('MSIE ')[1] || -1);
    if (ieversion >= 6) { //-1 is not IE, any positive number is ie version
        //now what?
    }

    if (document.getElementById('lightboxBG').style.display != "block") {
       // document.body.parentNode.style.overflowY = "hidden";
       // document.body.style.marginLeft = "-16px";
    }
    if (document.getElementById("lightTable")) {
        document.getElementById("lightTable").style.display = "block";
    }

    if (!forceContract && (getConsole() != "Xbox")) expandXbox360Div();

    show('lightboxBG');
    show('selectorBox');
}

function setNXECallToActionState(visible) {
    if (document.getElementById("newDashboardDiv")) {
        if (visible)
            document.getElementById("newDashboardDiv").style.display = "block";
        else
            document.getElementById("newDashboardDiv").style.display = "none";
    }
}

function selectConsole(theConsole, load) {
    if (document.getElementById('lightboxBG').style.display != "none") {
        document.body.parentNode.style.overflowY = "scroll";
        document.body.style.marginLeft = "0px";
    }
    if (document.getElementById("lightTable")) {
        document.getElementById("lightTable").style.display = "none";
    }
    theConsole = (theConsole || "").toLowerCase();
    hide('lightboxBG');
    hide('selectorBox');
    setCookie('xboxConsole', theConsole, 90);

    if (!load) return;

    var loc = document.location.href.toLowerCase();

    var yourConsolePara = document.getElementById('yourConsolePara');
    var yourConsoleImg = document.getElementById('yourConsoleImg');
    var yourConsoleLink = document.getElementById('yourConsoleLink');
    var yourDashboardImg = document.getElementById('yourDashboardImg');
    var yourDashboardLink = document.getElementById('yourDashboardLink');
    var selectedConsoleDashboard = document.getElementById('selectedConsoleDashboard');

    if (theConsole == 'xbox360') {
        if (loc.indexOf('/xbox/') > 0) location = loc.split('/xbox/')[0] + '/xbox360/default.aspx';
        else if (loc.indexOf('/nxe/') > 0) location = loc.split('/nxe/')[0] + '/xbox360/default.aspx';

        if (yourConsolePara) yourConsolePara.firstChild.nodeValue = 'Change Your Console and dash:';

        // Note: use "title" instead of "alt" to support Firefox
        if (yourConsoleImg) {
            yourConsoleImg.src = '/global/support/PublishingImages/global/xbox-360-br-sm.png';
            yourConsoleImg.title = 'Xbox 360';
        }
        if (yourDashboardImg) {
            yourDashboardImg.src = '/global/support/PublishingImages/global/homepg-dash-pre-nxe.png';
            yourDashboardImg.title = 'Pre New Xbox Experience (Pre-NXE)';
        }

        if (yourConsoleLink) yourConsoleLink.firstChild.nodeValue = 'Xbox 360';
        if (yourDashboardLink) yourDashboardLink.firstChild.nodeValue = 'Pre-NXE';
    } else if (theConsole == 'nxe') {
        if (loc.indexOf('/xbox/') > 0) location = loc.split('/xbox/')[0] + '/nxe/default.aspx';
        else if (loc.indexOf('/xbox360/') > 0) location = loc.split('/xbox360/')[0] + '/nxe/default.aspx';

        if (yourConsolePara) yourConsolePara.firstChild.nodeValue = 'Change Your Console and dash:';

        if (yourConsoleImg) {
            yourConsoleImg.src = '/global/support/PublishingImages/global/xbox-360-br-sm.png';
            yourConsoleImg.title = 'Xbox 360';
        }

        if (yourDashboardImg) {
            yourDashboardImg.src = '/global/support/PublishingImages/global/homepg-dash-nxe.png';
            yourDashboardImg.title = 'New Xbox Experience (NXE)';
        }

        if (yourConsoleLink) yourConsoleLink.firstChild.nodeValue = 'Xbox 360';
        if (yourDashboardLink) yourDashboardLink.firstChild.nodeValue = 'NXE';
    } else {
        if (loc.indexOf('/nxe/') > 0) location = loc.split('/nxe/')[0] + '/xbox/default.aspx';
        else if (loc.indexOf('/xbox360/') > 0) location = loc.split('/xbox360/')[0] + '/xbox/default.aspx';

        if (yourConsoleImg) {
            yourConsoleImg.src = '/global/support/PublishingImages/global/xbox-br-sm.png';
            yourConsoleImg.title = 'Original Xbox';
        }
        if (yourConsoleLink) {
            yourConsoleLink.firstChild.nodeValue = 'Xbox';
        }

        if (selectedConsoleDashboard) selectedConsoleDashboard.style.display = "none";
    }
}

function showSmallConsoleSelect(ConsoleName, DashName) {

    var yourConsolePara = document.getElementById('yourConsolePara');
    var yourConsoleImg = document.getElementById('yourConsoleImg');
    var yourConsoleLink = document.getElementById('yourConsoleLink');
    var yourDashboardImg = document.getElementById('yourDashboardImg');
    var yourDashboardLink = document.getElementById('yourDashboardLink');
    var selectedConsoleDashboard = document.getElementById('selectedConsoleDashboard');

    // Note: use "title" instead of "alt" to support Firefox
    if (yourConsoleImg) {
        if (ConsoleName == 'xbox') {
                yourConsoleImg.src = '/global/support/PublishingImages/global/xbox-br-sm.png';
                yourConsoleImg.title = 'Original Xbox';
                if (yourConsoleLink) { yourConsoleLink.firstChild.nodeValue = 'Xbox'; }
        } else {
            yourConsoleImg.src = '/global/support/PublishingImages/global/xbox-360-br-sm.png';
            yourConsoleImg.title = 'Xbox 360';
            if (yourConsoleLink) { yourConsoleLink.firstChild.nodeValue = 'Xbox 360'; }
        }
    }

    if (yourDashboardImg) {
        if (DashName == 'nxe') {
            yourDashboardImg.src = '/global/support/PublishingImages/global/homepg-dash-nxe.png';
            yourDashboardImg.title = 'New Xbox Experience (NXE)';
            if (yourDashboardLink) { yourDashboardLink.firstChild.nodeValue = 'NXE'; }
        } else if (DashName == 'prenxe') {
            yourDashboardImg.src = '/global/support/PublishingImages/global/homepg-dash-pre-nxe.png';
            yourDashboardImg.title = 'Pre New Xbox Experience (Pre-NXE)';
            if (yourDashboardLink) { yourDashboardLink.firstChild.nodeValue = 'Pre-NXE'; }
        } else {
            yourDashboardImg.style.display = 'none';
            if (yourDashboardLink) { yourDashboardLink.firstChild.nodeValue = ''; }
        }
    }
    
}

function setCookieRaw(cookieName, cookieValue, nDays) {
    var today = new Date();
    var expire = new Date();

    if (!nDays) nDays = 1;

    expire.setTime(today.getTime() + 3600000 * 24 * nDays);

    document.cookie = cookieName + "=" + cookieValue + ";path=/;expires=" + expire.toGMTString();
}

function getCookieRaw(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);

    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0)
            return null;
    } else
        begin += 2;

    var end = dc.indexOf(";", begin);
    if (end == -1)
        end = dc.length;

    return dc.substring(begin + prefix.length, end);
}

function setCookie(cookieName, cookieValue, nDays) {
    setCookieRaw(cookieName, escape(cookieValue), nDays);
}

function getCookie(name) {
    var cookieValue = getCookieRaw(name);
    return (!cookieValue ? null : unescape(cookieValue));
}

function setCookieCrumbs(cookieName, arrCookieCrumbs, nDays) {
    if (!cookieName || typeof (cookieName) != "string" || cookieName.trim() == "")
        return;

    if (!arrCookieCrumbs || typeof (arrCookieCrumbs) != "object" || arrCookieCrumbs.length < 1)
        return;

    var strCookieCrumbs = "";

    var arrCrumbs = new Array();

    var idxCrumb = 0;
    for (idxCrumb = 0; idxCrumb < arrCookieCrumbs.length; idxCrumb++) {
        arrCookieCrumbs[idxCrumb][0] = escape(arrCookieCrumbs[idxCrumb][0]);
        arrCookieCrumbs[idxCrumb][1] = escape(arrCookieCrumbs[idxCrumb][1]);

        // join crumb Key/Value pair on '=': Key=Value
        // arrCookieCrumbs[idxCrumb][0] = Key
        // arrCookieCrumbs[idxCrumb][1] = Value
        arrCrumbs[idxCrumb] = arrCookieCrumbs[idxCrumb].join("=");
    }

    // join cookie crumbs on '&': Key1=Value1&Key2=Value2&Key3=Value3
    if (arrCrumbs.length == 1) {
        strCookieCrumbs = "Version=1.0.0.0&" + arrCrumbs[0];
    }
    else
        strCookieCrumbs = arrCrumbs.join("&");

    setCookieRaw(cookieName, strCookieCrumbs, nDays);
}

// return array for multi-item cookie
function getCookieCrumbs(name) {
    var cookieValue = getCookieRaw(name);
    var arrCookieCrumbs = null;

    if (!cookieValue || typeof (cookieValue) != "string" || cookieValue.trim() == "")
        return arrCookieCrumbs;

    cookieValue = cookieValue.trim();

    // cookie crumbs are separated with '&', but Key/Value pair separate on '='
    var idxSep = cookieValue.indexOf("=");


    if (idxSep < 0)     // just a simple cookie
        return arrCookieCrumbs;
    else {
        arrCookieCrumbs = new Array();

        // split cookie crumbs on '&': Key1=Value1&Key2=Value2&Key3=Value3
        var arrCrumbs = cookieValue.split("&");

        // split crumb Key/Value pair on '=': Key=Value
        // arrCookieCrumbs[idxCrumb][0] = Key
        // arrCookieCrumbs[idxCrumb][1] = Value
        var idxCrumb = 0;

        for (idxCrumb = 0; idxCrumb < arrCrumbs.length; idxCrumb++) {
            var arrCrumb = arrCrumbs[idxCrumb].split("=");

            arrCookieCrumbs[idxCrumb] = new Array();
            arrCookieCrumbs[idxCrumb][0] = unescape(arrCrumb[0]);
            arrCookieCrumbs[idxCrumb][1] = unescape(arrCrumb[1]);
        }
    }

    return arrCookieCrumbs;
}




function checkServiceStatus() {
    PathfinderWebServiceProxy.XOCGetData.XDataStatus(serviceStatusComplete, serviceStatusTimeout, serviceStatusError);
}

function serviceStatusComplete(liveServiceAlert) {

    if (liveServiceAlert) {
        show('liveServiceAlert');
    }
    else {
        show('liveServiceNoAlert');
    }
}
function serviceStatusTimeout(arg) { }
function serviceStatusError(arg) { }

function appendOption(select, text, value) {
    if (!select) return;
    select = select.nodeType ? select : document.getElementById(select);
    if (select) select.options[select.options.length] = new Option(text, value);
}

function menuChange(theMenuObject) {
    for (i = 0; i < theMenuObject.options.length; i++) {
        if (theMenuObject.options[i].selected) show(theMenuObject.options[i].value);
        else hide(theMenuObject.options[i].value);
    }
}

function hide(ID) {
    var elt = document.getElementById(ID);
    if (elt) elt.style.display = 'none';
}

function show(ID) {
    var elt = document.getElementById(ID);
    if (elt) elt.style.display = 'block';
}

function getXmlDom(xml) {
    try {
        if (window.ActiveXObject) {
            var doc = new ActiveXObject("Microsoft.XMLDOM");
            if (xml) {
                doc.async = false;
                if (!doc.loadXML(xml)) throw new Error("Invalid XML.");
            }
            return doc;
        }
        if (!xml) {
            if (document.implementation && document.implementation.createDocument) return document.implementation.createDocument("", "", null);
        } else {
            if (typeof (DOMParser) != 'undefined') return new DOMParser().parseFromString(xml, "text/xml");
        }
    } catch (e) {
        alert('There was an error loading the XML. ' + (e.description ? e.description : e))
    }
    return null;
}


function menuOut() {
    menuTimer = window.setTimeout("document.getElementById('menu').style.display = 'none';", 1000);
}

function showMenu(newLeft) {
    var d = document.getElementById('menu');
    if (d.length < 1) { return; }
    d.style.left = newLeft;
    d.style.display = "block";
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);

        return [curleft, curtop];
    }
}

function showSearchResults() {
    currPage = getURLParam('page');
    searchQuery = getURLParam('keyword');
    var console = "";
    var searchBox = document.getElementById('SearchQuery');
    if (searchBox) searchBox.value = searchQuery;
    if (location.href.indexOf("/nxe/") != -1) {
        searchQuery += " nxe /nxe/";
        console = "nxe";
    }
    else if (location.href.indexOf("/xbox360/") != -1) {
        searchQuery += " xbox360 /xbox360/";
        console = "xbox360";
    }
    else if (location.href.indexOf("/xbox/") != -1) {
        searchQuery += " xbox /xbox/";
        console = "xbox";
    }
    PathfinderWebServiceProxy.LiveSearchService.XboxLiveSearch(searchQuery, currPage, searchComplete, searchTimeout, searchError);
    return (true);
}

function searchComplete(resultsXml) {
    if (!resultsXml) return;

    var searchResults = "";
    var currRow = "";
    var currentPage = 0;
    var xmlDoc = getXmlDom(resultsXml);
    if (xmlDoc != null) {
        document.getElementById('tabSimple1').innerHTML = '<br/><b>There was an error performing your search. Please try again later.</b>';
        //Number of results
        var numResults = xmlDoc.getElementsByTagName("TotalRecords")[0].childNodes[0].nodeValue;
        document.getElementById('numResults').innerHTML = numResults;
        // Pager Control
        currentPage = getURLParam('page');
        drawPagerControl(numResults, currentPage);

        // Searched Keywords 
        var currKeywords = getURLParam('keyword');
        document.getElementById('keywords').innerHTML = currKeywords;

        // First and Last results
        var firstResultNum = xmlDoc.getElementsByTagName("FirstResult")[0].childNodes[0].nodeValue;
        document.getElementById('firstResult').innerHTML = firstResultNum;
        var lastResultNum = xmlDoc.getElementsByTagName("LastResult")[0].childNodes[0].nodeValue;
        document.getElementById('lastResult').innerHTML = lastResultNum;

        var x = xmlDoc.getElementsByTagName("LiveSearchResults");
        for (i = 0; i < x.length; i++) {

            // Alternate row coloring
            if (currRow == 'resultsLineOn') { currRow = 'resultsLineOff'; }
            else { currRow = 'resultsLineOn'; }

            resultHeader = x[i].getElementsByTagName("Title")[0].childNodes[0].nodeValue;
            resultLink = x[i].getElementsByTagName("URL")[0].childNodes[0].nodeValue;
            resultMsg = x[i].getElementsByTagName("Description")[0].childNodes[0].nodeValue;

            searchResults = searchResults + "<div class='" + currRow + "'>";
            //searchResults = searchResults + "<div class='resultsIconNone'></div>";
            //searchResults = searchResults + "<br>";
            searchResults = searchResults + "<div class='resultsText'>";
            searchResults = searchResults + "<h5><a href='" + resultLink + "'>" + resultHeader + "</a></h5>";
            searchResults = searchResults + "<p>" + resultMsg + "</p>";
            searchResults = searchResults + "</div>";
            searchResults = searchResults + "</div>";
        }
        document.getElementById('tabSimple1').innerHTML = searchResults;
    }
}
function searchTimeout(arg) { }
function searchError(arg) { }

function drawPagerControl(resultCount, currentPage) {
    var pagerControlBuilder = new StringBuilder();
    var finalResultsPage = Math.floor(resultCount / 10) + 1;
    var startPosition = currentPage > 5 ? (currentPage - 5) : 1;
    var endPosition = startPosition + 10;

    if (isNaN(currentPage))
        return;

    if (finalResultsPage < (startPosition + 11)) {
        endPosition = finalResultsPage;
        startPosition = endPosition > 10 ? endPosition - 10 : 1;
    }

    if (document.getElementById('searchResultsPagerTabs')) {
        pagerControlBuilder.append('<li style="font-weight:bold;">Page:&nbsp</li>');
        for (i = startPosition; i <= endPosition; i++) {
            pagerControlBuilder.append('<li>');
            if (i != currentPage) {
                pagerControlBuilder.append('<a class="resultsLink" href="#" onclick="goToResultsPage(');
                pagerControlBuilder.append(i);
                pagerControlBuilder.append('); return false;">');
                pagerControlBuilder.append(i);
                pagerControlBuilder.append('</a>');
            }
            else {
                pagerControlBuilder.append(i);
            }

            if (i < endPosition)
                pagerControlBuilder.append('&nbsp;|&nbsp;');

            pagerControlBuilder.append('</li>');
        }

        document.getElementById('searchResultsPagerTabs').innerHTML = pagerControlBuilder.toString();
    }

}

function goPreviousResults() {
    currPage = getURLParam('page');
    currPage = currPage.replace("#", "");
    if (currPage != '1') {
        currKeywords = getURLParam('keyword');
        currScope = getURLParam('scope');
        prevPage = currPage;
        prevPage--;
        newURL = searchResultsBaseURL + '?keyword=' + currKeywords + /* '&scope=' + currScope + */'&page=' + prevPage;
        window.location.href = newURL;
    }
}
function goNextResults() {
    currKeywords = getURLParam('keyword');
    currScope = getURLParam('scope');
    currPage = getURLParam('page');
    currPage = currPage.replace("#", "");
    nextPage = currPage;
    nextPage++;
    newURL = searchResultsBaseURL + '?keyword=' + currKeywords + /* '&scope=' + currScope + */'&page=' + nextPage;
    window.location.href = newURL;
}

function goToResultsPage(pageNumber) {
    currKeywords = getURLParam('keyword');
    newURL = searchResultsBaseURL + '?keyword=' + currKeywords + /* '&scope=' + currScope + */'&page=' + pageNumber;
    window.location.href = newURL;
}

function getURLParam(strParamName) {
    var strReturn = "";
    var strHref = window.location.href;
    if (strHref.indexOf("?") > -1) {
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");
        for (var iParam = 0; iParam < aQueryString.length; iParam++) {
            if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1) {
                var aParam = aQueryString[iParam].split("=");
                strReturn = aParam[1];
                break;
            }
        }
    }
    return unescape(strReturn);
}

function setActiveRepairStatus(theBoxNum) {
    var rsx = 'repairStatusBox';
    var pfx = hardwarePath + 'box';
    for (var i = 0; i < 6; i++) {
        setImgID(rsx + i, pfx + i + (i <= theBoxNum ? i < theBoxNum ? 'Done.gif' : 'Active.gif' : 'Gray.gif'));
        self[i < theBoxNum ? 'show' : 'hide'](rsx + i + 'Msg');
    }
}

function setImg(theDiv, theImg) {
    if (theDiv) theDiv.src = theImg;
}
function setImgID(theID, theImg) {
    setImg(document.getElementById(theID), theImg);
}

//load('http://wherever', 'false' | delegate, 'POST'| 'GET' | 'HEAD', 'name=value&name=value');
function ratingsLoad(url, callback, method, params) {
    var xmlhttp = null;
    if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    if (window.ActiveXObject) xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');

    if (xmlhttp != null) {

        if (typeof (callback) == 'function') xmlhttp.onreadystatechange = state_Change;

        xmlhttp.open(method || "GET", url, !!callback);

        // this is needed for the post and should get added back into the load() method
        if (method == 'POST')
            xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

        xmlhttp.send(params || null);
    }
    else {
        alert("Your browser does not support XMLHTTP.")
    }

    if (!callback && xmlhttp.status == 200) return xmlhttp.responseText;
    function state_Change() {
        if (xmlhttp.readyState != 4) return;
        if (xmlhttp.status == 200) callback(xmlhttp.responseText);
    }
}

var starNum;
// Rating update func. depend on the user click
function SubmitThis() {
    if (!valadateRatingEntry()) {
        document.getElementById('invalidRatingCharLength').style.display = 'block';
        return;
    }
    else {
        document.getElementById('invalidRatingCharLength').style.display = 'none';
    }

    var params = buildRatingsParams();
    ratingsLoad('/PathfinderDataServices/ratingshandler.ashx', false, 'POST', params);

    var theDiv = document.getElementById('ratingsHiddenPanel');
    theDiv.setAttribute("class", "ratingsHidden");
    theDiv.setAttribute("className", "ratingsHidden");

    var theDiv2 = document.getElementById('rateThisThankYou');
    theDiv2.setAttribute("class", "ratingsShow");
    theDiv2.setAttribute("className", "ratingsShow");
}

function valadateRatingEntry() {
    var valid = false;
    var comments = document.getElementById('txtAdditionalComments');

    if (comments) {
        valid = (comments.value.length < 256);
    }

    return valid;
}

function buildRatingsParams() {
    var ratingImg = document.getElementById('feedbackStars');
    var comments = document.getElementById('txtAdditionalComments');
    var ratingScore = ratingImg.alt;

    var params = 'rateThisPage=' + ratingImg.alt + '&' +
                 'success=' + getRadioButtonListVal('rblArticleHelp') + '&' +
                 'easyToUnderstand=' + getRadioButtonListVal('rblEasyToUnderstand') + '&' +
                 'accurate=' + getRadioButtonListVal('rblAccurate') + '&' +
                 'additionalComments=' + comments.value + '&' +
                 'url=' + window.location.href;

    return params;
}

function getRadioButtonListVal(id) {
    var radio = document.getElementsByName(id);
    var retVal;
    for (var j = 0; j < radio.length; j++) {
        if (radio[j].checked)
            retVal = radio[j].value;
    }

    return retVal;
}

// Update Rating Comment if user entered comment
function UpdateComment() {
    var titleElt = document.getElementsByTagName('title')[0];
    var pageTitle = titleElt.firstChild ? titleElt.firstChild.nodeValue : titleElt.innerHTML;
    PathfinderWebServiceProxy.RatingService.UpdateRatingList(pageTitle, starNum, document.getElementById('CommentBox').value, location.href, updateRatingComplete, updateRatingTimeout, updateRatingError);
    var theDiv = document.getElementById('togglePanel1');
    if (theDiv) theDiv.className = "togglePanelClosed";
    return true;
}

function updateRatingComplete(arg) { }
function updateRatingTimeout(arg) { }
function updateRatingError(arg) { }

function updatePageRating(theNumber) {
    var arrRatings = getCookieCrumbs("PathfinderArticleRatings");

    if (arrRatings == null)
        arrRatings = new Array();

    var thePage = window.location.pathname;

    // if KB page, then get KB Id
    if (thePage.lastIndexOf("/kb.aspx") > -1) {
        var searchQS = window.location.search.trim();

        if (searchQS != "") {
            var idxEnd = searchQS.indexOf("&");

            var searchQS = searchQS.substr(1, idxEnd - 1);

            // use URL Tail format for KBs: i.e. {location.pathname}/{KB Id}
            thePage += "/" + searchQS.split("=")[1];
        }
    }

    // set up container for crumb
    var arrItem = new Array();
    arrItem[0] = thePage;
    arrItem[1] = theNumber;

    // find cookie crumb or insert new
    var idxX = 0;
    for (idxX = 0; idxX < arrRatings.length; idxX++) {
        if (arrRatings[idxX][0].toLowerCase() == arrItem[0].toLowerCase())
            break;
    }

    arrRatings[idxX] = arrItem;

    setCookieCrumbs("PathfinderArticleRatings", arrRatings, 1826)
}

function getPageRating() {
    var result = "0";

    var arrRatings = getCookieCrumbs("PathfinderArticleRatings");

    if (arrRatings == null)
        return result;

    var thePage = window.location.pathname;

    // if KB page, then get KB Id
    if (thePage.lastIndexOf("/kb.aspx") > -1) {
        var searchQS = window.location.search.trim();

        if (searchQS != "") {
            var idxEnd = searchQS.indexOf("&");

            var searchQS = searchQS.substr(1, idxEnd - 1);

            // use URL Tail format for KBs: i.e. {location.pathname}/{KB Id}
            thePage += "/" + searchQS.split("=")[1];
        }
    }

    var idxX = 0;
    for (idxX = 0; idxX < arrRatings.length; idxX++) {
        if (arrRatings[idxX][0].toLowerCase() == thePage.toLowerCase()) {
            result = arrRatings[idxX][1];
            break;
        }
    }

    return result;
}

function setImg(theDiv, theImg) {
    theDiv.src = theImg;
}

function setImgID(theID, theImg) {
    theDiv = document.getElementById(theID);
    theDiv.src = theImg;
}

function doStarSwap(theID, theNumber) {
    setImgID(theID, '/global/support/publishingimages/global/' + theNumber + 'stars.png');
}

function doStarRevert(theID, theNumber) {
    var theStar = document.getElementById(theID);
    setImgID(theID, '/global/support/publishingimages/global/' + theStar.alt + 'stars.png');
}

function doStarSet(theID, theNumber) {
    var objStar = document.getElementById(theID);

    if (!objStar)
        return;

    objStar.alt = theNumber;
    objStar.title = theNumber;

    doStarSwap(theID, theNumber);
}

function doStarClick(theID, theNumber, isSurvey) {
    doStarSet(theID, theNumber);

    updatePageRating(theNumber);

    theDiv = document.getElementById('ratingsHiddenPanel');
    theDiv.setAttribute("class", "ratingsShow");
    theDiv.setAttribute("className", "ratingsShow");
}

//load('http://wherever', 'false' | delegate, 'POST'| 'GET' | 'HEAD', 'name=value&name=value');
function load(url, callback, method, params) {
    var xmlhttp = null;
    if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    if (window.ActiveXObject) xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');

    if (xmlhttp != null) {
        if (typeof (callback) == 'function') xmlhttp.onreadystatechange = state_Change;

        xmlhttp.open(method || "GET", url, !!callback);
        xmlhttp.send(params || null);
    }
    else {
        alert("Your browser does not support XMLHTTP.")
    }

    if (!callback && xmlhttp.status == 200) return xmlhttp.responseText;
    function state_Change() {
        if (xmlhttp.readyState != 4) return;
        if (xmlhttp.status == 200) callback(xmlhttp.responseText);
    }
}

function menuIn(theId) {
    clearMenus(theId);
    clearTimeout(menuTimer);
    show(theId);
}
function menuOut(theId) {
    menuTimer = setTimeout(function() { hide(theId); }, 250);
}

/* this clears all non-active menus to prevent sticking caused by
overlapping elements set by with z-index */
function clearMenus(theId) {
    var nav = document.getElementById('mainNav');
    var navUl = nav.getElementsByTagName('ul')[0];
    var menuArr = navUl.getElementsByTagName('ul');
    for (i = 0; i < menuArr.length; i++) {
        if (menuArr[i].id != theId) menuArr[i].style.display = 'none';
    }
}

function RequestRepairStatus(requestNumberId, postalCodeId) {
    var requestElement = document.getElementById(requestNumberId);
    var postalElement = document.getElementById(postalCodeId);

    if (!requestElement || !postalElement) return;
    var requestNumber = requestElement.value.replace(/^\s+|\s+$/g, '');
    var postalCode = postalElement.value.replace(/^\s+|\s+$/g, '');
    // if (!requestElement.value || !postalElement.value) return;
    if (!requestNumber || !postalCode) return;

    //document.location.href = String.format('repairstatus.aspx?sr={0}&zip={1}', encodeURIComponent(requestElement.value), encodeURIComponent(postalElement.value));
    document.location.href = String.format('repairstatus.aspx?sr={0}&zip={1}', encodeURIComponent(requestNumber), encodeURIComponent(postalCode));
}

function UpdateBox(GetObj) {
    GetObj.style.color = "#000000";
    if (GetObj.value == "First Name") {
        GetObj.value = "";
    }
    else if (GetObj.value == "Last Name") {
        GetObj.value = "";
    }
    else if (GetObj.value == "Address") {
        GetObj.value = "";
    }
    else if (GetObj.value == "Any City") {
        GetObj.value = "";
    }
    else if (GetObj.value == "Postal Code") {
        GetObj.value = "";
    }
    else if (GetObj.value == "Email") {
        GetObj.value = "";
    }
}

function ClearBoxError(FormObject) {
    FormObject.className = '';
}

function LoadSubGeographies(countryCode, subGeoSelectID) {
    var select = document.getElementById(subGeoSelectID);
    if (!select) return;
    select.options.length = 0;
    select.style.width = '200px';
    load(String.format('/support/geographyhandler.ashx?country={0}', encodeURIComponent(countryCode)), loadSubGeos);
    function loadSubGeos(responseText) {
        try {
            var subGeos = eval(responseText);
            appendOption(select, 'Select Region', '');
            if (!subGeos || !subGeos.Geographies) return;
            for (var i = 0; i < subGeos.Geographies.length; i++) {
                appendOption(select, subGeos.Geographies[i].name, subGeos.Geographies[i].code);
            }
            select.style.width = 'auto';
            LoadState();
        } catch (e) {
            /*
            debugger; throw e;
            */
        }
    }
}

function UpdatePrice(priceName, problemTypeName, countryName, productType) {
    if (priceName == null || problemTypeName == null || countryName == null) return true;

    var price = document.getElementById(priceName);
    var problemType = document.getElementById(problemTypeName);
    var country = document.getElementById(countryName);

    if (price == null || problemType == null || country == null) return true;

    var selectedCountry = country.options[country.selectedIndex].value;
    var selectedProblem = problemType.options[problemType.selectedIndex].value;
    var url = String.format('/support/repairprice.ashx?CountryCode={0}&ProblemType={1}&ProductType={2}'
                , encodeURIComponent(selectedCountry)
                , encodeURIComponent(selectedProblem)
                , encodeURIComponent(productType));

    load(url, LoadUpdatedPrice);

    function LoadUpdatedPrice(responseText) {
        price.innerHTML = responseText;
    }
    return true;
}

// Resizes the stage of the WCW //
function resizeStage(args) {
    document.getElementById('loader').height = args;
}
// Used to open help files //
function openWin(url, name, features) {
    var win = window.open(url, name, features);
}
// Used to reconfigure current window
function winConfig(_outerWidth, _outerHeight) {
    // height & width
    window.resizeTo(_outerWidth, _outerHeight);
}

function clearIframeTimeout(timer) {
    clearTimeout(timer);
}
function executeIframeTimeout(timer, displayElement, timeoutElement) {
    clearTimeout(timer);
    var element = document.getElementById(displayElement);
    if (element) {
        element.style.display = 'none';
        element.src = 'about:blank';
    }
    element = document.getElementById(timeoutElement);
    if (element) element.style.display = 'block';
}

function disableEnterKey(e) {
    //alert(key);
    var key;
    if (window.event)
        key = window.event.keyCode; //IE
    else
        key = e.which; //firefox     


    if (key == 13) {
        RequestRepairStatus('RequestNumberSearchText', 'PostalCodeSearchText');
    }
    return (key != 13);
}

function FlipUiElement(dropDownElementId) {
    var dropDown = document.getElementById(dropDownElementId);
    if (!dropDown) return;

    for (var i = 1; i < arguments.length; i++) {
        var displayElement = document.getElementById(arguments[i]);
        if (displayElement) displayElement.style.display = 'none';
    }

    var argumentToShow = dropDown.selectedIndex + 1;
    if (argumentToShow < arguments.length) {
        var visibleElement = document.getElementById(arguments[argumentToShow]);
        if (visibleElement) visibleElement.style.display = 'block';
    }
}

// 02/24/2009  - DeanH added script for bug 477, requestrepair tool tip
function OpenRequestRepairDiv(sourceid) {
    var oDiv = document.getElementById(sourceid);
    oDiv.style.display = 'block';
}

function CloseRequestRepairDiv(sourceid) {
    var objSource = document.getElementById(sourceid);
    objSource.style.display = 'none';
}
//  End bug 477 bug  addition

/*  Toggle div for show and hide and then the toggle on and off
for overlaying divs to make the primary form available
and all other items not clickable.  The toggle on and off
take the name of the primary div and and array of divs to cover
*/
function ToggleDiv(DivName) {
    var objDiv = document.getElementById(DivName);
    if (objDiv != null) {
        if (objDiv.style.display == 'none') {
            objDiv.style.display = 'block';
        } else {
            objDiv.style.display = 'none';
        }
    }
}

function ChangeDiv(DivName, show) {
    var objDiv = document.getElementById(DivName);
    if (objDiv != null) {
        if (show) {
            objDiv.style.display = 'block';
        } else {
            objDiv.style.display = 'none';
        }
    }
}

function ToggleAndCover(PrimaryDiv, CoverDivs) {
    for (i = 0; i < CoverDivs.length; i++) {
        document.getElementById(CoverDivs[i]).className = 'control_off';
    }
    ToggleDiv(PrimaryDiv);
}

function ToggleAndOff(PrimaryDiv, CoverDivs) {
    for (i = 0; i < CoverDivs.length; i++) {
        document.getElementById(CoverDivs[i]).className = 'control';
    }
    ToggleDiv(PrimaryDiv);
}

/*
function MaskDivs(divstomask) {
for (i = 0; i < divstomask.length; i++) {
document.getElementById(divstomask[i]).className = 'fade_out';
document.getElementById(divstomask[i] + '_content').className = 'content_fade';
}
}

function UnMaskDivs(divstounmask) {
for (i = 0; i < divstounmask.length; i++) {
//document.getElementById(divstounmask[i]).className = 'fade_in';
//document.getElementById(divstounmask[i] + '_content').className = 'content';
document.getElementById(divstounmask[i]).className = '';
document.getElementById(divstounmask[i] + '_content').className = '';
}
}
*/

function ToggleMaskDivs(vIdPrefix, blOnMask) {
    var objDivs = document.getElementsByTagName('div');
    if (objDivs.length > 0) {
        for (var counter = 0; counter < objDivs.length; counter++) {
            if (objDivs[counter].id.indexOf(vIdPrefix) > -1) {
                if (blOnMask) {
                    objDivs[counter].className = 'control_off';
                } else {
                    objDivs[counter].className = '';
                }
            }
        }
    }
}

function MaskDivs(divstomask) {
    for (i = 0; i < divstomask.length; i++) {
        document.getElementById(divstomask[i]).className = 'control_off';
    }
}

function UnMaskDivs(divstounmask) {
    for (i = 0; i < divstounmask.length; i++) {
        document.getElementById(divstounmask[i]).className = '';
    }
}


function OpenUserDetails() {
    document.getElementById(document.getElementById('UserDetailsId').value).style.display = '';
    document.getElementById(document.getElementById('UserDetailsTxtId').value).style.display = 'none';
    document.getElementById(document.getElementById('EditUserBtnId').value).style.display = 'none';
    document.getElementById(document.getElementById('shippingaddressid').value).style.display = 'none';
    HideMessageBox();
    return false;
}

function SaveUserInfo() {
    document.getElementById('uifirstlastname').innerHTML = UserInfoIds.firstname.value + " " + UserInfoIds.lastname.value;
    document.getElementById('uiaddress1').innerHTML = UserInfoIds.address1.value;
    if (UserInfoIds.address2.value != "") {
        document.getElementById('uiaddress2').innerHTML = UserInfoIds.address2.value;
    }
    document.getElementById('uicity').innerHTML = UserInfoIds.city.value;
    document.getElementById('uizipcode').innerHTML = UserInfoIds.zipcode.value;
    document.getElementById('uiemail').innerHTML = UserInfoIds.email.value;
    document.getElementById('uiphone').innerHTML = UserInfoIds.phone.value;
    var i = 0;
    var stateObj = document.getElementById(UserInfoIds.state.id);
    var countryObj = document.getElementById(UserInfoIds.country.id);

    for (i = 0; i < countryObj.length; i++) {
        if (countryObj[i].value == UserInfoIds.country.value) {
            countryObj[i].selected = true;
            document.getElementById('uicountry').innerHTML = countryObj[i].text;
        }
    }

    for (i = 0; i < stateObj.length; i++) {
        if (stateObj[i].value == UserInfoIds.state.value) {
            stateObj[i].selected = true;
            if (stateObj[i].text != "Select Region") {
                document.getElementById('uistate').innerHTML = stateObj[i].text;
            }
            else {
                document.getElementById('uistate').innerHTML = "";
            }
        }
    }

}

function ResetUserInfo() {
    document.getElementById(UserInfoIds.firstname.id).value = UserInfoIds.firstname.value;
    document.getElementById(UserInfoIds.lastname.id).value = UserInfoIds.lastname.value;
    document.getElementById(UserInfoIds.address1.id).value = UserInfoIds.address1.value;
    document.getElementById(UserInfoIds.address2.id).value = UserInfoIds.address2.value;
    document.getElementById(UserInfoIds.city.id).value = UserInfoIds.city.value;
    document.getElementById(UserInfoIds.zipcode.id).value = UserInfoIds.zipcode.value;
    document.getElementById(UserInfoIds.email.id).value = UserInfoIds.email.value;
    document.getElementById(UserInfoIds.phone.id).value = UserInfoIds.phone.value;
    var i = 0;
    var stateObj = document.getElementById(UserInfoIds.state.id);
    var countryObj = document.getElementById(UserInfoIds.country.id);
    for (i = 0; i < countryObj.length; i++) {
        if (countryObj[i].value == UserInfoIds.country.value) {
            countryObj[i].selected = true;

        }
    }
    LoadSubGeographies(UserInfoIds.country.value, UserInfoIds.state.id);
}

function HideMask() {
    if (document.getElementById('divupper') && document.getElementById('divlower') && document.getElementById('divsubmit') && document.getElementById('divtac')) {
        UnMaskDivs(new Array('divupper', 'divlower', 'divsubmit', 'divtac'));
    }
}


function LoadState() {
    if (UserInfoIds) {
        var i = 0;
        var stateObj = document.getElementById(UserInfoIds.state.id);
        for (i = 0; i < stateObj.length; i++) {
            if (stateObj[i].value == UserInfoIds.state.value) {
                stateObj[i].selected = true;
            }
        }
    }
}

//this should only be used for the Register/MyInfo/Repair pages
//where the ucContactInfoControl is used.
function BeginsRequestHandlerCancel(sender, args) {
    var elem = args.get_postBackElement();
    var name = elem.value;
    if (name != null && name == 'Cancel') {
        if (document.getElementById('processingtextmessage')) {
            document.getElementById('processingtextmessage').innerHTML = 'Cancelling...';
        }
    }
    show('progressupdatediv');
}



function hideConfirmMessage() {
    if (document.getElementById('RegisterSuccessId')) {
        if (document.getElementById(document.getElementById('RegisterSuccessId').value)) {
            document.getElementById(document.getElementById('RegisterSuccessId').value).style.display = 'none';
        }
    }
}

function UpdateDescriptionChars(charsObj, txtObjId, event) {
    var chars = charsObj.value.length;
    document.getElementById(txtObjId).innerHTML = chars + "/1000 characters";
    if (chars > 1000) {
        charsObj.value = charsObj.value.substring(0, 999);
        document.getElementById(txtObjId).innerHTML = "1000/1000 characters";
        //return false;
    }
}

function UpdateDescriptionChars255(charsObj, txtObjId, event) {
    var chars = charsObj.value.length;
    document.getElementById(txtObjId).innerHTML = chars + "/255 characters";
    if (chars > 255) {
        charsObj.value = charsObj.value.substring(0, 255);
        document.getElementById(txtObjId).innerHTML = "255/255 characters";
        //return false;
    }
}

function HideMessageBox() {
    if (document.getElementById(document.getElementById('MessageInfoId').value)) {
        document.getElementById(document.getElementById('MessageInfoId').value).style.display = 'none';
    }
    hideConfirmMessage();
}

function HideOutputMessage() {
    if (document.getElementById('outputmessage')) {
        document.getElementById('outputmessage').style.display = 'none';
    }
}

function EndRequestHandler(sender, args) {
    hide('progressupdatediv');
    setTimeout("HideOutputMessage()", 3000);
}

GamerTag = {
    GetCookie: function(c_name) {
        if (document.cookie.length > 0) {
            c_start = document.cookie.indexOf(c_name + "=");
            if (c_start != -1) {
                c_start = c_start + c_name.length + 1;
                c_end = document.cookie.indexOf(";", c_start);
                if (c_end == -1) c_end = document.cookie.length;
                return unescape(document.cookie.substring(c_start, c_end));
            }
        }
        return "";
    },
    Update: function() {
        var gamertag = GamerTag.GetCookie("XBXGt");
        gamertag = "blah"; // used for testing
        if (gamertag != "") {
            document.getElementById("XbcGamercardShellDisabled").style.display = "none";
            document.getElementById("XbcGamercardShellActive").style.display = "";

            GamerTag.GetContent(gamertag);
        }
        else {
            document.getElementById("XbcGamercardShellDisabled").style.display = "";
            document.getElementById("XbcGamercardShellActive").style.display = "none";
        }
    },
    GetContent: function(gamertag) {
        var gamerurl = "http://gamercard.xbox.com/" + gamertag + ".card";
        gamerurl = "http://dev04.int.support.xbox.com/support/gamercard.aspx"; // used for testing
        http = new XMLHttpRequest();
        http.open("GET", gamerurl, true);
        http.onreadystatechange = GamerTag.GetContent_Complete;
        http.send(null);
    },
    GetContent_Complete: function() {

        if (http.readyState != 4) { return; }

        var response = http.responseText;

        var descNode = document.createElement("div");
        descNode.innerHTML = response;

        // GET GAMER IMAGE
        var gamerImageArray = descNode.getElementsByTagName("img");
        var gamerImage;
        for (i = 0; i < gamerImageArray.length; i++) {
            if (gamerImageArray[i].className == "XbcgcGamertile") {
                document.getElementById('gamerTagImageId').src = gamerImageArray[i].src;
            }
        }

        // GET GAMER TAGNAME AND SCORE
        var XbcFLALInstance = 0;
        var XbcFRARInstance = 0;
        var gamerTagNameArray = descNode.getElementsByTagName("span");
        var gamerTagName;
        for (i = 0; i < gamerTagNameArray.length; i++) {
            if (gamerTagNameArray[i].className == "XbcFLAL") {
                XbcFLALInstance++;
                if (XbcFLALInstance == 1) {
                    document.getElementById('gamerTagNameId').innerHTML = gamerTagNameArray[i].innerHTML;
                }
            }
            if (gamerTagNameArray[i].className == "XbcFRAR") {
                XbcFRARInstance++;
                if (XbcFRARInstance == 2) {
                    document.getElementById('gamerTagScoreId').innerHTML = gamerTagNameArray[i].innerHTML;
                }
            }
        }



    }
}
var http = false;


// Zebra Table ------------------------------ //

function applyZebra() {
    var tables = document.getElementsByTagName("table");
    for (var i = 0, length = tables.length; i < length; i++) {
        if (tables[i].className.indexOf("zebra") >= 0) {
            var tbody = tables[i].getElementsByTagName("tbody");
            var table = (tbody[0] ? tbody[0] : tables[i]);
            var trs = table.getElementsByTagName("tr");
            for (var j = 0, lengthj = trs.length; j < lengthj; j++) {
                if (trs[j] != null) {
                    var tds = trs[j].getElementsByTagName("td");
                    if(tds != null && tds.length > 0){
                        tds[tds.length - 1].className = 'last';
                    }
                    var ths = trs[j].getElementsByTagName("th");
                    if (ths != null && ths.length > 0) {
                        ths[ths.length - 1].className = 'last';
                    }
                }
                if (j % 2 == 0) {
                    trs[j].className = 'zebrarow';
                }
            }
        }
    }
}

function importJavascriptFile(jsFile) {
    var scriptElt = document.createElement('script');
    scriptElt.type = 'text/javascript';
    scriptElt.src = jsFile;
    document.getElementsByTagName('head')[0].appendChild(scriptElt);
}
