/*
 * superfish_width_mod v0.1
 * Copyright (c) 2009 Cy Morris
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 */
;(function($){var defaults={equalWidth:true,resizeSeps:false,vertical:false,menuWidth:'100%',resizeSubMenus:true};$.fn.superfish_width_mod=function(options){var opts=$.extend({},$.fn.superfish_width_mod.defaults,options);return this.each(function(){var menu=$(this);var o=$.meta?$.extend({},opts,menu.data()):opts;menuItems=menu.find('>li');var origMenuW=menu.width();var newMenuW=o.menuWidth.match(/\%/)?menu.parent().width()*parseInt(o.menuWidth)/100:parseInt(o.menuWidth);menu.width(newMenuW);var sepAdjust=0;var itemCount=menuItems.length;var itemsWidth=0;if(!o.vertical&&!o.resizeSeps){menu.find('>li>span.separator').each(function(){$(this).parent().addClass('separator');$(this).parent().addClass('superfish_width_mod_skip');sepAdjust+=$(this).parent().outerWidth();itemCount--;});}
if(!o.vertical&&o.equalWidth){menuItems.each(function(){mItem=$(this);if(mItem.hasClass('separator')&&!o.resizeSeps)return;if(mItem.width()>parseInt((newMenuW-sepAdjust)/itemCount)){mItem.addClass('superfish_width_mod_skip');sepAdjust+=mItem.width();itemCount--;}});}
menuItems.each(function(){mItem=$(this);if(itemCount==0)itemCount=1;if(origMenuW==0)origMenuW=1;if(o.vertical)newItemW=newMenuW;else if(mItem.hasClass('superfish_width_mod_skip'))newItemW=mItem.width();else if(o.equalWidth)newItemW=parseInt((newMenuW-sepAdjust)/itemCount);else newItemW=parseInt(mItem.width()/(origMenuW-sepAdjust)*(newMenuW-sepAdjust));mItem.width(newItemW);mItem.find('>ul').each(function(){subMenu=$(this);if(o.vertical){subMenu.css('left',newItemW+'px');}else if(o.resizeSubMenus&&subMenu.width()<newItemW){subMenu.width(newItemW);subMenu.find('>li>ul').css('left',newItemW+'px');}});});w=menu.outerWidth(true);while(w<newMenuW){for(var i=0;i<menuItems.length;i++){mItem=$(menuItems[i]);if(mItem.hasClass('superfish_width_mod_skip'))continue;mItem.width(mItem.width()+1);w+=1;if(w==newMenuW)break;}}
while(w>newMenuW){for(var i=0;i<menuItems.length;i++){mItem=$(menuItems[i]);if(mItem.hasClass('superfish_width_mod_skip'))continue;mItem.width(mItem.width()-1);w-=1;if(w==newMenuW)break;}}});};$.fn.superfish_width_mod.defaults=defaults;})(jQuery);

