
/* ------------------------------------------
 * default.js 
 * ------------------------------------------
 *
 * Index
 *  - addEvent()
 *  - addLoadEvent()
 *  - getElementsByClass()
 *  - getElementSize()
 *  - toggle()
 *  - getCookie(), setCookie(), deleteCookie()
 *  - doublePostingBlocker()
 *  - tab
 *
 * Update
 *  - 2008.06.30 add tab
 *  - 2007.07.11 add getCookie(), setCookie(), deleteCookie()
 *  - 2007.07.11 change veilofDarkness() to doublePostingBlocker()
 *  - 2007.04.05 add getElementSize()
 *  - 2007.04.05 add getElementsByClass()
 *  - 2007.03.12 add toggle()
 *
/* ------------------------------------------ */


/* ------------------------------------------
 * addEvent()
 *  - addEvent(window,'load',func1,false);
 *  - addEvent(window,'load',func2,false);
 *  - addEvent(window,'load',func3,false);
/* ------------------------------------------ */

function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}


/* ------------------------------------------
 * addLoadEvent()
/* ------------------------------------------ */

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}


/* ------------------------------------------ *
 * getElementsByClass()
/* ------------------------------------------ */

getElementsByClass = function(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


/* ------------------------------------------ *
 * getElementSize()
 *  - require target objects
 *  - return objects of width/height
/* ------------------------------------------ */

getElementSize = function(elm) {
	var oSize = new Object();
	var elm2 = elm.cloneNode(true);

	if(-1 == navigator.userAgent.indexOf('MSIE 5')){
		elm2.style.padding = '0';
		elm2.style.border = '0';
	}
	elm2.style.display = 'block';
	elm2.style.position = 'absolute';

	elm.parentNode.appendChild(elm2);
	oSize.oh = elm2.clientHeight;
	oSize.ow = elm2.clientWidth;
	elm.parentNode.removeChild(elm2);
	
	return oSize;
}


/* ------------------------------------------
 * toggle()
/* ------------------------------------------ */

function toggle(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}


/* ------------------------------------------
 * getCookie(), setCookie(), deleteCookie()
/* ------------------------------------------ */

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() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}


/* ------------------------------------------
 * doublePostingBlocker()
/* ------------------------------------------ */

addLoadEvent(createOBJ);

function createOBJ() {
	if (!document.getElementsByTagName('form')){ return };
	
	// Add events
	x = document.getElementsByTagName('input');
	for(i=0;i<x.length;i++)
	{
		if(x[i].getAttribute('className') == 'cancel' || x[i].getAttribute('class') == 'cancel') continue;
		if(x[i].type == 'submit' || x[i].type == 'image')
		{
			x[i].onclick = function(){ doublePostingBlocker(this)};
			x[i].onkeypress = function(){ doublePostingBlocker(this)};
		}
	}
}

function doublePostingBlocker(obj) {
	window.setTimeout( function() { obj.disabled = true;}, 1)
	window.setTimeout( function() { obj.disabled = false;}, 5000)
}


/* ------------------------------------------
 * tab
/* ------------------------------------------ */

var tab = {
	init: function(){
		var tabs = this.setup.tabs;
		var pages = this.setup.pages;
 
		for(i=0; i<pages.length; i++) {
//			if(i !== 0) pages[i].style.display = 'none';
			pages[i].style.display = 'none';
			pages[i].style.position = 'absolute';
			tabs[i].onclick = function(){ tab.showpage(this); return false; };
		}
	},
 
	showpage: function(obj){
		var tabs = this.setup.tabs;
		var pages = this.setup.pages;
		var num;
 
		for(num=0; num<tabs.length; num++) {
			if(tabs[num] === obj) break;
		}
 
		for(var i=0; i<pages.length; i++) {
			if(i == num) {
				if( pages[num].offsetHeight != 0 ){
					pages[num].style.display = 'none';
					tabs[num].className = null;
				}
				else{
					pages[num].style.display = 'block';
					tabs[num].className = null;
				}
			}
			else{
				pages[i].style.display = 'none';
				tabs[i].className = null;
			}
		}
	}
}

