/*
jQuery.imageMenu
Basé sur phatfusion image Menu. pour mootools (http://www.phatfusion.net/imagemenu/index.htm);
*/
(function($) {
		  
jQuery.fn.ImageMenu = function(options) {
	var options = $.extend({
		'menu' : $(this),
		'items': 'li' ,
		'extendBy': 50,
		'init' : -1,
		'speed':'fast',
		'keepOpen' : false,
		'saveOnClick' : false,
		'mouseover' : function(){},
		'mouseout' : function(){},
		'click' : function(){}
	}, options || {});
	
	// Build Animated menu
	var menu = $(this);
	var elems = $(options.items,menu);

	// apply standard action
	elems.bind('mouseover',options, ImageMenu.mouseover);
	if(options.keepOpen==false)
		elems.bind('mouseout',options, ImageMenu.mouseout);
		
	elems.bind('click',options, ImageMenu.click);

	menu.attr('ImageMenu_Default', options.init);
	menu.css('position','relative');
	menu.append('<div style="position:absolute;height:'+menu.height()+'px;width:'+(menu.width()*2)+'px;clip: rect(0px '+menu.width()+'px '+menu.height()+'px 0px);" class="imageMenuContainer"></div>');
	elems.appendTo($('.imageMenuContainer',menu));
	
	elems.eq(elems.length-1).width(menu.width());
	options.mouseout(elems,options);

	
	if(options.init>=0)
		elems.eq(options.init).trigger('mouseover');
};

})(jQuery);

var ImageMenu = {
	mouseover : function(e){
		var options = e.data;

		var menu = $(options.menu);
		var elems = $(options.items,menu);
		
		var menuWidth = menu.width();
		var singleWidth = Math.floor(menuWidth/(elems.length));

		var outWidth = Math.floor((menuWidth-(singleWidth+options.extendBy))/(elems.length-1));
		var hoverWidth = Math.ceil(menuWidth - outWidth * (elems.length-1));
		
		$(this).removeClass('out');

		$(this).stop();
		$(this).animate({'width':hoverWidth},options.speed);
		
		elems.slice(0,elems.length-1).not(this).stop();
		elems.slice(0,elems.length-1).not(this).animate({'width':outWidth},options.speed);
		
		// extend with custom user function
		options.mouseout(elems.not(this),options);
		options.mouseover(this,options);
	},
	mouseout : function(e){
		var options = e.data;

		var menu = $(options.menu);
		var elems = $(options.items,menu);
		
		var menuWidth = menu.width();
		var singleWidth = Math.floor(menuWidth/(elems.length));
		
		$(this).addClass('out');
		
		elems.slice(0,elems.length-1).stop();
		elems.slice(0,elems.length-1).animate({'width':singleWidth},options.speed);

		// extend with custom user function
		options.mouseout(this,options);

		if(menu.attr('ImageMenu_default')>=0)
			elems.eq(1*menu.attr('ImageMenu_default')).trigger('mouseover');

	},
	click : function(e){
		var options = e.data;
		var menu = $(options.menu);
		var elems = $(options.items,menu);
		menu.attr('ImageMenu_default',elems.index(this));
		
		options.click(this,options);
	}
}
