/*
Gerado por Pedreiro Construtor Php+Ajax
*******************************************************************
* Produzido por Ricardo Ziglio           ricardoziglio@gmail.com  *
*******************************************************************
Parametros:
 form   = nome do form                 ;
 campo  = campo q vai receber a mascara;
 mask   = mascara de entrada           ;
 evento = pega o evento :D             ;
Caracteres usados na mascara: 
  . / - ( ) , ; : espaco               ;
Mascara:
9 = somente numeros;
x = somente letras maiusculas e minusculas sem espaço;
A = somente letras maiusculas sem espaço             ;
a = somente letras minusculas sem espaço             ;
! = qualquer coisa                                   ; 
Exemplo de uso:
<input type="text" name="conta" onkeyup="return mascara(document.Form, 'conta', '99.999-!', event)" size="20" />			  
Exemplo de mascara:
Conta = 99.999-!
CEP   = 99.999-999
Placa = AAA - 9999
*/	
	function mascara(form, campo, mask, evento)
{
    tecla_asc = (evento.which) ? evento.which : evento.keyCode;

 if (tecla_asc != 8 && tecla_asc != 13 && tecla_asc != 9 && tecla_asc != 46)
 { // backspace enter tab del
     tecla_val = String.fromCharCode(tecla_asc);
     campo_valor = form[campo].value + tecla_val;
	 caracter = /[\.\/\-\(\)\,\;\: ]/gi;
	 campo_valor = campo_valor.toString().replace(caracter, '');
	 campo_valor_len = campo_valor.length;
	 campo_contador  = 0;
	 campo_verificador = 0;
	 mask_len = mask.length;
	 campo_valor_aux="";
	 moeda_contador = campo_valor_len; 

	 for ( i = 0; i < mask_len; i++)
	 {
	       	oumask = ((mask.charAt(i) == ".") || (mask.charAt(i) == "/") || (mask.charAt(i) == "-") || (mask.charAt(i) == "(") || (mask.charAt(i) == ")") || (mask.charAt(i) == ",") || (mask.charAt(i) == ";") || (mask.charAt(i) == ":") || (mask.charAt(i) == " "))
            if (oumask)
		    {
	 			     campo_valor_aux += mask.charAt(i);
	 		}
			else
			{
			  	  if  (campo_valor.charAt(campo_contador)!= null)
			  	  {
						switch (mask.charAt(i))
						 {
								case "9":
									 if (campo_valor.charCodeAt(campo_contador) > 47 && campo_valor.charCodeAt(campo_contador) < 58)
								     {
									     campo_valor_aux += campo_valor.charAt(campo_contador);
							             campo_verificador++;
							         }
									break
								case "x":
									  if (campo_valor.charCodeAt(campo_contador) > 64 && campo_valor.charCodeAt(campo_contador) < 123)
									  {
									  	 campo_valor_aux += campo_valor.charAt(campo_contador);
									     campo_verificador++;
									  }
									break
								case "A":
									  if (campo_valor.charCodeAt(campo_contador) > 64 && campo_valor.charCodeAt(campo_contador) < 91)
									  {
									  	 campo_valor_aux += campo_valor.charAt(campo_contador);
									     campo_verificador++;
									  }
									break
								case "a":
									  if (campo_valor.charCodeAt(campo_contador) > 96 && campo_valor.charCodeAt(campo_contador) < 123)
									  {
									  	 campo_valor_aux += campo_valor.charAt(campo_contador);
									     campo_verificador++;
									  }
									break	
								case "!":
									 campo_valor_aux += campo_valor.charAt(campo_contador);
									 campo_verificador++;
									break
								default:
									alert("Erro máscara invalida!")
							}
					}
						campo_contador++;
	      }
	 }
        if (campo_verificador!=0)
        {
          form[campo].value = campo_valor_aux;
          //.substr(0,((campo_valor_aux.length)-1));
        }
        else
        {
         form[campo].value ="";
        }
        return false;
 }
 else
 {
  return true;
 }     
}
//Fim da Função mascaras 
/*
Função numero
<input type=text name="dinheiro" onkeypress="return (numero(this,'.',',',event,2,6))" >
*/
function numero(fld, milSep, decSep, e, casas,max) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (e.which) ? e.which : e.keyCode;
if (whichCode == 13 || whichCode == 8 || whichCode == 9) return true;
key = String.fromCharCode(whichCode);// Valor para o código da Chave
if (strCheck.indexOf(key) == -1) return false; // Chave inválida
len = fld.value.length;
if (max == len) return false;
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 = '';
}
else
{
	if (len < casas) 
	{
	  vlr_casa = casas - len
	  zeros="";
	  for (x = 1; x <= vlr_casa ;x++)
	  {
	    zeros= zeros + '0';
	  } 
	  fld.value = '0'+ decSep + zeros + aux;
	}
	else
	{
		if (len == casas) 
		{
		  fld.value = '0'+ decSep + aux;
		}
	}
}
if (len > casas) {
aux2 = '';
for (j = 0, i = len - (casas+1); 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 - casas, len);
}
return false;
} 
//Fim da Função numero 
//Limita tamanho da text area
function max_txtarea(txarea,total,digitado,restante)
{
    tam = txarea.value.length;
    str=1;
    str=str+tam;
    if (tam >= total)
    {
       aux = txarea.value;
       txarea.value = aux.substring(0,total);
       document.getElementById(digitado).innerHTML = total;
       document.getElementById(restante).innerHTML = 0;
       return false;           
    }
    else
    {
      document.getElementById(digitado).innerHTML = str;
      document.getElementById(restante).innerHTML = total - str;  
      return true;
   }
}
//Fim do limita tamanho da text area
// <input type="text" name="data" onblur="valida_data('data')" >
//Funcao que valida a data
function valida_data(campo) {
	var date = document.getElementById(campo).value;
	if (date!= "")
	{
			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 !");
				document.getElementById(campo).value=""
			}
	}		
}
// Fim funcao valida data
//Validação das mascaras
function valida(mascara,campo) {
	var len   = mascara.length;
        var len_c = document.getElementById(campo).value;
        len_c = len_c.length;
        if (campo.value!= "")
	{
           if (len_c != len)
            {
                alert("Preencha o campo corretamente !");
	        document.getElementById(campo).value="";
            }            

        }
}
//Fim da validaçao das mascaras
function enter_tab(field, event) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) {
var i;
for (i = 0; i < field.form.elements.length; i++)
if (field == field.form.elements[i])
break;
i = (i + 1) % field.form.elements.length;
field.form.elements[i].focus();
return false;
}
else
return true;
}
