IM = function() {

  var $ = YAHOO.util.Dom.get;
  var $D = YAHOO.util.Dom;
  var $E = YAHOO.util.Event;

  return {
    init : function() {

      $E.onAvailable('primary', function() {
        var sfEls = this.getElementsByTagName('li');
        for (var i=0; i<sfEls.length; i++) {
          sfEls[i].onmouseover=function() {
            $D.addClass(this, 'hover');
          };
          sfEls[i].onmouseout=function() {
            $D.removeClass(this, 'hover');
          };
        }
      });

      $E.onAvailable('album', function() {
        var imgs = this.getElementsByTagName('li');
        $D.setStyle(imgs, 'display', 'none');
        $D.setStyle(imgs[0], 'display', 'block');
        $D.setStyle('prev', 'display', 'none');
        $E.on(['next', 'prev'], 'click', function(e) {
          $E.stopEvent(e);
          for (var i=0; i < imgs.length; i++) {
            if(this.id == 'next' && $D.getStyle(imgs[i], 'display') == 'block' && imgs[i+1]) {
              $D.setStyle(imgs[i], 'display', 'none');
              $D.setStyle(imgs[i+1], 'display', 'block');
              if(!imgs[i+2]) {
                $D.setStyle('next', 'display', 'none');
              }
              $D.setStyle('prev', 'display', 'block');
              break;
            } else if(this.id == 'prev' && $D.getStyle(imgs[i], 'display') == 'block' && imgs[i-1]) {
              $D.setStyle(imgs[i], 'display', 'none');
              $D.setStyle(imgs[i-1], 'display', 'block');
              $D.setStyle('next', 'display', 'block');
              if(imgs[i-1] == imgs[0]) {
                $D.setStyle('prev', 'display', 'none');
              }
              break;
            }
          };
        });
      });
    }
  };

}();

YAHOO.util.Event.onDOMReady(IM.init);

