// carousel
var carousel = {
  oContainer: new Array(),
  oElements: new Array(),
  iContainerW: 0,
  iElementW: 0,
  iCenterSpacing: 0,
  oNextBtn: new Object(),
  oPrevBtn: new Object(),
  iActiveEl: new Object(),
  iActiveId: -1,

  init: function(){
    // get elements to reference
    carousel.oContainer = $('.video-carousel');
    carousel.oElements  = $(carousel.oContainer).children('li');
    $('#video-prev').show();
    $('#video-next').show();
    carousel.oPrevBtn = $('#video-prev');
    carousel.oNextBtn = $('#video-next');
    
    
    carousel.iContainerW = $(carousel.oContainer).outerWidth();
    carousel.iElementW = $('li',carousel.oContainer).outerWidth();
    
    carousel.oPrevBtn.bind('click', function() {
      if(carousel.iActiveId != 0) {
                if(!Global._isIE7){
                    for(var i=0; i<video_players.length; i++) {
                        var tempplayer = video_players[i].player;
                        if(tempplayer.getPlayerState() == 1){
                            tempplayer.pauseVideo();
                        }

                    }
                }

        carousel.showPrev();
        carousel.oNextBtn.removeClass('video-next-disabled');
        
        if(carousel.iActiveId == 0){
          carousel.oPrevBtn.addClass('video-prev-disabled');
        }
      }
      return false;
    });
    carousel.oNextBtn.bind('click', function() {
      if(carousel.iActiveId != carousel.oElements.length - 1) {
                if(!Global._isIE7){
                    // check if there are video's playing
                    for(var i=0; i<video_players.length; i++) {
                        var tempplayer = video_players[i].player;
                        if(tempplayer.getPlayerState() == 1){
                            tempplayer.pauseVideo();
                        }
                    }
                }
        carousel.showNext();
        
        carousel.oPrevBtn.removeClass('video-prev-disabled');
      }
      
      
      if(carousel.iActiveId == carousel.oElements.length - 1){
        carousel.oNextBtn.addClass('video-next-disabled');
      }
      return false;
    });

    var counter = 0;  
    carousel.iCenterSpacing = carousel.iElementW - ((carousel.iContainerW - carousel.iElementW) / 2)
    
    $(carousel.oElements).each(function(){
      var leftPos = (carousel.iElementW*counter) - carousel.iCenterSpacing;
      
      $(this).css({'left': leftPos,'top' : 0, 'position' : 'absolute' });

      counter++;
    });


    carousel.iActiveId = 1;
    carousel.iActiveEl = carousel.oElements[1];
    $(carousel.iActiveEl).addClass('active');



  },

  setWrapperHeight: function(height) {
    $(carousel.oContainer).animate({
      height: height
      }, 800);
  },

  showPrev: function() {
    if ($('li:animated', carousel.oContainer).length > 0) {
      return false;
    } 
    var prevActive = carousel.iActiveEl;

    carousel.iActiveId--;
    if(carousel.iActiveId < 0) {
      carousel.iActiveId = carousel.oElements.length-1;
    }
    carousel.iActiveEl = carousel.oElements[carousel.iActiveId];
    
    $('.inactive-overlay',prevActive).css({opacity: 0, display:'block'}).animate({
        opacity: 100
        }, { duration: 1200, easing: 'easeInOutQuart',complete:function(){
          $(prevActive).removeClass('active');
        }}
      );
      
    
    if(!$.browser.msie) {
      // animate video start button with little delay so it looks smooth in combination with the overlay and slide animation
      $('.video-start',carousel.iActiveEl).css({opacity: 0, display:'block'});
      
      var container = $('.video-wrap', carousel.iActiveEl);
            var notCurrentPlayer = true;
            for(var i=0; i<video_players.length; i++) {
                if(video_players[i].id == $('.video-placeholder', container).attr('id')) {
                    notCurrentPlayer = false;
                }
            }
      if(notCurrentPlayer){
        $('.video-start',container).delay(500).animate({
          opacity: 100
          }, { duration: 500, easing: 'easeInOutQuart',complete:function(){
          
          }}
        );
      }else{
        $('.video-start',container).hide();
      }
    }
    $('.inactive-overlay',carousel.iActiveEl).css({opacity: 100, display:'block'}).animate({
        opacity: 0
        }, { duration: 1000, easing: 'easeInOutQuart',complete:function(){
          $(carousel.iActiveEl).addClass('active');
          $('.inactive-overlay',carousel.iActiveEl).css({display:'none'});
        }}
      );
    
    
    carousel.showPrevItem(carousel.iActiveEl, prevActive);
  },
  
  showNext: function() {
    if ($('li:animated', carousel.oContainer).length > 0) {
      return false;
    } 
    var prevActive = carousel.iActiveEl;

    carousel.iActiveId++;
    if(carousel.iActiveId > carousel.oElements.length-1) {
      carousel.iActiveId = 0;
    }
    carousel.iActiveEl = carousel.oElements[carousel.iActiveId];
      
    $('.inactive-overlay',prevActive).css({opacity: 0, display:'block'}).animate({
      opacity: 100
      }, { duration: 1200, easing: 'easeInOutQuart',complete:function(){
        $(prevActive).removeClass('active');
      }}
    );
    
      
    if(!$.browser.msie) {
      // animate video start button with little delay so it looks smooth in combination with the overlay and slide animation

            var container = $('.video-wrap', carousel.iActiveEl);
            var notCurrentPlayer = true;
            for(var i=0; i<video_players.length; i++) {
                if(video_players[i].id == $('.video-placeholder', container).attr('id')) {
                    notCurrentPlayer = false;
                }
            }

            if(notCurrentPlayer){
      
        $('.video-start',container).delay(500).animate({
          opacity: 100
        }, { duration: 500, easing: 'easeInOutQuart',complete:function(){
          
        }}
        );
      }else{
        $('.video-start',container).hide();
      }
    }
    $('.inactive-overlay',carousel.iActiveEl).css({opacity: 100, display:'block'}).animate({
        opacity: 0
        }, { duration: 1000, easing: 'easeInOutQuart',complete:function(){
          $(carousel.iActiveEl).addClass('active');
          $('.inactive-overlay',carousel.iActiveEl).css({display:'none'});
        }}
      );
      
    
      
    carousel.showNextItem();
  
  },

  /* show element */
  showNextItem: function(){
    $(carousel.oElements).each(function(){
    
      $(this).animate({
        left: '-='+carousel.iElementW
        }, { duration: 800, easing: 'easeInOutQuart'}
      );
    });
  },

  /* show element */
  showPrevItem: function(newElement, prevElement){
    
    $(carousel.oElements).each(function(){
    
      $(this).animate({
        left: '+='+carousel.iElementW
        }, { duration: 800, easing: 'easeInOutQuart'}
      );
    });

  }
}

