var locationBase = "http://www.klio.org/weblog/";
var styleList = ["retrostyle2002.css", 
		"lightstyle2003.css", 
		"darkstyle2003.css", 
		"springstyle2003.css", 
		"defaultstyle.css",
		"oldschool.css"];

//First, we test to see if the browser supports both DOM Events and
//DOM StyleSheet.  If it does, we a) create a new link in the
//navigation, and b) register an onClick handler for that link.

registerListeners();

function registerListeners() {
  if (document.implementation.hasFeature("Events", "2.0")) {
    var divs = document.getElementsByTagName("div");
    for (var i=0; i < divs.length; i++) {
      if (divs[i].className == "navigation") {
	var linkList = divs[i].getElementsByTagName("ul")[0];
	var link = document.createElement("a");
	link.href="index.html";
	link.title="Cycle through available styles";
	var linkItem = document.createElement("li");
	linkItem.appendChild(link);
	linkList.appendChild(linkItem);
	link.appendChild(document.createTextNode("Switch Style"));
	link.addEventListener("click", linkClickHandler, false);
      }
    }
    setDefaultStyle();
  }
}

//This sets the style for the page based on the cookie the user has set
function setDefaultStyle() {
  var cookie = readCookie("booklogStyle");
  if (cookie) {
    setStyleSheet(cookie);
  }
}

function setStyleSheet(href) {
  var cssLink = document.createElement("link");
  cssLink.rel = "stylesheet";
  cssLink.href = href;
  cssLink.type = "text/css";
  var head = document.getElementsByTagName("head")[0];
  var links = head.getElementsByTagName("link"); 
  for (var i=0; i < links.length; i++) {
    if (links[i].rel == "stylesheet") {
      head.removeChild(links[i]);
    }
  }
  head.appendChild(cssLink);
}


//When the link is clicked, we look to see which stylesheet we're
//using now, and then rotate to the next one; we load it up, and set a
//cookie for the user, so it remembers their setting.

function linkClickHandler(clickEvent) {
  var cssLink = document.createElement("link");
  cssLink.rel = "stylesheet";
  cssLink.href = "defaultstyle.css";
  cssLink.type = "text/css";
  var head = document.getElementsByTagName("head")[0];
  var links = head.getElementsByTagName("link"); 
  for (var i=0; i < links.length; i++) {
    if (links[i].rel == "stylesheet") {
      for (var j=0; j < styleList.length; j++) {
	if (locationBase + styleList[j] == links[i].href) {
	  if (j+1 == styleList.length) {
	    cssLink.href = styleList[0];
	  } else {
	    cssLink.href = styleList[j+1];
	  }
	}
      }
      head.removeChild(links[i]);
    }
  }
  head.appendChild(cssLink);
  createCookie("booklogStyle", cssLink.href, 365);
  clickEvent.preventDefault();
}

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