//FUNÇÃO PARA IDENTIFICAR SE O BROWSER NÃO É O INTERNET EXPLORER
function VerificarBrowserIE() {
	if (navigator.appName == "Microsoft Internet Explorer") {
		return true;
	}
	else {
		return false;
	}
}

//FUNÇÃO PARA VERIFICAR SE UM NÚMERO É MENOR QUE O VALOR DESEJADO
function MenorQue(p_sNumero, p_sNumeroComparacao) {
	var v_fNumero = ConverteFloat(p_sNumero);
	var v_fNumeroComparacao = ConverteFloat(p_sNumeroComparacao);

	if (isNaN(v_fNumero) || isNaN(v_fNumeroComparacao)) return;

	if (v_fNumero < v_fNumeroComparacao) return true;

	return false;
}

//FUNÇÃO PARA VERIFICAR SE UM NÚMERO É MENOR QUE O VALOR DESEJADO
function MaiorQue(p_sNumero, p_sNumeroComparacao) {
	var v_fNumero = ConverteFloat(p_sNumero);
	var v_fNumeroComparacao = ConverteFloat(p_sNumeroComparacao);

	if (isNaN(v_fNumero) || isNaN(v_fNumeroComparacao)) return;

	if (v_fNumero > v_fNumeroComparacao) return true;

	return false;
}

//FUNÇÃO PARA TRANSFORMAR O NÚMERO EM FLOAT
function ConverteFloat(p_sNumero) {
	return parseFloat(ReplaceString(ReplaceString(p_sNumero, ".", ""), ",", "."));
}

//FUNÇÃO PARA CONFIRMAR SE A STRING PASSADA É UM NÚMERO
function ConfirmaNumero(p_sString) {
	var v_iValorTestado = parseFloat(p_sString);

	if (isNaN(v_iValorTestado)) return false;

	return true;
}

//FUNÇÃO QUE OBTEM O CODIGO ASCII DA TECLA PRESSIONADA NO TECLADO
function ObterCodigoTecla(p_eEvento) {
	if (VerificarBrowserIE()) {
		return window.event.keyCode;
	}
	else {
		return p_eEvento.which;
	}
}

//FUNÇÃO PARA REDIRECIONAR PARA OUTRA PÁGINA
function Redirecinamento(p_sPaginaDestino) {
	self.document.location.href = p_sPaginaDestino;
}

//FUNÇÃO PARA ABRIR JANELA MODAL
function OpenModalWindow(p_sUrl, p_sNome, p_sHeight, p_sWidth, p_bCenterAlign, p_sScroll) {
	//VERIFICO ANTES SE O BROWSER É O INTERNET EXPLORER,
	//SE NÃO FOR, ENTÃO ABRE UMA JANELA NORMAL
	if (VerificarBrowserIE()) {
		return window.showModalDialog(p_sUrl, p_sNome, "dialogHeight:" + p_sHeight + "px;dialogWidth:" + p_sWidth + "px;help:off;resizable:on;status:off;scroll:" + p_sScroll + ";center:on");
	}
	else {
		OpenWindow(p_sUrl, p_sNome, p_sHeight, parseInt(p_sWidth) + 20, p_bCenterAlign, 'no');
	}
}

//FUNÇÃO PARA ABRIR JANELA MODAL
function OpenWindow(p_sUrl, p_sNome, p_sHeight, p_sWidth, p_bCenterAlign, p_sScroll) {
	var v_iTop = 0;
	var v_iLeft = 0;

	if (p_bCenterAlign) {
		v_iTop = CentroTelaVertical(p_sHeight);
		v_iLeft = CentroTelaHorizontal(p_sWidth);
	}

	window.open(p_sUrl, p_sNome, "status=no, fullscreen=no, toolbar=no, menubar=no, location=no, titlebar=no, resizable=yes, scrollbars=" + p_sScroll + ", width=" + p_sWidth + ", height=" + p_sHeight + ", top=" + v_iTop + ", left=" + v_iLeft);
}

//FUNÇÃO PARA ACHAR O CENTRO HORIZONTAL DA TELA
function CentroTelaHorizontal(p_sWidth) {
	var v_iLarguraDisponivel = screen.availWidth;
	v_iCentroLargura = parseInt((parseInt(v_iLarguraDisponivel) / 2) - (parseInt(p_sWidth) / 2));

	return v_iCentroLargura;
}

//FUNÇÃO PARA ACHAR O CENTRO VERTICAL DA TELA
function CentroTelaVertical(p_sHeight) {
	var v_iAlturaDisponivel = screen.availHeight;
	v_iCentroAltura = parseInt((parseInt(v_iAlturaDisponivel) / 2) - (parseInt(p_sHeight) / 2));

	return v_iCentroAltura;
}

//FUNÇÃO PARA FECHAR JANELA
function CloseWindow(p_sAlert) {
	if (p_sAlert != "") {
		alert(p_sAlert);
	}

	try {
		(opener=this).close();
		window.parent.parent.close();
	}
	catch(e) {
		(opener=this).close();
	}
}

//FUNÇÃO PARA CONFIRMAR
function Confirmar(p_sTexto) {
	if (confirm(p_sTexto)) {
		return true;
	}
	else {
		return false;
	}
}

//FUNÇÃO PARA SETAR O FOCO EM OBJETOS
function SetFocus(p_oObj) {
	if (ObjExist(p_oObj)) {
		p_oObj.focus();
	}
}

//FUNÇÃO PARA DISPARAR CLIQUES DE BOTÕES ATRAVÉS DA TECLA "ENTER"
function FireByEnter(p_oActionObject) {
	event.cancelBubble = true;

	if (event.keyCode == 13) {
		p_oActionObject.click();
		event.returnValue = false;
	}
}

//FUNÇÃO PARA VERIFICAR SE O OBJECT EXISTE
function ObjExist(p_oObj) {
	try {
		if ((p_oObj.name != "") || (p_oObj.id != "")) {
			return true;
		}
	}
	catch(e) {
		return false;
	}
}

//FUNÇÃO PARA EXIBIR E ESCONDER SPAN
function ShowHideSpan(p_sNomeSpan) {
	if (eval("document.all." + p_sNomeSpan + ".style.display") == "none") {
		eval("document.all." + p_sNomeSpan + ".style.display = 'block';");
	}
	else {
		eval("document.all." + p_sNomeSpan + ".style.display = 'none';");
	}
}

//FUNÇÃO QUE RETIRA TODOS OS ESPAÇOS DA STRING
function Trim(p_sString){ 
	return(p_sString.replace( /^\s+|\s+$/gi, "").replace( /\s{2,}/gi, " " ))
}

//FUNÇÃO QUE FAZ O REPLACE EM STRINGS. O REPLACE PADRÃO DO JAVASCRIPT SÓ FAZ REPLACE DE UM POR VEZ.
function ReplaceString(p_sString, p_sStringFind, p_sStringReplace) {
	var v_iTamanhoString = p_sString.length;

	for (var v_iCount = 0; v_iCount < v_iTamanhoString; v_iCount++) {
		if (p_sString.indexOf(p_sStringFind) > -1) {
			p_sString = p_sString.replace(p_sStringFind, p_sStringReplace);
		}
	}

	return p_sString;
}

//FUNÇÃO PARA CONTAR QUANTAS VEZES UMA DETERMINADA STRING SE REPETE DENTRO DE OUTRA
function ContarString(p_sString, p_sStringContar) {
	var v_iTotal = 0;

	if (p_sString.indexOf(p_sStringContar) > -1) {
		for (var v_iCount = 0; v_iCount < p_sString.length; v_iCount++) {
			if (p_sString.substring(v_iCount, v_iCount + p_sStringContar.length) == p_sStringContar) {
				v_iTotal++;
			}
		}
	}

	return v_iTotal;
}

//FUNÇÃO PARA REPETIR UMA STRING QUANTAS VEZES SE DESEJAR
function RepetirString(p_sString, p_iNumeroVezes) {
	var v_sStringResultado = "";

	for (var v_iCount = 0; v_iCount < p_iNumeroVezes; v_iCount++) {
		v_sStringResultado += p_sString;
	}

	return v_sStringResultado;
}

//FUNÇÃO PARA MARCAR UMA TD MUDANDO O BGCOLOR
function MarcarTD(p_sObjTD, p_sCor, p_bLimparTodos) {
	if (p_bLimparTodos == "true") {
		LimparTD();
	}

	var v_oObjTD;
	v_oObjTD = eval("document.all." + p_sObjTD);
	v_oObjTD.bgColor = p_sCor;
}

//FUNÇÃO PARA LIMPAR O BGCOLOR DAS TDs
function LimparTD() {
	for (i = 0; i < document.all.length; i++) {
		if (document.all[i].id.substring(0, 2) == "td") {
			document.all[i].bgColor = "";
		}
	}
}

//FUNÇÃO PARA TROCAR A COR DE UMA TD, TR OU QUALQUER OBJETO QUE TENHA O ATRIBUTO bgColor
function TrocarCorTD(p_oObjTD, p_sCor) {
	p_oObjTD.bgColor = p_sCor;
}

//FUNÇÃO PARA TROCAR A COR DE UMA TD, TR OU QUALQUER OBJETO QUE TENHA O ATRIBUTO bgColor
function AlternarCor(p_oObjeto, p_sCor) {
	try {
		if (p_oObjeto.TagCorSelecionada != "" && p_sCor == "") {
			p_sCor = p_oObjeto.TagCorSelecionada;
		}
	}
	catch(e){}

	p_oObjeto.bgColor = p_sCor;
}

//FUNÇÃO PARA SER USADA COM DATAGRID PARA SELEÇÃO DE LINHAS
function AplicarCorSelecionada(p_oObjeto, p_sCor) {
	//LIMPANDO OS OBJETOS QUE JÁ ESTÃO SELECIONADOS
	for (i = 0; i < document.all.length; i++) {
		if (document.all[i].TagCorSelecionada == p_sCor) {
			document.all[i].TagCorSelecionada = "";
			document.all[i].bgColor = "";
		}
	}

	p_oObjeto.TagCorSelecionada = p_sCor;
	p_oObjeto.bgColor = p_sCor;
}

//FUNÇÃO QUE VERIFICA SE HOUVE ALTERAÇÃO NO FORMULÁRIO
function VerificarAlteracao() {
	if (ObjExist(document.forms[0].hdnFormularioAlterado)) {
		if (document.forms[0].hdnFormularioAlterado.value == "1") {
			var v_sMensagem = "";

			v_sMensagem = "Alguns dados do formulário podem ter sido alterados e poderão ser perdidos.\n";
			v_sMensagem = v_sMensagem + "Deseja continuar?";
			
			//v_sMensagem = v_sMensagem + "     [OK] - Para continuar a operação sem salvar.\n";
			//v_sMensagem = v_sMensagem + "     [Cancelar] - Para voltar e revisar a operação.";

			if (!confirm(v_sMensagem)) {
				return false;
			}
		}
	}

	return true;
}

//FUNÇÃO PARA OBTER O VALOR DE UM OBJETO E GUARDÁ-LO PARA FUTURA COMPARAÇÃO PARA VERIFICAR 
//SE O VALOR DO CAMPO FOI ALTERADO.
//É NECESSÁRIO QUE OS CAMPOS ABAIXO EXISTAM NO FORMULÁRIO:
//	<input type="hidden" name="hdnValorComparacao">
//	<input type="hidden" id="hdnFormularioAlterado" name="hdnFormularioAlterado" runat="server">
function VerificaAlteracao(p_oObjeto, p_sEvento) {
	if (p_sEvento == "onfocus") {
			document.forms[0].hdnValorComparacao.value = p_oObjeto.value;
	}
	else if (p_sEvento == "onchange") {
			document.forms[0].hdnFormularioAlterado.value = 1;
	}
	else if (p_sEvento == "onclick") {
		if ((p_oObjeto.type == "checkbox") || (p_oObjeto.type == "radio")) {
			document.forms[0].hdnFormularioAlterado.value = 1;
		}
	}
	else if (p_sEvento == "onblur") {
		if (document.forms[0].hdnValorComparacao.value != p_oObjeto.value) {
			document.forms[0].hdnFormularioAlterado.value = 1;
		}
	}
}

//FUNÇÃO PARA RETORNAR SE O FORMULÁRIO FOI ALTERADO
function FormularioAlterado() {
	if (document.forms[0].hdnFormularioAlterado.value != "") {
		return true;
	}

	return false;
}

//FUNÇÃO QUE DESABILITA QUALQUER BOTÃO DO FORMULÁRIO PARA EVITAR CLICKS DESNECESSÁRIOS
function DesabilitarBotoesFormulario() {
	window.setTimeout("ExecutarDesabilitarBotoesFormulario()", 50);
}

//FUNÇÃO QUE DESABILITA QUALQUER BOTÃO DO FORMULÁRIO PARA EVITAR CLICKS DESNECESSÁRIOS
function ExecutarDesabilitarBotoesFormulario() {
	for (i = 0; i < document.all.length; i++) {
		if ((document.all[i].type == "button") || (document.all[i].type == "submit") || (document.all[i].type == "image")) {
			document.all[i].disabled = true;
		}
	}
}

//FUNÇÃO PARA SELECIONAR IMAGENS NO CLIENTE
function SelecionarImagem(p_oFile, p_oImagem, p_sImagemPadrao) {
	var v_sValorSelecionado = Trim(p_oFile.value).toUpperCase();

	if ((v_sValorSelecionado != "") && ((v_sValorSelecionado.indexOf(".JPG") != -1) || (v_sValorSelecionado.indexOf(".GIF") != -1) || (v_sValorSelecionado.indexOf(".JPEG") != -1) || (v_sValorSelecionado.indexOf(".PNG") != -1))) {
		eval("document.all." + p_oImagem + ".src = p_oFile.value");
	}
	else {
		eval("document.all." + p_oImagem + ".src = '" + p_sImagemPadrao + "'");
	}
}

///FUNÇÃO PARA LIMITAR CARACTERES
function LimitaCaracteres(p_oCampo, p_iMaxSize) { 
    var maxSize = p_iMaxSize; 
    var field = document.getElementById(p_oCampo); 
         
    if(field.value.length >= maxSize) { 
        field.value = field.value.substr(0,maxSize - 1);
        return false; 
    } 
} 
