// JavaScript Document

var TextSize = {
	
	resizable:Array,
	smaller:Object,
	larger:Object,
	
	minsize:Number = 0.8,
	maxsize:Number = 1.5,
	
	init : function()
	{
		TextSize.smaller 	= $('#textsize_smaller');
		TextSize.larger		= $('#textsize_larger');
		TextSize.resizable	= $('.resizable');
		// TextSize.resizable2	= $('#resizable2');
		
		TextSize.smaller.bind('click', TextSize.makeSmaller );
		TextSize.larger.bind('click', TextSize.makeLarger );
	},
	
	/*
	For Future Consideration:
	document.getElementById('foo').style.MozTransformOrigin= "0px 0px";
	document.getElementById('foo').style.MozTransform="scale(1.2,1.2)" ;
	
	**Needs testing and some cross-browser compatibility shims.  E.g.:
	  $('div.canvasContainer > canvas')
	    .css('-moz-transform', 'scale(1) translate(0px, 0px)')
	    .css('-webkit-transform', 'scale(1) translate(0px, 0px)')
	    .css('-o-transform', 'scale(1) translate(0px, 0px)')
	    .css('transform', 'scale(1) translate(0px, 0px)');
	
	*/
	
	makeSmaller:function()
	{
		var pattern = /font-size:.?([0-9]?\.?[0-9]*)em;?/i;
		// alert(TextSize.resizable.attr('style'));
		var result = pattern.exec(TextSize.resizable.attr('style'));
		// alert(result);
		var size = parseFloat(result[1]);
		size = TextSize.roundNumber(size,1);
		// alert(size);
		if( size > TextSize.minsize )
		{
			size -= .1;
			if(TextSize.resizable)
			{
				TextSize.resizable.each(function(index) 
				{
					$(this).css({'font-size':size+'em'});
				});
			}
			TextSize.setCookie(size);
		}
	},
	
	makeLarger:function()
	{
		var pattern = /font-size:.?([0-9]?\.?[0-9]*)em;?/i;
		// alert(TextSize.resizable.attr('style'));
		var result = pattern.exec(TextSize.resizable.attr('style'));
		// alert(result);
		var size = parseFloat(result[1]);
		size = TextSize.roundNumber(size,1);
		// alert(size);
		
		if( size < TextSize.maxsize )
		{
			size += .1;
			if(TextSize.resizable)
			{
				TextSize.resizable.each(function(index) 
				{
					$(this).css({'font-size':size+'em'});
				});
			}
			TextSize.setCookie(size);
		}
		
	},
	
	setCookie:function(size)
	{
		var expiredays = 1;
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+expiredays);
		document.cookie="textsize =" +escape(size)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
	},
	
	roundNumber:function(num, dec)
	{
		var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
		return result;
	}
}

$(document).ready(function() {
	TextSize.init();
});

