var ThumbnailTabs = new JS.Class('ThumbnailTabs', {
  initialize: function(wrapper, options) {
    this._options = options || {};
    if (!!YAHOO.env.ua.ie) this._options.switchTime = 0.0001;
    this._wrapper = Ojay(wrapper).at(0);
    this._thumbs  = this._wrapper.descendants(this.klass.TOGGLE_SELECTOR + ' a');
    this._pages   = this._wrapper.descendants('.promo');
    
    var x = this._options.width, y = this._options.height;
    
    this._wrapper.setStyle({
      width:    x ? x + 'px' : '',
      height:   y ? y + 'px' : '',
      position: 'relative',
      overflow: 'hidden'
    });
    
    this._insertImages();
    
    if (this._pages.length < 2) {
      this._hideThumbnails();
      this._wrapper.addClass('single-promo');
    } else {
      this._removeThumbLinks();
      
      this._tabs = new Ojay.Tabs(this._pages, {
        toggleSelector:  this._options.toggleSelector  || this.klass.TOGGLE_SELECTOR,
        togglesClass:    this._options.togglesClass    || this.klass.TOGGLES_CLASS,
        togglesPosition: this._options.togglesPosition || this.klass.TOGGLES_POSITION,
        switchTime:      this._options.switchTime
      });
      
      this._tabs.setup();
    }
  },
  
  _hideThumbnails: function() {
    this._thumbs.hide();
  },
  
  _insertImages: function() {
    this._pages.forEach(function(page, index) {


      var imgAttr = {
        src: this._thumbs[index].href,
        alt: this._thumbs.at(index).children('img').node.alt
      };
      if( this._options.height ) imgAttr.height = this._options.height;

      var bigImage = Ojay(Ojay.HTML.img(imgAttr));
      
      page.children('.promo-link').at(0).insert(bigImage, 'top');
    }, this);
  },
  
  _removeThumbLinks: function() {
    Ojay(this.klass.TOGGLE_SELECTOR).forEach(function(toggle) {
      var overlay = Ojay( Ojay.HTML.span({className: 'thumb-overlay'}) );
      var thumb = toggle.descendants('img');
      toggle.setContent(thumb).insert(overlay, 'bottom');
    });
  },
  
  extend: {    
    TOGGLE_SELECTOR:  '.thumb',
    TOGGLES_CLASS:    'thumbnails',
    TOGGLES_POSITION: 'after'
  }
});

