﻿

// This is to fix a problem with highfield content
// they call window.sizeTo - thinking theyre in a pop up
// but theyre not in a pop up
// When this is called in a frame ie sets the style property
// of the parent frame to whatever the sizeTo method wants


var interval = 0;

try {
    interval = setInterval("oneCentSizeScoFrame();", 3000);
} catch (e) { }

function oneCentSizeScoFrame() {
    try {
        var frameToSize = document.getElementById("scoFrame").document.frames[0].document.getElementById("scoContentFrame");
        if (frameToSize && (frameToSize.style != "undefined" && frameToSize.style != "")) {
            clearInterval(interval);
            frameToSize.style.height = "100%";
        }
    } catch (e) { }
}




var accessKeysOn = false;

accessKeysOn = getCookie("accessKeys") != 0;


var highContrastOn = false;

highContrastOn = getCookie("highContrast") != 0;


var skipLinksOn = false;

skipLinksOn = getCookie("skipLinks") != 0;



if (highContrastOn) {

    var link = document.createElement('link');

    link.rel = 'stylesheet';

    link.href = '/assets/skins/sections/highcontrast/styles/colors.css';

    document.getElementsByTagName("head")[0].appendChild(link);


}


if (skipLinksOn) {

    var ds = document.getElementsByTagName("div");

    var lks = new Array();

    var tdat = 0;

    for (var i = 0; i < ds.length; i++) {

        if (ds[i].className == "topDate")
            tdat = ds[i];

        if (ds[i].className != "panelTitle")
            continue;

        var text = ds[i].firstChild;

        if (ds[i].id == "")
            ds[i].id = "panelTitle" + i;

        lks[lks.length] = [text, ds[i].id];

    }

    if (tdat) {

        while (tdat.firstChild)
            tdat.removeChild(tdat.firstChild);

        for (var i = 0; i < lks.length; i++) {

            var ll = document.createElement("a");
            ll.setAttribute("href", "#" + lks[i][1]);
            ll.appendChild(lks[i][0].cloneNode(true));
            ll.style.float = "right";
            ll.style.color = "black";
            ll.style.marginLeft = "1em";
            ll.className = "accessMe";
            tdat.appendChild(ll);
    

        }

    }

}


if (accessKeysOn) {

    var link = document.createElement('link');

    link.rel = 'stylesheet';

    link.href = '/assets/skins/sections/highcontrast/styles/noscroll.css';

    document.getElementsByTagName("head")[0].appendChild(link);

    var as = document.getElementsByTagName("a");

    var keys = "0123456789ABCEFGHIJKLMNOPQRSTUVWXYZ#/+-.;".split("");

    var keyIndex = 0;

    for (var i = 0; i < as.length && keyIndex < keys.length; i++) {

        if (as[i].accessKey)
            continue;

        var c = new Array();

        c[1] = keyIndex < keys.length ? 1 : 0;
        c[2] = as[i].style.display != "none" ? 1 : 0;
        c[3] = as[i].style.visibility != "hidden" ? 1 : 0;
        c[4] = as[i].innerHTML.replace(/^\s+|\s+$/g, '') != "" ? 1 : 0;
        c[5] = as[i].parentNode.className == "TMSTableActionColumn" ? 1 : 0;
        c[6] = as[i].parentNode.className == "profileEditLink" ? 1 : 0;
        c[7] = as[i].parentNode.className == 'messageCentreNotifications' ? 1 : 0;
        c[8] = "oAC,oC,aOAC,aOC".indexOf(as[i].parentNode.classname) != -1 ? 1 : 0;
        c[9] = as[i].parentNode.classname == "name" ? 1 : 0;
        c[10] = as[i].onclick || as[i].className == 'accessMe' ? 1 : 0;
        c[11] = as[i].parentNode.id == 'breadCrumb' ? 1 : 0;
        c[12] = as[i].className == 'quickLinkLink' ? 1 : 0;
        c[13] = as[i].parentNode.className == 'messageCentreSubTitle' ? 1 : 0;

        if (keyIndex < keys.length && as[i].style.display != "none" && as[i].style.visibility != "hidden" && as[i].innerHTML.replace(/^\s+|\s+$/g, '') != "" && (as[i].parentNode.className == "TMSTableActionColumn" || as[i].parentNode.className == "profileEditLink" || as[i].parentNode.className == 'messageCentreNotifications' || "oAC,oC,aOAC,aOC".indexOf(as[i].parentNode.className) != -1 || as[i].parentNode.className == "name" || as[i].onclick || as[i].className == 'accessMe' || as[i].parentNode.id == 'breadCrumb' || as[i].className == 'quickLinkLink' || as[i].parentNode.className == 'messageCentreSubTitle' /*|| as[i].parentNode.className == 'navButton'*/)) {

            var tn = document.createTextNode(" [" + keys[keyIndex] + "]");
            
            as[i].accessKey = keys[keyIndex];

            as[i].appendChild(tn);

            as[i].tabIndex = 999999;

            keyIndex++;

        }

    }

    var bs = document.getElementsByTagName("input");
    
    for (var i = 0; i < bs.length && keyIndex < keys.length; i++) {

        if ((bs[i].type == "submit" || bs[i].type == "button") && keyIndex < keys.length) {

            if (bs[i].value.replace(/^\s+|\s+$/g, '') == ">>")
                bs[i].value = keys[keyIndex] + ">";
            else if (bs[i].value.replace(/^\s+|\s+$/g, '') == "<<")
                bs[i].value = "<" + keys[keyIndex];
            else
                bs[i].value += " [" + keys[keyIndex] + "]";

            bs[i].accessKey = keys[keyIndex];

            bs[i].tabIndex = 999999;

            keyIndex++;

        }


    }


    for (var i = 0; i < bs.length; i++) {

        if ((bs[i].type == "text" || bs[i].type == "select" || bs[i].type == "file" || bs[i].type == "password" || bs[i].type == "image") && bs[i].style.display != "none" && bs[i].style.visibility != "hidden" && keyIndex < keys.length) {

            var hdop = document.createElement("input");
            hdop.type = "radio";
            hdop.accessKey = keys[keyIndex];
            hdop.setAttribute("onclick", "document.getElementById('" + bs[i].id + "').focus();document.getElementById('" + bs[i].id + "').click();");
            hdop.tabIndex = 999999;
            hdop.name = "ActiveSelection";

            bs[i].parentNode.insertBefore(hdop, bs[i]);
            bs[i].parentNode.insertBefore(document.createTextNode("[" + keys[keyIndex] + "]"), bs[i]);

            i++;

            keyIndex++;

        }

    }

    
    
    for (var i = 0; i < bs.length && bs.length < keys.length; i++) {

        if ((bs[i].type == "radio" || bs[i].type == "checkbox") && keyIndex < keys.length && bs[i].accessKey == "") {

            var tn = document.createTextNode(" [" + keys[keyIndex] + "]");

            bs[i].parentNode.appendChild(tn);

            bs[i].accessKey = keys[keyIndex];

            bs[i].tabIndex = 999999;

            keyIndex++;


        }

    }

    


    var ss = document.getElementsByTagName("select");

    for (var i = 0; i < ss.length; i++) {

        if (keyIndex < keys.length && ss[i].style.display != "none" && ss[i].style.visibility != "hidden") {

            var hdop = document.createElement("input");
            hdop.type = "radio";
            hdop.accessKey = keys[keyIndex];
            hdop.setAttribute("onclick", "document.getElementById('" + ss[i].id + "').focus();");
            hdop.tabIndex = 999999;
            hdop.name = "ActiveSelection";

            ss[i].parentNode.insertBefore(hdop, ss[i]);
            ss[i].parentNode.insertBefore(document.createTextNode("[" + keys[keyIndex] + "]"), ss[i]);

            keyIndex++;

        }

    }


    var ts = document.getElementsByTagName("textarea");

    for (var i = 0; i < ts.length; i++) {

        if (keyIndex < keys.length && ts[i].style.display != "none" && ts[i].style.visibility != "hidden") {

            var hdop = document.createElement("input");
            hdop.type = "radio";
            hdop.accessKey = keys[keyIndex];
            hdop.setAttribute("onclick", "document.getElementById('" + ts[i].id + "').focus();");
            hdop.tabIndex = 999999;
            hdop.name = "ActiveSelection";

            ts[i].parentNode.insertBefore(hdop, ts[i]);
            ts[i].parentNode.insertBefore(document.createTextNode("[" + keys[keyIndex] + "]"), ts[i]);

            keyIndex++;

        }

    }

}


function getCookie(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 "";
}

function setCookie(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) +
    ";path=/" +
((expiredays == null) ? "" : ";expires=" + exdate.toUTCString());
}

