var ats$=function(element){
	if (typeof element=='string')element=document.getElementById(element);
	return element
};

var ats={
	browser:{
		IE:     !!(window.attachEvent&&!window.opera),Opera:  !!window.opera,
		WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
		Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
		Safari: navigator.userAgent.indexOf('Safari') > -1
	},
	newClass:function(){return function(){this.initialize.apply(this, arguments);}
	},
	addEvent:function(element,name,observer,useCapture) {
		element=ats$(element);
		useCapture=useCapture||false;
		if(name=='keypress'&&(ats.browser.WebKit||element.attachEvent))name='keydown';
		if(element.addEventListener)element.addEventListener(name,observer,useCapture);
		else if(element.attachEvent)element.attachEvent('on'+name,observer);
	},
	removeEvent: function(element,name,observer,useCapture) {
		element = ats$(element);
		useCapture = useCapture||false;
		if(name=='keypress'&&(ats.browser.WebKit||element.attachEvent))name='keydown';
		if(element.removeEventListener)element.removeEventListener(name,observer,useCapture);
		else if(element.detachEvent){
			try {
				element.detachEvent('on'+name,observer);
			} catch (e) {}
		}
	},
	setCookie: function(key,data,term){
		if(!navigator.cookieEnabled)return;
		var day = new Date();
		day.setTime(day.getTime() + (term * 1000 * 60 * 60 * 24));
		s2day = day.toGMTString();
		document.cookie = key + "=" + escape(data) + ";expires=" + s2day+ ";path=/";

	},
	getCookie: function(key){
		if(typeof(key) == "undefined")return "";
			key+="=";
			var scookie = document.cookie + ";";
			var start = scookie.indexOf(key);
			if (start != -1){
				end = scookie.indexOf(";", start);
				var data = unescape(scookie.substring(start + key.length, end));
			}else{
				var data='';
			}
		return data;
	}
};

Function.prototype.bind = function(object) {
	var self=this;
	var args=[];
	if(arguments)for(var i=0,n=arguments.length;i<n;i++)args.push(arguments[i]);
	object=args.shift();
	return function(event) {
		return self.apply(object,[event||window.event].concat(args));
	}
};

var fontController=ats.newClass();
fontController.prototype={
	initialize: function (){
		var arg=arguments[0];
        this.setController(arg);
        this.body=document.getElementsByTagName('body')[0];
		this.cookieName=arg.cookieName;
		this.currentValue=parseInt(ats.getCookie(this.cookieName));
		if(!this.currentValue){
		    this.currentValue=81;
		}
		this.originalValue=81;
		this.rate=arg.rate;
		var name=['decrease','reset','increase'];
        var id=[arg.smallButtonId,arg.resetButtonID,arg.largeButtonId];
		for(i=0,n=id.length;i<n;i++){
			ats.addEvent(id[i], 'click', this[name[i]].bind(this), false);
		}
	},
	decrease: function (){
		if(this.rate<(this.currentValue-this.rate)){
			this.currentValue-=this.rate;
			this.setStyle();
		}
	},
	reset:function(){
		this.currentValue=this.originalValue;
		this.setStyle();
	},
	increase:function(){
		this.currentValue+=this.rate;
		this.setStyle();
	},
	setStyle:function(){
		this.body.style.fontSize=this.currentValue+'%';
		ats.setCookie(this.cookieName,this.currentValue,2);
	},
    setController:function(arg){
	    if(arg.useRender=='enable'){
	    	(function(){
				ats$(arguments[0]).innerHTML=arguments[1];
			})(
				arg.outputID,arg.source
			);
		}
    }
};

(	function(){

        var config={





		// ------------------------------------------------------------------------------------------------------------------------ここから設定です
            
            smallButtonId:'small',
            resetButtonID:'reset',
            largeButtonId:'large',
            rate:10,
            cookieName:'sktsite',

            useRender:'enable',
            outputID:'fontController',
            source:'<dl class="fsize clearfix"><dt class="fsize-title">文字サイズ</dt><dd class="small"><a href="javascript:;" id="small" class="small">小さく</a></dd><dd class="middle"><a href="javascript:;" id="reset" class="reset">標準</a></dd><dd class="large"><a href="javascript:;" id="large" class="large">大きく</a></dd></dl> '
        
        
		// ------------------------------------------------------------------------------------------------------------------------ここまで設定です





        };

        var head=document.getElementsByTagName('head')[0];
        var currentValue=parseInt(ats.getCookie('sktsite'));
        if(!currentValue){
		    currentValue=81;
	    };

        var hack = document.createElement('div');           
        hack.innerHTML='div<style type="text/css"><!--body { font-size: '+currentValue+'%; }--></style>';
        head.appendChild(hack.getElementsByTagName('style')[0]);

        ats.addEvent(window, 'load', function(){ new fontController(config)}, false);
	}
)();


