var DATA_COMPLETA_LENGTH = 10;
var DATA_MES_ANO_LENGTH = 7;
var DATA_ANO_LENGTH = 4;

function trim(str) {
    return str.replace(/^\s+|\s+$/g, "");
}

// Script de Relógio
function horas() {
    var now = new Date();
    var mes = now.getMonth() + 1;
    var dia = now.getDate();
    var ano = now.getFullYear();
    var horas = now.getHours();
    var minutes = now.getMinutes();
    var segundos = now.getSeconds();
    if (mes < 10)
        mes = "0" + mes;
    if (dia < 10)
        dia = "0" + dia;
    if (horas <= 9)
        horas = "0" + horas;
    if (minutes <= 9)
        minutes = "0" + minutes;
    if (segundos <= 9)
        segundos = "0" + segundos;
    var cdate = "" + dia + "/" + mes + "/" + ano + "  " + horas + ":" + minutes
            + ":" + segundos + " " + "";
    document.getElementById("clock").innerHTML = cdate;
    setTimeout("horas()", 1000);
}

function verifica_data(data, valor) {
    if ((data != "") || (data != " ") || (data != undefined)) {

        dia = parseInt(data.substring(0, 2), 10);
        mes = parseInt(data.substring(3, 5), 10);
        ano = parseInt(data.substring(6, 10), 10);

        situacao = "";
        // verifica o dia valido para cada mes
        if ((dia < 1) || (dia < 1 || dia > 30)
                && (mes == 4 || mes == 6 || mes == 9 || mes == 11)
                || dia > 31) {
            situacao = "falsa";
        }

        // verifica se o mes e valido
        if (mes < 1 || mes > 12) {
            situacao = "falsa";
        }

        // verifica se o ano e valido
        if (ano < 1900 || ano > 2090) {
            situacao = "falsa";
        }

        // verifica se e ano bissexto
        if (mes == 2
                && (dia < 1 || dia > 29 || (dia > 28 && (parseInt(ano / 4) != ano / 4)))) {
            situacao = "falsa";
        }

        if (situacao == "falsa") {
            alert("Data inválida!");
            valor.value = "";
            return false;
        } else {
            return true;
        }

    } else {
        return true;
    }

}

function verifica_data_mes_ano(data, valor) {

    if ((data != "") || (data != " ") || (data != undefined)) {

        mes = (data.substring(0, 2));
        ano = (data.substring(3, 7));

        situacao = "";

        // verifica se o mes e valido
        if (mes < 01 || mes > 12) {
            situacao = "falsa";
        }

        // verifica se o ano e valido
        if (ano < 1900 || ano > 2090) {
            situacao = "falsa";
        }

        if (situacao == "falsa") {
            alert("Data inválida!");
            valor.value = "";
            return false;
        } else {
            return true;
        }

    } else {
        return true;
    }

}

function completarEsquerda(campo, max, caracter) {
    var restante = parseInt(max) - campo.value.length;
    for (var i = 0; i < restante; i++) {
        var novoValor = caracter + campo.value;
        campo.value = novoValor;
    }
}

function completarAno(campo) {
    if (campo.value.length == 2) {
        campo.value = '20' + campo.value;
    }
}

function somenteNumeros(e) {
    var tecla = (window.event) ? event.keyCode : e.which;
    if ((tecla > 47 && tecla < 58))
        return true;
    else {
        if (tecla == 8 || tecla == 0)
            return true;
        else
            return false;
    }
}

function somenteLetrasNumeros(e) {
    var tecla = (window.event) ? event.keyCode : e.which;
    if ((tecla > 47 && tecla < 58) || (tecla > 64 && tecla < 91) || (tecla > 96 && tecla < 123))
        return true;
    else {
        if (tecla == 8 || tecla == 0 || tecla == 231)
            return true;
        else
            return false;
    }
}

String.prototype.currencyFormat = function (f, d, t) {
    var n = (n = this.match(/\d/g)) ? n.join('').replace(/^0+/, '') : '0', f = (f) ? f
            : 2, d = (d) ? d : ',', t = (t) ? t : '.';
    if (n.length < f + 1)
        return '0'
                + d
                + ((n.length < f) ? new Array(f - n.length + 1).join('0') + n
                        : n);
    else
        return n.substr(0, n.length - f).split('').reverse().join('').match(
                /\d{1,3}/g).join(t).split('').reverse().join('')
                + d + n.substr(n.length - f);
};

function contaTexto(CampoMsg, CampoContador, TamMax) {
    if (CampoMsg.value.length > TamMax)
        CampoMsg.value = CampoMsg.value.substring(0, TamMax);
    else
        CampoContador.value = TamMax - CampoMsg.value.length;
}
// limpa um campo de texto
function limpaCampo(campo) {
    campo.value = '';
}

// mascara cpf/cnpj - ADAPTADO para o EPAJ - DAVID P. SILVA

// função mascara recebe os parametros do form, logo apos chama a função
// execmascara como parametro do setTimeout -
// fica sincronizando de segundo a segundo
function mascara(o, f) {
    v_obj = o;
    v_fun = f;
    setTimeout("execmascara()", 1);
}

// função que executa a mascara
function execmascara() {
    v_obj.value = v_fun(v_obj.value);
}

// função que valida o cpf
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;
}

// função que valida o cnpj
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;
}

// função valida email
/**
 * Titulo: Validação de Email Descrição: Script retirado do site:
 * http://www.smartwebby.com/dhtml Alterado pelo desenvolvedor David para
 * facilitar o entendimento Data: 22/06/09 Versão: 1.1 Modificão: 24/06/09
 */

function validaEmail(str) {

    var at = "@"; // armazena o caracter arroba
    var dot = "."; // armazena o ponto
    var lat = str.indexOf(at); // armazena a posição do arroba
    var lstr = str.length; // pega o tamanho do caracter da string digitada no
    // input
    var ldot = str.indexOf(dot); // busca a posição do ponto e armazena na
    // variavel

    // se o arroba digitado no campo estiver na posição -1
    if (str.indexOf(at) == -1) {
        alert("Email inválido");
        $("#email").focus();
        return false;
    }

    // mesmo caso que o anterior so que agora com mais duas verificações posição
    // 0 e útlima posição
    if (str.indexOf(at) == -1 || str.indexOf(at) == 0
            || str.indexOf(at) == lstr) {
        alert("Email inválido");
        $("#email").focus();
        return false;
    }

    // faz a verificação da posição do ponto
    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0
            || str.indexOf(dot) == lstr) {
        alert("Email inválido");
        $("#email").focus();
        return false;
    }

    //
    if (str.indexOf(at, (lat + 1)) != -1) {
        alert("Email inválido");
        $("#email").focus();
        return false;
    }

    if (str.substring(lat - 1, lat) == dot
            || str.substring(lat + 1, lat + 2) == dot) {
        alert("Email inválido");
        $("#email").focus();
        return false;
    }

    if (str.indexOf(dot, (lat + 2)) == -1) {
        alert("Email inválido");
        $("#email").focus();
        return false;
    }

    if (str.indexOf(" ") != -1) {
        alert("Email inválido");
        $("#email").focus();
        return false;
    }

    return true;
}

function ValidaEmailForm() {
    var emailID = $(".email").val();

    /*
     * Não retire esse trecho de cód. Se o email for obrigatório utilizar
     *
     * if ((emailID.value==null)||(emailID.value=="")){ alert("Por favor
     * preencha corretamente o email") $(".email").focus() return false }
     */

    // essa condição é para caso o email não seja obrigatório
    if ((emailID == "") || (emailID == undefined)) {

    } else {

        // valida o email passando o valor do campo para a função
        // se a função retornar false limpa o campo e coloca o focus no input
        if (validaEmail(emailID) == false) {
            $(".email").val("");
            return false;
        }
    }
    return true;
}

function isVazio(campo, valor) {
    if (trim(valor) != '') {
        return true;
    } else {
        alert('O campo ' + campo + ' é necessário!');
        return false;
    }
}

// valida telefone
function ValidaTelefone(tel) {
    alert(tel);
    if (tel.length > 0) {
        exp = /\(\d{2}\)\ \d{4}\-\d{4}/;
        if (!exp.test(tel.value))
            alert('Numero de Telefone Inválido!');
    }
}

// valida CEP
function ValidaCep(cep) {
    if (cep.length > 0) {
        exp = /\d{2}\.\d{3}\-\d{3}/;
        if (!exp.test(cep.value))
            alert('Número de Cep Inválido!');
    }
}

// valida data
function ValidaData(data) {
    if (data.length > 0) {
        exp = /\d{2}\/\d{2}\/\d{4}/;
        if (!exp.test(data.value))
            alert('Data Inválida!');
    }
}

function formatar_moeda(campo, separador_milhar, separador_decimal, tecla) {
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? tecla.which : tecla.keyCode;

    if (whichCode == 13)
        return true; // Tecla Enter
    if (whichCode == 8)
        return true; // Tecla Delete
    key = String.fromCharCode(whichCode); // Pegando o valor digitado
    if (strCheck.indexOf(key) == -1)
        return false; // Valor inválido (não inteiro)
    len = campo.value.length;
    if (len > 12)
        return false;
    for (i = 0; i < len; i++)
        if ((campo.value.charAt(i) != '0')
                && (campo.value.charAt(i) != separador_decimal))
            break;
    aux = '';
    for (; i < len; i++)
        if (strCheck.indexOf(campo.value.charAt(i)) != -1)
            aux += campo.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0)
        campo.value = '';
    if (len == 1)
        campo.value = '0' + separador_decimal + '0' + aux;
    if (len == 2)
        campo.value = '0' + separador_decimal + aux;

    if (len > 2) {
        aux2 = '';

        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += separador_milhar;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }

        campo.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
            campo.value += aux2.charAt(i);
        campo.value += separador_decimal + aux.substr(len - 2, len);
    }

    return false;
}

function validar() {
    if (jQuery("#numProcesso").val() == "" && jQuery("#nome").val() == ""
            && jQuery("#numeroProcJudicial").val() == ""
            && jQuery("#cpfCnpj").val() == "") {
        alert('Informe o Número do PAJ, Nome, Número do Processo Judicial ou CPF/CNPJ para realizar a pesquisa!');
    } else {
        consulta();
    }
}

function editar(xhr, status, args) {
    jQuery('#pickButton').click();
}

//AjaxStatus
function showModal() {
    jQuery("<div></div>").addClass("modalfundo").css({
        width: '100%',
        height: '100%',
        opacity: 0.8,
        position: 'fixed',
        top: 0,
        left: 0,
        zIndex: 9999 - 1,
        backgroundColor: '#FFF',
        display: 'none'
    }).appendTo("body").fadeIn("fast");

    jQuery("<div></div>").addClass("modal-load").css({
        position: 'fixed',
        top: '50%',
        left: '50%',
        zIndex: 9999
    }).appendTo("body");
}
function hideModal() {
    $('div.modalfundo').remove();
    $('div.modal-load').remove();
}
//AjaxStatus
function showModalMonitorDownload() {
    //jQuery(".modalfundoMonitor").fadeIn("fast");
    //jQuery(".modal-load-monitor").fadeIn("fast");
    showModal();
}

function hideModalMonitorDownload() {
    //$('.modalfundoMonitor').fadeOut("fast");
    //$('.modal-load-monitor').fadeOut("fast");
    hideModal();
}

// Tradução primefaces
PrimeFaces.locales['pt'] = {
    closeText: 'Fechar',
    prevText: 'Anterior',
    nextText: 'Próximo',
    currentText: 'Começo',
    monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',
        'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
    monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago',
        'Set', 'Out', 'Nov', 'Dez'],
    dayNames: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta',
        'Sábado'],
    dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
    dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
    weekHeader: 'Semana',
    firstDay: 1,
    isRTL: false,
    showMonthAfterYear: false,
    yearSuffix: '',
    timeOnlyTitle: 'Só Horas',
    timeText: 'Tempo',
    hourText: 'Hora',
    minuteText: 'Minuto',
    secondText: 'Segundo',
    currentText : 'Data Atual',
            ampm: false,
    month: 'Mês',
    week: 'Semana',
    day: 'Dia',
    allDayText: 'Todo Dia'
};

function limparCampoParteContraria() {
    $("#parteContrariaDescricao").val("");
}

function configurarScroll() {
    var menuFixo = $('.epaj_info_menu').offset().top;
    if ($('#epaj_menu_detalhamento').offset()) {
        var menuFixo2 = $('#epaj_menu_detalhamento').offset().top - 60;
    }

    //adicionado o item abaixo para definir a posicao do menu ao carregar a pagina
    $('#epaj_menu_cx_entrada').removeClass('epaj_info_menu_fixed_bottom');
    $('#epaj_menu_cx_entrada_aba3').removeClass('epaj_info_menu_fixed_bottom');

    $(window).scroll(function () {
    	if ($(document).scrollTop() > menuFixo) {
    	    $('.epaj_info_menu').attr('style', 'position:absolute');
    	    $('.epaj_info_menu').animate(
    	            {top: 10 + $(document).scrollTop() + 'px'},
    	    {duration: 0, queue: false}
    	    );
    	} else {
    	    $('.epaj_info_menu').removeAttr('style');
    	}

    	if ($('#epaj_menu_detalhamento').offset()) {

    	    if ($(document).scrollTop() > menuFixo2) {
    	        $('#epaj_menu_detalhamento').attr('style', 'position:absolute;border-bottom:1px solid #666666; z-index: 999;');
    	        $('#epaj_menu_detalhamento').animate(
    	                {top: 37 + $(document).scrollTop() + 'px'},
    	        {duration: 0, queue: false}
    	        );
    	    } else {
    	        $('#epaj_menu_detalhamento').removeAttr('style');
    	    }

    	}

    	if (($(window).height() + $(window).scrollTop() + 20) >= ($(document).height() - 95)) {
    	    $('#epaj_menu_cx_entrada').removeClass('epaj_info_menu_fixed_bottom');
    	    $('#epaj_menu_cx_entrada_aba3').removeClass('epaj_info_menu_fixed_bottom');
    	} else {
    	    $('#epaj_menu_cx_entrada').addClass('epaj_info_menu_fixed_bottom');
    	    $('#epaj_menu_cx_entrada_aba3').addClass('epaj_info_menu_fixed_bottom');
    	}
    });

    $(window).mousemove(function () {
    	if ($(document).scrollTop() > menuFixo) {
    	    $('.epaj_info_menu').attr('style', 'position:absolute');
    	    $('.epaj_info_menu').animate(
    	            {top: 10 + $(document).scrollTop() + 'px'},
    	    {duration: 0, queue: false}
    	    );
    	} else {
    	    $('.epaj_info_menu').removeAttr('style');
    	}

    	if ($('#epaj_menu_detalhamento').offset()) {

    	    if ($(document).scrollTop() > menuFixo2) {
    	        $('#epaj_menu_detalhamento').attr('style', 'position:absolute;border-bottom:1px solid #666666; z-index: 999;');
    	        $('#epaj_menu_detalhamento').animate(
    	                {top: 37 + $(document).scrollTop() + 'px'},
    	        {duration: 0, queue: false}
    	        );
    	    } else {
    	        $('#epaj_menu_detalhamento').removeAttr('style');
    	    }

    	}

    	if (($(window).height() + $(window).scrollTop() + 20) >= ($(document).height() - 95)) {
    	    $('#epaj_menu_cx_entrada').removeClass('epaj_info_menu_fixed_bottom');
    	    $('#epaj_menu_cx_entrada_aba3').removeClass('epaj_info_menu_fixed_bottom');
    	} else {
    	    $('#epaj_menu_cx_entrada').addClass('epaj_info_menu_fixed_bottom');
    	    $('#epaj_menu_cx_entrada_aba3').addClass('epaj_info_menu_fixed_bottom');
    	}
    });
}

$(document).ready(function () {

    configurarScroll();

});

function isNumber(event) {
    if (event) {
        var charCode = (event.which) ? event.which : event.keyCode;
        if (charCode != 190 && charCode > 31 &&
                (charCode < 48 || charCode > 57) &&
                (charCode < 96 || charCode > 105) &&
                (charCode < 37 || charCode > 40) &&
                charCode != 110 && charCode != 8 && charCode != 46)
            return false;
    }
    return true;
}

function formatarMascaraNumericaAoDigitar(objetoCampoHtml, mascaraComAlgarismos9AndCaracteresFormatacao)
{
    var tamanhoAtualDoQueFoiDigitado = objetoCampoHtml.value.length;
    var posicaoTeraOutroQueNaoDigito = mascaraComAlgarismos9AndCaracteresFormatacao[tamanhoAtualDoQueFoiDigitado] != '9';
    var aindaNaoUltrapassouTamanho = tamanhoAtualDoQueFoiDigitado < mascaraComAlgarismos9AndCaracteresFormatacao.length;

    if (posicaoTeraOutroQueNaoDigito && aindaNaoUltrapassouTamanho) {
        objetoCampoHtml.value += mascaraComAlgarismos9AndCaracteresFormatacao[tamanhoAtualDoQueFoiDigitado];
    } else if (!aindaNaoUltrapassouTamanho) {
        return false;
    }

    return true;
}

function validarMascaraNumeracaoDigitada(objetoCampoHtml, mascaraComAlgarismos9AndCaracteresFormatacao) {
    var tamanhoAtualDoQueFoiDigitado = objetoCampoHtml.value.length;
    var tamanhoMascara = mascaraComAlgarismos9AndCaracteresFormatacao.length;

    if (tamanhoAtualDoQueFoiDigitado != tamanhoMascara) {
        objetoCampoHtml.value = "";
        return false;
    }

    if (tamanhoMascara == DATA_COMPLETA_LENGTH) {
        return verifica_data(objetoCampoHtml.value, objetoCampoHtml);
    }
    else if (tamanhoMascara == DATA_MES_ANO_LENGTH) {
        return verifica_data_mes_ano(objetoCampoHtml.value, objetoCampoHtml);
    }

    return true;
}
