﻿/* ====================================
  File        : textsize.js
  Date        : 2006.08.29
  Last Update : 2006.08.29
==================================== */
/* ------------------------------
 conf
------------------------------ */
// class
var LRGCLS = 'text-l';
var SMLCLS = 'text-s';
var DLTCLS = 'text-d';
// max_size
var MAXSIZE = '14px';
// min_size
var MINSIZE = '10px';

// cookie
var ckName = "scck";
var ckDays = 2;
var ckPath = "/";

// target_id
var TARGETID = 'lower_content';

// postfix
var ROPOSTFIX = '_on';

/* ------------------------------
 don't modify.
------------------------------ */
var defaultSize = '12px';
var nowSize = defaultSize;

textsizeCls = function(className){
	var preImgs = new Array();
	var elements = $$('.' + className);
	var len = elements.length;
	if((className == LRGCLS && nowSize == MAXSIZE) || (className == SMLCLS && nowSize == MINSIZE) || (className == DLTCLS && nowSize == defaultSize)){
		for(var i = 0 ;i < len; i++){
			var element = elements[i];
			element.src = element.src.replace(/(\.gif|\.jpg|\.png)/, ROPOSTFIX + "$1");
		}
	}else{
		for(var i = 0 ;i < len; i++){
			var element = elements[i];
			element.onmouseout = this.changeRolloverSrc(element, element.src);
			element.onmouseover = this.changeRolloverSrc(element, element.src.replace(/(\.gif|\.jpg|\.png)/, ROPOSTFIX + "$1"));
			element.onclick = this.sizeChange(className);
			element.style.cursor = "pointer";
			preImgs[preImgs.length] = new Image();
			preImgs[preImgs.length-1].src = element.src.replace(/(\.gif|\.jpg|\.png)/, ROPOSTFIX + "$1");
		}
	}
};

textsizeCls.prototype = {
	sizeChange : function(clsname){
		var pointer = this;
		return function(){
			if(clsname == LRGCLS){
				pointer.active(LRGCLS);
				pointer.nonActive(SMLCLS);
				pointer.nonActive(DLTCLS);
				nowSize = MAXSIZE;
				Element.setStyle(TARGETID, { "font-size": nowSize });
//				document.body.style.fontSize = nowSize;
			}else if(clsname == SMLCLS){
				pointer.active(SMLCLS);
				pointer.nonActive(LRGCLS);
				pointer.nonActive(DLTCLS);
				nowSize = MINSIZE;
				Element.setStyle(TARGETID, { "font-size": nowSize });
//				document.body.style.fontSize = nowSize;
			}else if(clsname == DLTCLS){
				pointer.active(DLTCLS);
				pointer.nonActive(LRGCLS);
				pointer.nonActive(SMLCLS);
				nowSize = defaultSize;
				Element.setStyle(TARGETID, { "font-size": nowSize });
//				document.body.style.fontSize = nowSize;
			}
			setCookie(ckName, nowSize, ckDays, ckPath);
			if ('function' === typeof window.heightLine) heightLine();
			return false;
		}
	},
	
	active : function(className){
		var elements = $$('.' + className);
		var len = elements.length;
		for(var i = 0 ;i < len; i++){
			var element = elements[i];
			element.onmouseout = null;
			element.onmouseover = null;
			element.onclick = function(){return false;};
			element.style.cursor = "default";
		}
	},

	nonActive : function(className){
		var elements = $$('.' + className);
		var len = elements.length;
		for(var i = 0 ;i < len; i++){
			var element = elements[i];
			element.src = element.src.replace(ROPOSTFIX, '');
			element.onmouseout = this.changeRolloverSrc(element, element.src);
			element.onmouseover = this.changeRolloverSrc(element, element.src.replace(/(\.gif|\.jpg|\.png)/, ROPOSTFIX + "$1"));
			element.onclick = this.sizeChange(className);
			element.style.cursor = "pointer";
		}
	},

	changeRolloverSrc : function(node, data){
		return function(){
			node.src = data;
		}
	}
};
/*
textsizeCls.prototype = {
	sizeChange : function(clsname){
		return function(){
			if(clsname == LRGCLS){
				if((nowSize+1.0) <= MAXSIZE){
					nowSize += 1.0;
				}else{
					nowSize = MAXSIZE;
				}
				document.body.style.fontSize = nowSize + "px";
			}else if(clsname == SMLCLS){
				if(MINSIZE <= (nowSize-1.0)){
					nowSize -= 1.0;
				}else{
					nowSize = MINSIZE;
				}
				document.body.style.fontSize = nowSize + "px";
			}else if(clsname == DLTCLS){
				nowSize = defaultSize;
				document.body.style.fontSize = nowSize + "px";
			}
			setCookie(ckName, nowSize, ckDays, ckPath);
			return false;
		}
	}
};
*/

function createTextSize(){
	defaultSize = Element.getStyle(TARGETID, "font-size");
//	defaultSize = Element.getStyle(document.body, "font-size");
	var ck = getCookie(ckName);
	if(ck == null){
		nowSize = defaultSize;
	}else{
		nowSize = ck;
	}
	Element.setStyle(TARGETID, { "font-size": nowSize });
//	document.body.style.fontSize = nowSize;
	new textsizeCls(LRGCLS);
	new textsizeCls(SMLCLS);
	new textsizeCls(DLTCLS);
}

Event.observe(window, 'load', function(){
	createTextSize();
}, false);

function changeTextSize(clsname){
	if(clsname == LRGCLS){
		nowSize = MAXSIZE;
		Element.setStyle(TARGETID, { "font-size": nowSize });
	}else if(clsname == SMLCLS){
		nowSize = MINSIZE;
		Element.setStyle(TARGETID, { "font-size": nowSize });
	}else if(clsname == DLTCLS){
		nowSize = defaultSize;
		Element.setStyle(TARGETID, { "font-size": nowSize });
	}
	setCookie(ckName, nowSize, ckDays, ckPath);
	if ('function' === typeof window.heightLine) heightLine();
	return false;
}

function getInitialTextSize(){
	var ck = getCookie(ckName);
	if(ck == null){
		return null;
	}else if(ck == MAXSIZE){
		return 3;
	}else if(ck == MINSIZE){
		return 1;
	}
	return 2;
}
