//Funcion creadora del Ajax
var classAjax = function(url, param, tipo, val){
	this.url = url;
	this.param = param;
	this.tipo = tipo;
	this.val = val;
	
	this.iniciarAjax();
}

//Funcion que retorna el xmlHttp Object;
classAjax.prototype.getXmlHttp = function(){
	var xmlHttp = null;
	try{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}catch (e){
		// Internet Explorer
		try{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e){
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

/* recibe:

	el objeto XmlHttp
	la pagina (url);
	los parametros que se envian por Post(param);
	el tipo (tipo)
	el valor (val)

	tipo 0: Cuando se llama a una Funcion; valor: Funcion a llamar;
	tipo 1: Cuando se guarda en un ID; valor: Id en donde guarda el response;
	tipo 2: Cuando se guarda en un Value; valor: Value en donde guarda el response;
*/
classAjax.prototype.iniciarAjax = function(){
	//hace el llamado a la funcion xmlHttpObject() y crea un objeto xmlHttp
	var ajax = this.getXmlHttp();
	var tipo = this.tipo;
	var val = this.val;
	
    ajax.onreadystatechange = function(){
		if (ajax.readyState==4){
            //Sucede cuando la informacion se cargó
            if(ajax.status==200){
				var response= ajax.responseText;
	
				if(tipo==0)
					llamarFuncion(response, val);
				if(tipo==1)
					llamarId(response, val);
				if(tipo==2)
					llamarValue(response, val);					
            }
		}
	}
	
	// LLama a una pagina que dara el  responseText
	ajax.open("POST",this.url,true);
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajax.send('&'+this.param);
}

// Para llamar una funcion con el responseText como parametro
function llamarFuncion(resp, val){
	//Convierte el response en String
	var response= String(resp);
	//Codifica el Response
	var resp_cod=escape(response);
	//Crea la funcion que va a llamar con el response como parametro
	func = val + "('" + resp_cod + "');";	
	//llama a la funcion
	eval(func);
}

// Para meter el responseText en un Id
function llamarId(resp, val){
	document.getElementById(val).innerHTML = resp;
}

// Para meter el responseText en un Value
function llamarValue(resp, val){
	document.getElementById(val).value = resp;
}

function abrirEmerg(url,nombre,caract) {
	window.open(url,nombre,caract);
}
