var ie4 = (document.all) ? true : false;
var ns4 = (document.layers) ? true : false;
var ns6 = (document.getElementById && !document.all) ? true : false;

	function trim(str){
		str = str.replace(/^\s*|\s*$/g,"");
		return str;
	}
	
function formatar(e){
	number = ( navigator.appName == "Netscape" ) ? e.which : e.keyCode;

	if(number == 45 || number == 47 || number == 8 || number == 0)
		return true;
	if(number < 48 || number > 57)
		return false

	return true; 
}
   
//Essa função é utilizada pela Função maskEvent
//Modo de Usar: <script>document.write(mask('####/####','{$res[i].nu_contrato}'))</script> 
function mask(_mask, val) {
	var i, mki;
	var aux="";
	
	for(i=mki=0; i<val.length; i++, mki++) {
		if(_mask.charAt(mki)=='' || _mask.charAt(mki)=='#' || _mask.charAt(i)==val.charAt(i)) {
			aux+=val.charAt(i);
		} else {
			aux+=_mask.charAt(mki)+val.charAt(i);
			mki++;
		}
	}
	return aux;
}
//Função Generica para Mascaras
//Modo de Usar: onKeyPress="return(maskEvent(this, '####/####',event))"
function maskEvent(field, _mask, event) {
	var key ='';
	var aux='';
	var len=0;
	var i=0;
	var strCheck = '0123456789';
	if(navigator.appName.indexOf("Netscape")!= -1)	 
		rcode= event.which;	 
	 else	 
		rcode= event.keyCode;	 
	
	if(rcode == 8) {
		return true;
	}
		
	if(rcode == 13 || rcode == 0 || field.value.length == _mask.length  ) {
		//Enter
		key=String.fromCharCode(rcode);
				
		if(rcode!=13 && rcode!=0) {
			return false;
		}
				
		return true;
	}
	
	//Obtenha valor chave de código chave
	key=String.fromCharCode(rcode);
	
	if(strCheck.indexOf(key)==-1) {
		//Not a valid key
		return false;
	}
	
	aux=field.value+key;
	//window.alert(aux);
	aux=mask(_mask,aux);
	//window.alert(aux);
	field.value=aux;	
	return false;
}
   
		
	/*
	* Retorna o valor do elemento, exemplo de um innerHtml
	* A funcao parseInt n?o ? suficiente
	*/
	function getCurrencyValue(rgExp)
	{
		while (rgExp.indexOf(".") > -1 )
		{
			rgExp = rgExp.replace(".", "");
		}
		rgExp = rgExp.replace(",", ".");
		rgExp = rgExp.replace("R$ ", "").replace("-R$ ", "");

		return parseFloat(rgExp);
	}

	function soLetra(obj) {
		return (((obj >= 'a') && (obj <= 'z')) || ((obj >= 'A') && (obj <= 'Z')))
	};
	
	
	
	function soNumero (e){
	car = ( navigator.appName == "Netscape" ) ? e.which : e.keyCode;
	
	//if (car == 13){
	// alert('gibran mediocre');
	//}
	
	if ( car > 31 && ( car < 48 || car > 57 ))
		return false;
	else 
	   return true;
     }


	function soNumeroComVirgula (e){
		var car		= ( navigator.appName == "Netscape" ) ? e.which : e.keyCode;
		var campo	= ( navigator.appName == "Netscape" ) ? e.target : e.srcElement;
		if(e.ctrlKey)
			return false;
		if (car == 44 && campo.value.indexOf(',') < 0)
	  		return true;
		if ( car > 31 && ( car < 48 || car > 57 ) )
		   return false;
		else 
		   return true;
	}

	/*
	* Retorna o valor do elemento, exemplo de um innerHtml
	* A funcao parseInt n?o ? suficiente
	*/
	function getCurrencyValue2(rgExp)
	{
		while (rgExp.indexOf(",") > -1 )
		{
			rgExp = rgExp.replace(",", "");
		}		
		rgExp = rgExp.replace(" ", "");
		rgExp = rgExp.replace("R$", "").replace("-R$", "");
		return parseFloat(rgExp);
	}
	
	/*
	* Verifica se o CEP ? v?lido
	*/
	function VerificaCEP(obj){
	var cep = obj.value;
		if(cep.length == 0){
			return false;
		}else if (cep.length < 9){
			alert("CEP inválido.");
			obj.select();
			obj.focus();
		}
	}
	
	
	/*
	* formata um valor numerico com casas decimais
	*/
	function formatCurrency(num) {
		num = num.toString().replace(/\$|\,/g,'');
		if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
		if(cents<10)
		cents = "0" + cents;
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+'.'+
		num.substring(num.length-(4*i+3));
		return (((sign)?'':'-') + num + ',' + cents);
	}


	/*
	 * verifica a qtde maxima de caracteres de um textarea
	 */
	function checkSizeTextArea(memo, size) {
		var text = memo.value;	
		if (text.length > size) {
			alert("O tamanho máximo é de " + size + ".");
			memo.focus();		
		}
	}

	/*
	 * verifica se o cpf digitado ? valido
	 */
	function checkCPF(obj) {
		var cpf = obj.value;		
		if (cpf == "") return true;
		
		if (cpf == "111.111.111-11"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "222.222.222-22"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "333.333.333-33"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "444.444.444-44"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "555.555.555-55"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "666.666.666-66"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "777.777.777-77"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "888.888.888-88"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "999.999.999-99"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (cpf == "000.000.000-00"){ 
		  alert("CPF inválido");
		  obj.select();
		  obj.focus();
		  return false;
		}
		if (!validaCPF(cpf)) {
			alert("CPF inválido");
				obj.select();
				obj.focus();
				return false;
			}
			else
			{
				return true;
			}
	}
	
	/*
	* verifica se a primeira data ? menor que a segunda
	*/
	function isMoreThan(_dt, _dt2){
		var fDay = _dt.substring(0, 2);
		var fMonth = _dt.substring(3, 5);
		var fYear = _dt.substring(6, 10);
		
		var sDay = _dt2.substring(0, 2);
		var sMonth = _dt2.substring(3, 5);
		var sYear = _dt2.substring(6, 10);
		
		fDate = eval(fYear+fMonth+fDay);
		sDate = eval(sYear+sMonth+sDay);
		
		return fDate<sDate;
	}

	/*
	 * verifica se o e-mail digital est? no formato correto
	 */		
	function checkPercent(obj) 
	{
		if (isNumeric(obj))
		{ 
			if (obj.value>100) 
			{
			alert("O percentual não está no formato correto! Máximo 100%");
			obj.value = "";
			obj.focus();
			return false;
			}
		}
		return true;
	}
	
	
	
	/*
	 * verifica se a data digitada ? valida
	 */
	function checkData(obj) {
		var data = obj.value;		
		if (data == "") return true;
		if (!validaData(data)) {
			alert("Data inválida, verifique se a data é válida ou se o formato está correto: xx/xx/xxxx");
			obj.select();
			obj.focus();
			return false;
		}
	}
	
	function validacaoDatas(string){
		var re = /^\d+\/\d+\/\d+$/;
		
		if(re.test(string)){// validar formato
	
			var temp = string.split('/');
			var bissesto = false;
			var dia = parseInt(temp[0],10);
			var mes = parseInt(temp[1],10);
			var ano = parseInt(temp[2],10);
			var dia_max = 0;

			// descobrir o tipo do ano via calculo simples
			bissesto = (ano % 4) == 0?true:false;
			
			// validar mes
			if (mes < 1 || mes > 12){
				return false;
			}
			
			// determinar o máximo do dia
			if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || 
				mes == 8 || mes == 10 || mes == 12 ){// 31 dias
				dia_max = 31;
			}
			if ( mes == 4 || mes == 6 || 
				mes == 9 || mes == 11 ){// 30 dias
				dia_max = 30;
			}
			if ( mes == 2){ // fevereiro
				if (bissesto){
					dia_max = 29;
				}else{
					dia_max = 28;
				}
			}
			
			if (dia < 1 || dia > dia_max){
				return false;
			}
			
		}else{
			return false
		}
	
		return true;
}
	
	function checkCEP(obj) {
		var cep = obj.value;		
		if (cep == "") return true;
		if (!validaCEP(cep)) {
			alert("CEP inválido.");
			obj.select();
			obj.focus();
		}
	}
	
	/*
	 * verifica se a data digitada ? valida
	 */
	function checkDataMaiorHoje(obj) {
		var data = obj.value;		
		if (data == "") return true;
		if (validaData(data)) {
			alert("Data inválida");
			obj.value = "";
			obj.focus();
			return false;
		}
		else
		{
			var diaFinal = data.substring(0, 2)
			var mesFinal = data.substring(3, 5)
			var anoFinal = data.substring(6, 10)
			var dataFinal = diaFinal+"/"+mesFinal+"/"+anoFinal;

			if( new Date(dataFinal)>=new Date() )
			{
				alert("A Data deve ser menor Hoje!");
				obj.select();
				obj.focus();
				return false;
			}
		}
		return true;
	}
	
	/*
	*	verifica a hora
	*/
	function isValidTime(obj) 
	{
		if( obj.value == "" ) return true;
		
		if(!isNumberHora(obj))
		{
			obj.focus();
			return false;
		}

		var strTime=obj.value;
		if(strTime.length==5)
		{
			var hour = strTime.substring(0,2);
			var minute = strTime.substring(3,5);
			var separador= strTime.substring(2,3);
			if (hour < 0  || hour > 23) 
			{
				alert("A Hora deve estar entre 0 e 23");
				obj.focus();
				return false;
			}

			if (minute<0 || minute > 59) 
			{
				alert ("Os minutos devem estar entre 0 e 59.");
				obj.focus();
				return false;
			}

			if (separador!=":") 
			{
				alert("Formato de hora inválido");
				obj.focus();
				return false;
			}

		}
		else
		{
			alert ("Formato de Hora Inválido");
			obj.focus();
			return false;
		}
	}

	/*
	* verifica se a hora ? valida
	*/
	function isNumberHora(obj) 
	{
		var numberStr = obj.value
		if(numberStr=="") return true;
		var sLen = numberStr.length;
		var conteudo = "0123456789:";
		var numero= true;

		for(i=0;i<sLen;i++)
		{
			if(conteudo.indexOf(numberStr.substring(i,i+1))<0)
			{
				numero=false;
			}
		}
		if(!numero)
		{
			alert('Formato de hora inválido');
			obj.focus();
			return false;
		}
		return true;
	}

	/*
	 * verifica se o cnpj digitado ? valido
	 */
	function checkCNPJ(obj) {
		var cnpj = obj.value;		
		if (cnpj == "") return true;
		if(mascaraCNPJ(obj))
		{
			cnpj = obj.value;
			if (!validaCNPJ(cnpj)) {
				alert("CNPJ inválido");
				obj.select();
				obj.focus();
				return false;
			}
			else
			{
				return true;
			}
		}
		else
		{
			alert("Formato do CNPJ inválido! Deve ser 99.999.999/9999-99");
			obj.select();
			obj.focus();
			return false;
		}
		
	}
	
	/*
	 * verifica se o e-mail digital est? no formato correto
	 */		

	//valida email
	function checkEmail(obj)
	{
		var reEmail = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
		var email = obj.value;
		if(email.length > 0)
		{
			if (!reEmail.test(obj.value)) 
			{
				alert(obj.value + " NÃO é um endereço de e-mail válido.");
				return false;
			} 
		}
		return true;	
	}
	
	function validaEmail(str) 
	{
			var re = new RegExp("^[^@]+@[^\\.]+\\.[^@]+$");		
			return (re.test(str)) 
	}
	
	/*
	 * verifica se o ddd digitado est? no formato correto
	 */		
	function checkDDD(obj) {
		var ddd = obj.value;		
		if (ddd == "") return true;
		if (!isNumeric(obj)) {
			//alert("O DDD s? deve conter n?meros! Ex: 11");
			obj.value = "";
			obj.focus();
			return false;
		}
		return true;
	}
	
	/*
	 * verifica se o ddd digitado est? no formato correto
	 */		
	function checkCelular(obj) {
		var celular = obj.value;		
		if (celular == "") return true;
		if (!isNumeric(obj)) {
			//alert("O celular deve ter no m?! Ex: 11");
			obj.select();
			obj.focus();
			return false;
		}
		else if(celular.length<7)
		{
			alert("O celular deve ter no mínimo 7 posições!");
			obj.select();
			obj.focus();
			return false;
		}
		
		return true;
	}
	
	/*
	 * verifica se o ddd digitado est? no formato correto
	 */		
	function checkFone(obj) {
		var ddd = obj.value;		
		if (ddd == "") return true;
		if (!isNumeric(obj)) {
			//alert("O Fone s? deve conter n?meros! Ex: 12345678");
			obj.value = "";
			obj.focus();
			return false;
		}
		return true;
	}
	 
		
	/*
	 * verifica se o parametro ? um numero
	 */
	function isNumber(val) {
		for (var i=0; i < 10; i++) {
			if (i == val) return true;
		}
		return false;
	}
	
	function formatar(src, mask, event) {

		if(isDigitNumber(event)){
			var i = src.value.length;
			var saida = mask.substring(0,1);
			var texto = mask.substring(i);
			if (texto.substring(0,1) != saida) 
				src.value += texto.substring(0,1);
		}else{
			return false;
		}
	  
	}


	/**
	 * Validar caracter numerico
 	*/
	function isDigitNumber(e) {

	if(window.event) {
		if (event.keyCode < 48 || event.keyCode > 57) 
			return  event.returnValue =  false;
		else
			return  event.returnValue = true;
	}else if(e.which){
		if(e.which == 8)
			return true;
		if(e.which < 48 || e.which > 57 ){
			return false;
		}else{
			return true;	
		}
	}else {
    	return true;
  	}
 }
	
	/*
	* verifica se existem somente numeros
	*/	
	function isNumeric(obj) {
		var numberStr = obj.value;
		if(numberStr=="") return true;
		var sLen = numberStr.length;
		var conteudo = "0123456789";
		var numero= true;

		for(i=0;i<sLen;i++){
			if(conteudo.indexOf(numberStr.substring(i,i+1))<0)
			{
				numero=false;
			}
		}
		if(!numero)
		{
			alert('Por favor, digite somente números');
			obj.select();
			obj.focus();
			existeErro=true;
			return false
		}
		existeErro=false;
		return true;
	}
	
	/*
	 * retorna somente d?gitos
	 */
	function onlyDigit(str) {		
		var ret = "";
		for (var i=0; i < str.length; i++) {			
			if (isNumber(str.substring(i, i+1))) {
				ret += str.substring(i, i+1);
			}			
		}		
		return ret;		
	}
	
	/*
	 * valida o cpf
	 */
	function validaCPF(str) {
		var dac;
	
		str = onlyDigit(str);
	
		if (str.length != 11)			
			return false;
		
		dac = 0;
		
		for(i=0; i<9; i++){
			dac += parseInt(str.substring(i,i+1)) * (10-i);
		}

		dac %= 11;
		dac = (dac>1 ? 11-dac : 0);
		if(dac!=parseInt(str.substring(9,10))){
			return false;
		}

		dac=0;
		for(i=0;i<10;i++){
			dac += parseInt(str.substring(i,i+1)) * (11-i);
		}
		dac %= 11;
		dac = (dac>1 ? 11-dac : 0);
		if(dac!=parseInt(str.substring(10,11))){
			return false;
		}

		return true
	}
	
	/*
	 * valida cnpj
	 */
	function validaCNPJ(str) {
		var dac, i, x;
	
		str = onlyDigit(str);
	
		if (str.length != 14)
			return false;
			
		dac = 0;
		for(i=0; i<12; i++){
			x = (i>3 ? i-2 : i+6);
			dac += parseInt(str.substring(i,i+1)) * x;
		}
		dac %= 11;
		if(dac == 10) dac = 0;
		if(dac != parseInt(str.substring(12,13))){
			return false;
		}

		dac = 0;
		for(i=0; i<13; i++){
			x = (i>4 ? i-3 : i+5);
			dac += parseInt(str.substring(i,i+1)) * x;
		}
		dac %= 11
		if(dac == 10) dac = 0;
		if(dac != parseInt(str.substring(13,14))){
			return false;
		}

		return true;
	}

	function validaData(Data) {
		var d, DataAtual
		 DataAtual = new Date();
		 d = Retorna_Data(Data);
		 if (d!='dt_errada'){
		  if (d==DataAtual)
		   return 'dt_atual';
		  else
		   if (d>DataAtual)
		    return 'dt_futura';
		   else
		    return 'dt_passada';
		 }
		 else
		  return false;
	}
	
	function validaCEP(cep) {
		var c
		 d = Retorna_Data(Data);
		 if (d!='dt_errada'){
		  if (d==DataAtual)
		   return 'dt_atual';
		  else
		   if (d>DataAtual)
		    return 'dt_futura';
		   else
		    return 'dt_passada';
		 }
		 else
		  return false;
	}
	
	function Retorna_Data(Data){
		var Barra1, Barra2, DataFinal;
		 Barra1 = Data.search("/");
		 Barra2 = (Data.substr(Barra1+1)).search("/") + Barra1 + 1;
		 /*
		 alert('Dia:' + Data.substr(0,Barra1));
		 alert('Mes:' + Data.substr((Barra1+1),(Barra2-Barra1-1)));
		 alert('Ano:' + Data.substr(Barra2+1));
		 */
		 DataFinal = new Date(Data.substr(Barra2+1), Data.substr((Barra1+1),(Barra2-Barra1-1))-1, Data.substr(0,Barra1))
		 /*
		 alert(isNaN(DataFinal));
		 alert(DataFinal.getDate() + "-" + Data.substr(0,Barra1));
		 alert(DataFinal.getMonth() + "-" + Data.substr((Barra1+1),(Barra2-Barra1-1))-1);
		 alert(DataFinal.getFullYear() + "-" +  Data.substr(Barra2+1));
		 */
		 if (!((isNaN(DataFinal)) || ((DataFinal.getDate() != Data.substr(0,Barra1))) || ((DataFinal.getMonth() != Data.substr((Barra1+1),(Barra2-Barra1-1))-1)) || ((DataFinal.getFullYear() != Data.substr(Barra2+1)))))
		  return (DataFinal);
		 else
		  return ('dt_errada');
	}
	
	/*
	 * verifica se o campo ? vazio
	 */
	function validEmpty(obj, name)
	{
		if( obj.value == "" )
		{			
			alert("O campo "+name+" é obrigatório.");			
			obj.focus();
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/*
	 * verifica se o campo ? vazio
	 */
	function isEmpty(obj)
	{
		if( obj.value == "" )
		{			
			return true
		}
		else
		{
			return false;
		}
	}	
	
	
	/*
	*  valida telefone
	*/
	function CheckPhoneNumber(obj) {		
		var TheNumber = obj.value;
		if( TheNumber == "" ) return true;
		var GoodChars = "0123456789()-+ "
		var i = 0
		for (i =0; i <= TheNumber.length -1; i++) {
			if (GoodChars.indexOf(TheNumber.charAt(i)) == -1) {
				alert("Formato inválido para um número de telefone/fax.");
				return false;
			} // End if statement
		} // End for loop
		return true
	}


	/*
	* valida um email
	*/
	function isEmail(obj) {
		var email = obj.value;
		if( email == "" ) return true;
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)){
			return true;
		}
		alert("Email inválido.")
		return false;
	}

	function checkDecimals(obj) 
	{
		fieldValue = obj.value;
		decallowed = 2;         // how many decimals are allowed?
		
		if (fieldValue == "") return true;

		/* O getCurrencyValue inverte as virgulas pelos pontos e os pontos pelas virgulas. */		
		fieldValue = (getCurrencyValue(fieldValue)).toString();
		
		if (isNaN(fieldValue)) 
		{
			alert("Formato de número inválido! Ex: 9999,99");
			obj.select();
			return false;
		}
		else 
		{
			if ( fieldValue.indexOf(".") == -1 ) fieldValue += ".";
			
			dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);
			if (dectext.length > decallowed)
			{
				alert("Formato de número inválido! Ex: 9999,99");
				obj.select();
				return false;   
			}
			return true;
	   	}
	}

	function formatValor(n) {
		var sepMilhar = ".";
		var sepDecimal = ",";
		var numDecimais = 2;
	
		var ret, num, ch, len;
		
		n *= Math.pow(10, numDecimais);
		
		num = "" + Math.round(n);
		len = num.length;
		for (i=0; i<numDecimais-len+1; i++) {
			num = "0" + num;
		}
	
		ret = "";
		len = num.length;
		for (i=0; i<len; i++) {
			ch = num.charAt(len-1 - i);
			if (i == numDecimais) ret = sepDecimal + ret;
			if (i >  numDecimais && (i-numDecimais) % 3 == 0) ret = sepMilhar + ret;
			ret = ch + ret;
		}
		return ret;
	}
	
	
	function mascaraCNPJ(elem) {
		var str;
		var re = new RegExp("^\\d{2}[\\.]?\\d{3}[\\.]?\\d{3}[/]?\\d{4}[-]?\\d{2}$");
		var size = 14;		
		//var re = new RegExp("^\\d{4}?\\d{10}$");		
		
		if (elem.value.length) 
		{
			//if (!re.test(str) || elem.value.length<size) return false;
			if( elem.value.length<size )
			{
				//auto completa com zeros a esquerda...
				for( var i=elem.value.length; i<size; i++ )
				{
					elem.value = "0"+elem.value;
				}
			}
			str = elem.value;						
			if (!re.test(str)) return false;
		}
		return true;
	}
	
	/*
	* Ex. <input type="text" name="CPFUsuario" size="17" class="main_box" maxlength="14" onkeypress="FormataCNPJ(this, event"/>
	*/
	function FormataCNPJ(Campo, teclapres){

   		var tecla = teclapres.keyCode;
   		var vr = new String(Campo.value);
   		vr = vr.replace(".", "");
   		vr = vr.replace(".", "");
   		vr = vr.replace("/", "");
   		vr = vr.replace("-", "");
   		tam = vr.length + 1 ;
		if (tecla != 9 && tecla != 8){
      		if (tam > 2 && tam < 6)
         		Campo.value = vr.substr(0, 2) + '.' + vr.substr(2, tam);
			if (tam >= 6 && tam < 9)
				Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,tam-5);
			if (tam >= 9 && tam < 13)
				Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,tam-8);
			if (tam >= 13 && tam < 15)
				Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4)+ '-' + vr.substr(12,tam-12);
		}
	}


function FormataCpf(campo,tammax,teclapres) {
 var tecla = teclapres.keyCode;
 // vr = document.form[campo].value;
 vr = event.srcElement.value;
 vr = vr.replace( "/", "" );
 vr = vr.replace( "/", "" );
 vr = vr.replace( ",", "" );
 vr = vr.replace( ".", "" );
 vr = vr.replace( ".", "" );
 vr = vr.replace( ".", "" );
 vr = vr.replace( ".", "" );
 vr = vr.replace( "-", "" );
 vr = vr.replace( "-", "" );
 vr = vr.replace( "-", "" );
 vr = vr.replace( "-", "" );
 vr = vr.replace( "-", "" );
 tam = vr.length;

 if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

 if (tecla == 8 ){ tam = tam - 1 ; }
  
 if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
  if ( tam <= 2 ){
    event.srcElement.value = vr ; }
   if ( (tam > 2) && (tam <= 5) ){
    event.srcElement.value = vr.substr( 0, tam - 2 ) + '-' + vr.substr( tam - 2, tam ) ; }
   if ( (tam >= 6) && (tam <= 8) ){
    event.srcElement.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
   if ( (tam >= 9) && (tam <= 11) ){
    event.srcElement.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
   if ( (tam >= 12) && (tam <= 14) ){
    event.srcElement.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
   if ( (tam >= 15) && (tam <= 17) ){
    event.srcElement.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ;}
 }  
}
		

	function validaValor(valor)	
	{
		validaValor(valor,13,2);
	}

	function validaValor(valor, numeros, decimais)
	{
		var valorLen   = 0;
		var decimalLen = 0;

		while(valor.value.indexOf(".")>0){
			valor.value = valor.value.replace(".", "");
		}

		if (valor.value.indexOf("-") != 0 && valor.value.indexOf("-") != -1) 
		{
			alert('Por favor, digite um valor válido');
			valor.select();
			return false;
		}  

		if (! checkDecimals(valor) )
		{
			valor.select();
			return false;
		}
		if (valor.value == "") return true;

		valValor = valor.value;

		valorTeste   = 0;
		decimalTeste = 0;

		if (valValor.indexOf(",") == -1) {valValor += ",";}

		valorLen   = (valValor.substring(0, valValor.indexOf(","))).length;
		decimalLen = (valValor.substring(valValor.indexOf(",") + 1, valValor.length)).length;

		/* Pega os n?meros separados do "." */
		valorTeste   = valValor.substring(0, valValor.indexOf(",") );
		decimalTeste = valValor.substring(valValor.indexOf(",") + 1, valValor.length);

		if (! isNumerico(valorTeste) || (! isNumerico(decimalTeste) ))
		{
			alert('Por favor, digite um valor válido');
			valor.select();
			return false;
		}

		if ( (valorLen > numeros) ||  (decimalLen > decimais) )
		{
			alert("O número deve conter no máximo " + numeros + " números e " + decimais + " decimais");
			valor.select();
			return false;
		}
		
		  /*
		  * verifica se existem somente numeros (function interna)
		  */ 
		  function isNumerico(numberStr) {
		   if(numberStr=="") return true;
		   var sLen = numberStr.length;
		   var conteudo = "-0123456789";
		   var numero= true;

		   for(i=0;i<sLen;i++){
		    if(conteudo.indexOf(numberStr.substring(i,i+1))<0)
		    {
		     numero=false;
		    }
		   }
		   if(!numero)
		   {
		    existeErro=true;
		    return false
		   }
		   existeErro=false;
		   return true;
		  }

	}



	/*
	 * verifica se o Numero do Processo ? v?lido 
	 */
	function checkNumeroProcesso(obj) 
	{
		if (obj.value == "") return true;
		if( !mascaraNumeroProcesso(obj) )
		{
			obj.select();
			obj.focus();
			return false;
		}

		return true;

	}

	function mascaraNumeroProcesso(elem)
	{
		var str;
		var re = new RegExp("^\\d{5}[\\.]?\\d{6}[/]?\\d{4}[-]?\\d{2}$");
		var size = 17;		

		if (elem.value.length) 
		{
			if( elem.value.length < size)
			{
				//auto completa com zeros a esquerda...
				for( var i=elem.value.length; i<size; i++ )
				{
					elem.value = "0" + elem.value;
				}
			}
			else if (elem.value.length > size)
			{
				str = elem.value;
				if ( !re.test(str)  )
				{
					alert("Formato do Número do Processo Inválido! Deve ser 99999.999999/9999-99");
					return false;
				}
			}
			if (isNumeric(elem))
			{
				return true;
			}
		}
		return true;
	}

/***
* Descri??o.: formata um campo do formul?rio de
* acordo com a m?scara informada...
* Par?metros: - objForm (o Objeto Form)
* - strField (string contendo o nome
* do textbox)
* - sMask (mascara que define o
* formato que o dado ser? apresentado,
* usando o algarismo "9" para
* definir n?meros e o s?mbolo "!" para
* qualquer caracter...
* - evtKeyPress (evento)
*
* Uso.......: <input type="textbox"
* name="xxx".....
* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);">
* Observa??o: As m?scaras podem ser representadas
* como os exemplos abaixo:
* CEP -> 99999-999
* CPF -> 999.999.999-99
* CNPJ -> 99.999.999/9999-99
* C/C -> 999999-!
* Tel -> (99) 9999-9999
***/

function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {

      var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

      if(document.all) { // Internet Explorer
        nTecla = evtKeyPress.keyCode; }
      else{ // Nestcape
        nTecla = evtKeyPress.which;
      }

      sValue = objForm[strField].value;

      // Limpa todos os caracteres de formata??o que
      // j? estiverem no campo.
      sValue = sValue.toString().replace( "-", "" );
      sValue = sValue.toString().replace( "-", "" );
      sValue = sValue.toString().replace( ".", "" );
      sValue = sValue.toString().replace( ".", "" );
      sValue = sValue.toString().replace( "/", "" );
      sValue = sValue.toString().replace( "/", "" );
      sValue = sValue.toString().replace( "(", "" );
      sValue = sValue.toString().replace( "(", "" );
      sValue = sValue.toString().replace( ")", "" );
      sValue = sValue.toString().replace( ")", "" );
      sValue = sValue.toString().replace( ":", "" );
      sValue = sValue.toString().replace( " ", "" );
      sValue = sValue.toString().replace( " ", "" );
      fldLen = sValue.length;
      mskLen = sMask.length;

      i = 0;
      nCount = 0;
      sCod = "";
      mskLen = fldLen;

      while (i <= mskLen) {
        bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
        bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

        if (bolMask) {
          sCod += sMask.charAt(i);
          mskLen++; }
        else {
          sCod += sValue.charAt(nCount);
          nCount++;
        }

        i++;
      }

      objForm[strField].value = sCod;
	  
	  
      if (nTecla != 8) { // backspace
        if (sMask.charAt(i-1) == "9") { // apenas n?meros...
          return ((nTecla > 47) && (nTecla < 58)); } // n?meros de 0 a 9
        else { // qualquer caracter...
          return true;
        } }
      else {
        return true;
      }
}









Mascaras = {
IsIE: navigator.appName.toLowerCase().indexOf('microsoft')!=-1,
AZ: /[A-Z]/i,
Acentos: /[?-?]/i,
Num: /[0-9]/,
carregar: function(parte){
 var Tags = ['input','textarea'];
 if (typeof parte == "undefined") parte = document;
 for(var z=0;z<Tags.length;z++){
  Inputs=parte.getElementsByTagName(Tags[z]);
  for(var i=0;i<Inputs.length;i++)
   if(('button,image,hidden,submit,reset').indexOf(Inputs[i].type.toLowerCase())==-1)
    this.aplicar(Inputs[i]);
 }
},
aplicar: function(campo){
 tipo = campo.getAttribute('tipo');
 if (!tipo || campo.type == "select-one") return;
 orientacao = campo.getAttribute('orientacao');
 mascara = campo.getAttribute('mascara');
 if (tipo.toLowerCase() == "decimal"){
  orientacao = "esquerda";
  casasdecimais = campo.getAttribute('casasdecimais');
  tamanho = campo.getAttribute('maxLength');
  if (!tamanho || tamanho > 50)
   tamanho = 10;
  if (!casasdecimais)
   casasdecimais = 2;
  campo.setAttribute("mascara", this.geraMascaraDecimal(tamanho, casasdecimais));
  campo.setAttribute("tipo", "numerico");
  campo.setAttribute("orientacao", orientacao);
 }
 if (orientacao && orientacao.toLowerCase() == "esquerda") campo.style.textAlign = "right";
 if (mascara) campo.setAttribute("maxLength", mascara.length);
 if (tipo){
  campo.onkeypress = function(e){ return Mascaras.onkeypress(e?e:event); };
  campo.onkeyup = function(e){ Mascaras.onkeyup(e?e:event, campo) };
 }
 campo.setAttribute("snegativo", ((campo.value).substr(0,1) == "-" ? "s" : "n"));
},
onkeypress: function(e){
 KeyCode = this.IsIE ? event.keyCode : e.which;
 campo =  this.IsIE ? event.srcElement : e.target;
 readonly = campo.getAttribute('readonly');
 if (readonly) return;
 maxlength = campo.getAttribute('maxlength');
 pt = campo.getAttribute('pt');
 selecao = this.selecao(campo);
 if (KeyCode == 13)
 	try{
 		validaForm();
 	}catch(e){}
 if (selecao.length > 0 && KeyCode != 0){
  campo.value = ""; return true;
 }
 if (KeyCode == 0) return true;
 Char = String.fromCharCode(KeyCode);
 valor = campo.value;
 mascara = campo.getAttribute('mascara');
 if (KeyCode != 8){
  tipo = campo.getAttribute('tipo').toLowerCase();
  negativo = campo.getAttribute('negativo');
  if(negativo && KeyCode == 45){
   snegativo = campo.getAttribute('snegativo');
   snegativo = (snegativo == "s" ? "n" : "s");
   campo.setAttribute("snegativo", snegativo);
  }else{
   valor += Char
   if (tipo == "numerico" && Char.search(this.Num) == -1) return false;
   if (KeyCode != 32 && tipo == "caracter" && Char.search(this.AZ) == -1 && Char.search(this.Acentos) == -1) return false;
  }
 }
 if (mascara){
  this.aplicarMascara(campo, valor);
  return false;
 }
 return true;
},
onkeyup: function(e, campo){
 KeyCode = this.IsIE ? event.keyCode : e.which;
 if (KeyCode != 9 && KeyCode != 16 && KeyCode != 109){
  valor = campo.value;
  if (KeyCode == 8 && !this.IsIE) valor = valor.substr(0,valor.length-1);
  this.aplicarMascara(campo, valor);
 }
},
aplicarMascara: function(campo, valor){
 mascara = campo.getAttribute('mascara');
 if (!mascara) return;
 negativo = campo.getAttribute('negativo');
 snegativo = campo.getAttribute('snegativo');
 if (negativo && valor.substr(0,1) == "-")
  valor = valor.substr(1,valor.length-1);
 orientacao = campo.getAttribute('orientacao');
 var i = 0;
 for(i=0;i<mascara.length;i++){
  caracter = mascara.substr(i,1);
  if (caracter != "#") valor = valor.replace(caracter, "");
 }
 retorno = "";
 if (orientacao != "esquerda"){
  contador = 0;
  for(i=0;i<mascara.length;i++){
   caracter = mascara.substr(i,1);
   if (caracter == "#"){
    retorno += valor.substr(contador,1);
    contador++;
   }else
    retorno += caracter;
   if(contador >= valor.length) break;
  }
 }else{
  contador = valor.length-1;
  for(i=mascara.length-1;i>=0;i--){
   if(contador < 0) break;
   caracter = mascara.substr(i,1);
   if (caracter == "#"){
    retorno = valor.substr(contador,1) + retorno;
    contador--;
   }else
    retorno = caracter + retorno;
  }
 }
 if (negativo && snegativo == "s")
  retorno = "-" + retorno;
 campo.value = retorno;
},
geraMascaraDecimal: function(tam, decimais){
 var retorno = ""; var contador = 0; var i = 0;
 decimais = parseInt(decimais);
 for (i=0;i<(tam-(decimais+1));i++){
  retorno = "#" + retorno;
  contador++;
  if (contador == 3){
   retorno = "." + retorno;
   contador=0;
  }
 }
 retorno = retorno + ",";
 for (i=0;i<decimais;i++) retorno += "#";
 return retorno;
},
selecao: function(campo){
 if (this.IsIE)
  return document.selection.createRange().text;
 else
  return (campo.value).substr(campo.selectionStart, (campo.selectionEnd - campo.selectionStart));
},
formataValor: function (valor, decimais){
 valor = valor.split('.');
 if (valor.length == 1) valor[1] = "";
 for(var i=valor[1].length;i<decimais;i++)
  valor[1] += "0";
 valor[1] = valor[1].substr(0,2);
 return (valor[0] + "." + valor[1]);
}
};


	// script de hint
	
	
	function hint(intexto, e){
      var obj;
      var newElem;
      var bgcolor = 'yellow';

      texto = mensagens(intexto);
      if (document.all){ // Internet Explorer
        e = window.event;
        obj = e.srcElement;
        obj.insertAdjacentHTML('afterEnd','<div class="hint_css" id="hint_'+obj.name+'">'+ texto +'</div>');
        if (e.type=='mouseover')
          obj.attachEvent('onmouseout', escondeHint);
        else if (e.type=='focus')
          obj.attachEvent('onblur', escondeHint);
      }else{ // Outros browsers (Testado no Firefox apenas)
        obj     = e.currentTarget;
        newElem = document.createElement('div');
        newElem.style.position  = 'absolute';
        newElem.style.background = '#ffffff';
        newElem.style.border = '1px solid #A9CFA8';
        newElem.id = 'hint_' + obj.name;
        newElem.innerHTML = texto ;
        obj.appendChild(newElem)
  
        if (e.type=='mouseover')
          obj.addEventListener('mouseout', escondeHint, false);
        else if (e.type=='focus')
          obj.addEventListener('blur', escondeHint, false);
      }
    }
  
    function escondeHint(e){
      var obj;
      if (document.all){ // Internet Explorer
        obj=e.srcElement;
        document.getElementById('hint_'+obj.name).style.display = 'none';
      }else{ // Outros browsers (Testado no Firefox apenas)
        obj=e.currentTarget;
        obj.removeChild(document.getElementById('hint_'+obj.name));
      }
    }
	
	//hint de impressao das mensagens do sistema
	function mensagens(texto){
		switch (texto) {
		 case "cnpj": texto = " Digite somente n&uacute;meros"
		 	break
		 case "resumoExecutivo": texto = " Preenchimento desses campos somente no Plano de Ação <b>2006</b>";
		 	break
		}
		return texto;
	}
	
	// fim


	//Aqui come?a o script de hint do menu
	
		menu="off"
		var tdOutColor = "#009900";
		var tdOverColor = "#33CC00";
		function checabrowser(){
			//alert('1');
			var x = navigator.appVersion;
			y = x.substring(0,4);
			if (y>=4) setVariables();
		}
		var x,y,b,xx,yy
		function setVariables(){
			//alert('2');
			if (navigator.appName == "Netscape") {
				h=".left=";
				v=".top=";
				dS="document.";
				sD="";
				iW="window.iWidth"
				iH="window.iHeight"
				osX="window.pageXOffset"
				osY="window.pageYOffset"
				document.menum.visibility="hide"
			}
			else{
				h=".pixelLeft=";
				v=".pixelTop=";
				dS="";
				sD=".style";
				iW="document.body.clientWidth"
				iH="document.body.clientHeight"
				osX="document.body.scrollLeft"
				osY="document.body.scrollTop"
			}
		}
		adjX=165
		adjY=285
		if (document.layers)adjX+=10, adjY+=10
			frameAdjust=(-130)
		sW=screen.width-adjX
		if (document.all)sW+=frameAdjust
		sH=screen.height-adjY
		
		var isNav = (navigator.appName.indexOf("Netscape") !=-1);
		
		function popLayer(hint){
			//alert('3');
			if (b==1){
				//alert('tan?');
				if (menu=="off"){
					menu="on"
					yy=eval(osY)+y
					xx=eval(osX)+x
					if (document.all){
						if (xx>(sW+eval(osX))) xx-=155
							if (yy>(sH+eval(osY))) yy-=100
					}
					if (document.layers){
						if (x>(sW+eval(osX))) xx-=155
						if (y>(sH+eval(osY))) yy-=100
					}
					aX="x: "+x+" ,xx: "+xx+" ,sW: "+sW+" ,iW: "+eval(iW)
					aY="y: "+y+" ,yy: "+yy+" ,sH: "+sH+" ,osY: "+eval(osY)
					if(isNav) {
						//alert('test1');
						document.menum.left=(xx-eval(osX))
						document.menum.top=(yy-eval(osY))+15
						document.menum.visibility="show"
						document.menum.innerText=hint
					}
					else {
						if (x > (eval(iW))||y > (eval(iH))){
							//alert('test2');
							menu="off"
						}// || y > (eval(iH)+eval(osY))) {}
						else{
							//alert('test3');
							menum.style.pixelLeft=xx
							menum.style.pixelTop=yy+15
							menum.style.visibility="visible"
							document.all.menum.innerText=hint
							
						}
					}
			}
			else {
		
				if (document.layers) {
				//hideMenu()
				}
				if (document.all){
					if (x > (eval(iW))||y > (eval(iH))){menu="on"}// || y > (eval(iH)+eval(osY))) {}
				//else 
				//hideMenu()
				}
			}
		}
		
		function hideMenu(){
		//alert('4');
		menu="off"
		if(isNav) {
		document.menum.visibility="hide"
		}
		else {
		menum.style.visibility="hidden"
		b = 0
		}
		}}
		
		
		
		function handlerMM(e){
		//alert('5');
		x = (isNav) ? e.pageX : event.clientX
		y = (isNav) ? e.pageY : event.clientY
		}
		
		if (isNav){
		document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
		}
		//document.onmousemove = handlerMM;
		//document.onmouseup = handlerMU;
		document.onmousemove = handlerMM;
		document.onmouseup = handlerMU;
		
		checabrowser();
		
		function handlerMU(e){
		//alert(e);
			if (e != null && e != ""){
				xx = (isNav) ? e.pageX : event.clientX
				yy = (isNav) ? e.pageY : event.clientY
				//b = (isNav) ? e.which : event.button
				if (isNav){
				
				}
				else
				{
					 if (event.type=='mouseover')
						b = 1
				}
				
				popLayer(e)
			}
		}
		
		function mudacor(prmThis,prmColor)
		{
			//alert('7');
			if ((window.document.all) || (window.document.getElementById))
			prmThis.style.backgroundColor = prmColor;
			else if (window.document.layers)
			prmThis.bgColor = prmColor;
		}

		function hideMenu2(){
		//alert('4');
		menu="off"
		if(isNav) {
		document.menum.visibility="hidden"
		}
		else {
		menum.style.visibility="hidden"
		b = 0
		}
		}

	// aqui termina o hint do menu, linha 1279

function limita(campo){
	var tamanho = campo.value.length;
	var tex=campo.value;
	if (tamanho>=1999) {
		campo.value=tex.substring(0,1999); 
	}
	return true;
}

function contacampo(campo) {
	tamtxt = campo.value.length;
	if(tamtxt > 2000){
		alert("O texto não pode exceder o tamanho máximo.");
		campo.focus();
		return false;
	}
}

function Contador(nome){
		var maxlength=0;
		document.write('<span id="'+nome+'" style="color:gray; border:thin solid silver; width:40">&nbsp;</span>');
		document.getElementById(nome).innerHTML = maxlength;
		
		function contar(campo){
			if (maxlength > 0)
				document.getElementById(nome).innerHTML = (maxlength - campo.value.length);
			else
				document.getElementById(nome).innerHTML = campo.value.length;
		}
		this.contar = contar;
		
		function setMaxLength(max){
			maxlength = max;
			document.getElementById(nome).innerHTML = maxlength;
		}
		this.setMaxLength = setMaxLength;
		
	}

function pesquisarStatusPlano()
{
	document.carregarStatusPlano.acao.value = "pesquisarStatusPlano";
	document.carregarStatusPlano.submit();
}

function pesquisarStatusDemonstrativo()
{
	document.carregarStatusDemonstrativo.acao.value = "pesquisarStatusDemonstrativo";
	document.carregarStatusDemonstrativo.submit();
}
