/* ====================================
  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 = '120%';
// min_size
var MINSIZE = '75%';

// cookie
var ckName  = "scck";
var ckName2 = "txck";
var ckDays = 2;
var ckPath = "/";
// target_id
var TARGETID = 'wrap';

// postfix
var ROPOSTFIX = '_on';

/* ------------------------------
 don't modify.
------------------------------ */
var defaultSize = '80%';
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 });
			}else if(clsname == SMLCLS){
				pointer.active(SMLCLS);
				pointer.nonActive(LRGCLS);
				pointer.nonActive(DLTCLS);
				nowSize = MINSIZE;
				Element.setStyle(TARGETID, { "font-size": nowSize });
			}else if(clsname == DLTCLS){
				pointer.active(DLTCLS);
				pointer.nonActive(LRGCLS);
				pointer.nonActive(SMLCLS);
				nowSize = defaultSize;
				Element.setStyle(TARGETID, { "font-size": nowSize });
			}
			_setCookie(ckName2, 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;
		}
	}
};

function createTextSize(){
	defaultSize = Element.getStyle(TARGETID, "font-size");
	var ck = _getCookie(ckName2);
	if(ck == null){
		nowSize = defaultSize;
	}else{
		nowSize = ck;
	}
	Element.setStyle(TARGETID, { "font-size": 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(ckName2, nowSize, ckDays, ckPath);
	if ('function' === typeof window.heightLine) heightLine();
	return false;
}

function getInitialTextSize(){
	var ck = _getCookie(ckName2);
	if(ck == null){
		return 2;
	}else if(ck == MAXSIZE){
		return 3;
	}else if(ck == MINSIZE){
		return 1;
	}
	return 2;
}

function _getCookie(name){
	var start = document.cookie.indexOf(name + "=");
	var len = start + name.length + 1;
	if((!start) && (name != document.cookie.substring(0, name.length))){
		return null;
	}
	if(start == -1){
		return null;
	}
	var end = document.cookie.indexOf(';', len);
	if(end == -1){
		end = document.cookie.length;
	}
	return unescape(document.cookie.substring(len, end));
}

function _setCookie(name, value, expires, path, domain, secure){
	var today = new Date();
	today.setTime(today.getTime());
	if(expires){
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date(today.getTime() + (expires));
	document.cookie = name + '=' + escape(value) +
		((expires)? ';expires=' + expires_date.toGMTString() : '') + 
		((path)? ';path=' + path : '') +
		((domain)? ';domain=' + domain : '') +
		((secure)? ';secure' : '');
}
// JavaScript Document