var nano$=function(element){
	if (typeof element=='string')element=document.getElementById(element);
	return element
};
var nano={
	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
	},
	element:function(){
		var n=document.createElement(arguments[0]);
		if(arguments.length>1)n.innerHTML =arguments[1];
		if(arguments.length>2&&arguments[2]!="")n.id=arguments[2];
		if(arguments.length>3&&arguments[3]!="")n.className=arguments[3];
		return n;
	},
	newClass:function(){return function(){this.initialize.apply(this, arguments);}
	},
	addEvent:function(element,name,observer,useCapture) {
		element=nano$(element);
		useCapture=useCapture||false;
		if(name=='keypress'&&(nano.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 = nano$(element);
		useCapture = useCapture||false;
		if(name=='keypress'&&(nano.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));
	}
};

(	function(load){
		for(i=0;n=arguments.length,i<n;i++){
			nano.addEvent(window, 'load', arguments[i], false);
		}
	}
)(
	function(){
		// ------------------------------------------------------------------------------------------------------------------------ここから設定です

			
		var font=(function(){
			return new fontController(arguments);
		})(
		// ------------------------------------------------------------------------------------------------------------------------ここから設定です
		// ここにコントローラにする要素のIDを入れます。
		// ここでHTML要素とJavaScriptを関連付けます。
		// １つのコントローラのセットは、右から
		// 小ボタン要素のID、リセットボタン要素のID、大ボタン要素のID、増量、クッキーの名前 の順に要素を指定してください。
		// クッキーの名前は重複しない名前ならなんでも使用できます。
		// →どれかコントローラを使用しない場合は''を指定してください。
		// 例：リセット中を使わない時
		// 'smallid','','largeid',10

			'small','reset','large',10,'wea261'
		// ------------------------------------------------------------------------------------------------------------------------ここまで設定です
		);
	}
);

var fontController=nano.newClass();
fontController.prototype={
	initialize: function (){
		var arg=arguments[0];
		this.body = document.getElementsByTagName('body')[0];
		this.cookieName=arg[4];
		this.currentValue=parseInt(nano.getCookie(this.cookieName));
		if(!this.currentValue){
			this.currentValue=81;
		}
		this.setStyle();
		this.originalValue=81;
		this.rate=arg[3];
		var name=new Array('decrease','reset','increase');
		for(i=arg.length-3;i>=0;i--){
			nano.addEvent(arg[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+'%';
		nano.setCookie(this.cookieName,this.currentValue,2);
	}
}

