$(function() {
	$('.nojs').removeClass('nojs');
	
	var tto = 250, // Time To Open
		ttc = 800, // Time To Close
		ttac = 350,  // Time To Animated Close
		toti = 0, // To Open Timer Id 
		$menul = $('#menu>ul'); // le menu
	
	/**
	 * Réalise la fermeture de menu
	 * @name $.fn.bdspCloseMenu
	 * @inner
	 * @function
	 **/	
	$.fn.bdspCloseMenu = function() { 
    return $(this).removeData('htclose').removeClass('open');
	}

	/**
	 * Réalise une anim de fermeture si complètement out du menu
	 * @name $.fn.bdspAnimCloseMenu
	 * @inner
	 * @function
	 **/
	$.fn.bdspAnimCloseMenu = function() {
		var $t = $(this); 
		return $t.is('.open') ?
			$t.children('ul')
				.addClass('transition')
				.fadeOut(ttac, function(){
					$(this).removeClass('transition')
					$t.bdspCloseMenu();
				})
				.end()
			:
			$t.bdspCloseMenu();
	}
	/**
	 * Stop toutes les fermetures en attente du menu
	 * réalise la fermeture des menus hors context du over (en direct ou en decalé).
	 * @name theme.stopAndDoClose
	 * @inner
	 * @function
	 * @param {jQuery} $over Objet jQuery actuellement survollé  
	 * @param {boolean} wait fermeture direct ou en decalé  
	 **/	
	function stopAndDoClose($over, wait){
		$menul.find('li').each(function(){
			var $t = $(this);
			clearTimeout($t.data('htclose'));
			$t.removeData('htclose');
			// fermer si hors contexte du over courant
			if(	$t.is('.open') &&
					$t.get(0)!=$over.get(0) && 
					!$.contains($t.get(0),$over.get(0))) {
				if(wait)
					$t.data('htclose', setTimeout(function(){$t.bdspAnimCloseMenu()}, ttc));
				else
					$t.bdspCloseMenu();
			}	
		});		
	}
	
	$menul
		// recentrage du menu
		.css('float','left')
		.css('padding-left',(998-$menul.width())/2+'px')
		.css('float','none')
		
		// action hover
		.find('li')
			.hover(
				// function  when over
				function(){ 
					clearTimeout(toti);toti=0; // stopper l'ouverture en attente

					var $this = $(this).addClass('over');
					
					stopAndDoClose($this,true);
					
					// lancer l'ouverture en décaler
					if( $this.children('ul').size() )
						toti = setTimeout(function(){
							stopAndDoClose($this,false);
							$this.addClass('open');
						}, tto);
				},
				// function  when out
				function(){
					clearTimeout(toti);toti=0;
					var $this = $(this)
										.removeClass('over')
										.has('ul')
											.data('htclose', setTimeout(function(){$this.bdspAnimCloseMenu()}, ttc));
				}
			);

	// position du demi logo dans le background
	$('body').css('background-position',($('#wrapper').offset().left)-126 +'px 145px');
	
});