function Mascara(o,f){
 v_obj=o;
 v_fun=f;
 setTimeout("ExecMascara()",1);
}

function ExecMascara(){
 v_obj.value=v_fun(v_obj.value);
}

function Busca(v)
{
	v=v.replace(/&/g, "");
	v=v.replace(/\|/g, "");
	return v;
}

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
}

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
}

function BoletoBancario(v){
 v=v.replace(/\D/g,""); //Remove tudo o que não é dígito
 v=v.replace(/^(\d{5})(\d)/,"$1.$2");
 v=v.replace(/^(\d{5}.\d{5})(\d)/,"$1 $2");
 v=v.replace(/^(\d{5}.\d{5} \d{5})(\d)/,"$1.$2");
 v=v.replace(/^(\d{5}.\d{5} \d{5}.\d{6})(\d)/,"$1 $2");
 v=v.replace(/^(\d{5}.\d{5} \d{5}.\d{6} \d{5})(\d)/,"$1.$2");
 v=v.replace(/^(\d{5}.\d{5} \d{5}.\d{6} \d{5}.\d{6})(\d)/,"$1 $2");
 v=v.replace(/^(\d{5}.\d{5} \d{5}.\d{6} \d{5}.\d{6} \d{1})(\d)/,"$1 $2");
 return v
}

function Data(t , str, e)
{
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	var num = /^\d+$/;
	if(key <32)
		return true;
	if(num.test(keychar))
	{
		if(t=='dia')
		{
			if(str.length==1)
			{
				var dia = str.charAt(0)+keychar;
				if(dia >31 || dia<01)
				{
					return false;
				}
				else
					return true;	
			}
		}
		else if(t=='mes')
		{
			if(str.length==1)
			{
				var mes = str.charAt(0)+keychar;
				if(mes >12 || mes<01)
				{
					return false;
				}
				else
					return true;	
			}
		}
		else if(t=='ano')
		{
			if(str.length == 0)
			{
				if(keychar>2 || keychar<1)
					return false;
				else
					return true;
			}
		}	
	}
	else
		return false;
}

function ValidaData( data ) {
	var parts = data.split("\\");
	var day = parts[0];
	var month = parts[1];
	var year = parts[2];
    var myDate = new Date();
    myDate.setFullYear( year, (month - 1), day );
 
    return ((myDate.getMonth()+1) == month && day<32);
}

function Verifica_Data(dia, mes, ano)
{
	var dia_aniversario = dia.value;
	var mes_aniversario = mes.value;
	var ano_aniversario = ano.value;

	
	if(dia_aniversario != "" && mes_aniversario != "" && ano_aniversario != "")
	{
		if(mes_aniversario != 2)
		{
			if(mes_aniversario == 2 || mes_aniversario == 6 || mes_aniversario == 4 || mes_aniversario == 9 || mes_aniversario == 11 )
			{
				if(dia_aniversario > 30)
					return false;
				else
					return true;
			}
			else
				return true;
		}
		else
		{
			if((ano_aniversario % 4 == 0) || (ano_aniversario % 100 == 0) || (ano_aniversario % 400 == 0))
			{
				if(dia_aniversario > 29)
					return false;
				else
					return true;
			}
			else
			{
				if(dia_aniversario > 28)
					return false;
				else
					return true;
			}
		}
	}
	else
		return false;
}

function Cep(v) {
    v=v.replace(/\D/g, "");
    v=v.replace(/^(\d{5})(\d)/, "$1-$2");
    return v;
}

function AlfaNumerico(v) {
    v=v.replace(/>/g, "");
    v=v.replace(/</g, "");
	v=v.replace(/\\/g, "");	
    return v;
}

function Numeros(v){
 return v.replace(/\D/g,"");
}

function Mod(val)
{
	if(val<0)
		return -val;
	else
		return val;
}

function MoedaToNumber(v)
{
	v=v.replace(/\./g, '');
	v=v.replace(/\,/g, '');
	return v;		
}

function MoedaToFloat(v)
{
	v=v.replace(/\./g, '');
	v=v.replace(/\,/g, '.');
	return parseFloat(v);
}

function FloatToMoeda(val)
{
	val = val+"";
	var arr = val.split('.');
	var reais = arr[0];
	var centavos = '00';
	if(arr[1])
		centavos = arr[1];
	var reaisformatado = '';
	for(i=reais.length-1;i>=0;i--)
	{
		if(Mod(i-reais.length+1)>2 && Mod(i-reais.length+1)%3==0)
			reaisformatado = reais.charAt(i)+'.'+reaisformatado;
		else
			reaisformatado = reais.charAt(i)+reaisformatado;
	}
	return reaisformatado+','+centavos;
}

function Moeda(v)
{
	v=v.replace(/\D/g, '');
	v=v.replace(/^[0]*/g, '');
	if(!parseInt(v, 10))
		return '0,00';
	v = parseInt(v, 10)+'';
	centavos = v.substring(v.length-2);
	if(centavos=='')
		centavos='0';
	if((parseInt(centavos, 10)+"").length < 2)
		centavos = "0"+parseInt(centavos, 10);
	reais = v.substring(0, v.length-2);
	if(reais=='')
		reais = '0';
	reaisformatado = '';
	for(i=reais.length-1;i>=0;i--)
	{
		if(Mod(i-reais.length+1)>2 && Mod(i-reais.length+1)%3==0)
			reaisformatado = reais.charAt(i)+'.'+reaisformatado;
		else
			reaisformatado = reais.charAt(i)+reaisformatado;
	}
	v = reaisformatado+','+centavos;
	return v;
}

function IsEmail(str)
{
	var mail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	if(mail.test(str))
		return true;
	else
	{
		return false;
	}
}

function isUrl(s) {
	var regexp = /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
	return regexp.test(s);
}

function IsNumber(val)
{
	if(!isNaN(val))
		return true;
	else
		return false;
}

function IsCnpj(CNPJ)
 {
	if (CNPJ.length < 18) return false;
	if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
	  return false;
	}
	 //substituir os caracteres que não são números
	if(document.layers && parseInt(navigator.appVersion) == 4){
	   x = CNPJ.substring(0,2);
	   x += CNPJ. substring (3,6);
	   x += CNPJ. substring (7,10);
	   x += CNPJ. substring (11,15);
	   x += CNPJ. substring (16,18);
	  CNPJ = x;
	} else {
	   CNPJ = CNPJ. replace (".","");
	   CNPJ = CNPJ. replace (".","");
	   CNPJ = CNPJ. replace ("-","");
	   CNPJ = CNPJ. replace ("/","");
	}
	var nonNumbers = /\D/;
	if (nonNumbers.test(CNPJ)) return false;
	var a = [];
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	for (i=0; i<12; i++){
	   a[i] = CNPJ.charAt(i);
	   b += a[i] * c[i+1];
	}
	if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	b = 0;
	for (y=0; y<13; y++) {
	   b += (a[y] * c[y]);
	}
	if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
	   return false;
	}
	return true;
}

function IsCpf(cpf) {
    cpf=cpf.replace(/\D/g,""); //Remove tudo o que não é dígito
	if (cpf.length < 11) return false;
	var nonNumbers = /\D/;
	if (nonNumbers.test(cpf)) return false;
	if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
		return false;
   }
   var a = [];
   var b = new Number;
   var c = 11;
   for (i=0; i<11; i++){
		   a[i] = cpf.charAt(i);
		   if (i < 9) b += (a[i] * --c);
   }
   if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
   b = 0;
   c = 11;
   for (y=0; y<10; y++) b += (a[y] * c--);
   if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
   if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
		return false;
   }
   return true;
}

function CheckTextAreas_MaxLength()
{
	for(var i=0; i<textarea_maxlength.length; i++)
	{
	  var mlength = parseInt(textarea_maxlength[i].getAttribute("maxlength"));
	  var id_total = document.getElementById(textarea_maxlength[i].getAttribute("total_caracteres"));
	  var id_restante = document.getElementById(textarea_maxlength[i].getAttribute("restantes_caracteres"));	  
	  if (textarea_maxlength[i].value.length>mlength)
		textarea_maxlength[i].value=textarea_maxlength[i].value.substring(0,mlength);
	  if(id_total)	
	  	id_total.innerHTML = textarea_maxlength[i].value.length;
	  if(id_restante)	
	  	id_restante.innerHTML = mlength - textarea_maxlength[i].value.length;
	}
}

var textarea_maxlength = new Array();
var check_textarea = false;
//Chamar essa função para validar TextArea <textarea  name="teste" id="teste" cols="45" rows="5" maxlength="10" total_caracteres="carac_total" restantes_caracteres="restante"> **onde total_caracteres e restantes_caracteres são ids.
function ValidateTextArea(id)
{
	var textarea = document.getElementById(id);
	if(textarea.getAttribute("maxlength") && parseInt(textarea.getAttribute("maxlength")))
	{
		textarea.onkeyup = function(){return ismaxlength(this)};
		textarea_maxlength.push(textarea);		
	}
	if(!check_textarea)
	{
	  setInterval('CheckTextAreas_MaxLength()', 100);
	}
}

function ismaxlength(obj){
  var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : "";
  if (obj.getAttribute && obj.value.length>mlength)
    obj.value=obj.value.substring(0,mlength)
}
