var FontSizeWidget = Class.create({
	
	initialize: function(container) {
		this.container = container;
		
		this.container.setStyle({"display":"block"});
		var storedSize = this.readCookie('fontSize');
		
		if (("smallmediumlarge").indexOf(storedSize) > -1) storedSize = null;
		
		if(storedSize)
		{
			// if so, make sure the page knows
			this.setFontSize(storedSize);
		}
		else
		{
			// set default
			this.setFontSize(1);
		}
		
		// Add an event listener to each of the font size widget links
		$$('#font_adjust span').invoke('observe', 'click', this.handleFontSizeChange.bindAsEventListener(this));
	},
	
	/* The following functions to create, read, and delete cookies
	 is courtesy Peter-Paul Koch, http://www.quirksmode.org/js/cookies.html */
	createCookie: 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=/";
	},
	
	readCookie: 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;
	},
	
	eraseCookie: function(name) {
		this.createCookie(name,"",-1);
	},
	/*********************************/
	
	setFontSize: function(size, oldSize) {
		this.createCookie('fontSize', size, 365);
		var bod = $(document.body);
		if(size == 1) {
			bod.setStyle({ fontSize: 'small' });
			$('smaller').setStyle({backgroundPosition: "0px 0px"}).addClassName("disabled");
			$('bigger').setStyle({backgroundPosition: "-14px -14px"}).removeClassName("disabled");
		} else
		if(size == 2) {
			bod.setStyle({ fontSize: 'medium' });
			$('smaller').setStyle({backgroundPosition: "0 -14px"}).removeClassName("disabled");
			$('bigger').setStyle({backgroundPosition: "-14px -14px"}).removeClassName("disabled");
		} else
		if(size == 3) {
			bod.setStyle({ fontSize: 'x-large' });
			$('smaller').setStyle({backgroundPosition: "0 -14px"}).removeClassName("disabled");
			$('bigger').setStyle({backgroundPosition: "-14px 0"}).addClassName("disabled");
		} else {
			this.createCookie('fontSize', 2, 365);
			bod.setStyle({ fontSize: 'medium' });
			$('smaller').setStyle({backgroundPosition: "0 -14px"}).removeClassName("disabled");
			$('bigger').setStyle({backgroundPosition: "-14px -14px"}).removeClassName("disabled");
		}

},
	incrementor: {"smaller":-1, "bigger":1},
	
	handleFontSizeChange: function(e) {
		Event.stop(e);
		if (Event.element(e).className != "disabled") {
			var oldSize = this.readCookie('fontSize');
			var fontSize = parseInt(oldSize)+parseInt(this.incrementor[Event.element(e).id]);
			if (fontSize > 3 || fontSize < 1) fontSize = 2;
			this.setFontSize(fontSize, oldSize);
		}
	}
});

document.observe("dom:loaded", function()
{
	if($('beta-inner')) {
		new FontSizeWidget($('font_adjust'));
	}
});