function _$(id){
	if(document.getElementById){
		return document.getElementById(id);
	}
	else if(document.all){
		return document.all.id;
	}
}

function _$2(nome){
	if(document.getElementsByName){
		return document.getElementsByName(nome);
	}
	else if(document.all){
		return document.all.nome;
	}
}

function _$3(id){
	if(top.top.document.getElementById){
		return top.top.document.getElementById(id);
	}
	else if(top.top.document.all){
		return top.top.document.all.id;
	}	
}

function _$4(id){
	return _$(id).value;
}

function _$5(id){
	var id = _$(id);
	if(id){
		return id.options[id.selectedIndex].value;
	}
	else{
		return id;
	}
}

function _$6(id){
	return _$3(id).value;
}

function _$7(id){
	var id = _$(id);
	if(id){
		return id.options[id.selectedIndex];
	}
	else{
		return id;
	}
}


function createXMLHTTP(){
	if(window.ActiveXObject){
		var arrSignatures = ["MSXML2.XMLHTTP", "MSXML2.XMLHTTP.5.0", "Microsoft.XMLHTTP", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0"];
		for (var i=0; i < arrSignatures.length; i++) {
			var objRequest = null;
			try {
				objRequest = new ActiveXObject(arrSignatures[i]);
				return objRequest;
			} 
			catch (e){
			}
		}
	}
	else if(window.XMLHttpRequest){
		return new XMLHttpRequest(); 
	}
	throw new Error("Componente de Requisição XML não está instalado em seu sistema.");
}

function goAjax(url, metodo, modo, tagRetorno, tagMensagem, parametros){
	var objRetorno = null;
	var objRetornoStatus = null;
	if(tagMensagem)
		objRetornoStatus = tagMensagem;
	else
		objRetornoStatus = _$(tagMensagem);
	
	if(tagRetorno)
		objRetorno = tagRetorno;
	else
		objRetorno = _$(tagRetorno);

	if(objRetorno == 'undefined'){
		objRetorno = _$(objRetorno);
	}

	if(objRetorno != null){
		if(strStatusCarregando == ''){
			if(objRetornoStatus.innerHTML == ''){
				strStatusCarregando = '<span align="center" style="width: 220px;" class="TituloPrincipal"><img src="images/ajax-loader.gif">&nbsp;&nbsp;<strong>Aguarde, carregando dados...</strong></span>';
			}
			else{
				strStatusCarregando = objRetornoStatus.innerHTML;
			}
		}
	
		objRetornoStatus.innerHTML = strStatusCarregando;
		if(objRetornoStatus.style){
			objRetornoStatus.style.display = '';
		}

		var xmlhttp = createXMLHTTP();
		metodo = metodo.toUpperCase();
		if(metodo == "GET") {
			xmlhttp.open("GET", url, modo);
			parametros = ""
		}
		else {
			xmlhttp.open("POST", url, modo);
			xmlhttp.setRequestHeader("Method", "POST "+ url +" HTTP/1.1");
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1;");
			xmlhttp.setRequestHeader("Content-length", parametros.length);
			xmlhttp.setRequestHeader("Connection", "close");
		}
		xmlhttp.onreadystatechange = function(){
			mudancaStatus();
		}
		
		function mudancaStatus(){
			var strRetorno = '';
			if(xmlhttp.readyState == '4') {
				if(xmlhttp.status == '200') {
					strRetorno = xmlhttp.responseText;
					strRetorno = strRetorno.replace(/\+/g, " ");
					strRetorno = unescape(strRetorno);
					objRetorno.innerHTML = strRetorno;
					
					if(objRetorno.id != objRetornoStatus.id){
						if(objRetorno.style){
							if(objRetorno.style.display == 'none'){
								objRetorno.style.display = '';
							}
						}
						if(objRetornoStatus != null){
							if(objRetornoStatus.style){
								if(objRetornoStatus.style.display == ''){
									objRetornoStatus.style.display = 'none';
								}
							}
						}
					}
				}
				else{
					objRetorno.innerHTML = xmlhttp.responseText;
					if(objRetorno.style){
						if(objRetorno.style.display == 'none'){
							objRetorno.style.display = '';
						}
					}
				}
			}
		}
		
		xmlhttp.send(parametros);
	}
}

function enviaPage(url, metodo, modo, tagId, tagMensagem, parametros){
	if(metodo == 'GET'){
		goAjax(url +"?"+ parametros +"&rnd"+ Math.random(), metodo, modo, tagId, tagMensagem, parametros); 
	}
	else{
		goAjax(url +"?rnd"+ Math.random(), metodo, modo, tagId, tagMensagem, parametros); 
	}
}
var strStatusCarregando = '';


function coletaDadosForm(frmForm, strTipoCampo){
	if(strTipoCampo == null || strTipoCampo == undefined){
		strTipoCampo = '';
	}

	var strDados = '';
	for(var i = 0; i < frmForm.length; i++){
		var objElemento = frmForm.elements[i];
		var strValor = '';
		var strTipoCampoAtual = objElemento.type;
		
		if(strTipoCampo == strTipoCampoAtual || strTipoCampo == ''){
			switch(strTipoCampo){
				case "select-one":
					strValor = objElemento.options[objElemento.selectedIndex].value;
					break;
				case "checkbox":
					if(objElemento.checked){
						strValor = objElemento.value;
					}
					else{
						continue;
					}
					break;
				default: 
					strValor = objElemento.value;
					break;
			}
			if(strValor != undefined && strValor != ''){
				strValor = strValor.replace("'", "\'").replace('"', '\"');
			}
			if(objElemento.id != undefined && objElemento.id != ''){
				strDados += objElemento.id + '=' + escape(strValor) + '&';
			}
			else if(objElemento.name != undefined && objElemento.name != ''){
				strDados += objElemento.name + '=' + escape(strValor) + '&';
			}
		}
	}
	strDados = strDados.substr(0, (strDados.length-1));
	return strDados;
}
