﻿function execmask() {
    obj.value = fun(obj.value);
}
function execMaskHour() {
    obj.value = hour(integer(obj.value));
}
function maskCep() {
    obj = Ext.getDom("ctl00_ContentPlaceHolder1_txtCep_txt");
    mask(obj, cep);
    obj.maxLength = 9;
}
function maskCpf() {
    obj = Ext.getDom("ctl00_ContentPlaceHolder1_txtCpf_txt");
    mask(obj, cpf);
    obj.maxLength = 14;
}
function maskCnpj() {
    obj = Ext.getDom("txtCnpj_txt");
    mask(obj, cnpj);
    obj.maxLength = 18;
}
function maskBusinessPhone() {
    obj = Ext.getDom("txtBusinessPhone_txt");
    mask(obj, phone);
    obj.maxLength = 14;
}
function maskResidentialPhone() {
	obj = Ext.getDom("txtTelefone_txt");
    mask(obj, phone);
    obj.maxLength = 14;
}
function maskCellphone() {
    obj = Ext.getDom("ctl00_ContentPlaceHolder1_txtMobile_txt");
    mask(obj, phone);
    obj.maxLength = 14;
}
function maskPhone() {
    obj = Ext.getDom("txtPhone_txt");
    mask(obj, phone);
    obj.maxLength = 14;
}
function maskInitialHour() {
    obj = Ext.getDom("txtInitialHour_txt");
    maskHour(obj, hour)
    obj.maxLength = 5;
}
function maskFinalHour() {
    obj = Ext.getDom("txtFinalHour_txt");
    masckHour(obj, hour)
    obj.maxLength = 5;
}
function maskHour(object, func) {
    obj = object;
    fun = func;
    setTimeout("execMaskHour()", 0);
}
function mask(object, func) {
    obj = object;
    fun = func;
    setTimeout("execmask()", 0);
}
function validateInitialHour() {
    obj = Ext.getDom("txtInitialHour_txt");
    if (v_hour(obj))
        return true;
    return false;
}
function validateFinalHour() {
    obj = Ext.getDom("txtFinalHour_txt");
    if (v_hour(obj))
        return compareHours();
    return false;
}
function phone(v) {
    v = v.replace(/\D/g, "");
    v = v.replace(/^(\d\d)(\d)/g, "($1) $2");
    v = v.replace(/(\d{4})(\d)/, "$1-$2");
    return v;
}
function cpf(v) {
    v = v.replace(/\D/g, "");
    v = v.replace(/(\d{3})(\d)/, "$1.$2");
    v = v.replace(/(\d{3})(\d)/, "$1.$2");
    v = v.replace(/(\d{3})(\d{1,2})$/, "$1-$2");
    return v;
}
function cep(v) {
    v = v.replace(/\D/g, "");
    v = v.replace(/^(\d{5})(\d)/, "$1-$2");
    return v;
}
function cnpj(v) {
    v = v.replace(/\D/g, "");
    v = v.replace(/^(\d{2})(\d)/, "$1.$2");
    v = v.replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3");
    v = v.replace(/\.(\d{3})(\d)/, ".$1/$2");
    v = v.replace(/(\d{4})(\d)/, "$1-$2");
    return v;
}
function textCounter(field, maxlimit) {
    if (field.value.length > maxlimit)
        field.value = field.value.substring(0, maxlimit);
}
function integer(v) {
    return v.replace(/\D/g, "");
}
function unformatNumber(pNum) {
    return String(pNum).replace(/\D/g, "");
}
function validateCpf() {
    var cpf = Ext.getDom("ctl00_ContentPlaceHolder1_txtCpf_txt").value;
    if (cpf == "" || cpf == "undefined")
        return true;
    if (v_cpf(unformatNumber(cpf)) == false) {
        Ext.getCmp("ctl00_ContentPlaceHolder1_txtCpf_txt").markInvalid("CPF Incorreto!");
        return false;
    }
    return true;
}
function validateCep() {
    var cep = Ext.getDom("ctl00_ContentPlaceHolder1_txtCep_txt").value;
    if (cep == "" || cep == "undefined")
        return true;
    if (validationExpressionCEP())
        return true;
    return false;
}
function checkMail() {
    var mail = FLForm.getValue("ctl00_ContentPlaceHolder1_txtEmail_txt");
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
    if (er.test(mail))
        return true;
    else {
        Ext.getCmp("ctl00_ContentPlaceHolder1_txtEmail_txt").markInvalid("Email incorreto!");
        return false;
    }
}
function v_cpf(cpf) {
    var numbers, digits, sum, i, result, same_digits;
    same_digits = 1;
    if (cpf.length < 11)
        return false;
    for (i = 0; i < cpf.length - 1; i++)
        if (cpf.charAt(i) != cpf.charAt(i + 1)) {
        same_digits = 0;
        break;
    }
    if (!same_digits) {
        numbers = cpf.substring(0, 9);
        digits = cpf.substring(9);
        sum = 0;
        for (i = 10; i > 1; i--)
            sum += numbers.charAt(10 - i) * i;
        result = sum % 11 < 2 ? 0 : 11 - sum % 11;
        if (result != digits.charAt(0))
            return false;
        numbers = cpf.substring(0, 10);
        sum = 0;
        for (i = 11; i > 1; i--)
            sum += numbers.charAt(11 - i) * i;
        result = sum % 11 < 2 ? 0 : 11 - sum % 11;
        if (result != digits.charAt(1))
            return false;
        return true;
    }
    else
        return false;
}
function validationExpressionCEP() {
    var c = Ext.getDom("ctl00_ContentPlaceHolder1_txtCep_txt").value;
    if (c.length == 0)
        return true;
    var er = new RegExp("^\\d{5}-\\d{3}$");
    if (er.test(c))
        return true;
    else {
        Ext.getCmp("ctl00_ContentPlaceHolder1_txtCep_txt").markInvalid("CEP Incorreto!");
        return false;
    }
}
function validateCnpj() {
    var cnpj = Ext.getDom("txtCnpj_txt").value;
    if (cnpj == "" || cnpj == "undefined")
        return true;
    if (v_cnpj(unformatNumber(cnpj)) == false) {
        Ext.getCmp("txtCnpj_txt").markInvalid("CNPJ Incorreto!");
        return false;
    }
    return true;
}
function v_cnpj(cnpj) {
    var numbers, digits, sum, i, result, pos, size, same_digits;
    same_digits = 1;
    if (cnpj.length != 14)
        return false;
    for (i = 0; i < cnpj.length - 1; i++) {
        if (cnpj.charAt(i) != cnpj.charAt(i + 1))
            digitos_iguais = 0;
        break;
    }
    if (!same_digits) {
        size = cnpj.length - 2
        numbers = cnpj.substring(0, size);
        digits = cnpj.substring(size);
        sum = 0;
        pos = size - 7;
        for (i = size; i >= 1; i--) {
            sum += numbers.charAt(size - i) * pos--;
            if (pos < 2)
                pos = 9;
        }
        result = sum % 11 < 2 ? 0 : 11 - sum % 11;
        if (result != digits.charAt(0))
            return false;
        size = size + 1;
        numbers = cnpj.substring(0, size);
        sum = 0;
        pos = size - 7;
        for (i = size; i >= 1; i--) {
            sum += numbers.charAt(size - i) * pos--;
            if (pos < 2)
                pos = 9;
        }
        result = sum % 11 < 2 ? 0 : 11 - sum % 11;
        if (result != digits.charAt(1))
            return false;
        return true;
    }
    else
        return false;
}
function hour(h) {
    if (h.length == 4)
        h = h.substring(0, 2) + ":" + h.substring(2, 4);
    return h;
}
function v_hour(hour) {
    var field = Ext.getDom(hour.id).value;
    value = FLForm.getValue("txtInitialHour_txt");
    if (value.length != 5) {
        Ext.getCmp(hour.id).markInvalid("Hora inválida!");
        return false;
    }
    if (field == "" || field == "undefined")
        return true
    var hrs = (hour.value.substring(0, 2));
    var min = (hour.value.substring(3, 5));
    var situation = "";
    if ((hrs < 00) || (hrs > 23) || (min < 00) || (min > 59) || (hour.value == ""))
        situation = "error";
    if (situation == "error") {
        Ext.getCmp(hour.id).markInvalid("Hora inválida!");
        return false;
    }
    return true;
}
function compareHours() {
    var initialHour = Ext.getDom("txtInitialHour_txt").value;
    var finalHour = Ext.getDom("txtFinalHour_txt").value;
    var initialHourHr = initialHour.substring(0, 2);
    var initialHourMin = initialHour.substring(3, 5);
    var finalHourHr = finalHour.substring(0, 2);
    var finalHourMin = finalHour.substring(3, 5);

    if (initialHour == "" && finalHour != "") {
        Ext.getCmp("txtInitialHour_txt").markInvalid("Informe a hora do Início da Reunião");
        return false;
    } else
        Ext.getCmp("txtInitialHour_txt").validate();

    if (finalHour == "" && initialHour != "") {
        Ext.getCmp("txtFinalHour_txt").markInvalid("Informe a hora do Fim da Reunião");
        return false;
    } else
        Ext.getCmp("txtFinalHour_txt").validate();

    if (initialHour != "" && initialHour != "undefined" && finalHour != "" && finalHour != "undefined") {
        if (initialHourHr != finalHourHr) {
            if (initialHourHr > finalHourHr) {
                Ext.getCmp("txtFinalHour_txt").markInvalid("Horário Inicial da Reunião menor que horário do final!");
                return false;
            }
        }
        if (initialHourHr == finalHourHr && initialHourMin != finalHourMin) {
            if (initialHourMin > finalHourMin) {
                Ext.getCmp("txtFinalHour_txt").markInvalid("Horário Inicial da Reunião menor que horário do final!");
                return false;
            }
        }
    }
    return true;
}