/*
  Realisation: Manu Louisor for Kolibria Webservices Ltd.
  http://twitter.com/floptwo
*/
jQuery(document).ready(function(){

  var carousel_setinterval = 0;
  var carousel_settimeout = 0;
  var carousel_interval = 3000;
  var carousel_auto_slider_pause_interval = 6000;
  var carousel_selector = '#k_carousel';
  var carousel_control_selector = '#k_carousel .carousel_control';

  var carousel_number_slide = jQuery(carousel_selector + ' ul').children().length;
  
  var current_slide = 1; // = Math.ceil( carousel_number_slide  * Math.random());
  
  jQuery(carousel_selector + ' ul li img').css('opacity', 0);
  jQuery(carousel_selector + ' ul li:nth-child(' + current_slide + ') img').css('opacity', 1);
  jQuery(carousel_control_selector + ' a:nth-child(' + current_slide + ')').addClass('active');
  
  function carousel_control_prev(){
    var current_slide = parseInt(jQuery(carousel_control_selector + ' a.active').text());
    var prev_slide = parseInt(current_slide) - 1;
    
    if(prev_slide < 1){
      prev_slide = carousel_number_slide;
    }
    return carousel_control_change(prev_slide);
  }
  
  function carousel_control_next(){
    var current_slide = parseInt(jQuery(carousel_control_selector + ' a.active').text());
    var next_slide = parseInt(current_slide) + 1;
    
    if(next_slide > carousel_number_slide){
      next_slide = 1;
    }
    return carousel_control_change(next_slide);
  }
  
  function carousel_control_change(change_slide){
    var current_slide = parseInt(jQuery(carousel_control_selector + ' a.active').text());
    var change_slide;
    
    if(current_slide != change_slide){
      jQuery(carousel_selector + ' ul li:nth-child(' + current_slide + ') img').clearQueue();
      jQuery(carousel_selector + ' ul li:nth-child(' + current_slide + ') img').fadeTo(500, 0);
      jQuery(carousel_control_selector + ' a:nth-child(' + current_slide + ')').removeClass('active');
      
      jQuery(carousel_selector + ' ul li:nth-child(' + change_slide + ') img').clearQueue();
      jQuery(carousel_selector + ' ul li:nth-child(' + change_slide + ') img').fadeTo(500, 1);
      jQuery(carousel_control_selector + ' a:nth-child(' + change_slide + ')').addClass('active');
    }
  }
  
  function carousel_auto_start(){
    carousel_setinterval = setInterval(carousel_control_next, carousel_interval);
  }
  
  function carousel_auto_pause(){
    clearInterval(carousel_setinterval);
    clearTimeout(carousel_settimeout);
    carousel_settimeout = setTimeout(carousel_auto_start, carousel_auto_slider_pause_interval);
  }
  
  jQuery(document.documentElement).keyup(function(event){
    if (event.keyCode == 37) {
      carousel_auto_pause();
      carousel_control_prev();
    } else if (event.keyCode == 39) {
      carousel_auto_pause();
      carousel_control_next();
    }
  });

  carousel_auto_start();
  
  jQuery(carousel_control_selector + ' a').bind('click', function(){
    var clicked_slide = parseInt(jQuery(this).text());
    carousel_auto_pause();
    carousel_control_change(clicked_slide);

    return false;
  });
  
});

