﻿$namespace('System.Data');
$namespace('System.Page.Util');
$namespace('System.Controls.Calendar');
$namespace('System.Page.HttpContext');

var Stills;
/* Uso:
    Stills.rows[i].codstill;
    Stills.rows[i].horafechada;
    Stills.rows[i].liberada;
    Stills.rows[i].DiaHoraStr;
    Stills.rows[i].DiaHora;
    Stills.rows[i].NomeArquivo;
*/
var paginacao = 20;
var fim = paginacao-1;
var pos = 0;
var dataInicial;
var dataInicioDemo;
var dataLimiteInicial;
var dataLimiteFinal;
var DataAtual;
var DataEventos = 0;
var RootStills = "Stills/";
var templateSequencia;
var Sequencia;
var divSequencia;
var ComboData;
var ComboHora;
var ComboModelos;
var dtModelos;
var dtEventos;
var sufixoIdioma = "";
var TextData
var videoAtivo = false;
var idDivEventos = 'divEventos';
var contaCarregando = 0;

function InitMemoria(idComboData, idComboHora, idComboModelo, DataSelecionada, DataInicioAberto, sufixo, mostraVideo) {

//    var resNames = ['Enviar', 'txtCarregando', 'txtEventosEm'];
//    var Resources = JScriptLocalization.GetNamedResources(resNames).value.rows[0];
//    alert(Resources.txtCarregando);

//    var Resources = JScriptLocalization.GetAllResources().value.rows[0];
//    alert(Resources.txtCarregando);
//    
//    var Resources = {
//        Enviar: "Enviar",
//        txtCarregando: "Carregando..."
//    }
//    alert(Resources.txtCarregando);

    dataLimiteInicial = Date.now.addYears(-5);
    dataLimiteFinal = Date.now;
    var res = MemoriaDigital.Modelos();
    if (res.error==null) {
        dtModelos = res.value;
        dataLimiteInicial = dtModelos.rows[0].DataEntrada;
        dataLimiteFinal = dtModelos.rows[dtModelos.rows.length - 1].DataSaida.addDays(1);
    }

    if (dataLimiteFinal > Date.now){
        dataLimiteFinal = Date.now;
    }
    
    videoAtivo = mostraVideo;
    TextData = $(idComboData);

    DataAtual = Date.parse(DataSelecionada, "dd/MM/yyyy HH:mm");
    dataInicioDemo = Date.parse(DataInicioAberto, "dd/MM/yyyy HH:mm");
    if (DataAtual.toString("yyyyMMddHHmm") < dataLimiteInicial.toString("yyyyMMddHHmm")) 
        dataInicial = dataLimiteInicial;
    else
        dataInicial = DataAtual;

    sufixoIdioma = sufixo;
    
    ComboHora = $(idComboHora);
    ComboModelos = $(idComboModelo);
    
    InitComboData(idComboData);
    
    Sequencia = $('tableSequencia');
    divSequencia = $('divSequencia');
    
    if(!(/*existePlayer() || */videoAtivo)){
        if (Sequencia != null) {
            templateSequencia = Sequencia.innerHTML;
            SetCarregando();
            var res = MemoriaDigital.InitStills(paginacao, 26, dataInicial);
            if (res.error == null) {
                Stills = res.value;
                MostraSequencia(false);
            }
            ResetCarregando();
        }
    }
    else {
        AtualizaComboData();
        AtualizaComboHora();
    }
}

function MostraSequencia(pararVideo) {
    SetCarregando();
    window.scrollTo(0, 0);
    if (/*existePlayer() ||*/ videoAtivo) {
        HidePlayer();
        $('divVideos').innerHTML = '';
        $('divVideos').style.display = 'none';
        videoAtivo = false;
    }
    divSequencia.style.display = "";
    
    $("ctl00_ContentPlaceHolder1_spanDataEvento").innerText="";
    $("ctl00_ContentPlaceHolder1_spanModeloEvento").innerText="";
    $("ctl00_ContentPlaceHolder1_spanNomeEvento").innerText="";
    
    if (Stills.rows.length>0) {
        var conteudo = "";
        var d = Stills.rows[0].DiaHora;
        DataAtual = d;
        
        AtualizaComboHora();
        AtualizaComboData();

        for(var i = 0; i < Stills.rows.length; i++) {
            var src;
            var still = Stills.rows[i];
            if (still.liberada == 1){
                d = still.DiaHora;
                ano = (d.getFullYear() % 100); if (ano < 10) ano = "0" + ano;
                mes = (d.getMonth()+1); if (mes < 10) mes = "0" + mes;
                src = RootStills + ano + mes + "/" + still.NomeArquivo.replace('.jpg','.jpeg');
                //src = '/Stills/0303/18143034.jpeg'
                map = "";
            }
            else if (still.horafechada == 0){
                src = "images/avisos/aviso_memoria" + sufixoIdioma + ".jpg";
                map = "#mapFechado";
            }
            else {
                src = "images/avisos/nao_socio320" + sufixoIdioma + ".gif";
                map = "#mapFechado";
            }

            conteudo += '<div class="memdigitalFoto">';
            conteudo += '<img src="' + src + '"';
            conteudo += ' alt="' + still.DiaHoraStr + '" ';
            conteudo += ' border="0"';
            if (map != "") conteudo += " useMap=\"" + map + "\"";
            conteudo += ' />';
            conteudo += '</div>';
        }
        Sequencia.innerHTML = conteudo;
    }
    refreshDivEventos();
    ResetCarregando();
}

function MudaData(){
    DataAtual = Date.parse(TextData.value + ComboHora.value, ComboData.formatMask+"HH:mm")
    if (DataAtual < dataLimiteInicial){
        DataAtual = dataLimiteInicial;
    }
    if (DataAtual > dataLimiteFinal){
        DataAtual = dataLimiteFinal;
    }
    SetCarregando();
    MemoriaDigital.InitStills(paginacao, 26, DataAtual, SequenciaData_callback);
    return false;
}

function getModelosDataTable(){
    SetCarregando();
    MemoriaDigital.Modelos(getModelosDataTable_callback);
}

function getModelosDataTable_callback(res){
    if (res.error == null) {
        dtModelos = res.value;
    }
    else {
        dtModelos = new DataTable();
    }
    ResetCarregando();
};

function ResetCarregando() {
    if (contaCarregando > 0) { contaCarregando--; }
    if (contaCarregando == 0) { $('Carregando').style.display = "none"; }
};

function SetCarregando() {
    if (contaCarregando++ > 0) { 
        $('Carregando').style.display = "";
    }
};

function AtualizaComboData(){
    ComboData.setDate(DataAtual);
    AtualizaComboModelo(DataAtual);
    $("DataEventos").innerHTML = DataAtual.toString(ComboData.formatMask);
    getEventos();
}

function AtualizaComboHora(){
    var data = new Date(0,0,0,DataAtual.getHours(), 5 * parseInt(DataAtual.getMinutes() / 5));
    var valor = data.toString("HH:mm");
    ComboHora.value = valor;
}

function dateDiffDay(data1, data2) {
    var dias1 = parseInt(data1 / 86400000);
    var dias2 = parseInt(data2 / 86400000);
    return dias1 - dias2;
}

function AtualizaComboModelo(data){
    try {
        for(var i = 0; i < dtModelos.rows.length; i++){
            if ((data >= dtModelos.rows[i]["DataEntrada"]) && (data < dtModelos.rows[i]["DataSaida"])) {
                ComboModelos.value = dtModelos.rows[i]["codModelo"];
                break;
            }
        }
    }
    catch (e) { }
}

function sequenciaAnterior() {
    var DataStill = Stills.rows[0].DiaHora;
    if (DataStill > dataLimiteInicial) {
        codStillInicial = Stills.rows[0].codstill - 1;
        SetCarregando();
        MemoriaDigital.GetNextStills(paginacao, 26, codStillInicial, -1, SequenciaData_callback);
    }
}

function sequenciaPosterior() {
    codStillInicial = Stills.rows[fim].codstill + 1;
    SetCarregando();
    MemoriaDigital.GetNextStills(paginacao, 26, codStillInicial, +1, SequenciaData_callback);
}

function diaAnterior() {
    if (DataAtual > dataLimiteInicial) {
        DataAtual = DataAtual.addDays(-1);
        if (DataAtual < dataLimiteInicial) DataAtual = dataLimiteInicial;
        SetCarregando();
        MemoriaDigital.InitStills(paginacao, 26, DataAtual, SequenciaData_callback);
        
    }
}

function diaSeguinte() {
    DataAtual = DataAtual.addDays(1);
    SetCarregando();
    MemoriaDigital.InitStills(paginacao, 26, DataAtual, SequenciaData_callback);
}

function getEventos(){
    if (dateDiffDay(DataAtual, DataEventos) != 0) {
        DataEventos = DataAtual; 
        SetCarregando();
        MemoriaDigital.getEventos(DataEventos, getEventos_callback);//idDivEventos, 
    }
}

function getEventos_callback(res) {
    if (res.error == null){
        dtEventos = res.value;
        dtEventos.sort('DataHora');
        refreshDivEventos()
    }
    ResetCarregando();
}

function refreshDivEventos(){
    try {
        var agora = new Date();
        
        if (DataEventos.getDay() == agora.getDay()
        && DataEventos.getMonth() == agora.getMonth()
        && DataEventos.getFullYear() == agora.getFullYear()) {
            $("linkDiaSeguinte").style.display = "none";
            if (agora.getMinutes() + agora.getHours() * 60 + 10 < DataEventos.getMinutes() + DataEventos.getHours() * 60){
                $("linkMais10MinTopo").style.display = "none";
                $("linkMais10MinBase").style.display = "none";
            }
            else {
                $("linkMais10MinTopo").style.display = "";
                $("linkMais10MinBase").style.display = "";
            }
        }
        else {
            $("linkDiaSeguinte").style.display = "";
            $("linkMais10MinTopo").style.display = "";
            $("linkMais10MinBase").style.display = "";
        }
        
        var sb = new StringBuilder();
        var sel;
        sb.append('<table border="0" cellspacing="0" cellpadding="0" align="center">');
        sb.append('<tr valign="middle">');
        if (dtEventos.rows.length > 0)
            for(var i = 0; i < dtEventos.rows.length; i++) {
                if (dtEventos.rows[i].DataHora >= dataLimiteInicial) {
                    if (DataAtual >= dtEventos.rows[i].DataHora.addMinutes(-10)
                    && DataAtual <= dtEventos.rows[i].DataHoraFim.addMinutes(10)) 
                        sel = 'Sel';
                    else
                        sel = '';
                    sb.appendFormat('<td width="110" class="memdigitalEvento{0}">', sel);
                    sb.appendFormat('<span class="memdigital{0}">{0}&nbsp;{1}&nbsp;hs</span>',
                        dtEventos.rows[i].Tipo,
                        dtEventos.rows[i].DataHora.toString('HH:mm'));
                    sb.appendFormat('<div style="overflow: hidden; height: 14px; width:100px;">{0}</div>',
                        dtEventos.rows[i].Modelo.replace(/ /g,'&nbsp;'));
                    if (agora > dtEventos.rows[i].DataHora) {
                        sb.appendFormat('<a href="javascript:SequenciaData(\'{0}\')" class="memdigitalBtnFoto{1}">fotos</a>',
                            dtEventos.rows[i].DataHora.toString('dd/MM/yyyy HH:mm'), sel);
                    }
                    if (dtEventos.rows[i].codConteudo != null)
                    {
                        if (dtEventos.rows[i].liberado) {
                            sb.appendFormat('<a href="javascript:setConteudo({0});"', dtEventos.rows[i].codConteudo);
                        }
                        else {
                            sb.append('<a href="cadastro.aspx?r=MemoriaDigital.aspx"');
                        }
                        sb.appendFormat(' class="memdigitalBtnVideo{0}">video</a>', sel);
                    }
                    sb.append('</td>');
                    if (i < dtEventos.rows.length - 1)
                    sb.append('<td><img src="images/memdivevento.gif" width="1" height="48" /></td>');
                }
            }
        else
            sb.append('<td align="center" height="50"><font color="#fffff">&nbsp;<!--não há eventos cadastrados.--></font></td>');
        sb.append('</tr></table>');
        $html(idDivEventos, sb.toString());
    } catch (e) { }
}

function SequenciaData(DataHora){
    DataAtual = Date.parse(DataHora, "dd/MM/yyyy HH:mm");
    SetCarregando();
    MemoriaDigital.InitStills(paginacao, 26, DataAtual, SequenciaData_callback);
}

function SequenciaData_callback(res){
    if (res.error == null){
        Stills = res.value;
        MostraSequencia(true);
    }
    ResetCarregando();
}

function InitComboData(idComboData) {
    ComboData = new Calendar($(idComboData));
    ComboData.maxDate = dataLimiteFinal;
    ComboData.minDate = dataLimiteInicial;
    ComboData.showToday = true;
    if (sufixoIdioma == "_en" || sufixoIdioma == "en") { //ingles
        ComboData.formatMask = "MM/dd/yyyy";
        with (ComboData.dayOfWeek) {
            sunday = 'S';
            monday = 'M';
            tuesday = 'T';
            wednesday = 'W';
            thursday = 'T';
            friday = 'F';
            saturday = 'S';
            today = 'today';
        }
        with (ComboData.month) {
            january = 'January'; 
            february = 'February';
            march = 'March';
            april = 'April'; 
            may = 'May';
            june = 'June';
            july = 'July'; 
            august = 'August'; 
            september = 'September';
            october = 'October'; 
            november = 'November'; 
            december = 'December';
        }
    }
    else { // portugues
        ComboData.formatMask = "dd/MM/yyyy";
    }
}

function setConteudo(CodConteudo){
    $("codConteudo").value = CodConteudo;
    $("codConteudo").form.submit();
}
    
function setVideo(CodVideo){
    $("codVideo").value = CodVideo;
    $("codVideo").form.submit();
}