//
// Style switching for University of Helsinki, Department of Computer Science
// Petri Kutvonen, Oct 2003
// Last edited by Petri Kutvonen, Jan 2004
// Based partially on the work of Paul Snowden and Eric Meyer
// 

var detect = navigator.userAgent.toLowerCase();
var OS, browser, version, total, thestring;
var styleCookie = "tktl";

// Match string

function checkIt(string)
{
        place = detect.indexOf(string) + 1;
        thestring = string;
        return place;
}

// Assing a new href to the first stylesheet link and make it active 

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

// Cookie handling

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 eraseCookie(name) {
	createCookie(name,'',-1);
}

// Swich to new stylesheet

function switchStyle(s)
{
	setStyle("/include/" + s + "-v2.css");
	if (s != styleCookie)
		if (s != "tktl")
			createCookie("cs-helsinki-fi-style-v2", s, 365);
		else
			eraseCookie("cs-helsinki-fi-style-v2");
	styleCookie = s;
}

function detectBrowser()
{
	if (checkIt('konqueror'))
	{
	        browser = "Konqueror";
	        OS = "Linux";
	}
	else if (checkIt('omniweb')) browser = "OmniWeb"
	else if (checkIt('opera')) browser = "Opera"
	else if (checkIt('webtv')) browser = "WebTV";
	else if (checkIt('icab')) browser = "iCab"
	else if (checkIt('msie')) browser = "IE"
	else if (!checkIt('compatible'))
	{
		version = detect.charAt(8);
		if (version >= "5")
			browser = "Mozilla"
		else
	        	browser = "Netscape"
	}
	else browser = "Unknown";

	// Mozilla covers Galeon, Phoenix, Firebird and some other browsers too

	if (!version) version = detect.charAt(place + thestring.length);

	if (!OS)
	{
	        if (checkIt('linux')) OS = "Linux"
	        else if (checkIt('x11')) OS = "Unix"
	        else if (checkIt('mac')) OS = "Mac"
	        else if (checkIt('win')) OS = "Windows"
	        else OS = "Unknown";
	}
}

window.onload = function(e)
{
	styleCookie = readCookie("cs-helsinki-fi-style-v2");
	if (!styleCookie)
		styleCookie = "tktl";
	if (styleCookie != "tktl")
		switchStyle(styleCookie);
}

// Opera requires that we have at least two stylesheets to enable
// style switching - logical in a way
// However, this means that we must try to recognize the browser

detectBrowser();

if ((browser == "Opera") && (version >= "7"))
	document.write('<link rel="alternate stylesheet" href="/include/tktl-magic-v2.css" type="text/css" title="tktl-magic">\n');

// end of switchstyle.js


