/**
  * @package WordPress
  * @subpackage Custom_main_javascript
  */

$(document).ready(function(){
  // cufon replacements
  Cufon.replace('.post h2, #footer .block h2, h3#comments, #respond h3', { fontFamily: 'HelveticaNeuLTCondensed', hover: true });
  
  // inits
  sidebar_nav.init();
  carrousel.init();
  
  // fix ie6 png
  if(!jQuery.support.opacity) {
    DD_belatedPNG.fix('body, #header h1 a, #header .description, #header form#searchform input#s, .entry img, a.round-icn, .entry a.tt, .entry p.facebook a, #footer, #logo-small, #headerimg form');
  }

	$('#headerimg form input:not(.plein)').focus(function() {
		if ( $(this).val() == this.defaultValue ) {
			$(this).val('');
		}
	}).blur(function() {
		if ( $(this).val() == '' ) {
			$(this).val( this.defaultValue );
		}
	});
    
});


carrousel = {
  
  settings : {
    'speed' : 500,
    'scope' : '#carrousel ul li a'
  },
  
  init : function() {
  
    $(this.settings.scope).click(function(){
      // get values
      var src = $(this).attr('href');
      var meta = $(this).attr('rel');      
	  meta = meta.split('|');
      var preview = meta[0];
	  var realisateur = meta[1];
	  var titre = meta[2];
      
      // calls
      carrousel.load_flv(src, preview, realisateur, titre);
      carrousel.activate_nav(this);
      
      // prevent default
      return false;
    });
                                     
    // trigger first element
    $(this.settings.scope + ":first").trigger('click');  
  },                        
  
  activate_nav : function(a) {
    $(this.settings.scope).removeClass('active');
    $(a).addClass('active');
  },
  
  load_flv : function(src, preview, realisateur, titre) {
    // create container for SWFOjbect with id
    var container = $('<div/>').attr('id', 'swf-object');
	var $flv_player = $('#flv_player');
    $flv_player.html(container)
	if ( realisateur ) {
		$flv_player.next().find( '.realisateur' ).html( realisateur );
	}
	if ( titre ) {
		$flv_player.next().find( '.titre' ).html( titre );
	}
	if ( realisateur || titre ) {
		$flv_player.next().css('visibility', 'visible');
	}

	// flv player path
    var player_src = WP_THEME_PATH + "/swf/player.swf"
    
    // works only if swfobject is loaded
    if(SWFObject) {
       var so = new SWFObject(player_src, "player", "628", "350", "9", "#000000");
       so.addParam("wmode","transparent");
       so.addParam("allowscriptaccess","always");
       so.addParam("allowfullscreen","true");
       so.addVariable("width","630");
       so.addVariable("height","350");
	   so.addVariable("controlbar", "none");
       so.addVariable("bufferlength", "10");       
       so.addVariable("autostart", "false");       
       so.addVariable("file",src);
       so.addVariable("image",preview);
       so.addVariable("link",src);           
       so.write('swf-object');     
    } 
  }
  
};
     


sidebar_nav = {
     
  settings : {
    'speed' : 500,
    'scope' : '#sidebar li.portfolio > ul > li'
  },
  
  init : function() {                           
    
    $(this.settings.scope).each(function() {
       // console.log(this, $(this).find('a:first'));
       var a = $(this).find('a:first');
       $(a).click(function() {
         sidebar_nav.toggle_content(this);
         return false;       
       });

    });
                 
    
  },
  
  toggle_content : function(a) {                 
    e = $(a).parent();   
    
    // is_open bool for .entry
    var is_open = $(e).hasClass('current-cat-parent') || $(e).hasClass('current-cat');
        
    if(!is_open) {
      sidebar_nav.open_content(e);
    } else {
      sidebar_nav.close_content(e);
    } 
  },
  
  open_content : function(e) {       
    $(e).addClass('current-cat');       
   
    // get next element which is the content to display
    var content = $(e).find('ul.children');  
                                       
    // store current height
    // console.log(jQuery.data(e, 'el_height', $(e).outerHeight()));

    // get dimensions
    var new_height = $(e).outerHeight() + $(content).outerHeight(true);    

    // animate
    $(e).animate({'height': new_height}, this.settings.speed, function(){ $(content).show(); }); 
  },
  
  close_content : function(e) {
    var close_height = 21;
                                                          
    // applying item current height to itself, fix onload bug
    $(e).height(e.outerHeight(true));
    
    // get next element which is the content to display
    var content = $(e).find('ul.children').hide();                        
    
    // animate back and remove class
    $(e).animate({'height': close_height}, 500, function(){ $(e).removeClass('current-cat'); }); 
  }
    
};


portfolio = {
     
  settings : {
    'speed' : 500,
    'scope' : '#content.portfolio .post h2 a, #content.portfolio .post a.thumbnail'
  },
  
  init : function() {    
    $(this.settings.scope).click(function() {
      portfolio.toggle_entry(this);
      return false;
    });
    
  },
  
  toggle_entry : function(e) {             
    // get all parents
    var parents = $(e).parents();           
    // find element parent .post container
    for (var i=0; i < parents.length; i++) {
      if($(parents[i]).hasClass('post')) {
        var container = parents[i];
        break;
      }
    };
    
    // is_open bool for .entry
    var is_open = $(container).hasClass('open');

    if(!is_open) {
      portfolio.open_entry(container);
    } else {
      portfolio.close_entry(container);
    }
  },
  
  open_entry : function(e) {    
    $(e).addClass('open');

    // find .entry element
    var entry = $(e).find('.entry');                                                                 
                                       
    // store current height
    jQuery.data(e, 'height', $(e).outerHeight());

    // get dimensions and position
    var new_height = $(e).outerHeight() + $(entry).outerHeight();    
    var positions = $(e).position();    
                                  
    // animate
    $(e).animate({'height': new_height}, this.settings.speed, function(){ $(entry).show(); }); 
    $('html,body').animate({scrollTop: positions.top - 8}, this.settings.speed);
  },
  
  close_entry : function(e) {
    // find .entry element
    var entry = $(e).find('.entry');
    
    // get original stored height
    var height = jQuery.data(e, 'height');

    $(e).animate({'height': height}, this.settings.speed, function(){ $(entry).hide(); $(e).removeClass('open'); }); 
  }
    
}
