function stylesheets()
{
  var stylesheets = new Array();
  
  if (document.getElementsByTagName) {
  
    links = document.getElementsByTagName("link");
    styles = document.getElementsByTagName("style");
    
    for (var n=0; n < links.length; n++) {
    
      if (links[n].getAttribute("rel")) {
        var rel = new String(links[n].getAttribute("rel"));
	
	if (rel.toLowerCase().indexOf("style") >= 0) {
	  stylesheets.push(links[n]);
	}
      }
    
    }
    
    for (var n=0; n < styles.length; n++) {
    
      stylesheets.push(styles[n]);
    
    }
  
  }
    
  return stylesheets;
}

function disableAllStyles(persist)
{
  var ss = stylesheets();
  
  for (var n=0; n < ss.length; n++) {
  
    ss[n].disabled = true;
  
  }
  
  if (persist) {
    var now = new Date();
    var expires = new Date(now.getTime() + (365 * 24 * 60 * 60 * 1000));
    document.cookie = "preferredStyle=disabled; expires=" + expires.toGMTString() + "; path=/;";
  }
  
  return;
}

function enableStyleSheet(title, persist)
{
  var ss = stylesheets();
  
  for (var n=0; n < ss.length; n++) {
    
    if (ss[n].title == title) {
      ss[n].rel = "stylesheet";
      ss[n].disabled = false;
      
      if (persist) {
      
        var now = new Date();
	var expires = new Date(now.getTime() + (365 * 24 * 60 * 60 * 1000));
	document.cookie = "preferredStyle=" + escape(title) + "; expires=" + expires.toGMTString() + "; path=/;";
      
      }
    } else if (ss[n].title) {
      ss[n].disabled = true;
    }
  }
  
  return;
}

function loadPreferredStyle()
{
  var cookies = new String(document.cookie);
  var pos = cookies.indexOf("preferredStyle=");
  
  if (pos >= 0) {
    var first = cookies.indexOf("=", pos) + 1;
    var last = cookies.indexOf(";", first) == -1 ? cookies.length : cookies.indexOf(";", first);
    
    var preferred = unescape(cookies.substring(first, last));
    
    if (preferred == "disabled") {
      disableAllStyles(true);
    } else {
      enableStyleSheet(preferred, true);
    }
  }
  
  return;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

window.onload = loadPreferredStyle;
loadPreferredStyle();

