/**********************************************************************************/
/*		Wisdom 2008                                                               */	
/*		General Yui font-sizer			                                          */
/*		Requires: yahoo-dom.event.js,											  */
/*		cookie-min (optional)                                                     */
/**********************************************************************************/

YAHOO.namespace("water");

YAHOO.water.fontResizer = (function() {

		var Dom = YAHOO.util.Dom,
			Event = YAHOO.util.Event;

		var settings = {
			
			containerId		: "wrapper",
			moduleId		: "fontResizer",
			fontResizeClass	: "fontResize",
			activeClass		: "active",
			storeInCookie	: true,
			cookieName		: "baseFontSize"

		};
		
		/******************************************************************************/
		/*  PUBLIC INIT FUNCTION													  */
		/******************************************************************************/

		var init = function() {
			var fontResizeControls = Dom.getElementsByClassName(settings.fontResizeClass, "a", settings.containerId);
			Event.addListener(fontResizeControls, "click", function(e){Event.preventDefault(e)});
			Event.addListener(fontResizeControls,"click",resizeFont);

			if(settings.storeInCookie) {
				/* load toggle state if stored in cookie*/
				loadCookieState();
			}
		};
		
		/******************************************************************************/
		/*  LOAD COOKIE STATES									                      */
		/******************************************************************************/

		var loadCookieState = function() {
			var cookieVal = YAHOO.util.Cookie.get(settings.cookieName);
			Dom.setStyle(settings.containerId, "font-size", cookieVal);

			var controlNode = Dom.getElementsBy(function(el){return el.rel == cookieVal;}, "a", settings.containerId)[0];
			if(controlNode) {
				var fontResizeNodes = Dom.get(settings.moduleId).getElementsByTagName("li");
				Dom.removeClass(fontResizeNodes, settings.activeClass);
				Dom.addClass(controlNode.parentNode, settings.activeClass);
			}
		};

		/******************************************************************************/
		/*  RESIZE FUNCTION									                          */
		/******************************************************************************/

		var resizeFont = function(e) {	
			var targetPerc = this.rel;		
			if(targetPerc) {
				Dom.setStyle(settings.containerId, "font-size", targetPerc);	
				var fontResizeNodes = Dom.get(settings.moduleId).getElementsByTagName("li");;
				Dom.removeClass(fontResizeNodes, settings.activeClass);
				Dom.addClass(this.parentNode, settings.activeClass);

				// store in cookie
				if(settings.storeInCookie) {
					YAHOO.util.Cookie.set(settings.cookieName, targetPerc, { expires: new Date("January 12, 2025") , path: "/" });
				}
			}
		};

		/******************************************************************************/
		/*  RETURN OBJECT WITH ALL PUBLIC FUNCTIONS									  */
		/******************************************************************************/

		return {
			init:init
		};

})();

YAHOO.util.Event.onDOMReady(YAHOO.water.fontResizer.init, YAHOO.water.fontResizer, true);
