$(function(){
    var currentPage = $('body').attr('id');
    var cookieName = '';

    if (currentPage == 'home') {
        cookieName = 'bannerOverlayHome';
    } else{
        cookieName = 'bannerOverlay';
    }

    var bannerOverlayStartPosition = ( readCookie(cookieName) == 'closed' ) ? 'closed' : 'open';

    var speed = ( $.browser.msie && $.browser.version < 7 ) ? 1 : 800;
    //createCookie('bannerOverlay', 'closed', 365);

    $('#bannerOverlay').slideBox({
        width: '100%',
        height: '87px',
        position: 'bottom',
        textClose: '<img src="'+ app['base_url'] +'assets/images/banner_overlay/btn_close.png" />',
        textOpen: '<img src="'+ app['base_url'] +'assets/images/banner_overlay/btn_open.png" />',
        speed: speed,
        closeDelay: 7000,
        startPosition: bannerOverlayStartPosition,
        currentPage: currentPage,
        onOpenClick: function(){
            bannerOverlaySifr(); // located in global-sifr.js
        },
        onCloseComplete: function(){
            createCookie(cookieName, 'closed', 365);

            if( $.browser.msie && $.browser.version < 7 )
                return;

            $('#wrapper').css('margin-bottom','0');
        },
        onOpenComplete: function(){
            createCookie(cookieName, 'open', 365);

            if( $.browser.msie && $.browser.version < 7 )
                return;

            $('#wrapper').css('margin-bottom','140px');
        }
    });
    $('#bannerOverlay').prepend('<div class="slide-panel-shadow"></div>');
    bannerOverlaySifr();

});

/**
 * Slide Box : a jQuery Plug-in
 *
 * Re-written by: Brian Litzinger
 * Added callbacks, and other options for easier customization, and better DOM insertion
 *
 * Originally written by:
 * Samuel Garneau <samgarneau@gmail.com>
 * http://samgarneau.com
 */
(function($){
    $.fn.extend({
        slideBox: function(params){
            var hideTimeout = false;
            var content = $(this).html();
            var defaults = {
                width: "100%",
                height: "200px",
                position: "bottom",	// Possible values : "top", "bottom"
                textOpen: 'Open',
                textClose: 'Close',
                startPosition: 'open',
                speed: 1000,
                closeDelay: false,
                onOpenClick: false,
                onOpenComplete: false,
                onCloseClick: false,
                onCloseComplete: false,
                hideTimeout: false,
                currentPage: ''
            }

            var defaults = $.extend({}, $.fn.slideBox.defaults, params);

            panel = $(this);

            panel.addClass(defaults.position)
                .css("width", defaults.width)
                .css("left", (100 - parseInt(defaults.width))/2 + "%")
                .html('<div class="content">'+ content + '</div>');

            panelContent = panel.find('.content');

            // adding buttons
            if(defaults.startPosition === 'closed') {
                panel.append('<div class="slide-button">'+ defaults.textOpen +'</div>');
                panel.append('<div style="display: none" id="close-button" class="slide-button">'+ defaults.textClose +'</div>');

                panelContent.hide();

                if(defaults.onCloseComplete){
                    defaults.onCloseComplete();
                }
            } else {
                panel.append('<div style="display: none" class="slide-button">'+ defaults.textOpen +'</div>');
                panel.append('<div id="close-button" class="slide-button">'+ defaults.textClose +'</div>');

                if(defaults.onOpenComplete){
                    defaults.onOpenComplete();
                }
            }

            panel.wrapInner('<div class="content-wrapper"></div>');
            panel.show();

            // Buttons action
            panel.find('.slide-button').click(function(){
                if($(this).attr("id") == "close-button") {
                    closePanel();
                } else {
                    openPanel();
                }

                panel.find('.slide-button').toggle();
            });


            if(defaults.closeDelay && defaults.startPosition == 'open' && defaults.currentPage != 'home')
            {
                hideTimeout = setTimeout({
                    run: function() {
                        closePanel();
                        panel.find('.slide-button').toggle();
                    }
                }.run, defaults.closeDelay);
            }

            function closePanel()
            {
                if(defaults.onCloseClick){
                    defaults.onCloseClick();
                }

                panelContent.animate({height: "0px"}, defaults.speed, function(){
                    // hide the content div when the animation is complete
                    $(this).hide();

                    if(defaults.onCloseComplete){
                        defaults.onCloseComplete();
                    }
                });
            }

            function openPanel()
            {
                // set the height to 0 or else the animation messes up.
                panelContent.show().css('height', '0');

                if(defaults.onOpenClick){
                    defaults.onOpenClick();
                }

                panelContent.animate({height: defaults.height}, defaults.speed, function(){
                    if(defaults.onOpenComplete){
                        defaults.onOpenComplete();
                    }
                });
            }

            function loadBannerContent(){
                if (defaults.currentPage == 'home') {
                    $.ajax({
                        type: "GET",
                        url: app['base_url'] + "sponsors-banner",
                        success: function(msg){
                            if (msg.search("href=") >= 0) {
                                $("#bannerOverlay .content").append(msg);
                            } else {
                                $("#bannerOverlay").hide();
                            }
                       }
                     });
                } else {
                    var xmlUrl = "banner-overlay-content/main.xml";
                    if (typeof stateTrayUrl != 'undefined') {
                        xmlUrl = stateTrayUrl;
                    }
                    $.ajax({
                        type: "GET",
                        url: app['base_url'] + xmlUrl,
                        dataType: "xml",
                        success: function(xml) {
                            loadData(xml);
                        },
                        error: function(xml, status, error) {
                            // gracefully remove the banner if the XML load errors out
                            $('#bannerOverlay').remove();
                        }
                    });
                }
            }

            function loadData(xml)
            {
                var total = $(xml).find('message').length;
                var toLoad = Math.round(Math.random() * total);
                toLoad = ( toLoad == total ) ? total - 1 : toLoad;

                $(xml).find('message').each(function(i){
                    var header = $(this).find('title').text();
                    var content = trimContent($(this).find('content').text());
                    var url = $(this).find('url').text();
                    var image = $(this).find('image').text();

                    var hidden = (i == toLoad || total == 1) ? '' : ' hide';

                    var prev = (i == 0) ? total - 1 : i - 1;
                    var next = (i == total - 1) ? 0 : i + 1;

                    prevHtml = '<span class="paging prev"><a href="#" rel="'+prev+'">Prev</a></span>';
                    nextHtml = '<span class="paging next"><a href="#" rel="'+next+'">Next</a></span>';

                    var html = '<div class="bannerOverlayContent '+hidden+'" id="bannerContent_'+i+'">';
                    html = html + '<div class="bannerOverlayText"><h4>'+header+'</h4>';
                    html = html + '<p><span>'+ content+'</span>';
                    html = html + ' <a href="'+url+'">&raquo; more</a></p>';
                    if( total > 1 ) html = html + prevHtml + nextHtml;
                    html = html + '</div><div class="bannerOverlayImage" style="background-image: url('+app['base_url']+image+')">';
                    html = html + '<img src="'+app['base_url']+'assets/images/banner_overlay/image_border.png" /></div>';
                    html = html + '</div>';

                    $('#bannerOverlay .content').append(html);

                    $('#bannerOverlay span.paging a').bind('click', function(){
                        id = $(this).attr('rel');
                        $('#bannerOverlay .bannerOverlayContent').hide();
                        $('#bannerOverlay #bannerContent_'+id).show();
                        bannerOverlaySifr();
                        clearTimeout(hideTimeout);
                        return false;
                    });

                    bannerOverlaySifr();
                });
            }

            function trimContent(content)
            {
                var max = 150;
                var length = content.length;

                if( length > max ){
                    return content.slice(0, max) + '... ';
                } else {
                    return content;
                }
            }

            loadBannerContent();
        }
    });
})(jQuery);

