/*
=========================================================================================
Biblioteca de funções JavaScript - Testadas em IE7 e FireFox 2.0
Programador - Marcos
Data de criação.: 09/06/2008
Manutenção.: Marcos - 10/06/2008 - Inclusão de função clickBtnFecharModal()
=========================================================================================
*/
/*Validação de CPF*/
	function VerificarCPF(Objcpf) {
		var cpf = Objcpf.value;
		if ((cpf == "00000000000")
	 	||  (cpf == "11111111111")
		||  (cpf == "22222222222")
		||  (cpf == "33333333333")
		||  (cpf == "44444444444")
		||  (cpf == "55555555555")
		||  (cpf == "66666666666")
		||  (cpf == "77777777777")
		||  (cpf == "88888888888")
		||  (cpf == "99999999999")
		||  (parseInt(Objcpf.value.toString().length) < 11)) {
			alert('CPF Invalido!, digite onze numeros para o nº do documento. \n Caso seja necessário insira zeros no inicio do número.');
			Objcpf.focus();
			return false;
		} else {
			if(cpf != "") {
				var i;
				exp = /\.|\-/g
		      cpf = cpf.toString().replace( exp, "" );
				s = cpf;
				var c  = s.substr(0,9);
				var dv = s.substr(9,2);
				var d1 = 0;
				var v = false;
				for (i = 0; i < 9; i++)	{
					d1 += c.charAt(i)*(10-i);
				}
				if (d1 == 0) {
					alert("CPF Inválido");
					v = true;
					Objcpf.focus();
					return false;
				}
				d1 = 11 - (d1 % 11);
				if (d1 > 9) d1 = 0;
				if (dv.charAt(0) != d1)	{
					alert("CPF Inválido")
					v = true;
					Objcpf.focus();
					return false;
				}
				d1 *= 2;
				for (i = 0; i < 9; i++)	{
					d1 += c.charAt(i)*(11-i);
				}
				d1 = 11 - (d1 % 11);
				if (d1 > 9) d1 = 0;
				if (dv.charAt(1) != d1)	{
					alert("CPF Inválido")
					v = true;
					Objcpf.focus();
					return false;
				}
				if (!v) {
					return true;
				}
         }
		}
	}
	/*Formata Entrada de valores com separadores de milhares e decimais*/
	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
	  	if (whichCode == 8) return true;  // Delete
	  	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;
	}

	/*Função para fechar Janela Modal Prototype.*/
	function clickBtnFecharModal() {
		parent.hidePopWin(false);
	}


	function teste() {
		if(window.event.keyCode == 27) {
			parent.hidePopWin(false);
		}
	}
	//Valida E-mail
	function checaEmail(nform) {
		if (nform.value == "") {
			return false;
		} else {
			prim = nform.value.indexOf("@")
			if(prim < 2) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("@",prim + 1) != -1) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf(".") < 1) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf(" ") != -1) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("zipmeil.com") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("hotmeil.com") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("hotmail.com.") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("gmail.com.") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf(".@") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("@.") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf(".com.br.") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf(".combr") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("/") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("[") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("]") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("(") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf(")") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
			if(nform.value.indexOf("..") > 0) {
				alert("O e-mail informado parece não estar correto.");
				nform.focus();
				nform.select();
				return false;
			}
		}
	}
	function validarData(objdat) {
		/*var date = document.getElementById('data').value;*/
		var date = objdat.value;
		var array_data = new Array;
		var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
		//vetor que contem o dia o mes e o ano
		array_data = date.split("/");
		erro = false;
		//Valido se a data esta no formato dd/mm/yyyy e se o dia tem 2 digitos e esta entre 01 e 31
		//se o mes tem d2 digitos e esta entre 01 e 12 e o ano se tem 4 digitos e esta entre 1000 e 2999
		if (date.search(ExpReg) == -1)
			erro = true;
		//Valido os meses que nao tem 31 dias com execao de fevereiro
		else if ( ( ( array_data[1] == 4 ) || ( array_data[1] == 6 ) || ( array_data[1] == 9 ) || ( array_data[1] == 11 ) ) && ( array_data[0] > 30 ) )
			erro = true;
		//Valido o mes de fevereiro
		else if ( array_data[1] == 2 ) {
			//Valido ano que nao e bissexto
			if ( ( array_data[0] > 28 ) && ( ( array_data[2] % 4 ) != 0 ) )
				erro = true;
			//Valido ano bissexto
			if ( ( array_data[0] > 29 ) && ( ( array_data[2] % 4 ) == 0 ) )
				erro = true;
		}
		if ( erro ) {
			/*alert("Data Invalida");
			form1.data.focus();*/
			return false;
		} else {
			/*alert("Data OK!!!!!!!");*/
			return true;
		}
	}
	function VerificaRadioButton(objForm) {
		var qtde_selecionada = 0;
		for(x=0; x<objForm.elements.length; x++) {
			if(objForm.elements[x].type == "radio") {
				if(objForm.elements[x].checked == true) {
					qtde_selecionada++;
			   }
			}
		}
		if ((qtde_selecionada) == 0) {
			return false;
		} else {
			return true;
		}
	}
	/*
	Função para validação de entrada de dados.
	Marcos - 04/09/08
	Recebe os seguintes parametros.
	obj = objeto a ser validado.
	tipo = Direciona a string que contêm os caracteres válidos para a validação.
	1 = Permite Somente Letras com Acentos e caracteres (& E comercial) (- traço) (. ponto)
	2 = Permite Letras com Acentos e Numeros e caracteres (. ponto)
	3 = Permite Somentes Numeros e caracteres (- Traço) (. ponto) (() Parenteses)
	4 = Permite Somente Letras com Acentos e caracteres (& E comercial) (- traço) (. ponto) (@ arroba)
	*/
	function validaChar(objId, tipo, nomeCampo) {
		strtmp = document.getElementById(objId).value;
		errMsg = ""; //Variavel Que Recebe O Retorno De Erro Da Expressao Regular
		var caracteresValidos = "";
		if ((tipo.length == 0) || (tipo > 4)) {
			alert("Informe um tipo válido para a checagem de caracteres, valores permitidos de 1 a 4.")
			return false;
      }
		if (parseInt(tipo) == 1) {
			caracteresValidos = " abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙê&-.";
			errMsg = "Somente a digitação de letras e acentuações são válidas para esse campo " + nomeCampo + ", confira.";
      }
		if (parseInt(tipo) == 2) {
			caracteresValidos = " 0123456789abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙê&-.";
			errMsg = "Somente a digitação de letras, números e acentuações são válidas para esse campo " + nomeCampo + ", confira.";
      }
		if (parseInt(tipo) == 3) {
			caracteresValidos = "0123456789-().,";
			errMsg = "Somente a digitação de números e caracteres /n (-traço) (()Parentêses) (. ponto) (, vírgula) são válidas para esse campo " + nomeCampo + ", confira.";
      }
		if (parseInt(tipo) == 4) {
			caracteresValidos = "@-_.0123456789abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZ";
			errMsg = "Somente a digitação de letras, números e caracteres (@ arroba) (- traço) (. ponto) (_ subescrito)) são válidas para esse campo " + nomeCampo + ", confira.";
      }
		var contadorCaracteresInvalidos = 0;
		var conteudoValido = "";
		for (var i=0; i < strtmp.length; i++) {
			caracterPosicao = strtmp.substring(i,i+1);
			if (caracteresValidos.indexOf(caracterPosicao) < 0) {
				contadorCaracteresInvalidos++;
			} else {
				conteudoValido += caracterPosicao;
         }
			
		}
		if(contadorCaracteresInvalidos != 0) {
			//alert("Este campo somente aceita letras e acentuação.");
			document.getElementById(objId).value = conteudoValido;
			alert(errMsg);
			return false;
      } else {
			return true;
		}
	}

