/*
 * Arquivo java script que contém funcionalidades específicas de
 * auxílio financeiro.
 *
 * @autor Rodrigo Lopes
 * @data 02/09/2009
 * @versão 1.0
 *
 */

/**
 * Exibe uma caixa de diálogo informando o usuário que determinado valor será debitado
 * de sua conta corrente caso prossiga e efetue a pesquisa. Esta caixa de diálogo aguarda
 * um OK, ou um Cancelar.
 *
 * Função remanejado do arquivo validacaoCamposPesquisa.js
 */
function confirmaDebito(formul,num) {
    var valor;
    var pesquisa;
    //var saldo;
    var msg;

    if (isNaN(num)) {
        valor = parseFloat(document.getElementById(formul+":valorCobrado").value);
        pesquisa = document.getElementById(formul+":tipoPesquisa").value;
        //saldo = parseFloat(document.getElementById(formul+":saldo").value);
        msg = "Confirma o débito no valor de R$ "+valor+" referente a pesquisa por "+pesquisa+"?";
    } else {
        valor = parseFloat(document.getElementById(formul+":valorCobrado"+num).value);
        pesquisa = document.getElementById(formul+":tipoPesquisa"+num).value;
        //saldo = parseFloat(document.getElementById(formul+":saldo"+num).value);
        msg = "Confirma o débito no valor de R$ "+valor+" referente a pesquisa por "+pesquisa+"?";
    }

    return confirm(msg);

}

function confirmaDebitoValor(formul) {
    
    var valor;
    var pesquisa;
    //var saldo;
    var msg;
    var campo_valor;
    var tamanho;
    var tmp;
    valor = document.getElementById(formul+":valorCobrado").value;
    tmp = valor.substring(valor.indexOf(".")+1,valor.length);
    tamanho = tmp.length;
    if(tamanho==1){
        campo_valor = getValidarSequenciaSemCaracteres(valor, ".,");
        campo_valor = getNumeroComSeparadorMilharCust(campo_valor, 1, ",", ".",tamanho);
    }else{
        campo_valor = getValidarSequenciaSemCaracteres(valor, ".,");
        campo_valor = getNumeroComSeparadorMilharCusta(campo_valor, 2, ",", ".");
    }
    pesquisa = document.getElementById(formul+":tipoPesquisa").value;
    //saldo = parseFloat(document.getElementById(formul+":saldo").value);
    msg = "Confirma o débito no valor de R$ "+campo_valor+" referente a pesquisa por "+pesquisa+"?";

    return confirm(msg);

}
function getValidarSequenciaSemCaracteres(sequencia, caracteres) {
    var sequenciaSemCaracteres = "";
    var caracterCorrente = "";
    var arrayCaracteres = getValidarArrayCaracteres(sequencia);
    var i = null;
    for (i = 0; i < arrayCaracteres.length; i++) {
        caracterCorrente = arrayCaracteres[i];
        if (isValidarNaoContemCaractere(caracterCorrente, caracteres)) {
            sequenciaSemCaracteres += caracterCorrente;
        }
    }
    return sequenciaSemCaracteres;
}

function getValidarArrayCaracteres(sequencia){
    var arraySequencia = new Array(sequencia.length);
    var stringSequencia = new String(sequencia);
    for (i = 0; i < stringSequencia.length; i++) {
        arraySequencia[i] = stringSequencia.substring(i, i + 1);
    }
    return arraySequencia;
}

function isValidarNaoContemCaractere(caracter, caracteres) {
    var arrayCaracteres = getValidarArrayCaracteres(caracteres);
    for (j = 0; j < arrayCaracteres.length; j++) {
        if (caracter == arrayCaracteres[j]) {
            return false;
        }
    }
    return true;
}
function inverterValidarSequencia(sequencia) {
    var sequenciaInvertido = "";
    var arrayCaracteres = getValidarArrayCaracteres(sequencia);
    for (var iCaracter = arrayCaracteres.length - 1; iCaracter >= 0; iCaracter--) {
        sequenciaInvertido += arrayCaracteres[iCaracter];
    }
    return sequenciaInvertido;
}
function getNumeroComSeparadorMilharCust(valor, casas, separadorDecimal, separadorMilhar, posicao) {

    var numeroInvertido = inverterValidarSequencia(valor);
    var numero = "";
    var countAppend = 0;

    var arrayNumeroInvertido = getValidarArrayCaracteres(numeroInvertido);
    for (i = 0; i < arrayNumeroInvertido.length; i++) {
        if (i < casas) {
            numero += arrayNumeroInvertido[i];
            countAppend++;
            if (countAppend == casas) {
                numero += separadorDecimal;
                countAppend = 0;
            }
        }
        if (i >= casas) {
            numero += arrayNumeroInvertido[i];
            countAppend++;
            if (countAppend == 3 && (i + 1) < arrayNumeroInvertido.length) {
                numero += separadorMilhar;
                countAppend = 0;
            }
        }
    }

    numero = inverterValidarSequencia(numero);

    arrayNumeroInvertido = getValidarArrayCaracteres(numero);
    if (arrayNumeroInvertido[0] == separadorDecimal) {
        numero = "0" + numero;
    }
    if (posicao == 1) {
        numero = numero+"0";
    }
    return numero;
}
function getNumeroComSeparadorMilharCusta(valor, casas, separadorDecimal, separadorMilhar) {

    var numeroInvertido = inverterValidarSequencia(valor);
    var numero = "";
    var countAppend = 0;

    var arrayNumeroInvertido = getValidarArrayCaracteres(numeroInvertido);
    for (i = 0; i < arrayNumeroInvertido.length; i++) {
        if (i < casas) {
            numero += arrayNumeroInvertido[i];
            countAppend++;
            if (countAppend == casas) {
                numero += separadorDecimal;
                countAppend = 0;
            }
        }
        if (i >= casas) {
            numero += arrayNumeroInvertido[i];
            countAppend++;
            if (countAppend == 3 && (i + 1) < arrayNumeroInvertido.length) {
                numero += separadorMilhar;
                countAppend = 0;
            }
        }
    }

    numero = inverterValidarSequencia(numero);

    arrayNumeroInvertido = getValidarArrayCaracteres(numero);
    if (arrayNumeroInvertido[0] == separadorDecimal) {
        numero = "0" + numero;
    }

    return numero;
}
