var droplinemenu={ arrowimage: {classname: 'downarrowclass', src: '/statics/css/img/space.gif', leftpadding: 0}, //customize down arrow image animateduration: {over: 300, out: 100}, //duration of slide in/ out animation, in milliseconds buildmenu:function(menuid){ jquery(document).ready(function($){ var $mainmenu=$("#"+menuid+">ul") var $headers=$mainmenu.find("ul").parent() $headers.each(function(i){ var $curobj=$(this) var $subul=$(this).find('ul:eq(0)') this._dimensions={h:$curobj.find('a:eq(0)').outerheight()} this.istopheader=$curobj.parents("ul").length==1? true : false if (!this.istopheader) $subul.css({left:0, top:this._dimensions.h}) var $innerheader=$curobj.children('a').eq(0) $innerheader=($innerheader.children().eq(0).is('span'))? $innerheader.children().eq(0) : $innerheader //if header contains inner span, use that $innerheader.append( '' ) $curobj.hover( function(e){ $(this).children("a:eq(0)").addclass("hover"); var $targetul=$(this).children("ul:eq(0)") if ($targetul.queue().length<=1) //if 1 or less queued animations if (this.istopheader) $targetul.css({left: $mainmenu.offset().left, top: $mainmenu.offset().top+this._dimensions.h}) if (document.all && !window.xmlhttprequest) //detect ie6 or less, fix issue with overflow $mainmenu.find('ul').css({overflow: (this.istopheader)? 'hidden' : 'visible'}) $targetul.slidedown(droplinemenu.animateduration.over) }, function(e){ $(this).children("a:eq(0)").removeclass("hover"); var $targetul=$(this).children("ul:eq(0)") $targetul.slideup(droplinemenu.animateduration.out) } ) //end hover }) //end $headers.each() $mainmenu.find("ul").css({display:'none', visibility:'visible', width:$mainmenu.width()}) }) //end document.ready } }