// JavaScript Document

// JavaScript Document

function fiEnviaForm(iValor){
	document.oFormulario.hdnCodigo.value = iValor;
	document.oFormulario.submit();
}

function fnAbrePopEventos(data){
	window.open('evento.asp?data='+data,'Evento','width=410,height=330,left=100,top=100,scrollbars=yes');
}

function fiEnviaForm2(iValor,iValor2){
	var msg = '';

	if (iValor2 == '' ){
		msg = msg + 'Preencha o campo [AVALIACAO].\n';
	}
	if (iValor == '' ){
		msg = msg + 'Preencha o campo [OPERADOR].\n';
	}

	if (msg == ''){
		document.oFormulario.hdnCodigo.value = iValor;
		document.oFormulario.hdnCodigo2.value = iValor2;
		document.oFormulario.submit();
	}else{
		alert(msg);	
		return false;
	}
}

function fiAbreJanelaEscutar(arquivo,avaliacao,data,operador,idbanco){
	var url = 'tocar_audio.asp?arquivo='+arquivo+'&avaliacao='+avaliacao+'&data='+data+'&operador='+operador+'&idbanco='+idbanco
	newwindow=window.open(url,'Tocar_Midia','height=350,width=500');
	if (window.focus) {newwindow.focus()}
	return false;

}

function fiAbreJanelaDuvida(ID){
	var url = 'duvida.asp?ID='+ID
	newwindow=window.open(url,'Duvida','height=250,width=300');
	if (window.focus) {newwindow.focus()}
	return false;

}

function fiAbreJanelaRelatorio(url){
	
	newwindow=window.open(url,'Relatorio','height=450,width=800');
	if (window.focus) {newwindow.focus()}
	return false;

}

// JavaScript Document

function fiHiddenValorRadio(hdn,valor){
	hdn.value = valor;
}

/*
Biblioteca que fará o carregamento de listbox
*/

function AjaxCarregaLista(urldestino,iValor,divDestino){
//		alert(iValor);
		var XmlFinal
		XmlFinal=GetXml()
		if (XmlFinal==null)
		{
		alert ("Seu navegador não suporta a aplicação.")
		return
		} 
		var url= urldestino
		url=url+"?"+iValor //2
		url=url+"&Num="+Math.random()
		
		XmlFinal.onreadystatechange = function(){
			if (XmlFinal.readyState==1 || XmlFinal.readyState=="Carregando")
			{ 
			document.getElementById(divDestino).innerHTML="<span class='texto_preto'><img src='img/ajax_load.gif'> Aguarde o processamento.</span>";
			} 
			if (XmlFinal.readyState==4 || XmlFinal.readyState=="complete")
			{ 
			document.getElementById(divDestino).innerHTML=XmlFinal.responseText 
			} 
		};
		XmlFinal.open("GET",url,true)
		XmlFinal.send(null)
	}
	
function GetXml()
	{ 
		var objXMLHttp=null
		if (window.XMLHttpRequest)
		{
		objXMLHttp=new XMLHttpRequest()
		
		}
		else if (window.ActiveXObject)
		{
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
		}
		return objXMLHttp
	}


//ENVIO DE FORMULÁRIO VIA AJAX
var XmlFinal = false;
function fiPassarParametros(url, sParametros, divDestino){
	XmlFinal = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         XmlFinal = new XMLHttpRequest();
         if (XmlFinal.overrideMimeType) {
            XmlFinal.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            XmlFinal = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               XmlFinal = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!XmlFinal) {
         alert('Não foi possível criar XMLHTTP');
         return false;
      }
	
	  XmlFinal.onreadystatechange = function(){
			if (XmlFinal.readyState==1 || XmlFinal.readyState=="Carregando")
			{ 
			document.getElementById(divDestino).innerHTML="<img src='../img/Ajax_load.gif'><span class='texto'>" + asAGUARDANDO + "</span>";
			} 
			if (XmlFinal.readyState==4 || XmlFinal.readyState=="complete")
			{ 
			document.getElementById(divDestino).innerHTML=XmlFinal.responseText 
			} 
		};
      XmlFinal.open('POST', url, true);
      XmlFinal.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      XmlFinal.setRequestHeader("Content-length", sParametros.length);
      XmlFinal.setRequestHeader("Connection", "close");
      XmlFinal.send(sParametros);
}


var pagStrErro='';
var pagStrBotao='';

/***********************************************************************
* Funo fnEvnRejeitaChar()
*
* Descrio: 	Rejeita caracteres especificados em lista,
*				separados por  (ASCII alt + 250)
* Chamada:		onKeyPress="javascript:return fnEvnRejeitaChar();"
************************************************************************/
function fnEvnRejeitaChar(peStrCharList)
{
	var locBitRetorno = true;
	var peCharEntrada = String.fromCharCode(event.keyCode);

	var locVetCharRejeitado = peStrCharList.split('');

	for (i=0; i<locVetCharRejeitado.length; i++)
	{
		if(peCharEntrada == locVetCharRejeitado[i])
		{
			locBitRetorno = false;
			break;
		}
	}

	if (locBitRetorno)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnEvnEntradaMoeda()
*
* Descrio: 	Controla a mscara para campos de valores do tipo moeda
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaMoeda();"
************************************************************************/
function fnEvnEntradaMoeda(peStrCampo, peStrMil, peStrDec, peMaxCampo)
{
	e = event;

	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;

	if (whichCode == 13) return true;  // Enter
	key = String.fromCharCode(whichCode);  // Get key value from key code
	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
	len = peStrCampo.value.length;
	for(i = 0; i < len; i++)
		if ((peStrCampo.value.charAt(i) != '0') && (peStrCampo.value.charAt(i) != peStrDec)) break;

	aux = '';
	for(; i < len; i++)
	if (strCheck.indexOf(peStrCampo.value.charAt(i))!=-1) aux += peStrCampo.value.charAt(i);
	aux += key;
	len = aux.length;

	if (len == 0) peStrCampo.value = '';
	if (len == 1) peStrCampo.value = '0'+ peStrDec + '0' + aux;
	if (len == 2) peStrCampo.value = '0'+ peStrDec + aux;
	
	if (len < peMaxCampo)
	{
		if (len > 2)
		{
			aux2 = '';
			for (j = 0, i = len - 3; i >= 0; i--)
			{
				if (j == 3)
				{
					aux2 += peStrMil;
					j = 0;
				}
				aux2 += aux.charAt(i);
				j++;
			}
			peStrCampo.value = '';
			len2 = aux2.length;
			for (i = len2 - 1; i >= 0; i--)
			peStrCampo.value += aux2.charAt(i);
			peStrCampo.value += peStrDec + aux.substr(len - 2, len);
		}
	}
	else
	{
		return false;
	}
	return false;
}

/***********************************************************************
* Funo fnEvnEntradaMoeda4()
*
* Descrio: 	Controla a mscara para campos de valores do tipo moeda
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaMoeda();"
************************************************************************/
function fnEvnEntradaMoeda4(peStrCampo, peStrMil, peStrDec, peMaxCampo)
{
	e = event;

	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;

	if (whichCode == 13) return true;  // Enter
	key = String.fromCharCode(whichCode);  // Get key value from key code
	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
	len = peStrCampo.value.length;
	for(i = 0; i < len; i++)
		if ((peStrCampo.value.charAt(i) != '0') && (peStrCampo.value.charAt(i) != peStrDec)) break;

	aux = '';
	for(; i < len; i++)
	if (strCheck.indexOf(peStrCampo.value.charAt(i))!=-1) aux += peStrCampo.value.charAt(i);
	aux += key;
	len = aux.length;

	if (len == 0) peStrCampo.value = '';
	if (len == 1) peStrCampo.value = '0'+ peStrDec + '000' + aux;
	if (len == 2) peStrCampo.value = '0'+ peStrDec + '00'+ aux;
	if (len == 3) peStrCampo.value = '0'+ peStrDec + '0'+ aux;
	if (len == 4) peStrCampo.value = '0'+ peStrDec + aux;
	
	if (len < peMaxCampo)
	{
		if (len > 4)
		{
			aux2 = '';
			for (j = 0, i = len - 5; i >= 0; i--)
			{
				if (j == 3)
				{
					aux2 += peStrMil;
					j = 0;
				}
				aux2 += aux.charAt(i);
				j++;
			}
			peStrCampo.value = '';
			len2 = aux2.length;
			for (i = len2 - 1; i >= 0; i--)
			peStrCampo.value += aux2.charAt(i);
			peStrCampo.value += peStrDec + aux.substr(len - 4, len);
		}
	}
	else
	{
		return false;
	}
	return false;
}

/***********************************************************************
* Funo fnEvnEntradaMoedaSemPonto()
*
* Descrio: 	Controla a mscara para campos de valores do tipo moeda
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaMoedaSemPonto();"
************************************************************************/
function fnEvnEntradaMoedaSemPonto(peStrCampo)
{
	var peCharEntrada		= String.fromCharCode(event.keyCode);

	var locStrExpression	= /[^0-9\.,]/i;
	var locRetorno			= peCharEntrada.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnEvnEntradaNome()
*
* Descrio: 	Controla a entrada de dados para campos do tipo "NOME"
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaMoeda();"
************************************************************************/
function fnEvnEntradaNome()

{
	var peCharEntrada = String.fromCharCode(event.keyCode);

	var locStrExpression	= /[^A-Za-z .]/i;
	var locRetorno			= peCharEntrada.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnEvnEntradaLetraNumero()
*
* Descrio: 	Controla a entrada de dados para campos do tipo "LETRA"
*				e "NMERO"
* Chamada:		onKeyPress="javascript:return fnEvnEntradaLetraNumero();"
************************************************************************/
function fnEvnEntradaLetraNumero()
{
	var peCharEntrada = String.fromCharCode(event.keyCode);

	var locStrExpression	= /[^A-Za-z0-9\.\_ .]/i;
	var locRetorno			= peCharEntrada.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnEvnEntradaLogin()
*
* Descrio: 	Controla a entrada de dados para campos do tipo login
* Chamada:		onKeyPress="javascript:return fnEvnEntradaLogin();"
************************************************************************/
function fnEvnEntradaLogin()
{
	var peCharEntrada = String.fromCharCode(event.keyCode);

	var locStrExpression	= /[^A-Za-z0-9\.\_.]/i;
	var locRetorno			= peCharEntrada.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnEvnEntradaChave()
*
* Descrio: 	Controla a entrada de dados para campos do tipo "CHAVE"
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaChave();"
************************************************************************/
function fnEvnEntradaChave()
{
	var peCharEntrada = String.fromCharCode(event.keyCode);

	var locStrExpression	= /[^A-Za-z0-9]/i;
	var locRetorno			= peCharEntrada.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnEvnEntradaEndereco()
*
* Descrio: 	Controla a entrada de dados para campos do tipo "ENDEREO"
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaEndereco();"
************************************************************************/
function fnEvnEntradaEndereco()
{
	var peCharEntrada = String.fromCharCode(event.keyCode);

	var locStrExpression	= /[^A-Za-z0-9?().\/\-, ]/i;
	var locRetorno			= peCharEntrada.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnEvnEntradaEmail()
*
* Descrio: 	Controla a entrada de dados para campos do tipo "EMAIL"
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaEmail();"
************************************************************************/
function fnEvnEntradaEmail()
{
	var peCharEntrada = String.fromCharCode(event.keyCode);

	var locStrExpression	= /[^A-Za-z0-9@().\/\-, ]/i;
	var locRetorno			= peCharEntrada.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnEvnEntradaNumeros()
*
* Descrio: 	Controla a entrada de dados para campos do tipo "NUMERO"
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaNumeros();"
************************************************************************/
function fnEvnEntradaNumeros()
{
	var peCharEntrada		= String.fromCharCode(event.keyCode);

	var locStrExpression	= /[^0-9]/i;
	var locRetorno			= peCharEntrada.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		event.keyCode = 0;
		return false;
	}
}

/***********************************************************************
* Funo fnStrVerificaPreenchimento()
*
* Descrio: 	Verificar os preenchimentos mnimo e mximo de um campo
************************************************************************/
function fnStrVerificaPreenchimento(peStrCampo, peStrDescricao, peIntMin, peIntMax, peStrMensagemOpcional)
{
	if (peStrCampo.value.length < peIntMin)
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += 'O prenchimento mínimo para o campo [' + peStrDescricao + ']  de ' + peIntMin + ' caracteres.\n';
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '.\n';
		}
		return false;
	}

	if (peStrCampo.value.length > peIntMax)
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += 'O prenchimento máximo para o campo [' + peStrDescricao + ']  de ' + peIntMax + ' caracteres.\n';
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
		return false;
	}
	return true;
}

/***********************************************************************
* Funo fnStrVerificaPreenchimento()
*
* Descrio: 	Verifica o contedo de campos do tipo "NOME"
************************************************************************/
function fnStrVerificaNome(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
	var peStr = peStrCampo.value;

	var locStrExpression	= /[^A-Za-z .$]/i;
	var locRetorno			= peStr.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-Caracter invlido [" + locRetorno + "] no campo [" + peStrDescricao + "]\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
		return false;
	}
}

/***********************************************************************
* Funo fnStrVerificaLetraNumero()
*
* Descrio: 	Verifica o contedo de campos do tipo "LETRA" e "NMERO"
************************************************************************/
function fnStrVerificaLetraNumero(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
	var peStr = peStrCampo.value;

	var locStrExpression	= /[^A-Za-z0-9 .$]/i;
	var locRetorno			= peStr.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-Caracter invlido [" + locRetorno + "] no campo [" + peStrDescricao + "]\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
		return false;
	}
}


/***********************************************************************
* Funo fnStrVerificaLogin()
*
* Descrio: 	Verifica o contedo de campos do tipo login
************************************************************************/
function fnStrVerificaLogin(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
	var peStr = peStrCampo.value;

	var locStrExpression	= /[^A-Za-z0-9\.\_.$]/i;
	var locRetorno			= peStr.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-Caracter invlido [" + locRetorno + "] no campo [" + peStrDescricao + "]\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
		return false;
	}
}

/***********************************************************************
* Funo fnStrVerificaChave()
*
* Descrio: 	Verifica o contedo de campos do tipo "CHAVE"
************************************************************************/
function fnStrVerificaChave(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
	var peStr = peStrCampo.value;

	var locStrExpression	= /[^A-Za-z0-9]/i;
	var locRetorno			= peStr.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-Caracter invlido [" + locRetorno + "] no campo [" + peStrDescricao + "]\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
		return false;
	}
}

/***********************************************************************
* Funo fnStrVerificaEndereco()
*
* Descrio: 	Verifica o contedo de campos do tipo "ENDERECO"
************************************************************************/
function fnStrVerificaEndereco(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
	var peStr = peStrCampo.value;
	var locStrExpression	= /[^A-Za-z0-9?().\/\-, \t\n\r\f\v$]/i;
	var locRetorno			= peStr.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-Caracter invlido [" + locRetorno + "] no campo [" + peStrDescricao + "]\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
		return false;
	}
}

/***********************************************************************
* Funo fnStrVerificaNumero()
*
* Descrio: 	Verifica o contedo de campos do tipo "NUMERO"
************************************************************************/
function fnStrVerificaNumero(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
	var peStr = peStrCampo.value;

	var locStrExpression	= /[^0-9$]/i;
	var locRetorno			= peStr.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-Caracter invlido [" + locRetorno + "] no campo [" + peStrDescricao + "]\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
		return false;
	}
}

/***********************************************************************
* Funo fnStrVerificaEmail()
*
* Descrio: 	Verifica o contedo de campos do tipo "EMAIL"
************************************************************************/
function fnStrVerificaEmail(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
	if (peStrCampo.value != '')
	{
		var peStrMail = peStrCampo.value;
		var locStrExpression	= /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;


		if (locStrExpression.test(peStrMail))
		{
			return true;
		}
		else
		{
			if (peStrMensagemOpcional == '')
			{
				pagStrErro += "-Endereo de email invlido!\n";
			}
			else
			{
				pagStrErro += peStrMensagemOpcional + '\n';
			}
			return false;
		}
	}
}

/***********************************************************************
* Funo fnStrVerificaData()
*
* Descrio: 	Verifica o contedo de campos do tipo "DATA"
************************************************************************/
function fnStrVerificaData(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
    var peStrData = peStrCampo.value;

    var dia = Number(peStrData.substring(0,2));
    var mes = Number(peStrData.substring(3,5));
    var ano = Number(peStrData.substring(6));
    var ultDiaMes = 0;

    if(peStrData == '')
    {
		return true;
    }

    if (ano < 1900)
    {
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-A data inserida no campo [" + peStrDescricao + "]  invlida!\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
        return false;
	}

    if (mes == 2)
    {
        if (ano % 4 == 0)
        {
            ultDiaMes = 29;
		}
        else
        {
            ultDiaMes = 28;
		}
    }
    else if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12)
	{
        ultDiaMes = 31;
	}
    else if (mes == 4 || mes == 6 || mes == 9 || mes == 11)
	{
        ultDiaMes = 30;
	}
    else
    {
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-A data inserida no campo [" + peStrDescricao + "]  invlida!\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
        return false;
    }

    if (dia < 1 || dia > ultDiaMes)
    {
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-A data inserida no campo [" + peStrDescricao + "]  invlida!\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
        return false;
    }
	return true;
}

/***********************************************************************
* Funo fnStrVerificaMoeda()
*
* Descrio: 	Verifica o contedo de campos do tipo "MOEDA"
************************************************************************/
function fnStrVerificaMoeda(peStrCampo, peStrDescricao, peStrMensagemOpcional)
{
	var peStr = peStrCampo.value;

	var locStrExpression	= /[^(\d{1,3})(\.\d{3})*?(,\d{2})$]/i;

	var locRetorno			= peStr.match(locStrExpression);

	if (locRetorno == null)
	{
		return true;
	}
	else
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-Caracter invlido [" + locRetorno + "] no campo [" + peStrDescricao + "].\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional+".\n";
		}
		return false;
	}
}

/***********************************************************************
* Funo fnStrVerificaMascara()
*
* Descrio: 	Verifica o contedo dos campos com respeito  mascara especificada.
************************************************************************/
function fnStrVerificaMascara(peStrCampo, peStrDescricao, peStrMascara, peStrMensagemOpcional)
{
	var locMascChar;
	var locCampoChar;
	var locNumeros='0123456789';
	var locLetras='abcdefghijklmnopqrstuvxzABCDEFGHIJKLMNOPQRSTUVXZ ';
	var locValorCampo = peStrCampo.value;

	if(locValorCampo.length == 0)
	{
		return true;
	}

	if (locValorCampo.length != peStrMascara.length)
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-O campo [" + peStrDescricao + "] no est devidamente preenchido.\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional;
		}
		return false;
	}

	for (locIntCount=0; locIntCount < peStrMascara.length; locIntCount++)
	{
		locMascChar = peStrMascara.substring(locIntCount, locIntCount + 1);
		locCampoChar = locValorCampo.substring(locIntCount, locIntCount + 1);

		switch (locMascChar)
		{
			case "#":
			{
				if (locNumeros.indexOf(locCampoChar) == -1)
				{
					if (peStrMensagemOpcional == '')
					{
						pagStrErro += "-O preenchimento do campo '" + peStrDescricao + "'  invlido! [" + locCampoChar + "]\n";
					}
					else
					{
						pagStrErro += peStrMensagemOpcional;
					}
					return false;
				}
				break;
			}
			case "A":
			{
				if (locLetras.indexOf(locCampoChar) == -1)
				{
					if (peStrMensagemOpcional == '')
					{
						pagStrErro += "-O preenchimento do campo '" + peStrDescricao + "'  invlido! [" + locCampoChar + "]\n";
					}
					else
					{
						pagStrErro += peStrMensagemOpcional;
					}
					return false;
				}
				break;
			}
			default:
			{
				if (locCampoChar != locMascChar)
				{
					if (peStrMensagemOpcional == '')
					{
						pagStrErro += "-O preenchimento do campo '" + peStrDescricao + "'  invlido! [" + locCampoChar + "]\n";
					}
					else
					{
						pagStrErro += peStrMensagemOpcional;
					}
					return false;
				}
			}
		}
	}
}

/***********************************************************************
* Funo fnStrMascValor()
*
* Descrio: 	Aplica mscara  um determinado valor.
************************************************************************/
function fnStrMascValor(peStrValor, peStrMask)
{
	var psStrRetorno	='';
	var locStrCharMask  ='';
	var locStrCharValor ='';

	var j=0;

	for (i=0; i<peStrMask.length; i++)
	{
		locStrCharMask  = peStrMask.substring(j,j+1);
		locStrCharValor = peStrValor.substring(i,i+1);

		if((locStrCharMask != '#') && (locStrCharMask != 'A'))
		{
			psStrRetorno += locStrCharMask;
			j++;
		}
		j++;
		psStrRetorno += locStrCharValor;
	}

	return psStrRetorno;
}

/***********************************************************************
* Funo fnMascDinam()
*
* Descrio: 	Cria dinmicamente uma mscara especifica
************************************************************************/
function fnMascDinam(peStrCampo, peStrMask)
{
	var locObj		 = peStrCampo;

	var locStr		 = locObj.value;

	var locCharPos   = locStr.length;
	var locCharInput = String.fromCharCode(event.keyCode);

	var locCharMask  = peStrMask.substring(locCharPos, locCharPos + 1);
	var locCharProx	 = peStrMask.substring(locCharPos + 1, locCharPos + 2);
	var locStrNumeros= '0123456789';
	var locStrLetras = 'abcdefghijklmnopqrstuvxzABCDEFGHIJKLMNOPQRSTUVXZ';

	// A - Alfanumrico (Letras, espao e nmeros)
	// # - Nmeros apenas.

	if (locStr.length >= peStrMask.length)
	{
		locObj.value = locStr.substring(0,peStrMask.length);
		return false;
	}

	switch (locCharMask)
	{
		case "#":
		{
			if (locStrNumeros.indexOf(locCharInput) == -1)
			{
				return false;
			}
			break;
		}
		case "A":
		{
			if (locStrLetras.indexOf(locCharInput) == -1)
			{
				return false;
			}
			break;
		}
		default:
		{
			switch (locCharProx)
			{
				case "#":
				{
					if (locStrNumeros.indexOf(locCharInput) == -1)
					{
						return false;
					}
					break;
				}
				case "A":
				{
					if (locStrLetras.indexOf(locCharInput) == -1)
					{
						return false;
					}
					break;
				}
			}
		}
		locObj.value += locCharMask;
	}
}

/***********************************************************************
* Funo fnStrVerificaLista()
*
* Descrio: 	Verifica itens numa lista
************************************************************************/
function fnStrVerificaLista(peObjForm, peStrListaTiposObjeto, peStrMensagemOpcional)
{
	var locStrObj='';
	var locStrChar='';
	var locIntChecks=0;
	var ii=0;

	//Cria array baseado em lista de tipos de objeto especificada
	for (i=0; i < peStrListaTiposObjeto.length; i++)
	{
		locStrChar = peStrListaTiposObjeto.substring(i,i+1);
		if(locStrChar == ';')
		{
			eval('var locStrObj' + ii + '="' + locStrObj + '"');
			locStrObj = '';
			ii++;
		}
		else
		{
			locStrObj += locStrChar;
		}
	}

	//Para cada um dos tipos de objeto, corre array de elementos do formulrio,
	//Verificando quais esto com "checked=true".
	for (j=0; j<ii; j++)
	{
		for (i=0; i< peObjForm.elements.length; i++)
		{
			if (peObjForm.elements[i].type == eval('locStrObj' + j))
			{
				if (peObjForm.elements[i].checked) locIntChecks++;
			}
		}
	}

	//Se o nmero de itens checados na lista for inferior ao mnimo, adiciona erro.
	if (locIntChecks < 1)
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += '-  necessrio que pelo menos um item da lista seja selecionado para esta operao.\n';
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + '\n';
		}
		return false;
	}
	return true;
}

/***********************************************************************
* Funo fnStrVerificaChar()
*
* Descrio: 	Verifica se o campo possui um dos caracteres rejeitados
*				separados por () Alt + 250
************************************************************************/
function fnStrVerificaChar(peObjForm, peStrCharList, peStrCampo, peStrMensagemOpcional)
{
	var locVetCharRejeitado = peStrCharList.split('');
	var locStrValor = peObjForm.value;

	for (i=0; i<locStrValor.length; i++)
	{
		for (j=0; j<locVetCharRejeitado.length; j++)
		{
			if(locStrValor.substring(i,i+1) == locVetCharRejeitado[j])
			{
				if (peStrMensagemOpcional == '')
				{
					pagStrErro += '- O caracter [' + locStrValor.substring(i,i+1) + ']  invlido para o campo [' + peStrCampo + '].\n';
				}
				else
				{
					pagStrErro += peStrMensagemOpcional + '\n';
				}
				return false;
			}
		}
	}
	return true;
}

/***********************************************************************
* Funo fnObjMarcaSomenteUmCheckBox()
*
* Descrio: 	Marca somente o checkbox passado e desmarca todos os outros
*				da pgina
************************************************************************/
function fnObjMarcaSomenteUmCheckBox(peObjLista)
{
	for (i=0; i < peObjLista.form.elements.length; i++)
	{
		if (peObjLista.form.elements[i].type == 'checkbox')
	    {
	    	if (peObjLista.checked)
	    	{
	    		if (peObjLista.form.elements[i].name != peObjLista.name)
	    		{
					peObjLista.form.elements[i].checked = false;
				}
			}
		}
	}
}

/***********************************************************************
* Funo fnIntComparaDatas()
*
* Descrio: 	Verifica a relao entre duas datas.
*				Data1 > Data2 retorna 1
*				Data1 = Data2 retorna 0
*				Data1 < Data2 retorna -1
************************************************************************/
function fnIntComparaDatas(peStrData1,peStrData2)
{
    var data1=peStrData1.substring(6)+peStrData1.substring(3,5)+peStrData1.substring(0,2);
    var data2=peStrData2.substring(6)+peStrData2.substring(3,5)+peStrData2.substring(0,2);

    if (Number(data1)>Number(data2))
	{
		return 1;
	}
	if (Number(data1)==Number(data2))
	{
		return 0;
    }
    if (Number(data1)<Number(data2))
	{
		return -1;
	}
}

/***********************************************************************
* Funo fnArredonda()
*
* Descrio: 	Arredonda Valores
************************************************************************/
function fnArredonda(paramValue,decimal){
	var str, str2, strDec, xx = new String();
	var x, i, a;
	var xDec, xValue;

	str = paramValue + "";
	x = str.indexOf(".");

	if(x > 0){
		str = paramValue + "00000";
	}

	strDec = "";

	strDec = str.substr(x+1, decimal+1);

	xValue = parseFloat(str);

	a = "";
	if(x > -1){
		xx = str.substr(x+1, decimal+1);

		strDec = str.substr(x+1, decimal+1);

		if(xx.length > decimal){

			a = parseInt(xx.substr(decimal,1));

			if(a >= 5){

				if(xValue < 0){
					xValue -= ((1/Math.pow(10,decimal))-(a/Math.pow(10,decimal+1)));
				}else{
					xValue += parseFloat((1/Math.pow(10,decimal))-(a/Math.pow(10,decimal+1)));
				}
			}
		}
		strDec = xValue;
		for(i = 0; i < decimal; i++){
			strDec += "0";
		}

		str2 = str.substring(0,x) + "." + strDec.substring(0,decimal);
		str2 = strDec.substring(0,x+decimal+1);

		return str2;
	}else{
		strDec = str + ".";
		for(i = 0; i < decimal; i++){
			strDec += "0";
		}

		return strDec;
	}

}

/***********************************************************************
* Funo fnFormataValorBR()
*
* Descrio: 	Formata o numero no padro brasileiro
************************************************************************/
function fnFormataValorBR(Valor,numDecs)
{
	var cRetu;
	var nPos;
	var inte2;
	var inte3;
	var zeros;
	var cValor = new String(Valor);
	var k, x, deci;

	nPos = cValor.indexOf(".");
	numDecs = parseInt(numDecs);

	if (nPos > 0){
	  inte1 = cValor.substr(0, nPos);
	}else{
	  inte1 = cValor;
	}

	inte2="";
	inte3="";
	x = 0;
	for (k=inte1.length-1;k>=0;k--){
		inte2 += inte1.substr(k,1);
		x++;
		if ((x == 3) && (k > 0)){
			inte2 += ".";
			x = 0;
		}
	}

	for (k=inte2.length-1; k >= 0;k--){
		inte3 += inte2.substr(k,1);
	}

	deci = "";
	zeros = "";
	zeros += Math.pow(10, numDecs);

	if (numDecs > 0){
		if (nPos > 0){
			deci = cValor.substr(nPos + 1, numDecs);
		}

		for(k=zeros.length-1; k >= 0; k--){
			deci += zeros.substr(k, 1);
		}
		//alert("deci = " + deci);
		cRetu = inte3 + "," + deci.substr(0, numDecs);
	}else{
		cRetu = inte2;
	}
	//alert("cRetu = " + cRetu);
	return cRetu;
}

/***********************************************************************
* Funo fnStrResumeCritica()
*
* Descrio: 	Resume as criticas de um formulrio
************************************************************************/
function fnStrResumeCritica()
{
	if (pagStrErro == '')
	{
		return true;
	}
	else
	{
		alert(pagStrErro);
		pagStrErro = '';
		return false;
	}
}

/***********************************************************************
* Funo Submete()
*
* Descrio: 	Executa o submit para a pgina passada
************************************************************************/
function Submete( asPagina )
{
	document.forms[0].action = asPagina;
	document.forms[0].submit();
}

/***********************************************************************
* Funo Trim()
*
* Descrio: 	Retira os espaos antes e depois do texto passado
************************************************************************/
function Trim(sTrim)
{
	var String = sTrim;
	var Resultado = String;

	//Retira os espaos do inicio. Enquanto o primeiro caracter for igual  "Espao" 1 caracter do inicio  removido.
	var i = 0;

	if (Resultado.charCodeAt(2-1) == '32'){
	}

	while (Resultado.charCodeAt(0) == '32'){
		Resultado = String.substring(i,String.length);
		i++;
	}

	//Pega a string j formatada e agora retira os espaos do final
	//mesmo esquema, enquanto o ultimo caracter for um espao,
	//ele retira 1 caracter do final...

	while(Resultado.charCodeAt(Resultado.length-1) == '32'){
		Resultado = Resultado.substring(0,Resultado.length-1);
	}
	String = "";
	return Resultado;
}

/***********************************************************************
* Funo fnAbrePopup()
*
* Descrio: 	Abre uma popup com as caractersticas passadas
************************************************************************/
function fnAbrePopup( asURL, asTarget, aiLargura, aiAltura, aiOpcoes, aiScroll, aiResize )
	{
	var oJanela;
	var sOpcoes;

	sOpcoes = "";
	if ( parseInt( navigator.appVersion ) < 4 )
		{
		sOpcoes	= "toolbar=no,location=no,address=no,directories=no,status=no,menubar=no,copyhistory=yes,maximized=yes"
					+ ",width=" + aiLargura + ",height=" + aiAltura;
		}
	else
		{
		var lX = screen.width	- aiLargura;		// Posio X da janela
		var lY = screen.height	- aiAltura;			// Posio y da janela

		if ( lX != 0 )
			{
			lX = Math.round( lX / 0.5 );
			lY = Math.round( lY / 0.5 );
			}
		sOpcoes = aiOpcoes;
		sOpcoes	+= ",width=" + aiLargura + ",height=" + aiAltura;

		}
	if ( aiScroll > 0 )
		sOpcoes += ",scrollbars=yes";
	else
		sOpcoes += ",scrollbars=no";

	if ( aiResize > 0 )
		sOpcoes += ",resizable=yes";
	else
		sOpcoes += ",resizable=no";

	//aoTelaPai.open( asURL, "pop", sOpcoes );
	window.open( asURL, asTarget, sOpcoes );
	}

/***********************************************************************
* Funo ValidaCampoData()
*
* Descrio: 	Valida um campo Data
************************************************************************/
function ValidaCampoData( evento , oCampo )
{
	var sData = oCampo.value;
	var i;

	if( evento.keyCode == 37 || evento.keyCode == 38 || evento.keyCode == 39 || evento.keyCode == 40 )
	{
		return true;
	}

	if( oCampo.value != '' )
	{
		for( i = 0 ; i < sData.length ; i++ )
		{
			if( sData.charAt(i) == "/" )
			{
				sData = sData.substring( 0 , i ) + sData.substring( i + 1 , sData.length )
				i = i - 1;
			}
		}

		if( fnStrVerificaCampoNumerico( sData ) )
		{
			if( evento.keyCode == 8 )
			{
				if( sData.length == 4 || sData.length == 3 )
				{
					sData = sData.substring( 0 , 2 ) + "/" + sData.substring( 2 , sData.length );
				}
				else
				{
					if( sData.length < 3 )
					{
						sData = sData.substring( 0 , sData.length );
					}
					else
					{
						sData = sData.substring( 0 , 2 ) + "/" + sData.substring( 2 , 4 ) + "/" + sData.substring( 4 , sData.length );
					}
				}
			}
			else
			{
				if( sData.length != 1 )
				{
					if( sData.length < 4 )
					{
						sData = sData.substring( 0 , 2 ) + "/" + sData.substring( 2 , sData.length );
					}
					else
					{
						if( sData.length == 4 )
						{
							sData = sData.substring( 0 , 2 ) + "/" + sData.substring( 2 , 4 ) + "/";
						}
						else
						{
							sData = sData.substring( 0 , 2 ) + "/" + sData.substring( 2 , 4 ) + "/" + sData.substring( 4 , sData.length );
						}
					}
				}
			}
			oCampo.value = sData.substr( 0 , 10 );
		}
		else
		{
			oCampo.value = '';
			alert( 'Preencha o campo apenas com nmeros' );
		}
	}
	return true;
}

/***********************************************************************
* Funo fnStrVerificaCampoDataMesAno()
*
* Descrio: 	Valida um campo Data no formato mm/aaaa
************************************************************************/
function fnStrVerificaCampoDataMesAno(evento, oCampo, peStrMensagemOpcional)
{
	var sData = oCampo.value;
	var i;

	if( evento.keyCode == 37 || evento.keyCode == 38 || evento.keyCode == 39 || evento.keyCode == 40 )
	{
		return false;
	}

	if( oCampo.value != '' )
	{
		for( i = 0 ; i < sData.length ; i++ )
		{
			if( sData.charAt(i) == "/" )
			{
				sData = sData.substring( 0 , i ) + sData.substring( i + 1 , sData.length )
				i = i - 1;
			}
		}

		if( fnStrVerificaCampoNumerico( sData ) )
		{
			if( evento.keyCode == 8 )
			{
				if( sData.length == 4 || sData.length == 3 )
				{
					sData = sData.substring( 0 , 2 ) + "/" + sData.substring( 2 , sData.length );
				}
				else
				{
					if( sData.length < 3 )
					{
						sData = sData.substring( 0 , sData.length );
					}
					else
					{
						sData = sData.substring( 0 , 2 ) + "/" + sData.substring( 4 , sData.length );
					}
				}
			}
			else
			{
				if( sData.length != 1 )
				{
					sData = sData.substring( 0 , 2 ) + "/" + sData.substring( 2 , sData.length );
				}
			}
			oCampo.value = sData.substr( 0 , 6 );
		}
		else
		{
			if (peStrMensagemOpcional == '')
			{
				pagStrErro += "'Preencha o campo apenas com nmeros'\n";
			}
			else
			{
				pagStrErro += peStrMensagemOpcional;
			}
			return false;
		}
	}
	return true;
}

/***********************************************************************
* Funo fnStrVerificaCampoNumerico()
*
* Descrio: 	Valida um campo do tipo nmero
************************************************************************/
function fnStrVerificaCampoNumerico( sTexto )
{
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;

 	for ( i = 0 ; i < sTexto.length && IsNumber == true ; i++ )
	{
		Char = sTexto.charAt( i );
		if ( ValidChars.indexOf(Char) == -1 )
		{
			IsNumber = false;
		}
	}
	return IsNumber;
}

/***********************************************************************
* Funo fnStrVerificaDataMesAno()
*
* Descrio: 	Valida um campo Data no formato mm/aaaa
************************************************************************/
function fnStrVerificaDataMesAno( peStrCampo, peStrDescricao, peStrMensagemOpcional )
{
	var locCampoChar = peStrCampo.value;
	var mes = parseInt( peStrCampo.value.toString().substr( 0, 2 ), 10 );
	var ano = parseInt( peStrCampo.value.toString().substr( 3, 4 ), 10 );

	if( mes < 1 || mes > 12 )
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-O preenchimento do campo '" + peStrDescricao + "'  invlido! [" + locCampoChar + "]\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional;
		}
		return false;
	}
	if( ano < 1900 )
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "-O preenchimento do campo '" + peStrDescricao + "'  invlido! [" + locCampoChar + "]\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional;
		}
		return false;
	}
	return true;
}

/***********************************************************************

* Funo fnStrVerificaRadio()
*
* Descrio: 	Verifica se existe pelo menos um radio selecionado
************************************************************************/
function fnStrVerificaRadio( peStrCampo, peStrDescricao, peStrMensagemOpcional )
{
	bMarcado = 0;
	for( var i=0; i < peStrCampo.length; i++ )
	{
		if( peStrCampo[i].checked == true )
			bMarcado = 1;
	}

	if( bMarcado == 0 )
	{
		if (peStrMensagemOpcional == '')
		{
			pagStrErro += "O campo [" + peStrDescricao + "]  obrigatrio.\n";
		}
		else
		{
			pagStrErro += peStrMensagemOpcional + "\n";
		}

		return false;
	}

}

/***********************************************************************
* Funo fnVerificaAlteracao(oFrm)
*
* Descrio: 	Verifica se ouve alguma alterao nos valores do formulario
************************************************************************/
function fnVerificaAlteracao(oFrm)
{
	var i;
	var mudou;
	var oObj;
	for (i=0; i<oFrm.tags("TEXTAREA").length; i++)
	{
		if (oFrm.tags("TEXTAREA")[i].defaultValue != oFrm.tags("TEXTAREA")[i].value)
		{
			mudou=true;
			oObj = oFrm.tags("TEXTAREA")[i];
		}
	}
	for (i=0; i<oFrm.tags("SELECT").length; i++)
	{
		TemDefault = false;
		for (j=0; j<oFrm.tags("SELECT")[i].length; j++)
		{
			if (oFrm.tags("SELECT")[i][j].defaultSelected)
			{
				if (oFrm.tags("SELECT")[i].selectedIndex != j)
				{
					mudou=true;
					oObj = oFrm.tags("SELECT")[i];
				}
				TemDefault = true;
			}
		}
		if (!TemDefault)
		{
			if (oFrm.tags("SELECT")[i].selectedIndex != 0)
			{
				mudou=true;
				oObj = oFrm.tags("SELECT")[i];
			}
		}
	}
	for (i=0; i<oFrm.tags("INPUT").length; i++)
	{
		switch (oFrm.tags("INPUT")[i].type)
		{
			case "text" :
			{
				if (oFrm.tags("INPUT")[i].defaultValue != oFrm.tags("INPUT")[i].value)
				{
					mudou=true;
					oObj = oFrm.tags("INPUT")[i];
				}
			}
			break;

			case "password" :
			{
				if (oFrm.tags("INPUT")[i].defaultValue != oFrm.tags("INPUT")[i].value)
				{
					mudou=true;
					oObj = oFrm.tags("INPUT")[i];
				}
			}
			break;

			case "checkbox" :
			{
				if (oFrm.tags("INPUT")[i].defaultChecked != oFrm.tags("INPUT")[i].checked)
				{
					mudou=true;
					oObj = oFrm.tags("INPUT")[i];
				}
			}
			break;

			case "radio" :
			{
				if (oFrm.tags("INPUT")[i].defaultChecked != oFrm.tags("INPUT")[i].checked)
				{
					mudou=true;
					oObj = oFrm.tags("INPUT")[i];
				}
			}
			break;
		}
	}

	if (mudou)
	{
		return true;
	}
	return false;
}
/***********************************************************************
* Funo fnAdicionaMensagem()
*
* Descrio: 	Adiciona uma mensagem avulsa de erro
************************************************************************/
function fnAdicionaMensagem( peStrMensagem )
{
	pagStrErro += peStrMensagem + "\n";
}

/***********************************************************************
* Funo MudaLado()
*
* Descrio: 	Funo que troca os itens uma combo para a outra
************************************************************************/
function MudaLado(objEnvia, objRecebe)
{
	var nomecampo;
	objEnvia = eval(objEnvia);
	objRecebe = eval(objRecebe);
	icont = 0;

	for (x=0;x<objEnvia.length;x++)
	{
		if (objEnvia[x].selected)
			icont++;
	}
	for (x=0;x<icont;x++)
	{
		for(y=0;y<objEnvia.length;y++)
		{
			if (objEnvia[y].selected)
			{
				objRecebe.length++;
				objRecebe[objRecebe.length - 1].text = objEnvia[y].text;
				objRecebe[objRecebe.length - 1].value = objEnvia[y].value;
				objEnvia[y] = null;
			}
		}
	}

	for(x=0;x<objEnvia.length;x++)
		objEnvia[x].selected = false;
	for(x=0;x<objRecebe.length;x++)
		objRecebe[x].selected = false;

	// Ordeno o Resultado
	OrdenaSelect( objRecebe );
}

// Orderna Asc
function sortFuncAsc(record1, record2) {
    var value1 = record1.optText.toLowerCase();
    var value2 = record2.optText.toLowerCase();
    if (value1 > value2) return(1);
    if (value1 < value2) return(-1);
    return(0);
}

// Orderna Desc
function sortFuncDesc(record1, record2) {
    var value1 = record1.optText.toLowerCase();
    var value2 = record2.optText.toLowerCase();
    if (value1 > value2) return(-1);
    if (value1 < value2) return(1);
    return(0);
}

// Funo de Ordenao
function OrdenaSelect(selectToSort, Ordem) {
	var ascendingOrder = false;
    if (arguments.length == 1) ascendingOrder = true;    // default to ascending sort

    // copy options into an array
    var myOptions = [];
    for (var loop=0; loop<selectToSort.options.length; loop++) {
        myOptions[loop] = { optText:selectToSort.options[loop].text, optValue:selectToSort.options[loop].value };
    }

    // sort array
    if (ascendingOrder) {
        myOptions.sort(sortFuncAsc);
    } else {
        myOptions.sort(sortFuncDesc);
    }

    // copy sorted options from array back to select box
    selectToSort.options.length = 0;
    for (var loop=0; loop<myOptions.length; loop++) {
        var optObj = document.createElement('option');
        optObj.text = myOptions[loop].optText;
        optObj.value = myOptions[loop].optValue;
        selectToSort.options.add(optObj);
    }
}

/***********************************************************************
* Funo limiteCampo()
*
* Descrio: 	funo verifica o tamanho mximo do campo na digitao
************************************************************************/
function limiteCampo(aocampo, aitamanho, asmsgErro)
{
	if(aocampo.value.length>=aitamanho)
	{
		alert(asmsgErro);
		window.event.keyCode=0;
		return false;
	}
	return true;
}

// Abre uma janela para verificar Ortografia
function NovaJanelaMenu ( sPagina, sTitulo )
{
	window.open (sPagina,sTitulo,'resizable=yes,menubar=yes,scrollbars=yes,width=750,height=600');
}

// Abre uma janela para o verificar ortografia
function AbrirVerificacaoOrtografica ( aoCampo, asMensagem )
{
	if ( aoCampo.value != '' )
	{
		var sPagina = 'conVerificacaoOrtografica.asp?texto=' + aoCampo.value;
		var sTitulo = 'VerificacaoOrtografica';

		NovaJanelaMenu ( sPagina, sTitulo );
	}
	else
	{
		alert( asMensagem );
		aoCampo.focus();
	}
}

//Retorna a data atual
function retornaData()
{
	var dtData = new Date();
	var sDia, sMes, sAno, sData

	sDia = dtData.getDate();
	sAno = dtData.getFullYear();
	sMes = dtData.getMonth() + 1;

	if ( sMes < 10 )
		sMes = '0' + sMes;

	if ( sDia < 10)
		sDia = '0' + sDia;

	sData = sDia + '/' + sMes + '/' + sAno;

	return sData;
}

//Substitui os caracteres "<" e ">" pelo seu cdigo html
function HTMLEncode( asString )
{
	var i;
	var sRet='';

	for ( i=0; i<asString.length; i++)
	{
		aux = asString.substr(i,1);

		switch(aux)
		{
			case "<":
				sRet += "&lt;";
				break;
			case ">":
				sRet += "&gt;";
				break;
			default:
				sRet += aux;
		}
	}
	return sRet;
}

/***********************************************************************
* Função STamMax(oTextArea, Max)
*
* Descrição: 	Verifica os dados digitados no campo, se for maior truca.
*
************************************************************************/
function TamMax(oTextArea, Max)
{
	var length = oTextArea.value.length;
	var sAux;
	if (length > Max)	{
		sAux = oTextArea.value;
		oTextArea.value = sAux.substring(0,Max)
	}
}

function max(txarea,total)
{
	tam = txarea.value.length;
	str="";
	str=str+tam;
	
	
	if (tam > total){
	
	   aux = txarea.value;
	   txarea.value = aux.substring(0,total);

    }

}


/***********************************************************************
* Funo TrocaValorCampo()
*
* Descrio: 	funcao que muda os valores de um campo para o outro
************************************************************************/
function TrocaValorCampo(entrObject, outObject, moveAll) {
		if (outObject.selectedIndex != -1){

			newDestList = new Array( entrObject.options.length );
			var len = 0;

			for( len = 0; len < entrObject.options.length; len++ ){
				if ( entrObject.options[ len ] != null ){
					newDestList[ len ] = new Option( entrObject.options[ len ].text, entrObject.options[ len ].value, entrObject.options[ len ].defaultSelected, entrObject.options[ len ].selected );
			    }
			}

			for( var i = 0; i < outObject.options.length; i++ ){
				if ( outObject.options[i] != null && ( outObject.options[i].selected == true || moveAll ) ){
					newDestList[ len ] = new Option( outObject.options[i].text, outObject.options[i].value, outObject.options[i].defaultSelected, outObject.options[i].selected );
					len++;
				}
			}

		//	newDestList.sort( compareOptionText );   // BY VALUES

			for ( var j = 0; j < newDestList.length; j++ ){
				if ( newDestList[ j ] != null ){
					entrObject.options[ j ] = newDestList[ j ];
				}
			}

			for( var i = outObject.options.length - 1; i >= 0; i-- ){
				if ( outObject.options[i] != null && ( outObject.options[i].selected == true || moveAll ) ){
					outObject.options[i] = null;
				}
			}
		}

		else

		{
			alert("Selecione ao menos um item.");
			return false;
		}
	}


/***********************************************************************
* Funo RetornaDataNumerica()
*
* Descrio: 	funcao que trata a data para ser comparada
************************************************************************/
	function RetornaDataNumerica(data)
		{
			var iDia, iMes, iAno;
			vetData = data.split("/");
			for (i=0; i < vetData.length; i++)
			{
				switch (i)
				{
					case 0 : { iDia = vetData[i]; }
					break;
					case 1 : { iMes = vetData[i]; }
					break;
					case 2 : { iAno = vetData[i]; }
					break;
				}
			}
			if(iMes.length == 1)
			{
				iMes = "0"+ iMes;
			}
			if(iDia.length == 1)
			{
				iDia = "0"+ iDia;
			}
			return (iAno + iMes + iDia);
		}

/***********************************************************************
* Funo fnVerificaResolucao()
*
* Descrio: 	função para setar o tamnho de um div dependendo da resolucao
*				do monitor
************************************************************************/
function fnSetaDiv(nomeDiv)
{
	var oDiv;
	var sAltura;

	oDiv = document.getElementById(nomeDiv);

	sAltura = screen.height;

	if (sAltura == '600') {
		oDiv.style.height = 345;
	}
	else {
		oDiv.style.height = 535;
	}
}


/***********************************************************************
*Função para arredondar um campo text qualquer. (deve-se trocar qq ',' por '.' antes)
*
* Descrio: 	função para setar o tamnho de um div dependendo da resolucao
*				do monitor
************************************************************************/
function ArredondaNumero(num , casas)
{
   var iPosicaoPonto = num.value.length;

   for ( var i = 0 ; i < num.value.length ; i++ )
   {
      if ( num.value.charAt(i) == '.' )
      {
         iPosicaoPonto = i;
      }
   }
   if ( num.value.length > (iPosicaoPonto + casas) )
   {
      var numRetorno = '';
      for ( var i = 0 ; i <= (iPosicaoPonto + casas) ; i++ )
      {
         numRetorno = numRetorno +  num.value.charAt(i);
      }

      if ( num.value.charAt(iPosicaoPonto + (casas+1) ) >= 5 )
      {
         return (parseFloat(numRetorno) + Math.pow(10,-casas))
      }
      else
      {
         return numRetorno
      }
   }
   else
   {
      return num.value;
   }
}

function CarregarFrame(strFrame,strCaminho){
	parent.frames(strFrame).location.href = strCaminho;
}


function recuperarCodigo(nomeCampo)
{
	var codigo = -1;
	var nomeCampo = nomeCampo;

	if ( eval("typeof(document.formulario." + nomeCampo + ".length) != \"undefined\" ") )
	{
		for (i = 0; i < eval("document.formulario." + nomeCampo + ".length") ; i ++)
			if ( eval("document.formulario." + nomeCampo + "[i].checked == true") )
			{
				eval("codigo = document.formulario." + nomeCampo + "[i].value");
			}
	}
	else
	{
		if ( eval("document.formulario." + nomeCampo + ".checked == true") )
		{
			eval("codigo = document.formulario." + nomeCampo + ".value");
		}
	}
	return codigo;
}

function recuperarVersao(nomeCampo)
{
	var codigo = -1;
	var nomeCampo = nomeCampo;

	if ( eval("typeof(document.formulario." + nomeCampo + ".length) != \"undefined\" ") )
	{
		for (i = 0; i < eval("document.formulario." + nomeCampo + ".length") ; i ++)
			if ( eval("document.formulario." + nomeCampo + "[i].checked == true") )
			{
				eval("codigo = document.formulario." + nomeCampo + "[i].versao");
			}
	}
	else
	{
		if ( eval("document.formulario." + nomeCampo + ".checked == true") )
		{
			eval("codigo = document.formulario." + nomeCampo + ".versao");
		}
	}
	return codigo;
}

function AbreObservacao(nomeCampo){

	document.formulario.hdnCampo.value = nomeCampo;
	
	window.open('about:blank','popObs','scrollbars=0,width=600, height=300');
			document.forms[0].target = 'popObs';
			document.forms[0].action = 'lstObservacao.asp';
			document.forms[0].submit();

}
function escondeMostra(codigo)
{
	var i=0;
	if(document.all('linha'+codigo))
	{
		if(document.all('linha'+codigo)[0])
		{
			if(document.all('linha'+codigo)[0].style.display == 'none')
			{	
				for(i=0;i<document.all('linha'+codigo).length;i++)
				{
					document.all('linha'+codigo)[i].style.display = 'block';
					document.all('imagem'+codigo).src = '../IMG/ico_menos.jpg';
				}
				
			}
			else
			{ 
				for(i=0;i<document.all('linha'+codigo).length;i++)
				{
					document.all('linha'+codigo)[i].style.display = 'none';
					document.all('imagem'+codigo).src = '../IMG/ico_mais.jpg';
				}
			}
		}
		else
		{
			if(document.all('linha'+codigo).style.display == 'none')
			{
				document.all('imagem'+codigo).src = '../IMG/ico_menos.jpg';
				document.all('linha'+codigo).style.display = 'block';
			}
			else
			{
				document.all('linha'+codigo).style.display = 'none';
				document.all('imagem'+codigo).src = '../IMG/ico_mais.jpg';
								
			}
		}
	}
}

function hide(obj)
{
	var objDIV = eval('document.all.lay_' + obj);
	var objIMG = eval('document.img_' + obj);
	if (objDIV.style.display == 'block')
	{
		objDIV.style.display = 'none';
		objIMG.src = '../img/ico_mais.jpg';
	}
	else 
	{
		objDIV.style.display = 'block';
		objIMG.src = '../img/ico_menos.jpg';
	}
}


function ValidaCamposEnter(oCampo, iLength){
	var arr;
	var i;
	var iAchei = 0;
	if(oCampo.value.search('\n') != -1){
		arr = oCampo.value.split('\n');
		for(i=0;i<arr.length;i++){
			if(arr[i].substr(1, arr[i].length).length > iLength){
				iAchei =1;
				break;
			}
		}
		if(iAchei == 1)
			return false;
		else
			return true;
	}
	else if(oCampo.value.length > iLength)
		return false;	
	else
		return true;
}

/***********************************************************************
* Funo RetornaDataNumerica()
*
* Descrio:  funcao que trata a data para ser comparada
************************************************************************/   
function fnRetornaDataNumerica(data)
    {
        var iDia, iMes, iAno;
        vetData = data.split("/");
        for (i=0; i < vetData.length; i++)
        {
            switch (i)
            {
                case 0 : { iDia = vetData[i]; }
                break;
                case 1 : { iMes = vetData[i]; }
                break;
                case 2 : { iAno = vetData[i]; }
                break;
            }
        }
        if(iMes.length == 1)
        {
            iMes = "0"+ iMes;
        }
        if(iDia.length == 1)
        {
            iDia = "0"+ iDia;
        }
        return (iAno + iMes + iDia);
    }
/**************************************************************************
Função: DesabilitaValoresCobrados
Descrição: Habilita/Desabilita campos do formulário de consulta a Valores Cobrados
****************************************************************************/

function DesabilitaValoresCobrados(radio)
{
	if (radio == 'F')
	{
		document.getElementById("tblFonte").style.display = 'block'; 
		document.getElementById("tblCorrente").style.display = 'block'; 
		frmValoresCobrados.hdnPesquisa.value = 'F';
	}
	else
	{
		document.getElementById("tblFonte").style.display = 'none';
		document.getElementById("tblCorrente").style.display = 'none';
		frmValoresCobrados.hdnPesquisa.value = 'UO';
	}
}


/**************************************************************************
Função: DesabilitaFormularioMetas
Descrição: Habilita/Desabilita campos do formulário de consulta de Metas
****************************************************************************/
function DesabilitaFormularioMetas()
{
	var oForm = document.forms[0];
	
	if(oForm.chkPetrobras.checked == true){
		oForm.cmbAreaNegocio.disabled = true;
		oForm.cmbUn.disabled = true;
		oForm.cmbUo.disabled = true;
		oForm.hdnPesquisa.value = "F";
	}
	else{
		oForm.cmbAreaNegocio.disabled = false;
		oForm.cmbUn.disabled = false;
		oForm.cmbUo.disabled = false;
		oForm.hdnPesquisa.value = "T"
	}
}

/***********************************************************************
* Funcao SubmitToPopUp(sPagina, sDestino, sOpcoes)
*
* Descricao: 	Faz um submit para uma popup
*
************************************************************************/

function SubmitToPopUp(oForm, sPagina, sDestino, sOpcoes){
	if(sOpcoes == ''){
		sOpcoes = 'width=400, heigth=400, scrollbars';
	}
	window.open('about:blank', sDestino, sOpcoes);
	oForm.action = sPagina;
	oForm.target = sDestino;
	oForm.submit();	
}
/***********************************************************************
* Função fnEvnEntradaNumNegativo()
*
* Descrição: 	Controla a máscara para campos de valores do tipo negativo ou não
*
* Chamada:		onKeyPress="javascript:return fnEvnEntradaNumNegativo();"
************************************************************************/
function fnEvnEntradaNumNegativo(peStrCampo, peStrMil, peStrDec, peMaxCampo)
{
	e = event;

	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789' + '-';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	var iFlag = 0;
	
	if (whichCode == 13) return true;  // Enter
	key = String.fromCharCode(whichCode);  // Get key value from key code
	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
	len = peStrCampo.value.length;
	for(i = 0; i < len; i++)
		if ((peStrCampo.value.charAt(i) != '0') && (peStrCampo.value.charAt(i) != peStrDec)) break;
	
	aux = '';
	
	/*for (i=0 ; i < len; i++)
      {
        	 if(peStrCampo.value.charAt(i) == '-'){
        		iFlag = '1'
        	 }
      }*/
    
    if(peStrCampo.value.indexOf('-') != -1 )
	{
		peMaxCampo = peMaxCampo + 1
	}
    
	for(; i < len; i++)
	if (strCheck.indexOf(peStrCampo.value.charAt(i))!=-1) aux += peStrCampo.value.charAt(i);
	aux += key;
	len = aux.length;
	if (len == 0) peStrCampo.value = '';
	if (len == 1) peStrCampo.value = '0'+ peStrDec + '0' + aux;
	if (len == 2) peStrCampo.value = '0'+ peStrDec + aux;
	
	if (len < peMaxCampo)
	{
		if (len > 2)
		{
			aux2 = '';
			for (j = 0, i = len - 3; i >= 0; i--)
			{
				if (j == 3)
				{
					aux2 += peStrMil;
					j = 0;
				}
				aux2 += aux.charAt(i);
				j++;
			}
			peStrCampo.value = '';
			len2 = aux2.length;
			for (i = len2 - 1; i >= 0; i--)
			peStrCampo.value += aux2.charAt(i);
			peStrCampo.value += peStrDec + aux.substr(len - 2, len);
		}
	}
	else
	{
		return false;
	}
	return false;
}