/*!
	\file ajaxObject.js
	
	\brief Verifica versão disponível para a classe XMLHTTPRequest e cria o objeto.
	Uso: Incluir esta linha para referência ao método de criação do objeto XMLHTTPRequest no
	cabeçalho do arquivo html que irá usar requisições assincronas (AJAX).
	\code
	<!-- Referência ao código JavaScript permite criar um objeto XMLHTTPRequest -->
	<script src="../js/ajaxObject.js" type="text/javascript"></script>
	\endcode
     
     Author:  André Carvalho
     Data : 10/07/2007

     Alteração: André Carvalho
     Data : 10/03/2008
     
     Comentários: André Carvalho
     Data: 05/10/2007
*/
/*!
	\brief Cria instância do objeto XMLHttpRequest, da versão mais recente disponível no navegador do cliente.
	\param void.
	\return Object oXmlHttp, Instância de XMLHttpRequest.
	\public
*/
function createXMLHttp() {

    if (typeof XMLHttpRequest != "undefined") {
        return new XMLHttpRequest();
    }else if (window.ActiveXObject) {
      var aVersions = [ "MSXML2.XMLHttp.5.0",
        "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
        "MSXML2.XMLHttp","Microsoft.XMLHttp" ];

      for (var i = 0; i < aVersions.length; i++) {
        try {
            var oXmlHttp = new ActiveXObject(aVersions[i]);
            return oXmlHttp;
        } catch (oError) {
            //Do nothing
        }
      }
    }
    throw new Error("XMLHttp object could be created.");
}
/*!
	\brief Cria instância do objeto XMLHttpRequest, da versão mais antiga disponível para o IE
	pois algumas versões recentes apresentaram problemas.
	\param void.
	\return Object oXmlHttp, Instância de XMLHttpRequest.
	\public
*/
function createXMLHttp_old() {

    if (typeof XMLHttpRequest != "undefined") {
        return new XMLHttpRequest();
    }else if (window.ActiveXObject) {
        try {
            var oXmlHttp = new ActiveXObject("Microsoft.XMLHttp");
            return oXmlHttp;
        } catch (oError) {
            return false;
        }
    }
    throw new Error("XMLHttp object could be created.");
}
