// Esta es para llamado de datos remotos via xmlHttpRequest

function datosServidor()
{};

datosServidor.prototype.iniciar = function() {
	try {
		// Mozilla / Safari
		this._xh = new XMLHttpRequest();
	} catch (e) {
		// Explorer
		var _ieModelos = new Array(
		'MSXML2.XMLHTTP.5.0',
		'MSXML2.XMLHTTP.4.0',
		'MSXML2.XMLHTTP.3.0',
		'MSXML2.XMLHTTP',
		'Microsoft.XMLHTTP'
		);
		var success = false;
		for (var i=0;i < _ieModelos.length && !success; i++) {
			try {
				this._xh = new ActiveXObject(_ieModelos[i]);
				success = true;
			} catch (e) {
				// Implementar manejo de excepciones
			}
		}
		if ( !success ) {
			// Implementar manejo de excepciones, mientras alerta.
			return false;
		}
		return true;
	}
}

datosServidor.prototype.ocupado = function() {
	estadoActual = this._xh.readyState;
	return (estadoActual && (estadoActual < 4));
}

datosServidor.prototype.procesa = function() {
	if (this._xh.readyState == 4 && this._xh.status == 200) {
		this.procesado = true;
	}
}

datosServidor.prototype.enviar = function(urlget,datos) {

	if (!this._xh) {
		this.iniciar();
	}
	if (!this.ocupado()) {
		this._xh.open("GET",urlget,false);
		this._xh.send(datos);

		if (this._xh.readyState == 4 && this._xh.status == 200) {
			return this._xh.responseText;

		}
		
	}
	return false;
}


// Este es un acceso rapido, le paso la url y el div a cambiar
function _gr(reqseccion,divcont)
{
	remotos = new datosServidor;
	nt = remotos.enviar(reqseccion,"");
	document.getElementById(divcont).innerHTML = nt;
}


var xmlHttp=null;

//Obter um objecto XMLHTTP
function GetXmlHttpObject()
{
	var _xmlHttp=null;
	try
	{
		// Internet Explorer
		_xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");		
	}
	catch (e)
	{
		// Internet Explorer (versões antigas)
		try
		{
			_xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e)
		{
			// Firefox, Opera 8.0+, Safari
			_xmlHttp=new XMLHttpRequest();
		}
	}
	return _xmlHttp;
}

function ExecutarXMLHttpForm(sURL, params, fnChamarDepois)
{
	xmlHttp=GetXmlHttpObject();
		
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	} 
	
	xmlHttp.onreadystatechange = function(){
        if (xmlHttp.readyState==4) //OK
        {   // if "OK"
			if (xmlHttp.status==200)
			{
				fnChamarDepois(xmlHttp); //Chama uma função definida no argumento de entrada
			}
        }
    };
    
    xmlHttp.open("POST", sURL, true); //true, continua o script, false para o script e aguarda a resposta
    
    //Para o post
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlHttp.send(params);
}
