soundManager.url = '/assets/files/';
soundManager.debugMode = false;
var _au = Object;

$(document).ready(function() {
  if ($.browser.mozilla) $('body').addClass('mozilla');
  if ($.browser.webkit) $('body').addClass('webkit');
  if ($.browser.msie) $('body').addClass('ie');
  
  soundManager.onload = function() {
    _au = soundManager.createSound({
      id: '_au',
      url: '/assets/files/_a.mp3'
    });
    _au.load();
  };
  $('body').append($('<div id="_p"><div id="_l"></div></div>'));
  
  $('a._v').bind('click', function(){
    $(this).blur();
    $('a._v').blink({speed: 150, count: 3, className: '_i'});
    return false;
  });
  
  var _a = false;  
  var s_a = function()
  {
    if (!_a && $('body').hasClass('colophon'))
    {
      _a = true;
      _au.play();
      
      var _co = $('<div id="_a"><div id="_b"><div id="_c"></div></div></div>');
      $('body').append(_co);
      _co.centerLayer();
      $(window).bind('resize scroll', function(){ _co.centerLayer(); });
      
      setTimeout(function(){ $('#_b').fadeOut(200); }, 50);
      setTimeout(function(){ $('#_a').fadeOut(2000); }, 3000);
      
      $('a._v').addClass('_a');
      $('a._v').attr('href','http://eu.battle.net/wow/en/character/alonsus/elethiomel/');
      $('a._v').attr('title','So, I used to play a lot of World of Warcraft…');
      $('a._v').unbind('click');
    }
  };
  
  var k = [];
  $(window).keydown(function(e){
    k.push(e.keyCode);
    if (k.toString().indexOf('38,38,40,40,37,39,37,39,66,65') >= 0){
      s_a();
    }
  });
  
  $('body.colophon div#content div.elsewhere').css({'opacity': 0, 'bottom': 0});
  
  setTimeout(function(){
    $('body.colophon div#content').fadeIn(700, function(){
      $('body.colophon div#content div.elsewhere').animate({
        'opacity': 1,
        'bottom': '20px'
      }, 500);
      $(this).removeClass('loading');
    });
  }, 200);
  
  $('body.portfolio div.item').each(function(){
    var item           = $(this);
    var item_image_src = $(this).find('img').attr('src');
    var item_link      = $(this).find('a');
    var item_title     = $(this).find('h3').text();
    var item_desc      = $(this).find('p').text();

    var thumbnail = new Image();
    thumbnail.src = item_image_src;

    $(thumbnail).bind('load', function(){
      item.find('img').replaceWith(thumbnail);
      $(thumbnail).addClass('preview');
      $(thumbnail).css({opacity: 0});
      $(thumbnail).css({visibility: 'visible'});
      $(thumbnail).animate({opacity: 1}, 1000);
    });

    if (item_link.length == 1) {
      if (item_link.attr('href').match(/^\/assets\/images\//)) {
        item_link.bind('click', function(e){
          e.preventDefault();
          item_link.blur();

          var imageLoader = new Image();
          imageLoader.src = item_link.attr('href');

          var previewLayer = $('<div class="preview" style="display:none;"><img class="loading" src="/assets/images/transparent.gif"></div>');
          var dismissPreview = function(){
            previewLayer.fadeOut('fast', function(){
              previewLayer.remove();
            });
            imageLoader = null;
          };

          previewLayer.bind('click', function(){
            $(document).trigger('dismiss.overlay', dismissPreview);            
          });
          $(document).bind('dismiss.overlay', dismissPreview);
          $(window).bind('resize.modal scroll.modal', function(){ previewLayer.centerLayer(); });

          $(imageLoader).bind('load', function(){
            previewLayer.find('img.loading').replaceWith(imageLoader);
            previewLayer.centerLayer();
          });

          $('body').overlay(false, function(){
            previewLayer.append('<h3>' + item_title + '</h3>');
            previewLayer.append('<p>' + item_desc + '</p>');
            $('body').append(previewLayer);
            previewLayer.centerLayer();
            previewLayer.fadeIn('fast');
          });

          return false;
        }); // click handler for image previews
      }
      if (item_link.attr('href').match(/^\/assets\/video\//)) {
        if (!($.browser.msie && parseInt($.browser.version, 10) <= 8)) {
          item_link.bind('click', function(e){
            e.preventDefault();
            item_link.blur();

            var previewLayer = $('<div class="preview" style="display:none;"><img class="loading" src="/assets/images/transparent.gif"></div>');

            $(document).bind('dismiss.overlay', function(){
              previewLayer.fadeOut('fast', function(){
                previewLayer.remove();
              });
            });
            $(window).bind('resize.modal scroll.modal', function(){ previewLayer.centerLayer(); });

            var posterFrame = new Image();
            posterFrame.src = item.attr('data-video-poster');
            var flashvars = 'autostart=true&controlbar=over&image=' + item.attr('data-video-poster') + '&file=' + item_link.attr('href');

            var videoContainer = $('<video controls style="display:none;"></video>');

            videoContainer.attr('poster', item.attr('data-video-poster'));
            videoContainer.append($('<source>').attr('src', item_link.attr('href').replace('.mp4','.mov')).attr('type', 'video/mp4'));
            videoContainer.append($('<source>').attr('src', item_link.attr('href')).attr('type', 'video/mp4'));
            videoContainer.append($('<source>').attr('src', item_link.attr('href').replace('.mp4','.ogv')).attr('type', 'video/ogg'));
            videoContainer.append($('<object>').attr('type', 'application/x-shockwave-flash').attr('data','/files/player.swf'));
            videoContainer.find('object').append($('<param>').attr('name','movie').attr('value','/assets/files/player.swf'));
            videoContainer.find('object').append($('<param>').attr('name','flashvars').attr('value', flashvars));

            $(posterFrame).bind('load', function(){
              videoContainer.find('object').attr('height', posterFrame.height).attr('width', posterFrame.width);
              previewLayer.find('img.loading').css({height: posterFrame.height, width: posterFrame.width});
              previewLayer.find('img.loading').replaceWith(videoContainer);
              previewLayer.centerLayer();
              videoContainer.fadeIn(1000);
            });

            $('body').overlay(false, function(){
              previewLayer.append('<h3>' + item_title + '</h3>');
              previewLayer.append('<p>' + item_desc + '</p>');
              $('body').append(previewLayer);
              previewLayer.centerLayer();

              previewLayer.fadeIn(400, function(){
                previewLayer.centerLayer();
              });
            });

            return false;
          }); // click handler for video previews          
        }
      }
    }
  }); // portfolio item bindings
  
  var switchComparisonType = function(e) {
    e.preventDefault();
    
    var img = $('body.iphone4_comparison img#comparison');
    var type = $(e.target).attr('data-comparison-type');
    
    $('body.iphone4_comparison ul#controls li').removeClass('selected');
    $(e.target).closest('li').addClass('selected');
    img.attr('data-comparison-type', type);
    img.attr('src', '/assets/images/iphone4_comparison/' + img.attr('data-product') + '_' + type + '.png');
  };
  
  var showModel = function(e, product) {
    var img = $('body.iphone4_comparison img#comparison');
    var url = '/assets/images/iphone4_comparison/';
    
    if (product == null) product = img.attr('data-product') == 'iphone4' ? 'iphone4s' : 'iphone4';
    url += product + '_' + img.attr('data-comparison-type') + '.png';
    img.attr('src', url);
  };
  
  $('body.iphone4_comparison ul#controls li a').bind('click', switchComparisonType);
  $('body.iphone4_comparison img#comparison').bind('mouseover', function(e){ showModel(e, 'iphone4s'); });
  $('body.iphone4_comparison img#comparison').bind('mouseout', function(e){ showModel(e, 'iphone4'); });
  $('body.iphone4_comparison img#comparison').bind('click', showModel);
  
  
  _uacct = "UA-338044-3";
  urchinTracker();
});
