﻿$(function() {
    /* IE Shadow Prototype */
    if (navigator.appName == "Microsoft Internet Explorer") {
        $('.MainMenu ul')
            .append('<div class="shadow nw"></div>').append('<div class="shadow w"></div>')
            .append('<div class="shadow ne"></div>').append('<div class="shadow e"></div>')
            .append('<div class="shadow sw"></div>').append('<div class="shadow s"></div>')
            .append('<div class="shadow se"></div>').append('<div class="shadow n"></div>');

        $('.MainMenu > li')
            .append('<div class="shadow nw"></div>').append('<div class="shadow w"></div>')
            .append('<div class="shadow ne"></div>').append('<div class="shadow e"></div>')
            .append('<div class="shadow n"></div>');

        $('.MainMenu > li:not(:has(ul))')
            .append('<div class="shadow sw"></div>').append('<div class="shadow s"></div>')
            .append('<div class="shadow se"></div>');
    }

    // ** Setup Banner **

    var LOOP_ON_IDLE = false;
    var LOOP_WAIT_TIME = 8000;

    var colors = ['#811722', '#9d1b27', '#ba1f2d', '#d72433', '#e15326', '#eb801a', '#f5af0d', '#eb801a', '#e15326', '#d72433', '#ba1f2d', '#9d1b27'];
    var last_index = 0;

    function changeSelection(index) {
        if (index == undefined) var index = last_index + 1;
        index = index % $('.BannerButtons li').length;

        var element = $('.BannerButtons li:eq(' + index + ')');

        if (element.size() == 0) return;

        $('.BannerButtons li').css('background-color', '').children('a').css('color', ''); ;

        element.css('background-color', colors[index % colors.length]).children('a').css('color', '#fff');

        var imageUrl = element.attr('imagemurl');

        if (imageUrl != undefined) {
            $('#BannerImage').attr('src', imageUrl);
            $('#BannerImage').show();
        } else
            $('#BannerImage').hide();

        $('#banner #infobar').html('<span class="orange-title">' + element.text() + ':</span> ' + element.attr('resumo'));

        last_index = index;
    }

    changeSelection(0);

    $('.BannerButtons li a').each(function() {
        var self = $(this), height = self.height();
        if (height == 13)
            self.css({ height: '100%', 'line-height': '41px' });
        else
            self.css({ height: '100%', 'line-height': '14px', 'padding-top': '6px' });
    });

    $('.BannerButtons li').hover(function() {
        if (LOOP_ON_IDLE) clearInterval(idle_timer);
        changeSelection($(this).index());
    }, function() {
        if (LOOP_ON_IDLE) idle_timer = setInterval(changeSelection, LOOP_WAIT_TIME);
    });

    $('#infobar').hover(function() {
        $('#BannerButtons li').css('background-color', '').children('a').css('color', ''); ;
    });

    var button_count = $('.BannerButtons li').size();
    $('#infobar').css('right', Math.floor(button_count / 7) * 161);

    window.setupBanner = function() {
        var elements = $('.BannerButtons li');
        if (elements.size() == 0) return;

        var imageObj = new Image();

        $.each(elements, function(index, element) {
            var imageUrl = $(element).attr('imagemurl');
            imageObj.src = imageUrl;
        });

        if (LOOP_ON_IDLE) var idle_timer = setInterval(changeSelection, LOOP_WAIT_TIME);
    }

    // ** Setup Destaques **

    var destaquesObtidos = 0;

    function mostrarOverlay() {
        $('#destaques').append($('<div class="overlay"><img src="/images/ajax-loader.gif" alt="" /></div>'));
    }

    function esconderOverlay(time) {
        $('#destaques .overlay').fadeOut(300 || time, function() { $(this).remove() });
    }

    function mostrarDestaques(start) {
        mostrarOverlay();
        $.ajax({
            url: '/Ajax.ashx',
            data: { tipo: 'destaques', start: Math.max(start || 0, 0), size: 10 },
            dataType: 'json',
            success: function(data) {
                if (data && data.length != 0) {
                    destaquesObtidos = data.length;

                    var lista = $('#listadestaques');
                    lista.empty();

                    $.each(data, function(index, destaque) {
                        lista.append('<div class="destaque"><a href="' + destaque.Link + '">' +
                                     '<div class="title">' + destaque.Titulo + '</div>' +
                                     '<div class="body">' + destaque.Lead + '</div>' +
                                     '</a></div>');
                    });

                    var total_height = 0;

                    $('.destaque').each(function(index, d) {
                        var title = $(d).find('.title');
                        var body = $(d).find('.body');

                        var max_body_height = 65 - title.height();
                        if (max_body_height > 0) {
                            if (body.height() > max_body_height) {
                                while (body.height() > max_body_height) {
                                    var text = body.text();
                                    body.text(text.substr(0, text.length - 1));
                                }
                                body.text(text.substr(0, text.lastIndexOf(' ')) + '…');
                            }
                        } else
                            body.text('');

                        total_height += $(this).height() + 10;
                    });


                    var elDestaques = $('#destaques');
                    while (total_height >= elDestaques.height()) {
                        var elDestaque = $('.destaque:last-child');
                        total_height -= (elDestaque.height() + 10);
                        elDestaque.remove();
                    }

                }
                esconderOverlay();
            }
        });

    }

    var currentOffset = 0, destaqueHistory = [];

    $('#up-arrow').click(function() {
        if (destaqueHistory.length == 0) return;
        currentOffset = destaqueHistory.pop();
        mostrarDestaques(currentOffset);
    });

    $('#down-arrow').click(function() {
        if (destaquesObtidos != 10 && destaquesObtidos == $('.destaque').size()) return false;
        destaqueHistory.push(currentOffset)
        currentOffset += $('.destaque').size();
        mostrarDestaques(currentOffset);
    });

    mostrarDestaques(currentOffset);

    // ** Setup Carrossel ** 

    window.setupCarrossel = function(items) {
        var position = Math.floor(Math.random() * items.length);

        $('#left-arrow').click(function() {
            var index = Math.abs((position - 1) % items.length);
            var item = items[index];
            var el = $('<div class="item" _id="' + index + '"><a href="' + item.href + '" target="' + item.target + '"><img src="/download/' + item.image + '" alt=""/><span>' + item.text + '</span></a></div>');
            el.width(0);
            $('#carrossel #corredor').prepend(el);
            el.animate({ width: 152 }, 200, function() { $('#carrossel #corredor .item:last-child').remove(); });
            position--;
            return false;
        });

        $('#right-arrow').click(function() {
            var index = Math.abs(position % items.length);
            var item = items[index];
            $('#carrossel #corredor').append('<div class="item" _id="' + index + '"><a href="' + item.href + '" target="' + item.target + '"><img src="/download/' + item.image + '" alt=""/><span>' + item.text + '</span></a></div>');
            $('#carrossel #corredor .item:first-child').animate({ width: 0 }, 200, function() { $(this).remove(); });
            position++;
            return false;
        });

        $('#carrossel #corredor .item').live('mouseover mouseout', function() {
            var index = $(this).attr('_id');
            var item = items[index];

            if (item.hover == 0) return;

            if (event.type == 'mouseover') {
                $(this).find('img').attr('src', '/download/' + item.hover);
            } else {
                $(this).find('img').attr('src', '/download/' + item.image);
            }
        });

        if (items.length < 4) {
            $('#left-arrow').hide();
            $('#right-arrow').hide();
        }

        for (var i = position; i < position + Math.min(4, items.length + 1); i++) {
            var index = Math.abs(i % items.length)
            var item = items[index];
            $('#carrossel #corredor').append('<div class="item" _id="' + index + '"><a href="' + item.href + '" target="' + item.target + '"><img src="/download/' + item.image + '" alt=""/><span>' + item.text + '</span></a></div>');
        }
    }

    // ** Setup Textfields **

    /* // Removed since style in chrome and firefox4 is buggy.
    function supports_input_placeholder() {
    var i = document.createElement('input');
    return 'placeholder' in i;
    }
    */

    //if (!supports_input_placeholder()) {
    $('input[type=text]').focus(function() {
        var el = $(this);
        if (el.val() == el.attr('placeholder')) {
            el.val('');
            el.css('color', '#4c4c4c');
        }
    });

    $('input[type=text]').blur(function() {
        var el = $(this);
        if (el.val() == '') {
            el.val(el.attr('placeholder'));
            el.css('color', '');
        } else
            el.css('color', '#4c4c4c');
    });

    $('input[type=text]').blur();
    //}


    // ** Setup Pesquisa **

    $('#header-top #rightside form').submit(function() {
        var textfield = $('#header-top #rightside .textfield');
        return !(textfield.val() == "" || textfield.val() == textfield.attr('placeholder'));
    });

    $('#pesquisa-form').submit(function() {
        var textfield = $('#text-field');
        return !(textfield.val() == "" || textfield.val() == textfield.attr('placeholder'));
    });
});
