$(document).ready(function() {
   if($.browser.safari) {
      $('div#body p').css('line-height', '43px');
   }
   //Cufon.replace('p.typeface-js', {hover:true});
   //setupImages();
   setupMenu();
   setupShortcuts();
   setTimeout(function() { setupHover() }, 100);
   if($.browser.mozilla) {
      $(document).scroll(function() {
         // Firefox leaves trails in fixed divs
         setTimeout(function() { $('#left').css('background-color', '#545756'); }, 10);
         setTimeout(function() { $('#left').css('background-color', '#545757'); }, 20);
      });
   }
});

function setupImages() {
   $('div.images div.image').each(function() {
      var $image = $(this).children('img');
      if($image[0].complete) {
         $($image[0]).load();
      }
      $image.css('visibility', 'hidden');
      var $div = $(this);
      var $inner = $div.children('div.image-inner');
      $image.bind('load', function() {
         $inner.css('background', 'white');
         $image.css('visibility', 'visible');
         $inner.fadeOut('medium');
      });
   });
}

function setupMenu() {
   $('#menu-select').change(function() {
      if(this.value != '') {
         window.location.href = this.value;
      }
   });
}

function setupShortcuts() {
   $(document).bind('keydown', keyDown); /*'left', function() { gotoPage(-1); });
   $(document).bind('keydown', 'right', function() { gotoPage(1); });
   $(document).bind('keydown', 'up', function() { gotoImage(-1); });
   $(document).bind('keydown', 'down', function() { gotoImage(1); });*/
}

function keyDown(e) {
   var keyCode = e.originalEvent.keyCode;
   switch(keyCode) {
   case 37:
      return gotoPage(-1);
   case 39:
      return gotoPage(1);
   case 38:
      //return gotoImage(-1);
   case 40:
      //return gotoImage(1);
   }
}

function gotoPage(direction) {
   if(direction == 1) {
      loadUrl(nextUrl);
   } else {
      loadUrl(prevUrl);
   }
}

function loadUrl(url) {
   if(url) {
      window.location.href = url;
   }
}

function gotoImage(direction) {
   var currentScrollTop = $(document).scrollTop();
   var currentImage = 0;
   $('div.images div.image').each(function() {
      if(this.offsetTop < currentScrollTop) {
         currentImage++;
      }
   });

   var nextImage = $('div.images div.image:nth-child('+(currentImage + (direction == 1 ? 1 : 0))+')');
   if(nextImage[0]) {
      var nextOffsetTop = nextImage[0].offsetTop - 16;
      $(window).scrollTop(nextOffsetTop);
      return false;
   }

   return true;
}

function setupHover() {
   $('div#body p a').each(function() {
      $(this).prepend('<div class="hover-over"><div class="left-edge"></div><div class="right-edge"></div></div>');
      $(this).children('.hover-over').css('width', $(this).width() - 7); 
      $(this).addClass('hover');
      $(this).hover(function() {
         $(this).children('.hover-over').css('display', 'block');
     }, function() {
         $(this).children('.hover-over').css('display', 'none');
     })
   });
}

