/* smeFontSize */

var smeFontSize = function() {
	var level = null;
	var objBody = null;
	var initValue = null;
	isoYUILoader.onReady( function() {
		level = YAHOO.util.Cookie.get("smeFontSize", function (s) { return parseInt(s,10); }) || 0;
		YAHOO.log("read cookie: "+level,"info","smeFontSize");	
		isoYUILoader.onBodyAvailable( function() {
			objBody = new YAHOO.util.Element(document.body);
			var s = objBody.getStyle("font-size");
			var m = s.match("^([0-9]+(?:.[0-9]+)?)(.*)$");
			if (m != null)
			{
				initValue = {
					src:s,
					num:parseFloat(m[1],10),
					unit:m[2]
				};
				YAHOO.log("Initial value num: "+initValue.num+" / unit: "+initValue.unit,"info","smeFontSize");
			}
			else
				YAHOO.log("invalid font-size: "+s,"warn","smeFontSize");
			if (level != 0)
				update();
		});		
	});
	function update()
	{
		if (initValue == null)
			return;
		if (level != 0)
		{
			YAHOO.log("set cookie: "+level,"info","smeFontSize");
			YAHOO.util.Cookie.set("smeFontSize",level);
			var newValue = ""+(initValue.num*(1+0.2*level))+initValue.unit;
			YAHOO.log("set font-size: "+newValue,"info","smeFontSize");
			objBody.setStyle("font-size",newValue);
		}
		else
		{
			YAHOO.log("remove cookie","info","smeFontSize");
			YAHOO.util.Cookie.remove("smeFontSize");
			YAHOO.log("set font-size: "+initValue.src,"info","smeFontSize");
			objBody.setStyle("font-size",initValue.src);
		}
	}
	return {
		increase:function() {
			level++;
			update();
		},
		decrease:function() {
			level--;
			update();
		},
		restore:function() {
			var oldLevel = level;
			level=0;
			if (oldLevel != 0)
				update();
		}
	};
} ();
