
(function($){$.fn.fontscale=function(selectors,adjustment,parameters){var settings=$.extend($.fn.fontscale.defaults,parameters);if(!$.isFunction($.cookie))settings.useCookie=false;if(!settings.cookieLoaded&&$.cookie(settings.cookieName)&&settings.useCookie){cookieSettings=$.fn.fontscale.readcookie(settings.cookieName);if(cookieSettings.unit==settings.unit&&!settings.cookieLoaded)$.fn.fontscale.scale(selectors,cookieSettings.delta,settings,true);}
this.each(function(){$(this).bind(settings.event,function(){$.fn.fontscale.scale(selectors,adjustment,settings,false);if($.isFunction(settings.onAfter))settings.onAfter(selectors,adjustment,settings);});});return this;};$.fn.fontscale.reset=function(object,settings){$(object).each(function(i){$(this).css('font-size','');if(settings.adjustLeading)$(this).css('line-height','');});if(settings.useCookie){$.fn.fontscale.savecookie("delete",settings);}}
$.fn.fontscale.scale=function(object,adj,settings,fromcookie){var delta=0;if(adj=="+"||adj=="up"){delta=settings.increment;}else if(adj=="-"||adj=="down"){delta=settings.increment*-1;}else if(adj=="reset"){return $.fn.fontscale.reset(object,settings);}else if(fromcookie){delta=parseFloat(adj);settings.cookieLoaded=true;}
if(settings.unit=="percent"&&!fromcookie){delta=1+(delta/100);}
$(object).each(function(i){var currentSize=parseInt($(this).css("font-size"));var currentLeading=parseInt($(this).css("line-height"));if(settings.unit=="percent"){$(this).css("font-size",Math.round(currentSize*delta));if(settings.adjustLeading)$(this).css("line-height",Math.round(currentLeading*delta));}else{$(this).css("font-size",currentSize+delta);if(settings.adjustLeading)$(this).css("line-height",currentLeading+delta);}});if(settings.useCookie&&!fromcookie)$.fn.fontscale.savecookie(delta,settings);return;};$.fn.fontscale.savecookie=function(delta,settings){if(delta=="delete"){$.cookie(settings.cookieName,null,settings.cookieParams);return true;}
if($.cookie(settings.cookieName)){properties=$.fn.fontscale.readcookie(settings.cookieName);}else{properties={"delta":0}}
if(settings.unit==properties.unit){if(settings.unit=="percent"){properties.delta=(delta)?properties.delta*delta:1;}else{properties.delta=parseInt(properties.delta)+delta;}
return $.cookie(settings.cookieName,"delta="+properties.delta+"&unit="+properties.unit,settings.cookieParams);}else{$.cookie(settings.cookieName,"delta="+delta+"&unit="+settings.unit,settings.cookieParams);return true;}};$.fn.fontscale.readcookie=function(the_cookie){val_string=$.cookie(the_cookie);var objResult={};$.each(val_string.split("&"),function(){var prm=this.split("=");objResult[prm[0]]=prm[1];});return objResult;};})(jQuery);$.fn.fontscale.defaults={useCookie:true,cookieName:'fontscale',cookieParams:{expires:30,path:"/"},increment:2,unit:"px",adjustLeading:false,event:"click",cookieLoaded:false};
