/**
 * @author ivan.augusto
 */
$.validator.addMethod("hora", function(value, element){
    return this.optional(element) || /^([0-1]?[0-9]|[2][0-3]):[0-5][0-9]$/.test(value);
}, "Hora InvÃ¡lida");

$.validator.addMethod("dataBR", function(value, element){
    return this.optional(element) || /^(((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))$/.test(value);
}, "Data InvÃ¡lida");

$.validator.addMethod("cnpj", function(value, element){
    var cnpjRegEx = /[\_\.\-\/]/g;
    var cnpj = value;
    cnpj = cnpj.replace(cnpjRegEx, "");
    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;
    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) 
        return false;
    return true;
}, "CNPJ InvÃ¡lido");

$.validator.addMethod("cpf", function(value, element, params){
    var cpfRegEx = /[\_\.\-]/g;
    s = value;
    s = s.replace(cpfRegEx, "");
    var i;
    if (s.length != 11 || s == "00000000000" || s == "11111111111" ||
    s == "22222222222" ||
    s == "33333333333" ||
    s == "44444444444" ||
    s == "55555555555" ||
    s == "66666666666" ||
    s == "77777777777" ||
    s == "88888888888" ||
    s == "99999999999") 
        return false;
    var c = s.substr(0, 9);
    var dv = s.substr(9, 2);
    var d1 = 0;
    for (i = 0; i < 9; i++) {
        d1 += c.charAt(i) * (10 - i);
    }
    if (d1 == 0) 
        return false;
    d1 = 11 - (d1 % 11);
    if (d1 > 9) 
        d1 = 0;
    if (dv.charAt(0) != d1) 
        return false;
    d1 *= 2;
    for (i = 0; i < 9; i++) {
        d1 += c.charAt(i) * (11 - i);
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) 
        d1 = 0;
    if (dv.charAt(1) != d1) 
        return false;
    return true;
}, "CPF Inválido");

$.validator.addMethod("antesDe", function(value, element, param){
    var validacao = function(){
        var dataRegEx = /[\/]/g;
        var d1 = value;
        var d2 = $(param).val();
        d1 = d1.replace(dataRegEx, "");
        d1 = d1.substring(4) + d1.substring(2, 4) + d1.substring(0, 2);
        d2 = d2.replace(dataRegEx, "");
        d2 = d2.substring(4) + d2.substring(2, 4) + d2.substring(0, 2);
        return d1 <= d2;
    }
    return this.optional(element) || validacao();
}, "Data Invalida");

$.validator.addMethod("depoisDe", function(value, element, param){
    var validacao = function(){
        var dataRegEx = /[\/]/g;
        var d1 = value;
        var d2 = $(param).val();
        d1 = d1.replace(dataRegEx, "");
        d1 = d1.substring(4) + d1.substring(2, 4) + d1.substring(0, 2);
        d2 = d2.replace(dataRegEx, "");
        d2 = d2.substring(4) + d2.substring(2, 4) + d2.substring(0, 2);
        return d1 >= d2;
    }
    return this.optional(element) || validacao();
}, "Data Invalida");

/*
$.validator.addMethod("depoisDeh", function(value, element, param){
    var validacao = function(){
        //var horaRegEx = /[:]/g;
        var d1 = value;
        var d2 = $(param).val();
        d1 = d1.replace(":","");
       // d1 = d1.substring(4) + d1.substring(2, 4) + d1.substring(0, 2);
        d2 = d2.replace(":","");
        //d2 = d2.substring(4) + d2.substring(2, 4) + d2.substring(0, 2);
        return d1 >= d2;
    }
    return this.optional(element) || validacao();
}, "Hora Invalida");*/

$.validator.addMethod("depoisDeDataHora", function(value, element, param){
    var validacao = function(){
        var doc = document.forms[0];
        var d1 = doc["dt_credenciamento"].value;
	var d2 = doc["dt_iniciosessao"].value;
        var dataRegEx = /[\/]/g;
        d1 = d1.replace(dataRegEx, "");
        d1 = d1.substring(4) + d1.substring(2, 4) + d1.substring(0, 2);
        d2 = d2.replace(dataRegEx, "");
        d2 = d2.substring(4) + d2.substring(2, 4) + d2.substring(0, 2);
        d1=parseInt(d1);
        d2=parseInt(d2);
         if(d2 <= d1){         
         var d3 = doc["hr_credenciamento"].value;
         var d4 = doc["hr_iniciosessao"].value;
         d3 = d3.replace(":","");
         d4 = d4.replace(":","");
         d3=parseInt(d3);
         d4=parseInt(d4);
          return d3<=d4 ;
       }else
           return true ;
    }
    return this.optional(element) || validacao();
}, "Hora Invalida");
