﻿/*
 * 
 * jFontSizer Plugin
 * Written by fluidByte - http://www.fluidbyte.net
 * 
 * 
 */

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)+ ";path=/" +
	((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 "";
	}

    
	// Defaults
	var o = jQuery.extend( {
		applyTo: 'body',
		changesmall: '2',
		changelarge: '2',
		expire: 30
	},o);
	
	var s = '';
	var m = '';
	var l = '';
	
	// Current
	var c = 'fs_med';
	
	// Check cookie  
	if (getCookie('fsizer') != "") {
		var c = getCookie('fsizer');
		switch (c) {
			case 'fs_small':
				s = 'fsactive_s';
				//$(o.applyTo).css('font-size','85%');
				$(o.applyTo).css({
					'font-size':'85%',
					'line-height':'150%'
				});
				break;
			case 'fs_medium':
				m = 'fsactive_m';
			    //$(o.applyTo).css('font-size','100%');
				$(o.applyTo).css({
					'font-size':'100%',
					'line-height':'165%'
				});
				break;
			case 'fs_large':
				l = 'fsactive_l';
				//$(o.applyTo).css('font-size','116%');
				$(o.applyTo).css({
					'font-size':'116%',
					'line-height':'170%'
				});
				break;
		}
	} else {
		m = "fsactive_m";
		//$(o.applyTo).css('font-size','100%');
		$(o.applyTo).css({
			'font-size':'100%',
			'line-height':'165%'
		});
	}
	
	// Create font-chooser box
	var tmpHTML = "";
	tmpHTML += '<ul class="fsizer">';
	tmpHTML += '<li id="fs"><a id="fs_small" class="'+s+'">小</a></li>';
	tmpHTML += '<li id="fm"><a id="fs_medium" class="'+m+'">中</a></li>';
	tmpHTML += '<li id="fl"><a id="fs_large" class="'+l+'">大</a></li>';
	tmpHTML += '</ul>';
	$(this).html(tmpHTML);
	
	//フォントサイズ変更ボタンがクリックされたときのメソッド
	$('.fsizer a').click(function(){
		//クリックされたボタンのid属性を取得
		var t = $(this).attr('id');
		//クッキーに値をセット
		setCookie('fsizer',t,o.expire);
		
		//一度全てのボタンのスタイルを初期化
		$('.fsizer a#fs_small').removeClass('fsactive_s');
		$('.fsizer a#fs_medium').removeClass('fsactive_m');
		$('.fsizer a#fs_large').removeClass('fsactive_l');
		
		//指定された範囲に対してフォントサイズを適用＆選択されたボタンのスタイルのみを変更
		var f = $(o.applyTo).css('font-size');
		switch(t){
			case 'fs_small':
				$(this).addClass('fsactive_s');
				//$(o.applyTo).css('font-size','85%');
				$(o.applyTo).css({
					'font-size':'85%',
					'line-height':'150%'
				});
				break;
			case 'fs_medium':
				$(this).addClass('fsactive_m');
			    //$(o.applyTo).css('font-size','100%');
				$(o.applyTo).css({
					'font-size':'100%',
					'line-height':'165%'
				});
				break;
			case 'fs_large':
				$(this).addClass('fsactive_l');
				//$(o.applyTo).css('font-size','116%');
				$(o.applyTo).css({
					'font-size':'116%',
					'line-height':'170%'
				});
				break;
		}	
	});
};
