/* --------------------------------------------------------------------------------------
 * common.js
 * version 1.20
-------------------------------------------------------------------------------------- */
EventObserve(window, 'load', fncSwapImage, false);

function EventObserve(elem, name, func, cap) {
	if(elem.addEventListener){
		elem.addEventListener(name, func, cap);
	}else if(elem.attachEvent){
		elem.attachEvent('on' + name, func);
	}
}


/* --------------------------------------------------------------------------------------
 * Swap Images
 *   fncSwapImage
-------------------------------------------------------------------------------------- */
function fncSwapImage(){
	var imgs = document.getElementsByTagName('img');

	for(var i=0; i<imgs.length; i++){
		if (comHasClass(imgs[i], 'swap')) {
			// FileName Split.
			var tempSrc = imgs[i].src;
			var paths = tempSrc.split('/');
			var fileNameFull = paths[paths.length - 1];
			var names = fileNameFull.split('.');
			var extension = names.pop();
			var fileName = names.join('.');
			if (fileName.match(/_on$/)) {
				continue;
			}
			fileName = fileName.replace(/_off$/, '');
			var onFileNameFull = fileName + '_on' + '.' + extension;

			// submit 'On' and 'Off' fileName split.
			imgs[i].offSrc = imgs[i].src;
			imgs[i].onSrc = imgs[i].src.replace(fileNameFull, onFileNameFull);

			// Events.
			imgs[i].onmouseover = function(){
				this.src = this.onSrc;
			}
			imgs[i].onmouseout = function(){
				this.src = this.offSrc;
			}
		}
	}
}

/* get className */
function comHasClass(id, className) {
	if (typeof id == 'string') {
		var elem = document.getElementById(id);
	} else {
		var elem = id;
	}
	if (!elem) return false;
	var elementClassName = elem.className;
	if (elementClassName.length == 0) return false;
	if (elementClassName == className ||
		elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
		return true;
	return false;
}
/* add className */
function comAddClass(id, addClassStr) {
	if (typeof id == 'string') {
		var elem = document.getElementById(id);
	} else {
		var elem = id;
	}
	if (!elem) return;
	if(elem.className == ''){
		elem.className = addClassStr;
	} else if (!comHasClass(elem, addClassStr)) {
		elem.className += ' ' + addClassStr;
	}
}
/* remove className */
function comRemoveClass(id, removeClassStr) {
	if (typeof id == 'string') {
		var elem = document.getElementById(id);
	} else {
		var elem = id;
	}
	if (!elem) return;
	if (!comHasClass(elem, removeClassStr)) return;
	var classes = elem.className.split(' ');
	var defaultClassName= '';
	for (var i=0; i < classes.length; i++){
		if (classes[i] != removeClassStr) {
			defaultClassName += classes[i] + ' ';
		}
	}
	elem.className = defaultClassName;
}
/* set cookie */
function comSetCookie(cookieName, cookieVal, expireDay) {
	if (expireDay >= 10000) {
		var expDay = 'Tue, 19 Jan 2038 00:00:00 UTC';
	} else {
		var expDay = new Date(new Date().getTime() + (expireDay*1000*60*60*24)).toGMTString();
	}
	document.cookie = cookieName + '=' + escape(cookieVal) + ';expires=' + expDay;
}
/* get cookie */
function comGetCookie(cookieName) {
	var isName = cookieName + "=";
	var isCookie = document.cookie + ";";
	startPos = isCookie.indexOf(isName);
	if (startPos != -1) {
		endPos = isCookie.indexOf(";", startPos);
		var isVal = unescape(isCookie.substring(startPos + isName.length, endPos));
	}
	if(isVal){
		return isVal;
	}
}
