var Site = {

  start: function() {
    Site.setNames();
    $$('#text a').addEvent('mouseenter', function(e){
      this.set('tween', {duration: 200});
      this.tween('background-color', '#b5b5b5');
    });
    $$('#text a').addEvent('mouseleave', function(e){
      this.set('tween', {duration: 200});
      this.tween('background-color', '#00faff');
    });
    
    Site.setImages();
    
    // tootips
    var tipz = new Tips(
    '#text p a, #notes a, a.image',{
      className: 'tip',
      fixed: false,
      hideDelay: 50,
      showDelay: 300
    });
    
    new SmoothScroll({ duration:700 });
    
    
  },
  
  setNames: function() {
    
    // flush out column length
    $$('#names ol')[0].clone().inject('names');
    $$('#names ol')[0].clone().inject('names');
    $$('#names ol')[0].clone().inject('names');
    $$('#names ol')[0].clone().inject('names');
    $$('#names ol')[0].clone().inject('names');

    // trimm the excess  
    lastNames = $$('#names ol')[5].getChildren('li');
    for (var i=0; i < lastNames.length; i++) {
      if (i > 28) lastNames[i].empty();
    };
    $$('#names a').addEvent('click', function(e){
      e.stop();
      target = this.className;
      (function(){$(target).fireEvent('mouseenter');}).delay(800);
      
    });
  },
  
  setImages: function() {
    new Drag.Move('image');
    
    // prep images
    $('image').fade('hide');
    $$('#text .images').setStyle('display', 'none');
    
    // set onclick event
    $$('.image').addEvent('click', function(e) {
      e.stop();
      $('image').fade('hide');
      
      // clone image list
      var imageList = this.getNext('ol').clone();
      imageList.setProperty('class', 'image-list');
      imageList.setStyle('display', 'block');
      
      // not enough images to show list?
      if (imageList.getChildren('li').length < 3) {
        imageList.empty();
        var archiveLinkList = new Element('li');
      }


      // enough images to show list?
      else {
        listItems = imageList.getChildren('li');
        var i = 0;
        listItems.each(function(listItem){
          listLinks = listItem.getChildren('a');
          listLinks.each(function(listLink){
            i++
            //listLink.store('title', );
            listLink.setProperties({
              'class': 'switch',
              'title': listLink.getProperty('href'),
              'href': listLink.getProperty('title'),
              'name': listLink.getProperty('text'),
              'text': i
            });
          });
        });
        var archiveLinkList = new Element('li', {'text': ' / '});
      }
      
      // set archive link
      var archiveLink = new Element('a', {'text': 'more about this image', 'href': this.href, 'id': 'archive-link'});
      archiveLink.inject(archiveLinkList);
      archiveLinkList.inject(imageList);

      // set close link
      var closeLink = new Element('a', {'text': 'close', 'href': '#top'});
      var closeLinkList = new Element('li', {'id': 'close-link'});
      closeLink.inject(closeLinkList);
      closeLinkList.inject(imageList);

      closeLink.addEvent('click', function(e){
        e.stop();
        $('image').fade('hide');
      })

      
      // set first large image
      firstImage = this.getNext('ol').getChildren('li')[1].getFirst('a');                  
      var largeImage = new Element('img', {'src': firstImage.getProperty('title'), 'alt': firstImage.getProperty('text'), 'title': firstImage.getProperty('text')});
      
      // finish injecting content
      $('image').empty();
      largeImage.inject($('image'));
      imageList.inject($('image'));
      
      // prep rollovers and set display
      Site.setImageListLinks();
      Site.setImageListHovers();
      var toTop = window.getScroll().y;
      $('image').setStyle('top', toTop + 20);
      $('image').setStyle('left', 440);
      
      // define tooltip
      Site.setImageToolTip();
      
      // show image and image nav
      (function(){$('image').fade(1)}).delay(600);
    });
  },
  
  setImageListLinks: function() {
    imageLinks = $$('.image-list li a.switch');
    imageLinks.each(function(listItem) {
      listItem.addEvent('click', function(e) {
        e.stop();
        $('archive-link').setProperty('href', listItem.title);
        $$('#image img')[0].destroy();
        var largeImage = new Element('img', {
          'src': listItem.href,
          'alt': listItem.name,
          'title': listItem.name
        });
        largeImage.inject($('image'), 'top');
        
        $$('.image-tip').destroy();
        
        Site.setImageToolTip();
      })
    });
  },
  
  setImageListHovers: function() {
    $$('#image a').addEvent('mouseenter', function(e){
      this.set('tween', {duration: 200});
      this.tween('background-color', '#00faff');
    });
    $$('#image a').addEvent('mouseleave', function(e){
      this.set('tween', {duration: 200});
      this.tween('background-color', '#b5b5b5');
    });
  },
  
  setImageToolTip: function() {
    // image tootips
    imageTip = new Tips('#image img', {
      className: 'image-tip',
      fixed: false,
      hideDelay: 50,
      showDelay: 300
    });
    
    imageTip.attach('#image img');
  }
  
}

window.addEvent('domready', Site.start);
