function ConstructorXMLHttpRequest()
{
	if(window.XMLHttpRequest) /* Vemos si el objeto window(la base de la ventana del navegador) posee el método	XMLHttpRequest(Navegadores como Mozilla y Safari) */
	{
		return new XMLHttpRequest(); // Si lo tiene, crearemos el objeto con este método
	}
	else if(window.ActiveXObject) /* Sino tenía el método anterior, debería ser el Internet Exp. un navegador que emplea objetos ActiveX, lo mismo, miramos si tiene el método de creación */
	{
	
		/* Hay diferentes versiones del objeto, creamos un array, que contiene los diferentes tipos desde la
	versión mas reciente, hasta la mas antigua */
		var versionesObj = new Array(
			'Msxml2.XMLHTTP.6.0',
			'Msxml2.XMLHTTP.5.0',
			'Msxml2.XMLHTTP.4.0',
			'Msxml2.XMLHTTP.3.0',
			'Msxml2.XMLHTTP',
			'Microsoft.XMLHTTP');
		for (var i = 0; i < versionesObj.length; i++)
		{
			try
			{
			/*Intentamos devolver el objeto intentando crear las diferentes versiones se puede intentar crear uno que no existe y se producirá un error. */
				return new ActiveXObject(versionesObj[i]);
			}
			catch (errorControlado) //Capturamos el error, ya que podría crearse otro objeto.
			{}
		}
	}
	/* Si el navegador llego aquí es porque no posee manera alguna de crear el objeto, emitimos un mensaje de error. */
	throw new Error("No se pudo crear el objeto XMLHttpRequest");
}