(function(a){a.fn.actionsmenu=function(j){return this.each(function(){var f=a(this),b=a.extend(true,{maxHeight:300,width:180,css:{ids:{button:"_button",menu:"_menu"},classes:{button:"actions_menu_button",menu:"actions_menu",separator:"separator",hidden:"actions_menu_hidden",active:"actions_menu_button_active"}}},j),k=f.children().eq(0).text(),d=a('<button class="'+b.css.classes.button+'" id="'+f.attr("id")+b.css.ids.button+'" aria-haspopup="true" aria-owns="'+f.attr("id")+'_menu">'+k+"</button>"),
c=a('<ul class="'+b.css.classes.menu+'" id="'+f.attr("id")+b.css.ids.menu+'" role="menu" aria-hidden="true" aria-labelledby="'+f.attr("id")+'_button"></ul>'),i=["class","id","title"];a("body").is("[role]")||a("body").attr("role","application");d.insertAfter(f);f.find("li > a").each(function(e){for(var g=a('<li><a href="#" role="menuitem" tabindex="-1">'+a(this).text()+"</a></li>"),l=g.find("a"),h=0;h<i.length;h++)l.attr(i[h],a(this).attr(i[h]));a(this).parent().is(":last-child")&&e<f.find("li > a").length-
1&&g.addClass(b.css.classes.separator);g.appendTo(c)});c.appendTo("body");c.outerHeight()>b.maxHeight&&c.height(b.maxHeight);c.css("width",b.width).addClass(b.css.classes.hidden);c.bind("toggle",function(){a(this).is(":hidden")?a(this).trigger("show"):a(this).trigger("hide")});c.bind("show",function(){a("ul[id$=_menu]:not(:hidden)").each(function(){a(this).addClass(b.css.classes.hidden).attr("aria-hidden",true);a("button[id="+a(this).attr("aria-labelledby")+"]").removeClass(b.css.classes.active)});
var e=d.offset().left,g=d.offset().top+d.outerHeight();if(d.offset().left+a(this).outerWidth()>a(window).width())e-=a(this).outerWidth()-d.outerWidth();if(d.offset().top+d.outerHeight()+a(this).outerHeight()>a(window).height())g-=d.outerHeight()+a(this).outerHeight();a(this).appendTo("body").removeClass(b.css.classes.hidden).attr("aria-hidden",false).css({left:e,top:g});d.addClass(b.css.classes.active)});c.bind("hide",function(){a(this).addClass(b.css.classes.hidden).attr("aria-hidden",true);d.removeClass(b.css.classes.active)});
d.click(function(){return false});d.mousedown(function(){c.trigger("toggle");a(this).focus();return false});c.click(function(){a(this).trigger("hide")});a(document).click(function(){c.trigger("hide")});d.bind(a.browser.opera?"keypress":"keydown",function(e){switch(e.keyCode){case 13:case 32:case 38:case 40:a(this).hasClass(b.css.classes.active)||c.trigger("toggle");c.find("a:first").focus();return false;case 27:c.trigger("hide");break;case 9:c.trigger("hide");break}});c.bind(a.browser.opera?"keypress":
"keydown",function(e){switch(e.keyCode){case 13:a(this).trigger("hide");break;case 32:a(e.target).click();a(this).trigger("hide");return false;case 38:a(e.target).parent().prev().length?a(e.target).parent().prev().find("a").eq(0).focus():a(e.target).parent().siblings("li:last").find("a").eq(0).focus();return false;case 40:a(e.target).parent().next().length?a(e.target).parent().next().find("a").eq(0).focus():a(e.target).parent().siblings("li:first").find("a").eq(0).focus();return false;case 27:a(this).trigger("hide");
d.focus();break;case 9:a(this).trigger("hide");break}});f.remove()})}})(jQuery);
