/*!
* jquery.ui.potato.menu
*
* Copyright (c) 2009-2010 makoto_kw, http://www.makotokw.com
* Licensed under the MIT license.
*
* @author makoto_kw
* @version 1.0
*/
(function($) {
$.fn.extend({
ptMenu:function(arg) {
var defaltOption = {
vertical:false,
menuItemSelector: 'li',
menuGroupSelector: 'ul',
firstClass:'potato-menu',
menuItemClass:'potato-menu-item',
menuGroupClass:'potato-menu-group',
verticalClass:'potato-menu-vertical',
holizontalClass:'potato-menu-holizontal',
hasVerticalClass:'potato-menu-has-vertical',
hasHolizontalClass:'potato-menu-has-holizontal',
showDuration: 350,
hideDuration: 100
}
 
var option = (typeof(arg)!='string') ? $.extend(defaltOption,arg) : $.extend(defaltOption,{});
var $menu = $(this).addClass(option.firstClass).addClass((option.vertical) ? option.verticalClass : option.holizontalClass);
var $menuItems = $menu.find(option.menuItemSelector).addClass(option.menuItemClass);
var $menuGroups = $menu.find(option.menuGroupSelector).addClass(option.menuGroupClass);
$menuGroups.parent().each(function(index){
var bottom = $(this).parent(option.menuGroupSelector+'.'+option.firstClass).length == 1 && !option.vertical;
var $menuGroup = $(this).addClass((bottom) ? option.hasVerticalClass : option.hasHolizontalClass)
.children(option.menuGroupSelector+':first').addClass(option.verticalClass)
$(this)
.hover(
function(e) {
var offset = (bottom) ? {left:'0',top:''} : {left:$(this).width()+'px',top:'0'};
$menuGroup.css({left:offset.left,top:offset.top}).fadeIn(option.showDuration);
},
function(e) {
$menuGroup.fadeOut(option.hideDuration);
}
)
;
});
$menu.find('a[href^="#"]').click(function() {
$menuGroups.fadeOut(option.hideDuration);
return ($(this).attr('href')=='#') ? false : true;
})
;
return this;
}
})
})(jQuery);