jQuery.fn.jfontsizer = function(o) {

	// Cookie functions
	function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
	}

	function getCookie(c_name){
	if (document.cookie.length>0){
	  c_start=document.cookie.indexOf(c_name + "=");
	  if (c_start!=-1){
	    c_start=c_start + c_name.length+1;
	    c_end=document.cookie.indexOf(";",c_start);
	    if (c_end==-1) c_end=document.cookie.length;
	    return unescape(document.cookie.substring(c_start,c_end));
	    }
	  }
	return "";
	}

   function switchStylestyle(accessibility)
   {
		$('link[@rel*=style][title]').each(function(i){
			this.disabled = !(this.getAttribute('title') == accessibility);
		});
		setCookie('style', accessibility, 365);
   }

	// Defaults
	var o = jQuery.extend( {
		applyTo: 'body',
		changesmall: '1',
		changelarge: '1',
		expire: 30
	},o);

	var s = '';
	var m = '';
	var l = '';
	var a = '';

	// Current
	var c = 'fs_med';

	// Check cookie
	if (getCookie('fsizer') != "") {
		var c = getCookie('fsizer');
		switch (c) {
			case 'fs_sml':
				s = 'fsactive';
			$(o.applyTo).css('font-size','.'+(11-o.changesmall)+'em');
				break;
			case 'fs_med':
				m = 'fsactive';
			$(o.applyTo).css('font-size','1em');
				break;
			case 'fs_lrg':
				l = 'fsactive';
			case 'fs_access':
				a = 'fsactive';
				//$(o.applyTo).css('font-size','1.'+o.changelarge+'em');
				break;
		}
	}
	else {
		m = "fsactive";
	}

	// Create font-chooser box
	$(this).html('<div class="fsizer">' +
	'<a id="fs_sml" class="'+s+'" title="caratteri piccoli" rel="css/no-style.css">txt</a>'+
	'<a id="fs_med" class="'+m+'" title="dimensioni originali" rel="css/screen.css">A</a>' +
	'<a id="fs_lrg" class="'+l+'" title="caratteri grandi">A</a>' +
	'<a id="fs_access" class="'+a+'" title="alto contrasto" rel="css/screen.accessibility.css">A</a>' +
	'<br style="clear: both" /></div>');

	$('.fsizer a').click(function(){
		if(!$.browser.msie){
			var t = $(this).attr('id');
			setCookie('fsizer',t,o.expire);
			$('.fsizer a').removeClass('fsactive');
			$(this).addClass('fsactive');
			var f = $(o.applyTo).css('font-size');

			switch(t){
				case 'fs_sml':
					switchStylestyle('textonly');
					break;
				case 'fs_med':
				    $(o.applyTo).css('font-size','1em');
				    switchStylestyle('default');
					break;
				case 'fs_lrg':
					$(o.applyTo).css('font-size','1.'+o.changelarge+'em');
					switchStylestyle('default');
					break;
				case 'fs_access':
					switchStylestyle('accessibility');
					break;
			}
		}else{
			setCookie('fsizer',t,o.expire);
			$("link").attr("href",$(this).attr('rel'));
			return false;
		}
	});
};
