function changeFontSize(size) {
	var tags;
	tags = document.getElementsByTagName(getTagName(4));
	for(var i = 0; i < tags.length; i++) {
		if(tags[i].getAttribute(getAttributeName(4, 4)).indexOf("stylesheet") != -1
		   && isSize(tags[i].getAttribute(getAttributeName(4, 8)))) {
			tags[i].disabled = true;
			if(tags[i].getAttribute(getAttributeName(4, 8)) == size) {
				tags[i].disabled = false;
			}
		}
	}
}

function getTagName(i) {
	var tags =
		["html", "head", "meta", "title", "link", "style", "body",
		 "h1", "h2", "h3", "h4", "h5", "h6", "div", "p", "table", "tr", "td",
		 "ul", "ol", "li", "dl", "dt", "dd", "blockquote", "a", "img", "span"];
	return tags[i];
}

function getAttributeName(i, j) {
	var attributes =
		[["version"],
		 ["profile"],
		 ["name", "content", "http-equiv", "scheme"],
		 [""],
		 ["charset", "href", "hreflang", "media", "rel", "rev", "target", "type", "title"],
		 ["media", "title", "type"],
		 ["alink", "background", "bgcolor", "link", "onload", "onunload", "text", "vlink"]];
	return attributes[i][j];
}

function isSize(attribute) {
	if(attribute == "Small" || attribute == "Large" || attribute == "Default") {
		return true;
	}
	return false;
}


function start(){
	var size = "Default";
	var tags;
	tags = document.getElementsByTagName(getTagName(4));
	for(var i = 0; i < tags.length; i++) {
		if(tags[i].getAttribute(getAttributeName(4, 4)).indexOf("stylesheet") != -1
		   && tags[i].getAttribute(getAttributeName(4, 4)).indexOf("alternate") == -1
		   && isSize(tags[i].getAttribute(getAttributeName(4, 8)))) {
			size = tags[i].getAttribute(getAttributeName(4, 4));
		}
	}
	var search = "fontsize=";
	var cookielist = document.cookie.split(';');
	for(var i = 0; i < cookielist.length; i++) {
		while (cookielist[i].charAt(0) == ' ') {
			cookielist[i] = cookielist[i].substring(1, cookielist[i].length);
		}
		if(cookielist[i].indexOf(search) == 0)	{
			size = cookielist[i].substring(search.length, cookielist[i].length);
		}
	}
	changeFontSize(size);
}

window.onload = function() {
	start();
}

window.onunload = function() {
	var size = "Default";
	var tags;
	tags = document.getElementsByTagName(getTagName(4));
	for(var i = 0; i < tags.length; i++) {
		if(tags[i].getAttribute(getAttributeName(4, 4)).indexOf("stylesheet") != -1
		   && isSize(tags[i].getAttribute(getAttributeName(4, 8)))
		   && !tags[i].disabled) {
			size = tags[i].getAttribute(getAttributeName(4, 8));
		}
	}
	var days = 365;
	var date = new Date();
	date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
	var expires = "; expires="+date.toGMTString();
	document.cookie = "fontsize=" + size + expires + "; path=/";
}
start();

