// Written by Ahmad Azarinurazie (aien@pixl8.co.uk).
// Created on 19 February 2009

if (typeof(AFontSize) == 'undefined') {
	AFontSize = {
		sCookieName : "font-size",
		aResizer: new Array(),
		
		init: function() {
			var oResizer;
			
			for (i=0; i<arguments.length; i++) {
				oResizer = document.getElementById(arguments[i]);
				var sCurrentFontSize = "";
				var sFontSize = "";
					
				if (oResizer) {
					AFontSize.aResizer.push(oResizer);
					
					oResizer.onclick = function() {
						var sCurrentFontSize = ACookie.read(AFontSize.sCookieName);
						var sFontSize = AFontSize.getValue(this.href, "#");
						
						if (sCurrentFontSize == sFontSize) this.className = "selected";
						
						AFontSize.resize(sFontSize);
						return false;
					}
				}
				
				AFontSize.initClasses();
			}
			
			// Init cookie if any
			var sCurrentFontSize = ACookie.read("font-size");
			if (sCurrentFontSize) AFontSize.resize(sCurrentFontSize);
		},
		
		getValue: function(str, var_name) {
			var value = null;
			var iPos;
			
			if (!str) return null;
			
			iPos = str.indexOf(var_name);
			
			if (iPos > -1) {
				iPos += var_name.length;
				
				value = str.substr(iPos);
				
				iPos = value.indexOf(";");
				if (iPos > -1) value = value.substr(0, iPos);
			}
			
			return value;
		},
		
		resize: function(size) {
			if (size) {
				document.getElementById("body").style.fontSize = size;
				ACookie.create(this.sCookieName, size, 365);
				
				AFontSize.initClasses();
			}
		},
		
		initClasses: function() {
			var i=0;
			var sCurrentFontSize;
			var sFontSize;
			
			for (i=0; i<AFontSize.aResizer.length; i++) {
				sCurrentFontSize = ACookie.read(AFontSize.sCookieName);
				sFontSize = AFontSize.getValue(AFontSize.aResizer[i].href, "#");
				
				if (sCurrentFontSize == sFontSize) AFontSize.aResizer[i].className = AObject.addClass(AFontSize.aResizer[i].className, "selected");
				else AFontSize.aResizer[i].className = AObject.removeClass(AFontSize.aResizer[i].className, "selected");
			}
		}
	}
}

if (typeof(AObject) == 'undefined') {
	AObject = {
		removeClass: function(sClassName, sName) {
			var aClassName = sClassName.split(" ");
			var i;
			var sNewClassName = "";
			
			for (i=0; i<aClassName.length; i++) 
				if (aClassName[i] != sName) sNewClassName += " " + aClassName[i];
				
			return sNewClassName;
		},
		
		addClass: function(sClassName, sName) {
			var aClassName = sClassName.split(" ");
			var i;
			var sNewClassName = "";
			var bExist = false;
			
			for (i=0; i<aClassName.length; i++) {
				if (aClassName[i] == sName) bExist = true;
			}
			
			if (!bExist) sNewClassName = sClassName += " " + sName;
			else sNewClassName = sClassName;
			
			return sNewClassName;
		}
	}
}

if (typeof(ACookie) == 'undefined') {
	ACookie = {
		create: function(name,value,days) {
			if (days) {
				var date = new Date();
				date.setTime(date.getTime()+(days*24*60*60*1000));
				var expires = "; expires="+date.toGMTString();
			}
			else var expires = "";
			document.cookie = name+"="+value+expires+"; path=/";
		},
		read: function(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;
		},
		
		erase: function(name) {
			createCookie(name,"",-1);
		}
	}
}

if (typeof(AEvent) == 'undefined') {
	AEvent = {
		add: function(obj, type, fn) {
			if (obj.addEventListener) obj.addEventListener( type, fn, false );
			else if (obj.attachEvent) {
				obj["e"+type+fn] = fn;
				obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
				obj.attachEvent( "on"+type, obj[type+fn] );
			}
		}
	}
}
