// page init
jQuery(function(){
  LoadGallery('moviescrollertab.aspx?movie_picker_name=master_now_playing_movie_picker');
  initTabs();
});

function initGallery() {
  var move_speed = 800; //in ms
  function initGall(_hold){
    var list_hold = _hold.children('ul');
    var _list = list_hold.children();
    var btn_prev = _hold.parents('div.gallery-inner').siblings('a.link-prev:eq(0)');
    var btn_next = _hold.parents('div.gallery-inner').siblings('a.link-next:eq(0)');
    var hold_w = _hold.parent().width();
    var list_w = _list.outerWidth()*_list.length;
    var _step = _list.outerWidth();
    var _m = 0;
    var scroll_steps = 2;  //adjust the number of steps to scroll
    
    btn_prev.hide();
    btn_prev.css({visibility:"hidden"});
    
    if(_list.length < 4)
    {
      btn_next.hide();
      btn_next.css({visibility: "hidden"});
    }
    
    btn_prev.click(function(){
      btn_next.show();
      moveList(false);
      return false;
    });
    btn_next.click(function(){
      btn_prev.show();
      btn_prev.css({visibility:"visible"});
      moveList(true);
      return false;
    });
    
    function moveList(_flag){
      hold_w = _hold.parent().width();
      list_w = _list.outerWidth()*_list.length;
      _step = _list.outerWidth();

      if(_flag){    
        if(list_w - ((scroll_steps)*_m) > hold_w){
          _m += _step;
        }
        else{
          _m = 0;
        }
      }
      else{
        if((scroll_steps*_m) > 0)
        {
          _m -= _step;
        }
        else {
          //_m = -_step;
        }
      }
      list_hold.animate({left:-(scroll_steps*_m)}, {queue:false, duration: move_speed});
      
      if(_flag){
        if(list_w - ((scroll_steps)*_m) > hold_w)
          btn_next.show();
        else
          btn_next.hide();
      }
      else{
        if((scroll_steps*_m) > 0)
          btn_prev.show();
        else
          btn_prev.hide();
      }
      
    }
  }
  jQuery('div.gallery-holder').each(function(){
    var _holder = $(this);
    
    initGall(_holder.find('div.gallery-h'));
    // init ajax preview
    var _ajaxHolder = _holder.find('div.ajax-holder').hide();
    var _ajaxLinks = _holder.find('a.ajax-opener');
    var _ajaxPrev = _ajaxHolder.find('a.ajax-link-prev');
    var _ajaxNext = _ajaxHolder.find('a.ajax-link-next');
    var _ajaxLinkIndex;
    var _prevVisible = false;
    var _nextVisible = false;
    
    // ajax control links
    _ajaxPrev.click(function(){
      if(_ajaxLinkIndex > 0) {
        _ajaxLinkIndex--;
        _ajaxLinks.eq(_ajaxLinkIndex).trigger('click', [1]);
      }
      return false;
    });
    _ajaxNext.click(function(){
      if(_ajaxLinkIndex < _ajaxLinks.length-1) {
        _ajaxLinkIndex++;
        _ajaxLinks.eq(_ajaxLinkIndex).trigger('click', [1]);
      }
      return false;
    });

    // ajax content loaders
    _ajaxLinks.each(function(ind){
      var _link = $(this);
      var _target = _link.attr('href');
      
      _link.click(function(e, removeChildren){
        _ajaxLinkIndex = ind;
        var _children = _ajaxHolder.children().hide();
        var _loadedSlide = _children.filter('[rel='+_target+']');

        if (_ajaxLinkIndex == 0)
        {
          _ajaxPrev.hide();
          _ajaxPrev.css({visibility: "hidden"});
        }
        else
        {
          _ajaxPrev.show();
          _ajaxPrev.css({visibility: "visible"});
        }
        
        if(_ajaxLinkIndex == _ajaxLinks.length-1) 
        {
          _ajaxNext.hide();
          _ajaxNext.css({visibility: "hidden"});
        }
        else
        {
          _ajaxNext.show();
          _ajaxNext.css({visibility: "visible"});
        }
        
        if(_holder.find('div.gallery-h').parents('div.gallery-inner').siblings('a.link-prev:eq(0)').css('visibility').indexOf('visible') > -1)
        {
          _prevVisible = true;
          _holder.find('div.gallery-h').parents('div.gallery-inner').siblings('a.link-prev:eq(0)').css('visibility', 'hidden');
        }
        
        if(_holder.find('div.gallery-h').parents('div.gallery-inner').siblings('a.link-next:eq(0)').css('visibility').indexOf('visible') > -1)
        {
          _nextVisible = true;
          _holder.find('div.gallery-h').parents('div.gallery-inner').siblings('a.link-next:eq(0)').css('visibility', 'hidden');
        }  
        
        $.ajax({
          url:_target,
          type:'GET',
          data:'ajax=1',
          success:function(msg){
            var _slide;
            var _btnBack;
            
            if(removeChildren)
              _ajaxHolder.children().remove('.aj');
            
            _slide = $('<div class="aj">').hide().html(msg).attr('rel',_target);
            _btnBack = _slide.find('a.btn-back');
            
            _btnBack.click(function(){
              
               jQuery('div.gallery-overlay').show();
              
               if(_prevVisible)
                 _holder.find('div.gallery-h').parents('div.gallery-inner').siblings('a.link-prev:eq(0)').css('visibility', 'visible');
              
               if(_nextVisible)
                   _holder.find('div.gallery-h').parents('div.gallery-inner').siblings('a.link-next:eq(0)').css('visibility', 'visible');
              
              _ajaxHolder.hide();
              _slide.remove();
              
              return false;
            });
            
            _slide.appendTo(_ajaxHolder.show()).show();
            
            jQuery('div.gallery-overlay').hide();
            
            // load the flash player
            var _mediaspace = _slide.find('div[id^=mediaspace]');

            if (_mediaspace.attr('rel').length){
              var _flashvars = {'file': _mediaspace.attr('rel'), 'config': '/scripts/jwplayer-flashvars.xml', 'plugins': 'gapro-1', 'gapro.accountid': 'UA-1651874-1'};
              var _params = { allowfullscreen: "true", allowscriptaccess: "always", wmode: "opaque", scale: "showall"};
              var _attributes = {};
             
              swfobject.embedSWF("/scripts/player.swf", "mediaspace" + _mediaspace.attr("node"), 411, 241, '9', false, _flashvars, _params, _attributes);
    
            }
          },
          error:function(){
            alert('AJAX Error!');
          }
        });
        
        return false;
      });
    });
  });
}

// init tabs
function initTabs() {
  jQuery('ul.tabset').jqueryTabs({
    addToParent:true,
    holdHeight:false,
    activeClass:'active',
    tabLinks:'a.tab',
    fadeSpeed:0,
    event:'click'
  });
}

// jquery tabs plugin
jQuery.fn.jqueryTabs = function(_options){
  // default options
  var _options = jQuery.extend({
    addToParent:false,
    holdHeight:false,
    activeClass:'active',
    tabLinks:'a.tab',
    fadeSpeed:300,
    event:'click'
  },_options);

  return this.each(function(){
    var _holder = jQuery(this);
    var _fadeSpeed = _options.fadeSpeed;
    var _activeClass = _options.activeClass;
    var _addToParent = _options.addToParent;
    var _holdHeight = _options.holdHeight;
    var _tabLinks = jQuery(_options.tabLinks, _holder);
    var _tabset = (_addToParent ? _tabLinks.parent() : _tabLinks);
    var _event = _options.event;
    var _animating = false;

    // tabs init
    _tabLinks.each(function(){
      var _tmpLink = jQuery(this);
      var _tmpTab = jQuery(_tmpLink.attr('href'));
      var _classItem = (_addToParent ? _tmpLink.parent() : _tmpLink);
      if(_tmpTab.length) {
        if(_classItem.hasClass(_activeClass)) _tmpTab.show();
        else _tmpTab.hide();
      }
    });

    // tab switcher
    function switchTab(_switcher) {
      if(!_animating) {
        var _link = jQuery(_switcher);
        var _newItem = (_addToParent ? _link.parent() : _link);
        var _newTab = jQuery(_link.attr('href'));
        if(_newItem.hasClass(_activeClass)) return;

        var _oldItem = jQuery(_addToParent ? _tabset : _tabLinks).filter('.'+_activeClass);
        var _oldTab = jQuery(jQuery(_addToParent ? _oldItem.children('a') : _oldItem).attr('href'));
        if(_newTab.length) {
          _animating = true;

          if(_oldItem.length) {            
            _newItem.addClass(_activeClass);
            _oldItem.removeClass(_activeClass);

            var _parent = _oldTab.parent();
            if(_holdHeight) _parent.css({height:_parent.height()});
            
            var _target = 'moviescrollertab.aspx?movie_picker_name=' + _link.attr('movie_picker');            
            LoadGallery(_target);

            _oldTab.fadeOut(_fadeSpeed,function(){
              _newTab.fadeIn(_fadeSpeed,function(){
                _animating = false;
              });
              if(_holdHeight) _parent.css({height:'auto'});
            });
          } else {
            _newItem.addClass(_activeClass);
            _newTab.fadeIn(_fadeSpeed,function(){
              _animating = false;
            });
          }
        }
      }
    }

    // control
    _tabLinks.each(function(){
      jQuery(this).bind(_event,function(){
        switchTab(this);
        return false;
      });
    });
  });
}
  
function LoadGallery(_target)
{
  $.ajax({
    url: _target,
    success: function (msg) {
      var _divHolder = $('div.tab-content');
      
      _divHolder.html(msg);
      
      initGallery();
      
      _divHolder.show();
    },
    error: function () {
      alert('AJAX Error!');
    }
  });
}

