// Namespace object for stage functions
var stageObj = new Object();

stageObj.config = {
  currentStage:   1,
  fadeSpeed:      500,
  stageDuration:  5000,
  waitDuration:   10000,
  runner:         0,
  showRunning:    true
};

stageObj.showNext = function(runnerIdx) {
  if (stageObj.config.showRunning && runnerIdx == stageObj.config.runner) {
    stageObj.config.runner = 0;
  
    if ($j('div#stage div#stage_controls a.c' + (stageObj.config.currentStage + 1)).length > 0) {
      stageObj.config.currentStage = stageObj.config.currentStage + 1;
    } else {
      stageObj.config.currentStage = 1;  
    }
  
    stageObj.showClickedStage($j('div#stage div#stage_controls a.c' + stageObj.config.currentStage)[0]);
    
    
    window.setTimeout("stageObj.showNext("+stageObj.incRunner()+")", stageObj.config.stageDuration);
  }
};


stageObj.showStage = function(stage_number) {
  stageObj.config.currentStage = stage_number;
};

stageObj.getStageForButton = function(button) {
  var stage_id = button.id.substring(7);
  temp = $j('div#stage a#'+ stage_id);
  return temp;
};


stageObj.startup = function() {
  if($j('a.stage_control').length > 0) {
    // add onclick event   
    $j('div#stage a.stage_control').click(function() {
      stageObj.showClickedStage(this);
      window.setTimeout("stageObj.showNext("+stageObj.incRunner()+")", stageObj.config.waitDuration);
    });
  }
  window.setTimeout("stageObj.showNext("+stageObj.incRunner()+")", stageObj.config.stageDuration);
  
  $j('#newsletter_email').each(function() {
      var default_value = this.value;
      $j(this).focus(function() {
        if(this.value == default_value) {
          this.value = '';
        }
      });
      $j(this).blur(function() {
        if(this.value == '') {
          this.value = default_value;
        }
      });
    });

  
};


stageObj.fadeToggle = function(old_stage, stage) {
  old_stage.removeClass('visible_stage');
  
  $j(stage).fadeIn(stageObj.config.fadeSpeed);    
};


stageObj.showClickedStage = function(button) {
  // get stages and do fade
  var new_stage = stageObj.getStageForButton(button);
  if (!new_stage.hasClass('visible_stage')) {
    old_stage = $j('div#stage a.visible_stage');
    new_stage.addClass('visible_stage');
    $j(old_stage).fadeOut(stageObj.config.fadeSpeed, stageObj.fadeToggle(old_stage, new_stage));

    // switch buttons
    $j('div#stage div#stage_controls a.current').removeClass('current');
    $j(button).addClass('current');
  }
};

stageObj.incRunner = function() {
  stageObj.config.runner = stageObj.config.runner + 1;
  //console.log(stageObj.config.runner);
  return stageObj.config.runner;
};

;(function($j) {
    $j(stageObj.startup);
})(jQuery);
