tma/include/swapstyle.js

120 lines
3.1 KiB
JavaScript

/***********************************************************************************************
Script to swap between stylesheets
Written by Mark Wilton-Jones, 05/12/2002. v2.2 updated 29/04/2004 for Konqeror XHTML fix
************************************************************************************************
Please see http://www.howtocreate.co.uk/jslibs/ for details and a demo of this script
Please see http://www.howtocreate.co.uk/jslibs/termsOfUse.html for terms of use
*/
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()
{
if (navigator.appName == "Netscape" && navigator.appVersion[0] > "4")
{
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 )
{
if (navigator.appName == "Netscape" && navigator.appVersion[0] > "4")
{
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 ) + ';domain=.tourmentine.com' + ( cookieLife ? ';expires=' + new Date( ( new Date() ).getTime() + ( cookieLife * 86400000 ) ).toGMTString() : '' ) + ';path=/'; }
}
}
function useStyleAgain( cookieName )
{
if (navigator.appName == "Netscape" && navigator.appVersion[0] > "4")
{
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;
}
}
}