$(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 {
				    $.ajax({
    				    type: "GET",
    				    url: app['base_url'] + "banner-overlay-content.xml",
    				    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);

