jQuery.fn.gnFade = function(c) {
  this.animate({"opacity":0},{
    duration : "fast",
    complete : c
  }).animate({"opacity":1},"slow");
};

$(document).ready(function() {
  var messages = {};
  var bg = $('div.BannerContent');
  if (! bg.size()) { return; }

  var message = $('div.BannerContent div.message');
  var control = $('ul.BannerTabs li.control a');
  var tabs = $('ul.BannerTabs li[class!=control] a');
  var tab_count = 0;
  var tab_curr = 0;
  var pause = 0;

  var play = function() {
    tab_curr = tab_curr < tab_count ? tab_curr + 1 : 1;
    $(".tab" + tab_curr + " a ").each(function(){this.activate();});
    pause = setTimeout(play, 10000);
  };


  control.each(function(){
    this.off = function() {
      clearTimeout(pause);
      pause = 0;
      $(this).removeClass().addClass("slideshow-paused");
    };
  });

  tabs.each(function(){
    tab_count++;
    var id = this.id;
    this.activate = function() {
      if ($(this).hasClass("hover")) {
        ;
      } else {
        tabs.removeClass("hover");
        bg.gnFade(function() {
          this.id = "banner_" + id;
          message.html(messages[id]);
        });
        $(this).addClass("hover");
      }
    };
  });

  tabs.click(function(event){
    event.preventDefault();
    bg.stop(1,1);
    this.activate();
    control.each(function(){this.off();});
  });

  control.click(function(event){
    if (pause) {
      this.off();
    } else {
      pause = setTimeout(play, 10);
      $(this).removeClass().addClass("slideshow-auto");
    }
    event.stopPropagation();
    event.preventDefault();
  });
});

