//////////////////////////////////////////////////////////////////////////////
//Contador de Caracteres para Campo MEMO regrecivo
function ContarCampo(campo, contador, limite) {
if (campo.value.length > limite)
		campo.value = campo.value.substring(0, limite);	
else 
		contador.value = limite - contador.value.length;
}
//////////////////////////////////////////////////////////////////////////////


<!--
// Valida o formulario antes de envia-lo 
// Verifica Campos Nulos e suas Formatacoes(Tipo)
// Tipo E-Mail - Tipo texto - Tipo Numerico - Tipo AlfaNumerico
// VFrom = formulario a ser verificado
// Objs = nomes de objetos do form que nao sao necessarios
function ValidForm( VForm , Objetos )
	{
	var Array, Msg, Len, Element, i, ix
	Msg = '';
	Element = VForm.elements;
	
	Len = Element.length;
	Array = Objetos.split( '?' , Len*2 );
	for(ix=0; ix < Array.length ;ix++)
		for(i=0; i < Len ;i++)
			if( Array[ix] == Element[i].name )
				switch( Element[i].id )
					{
					case 'text' :
						if( Element[i].value == '' || IsLetter(Element[i].value) != -1 )
							{
							Element[i].select();
							Element[i].focus();

							Msg = 'Preencha o campo ' + Element[i].param;
							i	= Len;
							ix	= Array.length;
							}
						break;
					case 'alfa' :
						if( Element[i].value == '' || IsAlfaNum(Element[i].value) != -1 )
							{
								Element[i].select();
								Element[i].focus();
								Msg = 'Preencha o campo ' + Element[i].param;
								i	= Len;
								ix	= Array.length;
							}
						break;
					case 'user' :
						if( Element[i].value == '' || IsUser(Element[i].value) != -1 )
							{
								Element[i].select();
								Element[i].focus();
								Msg = 'Preencha o campo ' + Element[i].param;
								i	= Len;
								ix	= Array.length;
							}
						break;
					case 'num' :
						if( Element[i].value == '' || IsNumber(Element[i].value) != -1 )
								{
							Element[i].select();
							Element[i].focus();
							Msg = 'Preencha o campo '+ Element[i].param;
							i	= Len;
							ix	= Array.length;
							}
						break;
	 				   
					case 'dinh' :
						if( Element[i].value == '' || IsGrana(Element[i].value) != -1 )
								{
							Element[i].select();
							Element[i].focus();
							Msg = 'Preencha o campo '+ Element[i].param;
							i	= Len;
							ix	= Array.length;
							}
						break;
	
					case 'data' :
						if( Element[i].value == '' || IsData(Element[i].value) != -1 || Verificadata(Element[i].value) != -1)
							{
							Element[i].select();
							Element[i].focus();
							Msg = 'Preencha o campo '+ Element[i].param +' corretamente!';
							i	= Len;
							ix	= Array.length;
							}
						break;
						
					case 'mail' :
						if(! IsValidEmail(Element[i].value))
							{
							Element[i].select();
							Element[i].focus();
							Msg = 'E-Mail inválido.';
							i	= Len;
							ix	= Array.length;
							}
						break;
					case 'pswd2' :
						if( Element[i].value == '' )
							{
							Element[i].select();
							Element[i].focus();
							Msg = 'Preencha o campo senha.';
							i	= Len;
							ix	= Array.length;
							}
						break;
					case 'pswd' :
						if( Element[i].value == '' || (Element[i].value != Element[i+1].value && Element[i+1].type == 'password') )
							{
							Element[i+1].value = '';
							Element[i].select();
							Element[i].focus();
							Msg = 'Senha e Confirmação de Senha não conferem.';
							i	= Len;
							ix	= Array.length;
							}
						break;
					case 'null' :
						if( Element[i].value == '' )
							{
							Element[i].select();
							Element[i].focus();
							Msg = 'Preencha o campo '+ Element[i].param;
							i	= Len;
							ix	= Array.length;
							}
						break;
					case 'sel' :
						if( Element[i].value == '' || Element[i].value == 'XX' )
							{
							Element[i].focus();
							Msg = 'Selecione uma opção.';
							i	= Len;
							ix	= Array.length;
							}
						break;

					default :
							i	= Len;
					}

	if( Msg != '' )
		{
		alert(Msg);
		return false;
		}
	return true;
	}
//////////////////////////////////////////////////////////////////////////////
	
//////////////////////////////////////////////////////////////////////////////
// A cada tecla solta verifica o campo ativo
function SeeKeys()
	{
	var Obj, KeyCode, Point, Indx, Str
	KeyCode = window.event.keyCode;
	Obj = event.srcElement;

	if( KeyCode == 13 )
		{
		blnGerarTab = true;
		window.event.returnValue = false;
		return false
		}
	else if( KeyCode > 47 )
		switch( Obj.id )
			{
			case 'text' :
				Str		= Obj.value;
				for(Indx=0; Indx < Str.length ;Indx++)
					{
					Point	= IsLetter(Obj.value);
					if( Point != -1 )
						Obj.value = CutCharPoint( Obj.value , Point );
					}
				break;

			case 'num'	:
				Str		= Obj.value;
				for(Indx=0; Indx < Str.length ;Indx++)
					{
					Point	= IsNumber(Obj.value);
					if( Point != -1 )
						Obj.value = CutCharPoint( Obj.value , Point );
					}
				break;

			case 'dinh'	:
				Str		= Obj.value;
				for(Indx=0; Indx < Str.length ;Indx++)
					{
					Point	= IsGrana(Obj.value);
					if( Point != -1 )
						Obj.value = CutCharPoint( Obj.value , Point );
					}
  			    break;

			case 'user'	:
				Str		= Obj.value;
				for(Indx=0; Indx < Str.length ;Indx++)
					{
					Point	= IsUser(Obj.value);
					if( Point != -1 )
						Obj.value = CutCharPoint( Obj.value , Point );
					}
				break;
			case 'data'	:
				Str		= Obj.value;
				for(Indx=0; Indx < Str.length ;Indx++)
					{
					Point	= IsData(Obj.value);
					
					if( Point != -1 ){
						Obj.value = CutCharPoint( Obj.value , Point );}
					else
					{
					   if (Str.length == 2) 
					   { 
     						 Str = Str + '/'; 
						     Obj.value = Str; 
   						} 
						if (Str.length == 5) 
						{ 
						      Str = Str + '/'; 
						      Obj.value = Str; 
	 				    } 
					}
				}	
				break;

			case 'alfa'	:
				Str		= Obj.value;
				for(Indx=0; Indx < Str.length ;Indx++)
					{
					Point	= IsAlfaNum(Obj.value);
					if( Point != -1 )
						Obj.value = CutCharPoint( Obj.value , Point );
					}
				break;

			case 'mail' :
				Str		= Obj.value;
				for(Indx=0; Indx < Str.length ;Indx++)
					{
					Point	= IsEmail(Obj.value);
					if( Point != -1 )
						Obj.value = CutCharPoint( Obj.value , Point );
					}
				break;
			}
	}
//////////////////////////////////////////////////////////////////////////////

	
//////////////////////////////////////////////////////////////////////////////
// Verifica formatação a@b.c
// Não permite caracteres especiais
// Retorna true se o Obj for um E-Mail
// Retorna false se o Obj nao for um E-Mail
function IsValidEmail( Value )
	{
	var i, Current, Tmp
	var Array = Value.split( '@' , 3 );
   

	Tmp = Array[0];
	// Se contiver caracteres especiais antes do Arroba
	for(i=0; i < Tmp.length ;i++)
		{
		Current =  Tmp.charAt(i);
		if( (Current == ' ') && (Current < '0' || Current > '9') && (Current < 'A' || Current > 'Z') && (Current < 'a' || Current > 'z') && Current != '_' && Current != '-' && Current != '.' )
			return false;
		}

	Tmp = Array[1];
	// Se contiver caracteres especiais depois do Arroba
	for(i=0; i < Tmp.length ;i++)
		{
		Current =  Tmp.charAt(i);
		if( (Current < '0' || Current > '9') && (Current < 'A' || Current > 'Z') && (Current < 'a' || Current > 'z') && Current != '.' )
			return false;
		}
	
	Tmp = Tmp.split( '.' , 4 );
	// Se depois do arroba existir menos de 2 ou mais de 3 pontos
	/*if( Tmp.length != 2 && Tmp.length != 3 )
		return false;*/

	// Se depois do arroba existir menos de 2 ou mais de 3 pontos
	if( Tmp.length == 2 && (Tmp[0] == '' || Tmp[1] == '') )
		return false;

	// Se depois do arroba existir menos de 2 ou mais de 3 pontos
	if( Tmp.length == 3 && (Tmp[0] == '' || Tmp[1] == '' || Tmp[2] == '') )
		return false;

	return true
	}
//////////////////////////////////////////////////////////////////////////////
	
//////////////////////////////////////////////////////////////////////////////
// Procura por "Chars" em "Str"
// Retorna -1 se nao encontar os "Chars"
// Retorna a posicao do Chars em Str se o encontar
function LookChars( Str, Chars )
	{
	var Count, Indx
	for(Count=0; Count < Str.length ;Count++)
		for(Indx=0; Indx < Chars.length ;Indx++)
			if( Str.charAt(Count) == Chars.charAt(Indx) )
				return Count;

	return -1
	}
//////////////////////////////////////////////////////////////////////////////
	
	
//////////////////////////////////////////////////////////////////////////////
// Remove de Str o caracter localizado na posicao Pnt
// Retorna o Str sem o caracter apontado por Pnt
function CutCharPoint( Str, Pnt )
	{
	var Count, Result
	Result = '';
	for(Count=0; Count < Str.length ;Count++)
		if( Count != Pnt )
			Result = Result + Str.charAt(Count);

	return Result
	}
//////////////////////////////////////////////////////////////////////////////

	
//////////////////////////////////////////////////////////////////////////////
// Verifica se Str contem caracteres invalidos em E-Mails
// Retorna -1 se nao contiver
// Retorna Posicao do Caracter Invalido em Str
function IsEmail( Str )
	{
	var Count, Current
	for(Count=0; Count < Str.length ;Count++)
		{
		Current =  Str.charAt(Count);
		if( (Current < '0' || Current > '9') && (Current < 'A' || Current > 'Z') && (Current < 'a' || Current > 'z') && Current != '_' && Current != '-' && Current != '.' && Current != '@' )
			return Count
		}

	return -1
	}
//////////////////////////////////////////////////////////////////////////////
	
//////////////////////////////////////////////////////////////////////////////
// Verifica se Str contem caracteres invalidos para User name
// Retorna -1 se nao contiver
// Retorna Posicao do Caracter Invalido em Str
function IsUser( Str )
	{
	var Count, Current
	for(Count=0; Count < Str.length ;Count++)
		{
		Current =  Str.charAt(Count);
		if((Current < '0' || Current > '9') && (Current < 'A' || Current > 'Z') && (Current < 'a' || Current > 'z') && Current != '_' && Current != '-' && Current != '.' && Current != '@' )
			return Count
		}

	return -1
	}
//////////////////////////////////////////////////////////////////////////////

	
//////////////////////////////////////////////////////////////////////////////
// Verifica se Str contem apenas Letras entre A e Z
// Retorna -1 se Str contiver apenas Letras entre A-Z
// Retorna Posicao do Caracter que for uma Letra entre A-Z
function IsLetter( Str )
	{
	var Count, Current
	for(Count=0; Count < Str.length ;Count++)
		{
		Current =  Str.charAt(Count);
		if( (Current < 'A' || Current > 'Z') && (Current < 'a' || Current > 'z') && IsNotAcent(Current) )
			return Count
		}

	return -1
	}
//////////////////////////////////////////////////////////////////////////////
	
	
//////////////////////////////////////////////////////////////////////////////
// Verifica se o Chr é acentuado
// Retorna true se o Chr nao for acentuado
// Retorna false se o Chr for acentuado
function IsNotAcent( Chr )
	{
	if( Chr=='á' || Chr=='é' || Chr=='í' || Chr=='ó' || Chr=='ú' || Chr=='Á' || Chr=='É' || Chr=='Í' || Chr=='Ó' || Chr=='Ú' )
		return false;
	if( Chr=='à' || Chr=='è' || Chr=='ì' || Chr=='ò' || Chr=='ù' || Chr=='À' || Chr=='È' || Chr=='Ì' || Chr=='Ò' || Chr=='Ù' )
		return false;
	if( Chr=='â' || Chr=='ê' || Chr=='î' || Chr=='ô' || Chr=='û' || Chr=='Â' || Chr=='Ê' || Chr=='Î' || Chr=='Ô' || Chr=='Û' )
		return false;
	if( Chr=='ä' || Chr=='ë' || Chr=='ï' || Chr=='ö' || Chr=='ü' || Chr=='Ä' || Chr=='Ë' || Chr=='Ï' || Chr=='Ö' || Chr=='Ü' )
		return false;
	if( Chr=='ã' || Chr=='õ' || Chr=='Ã' || Chr=='Õ' || Chr=='ñ' || Chr=='Ñ' || Chr=='ç' || Chr=='Ç' || Chr==' ')
		return false;

	return true;	
	}
//////////////////////////////////////////////////////////////////////////////
	
//////////////////////////////////////////////////////////////////////////////
// Verifica se Num contem apenas Numeros entre 0 e 9
// Retorna -1 se o Num contiver apenas Numeros entre 0 e 9
// Retorna Posicao do Caracter nao Numerico se o encontrar
function IsNumber( Num )
	{
	var Count, Current
	for(Count=0; Count < Num.length ;Count++)
		{
		Current = Num.charAt(Count);
		if(( Current < '0' || Current > '9' ))
			return Count
		}

	return -1
	}
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// Verifica se Num contem apenas Numeros entre 0 e 9 e ','
// Retorna -1 se o Num contiver apenas Numeros entre 0 e 9  e ','
// Retorna Posicao do Caracter nao Numerico se o encontrar
function IsGrana( din )
	{
	var Count, Current, virg
	virg = 0
	for(Count=0; Count < din.length ;Count++)
		{
		Current = din.charAt(Count);

		if(( Current < '0' || Current > '9') && Current != ',' ){
			return Count
			}
		else{
			if(Current ==  ','){virg = virg+1;}
			if(virg > 1){return -1;}
	        }
		}
	return -1
	}
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
//  Verifica data aceitando barra
	function IsData( Num )
	{
	var Count, Current
	for(Count=0; Count < Num.length ;Count++)
		{
		Current = Num.charAt(Count);
		if((Current < '0' || Current > '9') && Current != '/')
			return Count

		}

	return -1
	}
//////////////////////////////////////////////////////////////////////////////
	
	
//////////////////////////////////////////////////////////////////////////////
// Verifica se Str contem contem caracteres AlfaNumericos
// Retorna -1 se Str contiver apenas caracteres AlfaNumericos
// Retorna Posicao do Caracter nao AlfaNumerico
function IsAlfaNum( Str )
	{
	var Count, Current
	for(Count=0; Count < Str.length ;Count++)
		{
		Current =  Str.charAt(Count);
		if( (Current < '0' || Current > '9') && (Current < 'A' || Current > 'Z') && (Current < 'a' || Current > 'z') && IsNotAcent(Current) && Current != '_' && Current != '-' && Current != '.' )
			return Count
		}

	return -1
	}
	
	
function Verificadata(data){
var Date = new String(data);
    Dia = "";
    Mes = "";
    Ano = "";
    i = 0;

    for (i=0;(i<Date.length) && (Date.charAt(i) != '/');i++)
           Dia = Dia + Date.charAt(i);
    i++;

   for (;(i<Date.length) && (Date.charAt(i) != '/');i++)
        Mes = Mes + Date.charAt(i);
   i++;

   for (;(i<Date.length);i++)
      Ano = Ano + Date.charAt(i);
	  
	  
   if (eval(Mes) > 12){
		 return 0}
		 
   if (eval(Dia) > 31){
        return 0}
		
    if(eval(Ano) < 1850) {
        return 0;}
		
	if((eval(Mes)==2) && (eval(Dia)>29)){
	    return 0}	
		
return -1
}
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// Mostra mensagem de confirmação para qualquer ação
//Basta informar a url destino
function confirmadeleta(endereco){
     if(confirm("Confirma a exclusão permanente do registro?")==1){
	 window.location.href=endereco;
    }
}
//////////////////////////////////////////////////////////////////////////////


function botao(lugar){
  window.location.href=lugar;
}




//////////////////////////////////////////////////////////////////////////////
//FUNÇÕES ESPECIAIS DE VALIDAÇÃO
//<!--Exemplo
//</HEAD>
//<BODY class=texto_pagina>
//<B>Incluir um novo registro</B><BR>Preencha corretamente 
//os dados abaixo:<BR>
//<form name="form_incluir" method="post" action="" onsubmit="return verifica_form(this);">
//<TABLE border=0 cellpadding=2 cellspacing=1 class=tabela_formulario>
//  <TR class=titulo_campos><TD>Cidade<br>
//<INPUT style="width=350" type="text" name="Cidade" maxlength="255" value="" onKeyPress="desabilita_cor(this)"  df_verificar="email" class=campos_formulario>
//  </TD></TR>
//  <TR class=titulo_campos><TD>DDD<br>
//<INPUT style="width=350" type="text" name="DDD" maxlength="255" value="" onKeyPress="desabilita_cor(this)"  df_verificar="sim" class=campos_formulario>
//  </TD></TR>
//  <TR class=titulo_campos><TD>ID<br>
//<INPUT style="width=350" type="text" name="ID" maxlength="255" value="" onKeyPress="desabilita_cor(this)"  df_verificar="sim" df_validar="numerico" class=campos_formulario>
//  </TD></TR>
//  <TR class=titulo_campos><TD>UF<br>
//<INPUT style="width=350" type="text" name="UF" maxlength="255" value="" onKeyPress="desabilita_cor(this)"  df_verificar="sim" class=campos_formulario>
//  </TD></TR>
//  <TR class=titulo_campos><TD>CPF<br>
//<INPUT style="width=350" type="text" name="email" maxlength="255" value="" onKeyPress="desabilita_cor(this)"   df_verificar="sim" df_validar="email" class=campos_formulario>
//  </TD><TD>CPF<br>
//<INPUT style="width=350" type="text" name="email" maxlength="255" value="" onKeyPress="desabilita_cor(this)"   df_verificar="sim" df_validar="email" class=campos_formulario>
//  </TD></TR>
//</TABLE>
//<input type="submit" name="submit" value="Enviar" class=botao_enviar>
//</form>
//</BODY>
//</HTML>
/////////////////////////////////////////////////////////////////////////////////////////////////
function abre_janela(url, width, height, nome) {
var top; var left;
top = ( (screen.height/2) - (height/2) )
left = ( (screen.width/2) - (width/2) )
window.open(url,nome,'width='+width+',height='+height+',scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,left='+left+',top='+top);
}
function recebe_imagem(campo, imagem){
var foto = 'img_' + campo
document.form_incluir[campo].value = imagem;
document.form_incluir[foto].src = imagem;
}
function verifica_form(form) {
var passed = false;
var ok = false
var campo
for (i = 0; i < form.length; i++) {
  campo = form[i].name;
  if (form[i].df_verificar == "sim") {
    if (form[i].type == "text"  | form[i].type == "textarea" | form[i].type == "select-one") {
      if (form[i].value == "" | form[i].value == "http://") {
		form[campo].className='campo_alerta'
        form[campo].focus();
        alert("Preencha corretamente o campo");
        return passed;
        stop;
      }
    }
    else if (form[i].type == "radio") {
      for (x = 0; x < form[campo].length; x++) {
        ok = false;
        if (form[campo][x].checked) {
          ok = true;
          break;
        }
      }
      if (ok == false) {
        form[campo][0].focus();
		form[campo][0].select();
        alert("Informe uma das opcões");
        return passed;
        stop;
      }
    }
    var msg = ""
    if (form[campo].df_validar == "cpf") msg = checa_cpf(form[campo].value);
    if (form[campo].df_validar == "cnpj") msg = checa_cnpj(form[campo].value);
    if (form[campo].df_validar == "cpf_cnpj") {
	  msg = checa_cpf(form[campo].value);
	  if (msg != "") msg = checa_cnpj(form[campo].value);
	}
    if (form[campo].df_validar == "email") msg = checa_email(form[campo].value);
    if (form[campo].df_validar == "numerico") msg = checa_numerico(form[campo].value);
    if (msg != "") {
	  if (form[campo].df_validar == "cpf_cnpj") msg = "informe corretamente o número do CPF ou CNPJ";
	  form[campo].className='campo_alerta'
      form[campo].focus();
      form[campo].select();
      alert(msg);
      return passed;
      stop;
    }
  }
}
passed = true;
return passed;
}
function desabilita_cor(campo) {
campo.className='campos_formulario'
}
function checa_numerico(String) {
var mensagem = "Este campo aceita somente números"
var msg = "";
if (isNaN(String)) msg = mensagem;
return msg;
}
function checa_email(campo) {
var mensagem = "Informe corretamente o email"
var msg = "";
var email = campo.match(/(\w+)@(.+)\.(\w+)$/);
if (email == null){
  msg = mensagem;
  }
return msg;
}
function checa_cpf(CPF) {
var mensagem = "informe corretamente o número do CPF"
var msg = "";
if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" ||
  CPF == "22222222222" ||	CPF == "33333333333" || CPF == "44444444444" ||
  CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" ||
  CPF == "88888888888" || CPF == "99999999999")
msg = mensagem;
soma = 0;
for (y=0; y < 9; y ++)
soma += parseInt(CPF.charAt(y)) * (10 - y);
resto = 11 - (soma % 11);
if (resto == 10 || resto == 11)resto = 0;
if (resto != parseInt(CPF.charAt(9)))
  msg = mensagem; soma = 0;
for (y = 0; y < 10; y ++)
  soma += parseInt(CPF.charAt(y)) * (11 - y);
resto = 11 - (soma % 11);
if (resto == 10 || resto == 11) resto = 0;
if (resto != parseInt(CPF.charAt(10)))
  msg = mensagem;
return msg;
}
function checa_cnpj(s) {
var mensagem = "informe corretamente o número do CNPJ"
var msg = "";
var y;
var c = s.substr(0,12);
var dv = s.substr(12,2);
var d1 = 0;
for (y = 0; y < 12; y++)
{
d1 += c.charAt(11-y)*(2+(y % 8));
}
if (d1 == 0) msg = mensagem;
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(0) != d1)msg = mensagem;
d1 *= 2;
for (y = 0; y < 12; y++)
{
d1 += c.charAt(11-y)*(2+((y+1) % 8));
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(1) != d1) msg = mensagem;
return msg;
}
function mascara_data(data){ 
var mydata = ''; 
mydata = mydata + data; 
if (mydata.length == 2){ 
mydata = mydata + '/'; 
} 
if (mydata.length == 5){ 
mydata = mydata + '/'; 
} 
return mydata; 
} 
function verifica_data(data) { 
if (data.value != "") {
dia = (data.value.substring(0,2));
mes = (data.value.substring(3,5)); 
ano = (data.value.substring(6,10)); 
situacao = ""; 
if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) { 
situacao = "falsa"; 
} 
if (mes < 01 || mes > 12 ) { 
situacao = "falsa"; 
}
if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
situacao = "falsa"; 
} 
if (situacao == "falsa") { 
data.focus();
data.select();
alert("Data inválida!"); 
}
} 
}
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
//FUNÇÕES ESPECIAIS PARA A FORMATAÇÃO DAS MÁSCARAS DE CAMPO
//'* 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 Mascara(document.rcfDownload, "str_cep", "99999-999", event);">
//'* Observação: As máscaras podem ser representadas
//'* como os exemplos abaixo:
//'* CEP -> 99999-999
//'* CPF -> 999.999.999-99
//'* CNPJ -> 99.999.999/9999-99
//'* C/C -> 999999-!
//'* Tel -> (99) 9999-9999
//'* Hora -> 99:99:99 ou 99:99
//'* Número -> R$ 15.000,00'
//'* Formato do jeito que quiser usando e abusando dos exemplos acima.
//////////////////////////////////////////////////////////////////////////////////////////

function Mascara(strField, sMask ,keypress) {
var i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla;
objForm = document.forms[0];

if(document.all) { // Internet Explorer
nTecla = event.keyCode; }
else if(document.layers) { // Nestcape
nTecla = event.which;
}

if(nTecla == 39) return false;

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( ",", "" );
sValue = sValue.toString().replace( "$", "" );
sValue = sValue.toString().replace( "R", "" ); 
sValue = sValue.toString().replace( "+", "" ); 
fldLen = sValue.length;
mskLen = sMask.length; // = 5

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) == ":") || (sMask.charAt(i) == "$") || (sMask.charAt(i) == "R") || (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;
}
}
////////////////////////////////////////////////////////////////////////////// 
//ABRE POPUP
function abre_pop(url,titulo,pop_size_w,pop_size_h,scroll) {
    var posicaoX = screen.width - pop_size_w;
    var posicaoY = screen.height - pop_size_h;
    if(posicaoX != 0) {
        posicaoX = Math.round(posicaoX / 2);
        posicaoY = Math.round(posicaoY / 2);
    }
    pop = window.open(url,titulo,"toolbar=no,location=no,address=no,directories=no,status=no,menubar=no,scrollbars="+scroll+",resizable=no,copyhistory=yes,maximized=yes,width="+pop_size_w+",height="+pop_size_h+",left="+posicaoX+",top="+posicaoY);
}

//////////////////////////////////////////////////////////////////////////////


//-->
