	// Fuciones comunes
/////////////////////////////////////////////////////////////////////////////////

	// Abreviatura de getElementById
	function gId(pId){ 	return document.getElementById(pId); }

	// Abreviatura de getElementByTagName
	function gName(pName){ 	return document.getElementByTagName(pName); }

	// Obtener la posición Absoluta de un elemento.
	function getAbsPos(element) {
		if (typeof element == "string")
		element = document.getElementById(element)
	
		if (!element) return { top:0,left:0 };
	
		var y = 0;
		var x = 0;
		while (element.offsetParent) {
			x += element.offsetLeft;
			y += element.offsetTop;
			element = element.offsetParent;
		}
		return {top:y,left:x};
	}

	// Añadir un evento a un elemento
	function addEvento(elemento,nomEvento,funcion,captura){
		if (elemento.attachEvent){
			elemento.attachEvent('on'+nomEvento,funcion);
			return true;
		} else if (elemento.addEventListener){
			elemento.addEventListener(nomEvento,funcion,captura);
			return true;
		} else{
			 return false;
		}
	}

	// Delegar eventos
	Delegate = {
		create: function (obj, func, params){
			var f = function(){
				return func.apply(obj, params);
			};
			return f;
		}
	}

	//////////////////////////////////////////////////////////////////////////////////////
	///////////////// Funcioens específicas para comunicaciones AJAX /////////////////////
	//////////////////////////////////////////////////////////////////////////////////////

	// Crear un Objeto XMLHttpRequest (XHR)
	function setXHR(){
		var xmlHttp=null;
		if (window.ActiveXObject) 
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		else 
			if (window.XMLHttpRequest) 
				xmlHttp = new XMLHttpRequest();
		return xmlHttp;
	}

	// Crear un Objeto XMLHttpRequest (XHR) (Otra forma de hacerlo)
	function setXHR2(){
		var obj=false;
		try {
			obj = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				/* Para IExplorer */
				obj = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				obj = false;
			}
		}
		if (!obj && typeof XMLHttpRequest!='undefined') {
			obj = new XMLHttpRequest();
		}
		return obj;
	}

/////////////////////////////////////////////////////////////////////////////////