
/* Misc */
function stripEndWS(string) {
	if (!string) { return false; }
	while (string[0]==" ") {
		string = string.substring(1);
	}
	while (string[string.length]==" ") {
		string = string.substring(0, string.length-1);
	}
	return string;
}

function getPageName() {
	var loc = window.location.toString();
	while (loc.search("/")>-1) { loc = loc.substring(loc.search("/")+1); }
	return loc;
}

function isIE() {
	if (navigator.appName=="Microsoft Internet Explorer") {
		return true;
	} else {
		return false;
	}
}

/* Simple Favorite*/
function $ (elemID) {
	if (!elemID) { return document.body; }
	return document.getElementById(elemID);
}

/* Event Management */
function addEvent(elem, type, func) {
if (!elem||!type||!func||elem===null) { return false; }
	if (isIE()) {
		elem.attachEvent("on"+type, func);
	} else {
		elem.addEventListener(type, func, false);
	}
}

function removeEvent(elem, type, func) {
	if (!elem||!type||!func||elem===null) { return false; }
	if (isIE()) {
		elem.detachEvent("on"+type, func);
	} else {	
		elem.removeEventListener(type, func, false);
	}
}

/* Cookie Management */
function getCookie(c_name) {
	if (!c_name) { return false; }
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1) {
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) { c_end = document.cookie.length; }
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return false;
}

function setCookie(c_name,value,expiredays) {
	if (!c_name||!value) { return; }
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
	return true;
}

/* Class Management*/
function addClass(elem, newClass) {
	if (!elem||!newClass||elem===null) { return false; }
	newClass = stripEndWS(newClass);
	if (elem.className==""||!elem.className) {
		elem.className = newClass;
	} else {
		elem.className += " "+newClass;
	}
	return true;
}

function removeClass(elem, oldClass) {
	if (!elem||!oldClass||elem===null) { return false; }
	oldClass = stripEndWS(oldClass);
	if (elem.className==""||!elem.className) { return true; }
	if (elem.className.search(oldClass)>-1) {
		elem.className = elem.className.replace(oldClass, "");
		elem.className = stripEndWS(elem.className);
	}
	return true;
}

/* CSS Style Management*/
function getStyle(elem, style) {
	if (!elem||!style) { return false; }
	return elem.style[style];
}

function setStyle(elem, style, value) {
	if (!elem||!style||!value) { return false; }
	return elem.style[style] = value;
}

function resetStyle(elem, style) {
	if (!elem||!style) { return false; }
	setStyle(elem, style, "");
	return true;
}

