//ESTA LIBRERIA SIRVE PARA CREAR EL OBJETO XMLHttpRequest
//Y ES UTIL YA QUE DETECTA EL TIPO Y VERSION DE NAVEGADOR
//Bajado de http://www.eslomas.com/upload/files/javascript/XmlHttp.js

// Llamar a esta funcion asi:

// var xmlHttp = XmlHttp.create();
// luego usar el objeto xmlHttp con los mismos metodos y propiedades que el objeto XMLHttpRequest
// por ejemplo:
//	xmlHttp.open("POST", fillingUrl, true);

function XmlHttp(){}

XmlHttp.getAvailableActiveX = function(){
	if(XmlHttp.availableActiveX)
		return XmlHttp.availableActiveX;

	var ids = ["MSXML4.XmlHttp", 
			   "MSXML3.XmlHttp",
			   "MSXML2.XmlHttp", 
			   "MSXML.XmlHttp",
			   "Microsoft.XmlHttp"];

	for(var i=0; i<ids.length; i++){ 
		try{
			var obj = new ActiveXObject(ids[i]);
			XmlHttp.availableActiveX = ids[i];
			return ids[i];
		} 
		catch(ex){
			xmlhttp = false; 
		}
	}
	throw new Exception('XmlHttp objects not supported by the browser');
}

XmlHttp.create = function(){
	try{
		if(window.ActiveXObject){
			return new ActiveXObject(XmlHttp.getAvailableActiveX());
		}
		else if (window.XMLHttpRequest){
			var r = new XMLHttpRequest();
			// para alguna versiones de Mozilla que no disponen de readyState y onReadyState
			if(r.readyState == null){
				r.readyState = 1;
				r.addEventListener('load', function(){
					r.readyState = 4;
					if(typeof(r.onreadystatechange)=='function')
						r.onreadystatechange();
				}, false);
			}
			return r;
		}
	}
	catch (ex) {}
	throw new Error('XmlHttp objects not supported by the browser');
}