// JavaScript Document

// JavaScript Document

// JavaScript Document

/**
 * @author Administrador
 */
// ##################################################################################################33

function addEventLis(obj, evType, fn){
    if (obj.addEventListener)
		obj.addEventListener(evType, fn, true);
	if (obj.attachEvent)
		obj.attachEvent("on"+evType, fn);
}

function getById( id ){
	return document.getElementById( id );
}

function getByTag( obj, tag ){
	if( typeof(obj)=="string") obj = getById( obj );
	return obj.getElementsByTagName(tag);
}

function getChildsByTag( obj, tag ) {
	if( typeof(obj)=="string") obj = getElement( obj );
	var aux = new Array();
	for( var i=0; i < obj.childNodes.length; i++ ) 
		if( typeof( obj.childNodes[i].tagName) != "undefined" )
			if( obj.childNodes[i].tagName = tag )
				aux[ aux.length ] = obj.childNodes[i];
	return aux;
}

function newElement( tag, obj ){
	if( typeof(obj)=="string") obj = getElement( obj );
	var aux = document.createElement( tag );
	obj.appendChild( aux );
	return aux;
}

function getDocCoords() {
	var L = document.documentElement.scrollLeft;
	var T = document.documentElement.scrollTop;
	var W = document.documentElement.clientWidth;
	var H = document.documentElement.clientHeight;
	return { L:L, T:T, W:W, H:H };
}

function getTargetCoords( obj ){
	var x = obj.offsetLeft;
	var y = obj.offsetTop;
	var xb = 0;
	var yb = 0;
	var t = 1; 
	if( obj.clientTop && (t>0) ){
		yb = yb + obj.clientTop;
		xb = xb + obj.clientLeft;
		t = 2;
	}
	var pai = obj.offsetParent;
	while( pai ){
		if( pai.clientTop && (t>0) ){
			yb = yb + pai.clientTop;
			xb = xb + pai.clientLeft;
		}
		x = x + pai.offsetLeft;
		y = y + pai.offsetTop;
		pai = pai.offsetParent;
	}
	if( t == 2 ){
		xb = xb - 2;
		yb = xb - 2;
	}
	return { left: x + xb, top: y + yb, height: obj.offsetHeight, width: obj.offsetWidth }
}

function ev(e) {
	
	var self = this;
	if( typeof(e) != 'undefined' ) {
		this.e = e;
	} else {
		this.e = window.event;
	}
	if( !this.e.target ) {
		this.e.target = e.srcElement;
	}
	// this.e.target = (e.target)?(e.target):(e.srcElement);
	if( this.e.target.nodeType == 3 ) {
		this.e.target.parentNode;
	}
	
	this.element = this.e.target;
	
	this.getDocumentMouseCoords = function(){
		if( self.e.pageX || self.e.pageY){
			return {x:self.e.pageX, y:self.e.pageY};
		}
		return {
			x:self.e.clientX + document.body.scrollLeft - document.body.clientLeft,
			y:self.e.clientY + document.body.scrollTop  - document.body.clientTop
		};
	}
	
	this.getTargetCoords = function(){
		var left = 0;
		var top  = 0;
		var e = self.e.target;
	
		while (e.offsetParent){
			left += e.offsetLeft;
			top  += e.offsetTop;
			e     = e.offsetParent;
		}
	
		left += e.offsetLeft;
		top  += e.offsetTop;
	
		return {x:left, y:top};
	}
	
	this.getTargetMouseCoords = function(){
		var docPos    = self.getTargetCoords();
		var mousePos  = self.getDocumentMouseCoords();
		return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
	}
	
	this.bloquear = function(){
		if( self.e.preventDefault ) {
			self.e.preventDefault();
		} else {
			self.e.returnValue = false;
		}	
	}
	
	this.keyCode = function() {
		return (self.e.keyCode)?(self.e.keyCode):(self.e.which);
	}
}
