﻿// Script to swap between stylesheets by Mark Wilton-Jones, 05/12/2002. v2.2.1 updated 14/03/2006 for dynamic stylesheets

function getAllSheets() {
    if (!window.ScriptEngine && navigator.__ice_version) { return document.styleSheets; }
    if (document.getElementsByTagName) {
        var Lt = document.getElementsByTagName('link'), St = document.getElementsByTagName('style');
    } else if (document.styleSheets && document.all) {
        var Lt = document.all.tags('LINK'), St = document.all.tags('STYLE');
    } else { return []; } for (var x = 0, os = []; Lt[x]; x++) {
        var rel = Lt[x].rel ? Lt[x].rel : Lt[x].getAttribute ? Lt[x].getAttribute('rel') : '';
        if (typeof (rel) == 'string' && rel.toLowerCase().indexOf('style') + 1) { os[os.length] = Lt[x]; }
    } for (var x = 0; St[x]; x++) { os[os.length] = St[x]; } return os;
}
function changeStyle() {
    window.userHasChosen = window.MWJss;
    for (var x = 0, ss = getAllSheets(); ss[x]; x++) {
        if (ss[x].title) { ss[x].disabled = true; }
        for (var y = 0; y < arguments.length; y++) { if (ss[x].title == arguments[y]) { ss[x].disabled = false; } }
    }
    return false;
}
function rememberStyle(cookieName, cookieLife) {
    for (var viewUsed = false, ss = getAllSheets(), x = 0; window.MWJss && MWJss[x] && ss[x]; x++) { if (ss[x].disabled != MWJss[x]) { viewUsed = true; break; } }
    if (!window.userHasChosen && !viewUsed) { return; }
    for (var x = 0, outLine = '', doneYet = []; ss[x]; x++) {
        if (ss[x].title && ss[x].disabled == false && !doneYet[ss[x].title]) { doneYet[ss[x].title] = true; outLine += (outLine ? ' MWJ ' : '') + escape(ss[x].title); } 
    }
    if (ss.length) { document.cookie = escape(cookieName) + '=' + escape(outLine) + (cookieLife ? ';expires=' + new Date((new Date()).getTime() + (cookieLife * 86400000)).toGMTString() : '') + ';path=/'; }
}
function useStyleAgain(cookieName) {
    for (var x = 0; x < document.cookie.split("; ").length; x++) {
        var oneCookie = document.cookie.split("; ")[x].split("=");
        if (oneCookie[0] == escape(cookieName)) {
            var styleStrings = unescape(oneCookie[1]).split(" MWJ ");
            for (var y = 0, funcStr = ''; styleStrings[y]; y++) { funcStr += (y ? ',' : '') + 'unescape( styleStrings[' + y + '] )'; }
            eval('changeStyle(' + funcStr + ');'); break;
        } 
    } window.MWJss = []; for (var ss = getAllSheets(), x = 0; ss[x]; x++) { MWJss[x] = ss[x].disabled; }
}

useStyleAgain('styleTestStore');

window.onunload = function() {
    rememberStyle('styleTestStore');
}

// end swap stylesheets
