window.addEvent(Browser.Engine.trident ? 'load' : 'domready', function() {   
   $('menuBg').setStyle('opacity', 0.8);
   HeaderFader.initialize();

   // Menu animation
   $$('#header li').each(function(li) {
      li.setStyle('opacity', 1);
      li.addEvents({
         'mouseenter': function(){
            this.setStyle('opacity', 0.7);
         },
         'mouseleave': function(){
            this.setStyle('opacity', 1);
         }
      });
   });

   // Photos page
   var photos = $$('.modalPhotos img');
   if (!photos.length)
      return;

   var modal = new Element('div').addClass('modal');
   var container = new Element('div').addClass('imageContainer');
   var close = new Asset.image('close.png').addClass('modalClose');

   [close, modal, container].each(function (div) {
      div.setStyle('display', 'none').addEvent('click', function() {
         close.setStyle('display', 'none');
         modal.setStyle('display', 'none');
         container.setStyle('display', 'none');
      }).inject(document.body);
   });


   photos.each(function(img) {
      var small = img.get('src');
      var large = small.split('/');
      large = large[0] + '/' + 'large' + '/' + large[1];
      var asset = new Asset.image(large).addClass('large');

      img.addEvent('click', function() {
         asset.inject(container.empty());

         var scroll = window.getScroll();
         var size = window.getSize();

         modal.setStyles({
            display: 'block',
            opacity: 0.7,
            height: window.getScrollSize().y
         });

         container.setStyles({
            display: 'block',
            top: Math.max(8, scroll.y + ((size.y - 675) / 2).toInt())
         });

         var pos = asset.getPosition(window);
         close.setStyles({
            display: 'block',
            top: pos.y - 8,
            left: pos.x + 902
         });
      });
   });
});

var HeaderFader = {
   options: {
      duration: 3000,
      delay: 4000
   },

   bg: [],
   images: [
      'header/front.jpg',
      'header/bench.jpg',
      'header/laundry.jpg',
      'header/water.jpg',
      'header/jacuzzi.jpg',
      'header/pool2.jpg',
      'header/pool3.jpg',

      'header/apts.jpg',
      'header/creek.jpg',
      'header/pool.jpg',
      'header/sign.jpg'
   ],

   initialize: function() {
      if (!$('bg1'))
         return;

      this.images.shuffle();
      this.current = $('bg1').set('tween', this.options);
      this.next = $('bg2').set('tween', this.options).setStyle('opacity', 0);

      this.current.setStyle('background-image', 'url(' + this.images[0] + ')');
      this.index = 1;

      this.prepareNext();
   },

   fade: function() {
      this.current.fade('out');
      this.next.fade('in');

      var tmp = this.next;
      this.next = this.current;
      this.current = tmp;

      (function(){this.prepareNext();}.bind(this)).delay(this.options.duration);
   },

   prepareNext: function() {
      this.next.setStyle('background-image', 'url(' + this.images[this.index++] + ')');
      if (this.index >= this.images.length)
         this.index = 0;

      (function() {this.fade();}.bind(this)).delay(this.options.delay);
   }
};

Array.implement({
   shuffle: function() {
      for (var j, x, i = this.length; i; j = parseInt(Math.random() * i), x =
         this[--i], this[i] = this[j], this[j] = x);
      return this;
   }
});

var Music = { 
   stop: function() {
      $('music').empty();
      $('stopMusic').setStyle('display', 'none');
      return false;
   }
};
