// Original: http://www.alistapart.com/d/alternate/styleswitcher.js
// from http://www.alistapart.com/stories/alternate/
// Heavily changed by Peter Benie <pjb1008@cam.ac.uk>
// Not sure how much is left of original.

function setActiveStyleSheet(title) {
    var links=document.getElementsByTagName('link');
    var oldactive=document.getElementById('style-Blue')
    var newactive;
    for (var i=0; i<links.length; i++) {
	var link=links[i];
	if ((link.getAttribute('rel')=='alternate stylesheet') 
	    && link.getAttribute('title')) {
	    if (!link.disabled) oldactive=link;
	    if (link.getAttribute('title') == title) 
	    {
		link.disabled=false;
		newactive=link;
	    }
	    else
	    {
		link.disabled=true;
	    }
	}
    }

    return title;
}

function getActiveStyleSheet() {
    var links=document.getElementsByTagName('link');
    for (var i=0; i<links.length; i++) {
	var link=links[i];
	if ((link.getAttribute('rel')=='alternate stylesheet')
	    && link.getAttribute('title')
	    && !link.disabled)
	    return link.getAttribute('title');
    }
    return 'Blue';
}

function getPreferredStyleSheet() {
    var links=document.getElementsByTagName('link');
    for (var i=0; i<links.length; i++) {
	var link=links[i];
	if (link.getAttribute('rel')=='stylesheet' 
	    && link.getAttribute('title'))
	    return link.getAttribute('title');
    }
    return 'Blue';
}

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

function readCookie(name) {
    if (!document.cookie) return null;
    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 activate(title) {
    try
    {
	if (navigator.vendor.match(/^Apple/))
	    return true;
	//    alert('setactive' + title);
	setActiveStyleSheet(title);
	createCookie('style', title, 365);
	markActive(title);
	return false;
    }
    catch (e)
    {
	return true;
    }
}

function markActive(title) {
    return;
    var ul=document.getElementById('stylelist');
    var active=null;
    if (!ul) return;

    var links=ul.getElementsByTagName('a');
    for (var i=0; i<links.length; i++) {
	var link=links[i];
	if (link.textContent==title) active=link;
	link.id="";
    }
    if (active) active.id="styleactive";
}

window.onload = function(e) {
    var cookie = readCookie('style');
    if (cookie) {
//	alert('onload cookie='+cookie);
	markActive(setActiveStyleSheet(cookie));
    } else {
	markActive(setActiveStyleSheet(getActiveStyleSheet()));
    }
}

window.onunload = function(e) {
    var title = getActiveStyleSheet();
    if (title) createCookie('style', title, 365);
}

var cookie = readCookie('style');
// alert('JS load cookie='+cookie);
if (cookie) setActiveStyleSheet(cookie);
