/**
 * @cliente Prefeitura Municipal de Paty do Alferes.
 * @projeto Website patyfestadotomate.com.br.
 * @autor STUDIO Microcis
 * @copyright 2009 Prefeitura Municipal de Paty do Alferes. Todos os direitos reservados.
 */

/**
 * Responsável pela interface.
 */
cInterface = Class.create(cFestaDoTomate, {
    /**
     * Executa ao instanciar a classe.
     * 
     * @return void
     */
    initialize: function() {
        // Adiciona as funções para atualizar e inserir objetos JSON em DOM.
        Element.addMethods({
            /**
             * Atualiza o objeto utilizando outro objeto JSON.
             * 
             * @param string conteudo O conteúdo a ser atualizado no objeto.
             * @param object a As ações disponíveis durante a execução da rotina.
             * 
             * @return void
             */
            atualizarJSON: function(element, conteudo, a) {
                $(element).update('');
                $(element).inserirDoJSON(conteudo, 'top', a);
            },
            
            /**
             * Insere no objeto utilizando outro objeto JSON.
             * 
             * @param string conteudo O conteúdo a ser atualizado no objeto.
             * @param string posicao A posição onde o conteúdo será atualizado, em relação ao conteúdo atual.
             * @param object a As ações disponíveis durante a execução da rotina.
             * 
             * @return void
             */
            inserirJSON: function(element, conteudo, posicao, a) {
                // Define o conteiner como sendo o elemento.
                var conteiner = $(element);
                
                // Para cada índice do conteúdo...
                conteudo.each(function(element, index) {
                    if (Object.isString(element))
                        var elemento = element;
                    else {
                        // Define o elemento.
                        var elemento = new Element(element.tipo, element.atributo);
                        
                        // Se o conteúdo estiver definido...
                        if (element.conteudo != undefined)
                            // Se o objeto é do tipo Array...
                            if (Object.isArray(element.conteudo))
                                // Gera o conteúdo, chamando recursivamente a função.
                                elemento.inserirJSON(element.conteudo, 'bottom');
                            else
                                // Insere o conteúdo.
                                elemento.insert(element.conteudo);
                    }
                    
                    // Insere o elemento gerado no elemento ascendente.
                    $(conteiner).insert(elemento, {position: posicao});
                }.bind(this));
                
                // Executa a rotina ao completar se a mesma estiver definida.
                if (a != undefined && a.aoCompletar != undefined)
                    a.aoCompletar();
            }
        });
        
        // Registra o evento para redefinir o tamanho do contêiner do plano de fundo ao carregar a página.
        Event.observe(window, 'load', function(e) {
            this.redefineAlturaConteinerPlanoDeFundo();
        }.bind(this));
        
        // Registra o evento para redefinir o tamanho do contêiner do plano de fundo ao redimensionar.
        Event.observe(window, 'resize', function(e) {
            this.redefineAlturaConteinerPlanoDeFundo();
        }.bind(this));
        
        // Registra o evento do clique da cobertura fotográfica.
        Event.observe($$('div.conteiner div.cobertura-fotografica a')[0], 'click', function(e) {
            this.exibeBlackout({
                aoCompletar: function() {
                    this.exibeCoberturaFotografica();
                }.bind(this)
            });
        }.bind(this));
        
        // Registra o evento do clique do mapa de como chegar.
        Event.observe($$('div.conteiner h2.como-chegar a')[0], 'click', function(e) {
            this.exibeBlackout({
                aoCompletar: function() {
                    this.exibeComoChegar();
                }.bind(this)
            });
        }.bind(this));
        
        // Registra o evento do clique do mapa de como chegar.
        Event.observe($$('div.conteiner div.informacoes div.programacao-completa a')[0], 'click', function(e) {
            this.exibeBlackout({
                aoCompletar: function() {
                    this.exibeProgramacaoCompleta();
                }.bind(this)
            });
        }.bind(this));
        
        // Registra o evento do clique das formas de compra do ingresso.
        Event.observe($$('div.conteiner div.ingressos h3.onde-comprar a')[0], 'click', function(e) {
            this.exibeBlackout({
                aoCompletar: function() {
                    this.exibeOndeComprar();
                }.bind(this)
            });
        }.bind(this));
        
        // Define o status do preço do ingresso.
        this.defineTipoPrecoIngresso(0);
    },
    
    /**
     * Define o tipo de preço do ingresso.
     * 
     * @param integer tipoPrecoIngresso O tipo do preço do ingresso.
     * 
     * @return void
     */
    defineTipoPrecoIngresso: function(tipoPrecoIngresso) {
        this.tipoPrecoIngresso = tipoPrecoIngresso;
    },
    
    /**
     * Retorna o tipo do preço do ingresso.
     * 
     * @return integer
     */
    retornaTipoPrecoIngresso: function() {
        return this.tipoPrecoIngresso;
    },
    
    retornaDimensaoPagina: function() {
        var xScroll, yScroll;
        
        if (window.innerHeight && window.scrollMaxY) {  
            xScroll = window.innerWidth + window.scrollMaxX;
            yScroll = window.innerHeight + window.scrollMaxY;
        } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
            xScroll = document.body.scrollWidth;
            yScroll = document.body.scrollHeight;
        } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
            xScroll = document.body.offsetWidth;
            yScroll = document.body.offsetHeight;
        }
        
        var windowWidth, windowHeight;
        
        if (self.innerHeight) { // all except Explorer
            if(document.documentElement.clientWidth){
                windowWidth = document.documentElement.clientWidth; 
            } else {
                windowWidth = self.innerWidth;
            }
            windowHeight = self.innerHeight;
        } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
            windowWidth = document.documentElement.clientWidth;
            windowHeight = document.documentElement.clientHeight;
        } else if (document.body) { // other Explorers
            windowWidth = document.body.clientWidth;
            windowHeight = document.body.clientHeight;
        }   
        
        // for small pages with total height less then height of the viewport
        if(yScroll < windowHeight){
            pageHeight = windowHeight;
        } else { 
            pageHeight = yScroll;
        }
    
        // for small pages with total width less then width of the viewport
        if(xScroll < windowWidth){  
            pageWidth = xScroll;        
        } else {
            pageWidth = windowWidth;
        }

        return [pageWidth,pageHeight];
    },
    
    /**
     * Redefine a altura do contêiner do plano de fundo.
     * 
     * @return void
     */
    redefineAlturaConteinerPlanoDeFundo: function() {
        // Retorna a dimensão da viewport.
        var dimensaoViewport = document.viewport.getDimensions();
        
        // Se a altura for maior que o tamanho padrão.
        if (dimensaoViewport.height > 970) {
            // Define a nova altura do contêiner.
            $$('div.conteiner-do-plano-de-fundo')[0].setStyle({
                height: dimensaoViewport.height+'px'
            });
        } else {
            // Redefine o tamanho do contêiner com o seu original.
            $$('div.conteiner-do-plano-de-fundo')[0].setStyle({
                height: '970px'
            });
        }
        
        if ($$('body div.blackout')[0] != undefined) {
         // Retorna a dimensão da viewport.
            var dimensaoViewport = document.viewport.getDimensions();
            
            $$('body div.blackout')[0].setStyle({
                width: dimensaoViewport.largura+'px',
                height: dimensaoViewport.altura+'px'
            });
        }
    },
    
    /**
     * Exibe o tempo restante do evento.
     * 
     * @return void
     */
    exibeTempoRestanteEvento: function() {
        // Define a classe responsável pelo website.
        var FestaDoTomate = new cFestaDoTomate();
        
        // Retorna e define o tempo restante.
        var tempoRestante = FestaDoTomate.retornaTempoRestante();
        
        if (tempoRestante != false)
            // Define a mensagem com o tempo restante para o evento.
            $$('h2.contagem-regressiva')[0].update('Faltam <br />'+tempoRestante.hora+'h'+tempoRestante.minuto+'m'+tempoRestante.segundo+'s!');
        else
            $$('h2.contagem-regressiva')[0].update('SUCESSO <br />TOTAL!');
    },
    
    /**
     * Alterna o preço do ingresso.
     * 
     * @return void
     */
    alternaPrecoIngresso: function() {
        // Retorna e define o tipo do preço do ingresso.
        var tipoPrecoIngresso = this.retornaTipoPrecoIngresso();
        
        // Para cada tipo de preço do ingresso...
        switch (tipoPrecoIngresso) {
            case 0:
                // Exibe o 2º preço.
                new Effect.Appear($$('div.conteiner div.ingressos li.preco-2')[0], {
                    from: 0,
                    to: 1,
                    duration: 0.2,
                    transition: Effect.Transitions.sinoidal,
                    afterFinish: function() {
                        this.defineTipoPrecoIngresso(1);
                    }.bind(this)
                });
            break;
            case 1:
                // Exibe o 3º preço.
                new Effect.Appear($$('div.conteiner div.ingressos li.preco-3')[0], {
                    from: 0,
                    to: 1,
                    duration: 0.2,
                    transition: Effect.Transitions.sinoidal,
                    afterFinish: function() {
                        this.defineTipoPrecoIngresso(2);
                    }.bind(this)
                });
            break;
            case 2:
                // Oculta o 2º preço.
                $$('div.conteiner div.ingressos li.preco-2')[0].hide();
    
                // Oculta o 3º preço.
                new Effect.Fade($$('div.conteiner div.ingressos li.preco-3')[0], {
                    from: 1,
                    to: 0,
                    duration: 0.2,
                    transition: Effect.Transitions.sinoidal,
                    afterFinish: function() {
                        this.defineTipoPrecoIngresso(0);
                    }.bind(this)
                });
            break;
        }
    },
    
    /**
     * Exibe o blackout.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    exibeBlackout: function(a) {
        // Retorna e define a dimensão da página.
        var dimensaoPagina = this.retornaDimensaoPagina();
        
        // Insere o blackout, transformando de JSON para HTML.
        $$('body')[0].inserirJSON([
           {
               "tipo": "div",
               "atributo": {
                   "class": "blackout",
                   "style": "display: none; width: "+dimensaoPagina[0]+"px; height: "+dimensaoPagina[1]+"px;"
               },
               "conteudo": "" 
           }
        ], 'bottom', {
            // Ao completar a rotina...
            aoCompletar: function() {
                new Effect.Appear($$('div.blackout')[0], {
                    from: 0,
                    to: 0.5,
                    duration: 0.3,
                    transition: Effect.Transitions.sinoidal,
                    afterFinish: function() {
                        // Executa a rotina ao completar se a mesma estiver definida.
                        if (a != undefined && a.aoCompletar != undefined)
                            a.aoCompletar();
                    }
                });
            }
        });
    },
    
    /**
     * Oculta o blackout.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    ocultaBlackout: function(a) {
        // Oculta o blackout.
        new Effect.Fade($$('body div.blackout')[0], {
            from: 0.5,
            to: 0,
            duration: 0.3,
            transition: Effect.Transitions.sinoidal,
            // Ao completar...
            afterFinish: function() {
                if ($$('body div.blackout')[0] != undefined)
                    // Remove o blackout.
                    $$('body div.blackout')[0].remove();
                
                // Executa a rotina ao completar se a mesma estiver definida.
                if (a != undefined && a.aoCompletar != undefined)
                    a.aoCompletar();
            }
        });
    },
    
    /**
     * Exibe a cobertura fotográfica.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    exibeCoberturaFotografica: function(a) {
        // Insere o blackout, transformando de JSON para HTML.
        $$('body')[0].inserirJSON([
           {
               "tipo": "div",
               "atributo": {
                   "class": "cobertura-fotografica box",
                   "style": "display: none;"
               },
               "conteudo": [
                   {
                       "tipo": "div",
                       "atributo": {
                           "class": "inauguracao"
                       },
                       "conteudo": [
                           
                       ]
                   },
                   {
                       "tipo": "div",
                       "atributo": {
                           "class": "dias"
                       },
                       "conteudo": [
                           {
                               "tipo": "div",
                               "atributo": {
                                   "class": "dez"
                               },
                               "conteudo": [
                                   {
                                       "tipo": "h2",
                                       "atributo": {
                                           "class": "titulo"
                                       },
                                       "conteudo": "Dia 10"
                                   },
                                   {
                                       "tipo": "h3",
                                       "atributo": {
                                           "class": "evento"
                                       },
                                       "conteudo": "abertura oficial"
                                   },
                                   {
                                       "tipo": "a",
                                       "atributo": {
                                           "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-01.jpg",
                                           "rel": "lightbox[inauguracao]"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "img",
                                               "atributo": {
                                                   "src": "/imagens/paginas/cobertura-fotografica/inauguracao/thumb/foto-10.jpg"
                                               }
                                           }
                                       ]
                                   },
                                   {
                                       "tipo": "div",
                                       "atributo": {
                                           "class": "fotos",
                                           "style": "display: none;"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-02.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           }/*,
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-03.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-04.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-05.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-06.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-08.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-09.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-10.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-11.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/inauguracao/foto-12.jpg",
                                                   "rel": "lightbox[inauguracao]"
                                               }
                                           }*/
                                       ]
                                   },
                                   {
                                       "tipo": "h3",
                                       "atributo": {
                                           "class": "evento"
                                       },
                                       "conteudo": "Show"
                                   },
                                   {
                                       "tipo": "a",
                                       "atributo": {
                                           "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-01.jpg",
                                           "rel": "lightbox[dia-10]"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "img",
                                               "atributo": {
                                                   "src": "/imagens/paginas/cobertura-fotografica/dia-10/thumb/foto-10.jpg"
                                               }
                                           }
                                       ]
                                   },
                                   {
                                       "tipo": "div",
                                       "atributo": {
                                           "class": "fotos",
                                           "style": "display: none;"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-02.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-03.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-04.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-05.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           }/*,
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-06.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-07.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-08.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-09.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-10/foto-10.jpg",
                                                   "rel": "lightbox[dia-10]"
                                               }
                                           } */                                     
                                       ]
                                   }
                               ]
                           },
                           {
                               "tipo": "div",
                               "atributo": {
                                   "class": "onze"
                               },
                               "conteudo": [
                                   {
                                       "tipo": "h2",
                                       "atributo": {
                                           "class": "titulo"
                                       },
                                       "conteudo": "Dia 11"
                                   },
                                   {
                                       "tipo": "h3",
                                       "atributo": {
                                           "class": "evento"
                                       },
                                       "conteudo": "Show"
                                   },
                                   {
                                       "tipo": "a",
                                       "atributo": {
                                           "href": "/imagens/paginas/cobertura-fotografica/dia-11/foto-01.jpg",
                                           "rel": "lightbox[dia-11]"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "img",
                                               "atributo": {
                                                   "src": "/imagens/paginas/cobertura-fotografica/dia-11/thumb/foto-07.jpg"
                                               }
                                           }
                                       ]
                                   },
                                   {
                                       "tipo": "div",
                                       "atributo": {
                                           "class": "fotos",
                                           "style": "display: none;"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-11/foto-02.jpg",
                                                   "rel": "lightbox[dia-11]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-11/foto-03.jpg",
                                                   "rel": "lightbox[dia-11]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-11/foto-04.jpg",
                                                   "rel": "lightbox[dia-11]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-11/foto-05.jpg",
                                                   "rel": "lightbox[dia-11]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-11/foto-06.jpg",
                                                   "rel": "lightbox[dia-11]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-11/foto-07.jpg",
                                                   "rel": "lightbox[dia-11]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-11/foto-08.jpg",
                                                   "rel": "lightbox[dia-11]"
                                               }
                                           }                                       
                                       ]
                                   }
                               ]
                           },
                           {
                               "tipo": "div",
                               "atributo": {
                                   "class": "doze"
                               },
                               "conteudo": [
                                   {
                                       "tipo": "h2",
                                       "atributo": {
                                           "class": "titulo"
                                       },
                                       "conteudo": "Dia 12"
                                   },
                                   {
                                       "tipo": "h3",
                                       "atributo": {
                                           "class": "evento"
                                       },
                                       "conteudo": "Show"
                                   },
                                   {
                                       "tipo": "a",
                                       "atributo": {
                                           "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-01.jpg",
                                           "rel": "lightbox[dia-12]"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "img",
                                               "atributo": {
                                                   "src": "/imagens/paginas/cobertura-fotografica/dia-12/thumb/foto-capa.jpg"
                                               }
                                           }
                                       ]
                                   },
                                   {
                                       "tipo": "div",
                                       "atributo": {
                                           "class": "fotos",
                                           "style": "display: none;"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-02.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-03.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-04.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-05.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-06.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           }/*,
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-07.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-08.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-09.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-12/foto-10.jpg",
                                                   "rel": "lightbox[dia-12]"
                                               }
                                           }*/
                                       ]
                                   }
                               ]
                           },
                           {
                               "tipo": "div",
                               "atributo": {
                                   "class": "treze"
                               },
                               "conteudo": [
                                   {
                                       "tipo": "h2",
                                       "atributo": {
                                           "class": "titulo"
                                       },
                                       "conteudo": "Dia 13"
                                   },
                                   {
                                       "tipo": "h3",
                                       "atributo": {
                                           "class": "evento"
                                       },
                                       "conteudo": "Show"
                                   },
                                   {
                                       "tipo": "a",
                                       "atributo": {
                                           "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-01.jpg",
                                           "rel": "lightbox[dia-13]"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "img",
                                               "atributo": {
                                                   "src": "/imagens/paginas/cobertura-fotografica/dia-13/thumb/foto-capa.jpg"
                                               }
                                           }
                                       ]
                                   },
                                   {
                                       "tipo": "div",
                                       "atributo": {
                                           "class": "fotos",
                                           "style": "display: none;"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-02.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-03.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-04.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-05.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-06.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-07.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           }/*,
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-08.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-09.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-13/foto-10.jpg",
                                                   "rel": "lightbox[dia-13]"
                                               }
                                           }*/
                                       ]
                                   }
                               ]
                           },
                           {
                               "tipo": "div",
                               "atributo": {
                                   "class": "quatorze"
                               },
                               "conteudo": [
                                   {
                                       "tipo": "h2",
                                       "atributo": {
                                           "class": "titulo"
                                       },
                                       "conteudo": "Dia 14"
                                   },
                                   {
                                       "tipo": "h3",
                                       "atributo": {
                                           "class": "evento"
                                       },
                                       "conteudo": "Show"
                                   },
                                   {
                                       "tipo": "a",
                                       "atributo": {
                                           "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-01.jpg",
                                           "rel": "lightbox[dia-14]"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "img",
                                               "atributo": {
                                                   "src": "/imagens/paginas/cobertura-fotografica/dia-14/thumb/foto-capa.jpg"
                                               }
                                           }
                                       ]
                                   },
                                   {
                                       "tipo": "div",
                                       "atributo": {
                                           "class": "fotos",
                                           "style": "display: none;"
                                       },
                                       "conteudo": [
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-02.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-03.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-04.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-05.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-06.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           }/*,
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-07.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-08.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-09.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-10.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           },
                                           {
                                               "tipo": "a",
                                               "atributo": {
                                                   "href": "/imagens/paginas/cobertura-fotografica/dia-14/foto-11.jpg",
                                                   "rel": "lightbox[dia-14]"
                                               }
                                           }  */                                     
                                       ]
                                   }
                               ]
                           }
                       ]
                   },
                   {
                       "tipo": "div",
                       "atributo": {
                           "class": "opcoes"
                       },
                       "conteudo": [
                           {
                               "tipo": "a",
                               "atributo": {
                                   "class": "fechar",
                                   "href": "#pagina-inicial/"
                               },
                               "conteudo": "Fechar"
                           }
                       ]
                   }
               ] 
           }
        ], 'bottom', {
            aoCompletar: function() {
                // Exibe a cobertura fotográfica.
                new Effect.Appear($$('body div.cobertura-fotografica.box')[0], {
                    from: 0,
                    to: 1,
                    duration: 0.3,
                    transition: Effect.Transitions.sinoidal,
                    afterFinish: function() {
                        // Define a ação do botão de fechar do box e do clique no blackout.
                        [
                            $$('body div.cobertura-fotografica.box div.opcoes a.fechar')[0],
                            $$('body div.blackout')[0]
                        ].each(function(t) {
                            Event.observe(t, 'click', function(e) {
                                // Oculta a cobertura fotográfica...
                                this.ocultaCoberturaFotografica({
                                    aoCompletar: function() {
                                        // E oculta o blackout.
                                        this.ocultaBlackout({
                                            aoCompletar: function() {
                                                // Executa a rotina ao completar se a mesma estiver definida.
                                                if (a != undefined && a.aoCompletar != undefined)
                                                    a.aoCompletar();
                                            }.bind(this)
                                        });
                                    }.bind(this)
                                });
                            }.bind(this));
                        }.bind(this));
                        
                        // Realiza o tracker da página.
                        pageTracker._trackPageview('/js/cobertura-fotografica/');
                    }.bind(this)
                });
            }.bind(this)
        });
    },
    
    /**
     * Oculta a cobertura fotográfica.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    ocultaCoberturaFotografica: function(a) {
        // Define o elemento da box da cobertura fotográfica.
        var e = $$('body div.cobertura-fotografica.box')[0];
        
        // Se o elemento existe...
        if (e != undefined)
            // Oculta o elemento executando o efeito de "fade".
            new Effect.Fade(e, {
                from: 1,
                to: 0,
                duration: 0.3,
                transition: Effect.Transitions.sinoidal,
                afterFinish: function() {
                    // Se o elemento existe...
                    if (e != undefined)
                        // Remove o box.
                        e.remove();
                    
                    // Modifica o link para a página inicial.
                    window.location = '#pagina-inicial/';
                    
                    // Realiza o tracker da página.
                    pageTracker._trackPageview('/js/pagina-inicial/');
                
                    // Executa a rotina ao completar se a mesma estiver definida.
                    if (a != undefined && a.aoCompletar != undefined)
                        a.aoCompletar();
                }.bind(this)
            });
    },
    
    /**
     * Exibe como chegar.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    exibeComoChegar: function(a) {
        // Insere o blackout, transformando de JSON para HTML.
        $$('body')[0].inserirJSON([
            {
                "tipo": "div",
                "atributo": {
                    "class": "como-chegar box",
                    "style": "display: none;"
            },
            "conteudo": [
                {
                    "tipo": "div",
                    "atributo": {
                        "class": "opcoes"
                    },
                    "conteudo": [
                        {
                            "tipo": "a",
                            "atributo": {
                                "class": "fechar",
                                "href": "#pagina-inicial"
                            },
                            "conteudo": "Fechar"
                        }
                    ]
                },
                    {
                        "tipo": "div",
                        "atributo": {
                            "class": "mapa"
                        },
                        "conteudo": [
                            {
                                "tipo": "img",
                                "atributo": {
                                    "src": "/imagens/paginas/inicial/mapa.gif"
                                },
                                "conteudo": ""
                            }
                        ]
                   }
               ] 
           }
        ], 'bottom', {
            aoCompletar: function() {
                // Exibe o flashback.
                new Effect.Appear($$('body div.como-chegar.box')[0], {
                    from: 0,
                    to: 1,
                    duration: 0.3,
                    transition: Effect.Transitions.sinoidal,
                    afterFinish: function() {
                        // Define a ação do botão de fechar do box e do clique no blackout.
                        [
                            $$('body div.como-chegar.box div.opcoes a.fechar')[0],
                            $$('body div.blackout')[0]
                        ].each(function(t) {
                            Event.observe(t, 'click', function(e) {
                                // Oculta o flasback...
                                this.ocultaComoChegar({
                                    aoCompletar: function() {
                                        // E oculta o blackout.
                                        this.ocultaBlackout({
                                            aoCompletar: function() {
                                                // Executa a rotina ao completar se a mesma estiver definida.
                                                if (a != undefined && a.aoCompletar != undefined)
                                                    a.aoCompletar();
                                            }.bind(this)
                                        });
                                    }.bind(this)
                                });
                            }.bind(this));
                        }.bind(this));
                        
                        // Realiza o tracker da página.
                        pageTracker._trackPageview('/js/como-chegar/');
                    }.bind(this)
                });
            }.bind(this)
        });
    },
    
    /**
     * Oculta como chegar.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    ocultaComoChegar: function(a) {
        // Define o elemento da box de como chegar.
        var e = $$('body div.como-chegar.box')[0];
        
        // Se o elemento existe...
        if (e != undefined)
            // Oculta o elemento executando o efeito de "fade".
            new Effect.Fade(e, {
                from: 1,
                to: 0,
                duration: 0.3,
                transition: Effect.Transitions.sinoidal,
                afterFinish: function() {
                    // Se o elemento existe...
                    if (e != undefined)
                        // Remove o box.
                        e.remove();
                    
                    // Modifica o link para a página inicial.
                    window.location = '#pagina-inicial/';
                    
                    // Realiza o tracker da página.
                    pageTracker._trackPageview('/js/pagina-inicial/');
                
                    // Executa a rotina ao completar se a mesma estiver definida.
                    if (a != undefined && a.aoCompletar != undefined)
                        a.aoCompletar();
                }.bind(this)
            });
    },
    
    /**
     * Exibe a programação completa.
     * 
     * @param object a As ações disponívels durante a rotina.
     * 
     * @return void
     */
    exibeProgramacaoCompleta: function(a) {
        // Insere o blackout, transformando de JSON para HTML.
        $$('body')[0].inserirJSON([
            {
                "tipo": "div",
                "atributo": {
                    "class": "programacao-completa box",
                    "style": "display: none;"
                },
                "conteudo": ""
            }
        ], 'bottom', {
            aoCompletar: function() {
                new Ajax.Request('/paginas/programacao-completa/index.php', {
                    onSuccess: function(Request) {
                        $$('div.programacao-completa.box')[0].update(Request.responseText);
                        
                        // Exibe o flashback.
                        new Effect.Appear($$('body div.programacao-completa.box')[0], {
                            from: 0,
                            to: 1,
                            duration: 0.3,
                            transition: Effect.Transitions.sinoidal,
                            afterFinish: function() {
                                // Define a ação do botão de fechar do box e do clique no blackout.
                                [
                                    $$('body div.programacao-completa.box div.opcoes a.fechar')[0],
                                    $$('body div.blackout')[0]
                                ].each(function(t) {
                                    Event.observe(t, 'click', function(e) {
                                        // Oculta o flasback...
                                        this.ocultaProgramacaoCompleta({
                                            aoCompletar: function() {
                                                // E oculta o blackout.
                                                this.ocultaBlackout({
                                                    aoCompletar: function() {
                                                        // Executa a rotina ao completar se a mesma estiver definida.
                                                        if (a != undefined && a.aoCompletar != undefined)
                                                            a.aoCompletar();
                                                    }.bind(this)
                                                });
                                            }.bind(this)
                                        });
                                    }.bind(this));
                                }.bind(this));
                                
                                // Realiza o tracker da página.
                                pageTracker._trackPageview('/js/programacao-completa/');
                            }.bind(this)
                        });
                    }.bind(this)
                });
            }.bind(this)
        });
    },
    
    /**
     * Oculta a programação completa.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    ocultaProgramacaoCompleta: function(a) {
        // Define o elemento da box da programação completa.
        var e = $$('body div.programacao-completa.box')[0];
        
        // Se o elemento existe...
        if (e != undefined)
            // Oculta o elemento executando o efeito de "fade".
            new Effect.Fade(e, {
                from: 1,
                to: 0,
                duration: 0.3,
                transition: Effect.Transitions.sinoidal,
                afterFinish: function() {
                    // Se o elemento existe...
                    if (e != undefined)
                        // Remove o box.
                        e.remove();
                    
                    // Modifica o link para a página inicial.
                    window.location = '#pagina-inicial/';
                    
                    // Realiza o tracker da página.
                    pageTracker._trackPageview('/js/pagina-inicial/');
                
                    // Executa a rotina ao completar se a mesma estiver definida.
                    if (a != undefined && a.aoCompletar != undefined)
                        a.aoCompletar();
                }.bind(this)
            });
    },
    
    /**
     * Exibe onde comprar.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    exibeOndeComprar: function(a) {
        // Insere o blackout, transformando de JSON para HTML.
        $$('body')[0].inserirJSON([
            {
                "tipo": "div",
                "atributo": {
                    "class": "onde-comprar box",
                    "style": "display: none;"
                },
                "conteudo": ""
            }
        ], 'bottom', {
            aoCompletar: function() {
                new Ajax.Request('/paginas/onde-comprar/index.php', {
                    onSuccess: function(Request) {
                        $$('div.onde-comprar.box')[0].update(Request.responseText);
                        
                        // Exibe o flashback.
                        new Effect.Appear($$('body div.onde-comprar.box')[0], {
                            from: 0,
                            to: 1,
                            duration: 0.3,
                            transition: Effect.Transitions.sinoidal,
                            afterFinish: function() {
                                // Define a ação do botão de fechar do box e do clique no blackout.
                                [
                                    $$('body div.onde-comprar.box div.opcoes a.fechar')[0],
                                    $$('body div.blackout')[0]
                                ].each(function(t) {
                                    Event.observe(t, 'click', function(e) {
                                        // Oculta o flasback...
                                        this.ocultaOndeComprar({
                                            aoCompletar: function() {
                                                // E oculta o blackout.
                                                this.ocultaBlackout({
                                                    aoCompletar: function() {
                                                        // Executa a rotina ao completar se a mesma estiver definida.
                                                        if (a != undefined && a.aoCompletar != undefined)
                                                            a.aoCompletar();
                                                    }.bind(this)
                                                });
                                            }.bind(this)
                                        });
                                    }.bind(this));
                                }.bind(this));
                                
                                // Realiza o tracker da página.
                                pageTracker._trackPageview('/js/onde-comprar/');
                            }.bind(this)
                        });
                    }.bind(this)
                });
            }.bind(this)
        });
    },
    
    /**
     * Oculta onde comprar.
     * 
     * @param object a As ações disponíveis durante a rotina.
     * 
     * @return void
     */
    ocultaOndeComprar: function(a) {
        // Define o elemento da box de onde comprar.
        var e = $$('body div.onde-comprar.box')[0];
        
        // Se o elemento existe...
        if (e != undefined)
            // Oculta o elemento executando o efeito de "fade".
            new Effect.Fade(e, {
                from: 1,
                to: 0,
                duration: 0.3,
                transition: Effect.Transitions.sinoidal,
                afterFinish: function() {
                    // Se o elemento existe...
                    if (e != undefined)
                        // Remove o box.
                        e.remove();
                    
                    // Modifica o link para a página inicial.
                    window.location = '#pagina-inicial/';
                
                    // Realiza o tracker da página.
                    pageTracker._trackPageview('/js/pagina-inicial/');
                
                    // Executa a rotina ao completar se a mesma estiver definida.
                    if (a != undefined && a.aoCompletar != undefined)
                        a.aoCompletar();
                }.bind(this)
            });
    }
});