/*Auto-Tab*/
var Navegador = (navigator.appName.indexOf("Netscape")!=-1);

function submit_enq(opt)
{
	var wWin = window.open("/enquete.php/" + opt,"popupEnq","width=300,height=300,scrollbars=1");
	wWin.focus();
	form_enquete.action = "/enquete.php/" + opt;
	form_enquete.submit();
}

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;
}

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_val){ return 0; }else{ return 1; }
	}else{
		return 1;
	}
}

function consistencia(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){
			//--	Validação: Branco
			//--	Valida se o campo esta em branco
			case "branco": 
				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( erro != 1 ) { erro = 0; }
				}
				break;
			//--	Validação: cpf
			//--	Valida o campo CPF, obrigatório
			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 ){
					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 "email_branco":
				if( ValidaEmail(form[cont].value) == 0 || form[cont].value == ""){
					str_erro = str_erro + "Campo " + form[cont].lang + " contém valor inválido.\n" ;
					if(erro == 0){ foco = cont; form[foco].focus(); }
					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;
}

function num_only(){
    if ( (event.keyCode >= 48 && event.keyCode <= 57 ) ){
        event.returnValue = true;
    } else {
        event.returnValue = false;
    }
}
