/**
 * Project: SGP 2007
 * File: ajax.js
 *
 * Funções utilizadas nos diversos componentes AJAX.
 *
 * @author Frederico Galvão <fredgalvao@gmail.com>
 * @Last-Modified: 02/09/2007 18:10
 * @Version: 1.1
 */





/**
 * Cria um objeto XmlHttpRequest.
 *
 * @return mixed
 */
function createXmlHttpRequestObject()
{
	var xmlObj;

	try {
		xmlObj = new XMLHttpRequest();
	}
	catch ( e )
	{
		var XmlHttpVer = [ 
							'MSXML2.XMLHttp.7.0', '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 < XmlHttpVer.length; i++ )
		{
			try { 
				xmlObj = new ActiveXObject ( XmlHttpVer[i] );
			}
			catch ( e ) {}
		}
	}

	if (xmlObj) {
		return xmlObj;
	}

	alert('Erro ao tentar criar um objeto XMLHttpRequest.'); 
}


/**
 * Cria um objeto Msxml2DOMDocument.
 *
 * @return mixed
 */
function createMsxml2DOMDocumentObject()
{
	var msxml2DOMObj;

	var msxml2DOMDocumentVer = [
								'Msxml2.DOMDocument.7.0', 'Msxml2.DOMDocument.6.0',
								'Msxml2.DOMDocument.5.0', 'Msxml2.DOMDocument.4.0', 
								'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument',
								'Microsoft.XmlDom'
								];

	for ( var i = 0; i < msxml2DOMDocumentVer.length; i++ )
	{
		try { 
			msxml2DOMObj = new ActiveXObject ( msxml2DOMDocumentVer[i] );
		}
		catch ( e ) {}
	}

	if (msxml2DOMObj) {
		return msxml2DOMObj;
	}

	alert("Erro ao tentar criar um objeto MSXML");
}


/**
 * Cria (caso não exista ) o layer de 
 * carregamento e o insere no documento.
 */
function createLayerLoad ( )
{
	if ( !document.getElementById( 'ajaxLoad' ) )
	{
		var layer = document.createElement ('div');
	
		layer.setAttribute( 'id', 'ajaxLoad' );
		layer.innerHTML = 'Carregando...';

		document.body.appendChild ( layer );
	}
}
