/**
 * FileName:zoomFont.js
 * @author uniteair.co.jp
 */

/**********************************************************
* fontSwitcher
*/

/** Global variable **/
var DEFAULT_SIZE = 1;
var MIN_SIZE = 0;
var MAX_SIZE;
var FONT_SIZE;
var EXPIRES = 0;


/** style **/
var FONT_STYLE = 'font-size:${px};';
var FONT_STYLE_IE = 'font-size:${fontsize}; font:${font};';


/** HTML **/
var FONT_SWITCH_HTML_DIV_OPEN = '<li><div id="switchfont">';
var FONT_SWITCH_HTML_L = '<a href="javascript:void(0);" onclick="uaFontSwitcher.setCookieValue(+1);return false;"><img src="/shared/img/${imglarge}" width="8" height="13" alt="フォントサイズを大きくする" name="large" class="rollover" /></a>';
var FONT_SWITCH_HTML_TEXT = '<img src="/shared/img/header-txt-01.gif" width="54" height="13" alt="文字サイズ" class="font_size" />';
var FONT_SWITCH_HTML_S = '<a href="javascript:void(0);" onclick="uaFontSwitcher.setCookieValue(-1);return false;"><img src="/shared/img/${imgsmall}" width="8" height="13" alt="フォントサイズを小さくする" name="small" class="rollover" /></a>';
var FONT_SWITCH_HTML_DIV_CLOSE = '</div></li>';


/** Font Size Data **/
this.SIZE = new Array(
/*
	{fontsize:"77%", 	font:"77%",		px:"10px"},
	{fontsize:"85%", 	font:"77%",		px:"7px"},
*/
	{fontsize:"x-small", 	font:"xx-small",	px:"10px"},
	{fontsize:"small",  	font:"x-small",		px:"12px"},
	{fontsize:"medium",  	font:"small",		px:"14px"}
);

var fontSizeData = this.SIZE;

var FontSwitcher = function(){
	MAX_SIZE = fontSizeData.length - 1;
}

FontSwitcher.prototype = {
	cookieName:"RDKKFontSize",
	
	initialize : function() {
		FONT_SIZE = this.getCookieValue();
		
		if(!FONT_SIZE){
			FONT_SIZE = DEFAULT_SIZE;
		}
		
		var res = this.setHeadStyle(FONT_SIZE);
	},
	
	getCookieValue:function(){
		return uaCookie.getCookie(this.cookieName);
	},

	setCookieValue:function(val, elem){
		var size = this.getSize(val);
		var expires;
		
		if(EXPIRES){
			var date = new Date();
			date.setTime(date.getTime()+(EXPIRES*24*60*60*1000));
			expires = date.toGMTString();
		}
		
		uaCookie.setCookie(this.cookieName, size, expires ,'/');
		
		this.disabled();
		var res = this.setBodyStyle(size, elem);
	},

	getSize : function(val) {
		if(val==0){
			FONT_SIZE = DEFAULT_SIZE;
		}else {
			FONT_SIZE = Number(FONT_SIZE) + Number(val);
			
			if(FONT_SIZE <= MIN_SIZE){
				FONT_SIZE = MIN_SIZE;
			}else if(MAX_SIZE <= FONT_SIZE){
				FONT_SIZE = MAX_SIZE;
			}
		}
		
		return FONT_SIZE;
	},
	
	setHeadStyle : function(elem){
		var style = '';
		
		style += FONT_STYLE.strReplace("${px}", fontSizeData[elem].px);
		/*
		if(uaEnv.isIE){
			style += FONT_STYLE_IE.strReplace("${fontsize}", fontSizeData[elem].fontsize);
			style = style.strReplace("${font}", fontSizeData[elem].font);
		}else {
			style += FONT_STYLE.strReplace("${px}", fontSizeData[elem].px);
		}
		*/
		
		document.writeln("<style>body{"+style+"}</style>");
	},

	setBodyStyle : function(i, elem){
		var style = '';
		
		style += FONT_STYLE.strReplace("${px}", fontSizeData[i].px);
		
		if(uaEnv.isIE){
			/*
			style += FONT_STYLE_IE.strReplace("${fontsize}", fontSizeData[i].fontsize);
			style = style.strReplace("${font}", fontSizeData[i].font);
			*/
			
			document.body.style.cssText = style;
		}else {
			//style += FONT_STYLE.strReplace("${px}", fontSizeData[i].px);
			document.body.setAttribute("style", style);
		}
		
		return true;
	},
	
	display : function(){
		var html = this.setHTML();
		document.write(html);
	},
	
	setHTML : function(){
		var html = '';
		
		if(FONT_SIZE==MIN_SIZE){
	        FONT_SWITCH_HTML_S = FONT_SWITCH_HTML_S.strReplace("${imgsmall}", "header-icn-02-disabled.gif");
	        FONT_SWITCH_HTML_L = FONT_SWITCH_HTML_L.strReplace("${imglarge}", "header-icn-01.gif");

		}else if(FONT_SIZE==MAX_SIZE){
	        FONT_SWITCH_HTML_S = FONT_SWITCH_HTML_S.strReplace("${imgsmall}", "header-icn-02.gif");
	        FONT_SWITCH_HTML_L = FONT_SWITCH_HTML_L.strReplace("${imglarge}", "header-icn-01-disabled.gif");

		}else {
	        FONT_SWITCH_HTML_S = FONT_SWITCH_HTML_S.strReplace("${imgsmall}", "header-icn-02.gif");
	        FONT_SWITCH_HTML_L = FONT_SWITCH_HTML_L.strReplace("${imglarge}", "header-icn-01.gif");
		}

		html = FONT_SWITCH_HTML_DIV_OPEN;
		html += FONT_SWITCH_HTML_L;
		html += FONT_SWITCH_HTML_TEXT;
		html += FONT_SWITCH_HTML_S;
		html += FONT_SWITCH_HTML_DIV_CLOSE;

		return html;
	},
	
	disabled : function(){
		var id = $GEI('switchfont');
		var img = id.$GET('img');
		var len = img.length;
		
		for(var i=0; i<len; i++){
			var elem = img[i];
			var name = elem.name;
			
			if(FONT_SIZE==MIN_SIZE){
				if(name=='small'){
					this.changeImg(elem);
				}
			}else if(FONT_SIZE==MAX_SIZE){
				if(name=='large'){
					this.changeImg(elem);
				}
			}else {
				var srcStr = elem.src;
				
				if(srcStr.indexOf("-disabled")>-1){
					srcStr = srcStr.strReplace("-disabled.gif", ".gif");
					elem.src = srcStr;
				}
				
				elem.style.cursor = 'pointer';
			}
		}
	},
	
	changeImg : function(elem){
		var srcStr = elem.src;
		
		if(srcStr.indexOf("-disabled")>-1){
			return srcStr;
		}

		if(srcStr.indexOf("-ovr")>-1){
			srcStr = srcStr.strReplace("-ovr", "");
		}
		
		srcStr = srcStr.strReplace(".gif", "-disabled.gif");
		elem.src = srcStr;
		elem.style.cursor = 'default';
	}
}

var uaFontSwitcher = new FontSwitcher();


/**
 * 
 */
this.JS_DIRECTRY = "/shared/js/"; //javascript files path
/*
 * 
 */
 
 
/** JS Import **/
function uaImport(){
	var len = arguments.length;
	for(var i=0; i<len; i++){
		document.writeln('<script language="JavaScript" type="text/javascript" src="'+this.JS_DIRECTRY+arguments[i]+'.js"></script>');
	}
}

uaImport("lib/default", "lib/UaEnv", "lib/UaPrototype", "lib/UaCookie")

