
function mascara(o,f){
    v_obj=o
	if(f.name)f=this[f.name];
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

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 barra entre o segundo e o terceiro dígitos
    v=v.replace(/(\d{2})(\d)/,"$1/$2")    // Coloca uma barra entre o quarto e o quinto dígitos
                                            
    return v
}

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
}

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 cep(v){
    v=v.replace(/D/g,"") 
	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
}

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 soNumeros(v){
	return v.replace(/\D/g,"")
}

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

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

function checkEmail(email){
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return (filter.test(email))?true:false;
}

var ar_cont=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
function checkData(data){

	var array=data.split('/');
	if(data.length!=10||array.length!=3||parseInt(array[1])>12)return false;
	
	var cont=ar_cont[parseInt(array[1])-1];
	if(parseInt(array[1])==2&&parseInt(array[2])%4==0)cont++;
	if(parseInt(array[0])>cont)return false;
	
	return true;
}
function checkForm(ar,form,allErros){ //ar = [nome, nome_output, min_chars]
	
	var cp='';
	var nome='';
	var ar_erros=new Array();
	var min_chars=0;
	
	for(var x=0;x<ar.length;x++){
		if(typeof(ar[x])=='string'){
			cp=ar[x];
			nome=ar[x].substr(0,1).toUpperCase()+ar[x].substr(1);
			min_chars=0;
		}else{
			cp=ar[x][0];
			nome=ar[x][1];
			if(ar[x][2])min_chars=ar[x][2];
		}
		
		//se radio
		if(!(form[cp].type)&&form[cp][0].type=='radio'){
			var cont=0;
			for(var y=0;y<form[cp].length;y++){
				if(form[cp][y].checked){
					cont=1;
					break;
				}
			}
			if(cont)continue;
			
			if(allErros){
				ar_erros.push('Informe '+nome);
			}else{
				alert('Informe '+nome+'!');
				form[cp][0].focus();
				return false;
			}
		
		//se input | select
		}else if(!form[cp].value){
			
			if(allErros){
				ar_erros.push('Informe '+nome+'!');
			}else{
				alert('Informe '+nome+'!');
				form[cp].focus();
				return false;				
			}
		
		//se input - min_chars
		}else if(min_chars&&form[cp].value.length<min_chars){
		
			if(allErros){
				ar_erros.push('Informe no minimo ['+min_chars+'] caracteres para '+nome+'!');
			}else{
				alert('Informe no minimo ['+min_chars+'] caracteres para '+nome+'!');
				form[cp].focus();
				return false;				
			}
		
		//se fone, data ou email
		}else{
			if(cp.indexOf('fone')!=-1){
				if(form[cp].value.length==14)continue;
			}else if(cp.indexOf('data')!=-1){
				if(checkData(form[cp].value))continue;
			}else if(cp.indexOf('email')!=-1){
				if(checkEmail(form[cp].value))continue;
			}else{
				continue;
			}
			if(allErros){
				ar_erros.push('Informe corretamente '+nome);
			}else{
				alert('Informe corretamente '+nome+'!');
				form[cp].focus();
				return false;				
			}
		}
	}
	if(ar_erros.length){
		alert('- '+ar_erros.join('\n- '));
		return false;
	}
	return true;
}

function getAjax(){
	try{
		var ajax = new ActiveXObject("Microsoft.XMLHTTP"); //carrega categoria
	}catch(e){
		try{	
			var ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(ex){
			try{
			   var ajax = new XMLHttpRequest();
			}catch(exc){
			   alert("Esse browser não tem recursos para uso do Ajax");
			   var ajax = null;
			}
		}
	}
	return ajax;
}
