/**
 * jQuery Font Resizer
 * Thanks to http://www.queness.com/post/3956/quick-and-easy-jquery-font-resizer-tutorial
 */
$ = jQuery.noConflict();

function createCookie(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=/";
}

function readCookie(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;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

//A string replace function
function str_replace(haystack, needle, replacement) {
	if ( haystack !== undefined ) {
		var temp = haystack.split(needle);
		return temp.join(replacement);
	}
}


$(document).ready(function () {

	//min font size
	var min=9; 	

	//max font size
	var max=40;	
		
	//grab the default font size
	var resetP = $('p').css('fontSize'); 
	var resetPlh = $('p').css('line-height');
	var resetH2 = $('h2').css('fontSize');
	var resetH2lh = $('h2').css('line-height');
	
	//font resize these elements
	var elmP = $('.entry p');
	var elmH2 = $('.entry h2');
	
	//set the default font size and remove px from the value
	var sizeP = readCookie("sizep");
	var sizeH2 = readCookie("sizeh2");
	var sizePlh = readCookie("sizeplh");
	var sizeH2lh = readCookie("sizeh2lh");

	if ( sizeP < min || sizeH2 < min || sizeP > max || sizeH2 > max ) {
		eraseCookie("sizep");
		sizeP = null;
		eraseCookie("sizeh2");
		sizeH2 = null;
		eraseCookie("sizeplh");
		sizePlh = null;
		eraseCookie("sizeh2lh");
		sizeH2lh = null;
	}

	if ( sizeP == null ) 
		sizeP = str_replace(resetP, 'px', ''); 

	if ( sizeH2 == null ) 
		sizeH2 = str_replace(resetH2, 'px', '');

	if ( sizePlh == null ) 
		sizePlh = str_replace(resetPlh, 'px', '');
	
	if ( sizeH2lh == null ) 
		sizeH2lh = str_replace(resetH2lh, 'px', '');
	
	//Increase font size
	$('a.fontSizePlus').click(function() {
		
		//if the font size is lower or equal than the max value
		if (sizeP<=max) {
			
			//increase the size
			sizeP++;
			sizePlh++;
			
			//set the font size
			elmP.css({'fontSize' : sizeP + "px"});
			elmP.css({'line-height': sizePlh + "px" });
			createCookie("sizep", sizeP, 0);
			createCookie("sizeplh", sizePlh, 0);
		}
		
		if (sizeH2<=max) {
			
			//increase the size
			sizeH2++;
			sizeH2lh++;
			
			//set the font size
			elmH2.css({'fontSize' : sizeH2 + "px"});
			elmH2.css({'line-height' : sizeH2lh + "px"});
			createCookie("sizeh2", sizeH2, 0);
			createCookie("sizeh2lh", sizeH2lh, 0);
		}
				
		//cancel a click event
		return false;	
		
	});

	$('a.fontSizeMinus').click(function() {

		//if the font size is greater or equal than min value
		if (sizeP>=min) {
			
			//decrease the size
			sizeP--;
			sizePlh--;
			
			//set the font size
			elmP.css({'fontSize' : sizeP + "px"});
			elmP.css({'line-height' : sizePlh + "px"});
			createCookie("sizep", sizeP, 0);
			createCookie("sizeplh", sizePlh, 0);
			
		}

		if (sizeH2>=min) {
			
			//decrease the size
			sizeH2--;
			sizeH2lh--;
			
			//set the font size
			elmH2.css({'fontSize' : sizeH2 + "px"});
			elmH2.css({'line-height' : sizeH2lh + "px"});
			createCookie("sizeh2", sizeH2, 0);
			createCookie("sizeh2lh", sizeH2lh, 0);
		}
		

		
		//cancel a click event
		return false;	
		
	});
	
	//Reset the font size
	$('a.fontReset').click(function () {
		
		//set the default font size	
		 elm.css({'fontSize' : reset});		
	});
		
});

