/*========================================================*/
/* Funções Javascript
/* Tipo:
/* => branco
/* => cpf
/* => cpf_branco
/* => cnpj
/* => numero
/* => numero_branco
/* => selecionado
/* => dia
/* => mes
/* => email	
/* => trim
/* => senha
/* => chars_only
/*========================================================*/

var arr_janelas = new Array();
var objJanela;
var acao = 1;
var user = "0";
//var indice_jalelas = 0;

/*Quando carrega as paginas, no evento onLoad*/
function carregar(){
	window.status = "Prefeitura Eletrônica";
}

/*--  Serve para selecionar/deselecionar os checkboxs. */
function todas( form ){
    var tamanho_form = form.length;

    for (cont=0; cont<tamanho_form; cont++){
		switch( form[cont].type ){
			case "checkbox":
				if( acao == 1 ){
					form[cont].checked = true;
				}else{
					form[cont].checked = false;
				}
			break;
		}
	}
	if( acao == 1){acao = 2;}else{acao = 1;}

} 

function check_selecionada( form ){
    var tamanho_form = form.length;
	var soma = 0;

    for (cont=0; cont<tamanho_form; cont++){
		switch( form[cont].type ){
			case "checkbox":
					if( form[cont].checked == true ){ soma++; };
			break;
		}
	}

	if( soma == 0){
		alert('Pelo Menos um registro deve estar selecionado');
	}else{
		form.submit();
	}

} 


/* FUNCAO USADA NOS POPS DO FISCO ONLINE*/
function AbrirJanela(url,name,attributes) {
    var wHandle = window.open(url,name,attributes);
}

/*  Model para os Helps */
function help( page, field ){
	//propriedades_default = "toolbar=no,location=no,status=no,menubar=no,resizable=no,scrollbars=auto,top=100,left=100,width=500, height=200";
	propriedades_default = "scroll:no;status:no;dialogWidth500px;dialogHeight:300px";

	showModalDialog("help.php?page="+page+"&field="+field,window,propriedades_default);
}

/* FUNCAO USADA PARA ABRIR OS POPS NO MUNDO CONTABIL */
function window_open(url, nomeJanela, propriedades){
	var propriedades_adicionais;

	propriedades_default = "scrollbars=yes,toolbar=no,location=no,status=yes,menubar=no,resizable=no,top=100,left=100,";
	if( propriedades == "" ){
		propriedades_default = propriedades_default + "width=500, height=400";
	}else{
		propriedades_default = propriedades_default + propriedades;
	}
	
	objJanela = window.open(url, nomeJanela, propriedades_default);
	arr_janelas.push(objJanela);
	objJanela.focus();
}

function windows_close(){
	for(i=0; i<arr_janelas.length; i++){ arr_janelas[i].close(); }
} 
	
function habilita(){
	if( document.frm_reultado ){
		if (objJanela && !objJanela.closed){
			objJanela.focus();
		}else if(document.frm_reultado.resultado) {
			document.frm_reultado.resultado.value = 0;
		}
	}
}

function stopTabCheck(nomeCampo){ 
	checarTabulacao=false;
}

function startTabCheck(){
	checarTabulacao=true;
}

function exibeValor(nomeCampo, lenCampo, controle){
	if ((nomeCampo.value.length == lenCampo) && (checarTabulacao)){
		var i=0;
		for (i=0; i<document.forms[0].elements.length; i++){ 
			if (document.forms[0].elements[i].name == nomeCampo.name){ 
				while ((i+1) < document.forms[0].elements.length){
					if (document.forms[0].elements[i+1].type != "hidden"){
						document.forms[0].elements[i+1].focus();
						break;
					}
					i++;
				}
			checarTabulacao=false;
			break;
			}
		}
	}
}

function valida_formulario(form){
	//alert(form);
    var erro = 0;
    var tamanho_form = form.length;
	var str_erro = "";
	var data = 1;
	var foco = "-1";
    for (cont=0; cont<tamanho_form; cont++){
		//Verifica se é branco

		switch(form[cont].id){
			
			case "maiuscula":
				if(form[cont].value == ""){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				 }else{
					if( form[cont].value == form[cont].value.toLocaleLowerCase() ){
							str_erro = str_erro + "Campo " + form[cont].lang + " não pode estar preenchido somente com letras minúsculas.\n" ;
							//form[cont].focus();
							if( foco == "-1" ){ foco = cont; }
							erro = 1;
						 }else{
							if( erro != 1 ) { erro = 0; }
					}
				 }
			break;

			case "concordo": 
				if(form[cont].checked == false ){
					str_erro = str_erro + "Campo " + form[cont].lang + " não foi selecionado.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				 }else{
					if( erro != 1 ) { erro = 0; }
				}
				break;

			case "branco": 
				if(form[cont].value == "" || form[cont].value.length < 3){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				 }else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: Senha
			//--	Valida comparando os campos de senha e confirmacao de senha
			case "senha": 
				if(form[cont].value != form[cont+1].value){
					str_erro = str_erro + "Campos " + form[cont].lang + " e confirmação de senha devem ser iguais.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				 }else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: cpf e CNPJ
			//--	Valida o campo CPF, obrigatório
			
			case "cpfcnpj":
			if( VerifyCNPJ(form[cont].value) == 0 && checacpf(form[cont].value) == 0){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;    
				} else {
					if( erro != 1 ) { erro = 0; }
				}
				break;
			
			case "cpf":
				if( checacpf(form[cont].value ) == 0 ){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;    
				} else {
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: cpf_branco
			//--	Valida o campo CPF, não obrigatório
			case "cpf_branco":
				if(form[cont].value == ""){
					if( erro != 1 ) { erro = 0; }
				}else {
					if( checacpf(form[cont].value) == 0 ){
						str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
						//form[cont].focus();
						if( foco == "-1" ){ foco = cont; }
						erro = 1;    
					} else {
						if( erro != 1 ) { erro = 0; }
					}
				}
				break;
			//--	Validação: cnpj
			//--	Valida o campo CNPJ, obrigatório
			case "cnpj":
				if( VerifyCNPJ(form[cont].value) == 0){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: numero
			//--	Valida o campo Numero, obrigatório
			case "numero":
				if( numero(form[cont].value) == 0){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: numero
			//--	Valida o campo Numero, não obrigatório
			case "numero_branco":
				if( numero(form[cont].value) == 0 || form[cont].value == "" ){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}else{
					if( erro != 1 ) { erro = 0; }
				}
	 			break;
			//--	Validação: data
			//--	Valida os campos DIA, MES e ANO (Estes campos devem estar na respectiva ordem para o perfeito funcionamento.)
		    case "data":
				var camp_err_data = "";
				//var camp_err_data = form[cont].contador+"ª";
				var tmp_dia = form[cont].value;
				var tmp_mes = tmp_ano = "";
				if(form[cont].contador){
				    camp_err_data = form[cont].contador+"ª ";		
				} 
				tmp_mes = form[cont+1].value;
				tmp_ano = form[cont+2].value;
				if (func_val_date(tmp_dia, tmp_mes, tmp_ano)){
					str_erro = str_erro + "Campo com " + camp_err_data + "data contém valor inválido.\n" ;
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}
				break;
				
			//--	Validação: data - campo data não obrigatório
			//--	Valida os campos DIA, MES e ANO (Estes campos devem estar na respectiva ordem para o perfeito funcionamento.)
			case "data_branco":
				var camp_err_data = "";
				//var camp_err_data = form[cont].contador+"ª";
				var tmp_dia = form[cont].value;
				var tmp_mes = tmp_ano = "";
				if(form[cont].contador){
				    camp_err_data = form[cont].contador+"ª ";		
				} 
				tmp_mes = form[cont+1].value;
				tmp_ano = form[cont+2].value;
				if( form[cont].value == "" && form[cont+1].value == "" && form[cont+2].value == "") {
					if( erro != 1 ) { erro = 0; }
				} else {
					if (func_val_date(tmp_dia, tmp_mes, tmp_ano)){
						str_erro = str_erro + "Campo com " + camp_err_data + "data contém valor inválido.\n" ;
						if( foco == "-1" ){ foco = cont; }
						erro = 1;
					}
				}
				break;
				
				
			//--	Validação: dia
			//--	Valida o campo Dia, obrigatório
			case "dia":
				if( numero(form[cont].value) == 0 || form[cont].value == "" || form[cont].value > 31){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: dia
			//--	Valida o campo Dia, obrigatório
			case "mes":
				if( numero(form[cont].value) == 0 || form[cont].value == "" || form[cont].value > 12){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: ano
			//--	Valida o campo Ano, obrigatório				
			case "ano":
				if( numero(form[cont].value) == 0 || form[cont].value == "" || form[cont].value.length != 4){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: email
			//--	Valida o campo email, obrigatório				
			case "email":
				if( ValidaEmail(form[cont].value) == 0 || form[cont].value == "" ){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido ou está em branco.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: selecionado
			//--	Valida o campo Selecionado, obrigatório				
			case "selecionado":
				if( form[cont].selectedIndex == 0 ){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					//form[cont].focus();
					if( foco == "-1" ){ foco = cont; }
					erro = 1;
				}else{
					if( erro != 1 ) { erro = 0; }
				}
				break;
		}
	}

	if(erro){
		/*form[ foco ].focus();*/
		alert( "Ocorreu o seguinte erro:\n\n"+str_erro );
	} 
	
    return erro;
}




/*#######################################################################################*/
/*#########################   Máscara para Preço   ######################################*/
function currencyFormat(fld, milSep, decSep, e) {
	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 = fld.value.length;
	for(i = 0; i < len; i++)
	if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
	aux = '';
	for(; i < len; i++)
	if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
	aux += key;
	len = aux.length;
	if (len == 0) fld.value = '';
	if (len == 1) fld.value = '0'+ decSep + '0' + aux;
	if (len == 2) fld.value = '0'+ decSep + aux;
	if (len > 2) {
	aux2 = '';
	for (j = 0, i = len - 3; i >= 0; i--) {
		if (j == 3) {
			aux2 += milSep;
			j = 0;
		}
		aux2 += aux.charAt(i);
		j++;
	}
	fld.value = '';
	len2 = aux2.length;
	for (i = len2 - 1; i >= 0; i--)
	fld.value += aux2.charAt(i);
	fld.value += decSep + aux.substr(len - 2, len);
	}
	return false;
}



/*########################################################################*/
/*#########################   CPF   ######################################*/
function checacpf (cpf) {
    erro_cpf = 1;
	cpf = cpf.replace("-","");
	cpf = cpf.split('.');
	cpf = cpf.join("");
	if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") erro_cpf = 0;
       soma = 0;
       for (i=0; i < 9; i ++) soma += parseInt(cpf.charAt(i)) * (10 - i);
           resto = 11 - (soma % 11);
       if (resto == 10 || resto == 11) resto = 0;
       if (resto != parseInt(cpf.charAt(9))) erro_cpf = 0;
          soma = 0;
       for (i = 0; i < 10; i ++) soma += parseInt(cpf.charAt(i)) * (11 - i);
          resto = 11 - (soma % 11);
       if (resto == 10 || resto == 11) resto = 0;
       if (resto != parseInt(cpf.charAt(10))) erro_cpf = 0;

/*    if(erro == 0) alert('CPF inválido'); */
    return erro_cpf;
}
/*########################################################################*/

/*########################################################################*/
/*#########################   CNPJ  ######################################*/
function isNUMB(c)    {
    if((cx=c.indexOf(","))!=-1){        
        c = c.substring(0,cx)+"."+c.substring(cx+1);
    }
    if((parseFloat(c) / c != 1)){
        if(parseFloat(c) * c == 0){
            return(1);
        }else{
            return(0);
        }
    }else{
        return(1);
    }
}

function LIMP(c){
    while((cx=c.indexOf("-"))!=-1){        
        c = c.substring(0,cx)+c.substring(cx+1);
    }
    while((cx=c.indexOf("/"))!=-1){        
        c = c.substring(0,cx)+c.substring(cx+1);
    }
    while((cx=c.indexOf(","))!=-1){        
        c = c.substring(0,cx)+c.substring(cx+1);
    }
    while((cx=c.indexOf("."))!=-1){        
        c = c.substring(0,cx)+c.substring(cx+1);
    }
    while((cx=c.indexOf("("))!=-1){        
        c = c.substring(0,cx)+c.substring(cx+1);
    }
    while((cx=c.indexOf(")"))!=-1){        
        c = c.substring(0,cx)+c.substring(cx+1);
    }
    while((cx=c.indexOf(" "))!=-1){        
        c = c.substring(0,cx)+c.substring(cx+1);
    }
    return(c);
}

function VerifyCNPJ(CNPJ){
	CNPJ = LIMP(CNPJ);
	if(isNUMB(CNPJ) != 1){
        return(0);
    }else{
        if(CNPJ == 0){
            return(0);
        }else{
			g=CNPJ.length-2;
            if(RealTestaCNPJ(CNPJ,g) == 1){
                g=CNPJ.length-1;
                if(RealTestaCNPJ(CNPJ,g) == 1){    
                    return(1);
                }else{
                    return(0);
                }
            }else{
                return(0);
            }
        }
    }
}

function RealTestaCNPJ(CNPJ,g){
    var VerCNPJ=0;
    var ind=2;
    var tam;
    for(f=g;f>0;f--){
        VerCNPJ+=parseInt(CNPJ.charAt(f-1))*ind;
        if(ind>8){
            ind=2;
        }else{
            ind++;
        }
    }
    VerCNPJ%=11;
    if(VerCNPJ==0 || VerCNPJ==1){
        VerCNPJ=0;
    }else{
        VerCNPJ=11-VerCNPJ;
    }
    if(VerCNPJ!=parseInt(CNPJ.charAt(g))){
        return(0);
    }else{
        return(1);
    }
}
/*########################################################################*/

function numero( numero ){
    var nRet = 1;
    var strValidNumber="1234567890";
    for (nCount=0; nCount < numero.length; nCount++){
        strTempChar= numero.substring(nCount,nCount+1);
        if ( strValidNumber.indexOf(strTempChar,0)==-1){
            nRet = 0;
        }
    } 
    return nRet;

} 

/*
    funçao que simula um relógio digital
	rafael baena neto
*/

function clock( tipo ) {
	if ( !document.layers && !document.all ) return;
	var digital = new Date();
	var hours = digital.getHours();
	var minutes = digital.getMinutes();
	var seconds = digital.getSeconds();
    if ( tipo == 12 ) {
        var amOrPm = "AM";
        if ( hours > 11 ) amOrPm = "PM";
        if ( hours > 12 ) hours = hours - 12;
        if ( hours == 0 ) hours = 12;
    }
	if ( hours <= 9 ) hours = "0" + hours;
	if ( minutes <= 9 ) minutes = "0" + minutes;
	if ( seconds <= 9 ) seconds = "0" + seconds;
    if ( tipo == 12 ) { dispTime = hours + ":" + minutes + ":" + seconds + " " + amOrPm;
    } else { dispTime = hours + ":" + minutes + ":" + seconds; }
	if ( document.layers ) {
        document.layers.pendule.document.write( dispTime );
        document.layers.pendule.document.close();
	} else if ( document.all ) pendule.innerHTML = dispTime;
	setTimeout( "clock('"+tipo+"')", 1000 );
}

/*
    funçao que valida email 
	rafael baena neto
*/
function ValidaEmail(email){
	if (email.length != 0 ){
		var expressao = /^[a-z]+[a-z0-9_.-]+[a-z]+@+[a-z]+[a-z0-9_.-]+[a-z0-9]$/;
		var email_val = expressao.test(email);
		var inicio = email.search('@');
		var fim = (email.length - inicio);
		var trecho = email.substr(inicio,fim);
		for ( i = 1; i <= email.length; i++ ) { ch = email.substr( i-1, 2 ); if (ch == "..") { email_val = false; break;} }
		for ( i = 1; i <= trecho.length; i++ ) {ch = trecho.substr( i-1, 1 ); if (ch == ".") { email_val = true; break;} else {email_val = false;} }
		if(email.indexOf("@")==-1){email_val = false;}
		if(!email_val){ return 0; }else{ return 1; }
	}else{
		return 1;
	}
}

/* 
    funçao que valida a data no formato dd/mm/aaaa
	rafael baena neto
*/
function checkValidDate(dateStr) {
   var format = "DMY";
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}

/*
    funçoes que valida CNPJ
	usar VerifyCNPJ(CNPJ);
*/



/*****************************************************************
/* Autor: Fábio Pedrosa
/* Permite somente números
/******************************************************************/
function blockChars(){
	if (event.keyCode < 48 || event.keyCode > 57){ 
		event.returnValue = false;
	}
}

/*Auto-Tab*/
var Navegador = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e) {
	var keyCode = (Navegador) ? e.which : e.keyCode; 
	var filter = (Navegador) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];

	if(input.value.length >= len && !contaElementos(filter,keyCode)) {
			input.value = input.value.slice(0, len);
			input.form[(pegaIndex(input)+1) % input.form.length].focus();
	}

function contaElementos(arr, ele) {
	var found = false, index = 0;
	while(!found && index < arr.length)
		if(arr[index] == ele)
			found = true;
		else
			index++;
		return found;
	}

function pegaIndex(input) {
	var index = -1, i = 0, found = false;
		while (i < input.form.length && index == -1)
			if (input.form[i] == input)index = i;
			else i++;
			return index;
		}
	return true;
}

/*================================================================*/
/* Localizacao do Arquivo: lib\js\validacao.js
/* Responsavel: Sabrina Somavilla   Ultima Atualizacao: 19/10/2004
/* Escopo: func_calc_age(dia, mes, ano)
/* ---------------------------------------------------------------
/* Função calcula idade à partir de data de nascimento recebida 
/* como parâmetro
/* Parâmetros: inteiros dia, mês e ano 
/* 			   (dia e mês -> 2 digitos, ano -> 4 digitos)
/* Retorno: inteiro positivo correspondendo à idade -> p/ datas válidas
/* 			(-1) -> para datas inválidas
/*===============================================================*/
function func_calc_age(dd, mm, yy){
	//var msg_err = "Data Inválida";
	var date_system = new Date(); 	// Obtem data do sistema onde o JavaScript está sendo executado
	var dd_atual = date_system.getDate(); 
	var mm_atual = date_system.getMonth(); 
	mm_atual++;
	var yy_atual = date_system.getFullYear();
	var age;
	if (!func_val_date(dd,mm,yy)){
		age = yy_atual - yy 
		if( (mm_atual<mm) || ((mm_atual==mm) && (dd_atual<dd)) ){
			age--;
		}
		return(age);	
	} else {
		return(-1);
	}
}

/*======================================================================*/
/* Localizacao do Arquivo: lib\js\validacao.js
/* Responsavel: Sabrina Somavilla   Ultima Atualizacao: 19/10/2004
/* Escopo: func_calc_age(dia, mes, ano)
/* -----------------------------------------------------------------------
/* Função verifica se a data recebida como parâmetro é uma data válida,
/* considera como ano mínimo permitido 1900 e, opcionalmente, o máximo
/* como o ano corrente - neste caso necessario inserir a condição indicada.
/* Testa se mês (entre 1 e 12) dias (válidos para cada mês: 30 ou 31 e 
/* 28 ou 29 para fevereiro - verificando se ano é bissesto.
/* Retorno: TRUE p/ data inválida e FALSE p/ data válida
/* Obs.: campos em branco serão considerados inválidos
/* Utiliza as funções: func_year_biss(yy) e numero(xx) 
/*=======================================================================*/
function func_val_date(dd, mm, yy){

	var y_min = 1900; 	// Especifica ano mínimo válido na regra de negócio 
	//	var date_system = new Date();
	// var y_max = date_system.getFullYear(); // Especifica ano corrente como máximo válido na regra de negócio
	var is_err=false ;

	if ( numero(dd) && numero(mm) && numero(yy) ){
		// necessário inserir   ||(yy > y_max) ||  na linha abaixo se utilizar y_max
		// opcionalmente .. || (dd.length <=1) || (dd.length <=1) || ... ==>  se necessária a digitação do zero para meses e dias menores que 10
		if ((mm < 1) || (mm > 12) || (dd < 1) || (dd > 31) || (yy < y_min) || (mm == "") || (dd == "") || (yy == "") || (yy.length <=3)){
			is_err=true;
			//alert("if 1");
		} else if (((mm == 4) || (mm == 6) || (mm == 9) || (mm == 11)) && (dd > 30)){
			is_err=true;
			//alert("if 2");
		} else if ((mm==2) && (dd > 29)){
			is_err=true;
			//alert("if 3");
		} else if( (mm==2) && (dd > 28) && (!func_year_biss(yy)) ){
			is_err=true;
			//alert("if 4");
		}
	} else {
		is_err=true;
	}
	return(is_err);
}

/* Função p/ Validar Data e voltar focalizada nos campos caso ocorra erro 
   Autor Fábio Pedrosa
*/

function valdate(dd, mm, yy, ymax, ymin){
		
		vdd = eval("document.forms[0]."  +  dd  + ".value"); 
		vmm = eval("document.forms[0]."  +  mm  + ".value"); 
		vyy = eval("document.forms[0]."  +  yy  + ".value"); 

		verro = 0; 
		
		if (  vdd < 1  ||  vdd > 31  ||  vdd == ""  ||  isNaN(vdd)  ||  vdd.length <=1  ){
			alert("Campo Dia contém valor inválido");
			eval("document.forms[0]."  +  dd  + ".focus()");

			verro = 1;
			return verro;			
		}
		if ( ( vmm == 4  || vmm == 6 || vmm == 9 || vmm == 11 ) && ( vdd > 30 ) ){
			alert("Campo Dia contém valor inválido");
			eval("document.forms[0]."  +  dd  + ".focus()");
			verro = 1;
			
			return verro;			
		}
		if (vmm == 2 && vdd > 29){
			alert("Campo Dia contém valor inválido");
			eval("document.forms[0]."  +  dd  + ".focus()");
			verro = 1;
			
			return verro;			
		}
		if ( ( vmm == 2  && vdd > 28 ) && ( !func_year_biss(vyy) ) ){
			alert("Campo Dia contém valor inválido");
			eval("document.forms[0]."  +  dd  + ".focus()");
			verro = 1;
			
			return verro;			
		}
		if ( vmm < 1 || vmm > 12 || vmm == "" || isNaN(vmm) || vmm.length <= 1 ){
			alert("Campo Mes contém valor inválido");
			eval("document.forms[0]."  +  mm  + ".focus()");
			verro = 1;
			
			return verro;			
		}
		if ( vyy < ymin ||  vyy == "" ||  vyy > ymax || isNaN(vyy) || vyy.length < 4 ){
			alert("Campo Ano contém valor inválido");
			eval("document.forms[0]."  +  yy  + ".focus()");
			verro = 1;
			
			return verro;			
		}
		return verro;
}

/* Função p/ Validar Data e voltar focalizada nos campos caso ocorra erro 
   Autor Uilson
   Modo de Uso: Crie no php a data atual a ser passada para a função
   				Essa data terá os parametros Ymd,ou seja, ano, mes e dia.
*/
function NowAdays(dd, mm, yy, ymin, da){
		
		vdd = eval("document.forms[0]."  +  dd  + ".value"); 
		vmm = eval("document.forms[0]."  +  mm  + ".value"); 
		vyy = eval("document.forms[0]."  +  yy  + ".value"); 
		vdata = vyy + vmm + vdd;

		verro = 0; 
		
		if ( vdata <= da ){
			alert("Data informada não pode ser menor que a Data atual");
			eval("document.forms[0]."  +  dd  + ".focus()");
			verro = 1;
				return verro;			
		}
		if (  vdd < 1  ||  vdd > 31  ||  vdd == ""  ||  isNaN(vdd)  ||  vdd.length <=1  ){
				alert("Campo Dia contém valor inválido");
				eval("document.forms[0]."  +  dd  + ".focus()");
				verro = 1;
				return verro;			
		}
		if ( ( vmm == 4  || vmm == 6 || vmm == 9 || vmm == 11 ) && ( vdd > 30 ) ){
			alert("Campo Dia contém valor inválido");
			eval("document.forms[0]."  +  dd  + ".focus()");
			verro = 1;
			return verro;			
		}
		if (vmm == 2 && vdd > 29){
			alert("Campo Dia contém valor inválido");
			eval("document.forms[0]."  +  dd  + ".focus()");
			verro = 1;
			return verro;			
		}
		if ( ( vmm == 2  && vdd > 28 ) && ( !func_year_biss(vyy) ) ){
			alert("Campo Dia contém valor inválido");
			eval("document.forms[0]."  +  dd  + ".focus()");
			verro = 1;
			return verro;			
		}
		if ( vmm < 1 || vmm > 12 || vmm == "" || isNaN(vmm) || vmm.length <= 1 ){
			alert("Campo Mes contém valor inválido");
			eval("document.forms[0]."  +  mm  + ".focus()");
			verro = 1;
			return verro;			
		}
		if ( vyy < ymin ||  vyy == ""  || isNaN(vyy) || vyy.length < 4 ){
			alert("Campo Ano contém valor inválido");
			eval("document.forms[0]."  +  yy  + ".focus()");
			verro = 1;
			return verro;			
		}
		return verro;
}


/*======================================================================*/
/* Localizacao do Arquivo: lib\js\validacao.js
/* Responsavel: Sabrina Somavilla   Ultima Atualizacao: 12/10/2004
/* Escopo: func_val_date(dia, mês, ano, ano_corrente)
/* -----------------------------------------------------------------------
/* Função verifica se ano é bissesto
/* Parâmetro: ano com 4 dígitos
/* Retorno: true p/ bissexto - false caso contrário
/*=======================================================================*/
function func_year_biss(y){
	if((y % 4 == 0) && (y % 100 != 0 || y % 400 == 0) ){
		return true;
	} else {
		return false;
	}
}
/*========================================================*/
/* fim da função 	func_calc_age(dd, mm, yy)
/*========================================================*/


/*======================================================================*/
/* Responsavel: Bruno Nakanishi   Ultima Atualizacao: 25/10/2004
/* Escopo: trim(string)
/* -----------------------------------------------------------------------
/* Remove o espaço em branco do início e fim da string
/*=======================================================================*/
function trim(inputString) {
	if (typeof inputString != "string") { return inputString; }
		var retValue = inputString;
		var ch = retValue.substring(0, 1);
		while (ch == " ") { 
			retValue = retValue.substring(1, retValue.length);
			ch = retValue.substring(0, 1);
		}
		ch = retValue.substring(retValue.length-1, retValue.length);
		while (ch == " ") { 
			retValue = retValue.substring(0, retValue.length-1);
			ch = retValue.substring(retValue.length-1, retValue.length);
		}
		while (retValue.indexOf("  ") != -1) { 
			retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
		}
	return retValue; 
}

/*======================================================================*/
/* Responsavel: Bruno Nakanishi   Ultima Atualizacao: 25/10/2004
/* Escopo: chars_only() ex: OnKeyPress = chars_only();
/* -----------------------------------------------------------------------
/* É permitido digitar apenas caracteres e espaço
/*=======================================================================*/
function chars_only(){
    if ( (event.keyCode >= 97 && event.keyCode <= 122 ) || (event.keyCode >= 65 && event.keyCode <= 90) || event.keyCode == 32){
        event.returnValue = true;
    } else {
        event.returnValue = false;
    }
}

/*======================================================================*/
/* Responsavel: Bruno Nakanishi   Ultima Atualizacao: 25/10/2004
/* Escopo: num_only() ex: OnKeyPress = num_only();
/* -----------------------------------------------------------------------
/* É permitido digitar apenas numero
/*=======================================================================*/
function num_only(){
    if ( (event.keyCode >= 48 && event.keyCode <= 57 ) ){
        event.returnValue = true;
    } else {
        event.returnValue = false;
    }
}

/*======================================================================*/
/* Confere se username foi modificado*/

function username_cliente(){
    user = "1";
}


/*======================================================================*/
/* Modifica Confere se username foi modificado*/

function cpfcnpj_cliente(valor){
    if (user == "0") {
		cadastro['dados[username]'].value=valor;
    }
}


function valida_mascara(obj,tipo){
 codigo = event.keyCode;
 
 if((!(codigo>=35 && codigo<=40)) && codigo!=9 && codigo!=16 && codigo!=46 && codigo!=8){
  switch(tipo){
   case "moeda":
    obj.value = mascara_moeda(obj.value);
   break;
   case "data":
    obj.value = mascara_data(obj.value);
   break;
   case "data_pa":
    obj.value = mascara_data_pa(obj.value);
   break;
   case "cep":
	obj.value = mascara_cep(obj.value);
   break;
   case "numero":
    //alert('ok');
    obj.value = mascara_numero(obj.value);
   break;
   case "cnpj_final":
	obj.value = mascara_cnpj_final(obj.value);
   break;
   default:
    //alert('erro');
    obj.value = mascara_cnpjcpf(obj.value);
   break;
  }
 }
}
 
function mascara_cnpj_final(obj_valor){
 // deixa somente os valores
 return mascara_cnpj_final(obj_valor);
 
}

function mascara_cnpj_final(obj_valor){
 // deixa somente os valores
 valor_limpo = limpa_valor(obj_valor);
 
 // coloca os pontos no lugar certo
 valor_formatado = '';
 for(j=0, i=valor_limpo.length-1; i>=0; j++,i--){
  if(j==2){
   valor_formatado = '-' + valor_formatado;
  }
  valor_formatado = valor_limpo.charAt(i)+''+valor_formatado;
 }
 return valor_formatado;
}


function mascara_cnpjcpf(obj_valor){
 // deixa somente os valores
 valor_limpo = limpa_valor(obj_valor);
 
 if(valor_limpo.length>11){
  return mascara_cnpj(obj_valor);
 }else{
  return mascara_cpf(obj_valor);
 }
}
 
function mascara_cnpj(obj_valor){
 // deixa somente os valores
 valor_limpo = limpa_valor(obj_valor);
 
 // coloca os pontos no lugar certo
 valor_formatado = '';
 for(j=0, i=valor_limpo.length-1; i>=0; j++,i--){
  if(j==2){
   valor_formatado = '-' + valor_formatado;
  }else{
   if(j==6) {
    valor_formatado = '/' + valor_formatado;
   }
   if(j>6 && j%3==0){
    valor_formatado = '.' + valor_formatado;
   }
  }
  valor_formatado = valor_limpo.charAt(i)+''+valor_formatado;
 }
 return valor_formatado;
}
 

function mascara_numero(obj_valor){
	// deixa somente os valores
	valor_limpo = limpa_valor(obj_valor);

	// coloca os pontos no lugar certo
	valor_formatado = '';
	for(j=0, i=valor_limpo.length-1; i>=0; j++,i--){
		//if(j==3){
		//	valor_formatado = '-' + valor_formatado;
		//}
		valor_formatado = valor_limpo.charAt(i)+''+valor_formatado;
	}
	return valor_formatado;
}


function mascara_cep(obj_valor){
	// deixa somente os valores
	valor_limpo = limpa_valor(obj_valor);

	// coloca os pontos no lugar certo
	valor_formatado = '';
	for(j=0, i=valor_limpo.length-1; i>=0; j++,i--){
		if(j==3){
			valor_formatado = '-' + valor_formatado;
		}
		valor_formatado = valor_limpo.charAt(i)+''+valor_formatado;
	}
	return valor_formatado;
}

function mascara_cpf(obj_valor){
 // deixa somente os valores
 valor_limpo = limpa_valor(obj_valor);
 
 // coloca os pontos no lugar certo
 valor_formatado = '';
 for(j=0, i=valor_limpo.length-1; i>=0; j++,i--){
  if(j==2){
   valor_formatado = '-' + valor_formatado;
  }else{
   if(j==5) j=6;// para acertar de 3 em 3 daqui por diante
   if(j>3 && j%3==0){
    valor_formatado = '.' + valor_formatado;
   }
  }
  valor_formatado = valor_limpo.charAt(i)+''+valor_formatado;
 }
 return valor_formatado;
}
 
function limpa_valor(obj_valor){
 // deixa somente os valores
 valor_limpo = '';
 for(i=0;i<obj_valor.length;i++){
  if(obj_valor.charAt(i)>=0 && obj_valor.charAt(i)<=9){
   valor_limpo = valor_limpo + "" + obj_valor.charAt(i);
  }
 }
 return valor_limpo;
}
 
function mascara_moeda(obj_valor){
 // deixa somente os valores
 valor_limpo = limpa_valor(obj_valor);

 // coloca os pontos no lugar certo
 valor_formatado = '';
 for(j=0, i=valor_limpo.length-1; i>=0; j++,i--){
  if(j==2){
   valor_formatado = ',' + valor_formatado;
  }else{
   if(j==5) j=6;// para acertar de 3 em 3 daqui por diante
   if(j>3 && j%3==0){
    valor_formatado = '.' + valor_formatado;
   }
  }
  valor_formatado = valor_limpo.charAt(i)+''+valor_formatado;
 }
 return valor_formatado;
}
 
function mascara_data(obj_valor){
 // deixa somente os valores
 valor_limpo = limpa_valor(obj_valor);
 
 // coloca os pontos no lugar certo
 valor_formatado = '';
 for(i=0;i<valor_limpo.length;i++){
  barra = '';
  if(i==1) barra = '/';
  if(i==3) barra = '/';
  valor_formatado += valor_limpo.charAt(i)+''+barra;
 }
 return valor_formatado;
}

function mascara_data_pa(obj_valor){
 // deixa somente os valores
 valor_limpo = limpa_valor(obj_valor);
 
 // coloca os pontos no lugar certo
 valor_formatado = '';
 for(i=0;i<valor_limpo.length;i++){
  barra = '';
  if(i==1) barra = '/';
  if(i==6) barra = '/';
  valor_formatado += valor_limpo.charAt(i)+''+barra;
 }
 return valor_formatado;
}
 
function ehnumero(codigo){
 if( (codigo>=96 && codigo<=105) || (codigo>=48 && codigo<=57) || (codigo>=35 && codigo<=40) || codigo==8 || codigo==9 || codigo==13 || codigo==46){
  return true;
 }else{
  return false;
 }
}
 
function tiraespacos(tmpStr){
  var tmpStr, atChar;
  if (tmpStr.length > 0) atChar = tmpStr.charAt(0);
  while (isSpace(atChar))
  {
  tmpStr = tmpStr.substring(1, tmpStr.length);
 atChar = tmpStr.charAt(0);
  }
  if (tmpStr.length > 0)
    atChar = tmpStr.charAt(tmpStr.length-1);
  while (isSpace(atChar))
  {
 tmpStr = tmpStr.substring(0,(tmpStr.length-1));
 atChar = tmpStr.charAt(tmpStr.length-1);
  }
  return tmpStr;
}
      
function isSpace(inChar){
  return (inChar == ' ' || inChar == '\t' || inChar == '\n');
}

function redimensionaImg(o,alturamaxima,larguramaxima){
try{
	obj = document.getElementById(o);
	spanImg.style.overflow = '';
		if(obj.width > larguramaxima || obj.height > alturamaxima){
			x=obj.width/larguramaxima;
			y=obj.height/alturamaxima;
			if(x > y){
				razao=x;
			}else{
				razao=y;
			}
			nova_altura=obj.height/razao;
			nova_largura=obj.width/razao;
		}
	obj.width=nova_largura;
	obj.height=nova_altura;
	spanImg.width = obj.width;
	spanImg.height = obj.height;
}catch(e){
erro=1;
}
}

// formato da data: dd/mm/aaaa
function dataformato1(data,obj){
	arData = data.split("/");
	if(arData.length!=3) return false;
	retorno = verificadata(arData[0],arData[1],arData[2]);
	if(!retorno){
		alert('Data inválida!');
		obj.focus();
	}
	return retorno;
}

function verificadata(dia,mes,ano){
	var x = true;
	if(mes<1 || mes>12) x= false;
	
	if(mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12){
		if(dia>=1 && dia<=31) x = true;
		else x = false;
	}
	
	if(mes==4 || mes==6 || mes==9 || mes==11){
		if(dia>=1 && dia<=30) x = true;
		else x = false;
    }
	
	if(mes==2){
		if(ano%4==0){
			if(dia>=1 && dia<=29) x = true;
			else x = false;
		}else{
			if(dia>=1 && dia<=28) x = true;
			else x = false;
		}
    }
	
	if(x==true) return true;
	else return false;
}
