// Simple stylesheet switcher
// Pass "null" to title to turn of stylesheets

function setStyleSheet(title,noSave) {
	// Disable ypSlideOutMenus if they are being used
	// and a text-only version is requested
	if (!title && ypSlideOutMenu) {
		ypSlideOutMenu.disableAll();
	} else {
		ypSlideOutMenu.enableAll();
	}

	changeStyle(title);
	
	if (!noSave) {
		var c = new Cookie("stylesheet");
		c.path = '/';
		c.setExpires(14,0,0);
		if (title) {
			c.value = title;
		} else {
			c.value = '#NONE#';
		}
		c.save();
	}
}

function initStyleSheet() {
	var c = new Cookie("stylesheet");
	if (c.value) {
		var val = (c.value == "#NONE#") ? null : c.value;
		changeStyle(val,true);
	}
}

/***********************************************************************************************
                             Script to swap between stylesheets
    Written by Mark Wilton-Jones, 05/12/2002. v2.2 updated 29/04/2004 for Konqeror XHTML fix
************************************************************************************************/

// Found this at:
// http://www.howtocreate.co.uk/jslibs/htmlhigh/swapstyle.html

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; } }
} }

function rememberStyle( cookieName, cookieLife ) {
        for( var viewUsed = false, ss = getAllSheets(), x = 0; window.MWJss && 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; }
}