/* Event Functions */



// Add an event to the obj given

// event_name refers to the event trigger, without the "on", like click or mouseover

// func_name refers to the function callback when event is triggered

function addEvent(obj,event_name,func_name){

	if (obj.attachEvent){

		obj.attachEvent("on"+event_name, func_name);

	}else if(obj.addEventListener){

		obj.addEventListener(event_name,func_name,true);

	}else{

		obj["on"+event_name] = func_name;

	}

}



// Removes an event from the object

function removeEvent(obj,event_name,func_name){

	if (obj.detachEvent){

		obj.detachEvent("on"+event_name,func_name);

	}else if(obj.removeEventListener){

		obj.removeEventListener(event_name,func_name,true);

	}else{

		obj["on"+event_name] = null;

	}

}



// Stop an event from bubbling up the event DOM

function stopEvent(evt){

	evt || window.event;

	if (evt.stopPropagation){

		evt.stopPropagation();

		evt.preventDefault();

	}else if(typeof evt.cancelBubble != "undefined"){

		evt.cancelBubble = true;

		evt.returnValue = false;

	}

	return false;

}



// Get the obj that starts the event

function getElement(evt){

	if (window.event){

		return window.event.srcElement;

	}else{

		return evt.currentTarget;

	}

}

// Get the obj that triggers off the event

function getTargetElement(evt){

	if (window.event){

		return window.event.srcElement;

	}else{

		return evt.target;

	}

}

// For IE only, stops the obj from being selected

function stopSelect(obj){

	if (typeof obj.onselectstart != 'undefined'){

		addEvent(obj,"selectstart",function(){ return false;});

	}

}







/*    Escape function   */

String.prototype.addslashes = function(){

	return this.replace(/(["\\\.\|\[\]\^\*\+\?\$\(\)])/g, '\\$1');

}

String.prototype.trim = function () {

    return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");

};

/* --- Escape --- */



/* Offset position from top of the screen */

function curTop(obj){

	toreturn = 0;

	while(obj){

		toreturn += obj.offsetTop;

		obj = obj.offsetParent;

	}

	return toreturn;

}

function curLeft(obj){

	toreturn = 0;

	while(obj){

		toreturn += obj.offsetLeft;

		obj = obj.offsetParent;

	}

	return toreturn;

}

/* ------ End of Offset function ------- */



/* Types Function */



// is a given input a number?

function isNumber(a) {

    return typeof a == 'number' && isFinite(a);

}



/* Object Functions */



function replaceHTML(obj,text){

	while(el = obj.childNodes[0]){

		obj.removeChild(el);

	};

	obj.appendChild(document.createTextNode(text));

}