/*
*********************************************************************************************************
*	P Á G I N A :   F U N C O E S   J A V A S C R I P T   G E R A I S 									*
*	DATA CRIAÇÃO: 13/02/2006																			*
*	DESENVOLVIMENTO: ALEX E JADERSON																	*
*********************************************************************************************************
*/

// JavaScript Document
	<!--

		function MM_openBrWindow(theURL,winName,features) { //v2.0
		  window.open(theURL,winName,features);
		}

		function recarrega(form,campos_zera,ancora) {
			// form = formulario
			// campo_zera = campo que quer zerar
			eval("document."+form+".acao").value = "recarregamento"; // o formulario tem que ter esse campo hiddem, que recebe o valor que indica que a pagina está sendo recarregada

			if (campos_zera != "") {
				campos_obj = new String(campos_zera); // transforma em OBJETO
				campos_vet = campos_obj.split(","); //converte em vetor
				tam = campos_vet.length; //pega o tamanho do array
				for(var i=0;i<=(tam-1);i++) { // limpa todos os campos do vetor
//					alert(form+"."+campos_vet[i]);
					if (document.getElementById(campos_vet[i]) != null) {
						var obj = document.getElementById(campos_vet[i]);
						var obj_tipo = obj.type;
//						alert("limpo: " + campos_vet[i] + ", tipo: " + obj_tipo);
						
						if (obj_tipo == 'text' || obj_tipo == 'select-one' || obj_tipo == 'hidden') {
								obj.value = "";
						} else if (obj_tipo == 'radio') {
								var vradio = eval("document."+form+"."+campos_vet[i]);
								var tam_vradio = vradio.length;
								for (var j=0; j<tam_vradio; j++) {
									vradio[j].checked = false;
								}	
						}
						
					}
					
				}
			} //zera algum campo se necessario
			
			if (ancora != "") { //se tiver ancora, configura o parametro no formulario
				pagina = eval("document."+form).action; //pega o nome da pagina
				eval("document."+form).action = pagina + "#" + ancora; // acrescenta a ancora
			} 
			
			eval("document."+form).submit(); // submete o form
		}


		function pula_campo (formulario,campo,limite,proximo_campo) {
			// campo = campo que quer verificar
			// limite = com quantos caracteres pula pra outro campo
			// proximo_campo = campo que recebera o foco quando trocar de campo
			campo = eval("document."+formulario+"."+campo).value;
			if (campo.length >= limite) { eval("document."+formulario+"."+proximo_campo).focus(); }
		}
		
		function bloqueia_str() {
			if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;
		}
		
		function bloqueia_letras() {
			if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 40 && event.keyCode != 41 && event.keyCode != 45 && event.keyCode != 46 && event.keyCode != 58 && event.keyCode != 120)) event.returnValue = false;
		}		
		
		function monetario() {
		   if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 44) && (event.keyCode != 46)) event.returnValue = false;
		 }
		 
		 function letras_numeros () {
		   if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122))  event.returnValue = false;
		 }

		function destroy_espace(obj)
		 {
		   tam = obj.length;
		   for(var cont=0;cont<=tam;cont++) {
				obj = obj.replace(" ",""); }
		   return obj;
		 }

		// FUNCAO NOVA DE VALIDAÇAO DE FORMULARIO
		function valida_form(form,array_campos) {
			// array_campos: array com todos os campos que devem ser validados. Cada posição contem o nome do campo e a mensagem, separados por virgula
			valido = true;
			var str_erro = "";
			for (i=0;i<array_campos.length;i++) { // percorre o vetor de campos pra validar
				var array_linha = array_campos[i].split(","); 
				var campo = array_linha[0]; // nome do campo
				var msg = array_linha[1]; // msg pra exibir caso seja nulo
				
				// valida campo --------------------------------------------------------
				obj = document.getElementById(campo);
				if (obj.type != "radio")	{ //campos normais
					if (destroy_espace(obj.value).length == 0 ) str_erro += "\n- " + msg;
					if (obj.value == "selecione" || obj.value == "0") str_erro += "\n- " + msg;
				} else { // campo radio
					checado = 0;
					var ta = eval("document."+form+"."+campo).length;
					for (x=0;x<ta;x++)	 {
						if (eval("document."+form+"."+campo)[x].checked == true) checado = 1;
					}
					if (checado == 0)  str_erro += "\n- " + msg;
				}
				// fim valida campo------------------------------------------------------
				
			}
			return str_erro;	
		}
		
		function campo_cheio(theForm,theObj) {
			// o campo tipo existe porque se for RADIO, tem que ser tratado de forma diferente
			// nocaso de ser um RADIO, o campo thetamanho recebe o numero de opções do controle
			if (document.getElementById(theObj) != null) {
				obj = document.getElementById(theObj);
				cheio = true;
				if (obj.type != "radio")	{ //campos normais
					if (destroy_espace(obj.value).length == 0 ) cheio = false;
					if (obj.value == "selecione" || obj.value == "0") cheio = false;
				} else { // campo radio
					checado = 0;
					var ta = eval("document."+theForm+"."+theObj).length;
					for (x=0;x<ta;x++)	 {
						if (eval("document."+theForm+"."+theObj)[x].checked == true) checado = 1;
					}
					if (checado == 0)  cheio = false;
				}
			} else {
				cheio = true;
			}
			return cheio;
		 }				
		 
		
	/*** CRIA MASCARAS PARA CAMPOS DE FORMULARIO *** INICIO
	* 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 -> 99.999-999
	* CPF -> 999.999.999-99
	* CNPJ -> 99.999.999/9999-99
	* Data -> 99/99/9999
	* Tel Resid -> (99) 999-9999
	* Tel Cel -> (99) 9999-9999
	* Processo -> 99.999999999/999-99
	* C/C -> 999999-!
	* E por aí vai... 
	***/

	function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
		var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
		if(document.all) { // Internet Explorer
			nTecla = evtKeyPress.keyCode; }
		else if(document.layers) { // 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) == "/"))
			bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
			bolMask = bolMask || ((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;
		}
	}
	/*** CRIA MASCARAS PARA CAMPOS DE FORMULARIO *** FIM ********************* */

	/*** VALIDA CPF E CNPJ *** INICIO **************************************** */
	function ClearStr(string_total, charactere)
	{
	  while((cx=string_total.indexOf(charactere))!=-1)
	  {		
		string_total = string_total.substring(0,cx)+string_total.substring(cx+1);
	  }
	  return(string_total);
	}
	
	function ParseNumb(c)
	{
	  c=ClearStr(c,"-");
	  c=ClearStr(c,"/");
	  c=ClearStr(c,",");
	  c=ClearStr(c,".");
	  c=ClearStr(c,"(");
	  c=ClearStr(c,")");
	  c=ClearStr(c," ");
	  c=ClearStr(c,":");	  
	  if((parseFloat(c) / c != 1))
	  {
		if(parseFloat(c) * c == 0)
		{
		  return(c);
		}
		else
		{
		  return(0);
		}
	  }
	  else
	  {
		return(c);
	  }
	  return(c);
	}
	
	
	
	function Verify(CNUMB,CTYPE)
	// ESTA É A FUNCAO QUE È CHAMADA PELA PAGINA
	// CNUMB = é o valor pr avalidar
	// CTYPE = 'CPF' ou 'CNPJ'
	{
	  CNUMB=ParseNumb(CNUMB)
	  if(CNUMB == 0)
	  {
		return(false);
	  }
	  else
	  {
		g=CNUMB.length-2;
		if(TestDigit(CNUMB,CTYPE,g))
		{
		  g=CNUMB.length-1;
		  if(TestDigit(CNUMB,CTYPE,g))
		  {	
			return(true);
		  }
		  else
		  {
			return(false);
		  }
		}
		else
		{
		  return(false);
		}
	  }
	}
	
	function TestDigit(CNUMB,CTYPE,g)
	{
	  var dig=0;
	  var ind=2;
	  for(f=g;f>0;f--)
	  {
		dig+=parseInt(CNUMB.charAt(f-1))*ind;
		if (CTYPE=='CNPJ')
		{ if(ind>8) {ind=2} else {ind++} }
		else
		{ ind++ }
	  }
	  dig%=11;
	  if(dig<2)
	  {
		dig=0;
	  }
	  else
	  {
		dig=11-dig;
	  }
	  if(dig!=parseInt(CNUMB.charAt(g)))
	  {
		return(false);
	  }
	  else
	  {
		return(true);
	  }
	}
	/*** VALIDA CPF E CNPJ *** FIM ****************************************** */


	/*** VALIDA RG *** INICIO ****************************************** */
	function ValRG(numero)	{
		 var numero = numero.split("");
		 tamanho = numero.length;
		 vetor = new Array(tamanho);
		
		if(tamanho>=1)
		{
		 vetor[0] = parseInt(numero[0]) * 2; 
		}
		if(tamanho>=2){
		 vetor[1] = parseInt(numero[1]) * 3; 
		}
		if(tamanho>=3){
		 vetor[2] = parseInt(numero[2]) * 4; 
		}
		if(tamanho>=4){
		 vetor[3] = parseInt(numero[3]) * 5; 
		}
		if(tamanho>=5){
		 vetor[4] = parseInt(numero[4]) * 6; 
		}
		if(tamanho>=6){
		 vetor[5] = parseInt(numero[5]) * 7; 
		}
		if(tamanho>=7){
		 vetor[6] = parseInt(numero[6]) * 8; 
		}
		if(tamanho>=8){
		 vetor[7] = parseInt(numero[7]) * 9; 
		}
		if(tamanho>=9){
		 vetor[8] = parseInt(numero[8]) * 100; 
		}
		
		 total = 0;
		
		if(tamanho>=1){
		 total += vetor[0];
		}
		if(tamanho>=2){
		 total += vetor[1]; 
		}
		if(tamanho>=3){
		 total += vetor[2]; 
		}
		if(tamanho>=4){
		 total += vetor[3]; 
		}
		if(tamanho>=5){
		 total += vetor[4]; 
		}
		if(tamanho>=6){
		 total += vetor[5]; 
		}
		if(tamanho>=7){
		 total += vetor[6];
		}
		if(tamanho>=8){
		 total += vetor[7]; 
		}
		if(tamanho>=9){
		 total += vetor[8]; 
		}
		
		 resto = total % 11;
		if(resto!=0) {
			return false;
		} else {
			return true;
		}
	}
	/*** VALIDA RG *** FIM ****************************************** */	
	//-->