$(document).ready(function(){
  
  function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
  }
  
  // Generated from WordPress
  var templateUrl = $('#templateUrl').val();
  var websiteUrl = $('#websiteUrl').val();
  
  // Hover opacity
  var hoverOpacity = 0.2;
  
  // SWFobject
  var flashvars = true;
  
  var params = {
    allowScriptAccess:  "sameDomain",
    loop:               "false",
    menu:               "false",
    wmode:              "opaque"
  };
  
  var logotypeParams = {
    flashvars:          "vids=logotype1~logotype2~logotype3"
  };
  
  var mrHenryParams = {
    flashvars:          "vids=mrhenry"
  };
  
  if( readCookie('background') == 0 ){
    swfobject.embedSWF( templateUrl+"/assets/flash/videoPlayer/player.swf", "introVideoObject", "100%", "100%", "9.0.0", templateUrl+"/assets/flash/expressInstall.swf", flashvars, params);
  }else{
    swfobject.embedSWF( templateUrl+"/assets/flash/logotype/logotype.swf", "logotypeObject", "260", "220", "9.0.0", templateUrl+"/assets/flash/expressInstall.swf", flashvars, logotypeParams);
    swfobject.embedSWF( templateUrl+"/assets/flash/mrHenry/mrhenry.swf", "mrHenryObject", "280", "237", "9.0.0", templateUrl+"/assets/flash/expressInstall.swf", flashvars, mrHenryParams);
  }
  
  // Clickable logotypes
  $('#logotype, #logotype object').click(function(){
    window.location = websiteUrl;
  });
  
  $('#mrHenry').click(function(){
    window.location = 'http://www.mrhenry.be';
  });
  
  // Cufon
  Cufon.replace('h2', { hover: true });
  Cufon.replace('h3');
  
  // Masonry
  $('#posts').masonry({
    itemSelector: '.entry'
  });
  
  // Run masonry on window resize
  $(window).resize(function(){
    $('#posts').masonry({
      itemSelector: '.entry'
    });
  });
  
  // Expand entry
  $('.collapsedEntry h2, .collapsedEntry .attachment-thumbnail, .collapsedEntry .attachment-medium:not(.aboutThumbnail)').live('click', function() {
    
    // Close already expanded entries
    $('.hiddenTrigger').trigger('click');
    
    // Get entry
    var entry = $(this).closest('.entry');
    
    // Add class on entry
    entry.addClass('openEntry');
    entry.removeClass('collapsedEntry');
    
    // Display loader
    var ajaxMarginTop = (entry.height() / 2) - 5;
    var ajaxMarginLeft = (entry.width() / 2) - 8;
    entry.html('');
    entry.html('<img src="'+templateUrl+'/images/ajax-loader.gif" style="margin-top: '+ajaxMarginTop+'px; margin-left: '+ajaxMarginLeft+'px;" class="ajaxLoader" alt="Loading..." />');
    
    if (entry.hasClass('blogPost')){
      entry.css({
        background: '#fff'
      });
    }else{
      entry.css({
        background: '#000'
      });
    }
    
    
    // Entry classes as array
    var classes = entry.attr('className').split(' ');
    
    // Get postID number
    var postID;
    for (i = 0; i < classes.length; i++){
      if ( classes[i].substr(0,7) == 'postID-' ){
        postID = classes[i].substr(7);
        break;
      }
    }
    
    // Get post type (blogPost or project)
    var postType;
    if (entry.hasClass('blogPost')){
      postType = 'blogPost';
    }else{
      postType = 'project';
    }
    
    // Request post
    $.ajax({
      type: 'POST',
      url: templateUrl+'/assets/php/expandedContent.php',
      cache: false,
      data: ({
        postID:   postID,
        postType: postType
      }),
      success: function(data){
        entry.html('');
        //entry.css({
        //  background: 'transparent'
        //});
        entry.width(570);
        entry.append(data);
        
        $('#posts').masonry({
          itemSelector: '.entry'
        });
        Cufon.replace('h2', { hover: true });
        
        // Strip p tag on images and objects
        $('.project.openEntry img, .project.openEntry object').unwrap();
        
      }
    });
    return false;
  });
  
  // Collapse entry
  $('.openEntry h2, .openEntry .attachment-large, .project.openEntry img, .hiddenTrigger').live('click', function() {
    
    // Get entry
    var entry = $(this).closest('.entry');
    
    // Remove class on entry
    entry.addClass('collapsedEntry');
    entry.removeClass('openEntry');
    
    // Entry classes as array
    var classes = entry.attr('className').split(' ');
    
    // Get postID number
    var postID;
    for (i = 0; i < classes.length; i++){
      if ( classes[i].substr(0,7) == 'postID-' ){
        postID = classes[i].substr(7);
        break;
      }
    }
    
    // Get post type (blogPost or project)
    var postType;
    if (entry.hasClass('blogPost')){
      postType = 'blogPost';
    }else{
      postType = 'project';
    }
    $.ajax({
      type: 'POST',
      url: templateUrl+'/assets/php/collapsedContent.php',
      cache: false,
      data: ({
        postID:   postID,
        postType: postType
      }),
      success: function(data){
        entry.html('');
        entry.width(280);
        entry.append(data);
        
        $('#posts').masonry({
          itemSelector: '.entry'
        });
        Cufon.replace('h2', { hover: true });
      }
    });
    return false;
  });
  
  
  
  // Highlight categories
  $('.home #menuWork a, .category-work #menuWork a').hover(function(){
    var projectClasses = $(this).parent().attr('className').split(' ');
    var catID;
    for (var i = 0; i < projectClasses.length; i++){
      if ( projectClasses[i].substr(0,9) == 'cat-item-' ){
        catID = projectClasses[i].substr(9);
        break;
      }
    }
    $('.entry').not('.cat'+catID).css({
      opacity: hoverOpacity
    });
  },function(){
    $('.entry').css({
      opacity: 1
    });
  });
  
  // Highlight blogposts
  $('.home #menuBlog .blogPost, .category-blog #menuBlog .blogPost').hover(function(){
    $('.entry').not('.blogPost').css({
      opacity: hoverOpacity
    });
  }, function(){
    $('.entry').css({
      opacity: 1
    });
  });
  
  // Highlight tags
  $('.home .wp-tag-cloud li a, .home .postTags a, .category-blog .wp-tag-cloud li a, .category-blog .postTags a').live('hover',function(){
    var tag = $(this).attr('href').substr(websiteUrl.length + 6);
    $('.entry').not('.tag-'+tag).css({
      opacity: hoverOpacity
    });
  });
  
  $('.home .wp-tag-cloud li a, .home .postTags a, .category-blog .wp-tag-cloud li a, .category-blog .postTags a').live('mouseleave',function(){
    $('.entry').css({
      opacity: 1
    });
  });
  
  // Calculate menu positions
  var logotypeOffset = $('#logotype').offset();
  $('#menuWork').css({
    top: logotypeOffset.top + $('#logotype').outerHeight() + 30 + 'px'
  });
  
  var workOffset = $('#menuWork').offset();
  $('#menuBlog').css({
    top: workOffset.top + $('#menuWork').outerHeight() + 10 + 'px'
  });
  
  // Entry min-height
  $('.entry').each(function(){
    $(this).css({
      minHeight : $(this).height()+'px'
    });
  });
  
  // Semi fixed menu
  $(window).scroll(function (){
    if ( $(document).scrollTop() >= 40 ){
      $('#logotype').css({
        top: $(document).scrollTop() + 10 +'px'
      });
    }else{
      $('#logotype').css({
         top: 50 +'px'
       });
    }
    
    // Update menu positions
    logotypeOffset = $('#logotype').offset();
    $('#menuWork').css({
      top: logotypeOffset.top + $('#logotype').outerHeight() + 30 + 'px'
    });
    
    workOffset = $('#menuWork').offset();
    $('#menuBlog').css({
      top: workOffset.top + $('#menuWork').outerHeight() + 10 + 'px'
    });
     
  });
  
  // Open links in a new window
  $('a.newWindow').click(function(){
    window.open(this.href);
    return false;
  });
  
  // Comments input focus
  $('input[type="text"]').focus(function() {
    $(this).removeClass('idleField').addClass('focusField');
    if (this.value == this.defaultValue){ 
      this.value = '';
    }
    if(this.value != this.defaultValue){
      this.select();
    }
  });
  
  $('input[type="text"]').blur(function() {
    $(this).removeClass('focusField').addClass('idleField');
    if (this.value == ''){
      this.value = (this.defaultValue ? this.defaultValue : '');
    }
  });
  
  $('textarea').focus(function(){
    $(this).removeClass('idleField').addClass('focusField');
    if (this.value == this.defaultValue){ 
      this.value = '';
    }
  });
  
  $('textarea').blur(function() {
    $(this).removeClass('focusField').addClass('idleField');
    if (this.value == ''){
      this.value = (this.defaultValue ? this.defaultValue : '');
    }
  });
  
  // Set background position for IE6 and below
  if ($.browser.msie && $.browser.version.substr(0,1)<7) {
    $(window).scroll(function (){
      $('#backgroundImage').css({
        top: $(document).scrollTop()+'px'
      });
    });
  }
  
  // Introvideo fullscreen
  $('#introVideo').css({
    width   :   $(window).width() + 'px',
    height  :   $(window).height() + 'px'
  });
  
});
