quinta-feira, 23 de julho de 2015

Jquery Grid

/**
*Função para validação de datas.
*
**/
var validaData = {
    data: function () {

        $('*[rel="data"]').blur(function () {

            var retorno = true;

            //// recebe o valor da data.
            var data = $(this).val();

            if (data != "" && data != "__/__/____") {
                //// quebra a data em dia, mes e ano.
                var arrayData = data.split("/");
                var dia = arrayData[0], mes = arrayData[1], ano = arrayData[2];

                //// verifica se é um mês valido.
                if ((mes < 0) || (mes > 12))
                    retorno = false;
                //// verifica se o ano é não bissexto.
                else if ((mes == 2) && (ano % 4 != 0) && (dia > 28))
                    retorno = false;
                //// verifica se o ano é bissexto.
                else if ((mes == 2) && (ano % 4 == 0) && (dia > 29))
                    retorno = false;
                //// verifica se o dia é valido
                else if ((dia < 0) || (dia > 31))
                    retorno = false;
                //// verifica se o ano é menor que 1900.
                else if (ano < 1900)
                    retorno = false;
                /// verifica os meses coom dias até 31.
                else if ((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12)) {
                    if ((dia < 0) || (dia > 31))
                        retorno = false;
                    /// verifica os mes
                } else if ((mes == 4) || (mes == 6) || (mes == 9) || (mes == 11)) {
                    if ((dia < 0) || (dia > 30))
                        retorno = false;
                }
                if (!retorno) {
                    $(this).css('border', '1px solid #CE4144');
                    $(this).prev().css('color', '#CE4144');
                    return false;
                } else {
                    $(this).css('border', '1px solid #CACACA');
                    $(this).prev().css('color', '#000');
                }
            } else {
                $(this).css('border', '1px solid #CACACA');
                $(this).prev().css('color', '#000');
            }
        });
    }
}


/**
*Função para validação de email.
*
**/
var validaEmail = {
    email: function () {
        $('*[rel="email"]').blur(function () {

            var email = $(this).val();

            if (email != "") {

                var retorno = true;

                // expressão regular para validação de emails.
                var regex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

                if (!regex.test(email))
                    retorno = false;

                if (!retorno) {
                    $(this).css('border', '1px solid #CE4144');
                    $(this).prev().css('color', '#CE4144');
                    return false;
                } else {
                    $(this).css('border', '1px solid #CACACA');
                    $(this).prev().css('color', '#000');
                }
            } else {
                $(this).css('border', '1px solid #CACACA');
                $(this).prev().css('color', '#000');
            }
        });
    }
}


/**
*Função para validação de hora.
*
**/
var validaHora = {
    hora: function () {
        $('*[rel="hora"]').blur(function () {

            var hora = $(this).val();
            if (hora != "") {

                var retorno = true;

                //
                var regex = /^([0-1][0-9]|[2][0-3]):[0-5][0-9]$/;

                if (!regex.test(hora))
                    retorno = false;

                if (!retorno) {
                    $(this).css('border', '1px solid #CE4144');
                    $(this).prev().css('color', '#CE4144');
                    return false;
                } else {
                    $(this).css('border', '1px solid #CACACA');
                    $(this).prev().css('color', '#000');
                }
            } else {
                $(this).css('border', '1px solid #CACACA');
                $(this).prev().css('color', '#000');
            }
        });
    }
}

var validaPrazo = {
    prazo: function () {
        $('*[rel="prazo"]').blur(function () {

            var prazo = $(this).val();
            if (prazo != "") {
                if (parseInt(prazo) > 1000) {
                    $(this).css('border', '1px solid #CE4144');
                    $(this).prev().css('color', '#CE4144');
                    return false;
                } else {
                    $(this).css('border', '1px solid #CACACA');
                    $(this).prev().css('color', '#000');
                }
            }
            else {
                $(this).css('border', '1px solid #CACACA');
                $(this).prev().css('color', '#000');
            }
        });
    }
}

/**
* Função para validar cpf e cnpj.
*
**/
var validaCpfCnpj = {
    cpfCnpj: function () {
        $('*[rel="cpfCnpj"]').blur(function () {
            var retorno = true;
            var cpfCnpj = $(this).val();
            cpfCnpj = cpfCnpj.replace(".", "");
            cpfCnpj = cpfCnpj.replace(".", "");
            cpfCnpj = cpfCnpj.replace(".", "");
            cpfCnpj = cpfCnpj.replace("/", "");
            cpfCnpj = cpfCnpj.replace("-", "");
            if (cpfCnpj != "") {
                if (cpfCnpj.length == 11 || cpfCnpj.length == 14) {

                    switch (cpfCnpj.length) {

                        case 11:
                            var multi = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2];
                            var soma = 0;

                            var nums = StrToCharArray(cpfCnpj);

                            for (b = 1; b < 10; b++)
                                soma += (nums[b - 1] * multi[b]);

                            var resto = soma - (parseInt(soma / 11) * 11);
                            var primeirodigito = 0;

                            if (resto >= 2)
                                primeirodigito = 11 - resto;

                            if (primeirodigito == nums[9]) {
                                soma = 0;
                                for (b = 0; b < 10; b++)
                                    soma += (nums[b] * multi[b]);

                                resto = soma - (parseInt(soma / 11) * 11);
                                var segundodigito = 0;

                                if (resto >= 2)
                                    segundodigito = 11 - resto;

                                if (segundodigito == nums[10]) {
                                    retorno = true;
                                } else {
                                    retorno = false;
                                }

                                if (cpfCnpj == "00000000000" ||
                                   cpfCnpj == "11111111111" ||
                                   cpfCnpj == "22222222222" ||
                                   cpfCnpj == "33333333333" ||
                                   cpfCnpj == "44444444444" ||
                                   cpfCnpj == "55555555555" ||
                                   cpfCnpj == "66666666666" ||
                                   cpfCnpj == "77777777777" ||
                                   cpfCnpj == "88888888888" ||
                                   cpfCnpj == "99999999999") {
                                    return false;
                                }

                            } else {
                                retorno = false;
                            }
                            break;
                        case 14:
                            var multiplicador1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
                            var multiplicador2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];

                            var tempCnpj = cpfCnpj.substring(0, 12);

                            var soma = 0;
                            for (var i = 0; i < 12; i++)
                                soma += parseInt(tempCnpj[i].toString()) * multiplicador1[i];

                            var resto = (soma % 11);
                            if (resto < 2)
                                resto = 0;
                            else
                                resto = 11 - resto;

                            var digito = resto.toString();

                            tempCnpj = tempCnpj + digito;
                            soma = 0;
                            for (var i = 0; i < 13; i++)
                                soma += parseInt(tempCnpj[i].toString()) * multiplicador2[i];

                            resto = (soma % 11);
                            if (resto < 2)
                                resto = 0;
                            else
                                resto = 11 - resto;

                            digito = digito + resto; ;

                            if (!cpfCnpj.endsWith(digito))
                                retorno = false;
                            break;
                    }

                    if (!retorno) {
                        $(this).css('border', '1px solid #CE4144');
                        $(this).prev().css('color', '#CE4144');
                        return false;
                    } else {
                        $(this).css('border', '1px solid #CACACA');
                        $(this).prev().css('color', '#000');
                    }

                } else {
                    $(this).css('border', '1px solid #CE4144');
                    $(this).prev().css('color', '#CE4144');
                }
            } else {
                $(this).css('border', '1px solid #CACACA');
                $(this).prev().css('color', '#000');
            }
        });
    }
}


var paginacaoGrid = {

    grid: function () {
        var tamanhoLinhasOutros = $('table#cphPrincipal_gvTest01 tr').length - 2;
        if (tamanhoLinhasOutros >= 20) {
            $('table#cphPrincipal_gvTest01 tr:eq(' + tamanhoLinhasOutros + ') td').css('padding', '10px 0 35px 0');
            $('table#cphPrincipal_ gvTest01 tr:eq(' + tamanhoLinhasOutros + ') td table tr td').css('padding', 0);
        }

    }
}


function StrToCharArray(str) {
    var newArray = new Array();
    for (a = 0; a < str.length; a++) {
        newArray[a] = str.charAt(a);
    }
    return newArray;
}

var funcoes = {
    carregarFuncao: function () {
        validaData.data();
        validaEmail.email();
        validaHora.hora();
        validaCpfCnpj.cpfCnpj();
        validaAno.ano();
        calculo.calc();
        maxLenghtTextArea.maxLenght();
    }
}






 * http://adam.co/lab/jquery/customselect/
Postar um comentário