// LINK DO QUE ENSINA A VALIDAR CAMPOS
// http://www.yourhtmlsource.com/javascript/formvalidation.html#Implementing

//*** 
//* 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... 
//* Exemplo usado no site do jetvoip
//* <input name="tx_de" type="text" class="tag001" id="tx_de" onkeypress="return txtBoxFormat(document.form1, 'tx_de', '99/99/9999', event);" size="12" maxlength="10">

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( " ", "" );
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) == " "))

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;
}
}
//Fim da Função Máscaras Gerais



// FORMATANDO APENAS NUMEROS DE MOEDA
// exemplo:
// <input type=text name=test length=15 onKeyPress="return(currencyFormat(this,'.',',',event))">

<!-- Original:  Mario Costa (mariocosta@openlink.com.br) -->
<!-- Bug fix:   John Kiernan  -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
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 (Bug fixed)
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;
}

// VALIDANDO CPF E CNPJ
//by bamboo, szilard & igbassani
function VALIDAR(CNUMB,CTYPE)
{
  if(Verify(CNUMB, CTYPE))
  {
    // alert(CTYPE+" válido!");
	return true;
}
  else
  {
    // alert(CTYPE+" inválido!");
	return false;
  }
  // return;
}

function ClearStr(str, char)
{
  while((cx=str.indexOf(char))!=-1)
  {		
    str = str.substring(0,cx)+str.substring(cx+1);
  }
  return(str);
}

function ParseNumb(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);
  }
}

function Verify(CNUMB,CTYPE)
{
  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);
  }
}

function swf(file,w,h)
{
document.write('<object id="ob"type="application/x-shockwave-flash"data="' + file + '"width="' + w + '"height="' + h + '"><param name="movie"value="' + file + '"/><param name="wmode"value="transparent"/></object>');
}
