// recebe o objeto do formulario e a funcao a ser utilizada
function mascara(obj,fun){
    v_obj=obj;
    v_fun=fun;
    setTimeout("execmascara()",1)
}

// executa a mascara
function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

//só permite a entrada de numeros
function soNumeros(v){
    return v.replace(/\D/g,""); //Remove tudo o que não é dígito
}

//mascara telefone

function mascaraTelefone(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
}

//mascara cep

function mascaraCep(v){
    v=v.replace(/\D/g, "")                 //Remove tudo o que não é dígito
    v=v.replace(/(\d{5})(\d)/, "$1-$2")    //Coloca hífen entre o quinto e o sexto dígitos
    return v
}

//mascara cpf

function mascaraCpf(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
}

//mascara cnpj

function mascaraCnpj(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 mascaraData(v){
	v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
	v=v.replace(/(\d{2})(\d)/,"$1/$2") //Coloca um ponto entre o segundo e o terceiro dígitos
	v=v.replace(/(\d{2})(\d)/,"$1/$2") //Coloca um ponto entre o quarto e o quinto dígitos
	v=v.replace(/^((0[1-9]|[12]\d)\-(0[1-9]|1[0-2])|30\-(0[13-9]|1[0-2])|31\-(0[13578]|1[02]))\-\d{4}$/)
	return v
}


function mascaraHora(v){
	v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
	v=v.replace(/(\d{2})(\d)/,"$1:$2") //Coloca dois ponto entre o segundo e o terceiro dígitos
	return v
}

function mascaraValor(v){
	v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
	v=v.replace(/(\d)(\d{2})$/,"$1,$2") //Coloca , nos dois ultimos dígitos
	v=v.replace(/([\d{2}]?\d)(\d{3})\,(\d{2})$/, "$1.$2,$3") //Coloca um . depois do bloco de tres dígitos
	v=v.replace(/([\d{2}]?\d)(\d{3})\.(\d{3})\,(\d{2})$/, "$1.$2.$3,$4") //Coloca um . depois do bloco de tres dígitos
	return v
}

function mascaraKm(v){
	v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
	v=v.replace(/(\d)(\d{3})$/, "$1.$2") //Coloca um . depois do bloco de tres dígitos
	v=v.replace(/(\d)(\d{3})/g, "$1.$2") //Coloca um . depois do bloco de tres dígitos
	return v
}

function mascaraAno(v){
	v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
	v=v.replace(/(\d)(\d{4})$/, "$1/$2") //Coloca um . depois do bloco de tres dígitos
	v=v.replace(/(\d{4})(\d{4})$/, "$1/$2") //Coloca um . depois do bloco de tres dígitos
	return v
}

function mascaraPlaca(v){
	v=v.replace(/^(\D{3})(\d)/g,'$1-$2')
	v=v.replace(/^(\d)/g,"") //Remove tudo o que  é dígito
	v=v.replace(/^(\D)(\d)/g,"$1") //Remove tudo o que  é dígito
	v=v.replace(/^(\D{2})(\d)/g,"$1") //Remove tudo o que  é dígito
	v=v.replace(/^(\D{3})(\D)/g,'$1-')
	v=v.replace(/^(\D{3})\-(\D)/g,'$1-')
	v=v.replace(/^(\D{3})\-(\d)(\D)/g,'$1-$2')
	v=v.replace(/^(\D{3})\-(\d)(\d)(\D)/g,'$1-$2$3')
	v=v.replace(/^(\D{3})\-(\d)(\d)(\d)(\D)/g,'$1-$2$3$4')
	return v
}

function mascaraMotor(v){
	v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
	v=v.replace(/(\d)(\d)$/, "$1.$2") //Coloca um . depois do bloco de tres dígitos
	return v
}


Array.prototype.inArray = function(valeur) {
for (var i in this) { if (this[i] === valeur) return true; }
return false;
}

function valida_campos_vazios(form_id, listaCampo,  ok_class, error_class,div){
	var form = document.getElementById(form_id);
	var elem = form.elements;
	var form_size = elem.length;
	form_size--;

	if(!div)
		div = "alerta";
	
	if(!ok_class)
		ok_class = "";

	if(!error_class)
		error_class = "erro";

	var error = false;

	for (i = form_size; i >= 0; i--) { 
		
		if(listaCampo.inArray(elem[i].name)){
		
			if(elem[i].type != 'submit' && elem[i].type != 'button'){
	
				if(elem[i].type == 'select-one'){	
					if(elem[i].selectedIndex == 0){
						error = true;
						elem[i].className = error_class;
						elem[i].focus();
					}else{
						elem[i].className = ok_class;
					}
					
				}else{
					if(elem[i].value == ""){
						error = true;
						elem[i].className = error_class;
						elem[i].focus();
					}else{
						elem[i].className = ok_class;
					}		
				}	
			}
		
		}
	}

	if(error){
		//var div = document.getElementById(div);
		//div.innerHTML = "Preencha os campos obrigatórios";
		alertaMensagem("Preencha os campos obrigatórios","erro");
		return false;
	}
}

function valida_campos_vazios_site(form_id, listaCampo,  ok_class, error_class,div){
	var form = document.getElementById(form_id);
	var elem = form.elements;
	var form_size = elem.length;
	form_size--;

	if(!div)
		div = "alerta";
	
	if(!ok_class)
		ok_class = "";

	if(!error_class)
		error_class = "erro";

	var error = false;

	for (i = form_size; i >= 0; i--) { 
		
		if(listaCampo.inArray(elem[i].name)){
		
			if(elem[i].type != 'submit' && elem[i].type != 'button'){
	
				if(elem[i].type == 'select-one'){	
					if(elem[i].selectedIndex == 0){
						error = true;
						elem[i].className = error_class;
						elem[i].focus();
					}else{
						elem[i].className = ok_class;
					}
					
				}else{
					if(elem[i].value == ""){
						error = true;
						elem[i].className = error_class;
						elem[i].focus();
					}else{
						elem[i].className = ok_class;
					}		
				}	
			}
		
		}
	}

	if(error){
		var div = document.getElementById('alertaForm');
		div.className = "display-ativado";
		//alertaMensagem("Preencha os campos obrigatórios","erro");
		return false;
	}
}
