//===================//
// Common Functions //
//===================//


function commonFunctions() {
	this.addEvent = addEvent;
	this.getTarget = getTarget;
	this.stopBubbleing = stopBubbleing;
	this.stopDefaultAction = stopDefaultAction;
}
	
function addEvent(elem, eventType, func, useCapture) {
	// Cross browser event handling for IE5+, NS6+ and Mozilla/Gecko
	// Thanks to Scott Andrew
	if( elem.addEventListener ) {
		elem.addEventListener(eventType, func, useCapture);
		return true;
	}else if( elem.attachEvent ) {
		var r  = elem.attachEvent('on' + eventType, func);
		return r;
	}else{
		elem['on' + eventType]= func;
	}
}

function getTarget(e) {
	// Cross browser event target enumeration
	var target;
	if( window.event && window.event.srcElement ) {
		target = window.event.srcElement;
	}
	if ( e && e.target ) {
		target = e.target
	}
	if( !target ) {
		return;
	}else{
		return target;
	}
}

function stopBubbleing(e) {
	// Cross Browser cancel event bubbling.
	if( window.event && window.event.cancelBubble ) {
		window.event.cancelBubble = true;
	}
	if( e && e.stopPropagation ) {
		e.stopPropagation();
	}
}

function stopDefaultAction(e) {
	// Cross Browser prevent default
	if( window.event) {
		window.event.returnValue = false;
	}
	if( e && e.preventDefault ) {
		e.preventDefault();
	}
}