﻿if (window.jQuery && window.CWRibbon) {

  jQuery(function() {
    var ribbonSettings = window.CWRibbon;

    var linkTarget = ribbonSettings.LinkTarget;
    var img = ribbonSettings.ImageSrc;
    var message = ribbonSettings.Message;

    // Variables to track state (I think there's a better way of doing this...)
    var BetaBanner = {
      ScrollTop       : 0,
      CollapseTimeout : 2000,
      IsOpen          : false,
      HasMouseOver    : false,
      
      $banner : jQuery("<a class='betaBanner' title='Click for more' href='" + linkTarget + "'><span>" + message + "</span></a>"),
      
      Expand  : function(evt) {
        if (!BetaBanner.IsOpen) {
          if(evt) {
            evt.preventDefault();
          }
          
          var newTop = -1 + BetaBanner.ScrollTop;
          BetaBanner.$banner.stop().animate({ top: newTop + 'px' });
          BetaBanner.IsOpen = true;
        }
      },
      
      Collapse : function(evt) {
        if(!BetaBanner.HasMouseOver) {
          var newTop = -190 + BetaBanner.ScrollTop;
          BetaBanner.$banner.stop().animate({ top: newTop + 'px' });
          BetaBanner.IsOpen = false;
        }
      }
    }

    // Hacks for IE6
    if ($.browser.msie && Number($.browser.version) < 7) {
      BetaBanner.$banner.css('position', 'absolute')
      var node = BetaBanner.$banner[0];

      // Apply IE specific image loader and remove the background image
      node.style.backgroundImage = 'none';
      node.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img + "', sizingMethod='crop')";

      // Deal with lack of position: fixed in an ugly way
      var $window = jQuery(window);

      var ie6ScrollHandler = function() {
        BetaBanner.ScrollTop = document.documentElement.scrollTop;
        var offSet = BetaBanner.IsOpen ? 1 : 190;
        var newTop = BetaBanner.ScrollTop - offSet;
        node.style.top = newTop + 'px';
      }

      $window.scroll(ie6ScrollHandler);
      $window.resize(ie6ScrollHandler);
    }

    // Wire up hover/blur events
    BetaBanner.$banner.hover(function() {
      BetaBanner.HasMouseOver = true;
      
      if(!BetaBanner.IsOpen) {
        var newTop = -185 + BetaBanner.ScrollTop;
        BetaBanner.$banner.stop().animate({ top: newTop + 'px' }, 0);
      }
    },
    function() {
      BetaBanner.HasMouseOver = false;
      
      if (BetaBanner.IsOpen) {
        setTimeout(BetaBanner.Collapse, BetaBanner.CollapseTimeout);
      } else {
        BetaBanner.Collapse();
      }
    });

    // Wire up the click event
    BetaBanner.$banner.click(BetaBanner.Expand);

    // Now inject the ribbon into the document
    jQuery('body').append(BetaBanner.$banner);

    // If you're looking at the old design then initially expand the banner
    if (message.indexOf('still') > -1) {
      BetaBanner.Expand();
      setTimeout(BetaBanner.Collapse, BetaBanner.CollapseTimeout + 3000);
    }
    
  });
};
