Cufon.replace('.box > h1, #content > h1');

window.addEvent('domready', function() {
  var teaser = $('teaser');
  
  if(teaser) {
    var images = teaser.getElements('img.roll');
    
    var ti = $random(0, images.length-1);
    
    images.set('tween', {link: 'cancel'});
    
    images.setStyle('opacity', 0);
    images[ti].setStyle('opacity', 1);
    
    var index = teaser.getElement('p.index');
    index.set('text', 'Image '+(ti+1)+' of '+images.length);
    
    var texts = teaser.getElements('.text');
    texts.addClass('hidden');
    texts[ti].removeClass('hidden');
    
    var change = (function(fast) {
      if(fast) {
        images.set('tween', {duration: 330});
      }
      else {
        images.set('tween', {duration: 2000});
      }
      
      ti++;
      
      if(ti < 0) {
        ti = images.length - 1;
      }
      
      images.fade('out');
      images[ti % images.length].fade('in');
      
      index.set('text', 'Image '+(ti%images.length + 1)+' of '+images.length);
      
      texts.addClass('hidden');
      texts[ti%images.length].removeClass('hidden');
    });
    
    var ct = change.periodical(7500);
    
    
    var infobg = teaser.getElement('.info-bg');
    var info = teaser.getElement('.info');
    
    infobg.setStyle('opacity', 0);
    info.setStyle('opacity', 0);
    
    var infotimer = false;
    var infoclosetimer = false;
    
    teaser.addEvents({
      mouseenter: function() {
        $clear(infoclosetimer);
        
        infotimer = (function() {
          infobg.fade(0.66);
          info.fade('in');
        }).run();
        
        $clear(ct);
      },
      mouseleave: function() {
        $clear(infotimer);
        
        infoclosetimer = (function() {
          infobg.fade('out');
          info.fade('out');
        }).delay(500);
        
        ct = change.periodical(7500);
      }
    });
    
    teaser.getElement('a.open-info').addEvent('click', function() {
      infobg.fade(0.66);
      info.fade('in');
    });
    
    info.getElement('a.close').addEvent('click', function() {
      $clear(infotimer);
      
      infobg.fade('out');
      info.fade('out');
    });
    
    var prev = teaser.getElement('a.prev').addEvent('click', function() {
      ti = ti - 2;
      change(true);
    });
    
    var next = teaser.getElement('a.next').addEvent('click', function() {
      change(true);
    });
  }
  
  $$('input.reset').each(function(input) {
    var v = input.get('value');
    
    input.addEvents({
      focus: function() {
        if(this.value == v) this.value = '';
      },
      blur: function() {
        if(this.value == '') this.value = v;
      }
    });
  });
});