var fontSizeSwitcher = {
	str: '',
	config: {
		area: ['main'],
		length: 3,
		id: ['fSCSmall', 'fSCMedium', 'fSCLarge'],
		label: ['S', 'M', 'L'],
		size: ['85%', '100%', '122%'],
		cookieName: 'fontSizeSwitcher',
		cookieDate: 90
	},

	changeFontSize: function(size) {
		var config = this.config;
		var items  = document.getElementById('fontSizeChanger').childNodes;

		for(var i = 0, l = items.length; i < l ; i++) {
			if(size == i) {
				this.setClassName(items[i], 'current');
			}
			else {
				this.removeClassName(items[i]);
			}
		}

		var ss = document.styleSheets[0];

		for(var i = 0, l = config.area.length; i < l; i++) {
			if (document.fileModifiedDate) {
				ss.addRule('#' + config.area[i], 'font-size: ' + config.size[size]  + ';');
			}
			else {
				ss.insertRule('#' + config.area[i] + '{ font-size: ' + config.size[size]  + '; }', ss.cssRules.length);
			}
		}

		// set cookie
		this.setCookie(size);
	},

	setCookie: function(data) {
		var t = new Date();
		t.setTime(t.getTime() + (1000 * 60 * 60 * 24 * Number(this.config.cookieDate)));
		document.cookie = this.config.cookieName + '=' + encodeURIComponent(data) + '; path=/; expires=' + t.toGMTString();
	},

	getCookie: function(m) {
		return (m = ('; ' + document.cookie + ';').match('; ' + this.config.cookieName + '=(.*?);')) ? decodeURIComponent(m[1]) : null;
	},

	setClassName: function(elem, str) {
			if(document.fileModifiedDate) {
				elem.className = str;
			}
			else {
				elem.setAttribute('class', str);
			}
	},

	removeClassName: function(elem) {
			if(document.fileModifiedDate) {
				elem.removeAttribute('className');
			}
			else {
				elem.removeAttribute('class');
			}
	},

	start: function() {
		var target = this;
		var config = this.config;
		var size   = this.getCookie('s');

		for(var i = 0, l = config.length; i < l ; i++) {
			this.str += '<li id="' + config.id[i] + '" onclick="fontSizeSwitcher.changeFontSize(' + i + ')"><a href="javascript:void(null);">' + config.label[i] + '</a></li>';
		}

		document.write('<ul id="fontSizeChanger">' + this.str + '</ul>');

		if(size == null) {
			size = 1;
		}

		this.changeFontSize(size)
	}
}

fontSizeSwitcher.start();