function addEvent(obj,evType,fn){
	if(obj.addEventListener){
		obj.addEventListener(evType,fn,false);
	}
	else if(obj.attachEvent){
		obj.attachEvent("on"+evType,fn);
	}else{
		return false;
	}
}

function formatEvent(oEvent){
	if(window.event){
		oEvent = window.event;
		oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0;
		oEvent.stopPropagation = function(){
			this.cancelBubble = true;
		}
		oEvent.preventDefault = function(){
			this.returnValue = false;
		}
	}
	return oEvent;
}

function getSource(e){
	if(window.event){
		e = window.event;
	}
	var origem;
	if(typeof e.target != 'undefined'){
		origem = e.target;
	}
	else if(typeof e.srcElement != 'undefined'){
		origem = e.srcElement;
	}
	else{
		origem = true;
	}/*
	if (origem.nodeType == 3){
		origem = orige.parentNode;	
	}*/
	return origem;
}

function keyControls(oEvent){		
	/*
	No onkeypress esses casos tem o mesmo código no IE e Ópera
	[!]	33
	["]	34
	[#]	35
	[$]	36
	[%]	37
	[&]	38
	[']	39
	[(]	40
	[-]	45
	[.]	46
	[p]	112
	[q]	113
	[r]	114
	[s]	115
	[t]	116
	[u]	117
	[v]	118
	[w]	119
	[x]	120
	[y]	121
	[z]	122
	[{]	123
	*/
	if(oEvent.keyCode == 8 || /*backspace*/
		oEvent.keyCode == 9 || /*tab*/
		/*oEvent.keyCode == 13 ||enter*/
		oEvent.keyCode == 16 || /*shift*/
		oEvent.keyCode == 17 || /*ctrl*/
		oEvent.keyCode == 18 || /*alt*/
		oEvent.keyCode == 20 || /*caps lock*/
		oEvent.keyCode == 27 || /*esc*/
		oEvent.keyCode == 33 || /*page up*/
		oEvent.keyCode == 34 || /*page down*/
		oEvent.keyCode == 35 || /*end*/
		oEvent.keyCode == 36 || /*home*/
		oEvent.keyCode == 37 || /*left arrow*/
		oEvent.keyCode == 38 || /*up arrow*/
		oEvent.keyCode == 39 || /*right arrow*/
		oEvent.keyCode == 40 || /*down arrow*/
		oEvent.keyCode == 45 || /*insert*/
		oEvent.keyCode == 46 || /*delete*/
		oEvent.keyCode == 112 || /*F1*/
		oEvent.keyCode == 113 || /*F2*/
		oEvent.keyCode == 114 || /*F3*/
		oEvent.keyCode == 115 || /*F4*/
		oEvent.keyCode == 116 || /*F5*/
		oEvent.keyCode == 117 || /*F6*/
		oEvent.keyCode == 118 || /*F7*/
		oEvent.keyCode == 119 || /*F8*/
		oEvent.keyCode == 120 || /*F9*/
		oEvent.keyCode == 121 || /*F10*/
		oEvent.keyCode == 122 || /*F11*/
		oEvent.keyCode == 123 || /*F12*/
		oEvent.ctrlKey /*ctrl+?*/
		){
		return true;
	}
	else{
		return false;
	}
}

function clearWhiteSpace(obj){
	for(var i=0; i<obj.childNodes.length; i++){
		var currentNode = obj.childNodes[i];
		//alert(currentNode);
		if(currentNode.nodeType == 1){
			clearWhiteSpace(currentNode);
		}
		if (currentNode.nodeType == 3 && ((/^\s+$/.test(currentNode.nodeValue) )) ){
			obj.removeChild(obj.childNodes[i]);
			i--;
		}
	}
}