// JavaScript Document
YUI({
    gallery : 'gallery-2011.01.03-18-30',
    modules : {
        'plugin-slide-toggle' : {
            fullpath : '/scripts/plugin-slide-toggle.js',
            requires :  ['base-build','plugin','node','event', 'anim']
        },
        'plugin-banner' : {
            fullpath : '/scripts/plugin-banner.js',
            requires : ['base-build','plugin','node','event','gallery-timer','event-mouseenter']
        }
    }
}).use('node', 'event-mouseenter', 'plugin-slide-toggle', 'plugin-banner', 'list-zoom', function(Y){
Y.on('domready', function(e){

    var hd = Y.one('#hd'), 
        top = Y.one('#bdTop');


    Y.one('.navigation').delegate(['mouseenter','mouseleave'], function(e){
        if (e.currentTarget.hasClass('(nav[0-9]+)')) {
            hd.toggleClass(RegExp.$1);
        }
    },'.nav');
    
    Y.all('dl.slide-toggle').plug(Y.Plugin.SlideToggle);
    
    if (top) {
        top.plug(Y.Plugin.Banner);
        var hirez = Y.Node.create('<img>');
      hirez.on('load', function(e){
        Y.log('load complete');
        top.setStyle('backgroundImage', 'url("' + hirez.get('src') + '")');
      });
      hirez.set('src', 'http://cokeconsolidated.com/media/33028/panoramic_mural9_final_hires.jpg');
    }
  
  var timeline = Y.one('.timeline');
  if (timeline) {
    var dds = timeline.all('dd');
    timeline.one('dd').setStyle('visibility','visible');
    timeline.delegate('click', function(e){
      e.preventDefault();
    }, 'dt a', this);
    timeline.delegate('mouseover', function(e) {
      e.preventDefault();
      dds.setStyle('visibility', 'hidden');
      e.currentTarget.ancestor('dt').next('dd').setStyle('visibility','visible');
    }, 'dt a', this);
  }
  
  // listzoom
  if(Y.all('.listzoom').size() > 0) {
    Y.all('.listzoom').each(function(list) {
        list.plug(Y.Plugin.CCBCC.ListZoom);
        list.lz._nextItem();
    });
  }
  
  // youtube panorama
  var panorama = Y.one('#bdTop .callouts'),
      youTubeIframe = '<iframe title="YouTube video player" width="640" height="390" frameborder="0" allowfullscreen="allowfullscreen" src="http://www.youtube.com/embed/{youTubeId}"></iframe>';
  if (panorama) {
    panorama.all('.youtube').each(function(node){
      var vid = Y.Lang.sub(youTubeIframe, {youTubeId : node.getAttribute('youtube')});
      node.setContent(vid);
      node.addClass('youtube-active');
    });
    
  }

});
});

YUI.add('list-zoom', function(Y){
    
    Y.namespace('Plugin.CCBCC').ListZoom = Y.Base.create('list-zoom', Y.Plugin.Base, [], {
        
        _host : null,
        
        _bind : null,
        
        _active : 2,
        
        _items : null,
        
        initializer : function(){
            this._host = this.get('host');
            this._items = this._host.all('li');
            this._render();
        },
        
        destructor : function(){
            if (this._bind) {
                this._bind.detach();
                this._bind = null();
            }
            
        },
            
            
        _render : function(){
            this._renderUI();
            this._bindUI();
            this._syncUI();
        },
        
        _renderUI : function(){},
        
        _bindUI : function(){
            this._host.delegate('mouseover', function(e){
                var item = e.currentTarget;
                
                this._active = this._items.indexOf(item) - 1;
                this._nextItem();
                
            }, 'li', this);
        },
        
        _syncUI : function(){},
        
        _nextItem : function() {
            var items = this._items,
                active = this._active,
                nextRange = 0,
                prevRange = 0,
                range = this.get('range'),
                activeNode = items.item(++active),
                nextNode = activeNode.next(),
                prevNode = activeNode.previous();
            
            if (active >= items.size() ) {
                active = 0;
                activeNode = items.item(active);
            }
                
            items.removeClass('active(-[0-9]*)?', '');
            
            activeNode.addClass('active');
            activeNode.setStyle('zIndex','');
            
            while (nextNode && nextRange++ < range) {
                nextNode.addClass('active-' + nextRange);
                nextNode.setStyle('zIndex','');
                nextNode = nextNode.next();
            }
          
          if (nextNode) {
            while (nextNode) {
              nextNode.setStyle('zIndex', items.size() - 1 - nextRange++);
              nextNode = nextNode.next();
            }
          }
            
            while (prevNode && prevRange++ < range) {
                prevNode.addClass('active-' + prevRange);
                prevNode.setStyle('zIndex','');
                prevNode = prevNode.previous();
            }
          
          if (prevNode ) {
            while (prevNode ) {
              prevNode .setStyle('zIndex', items.size() - 1 - prevRange++);
              prevNode = prevNode.previous();
            }
          }
            
        }
            
        
    }, {
        NS : 'lz',
        ATTRS : {
            range : {
                value : 2
            }
        }
    });
    
}, '0.1', { requires: ['node','event','plugin','base-build']});

