var cookieName="defaultStyle", cookieValidity=30; // validity period in days
var styleArr = new Array(); // an array for different styles (font sizes)
	styleArr[0] = "Small Text";
	styleArr[1] = "Medium Text";
	styleArr[2] = "Large Text";
	styleArr[3] = "Extra Large Text";
var selectedStyle = 1; // index of the default font style sheet
var incFontElement, decFontElement;

function init() {
	incFontElement = document.getElementById('textInc');
	decFontElement = document.getElementById('textDec');
	var cStyle=getCookie(cookieName);
	if (cStyle!=null && cStyle!="") {
		if (getStyle(cStyle)) { // style read from cookie within styleArr[] bounds?
			selectedStyle = parseInt(cStyle);
			setStyle(selectedStyle);
		}
	}
}

function getStyle(styleIndex) {  // returns the <link> element that matches styleArr[styleIndex]
	var lnks = document.getElementsByTagName('link');
	for (var i = lnks.length - 1; i >= 0; i--) {
		if (lnks[i].getAttribute('title') == styleArr[styleIndex]) return lnks[i];
	}
}

function setStyle(styleIndex) {  // enables one style(-sheet); disables all others
	var lnks = document.getElementsByTagName('link');
	for (var i = lnks.length - 1; i >= 0; i--) {
		if (lnks[i].getAttribute('rel').indexOf('style')> -1 && lnks[i].getAttribute('title')) {
			lnks[i].disabled = true;
			if (lnks[i].getAttribute('title') == styleArr[styleIndex]) lnks[i].disabled = false;
		}
	}
	setCookie(cookieName,styleIndex,cookieValidity); // save the new preference on a cookie

	// disable (-) & (+) buttons, when not functional
	if(!styleArr[styleIndex+1]) { // last style in use
		incFontElement.className="textInc disabled";
	}
	else { incFontElement.className="textInc"; }
	if(!styleArr[styleIndex-1]) { // first style in use
		decFontElement.className="textDec disabled";
	}
	else { decFontElement.className="textDec"; }
	return false;
}

function incStyle() {
	if (styleArr[selectedStyle+1]) {
		selectedStyle++;
		setStyle(selectedStyle);
	}
	return false;
}

function decStyle() {
	if (styleArr[selectedStyle-1]) {
		selectedStyle--;
		setStyle(selectedStyle);
	}
	return false;
}

function setCookie(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 getCookie(cName) {
	if (document.cookie.length>0) {
		var cStart=document.cookie.indexOf(cName + "=");
		if (cStart!=-1) {
			cStart=cStart + cName.length+1;
			var cEnd=document.cookie.indexOf(";",cStart);
			if (cEnd==-1) cEnd=document.cookie.length;
			return unescape(document.cookie.substring(cStart,cEnd));
    	}
	}
	return null;
}

