// +-----------------XMLHttpRequest---------------------+
// | Esta funcao cria o objeto XMLHttpRequest de acordo |
// | com o browser usado.                               |
// +----------------------------------------------------+
function getXmlHttpRequest() 
{
	try
  	{
		// Firefox, Opera 8.0+, Safari
		return new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
	    {
			return new ActiveXObject("Msxml2.XMLHTTP");
		}
  		catch (e)
		{
			try
			{
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Seu browser não suporta AJAX!");
				return false;
			}
		}
	}
}

// +----------------showErrorXmlHttpRequest-----------------+
// | Essa funcao mostra uma mensagem de erro e seta o pro-  |
// | cesso como inativo, caso o STATUS do XMLHTTPREQUEST    |
// | seja um erro.                                          |
// +--------------------------------------------------------+
function showErrorXmlHttpRequest()
{
	Loader.removeLoader(true);
	criarAviso("erro", "ok", "Erro: " + xmlhttp.status + " - " + xmlhttp.statusText, false, 350, 110);
	ProcessoAtivo = false;
}

// +------------------------controller----------------------+
// | Dispara uma função na camada de controle de acordo com |
// | a URL passada como parâmetro. Caso sXML não seja vazia |
// | prepara o XMLHTTPREQUEST para o seu envio. Usa a função|
// | FUNCAO passada como parâmetro como retorno alterando o |
// | metodo onreadystatechange do objeto HTTPRequest.       | 
// +--------------------------------------------------------+
function controller(_sMetodo, _sXML, _sUrl, _sMsg, _funcao, _sPosicao)
{
	if (!ProcessoAtivo && xmlhttp) 
	{		
		ProcessoAtivo = true;
		xmlhttp.open(_sMetodo, _sUrl, true);
		xmlhttp.onreadystatechange = _funcao;
		if (_sXML != '')
		{
			xmlhttp.setRequestHeader("Encoding", "ISO-8859-1");
			xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
			xmlhttp.setRequestHeader("Content-length", _sXML.length);
			xmlhttp.setRequestHeader("Pragma", "no-cache");
			xmlhttp.send(_sXML);
		}
		else
			xmlhttp.send(null);
	}	
}

// +-----------------------mostrar serventia----------------------+
function mostrarServentia()
{
	sServ = $("#serventia").val();
	if (sServ != "")
	{
		controller("GET", "", "serventia.asp?sServ=" + sServ, "", handleHttpRespServ,"center");
	}
}
function handleHttpRespServ()
{
	if (xmlhttp.readyState == 4) 
	{
		if (xmlhttp.status == 200) 
		{
			if (xmlhttp.responseText.indexOf('invalid') == -1) 
			{		        
				$("#dados_carto").html(xmlhttp.responseText);					
				ProcessoAtivo = false;
			}
		}
		else
		    showErrorXmlHttpRequest();
	}
}
