/* Instructions:
 *
 * From AlistApart: http://www.alistapart.com/articles/alternate/
 *

To include the javascript file, you add a script element to the head of your document, making sure that it is put below all the style sheet link elements you have. The HTML would look like this:

	<script type="text/javascript" 
	src="/scripts/styleswitcher.js"></script>

To allow the visitor to change the active style sheet, you could use javascript onClick events. For example, to have the option to switch between two themes with titles “default” and “paul,” you could use the following HTML:

	<a href="#" 
	onclick="setActiveStyleSheet('default'); 
	return false;">change style to default</a>

	<a href="#" 
	onclick="setActiveStyleSheet('paul'); 
	return false;">change style to paul</a>

Once the visitor has selected a theme, it will be stored in a cookie. To use the same theme throughout your website, the same style sheet and javascript link elements should be included in the head of every page of the site.

 *
 */

function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

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=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function openPrintWindow(URL) {
  printMode = true;
  w = window.open(URL);
  /* this doesn't work, so use the printMode hack in parent for child to check
  w.setActiveStyleSheet("print");
  */
}

/* comment out cookie-creation if only for the one page, else will sustain stylesheet across new pages */

window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  if (opener.printMode == true && title != "print") title = "print";
  setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  /* createCookie("style", title, 365); */ /* use for persistent stylesheet changes */
}


var printMode = false;
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
if (opener.printMode == true && title != "print") title = "print";
setActiveStyleSheet(title);
<!-- ph=1 -->
<!-- nhm:from_kauri -->
