﻿function $(id) {
    var el = document.getElementById(id);
    if (el != null)
        return el;
    var lst = document.getElementsByName(id);
    if (lst.length > 0)
        return lst[0];
    return null;
}

/* Ação Botão Novo */
function acaoNovo() {
    $("hfAcao").value = "1";
    var pagina = $("hfPagina").value;
    acaoChamarJanela('btnNovo', '/Paginas/' + pagina + '.aspx', '/Paginas/Js/' + pagina + '.js', { Acao: $("hfAcao").value }, null, 'FLAjaxCallWin');
}

/* Ação Botão Editar */
function acaoEditar() {
    var id = getSelectedData("grd", "Id");
    if (id == undefined)
        return;
    $("hfAcao").value = "2";
    var pagina = $("hfPagina").value;
    acaoChamarJanela('btnEditar', '/Paginas/' + pagina + '.aspx', '/Paginas/Js/' + pagina + '.js', { Acao: $("hfAcao").value, Id: id }, null, 'FLAjaxCallWin');
}

/* Se cadastrar como usuário no site */
function acaoCadastrarSe() {
    var pagina = $("hfPagina").value;
    var fn = function (rs) {
        Ext.getCmp("dtpDataNascimento").setValue("");
    }
    acaoChamarJanela('btnNovo', '/Acesso/' + pagina + '.aspx', '/Acesso/Js/' + pagina + '.js', null, fn, 'FLAjaxCallWin');
}

/* Refazer senha para acessar o site */
function acaoRecuperar() {
    var pagina = $("hfRecuperar").value;
    var fn = function (rs) {
        Ext.getCmp("dtpDataNascimento").setValue("");
    }
    acaoChamarJanela('btnNovo', '/Acesso/' + pagina + '.aspx', '/Acesso/Js/' + pagina + '.js', null, fn, 'FLAjaxCallWin');
}

/* Ação Visualizar */
function acaoVisualizar(janela, botao) {
    var id = getSelectedData("grd", "Id");
    if (id == undefined)
        return;
    Ext.getWin(janela).show();
    var lst = getControles();
    var args = { "Id": id };
    var fn = function (rs) {
        for (var x = 0; x < lst.length; x++)
            Ext.getCmp(lst[x]).setValue(rs[lst[x]]);
        configureVisualizar(rs);
    };
    Ext.getAjax("FLAjaxVisualizar").callback({ "args": args, "fn": fn });
    $("hfAcao").value = "3";
}

/* Ação Remover Foto */
function acaoRemoverFotos(pagina) {
    var id = getSelectedData("grd", "Id");
    if (id == undefined)
        return;
    var args = { "Id": id };
    acaoChamarJanela('btnFotosRemover', '/Paginas/' + pagina + '.aspx', '/Paginas/Js/', '/Paginas/Js/' + pagina + '.js', { Id: id }, null, 'FLAjaxCallWin');
}

/* Ação Botão Remover */
function acaoRemover() {
    var id = getSelectedData("grd", "Id");
    if (id == undefined)
        return;
    Ext.MessageBox.confirm("Remover item", "Deseja remover?", function (btn) {
        if (btn == 'yes') {
            var fn = function (rs) {
                configureRemover(rs);
                if (rs["msg"] != undefined) {
                    Ext.MessageBox.alert(rs["title"], rs["msg"]);
                    return;
                }
                if (typeof (buscar) == "function")
                    buscar();
                else
                    Ext.getCmp("grd").callback();
            };
            var args = { "Id": id };
            Ext.getAjax("FLAjaxRemover").callback({ "args": args, "fn": fn });
        }
    });
}

/* Ação Botão Salvar */
function acaoSalvar(idFlWindow, url, waitBar) {
    var lst = getControles();
    if (!Ext.getCmp(idFlWindow).validate())
        return;
    var values = {
        "acao": $("hfAcao").value,
        "Id": Ext.getCmp("grd").selModel.selections.length == 0 ? 0 : Ext.getCmp("grd").selModel.selections.items[0].data["Id"]
    };
    for (var x = 0; x < lst.length; x++) {
        var value = Ext.getCmp(lst[x]).getValue();
        if (value && value.format)
            values[lst[x]] = value.format("m/d/Y");
        else
            values[lst[x]] = value;
    }
    if (waitBar == true)
        Ext.MessageBox.wait("Enviando Informações, por favor aguarde...", "Enviando E-mail");
    var fn = function (rs) {
        if (rs["msg"] != undefined) {
            Ext.MessageBox.alert(rs["titulo"], rs["msg"]);
            return;
        }
        buscar();
        configureSalvar(rs);
        Ext.getWin(idFlWindow).close();
        if (waitBar == true)
            Ext.MessageBox.hide();
    };

    Ext.getAjax("FLAjaxSalvar").callback({ "args": values, "url": url, "fn": fn });
}
function buscarNoticias() {
    var busca = document.getElementById("txtBuscaNoticias").value;
    window.location = "/Site/IndexBusca.aspx?busca=" + busca;
}
/* Ação Gravar(Sem abrir Nova Janela) */
function acaoGravar(Painel) {
    var lst = getControles();
    if (!Ext.getCmp(Painel).validate())
        return;
    var values = {};
    for (var x = 0; x < lst.length; x++) {
        var value = Ext.getCmp(lst[x]).getValue();
        if (value && value.format)
            values[lst[x]] = value.format("m/d/Y");
        else
            values[lst[x]] = value;
    }
    var fn = function (rs) {
        if (rs["msg"] != undefined) {
            configureGravar(rs);
            Ext.MessageBox.alert(rs["titulo"], rs["msg"]);
            return;
        }
    };
    Ext.getAjax("FLAjaxGravar").callback({ "args": values, "fn": fn });
}

/* Ação Adicionar Fotos */
function acaoAdicionarFoto(sender, url, js, args, func) {
    var id = getSelectedData("grd", "Id");
    if (id == undefined)
        return;
    if (js != null)
        Ext.addJs("/add/js/Paginas/" + js + ".js");
    Ext.getAjax('FLAjaxAdicionarFoto').callback({
        url: url,
        args: args,
        fn: function (rs) {
            var window = Ext.createObj(rs["win"]);
            document.getElementById('ctl00_Corpo_hfAcao').value = rs['Acao'];
            window.show();
            if (func != null)
                func(rs);
        }
    });
}

/* Ação Visualizar Fotos */
function acaoVisualizarFotos(sender, url, js) {
    var id = getSelectedData("grd", "Id");
    if (id == undefined)
        return;
    if (js != null)
        Ext.addJs("/add/js/Paginas/" + js + ".js");
    Ext.getAjax("FLAjaxVisualizarFotos").callback({
        url: url,
        args: { "Id": id },
        fn: function (rs) {
            var window = Ext.createObj(rs["win"]);
            window.show();
        }
    });
}

/* Selecionar Item */
function getSelectedData(grd, data) {
    try {
        var data = Ext.getCmp(grd).selModel.selections.items[0].data[data];
        return data;
    } catch (ex) {
        Ext.MessageBox.alert("Itens", "Selecione um item da lista...");
        return;
    }
}

/* Buscar pelo ID */
function $(id) {
    var el = document.getElementById(id);
    if (el != null)
        return el;

    var masterId = "ctl00_" + id;
    el = document.getElementById(masterId);
    if (el != null)
        return el;

    var mpId = "ctl00_Corpo_" + id;
    el = document.getElementById(mpId);
    if (el != null)
        return el;

    var lst = document.getElementsByName(id);
    if (lst.length > 0)
        return lst[0];
    return null;
}

/* Load Combo */
function loadCombo(idCombo, args) {
    Ext.getCmp(idCombo).clearValue();
    Ext.getCmp(idCombo).callback({ args: "args" });
}

/* Load Grid */
function buscar() {
    Ext.getCmp("grd").callback();
}

/* Load Grid - Params*/
function loadGridParams(args, grd) {
    var selected = grd.getSelectedKey();
    if (selected != undefined) {
        var fn = function () {
            var rows = grd.getKeys();
            for (i in rows) {
                if (typeof (rows[i]) != 'object' || rows[i][0] != selected[0])
                    continue;
                grd.selModel.selectRow(i);
                grd.view.focusRow(parseInt(i));
                break;
            }
        };
        grd.callback({ "args": args, "fn": fn });
    }
    else
        grd.callback({ "args": args });
}

/* Configurações Especiais */
function configureGravar(rs) { };
function configureSalvar(rs) { };
function configureEditar(rs) { };
function configureRemover(rs) { };
function configureVisualizar(rs) { };

/* Chamar Janela */
function acaoChamarJanela(sender, url, caminho_js, args, func, ajax) {
    Ext.addJs(caminho_js);
    Ext.getAjax(ajax).callback({
        url: url,
        args: args,
        fn: function (rs) {
            var window = Ext.createObj(rs["win"]);
            window.show();
            if (func != null)
                func(rs);
        }
    });
}
function goIndex() {
    window.location = "/Index.aspx";
}
function abrirImagens(id) {
    var fn = function (rs) {
        if (!rs["erro"]) {
            Ext.Lightbox.add({ name: rs["name"], data: eval(rs["data"]), path: rs["path"] });
            Ext.Lightbox.open(rs["name"], 0);
        }
        else
            Ext.MessageBox.alert("Erro", "Não Existem Fotos Cadastradas para esse item.");
    };
    Ext.getAjax('FLAjaxLoadFotos').callback({ args: { Id: id }, fn: fn });
}
