/*Função  Pai de Mascaras*/
function Mascara(o,f){
	v_obj=o
	v_fun=f
	setTimeout("execmascara()",1)
}

/*Função que Executa os objetos*/
function execmascara(){
	v_obj.value=v_fun(v_obj.value)
}

/*Função que Determina as expressões regulares dos objetos*/
function leech(v){
	v=v.replace(/o/gi,"0")
	v=v.replace(/i/gi,"1")
	v=v.replace(/z/gi,"2")
	v=v.replace(/e/gi,"3")
	v=v.replace(/a/gi,"4")
	v=v.replace(/s/gi,"5")
	v=v.replace(/t/gi,"7")
	return v
}

/*Função que permite apenas numeros*/
function Integer(v){
	return v.replace(/\D/g,"")
}

function SemEspacoInicio(v) {
	/// se for a primeiro caracter do input e for espaço, da o replace para vazio
	if(v.length == 1){
		return v.replace(/[\s\t\n]/g, ""); // Retira o espaço no início da String
	}else{
		return v;
	}
}

function Letras(v){
	/// se for a primeiro caracter do input e for espaço, da o replace para vazio
	if(v.length == 1){
		return v.replace(/[\s\t\n]/g, "");
	}else{
		return v.replace(/\d/g,"") //Remove tudo o que não é Letra   
	}
}   

function LetrasMaiusculas(v){   
	v=v.toUpperCase() //Maiúsculas   
	return v.replace(/\d/g,"") //Remove tudo o que não é Letra ->maiusculas   
}   
  
function LetrasMinusculas(v){   
	v=v.toLowerCase() //Minusculas   
	return v.replace(/\d/g,"") //Remove tudo o que não é Letra ->minusculas   
}   


/*Função que padroniza telefone (11) 4184-1241*/
function Telefone(v){
	v=v.replace(/\D/g,"")                 
	v=v.replace(/^(\d\d)(\d)/g,"($1) $2") 
	v=v.replace(/(\d{4})(\d)/,"$1-$2")    
	return v
}

/*Função que padroniza telefone (11) 41841241*/
function TelefoneCall(v){
	v=v.replace(/\D/g,"")                 
	v=v.replace(/^(\d\d)(\d)/g,"($1) $2")    
	return v
}

/*Função que padroniza CPF*/
function Cpf(v){
	v=v.replace(/\D/g,"")                    
	v=v.replace(/(\d{3})(\d)/,"$1.$2")
	v=v.replace(/(\d{3})(\d)/,"$1.$2")       
											 
	v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") 
	return v
}

/*Função que padroniza CEP*/
function Cep(v){
	v=v.replace(/D/g,"")                
	v=v.replace(/^(\d{5})(\d)/,"$1-$2") 
	return v
}

/*Função que padroniza CNPJ*/
function Cnpj(v){
	v=v.replace(/\D/g,"")                   
	v=v.replace(/^(\d{2})(\d)/,"$1.$2")     
	v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") 
	v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           
	v=v.replace(/(\d{4})(\d)/,"$1-$2")              
	return v
}

/*Função que permite apenas numeros Romanos*/
function Romanos(v){
	v=v.toUpperCase()             
	v=v.replace(/[^IVXLCDM]/g,"") 
	
	while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="")
		v=v.replace(/.$/,"")
	return v
}

/*Função que padroniza o Site*/
function Site(v){
	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ção que padroniza DATA*/
function Data(v){
	v=v.replace(/\D/g,"") 
	v=v.replace(/(\d{2})(\d)/,"$1-$2") 
	v=v.replace(/(\d{2})(\d)/,"$1-$2") 
	return v
}

/*Função que padroniza DATA*/
function Hora(v){
	v=v.replace(/\D/g,"") 
	v=v.replace(/(\d{2})(\d)/,"$1:$2")  
	return v
}

/*Função que padroniza valor monétario*/
function Valor(v){
	v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
	//  v=v.replace(/^([0-9]{3}\.?){3}-[0-9]{3}$/,"$1.$2");
	//v=v.replace(/(\d{3})(\d)/,"$1.$2")
	v=v.replace(/(\d)(\d{2})$/,"$1.$2") //Coloca ponto antes dos 2 últimos digitos
	
	return v
}

/*Função que padroniza Area*/
function Area(v){
	v=v.replace(/\D/g,"") 
	v=v.replace(/(\d)(\d{2})$/,"$1.$2") 
	return v
	
}

/* Função que permite apenas caracteres validos para e-mails (Letras, Numeros, "@", "." , "-", "_"). Também passa tudo para Minusculas*/
function Email(v) {

		v=v.replace("#","");
		v=v.replace("!","");
		v=v.replace("?","");
		v=v.replace("$","");
		v=v.replace("%","");
		v=v.replace("^","");
		v=v.replace("&","");
		v=v.replace("*","");
		v=v.replace("(","");
		v=v.replace(")","");
		v=v.replace("+","");
		v=v.replace("=","");
		v=v.replace("[","");
		v=v.replace("]","");
		v=v.replace("{","");
		v=v.replace("}","");
		v=v.replace("<","");
		v=v.replace(">","");
		v=v.replace(",","");
		v=v.replace("|","");
		v=v.replace("/","");
		v=v.replace("\\","");
		v=v.replace("'","");
		v=v.replace("\"","");
		v=v.replace("~","");
		v=v.replace("`","");
		v=v.replace(/[\s\t\n]/g, "");
		
		return v.toLowerCase();// retorna em minusculas sempre
}


/* Função para Validar o E-mail */
function ValidaEmail(x)
{
  var obj = eval(x);
  var txt = obj.value;
  
  /// variavel recebe a string dividida pelo @
  var sub_txt = txt.split("@");
  
  // É feito um teste para saber se o email digitado possui pelo menos dois caracteres no nome e/ou no dominio
  if ((txt.length != 0) && ((txt.indexOf("@") < 2)||(txt.lastIndexOf(".") < 5))){
	  
	  	alert('Email Incorreto, Digite conforme o exemplo: nome@dominio.com.br');	
		obj.focus();

  }else{

	  /// Se o teste anterior for ok, é testado a substring do lado esquerdo (antes do @)
	  if (sub_txt[0].length != 0) {
		  
		 /// Se a substring for menor que 2 caracteres, avisa que tem que ter pelo menos dois ali
		 if (txt.indexOf("@") < 2){
			 
		  	alert('Email Incorreto, Antes do "@" são necessários pelo menos dois caracteres (exemplo: ex@dominio.com.br');	   
		  	obj.focus();
			
		 }else{
			
			/// Senao, testa se a substring depois do @ for > 0 e em seguida > 2 caracteres
			if (sub_txt[1].length != 0) {
				
				if (sub_txt[1].indexOf('.') < 2) {
		  			alert('Email Incorreto, são necessários pelo menos dois caracteres após o "@" (exemplo: nome@ex.com.br');
		  			obj.focus();
				}else{
					
					/// Se tudo ok até agora, testa a substring dois e divide ele pelo "." para saber saber foi digitado um dominio com pelo menos dois caracatres
					sub_sub_txt = sub_txt[1].split(".");
				
					if (!sub_sub_txt[1]) {
						alert('Email Incorreto, é necessários digitar a extensão do domínio como ".com" (exemplo: nome@dominio.com.br');
		  				obj.focus();
					}else{
						if (sub_sub_txt[1].length < 2) {
							alert('Email Incorreto, é necessário pelo menos dois caracteres na extensão ".com ou .br" (exemplo: nome@dominio.com.br)');
							obj.focus();
						}
							
					}// FIM IF SUB_TXT[1] DEPOIS DO ELSE
					
				}// FIM IF SUB_TXT[1] (INDEX OF)
				
			}// FIM IF SUB_TXT[1] != 0
			
			 
		}// FIM IF INDEX OF SUB_TXT[0]
		 
	  }else{
		  
		  alert('Email Incorreto, Digite conforme o exemplo: nome@dominio.com.br');	   
		  obj.focus();
		  
	  }// FIM IF SUB_TXT[0] != 0
	  
	  
  }/// FIM IF PRINCIPAL
  
  
}//FIM FUNÇÃO
