$(document).ready(function(){
  
  var oldFeature = 0;
  var currentFeature = 0;
  var featureCount = $('div.feature_image').length;
  var featureTimeout;
  var firstId = $('div.feature_image').get(0).id;
  var firstTimeout = parseInt(firstId,10);
  var initialised = false;
  $('ul.feature_titles li').removeClass('active');
  $('div.test').html(oldFeature);
  if (!initialised) {
    $('div.feature_image').hide();
    $('div.feature_image:eq('+currentFeature+')').show();
  }
  $('ul.feature_titles li:eq('+currentFeature+')').addClass('active');
  var rotateInProgress = false;
  
  var featureRotate = function() {
    if (!rotateInProgress) {
      initialised = true;
      rotateInProgress = true;
      featureTimeout = false;
      currentFeature = (oldFeature + 1) % featureCount;
      $('div.feature_image:eq('+oldFeature+')').fadeOut('slow');
      $('ul.feature_titles li').removeClass('active');
      $('div.feature_image:eq('+currentFeature+')').fadeIn('slow', function() {
        $('ul.feature_titles li:eq('+currentFeature+')').addClass('active');
        var newTimeout = parseInt(this.id,10);
        rotateInProgress = false;
        if (!featureTimeout) {
          featureTimeout = setTimeout(featureRotate, newTimeout);
        }  
      });
      oldFeature = currentFeature;
      $('div.test').html(oldFeature);
    }
  };
  
  featureTimeout = setTimeout(featureRotate, firstTimeout);
  //$('div#features_main_content').hover(function() {
  //  clearTimeout(featureTimeout);
  //  featureTimeout = false;
  //}, function() {
  //  if (!featureTimeout) {
  //    featureTimeout = setTimeout(featureRotate, 250);
  //  }
  //});
  
  var clickFunction = function() {
    var clickedFeature = parseInt(this.id,10);
    clearTimeout(featureTimeout);
    featureTimeout = false;
    if (!rotateInProgress) {
      $('div.feature_image').hide();
      $('div.feature_image:eq('+clickedFeature+')').show();
      oldFeature = clickedFeature;
      $('ul.feature_titles li').removeClass('active');
      $('ul.feature_titles li:eq('+clickedFeature+')').addClass('active');
    }
    return false;
  };
  
  var pauseFunction = function() {
    clearTimeout(featureTimeout);
    featureTimeout = false;
    return false;
  };
  
  var playFunction = function() {
    featureTimeout = setTimeout(featureRotate, 150);
    return false;
  };

  $('div.features_controls a.pause').bind('click', pauseFunction);
  $('div.features_controls a.play').bind('click', playFunction);

  $('ul.feature_titles li a').bind('click', clickFunction);
 

});