var fontSize = new Class({
	options: {
		trigger: {
			small: {
				fontsize:'80%',
				alt:'小',
				src:'/images/tool_cmn_small_off.gif',
				here:'/images/tool_cmn_small_here.gif'
			},
			middle: {
				fontsize:'100%',
				alt:'中',
				src:'/images/tool_cmn_middle_off.gif',
				here:'/images/tool_cmn_middle_here.gif'
			},
			big: {
				fontsize:'120%',
				alt:'大',
				src:'/images/tool_cmn_big_off.gif',
				here:'/images/tool_cmn_big_here.gif'
			}
		},
		defaultFontSize: 'middle'
	},
	initialize: function(options){
		this.setOptions(options);
		this.button = [];
		$each(this.options.trigger, function(value,key){
			this.button.extend([new Element('img', {src: value.src, alt:value.alt}).addClass(key)]);
		}.bind(this));
		this.swapImage = new swapImage({auto:false});
		var div = new Element('div', {id:'FONT_SIZE'})
		var hl  = new Element('img',{ src:'/images/tool_cmn_fontsize.gif', alt:'文字サイズの変更' }).injectInside(new Element('h3'));
		var ul  = new Element('ul');
		this.button.each(function(btn){
			this.swapImage.setImage(btn);
			var a = new Element('a',{href:'#'});
			a.addEvent('click', (function(e){
				this.change(btn,e);
			}).bind(this) );
			if(btn.className == this.options.defaultFontSize)  this.change(btn);
			var li = new Element('li');
			btn.injectInside(a);
			a.injectInside(li)
			li.injectInside(ul);
		}.bind(this));
		hl.injectInside(div);
		ul.injectInside(div);
		div.injectAfter('RELATED_SITE');
		$('GM_FAQ').style.left = '273px';
		$('GM_INQUIRY').style.left = '319px';
		$('GM_SITEMAP').style.left = '469px';
	},
	change: function(el,e){
		el.src = eval('this.options.trigger.'+el.className+'.here');
		document.body.style.fontSize = eval('this.options.trigger.'+el.className+'.fontsize');
		Cookie.set('fs',el.className,{path:'/'});
		this.button.each(function(btn){
			if(btn.className != el.className){
				btn.src = eval('this.options.trigger.'+btn.className+'.src');
			}
		}.bind(this));
		if(!e) return;
		if(e.preventDefault){
			e.preventDefault();
			e.stopPropagation();
		}else{
			e.returnValue  = false;
			e.cancelBubble = true;
		}
	}
});
fontSize.implement(new Options);
