/* 
	#####################################################################################################################
    # Design by Óptica Design & Web 2008                                                                                #
	#####################################################################################################################
    # Designer Programador: Stevão Rodrigues Tartari                                                                    #
    # e-mail: optica.dw@gmail.com																						#
    # phone: +55 (19) 9206-6215																							#
    # www.opticadw.com																									#
	#####################################################################################################################
    # Site produzido e licenciado para rafazimbaldi.com.br 																#
	# É proibida a reprodução ou publicação do conteúdo deste site, em todo ou em parte, sem prévia autorização, da 	#
    # Óptica Design & Web, seja ela verbal ou escrita, conforme lei de proteção aos direitos autorais n° 9.610 de 19 	#
    # de Fevereiro de 1998																								#
    # Qual o seu valor? Programador ou Copiador ?																		#
	#####################################################################################################################
*/
					
					function masc(o,f,n,s){
						obj=o
						fun=f
						nxt=n
						sze=s
						setTimeout("execMasc()",1)// chama execMasc() a cada digito do usuario
					}
					
					/*================================================================================================
					 Função que executa:
						- a função de validação escolhida pelo parâmetro 'f' em masc(o,f,n,s) 
						- testa o tamanho do campo referenciado para mudar o focus() para proximo campo definido em 'n'
					 Utiliza variaveis inicializadas em masc(o,f,n,s)
					==================================================================================================*/
					function execMasc(){
						obj.value=fun(obj.value) // atribui o valor de retorno da função escolhida ao campo referenciado
						if (obj.value.length == sze){ // se tamanho do campo for igual ao tamanho referenciado
							if (nxt ==''){obj.focus} // se nxt estiver vazio mantem focus no proprio campo
							else {nxt.focus()}}	// muda o focus para o proximo campo
					}

// FUNÇÕES DEPENDENTES DE LANCAMENTO =====================================================================

					/*================================================================================================
					 Validação de Caracteres bloqueando Numeros
					==================================================================================================*/
					function valStrNumN(v){
						v=v.replace(/\d/g,"")
						return v
					}

					/*================================================================================================
					 Validação de Caracteres CONVERTENDO para MAIUSCULAS aceitando Numeros
					==================================================================================================*/
					function valStrUpperNumY(v){
						return v.toUpperCase()
					}

					/*================================================================================================
					 Validação de Caracteres CONVERTENDO para MINUSCULAS aceitando Numeros
					==================================================================================================*/
					function valStrLowerNumY(v){
						return v.toLowerCase()
					}
					
					/*================================================================================================
					 Validação de Caracteres CONVERTENDO para MAIUSCULAS bloqueando Numeros
					==================================================================================================*/
					function valStrUpperNumN(v){
						v=v.replace(/\d/g,"")
						return v.toUpperCase()
					}

					/*================================================================================================
					 Validação de Numeros bloqueando Caracteres
					==================================================================================================*/
					function valNumStrN(v){
						return v.replace(/\D/g,"")
					}

					/*================================================================================================
					 Validação de Datas
					==================================================================================================*/
					function data(v){
						v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
						v=v.replace(/^(\d{2})(\d)/,"$1/$2")             //Coloca uma barra entre o segundo e o terceiro dígitos
						v=v.replace(/(\d{2})(\d)/,"$1/$2")           //Coloca uma barra entre o quinto e o sexto dígitos
						return v
					}
					
					/*================================================================================================
					 Validação de Horas
					==================================================================================================*/
					function hora(v){
						v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
						v=v.replace(/^(\d{2})(\d)/,"$1:$2")             //Coloca dois pontos entre o segundo e o terceiro dígitos
						return v
					}

					/*================================================================================================
					 Validação de Telefones
					==================================================================================================*/
					function telefone(v){
						v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
						//v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
						v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
						return v
					}
					
					/*================================================================================================
					 Validação de CPF
					==================================================================================================*/
					function cpf(v){
						v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
						v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
						v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
																 //de novo (para o segundo bloco de números)
						v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
						return v
					}
					
					/*================================================================================================
					 Validação de CEP
					==================================================================================================*/
					function cep(v){
						v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
						v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
						return v
					}
					
					/*================================================================================================
					 Validação de CNPJ
					==================================================================================================*/
					function cnpj(v){
						v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
						v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
						v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
						v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
						v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
						return v
					}
					
					/*================================================================================================
					 Validação de URLSITE
					==================================================================================================*/
					function site(v){
						//Esse sem comentarios para que você entenda sozinho ;-)
						v=v.replace(/^http:\/\/?/,"")
						dominio=v
						caminho=""
						if(v.indexOf("/")>-1)
							dominio=v.split("/")[0]
							caminho=v.replace(/[^\/]*/,"")
						dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
						caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")
						caminho=caminho.replace(/([\?&])=/,"$1")
						if(caminho!="")dominio=dominio.replace(/\.+$/,"")
						v="http://"+dominio+caminho
						return v
					}

// FUNÇÕES INDEPENDENTES DE LANCAMENTO =====================================================================

					/*================================================================================================
					 Encaminhando focus() para proximo campo sem condição
					==================================================================================================*/
					function goField(n){
						n.focus()
					}

					/*================================================================================================
					 Verifica campo vazio
					==================================================================================================*/
					function verifyEmpty(o){
						obj= o
						obj.value=trim(obj.value)
						if (obj.value == ""){ // se o campo referenciado esta vazio 
							alert("Este campo não pode estar vazio!")// alerta usuário 
							setTimeout("obj.focus()",300)} //mantem focus()
					}
					
					/*================================================================================================
					 Remove espaço vazio de String
					==================================================================================================*/
					function trim(obj) {
						return obj.replace(/^\s+|\s+$/g,"")}





/* 
	#####################################################################################################################
    # Design by Óptica Design & Web 2008                                                                                #
	#####################################################################################################################
    # Designer Programador: Stevão Rodrigues Tartari                                                                    #
    # e-mail: optica.dw@gmail.com																						#
    # phone: +55 (19) 9206-6215																							#
    # www.opticadw.com																									#
	#####################################################################################################################
    # Site produzido e licenciado para rafazimbaldi.com.br 																#
	# É proibida a reprodução ou publicação do conteúdo deste site, em todo ou em parte, sem prévia autorização, da 	#
    # Óptica Design & Web, seja ela verbal ou escrita, conforme lei de proteção aos direitos autorais n° 9.610 de 19 	#
    # de Fevereiro de 1998																								#
    # Qual o seu valor? Programador ou Copiador ?																		#
	#####################################################################################################################
*/