// $Id$

(function($) {

  Drupal.behaviors.xikar = {
    attach : function(context, settings) {
    
      // Call our rotate_banners() function every 5 secs.
      setInterval(rotate_banners, 7500);
      
      /**
       * Rotate banner images on timed interval.
       */
      function rotate_banners(){
        
        // Get the div's width.
        var width = $('#xd-rotating-banners').outerWidth();
        
        // Find the current banner number.
        var displayed_banner = $('#xd-rotating-banners').find('.xd-rotating-banner-current').attr('id');
        var displayed_number = parseInt(displayed_banner.replace('xd-rotating-banner-', ''));
        var div_count = $("#xd-rotating-banners").find(".panel-col-top div.inside > div").length;
        // Minus 1 for control links and divide by 2 to skip separator divs.
        var banner_count = (div_count - 1) / 2;
        var next_banner = 0;
        
        // Set the next banner number.
        if (displayed_number < banner_count) {
          next_banner = displayed_number + 1;
        }
        else {
          next_banner = 1;
        }
        
        // Rotate banners.
        $('#xd-rotating-banners').find('#xd-rotating-banner-' + next_banner).animate({ left : '0px' },{queue:false,duration:500}).addClass('xd-rotating-banner-current'); 
        $('#xd-rotating-banners').find('#xd-rotating-banner-' + displayed_number).animate({ left : width },{queue:false,duration:0}).removeClass('xd-rotating-banner-current'); 
        
        // Change css classes on control links.
        $('.xd-rotating-banner-control').find('a.xd-rotating-banner-selected').removeClass('xd-rotating-banner-selected').addClass('xd-rotating-banner');
        $('.xd-rotating-banner-control').find('a.xd-rotating-banner').each(function(index) {
          if ($(this).text() == next_banner) {
            $(this).addClass('xd-rotating-banner-selected').removeClass('xd-rotating-banner');
          }
        });

      };
      
      /**
       * Rotate banner images when controls are clicked.
       */
      $('.xd-rotating-banner-control a', context).click(function() {
        
        // Get the div's width.
        var width = $('#xd-rotating-banners').outerWidth();
        
        // Find the current and clicked banner number.
        var selected_banner = parseInt($('#xd-rotating-banners').find('a.xd-rotating-banner-selected').text());
        var next_banner = parseInt($(this).text());
        
        // Only rotate banners if they are different.
        if(selected_banner != next_banner){
          // Rotate banners.
          $('#xd-rotating-banners').find('#xd-rotating-banner-' + next_banner).animate({ left : '0px' },{queue:false,duration:300}).addClass('xd-rotating-banner-current'); 
          $('#xd-rotating-banners').find('#xd-rotating-banner-' + selected_banner).animate({ left : width },{queue:false,duration:300}).removeClass('xd-rotating-banner-current'); 
          
          // Change css classes on control links.
          $('.xd-rotating-banner-control').find('a.xd-rotating-banner-selected').removeClass('xd-rotating-banner-selected').addClass('xd-rotating-banner');
          $(this).removeClass('xd-rotating-banner').addClass('xd-rotating-banner-selected');
        }  

      });
      
    }
  };

})(jQuery);

