//	Controlador Ajax. Version 1.beta
//	By miSko

function obj_variable(nombre,valor) {
	this.nombre = nombre ;
	this.valor = valor ;
}
obj_variable.prototype.formato = function() {
	return this.nombre + '=' + this.valor ;
}


function obj_ajax(urlDestino) {
	
	this.urlDestino = urlDestino ;
	
	this.lista_Variables = Array() ;
	this.metodo = 'POST' ;
	
	this.textoObtenido = false ;
	
	this.ajax = this.getControl() ;
	
}
obj_ajax.prototype.getControl = function() {
	
	try
	{
		var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP") ;
	}
	catch (err)
	{
		try
		{
			var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP") ;
		}
		catch (err2)
		{
			var xmlhttp = false ;
		}
	}
	
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		var xmlhttp = new XMLHttpRequest() ;
	}
	
	return xmlhttp ;
	
	
}
obj_ajax.prototype.add = function(nombre,valor) {
	
	this.lista_Variables[this.lista_Variables.length] = new obj_variable(nombre,valor) ;
	
}
obj_ajax.prototype.formatoVariables = function() {
	
	var numVariables = this.lista_Variables.length ;
	if (numVariables != 0)
	{
		var  variables_formateadas = this.lista_Variables[0].formato() ;
		for (i = 1 ; i < numVariables ; i++)
			variables_formateadas += '?' + this.lista_Variables[i].formato() ;
		
		return variables_formateadas ;
	}
	else
	return null ;
	
}
obj_ajax.prototype.exec = function() {
	
	var obj = this.ajax ;
	this.ajax.onreadystatechange = function()
	{
		if(obj.readyState == 4 && obj.status == 200 || obj.readyState == 4 && obj.status == 0 )
		{
			var comandos = obj.responseText.replace(/\r\n/,'').split(';') ;
			for (i = 0 ; i < comandos.length ; i++)
				eval(comandos[i]) ;
			
		}
		else if (this.readyState == 4 && this.status == 404 )
		{
			alert('Error conectando con el servidor') ;
		}
		
	}
	
	this.ajax.open(this.metodo,this.urlDestino,true) ;
	this.ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	this.ajax.send(this.formatoVariables()) ;
	this.lista_Variables = new Array() ;
}
obj_ajax.prototype.execNoResponse = function() {
	
	var obj = this.ajax ;
	this.ajax.onreadystatechange = function()
	{
		if (this.readyState == 4 && this.status == 404 )
			alert('Error conectando con el servidor') ;
	}
	
	this.ajax.open(this.metodo,this.urlDestino,true) ;
	this.ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	this.ajax.send(this.formatoVariables()) ;
	this.lista_Variables = new Array() ;
}
obj_ajax.prototype.cogeHTML = function(div) {
	
	var obj = this.ajax ;
	this.ajax.onreadystatechange = function()
	{
		if(obj.readyState == 4 && obj.status == 200 || obj.readyState == 4 && obj.status == 0 )
			document.getElementById(div).innerHTML = obj.responseText ;
		else if (this.readyState == 4 && this.status == 404 )
			alert('Error conectando con el servidor') ;
		
	}
	
	this.ajax.open(this.metodo,this.urlDestino,true) ;
	this.ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	this.ajax.send(this.formatoVariables()) ;
	this.lista_Variables = new Array() ;
}