/*
 Sven Kesting <sk@decaf.de>, 12.9.2010
 $Id: animation.js 9852 2011-03-14 10:21:59Z aaron $
 */


$(window).load(function() {

  (function(ww_animation, $, undefined) {
    /* Public Properties */
    ww_animation.slideDuration = 6000;     // duration between slide changes
    ww_animation.showPager = false;    // show basic pager

    // jquery handlers
    ww_animation.stage = $('#animation_stage');
    ww_animation.cta_box_lab = $('#ani_cta_box_lab');
    ww_animation.cta_box_market = $('#ani_cta_box_market');

    // slide vars
    ww_animation.currentSlide = 0;
    ww_animation.nbSlides = 0;
    ww_animation.slideIds = [];
    ww_animation.timeoutId = false;

    ww_animation.isPlaying = true;

    //Public Methods
    ww_animation.run = function()
    {
      ww_animation.fade(ww_animation.currentSlide, nextSlide());
      ww_animation.timeoutId = setTimeout('ww_animation.run()', ww_animation.slideDuration);
    };

    ww_animation.fade = function (from, to)
    {
      $('#' + ww_animation.slideIds[from]).fadeOut(600);
      $('#' + ww_animation.slideIds[to]).fadeIn(600);
      ww_animation.currentSlide = to;
      if (ww_animation.showPager) {
        ww_animation.updatePager();
      }
    }

    ww_animation.intro = function()
    {
      $('#slide_1_headline').animate({'left': -373}, 600);
      $('#slide_1_picture').animate({'left': 242}, {
        duration: 600,
        complete: function() {
          $('#slide_1_headline').fadeOut(200);
          $('#ani_slide_1 .ani_badge').fadeIn({
            duration: 200,
            complete: function () {
              $('#ani_slide_1 .ani_info').show();
              if (ww_animation.isPlaying) {
                ww_animation.timeoutId = setTimeout(
                        'ww_animation.run()',
                        ww_animation.slideDuration
                        )
              };
              /* WW-3139
              $('#ani_cta_box_market').fadeIn({
                duration: 200,
                complete: function () {
                  $('#ani_cta_box_lab').fadeIn({
                    duration: 200,
                    complete: function () {
                      if (ww_animation.isPlaying) {
                        ww_animation.timeoutId = setTimeout(
                                'ww_animation.run()',
                                ww_animation.slideDuration
                                );
                      }
                    }
                  });
                }
              });
               */
            }
          });
        }
      });
    };

    //Private Methods
    function init()
    {
      ww_animation.nbSlides = 0;
      ww_animation.slideIds = [];
      // get slides
      ww_animation.stage.children('.ani_slide').each(function(index) {
        ww_animation.slideIds[ww_animation.nbSlides] = $(this).attr('id');
        ww_animation.nbSlides++;
      });
    }

    function nextSlide()
    {
      ww_animation.currentSlide++;
      if (ww_animation.currentSlide >= ww_animation.nbSlides)
      {
        ww_animation.currentSlide = 0;
      }
      return ww_animation.currentSlide;
    }

    // Pager
    ww_animation.initPager = function()
    {
      var html = '<ul class="ani_pager">';
      for (var i = 0; i <= ww_animation.nbSlides - 1; i++) {
        html += '<li' + ((ww_animation.currentSlide == i) ? ' class="selected"' : '') + ' id="ani_pager_' + i + '">' + (i + 1) + '</li>';
      }
      html += '</ul>';
      ww_animation.stage.append(html);
      for (var i = 0; i <= ww_animation.nbSlides - 1; i++) {
        $('#ani_pager_' + i).click(function() {
          ww_animation.fade(ww_animation.currentSlide, parseInt($(this).html()) - 1);
          $(this).addClass('selected');
          ww_animation.isPlaying = false;
          ww_animation.updatePlayPauseButton();
          clearTimeout(ww_animation.timeoutId);
        });
      }
      $('#animation_stage').hover(
              function() {
                $('#animation_stage .ani_pager').show()
              },
              function() {
                $('#animation_stage .ani_pager').hide()
              }
              );
    }

    ww_animation.updatePager = function()
    {
      $('#animation_stage .ani_pager').children('li').removeClass('selected');
      $('#ani_pager_' + (ww_animation.currentSlide)).addClass('selected');
    }

    // Play/Pause
    ww_animation.initPlayPauseButton = function()
    {
      var html = '<div id="ani_play_pause" class="playing"></div>';
      ww_animation.stage.append(html);
      $('#ani_play_pause').click(function() {
        if (ww_animation.isPlaying) {
          $(this).removeClass('playing').addClass('paused');
          ww_animation.isPlaying = false;
          clearTimeout(ww_animation.timeoutId);
        } else {
          $(this).removeClass('paused').addClass('playing');
          ww_animation.isPlaying = true;
          ww_animation.run();
        }
      });
      $('#animation_stage').hover(
              function() {
                $('#ani_play_pause').show()
              },
              function() {
                $('#ani_play_pause').hide()
              }
              );
    }

    ww_animation.updatePlayPauseButton = function() {
      if (ww_animation.isPlaying) {
        $('#ani_play_pause').removeClass('paused').addClass('playing');
      } else {
        $('#ani_play_pause').removeClass('playing').addClass('paused');
      }
    }


    init();
    if (ww_animation.showPager) {
      ww_animation.initPager();
      ww_animation.initPlayPauseButton();
    }
    setTimeout('ww_animation.intro()', 1000);
    ww_animation.updatePlayPauseButton();

  }(window.ww_animation = window.ww_animation || {}, jQuery));
});
