jQuery(function($j){
	$j("input.dateField").mask("99/99/9999",{placeholder:"_",completed:function(){validaData(this.attr("id"),1);}});
	$j("input.CEP").mask("99999-999",{completed:function(){void(0);}});
	$j("input.CPF").mask("999.999.999-99",{completed:function(){void(0);}});
	$j("input.CNPJ").mask("99.999.999/9999-99",{completed:function(){void(0);}});
	$j("input.telefone").mask("(99)9999-9999",{completed:function(){void(0);}});
	$j("input.moeda").mask("9.999.999.99",{completed:function(){void(0);}});
	$j("input.peso_avaliacao").mask("99", {completed:function(){void(0);}});
});

function validaCPF(Objcpf){
    var cpf = Objcpf.value;
    exp = /\.|\-/g
    cpf = cpf.toString().replace( exp, "" );
    var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
    var soma1=0, soma2=0;
    var vlr =11;
    
    for(i=0;i<9;i++){
        soma1+=eval(cpf.charAt(i)*(vlr-1));
        soma2+=eval(cpf.charAt(i)*vlr);
        vlr--;
    }    
    soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
    soma2=(((soma2+(2*soma1))*10)%11);
    
    var digitoGerado=(soma1*10)+soma2;
    if(digitoGerado!=digitoDigitado)    
        alert('CPF Invalido!');        
}

function validaCNPJ(ObjCnpj){
    var cnpj = ObjCnpj.value;
    var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
    var dig1= new Number;
    var dig2= new Number;
    
    exp = /\.|\-|\//g
    cnpj = cnpj.toString().replace( exp, "" );
    var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
        
    for(i = 0; i<valida.length; i++){
        dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);    
        dig2 += cnpj.charAt(i)*valida[i];    
    }
    dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
    dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));
    
    if(((dig1*10)+dig2) != digito)    
        alert('CNPJ Invalido!');
        
}

function validaCep(cep){
    exp = /\d{2}\.\d{3}\-\d{3}/
    if(!exp.test(cep.value))
        alert('Numero de Cep Invalido!');        
}

function validaData(dataId,obrigatorio){
    var data = document.getElementById(dataId);
    var strdata = data.value;
    var mask = "99/99/9999";
	
 	if((obrigatorio == 1) || (obrigatorio == 0 && strdata != "")){
 		if (strdata.length != 10){
			clearDateField(dataId,mask);
			messageBox("Formato da data não é válido. Formato correto: - dd/mm/aaaa.",350,100,dataId);
 			return false;
 		}

 		if ("/" != strdata.substr(2,1) || "/" != strdata.substr(5,1)){
 			clearDateField(dataId,mask);
			massageError("Formato da data não é válido. Formato correto: - dd/mm/aaaa.",350,80,dataId)
 			return false;
 		}
 		dia = strdata.substr(0,2)
 		mes = strdata.substr(3,2);
 		ano = strdata.substr(6,4);

 		if (isNaN(dia) || dia > 31 || dia < 1){
 			clearDateField(dataId,mask);
			messageBox("Formato do dia não é válido.",250,80,dataId);
 			return false;
 		}
 		if (mes == 4 || mes == 6 || mes == 9 || mes == 11){
 			if (dia == "31"){
				clearDateField(dataId,mask);
				messageBox("O mês informado não possui 31 dias.",250,80,dataId);
 				return false;
 			}
 		}
 		if (mes == "02"){
 			bissexto = ano % 4;
 			if (bissexto == 0){
 				if (dia > 29){
					clearDateField(dataId,mask);
					messageBox("O mês informado possui somente 29 dias.",250,80,dataId);
 					return false;
 				}
 			}else{
 				if (dia > 28){
					clearDateField(dataId,mask);
					messageBox("O mês informado possui somente 28 dias.",250,80,dataId);
 					return false;
 				}
 			}
 		}
 		if (isNaN(mes) || mes > 12 || mes < 1){
			clearDateField(dataId,mask);
			messageBox("Formato do mês não é válido.",250,80,dataId);
 			return false;
 		}

 		if (isNaN(ano)){
			clearDateField(dataId,mask);
			messageBox("Formato do ano não é válido.",250,80,dataId);
 			return false;
 		}
 	}
 }
 
function clearDateField(dataId,mask){
	var data = document.getElementById(dataId);
	$j("#"+dataId).unmask();
	data.value = "";
	$j("input.dateField").mask(mask,{placeholder:"_",completed:function(){validaData(this.attr("id"),1);}});

}
