// JavaScript Document

/*
 * Conjunto de funções para ações diversas e validações
 */
 
 	/*
	// retorna o campo sem os espaços em branco
	function trim(campo){
		var campoAnt = campo.value;
		alert(campo.value);
		var campoNov = '';
		for(i=0;i<campoAnt.length;i++){
			if(campoAnt.charAt(i) != ' '){
				campoNov += campoAnt.charAt(i);
			}
		}
		return campoNov;
	}
	*/

	// retorna true se os campos forem iguais e do contrário false
	function confirmarSenha(campo1,campo2) {
		var val1 = campo1.value;
		var val2 = campo2.value;
		 if (val1.length >= 6) {
			if (val1 != val2) {
				alert('A senha não confere');
				campo2.value='';
				campo1.value='';
				campo1.focus();
				return false;
			} else {
				return true;
			}
		} else {
				alert('Verifique o número de caracteres da senha');
				campo2.value='';
				campo1.value='';
				campo1.focus();
				return false;
		}
	}

	// escreve o horário
	function horario() {
		var data = new Date();
		var hora = data.getHours();	
		var minuto = data.getMinutes();	
		var segundo = data.getSeconds();	
			if (hora < 10) {	
				hora = "0"+hora;
			}
			if (minuto < 10) {
				minuto = "0"+minuto;	
			}
			if (segundo < 10) {
				segundo = "0"+segundo;
		}
			document.all['hora'].innerText =hora+":"+minuto+":"+segundo;
			setTimeout ('horario()',1000);
	}					

	// escreve a saudação conforme o horário
	function saudacao() {
		var data = new Date();
		var hora = data.getHours();	
		var dias = data.getDay();
		var cumprimento = '';
		var nomedia = new Array();
		nomedia[0] = "domingo";
		nomedia[1] = "segunda-feira";
		nomedia[2] = "terça-feira";
		nomedia[3] = "quarta-feira";
		nomedia[4] = "quinta-feira";
		nomedia[5] = "sexta-feira";
		nomedia[6] = "sábado";
			if (hora > 0 &&	hora < 6 ) { cumprimento = 'Bom dia'; }
			if (hora >= 6 && hora < 12 ) { cumprimento = 'Bom dia';	}
			if (hora >= 12 && hora < 18 ) { cumprimento = 'Boa tarde'; }
			if (hora >= 18 && hora <= 23  ) { cumprimento = 'Boa noite'; }
			//document.write(cumprimento+" "+nomedia[dias]);
			document.write(cumprimento);
	}
	
	// escreve uma saudação na barra de status
	function barra(esp_atual,esp_inic) {
		if (esp_atual == 0 ) esp_atual = esp_inic;
		var txt = '';	
		for ( i = 0 ; i <= esp_atual ; i++) {
			txt +=' ';
		}
		txt += 'Bem Vindo a Genêve';
		window.status = txt;
		setTimeout('barra('+ (esp_atual-1)+','+esp_inic+')',100); 
	}
	
	// redireciona para a página determinada
	function Pagina(){
		if (self == parent){ parent.location = "../lib/Fachada.php?acao=index"; }
	}
	
	// converte o campo para maiúsculas
	function maiuscula(campo){
		var val = campo.value;
		campo.value = val.toUpperCase();
	}
	
	// converte o campo para minúsculas
	function minuscula(campo){
		var val = campo.value;
		campo.value = val.toLowerCase();
	}
	
	// só permite a digitação de números
	function soNumero(campo){  
		var digits="0123456789.-"  
		var campo_temp   
		
		for (var i=0;i<campo.value.length;i++){  
			campo_temp=campo.value.substring(i,i+1)   
			if (digits.indexOf(campo_temp)==-1){  
				campo.value = campo.value.substring(0,i);  
			}  
		}  
	}  	
	/*
	function soNumero( campo ) {
    	if(((event.keyCode < 48) || (event.keyCode > 57)) && event.KeyCode != 8 && event.KeyCode !=13  ) {
        	campo.focus();
	        event.returnValue = false;
    	}
	}
	*/
	
	// limpa o value do campo
	function limpar(campo) {
		campo.value = "";
		campo.focus();
	}

	// desativa o select se a opção selecionada for outro
 	function reloadDesativar(campo1,campo2){
		var	val = campo1.value;
		if (val == "outro" ) {
			campo2.disabled = false;
			campo2.focus();
		} else {
			campo2.value = '';
			campo2.disabled = true;
		}
	}

 	// tabulação automática
	function autoTab(campo1,campo2,qtd) {
		var val = campo1.value;
		if (val.length == qtd) {
			campo2.focus();
		}	
	}

/*
 * Funções para realizar o preenchimento automático de campos
 */
	// preencher campos de telefone no formato xx-xxxx.xxxx
	function autoFone(campo){
		var data = campo.value;
	    var ndata = '';
		ndata = ndata + data;
		if(event.keyCode == 8) { ndata = ""; }
		if (ndata.length == 2) {
		   ndata = ndata + '-';
			campo.value = ndata;
		}
		if (ndata.length == 7) {
		   ndata = ndata + '.';
			campo.value = ndata;
		}
	}
	
	// preencher automaticamente a inscrição estadual
	function autoInscricao( campo ) {
		texto = campo.value;
		if(event.keyCode == 8) { texto = ""; }
		if( parseInt(texto.length) == 2 ) {
			texto += ".";
			campo.value = texto;
		} else if( parseInt(texto.length) == 4 ) {
			texto += ".";
			campo.value = texto;
		} else if( parseInt(texto.length) == 8 ) {
			texto += ".";
			campo.value = texto;
		} else if( parseInt(texto.length) == 16 ) {
			texto += "-";
			campo.value = texto;
		}
	}

	// preencher automaticamente o CPF
	function autoCpf( campo ) {
	    texto = campo.value;		
		//if(event.keyCode == 8) { texto = ""; }
	    if( texto.length == 3 ) {
    	    texto += '.';
	    } else if( texto.length == 7 ) {
	        texto = texto + '.';
	    } else if( texto.length == 11 ) {
    	    texto = texto + '-';
	    }
    	campo.value = texto;
	}

	// preencher automaticamente a data
	function autoData( campo ) {
	    texto = campo.value;
		if(event.keyCode == 8) { texto = ""; }
    	if( texto.length == 2 ) {
	        texto += '/';
    	    campo.value = texto;
	    } else if( texto.length == 5 ) {
	        texto += '/';
	        campo.value = texto;
    	}
	}

	// preencher automaticamente o CEP xxxxx-xxx
	function autoCep( campo ) {
		texto = campo.value;
		if(event.keyCode == 8) { texto = ""; }
		if(texto.length == 5 ) {
			texto += "-";	
		}
		campo.value = texto;
	}

/*
 * Funções que fazem validações da campos
 */
	
	// validando email
	function validarEmail( campo ){
    	if (campo.value !=''){
        	if ( campo.value.indexOf('@')==-1 ||
            	 campo.value.indexOf('.')==-1 ||
	             campo.value.indexOf(' ')!=-1 ||
    	         campo.value.indexOf('@.')!=-1 ||
        	     campo.value.indexOf('.@')!=-1 ||
            	 campo.value.length<6) {
		            alert('E-mail inválido');
        		    //form1.email.select();
		            campo.focus();
        		    return false;
	        }
    	}
	}
	
	// validando select (a opção vázio deve ter value ---)
	function validarSelect( campo, mensagem ) {
    	if( campo.value == '---' ) {
	        alert(mensagem );
    	    campo.focus();
        	return false;
	    } else {
    	    return true;
	    }
	}	

	// verifica se o campo tem no míinimo seis dígitos
	function validarLogin(campo,mensagem) {
	    var val = campo.value;
		if (val.length < 6) {
			alert(mensagem);
			campo.value = "";
			campo.focus();
			return false;		
		} else {
			return true;
		}
	}

	// verifica se o campo não está vázio
	function validarVazio( campo, mensagem ) {
		var campoAnt = campo.value;
		var campoNov = '';
		for(i=0;i<campoAnt.length;i++){
			if(campoAnt.charAt(i) != ' '){
				campoNov += campoAnt.charAt(i);
			}
		}
    	if(campoNov == '' ) {
	        alert(mensagem);
    	    campo.focus();
        	return false;
	    } else {
    	    return true;
	    }
	}

	// validação de CPF
	function validarCpf( campo ) {
		texto = campo.value;
		if( texto != '' ) {
			if( texto.length != 14 ) {
				alert( 'CPF Inválido' );
				campo.focus();
				return false;
			} else {
				return true;
			}
		} else {
			return true;
		}
	}

	// validação de datas
	function validarData( campo ) {
		data = campo.value;
		resultado = true;
		if( data != "" ) {
			if( data.charAt(0) != '0' ) {
				dia = data.charAt(0) + data.charAt(1);
			} else {
				dia =data.charAt(1);
			}
			dia = parseInt(dia);
	
			if( data.charAt(3) != "0" ) {
				mes = data.charAt(3) + data.charAt(4);
			} else {
				mes = data.charAt(4);
			}
			mes = parseInt(mes);
	
			if( data.charAt(6) != '0' && data.charAt(7) != '0' && data.charAt(8) != '0' ) {
				ano = data.charAt(7) + data.charAt(8) + data.charAt(9);
			} else if( data.charAt(7) != '0' && data.charAt(8) != '0' ) {
				ano = data.charAt(8) + data.charAt(9);
			} else if( data.charAt(8) != '0' ) {
				ano = data.charAt(9);
			} else {
				ano = data.charAt(6) + data.charAt(7) + data.charAt(8) + data.charAt(9);
			}
			ano = parseInt(ano);
	
			if( campo.value.length != 10 ) {
				alert( "Data Inválida!\nVerifique a quantidade de dígitos" );
				campo.focus();
				resultado = false;
			} else if( (mes == 4 || mes == 6 || mes == 9 || mes == 11) && dia > 30 ) {
				alert( "Data Inválida!\nEsse mês não permite dia 31" );
				campo.focus();
				resultado = false;
			} else if( mes == 2 && dia > 29 ) {
				alert( "Data Inválida!\nFevereiro não permite dia com esse valor" );
				campo.focus();
				resultado = false;
			} else if( campo.value.charAt( 2 ) != '/' || campo.value.charAt( 5 ) != '/' ) {
				alert( "Data Inválida!\nVerifique o formato da data" );
				campo.focus();
				resultado = false;
			} else if( dia < 1 || dia > 31 ) {
				alert( "Data Inválida!\nVerifique o valor do dia" );
				campo.focus();
				resultado = false;
			} else if( mes < 1 || mes > 12 ) {
				alert( "Data Inválida!\nVerifique o valor do mês" );
				campo.focus();
				resultado = false;
			} else if( ano < 1 ) {
				alert( "Data Inválida!\nVerifique o valor do ano" );
				campo.focus();
				resultado = false;
			}
			return resultado;
		}
	}

	// validação de CEP
	function validarCep( campo ) {
		if( campo.value != '' ) {
			if( campo.value.length != 9 ) {
				alert( "Valor do CEP é inválido" );
				return false;
				campo.focus();
			} else if( campo.value.charAt(0) == '5' ) {
				return true;
			} else {
				//alert( "Valor de CEP inválido não sei" );
				//campo.focus();
				//return false;
			}
		}
	}	

	// validação de inscrição estadual
	function validarInscricao( campo ) {
		resultado = true;
		if( campo.value != '' ) {
			if( campo.value.length != 18 ) {
				resultado = false;
			} else if( campo.value.charAt( 2 ) != '.' ) {
				resultado = false;
			} else if( campo.value.charAt( 4 ) != '.' ) {
				resultado = false;
			} else if( campo.value.charAt( 8 ) != '.' ) {
				resultado = false;
			} else if( campo.value.charAt(16) != '-' ) {
				resultado = false;
			}
		}
	
		if( resultado == false ) {
			alert( 'Inscrição Estadual inválida' );
			campo.focus();
			return false;
		} else {
			return true;
		}
	}

	// validação de campo radio de 4 opções
	function validarRadio(campo){
		if(campo[0].checked == false && campo[1].checked == false &&
		   campo[2].checked == false && campo[3].checked == false){
			alert('Selecione uma opção!');
			return false;			
		} else {
			return true;
		}
	}

/*
 * Seção de preenchimento e validação de CNPJ
 */
	function auto_cnpj( campo ) {
		texto = campo.value;
		if(event.keyCode == 8) { texto = ""; }
		if( parseInt(texto.length) == 8 ) {
			texto += "/";
			campo.value = texto;
		} else if ( parseInt(texto.length) ==13 ) {
			texto += "-";
			campo.value = texto;
		}
	}
	var ncnpj = new Array;

	function valida_cnpj(Form,nForm){
		if (form1.cnpj.value != '') {
			var Campos = eval('document.' + nForm + '.vcnpj.value');
			var Contador = 0;
			var x = 0;
			var i = Campos.indexOf( "," );
			if (i==-1){
				ncnpj[Contador] = Campos.slice(0,Campos.length);
			} else {
				ncnpj[Contador] = Campos.slice(0,i);
				Campos = Campos.slice(i+1,Campos.length);
				//Rotina que recebe os demais campos
				for (;x<Campos.length;x++){
					if (Campos.slice(x,x+1) == ","){
						Contador = Contador + 1;
						ncnpj[Contador] = Campos.slice(0,x);
						Campos = Campos.slice(x+1,Campos.length);
						x = 0;
					}
				}
				ncnpj[ncnpj.length] = Campos;
			}
			x = 0;
			for (;x<ncnpj.length;x++){
				var Obj = eval ("document." + nForm + "." + ncnpj[x])
				if(!verifica_cnpj(Obj)){
				Obj.focus();
				ncnpj = new Array;
				return false;
			}
		}
	}
	return true;
	}

	function verifica_cnpj(S){
		Testa_Tamanho_do_Numero = true;
		Digitos_Verificadores_cnpj = 2;
		Digitos_cnpj = 14; //xx.xxx.xxx/xxxx-xx tem 14 numeros
		/*
		 * Alem de testar os digitos verificadores as funcoes seguintes
		 * tambem devem testar o tamanho dos numeros fornecidos (no caso
		 * desta constante ser True). Se for colocada como False sera'
		 * somente verificada a igualdade dos digitos verificadores.
		*/
		
		// S - é o OBJETO Text e não o valor!!!
		//Verifica se o string esta' ok (CPF ou cnpj)
		
		var Original = Limpa_cnpj(S);
		var Gerado = "";
		var Tamanho = Digitos_cnpj;  //tamanho esperado para o cnpj
		
		teste = (( !Testa_Tamanho_do_Numero) || (Testa_Tamanho_do_Numero && Original.length == Tamanho));
		//alert("Resposta da condição: "+teste);
		if( teste ) {
			//Gerado = Original;
			//retira digitos verificadores
			Gerado = Original.substring( 0, Original.length - Digitos_Verificadores_cnpj )
			Gerado = Completa_cnpj( Gerado ); //Gera numero completo
			
			cnpj_valido = (Gerado == Original) //compara com original
			//alert("Valor de cnpj_valido: "+cnpj_valido)
			if (!cnpj_valido) {
				alert("O CNPJ (cnpj) é inválido, favor corrigi-lo!");
				S.select();
				S.focus();
				return false
			}else{
				return true
			}
		} else {
			alert("A quantidade de números do cnpj é inválida, favor corrigir.");
			S.select();
			S.focus();
			return false    //Nao tem o tamanho certo
		}
	}

	function Limpa_cnpj( S_aux2 ) {
		//Retira tudo o que nao for numero,
		// mas não tira os números do cnpj
		// S_aux2 - é o objeto Text e não o valor. Prestar atenção!!!
		var SAux = '';
		S = S_aux2.value;
		//alert("cnpj: " + S)
		var pos = 0
		for( ; pos < S.length; pos++ ) {
			if( S.charAt(pos) >= '0' && S.charAt(pos) <= '9' ) {
				SAux = SAux + S.charAt(pos);
			}
			return SAux
		}
	}
	//Completa o numero colocando digitos verificadores
	function Completa_cnpj( S ) {
		//   var SAux = Limpa_String(S);
		var SAux = S;
		var Quantos = Digitos_Verificadores_cnpj;
		var c = 1
		for( ; c <= Quantos; c++ ){
			SAux = SAux + Digito_Verificador_cnpj( SAux );
			return SAux
		}
	}
	//Calcula um digito verificador em funcao do numero
	function Digito_Verificador_cnpj( S ) {
		//   S = Limpa_String(S);
		var soma = 0
		var comprimento = S.length
		var i = 1
		for( ; i <= comprimento; i++ ) {
			// fator = 2,3,4,5,6,7,8,9, 2, 3, 4, 5...
			var fator = 2+( (i-1) % 8 );
			soma = soma + parseInt( S.charAt(comprimento-i) ) * fator
		}
		return ((10*soma) % 11) % 10
	}

	function CNPJ(quadro) {	
		texto = quadro.value;
		if( parseInt(texto.length) == 8 ) {
			texto += "/";
			quadro.value = texto;
		} else if ( parseInt(texto.length) ==13 ) {
			texto += "-";
			quadro.value = texto;
		}
	}