$(document).ready(function(){
	/* bind : effets sur le menu principal */
	$('#header-nav01 a').bind('mouseenter mouseleave', function(event){
		var isMouseEnter = (event.type == 'mouseenter');
		var $element = $(this);
		if($element.is(':animated')) $element.stop();
		$element.animate({
			marginTop: (isMouseEnter ? -10 : 0)
		}, 200);
	});
	
	/* bind : effect sur les boutons */
	$('.btn01').bind('mouseenter mouseleave', function(event){
		var isMouseEnter = (event.type == 'mouseenter');
		var $element = $(this).find('span');
		if($element.is(':animated')) $element.stop();
		$element.animate({
			paddingLeft: (isMouseEnter ? 40 : 10),
			paddingRight: (isMouseEnter ? 50 : 20)
		}, 200, (isMouseEnter ? 'easeOutBounce' : 'linear'));
	});
	
	
	/* bind : accordeon dans la colonne de droite */
	$('.js-accordeon').serialaccordeon();
	
	/* bind : lightbox */
	$('.js-lightbox').lightBox({
		imageLoading: 'http://' + document.domain + '/extension/genial/design/standard/images/lightbox-ico-loading.gif',
		imageBtnClose: 'http://' + document.domain + '/extension/genial/design/standard/images/lightbox-btn-close.gif',
		imageBtnPrev: 'http://' + document.domain + '/extension/genial/design/standard/images/lightbox-btn-prev.gif',
		imageBtnNext: 'http://' + document.domain + '/extension/genial/design/standard/images/lightbox-btn-next.gif',
		imageBlank: ''
	});	
});


$.easing.easeOutBounce = function (x, t, b, c, d) {
	if ((t/=d) < (1/2.75)) {
		return c*(7.5625*t*t) + b;
	} else if (t < (2/2.75)) {
		return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
	} else if (t < (2.5/2.75)) {
		return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
	} else {
		return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
	}
};


/* plugin : serialaccordeon */
$.fn.serialaccordeon = function(){
	this.each(function(){
		var ul = $(this),
		li = ul.children(),
		anchor = $('> li > .js-trigger', ul).css('cursor', 'pointer'),
		current = $(li).filter('.selected').find('> .js-content');
		
		//hide on load
		$('> li > .js-content', ul).not(current).hide();
		
		//click
		anchor.bind("click", function(){
			handler.call(this, ul);
			return false;
		});
		
		//save current element
		$.data(ul, "current", current);
	});
	
	function handler(storage){
		var content = $($(this).parent().find('.js-content')[0]); 
		var isVisible = content.is(':visible');
		var current = $.data(storage, "current");
		
		if(current){
			current.slideUp();
			selected(current, false);
		}
		
		content[isVisible ? "slideUp" : "slideDown"]();
		selected(content, !isVisible);
		
		$.data(storage, "current", isVisible ? false : content);

		return false;
	}
	
	function selected(elem, action){
		$(elem).parent()[action ? "addClass" : "removeClass"]('selected');
	}
	
	return this;
};


