/**
 * Grava cookie na máquina do cliente
 * @param nome nome do cookie
 * @param valor valor a ser gravado no cookie
 * @param diasExpiracao quantidade de dias para expiração do cookie
 */
function jsPhysisGravaCookie(nome, valor, diasExpiracao) {
    nome = "physis@" + nome;
    var dataExpiracao = new Date();
    dataExpiracao.setDate(dataExpiracao.getDate() + diasExpiracao);
    document.cookie = nome + "=" + escape(valor) +
        ((diasExpiracao == null) ? "" : ";expires=" + dataExpiracao.toUTCString());
}

/**
 * Recupera o cookie da máquina do cliente, caso não encontre, retorna o valor
 * padrão (nulo se não for informado)
 * @param nome nome do cookie
 * @param valorPadrao valor que será retornado caso não exista o cookie informado
 */
function jsPhysisPegaCookie(nome, valorPadrao) {
    if (document.cookie.length > 0) {
        nome = "physis@" + nome;
        c_start = document.cookie.indexOf(nome + "=");
        if (c_start != -1) {
            c_start = c_start + nome.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return valorPadrao;
}

/**
 *
 * @param botaoId identificador do botão
 */
function jsPhysisAtalhoBotao(botaoId) {
    var botao = document.getElementById(botaoId);
    //alert(botaoId + ' ->' + botao);
    if (botao != null) {
        alert('TODO-Em teste');
        //botao.click();
    }
    return false;
}

/**
 * Clear all other radio buttons in the same column of the <table> element generated by JSF
 * h:dataTable when the given radio button is clicked.
 * @param radio The <input type="radio"> element which was clicked.
 * @param tipo CHECKBOX ou RADIO
 */
function jsPhysisDataTableSelecionaUm(radio, tipo) {
    var id = radio.name.substring(radio.name.lastIndexOf(':'));
    var elementos = radio.form.elements;
    for (var i = 0; i < elementos.length; i++) {
        if (elementos[i].type.toUpperCase() == tipo) {
            if (elementos[i].name.substring(elementos[i].name.lastIndexOf(':')) == id) {
                if (elementos[i].name != radio.name) {
                    elementos[i].checked = false;
                }
            }
        }
    }
}

/**
 *
 */
function jsPhysisDataTableSelecionaTodos(radio, nome) {
    var id = ':' + nome;
    var check = radio.checked;
    var elementos = radio.form.elements;
    for (var i = 0; i < elementos.length; i++) {
        if (elementos[i].type.toUpperCase() == "CHECKBOX") {
            if (elementos[i].name.substring(elementos[i].name.lastIndexOf(':')) == id) {
                elementos[i].checked = check;
            }
        }
    }
}

/**
 * Ao desmarcar o check do data table, verifica se o checkTodos esta marcado,
 * se sim, desmarca.
 *
 * <... onclick="jsPhysisDataTableSeleciona(this, 'nome_check_todos')" .../>
 *
 * @param radio Elemento <input type="radio"> que foi clicado
 * @param radioTodosId Identificador do elemento de checkbox responsável por
 *      marcar todos os elementos
 */
function jsPhysisDataTableSeleciona(radio, radioTodosId) {
    var radioTodos = document.getElementById(radioTodosId);
    if (radioTodos != null) {
        if ((radioTodos.checked) && (!radio.checked)) {
            radioTodos.checked = false;
        }
    }
}

function jsPhysisIrPara(url) {
    location.href = url;
}

function addOnclickToDatatableRows(tabelaCorpoId) {
    var tabelaCorpo = document.getElementById(tabelaCorpoId);
    //alert('tbody='+tabelaCorpo);
    if (tabelaCorpo != null) {
        //alert(tabela.getElementsByTagName('tr').length);
        var trs = tabelaCorpo.getElementsByTagName('tr');
        for (var i = 0; i < trs.length; i++) {
            trs[i].onclick = new Function("highlightRow(this)");
            //trs[i].onclick = new Function("highlightAndSelectRow(this, '" + tabelaCorpoId + "')");
        }
    }
}

function highlightRow(tr) {
    tr.bgColor = (tr.bgColor != '#ccc000') ? '#ccc000' : '#ffffff';
}

function highlightAndSelectRow(tr, tabelaCorpoId) {
    var tabelaCorpo = document.getElementById(tabelaCorpoId);
    if (tabelaCorpo != null) {
        var trs = tabelaCorpo.getElementsByTagName('tr');
        for (var i = 0; i < trs.length; i++) {
            if (trs[i] == tr) {
                trs[i].bgColor = '#ff0000';
                //armazena valor da linha que foi clicada
                //document.form.rowIndex.value = trs[i].rowIndex;
                //alert(trs[i].rowIndex);
            } else {
                trs[i].bgColor = '#ffffff';
            }
        }   
    }
}


