/* menu v3.0 ~ Sean Catchpole - Copyright 2010 MIT/GPL */
(function(c){var e,d,a=function(f){return c(f).attr("href")},b=function(f){return f===null&&"Null"||f===d&&"Undefined"||({}).toString.call(f).slice(8,-1)};c.fn.menu=function(){var f=e.args.apply(this,arguments),g=f.update&&"update"||f.remove&&"remove"||"bind";f.area=this;e[g](f);return this};e=c.menu=function(f,n,g){var h,k,j,i=c(),l=c.metadata?c(f).metadata():{},m={tab:e.tab,item:e.item};m=c.extend(m,e.settings,l,n||{});m.tabarea=c(f);m.data=g||"menu"+ +new Date;c.each({selected:".",event:"!",start:"#"},function(p,o){if(b(m[p])=="String"&&m[p].indexOf(o)==0){m[p]=m[p].substr(1)}});if(m.start===null){m.start=-1}j=[];m.tabs=k=c("a[href^=#]",f);k.each(function(){i=m.item(a(this));if(i.length){j=j.concat(i.get())}});m.items=c(j).hide();h="menu."+m.event;g=m.tabarea.data("menu")||{};g[h]=m;m.tabarea.data("menu",g);k.trigger(h).data(m.data,m).bind(h,{s:m},function(){return e.unbind.apply(this,arguments)}).bind(m.event,{s:m},e.find);b(m.start)=="Number"&&(m.start<0||(i=k.eq(m.start)).length)||b(m.start)=="String"&&(i=k.filter("a[href=#"+m.start+"]")).length||(i=k.filter("."+m.selected).removeClass(m.selected)).length||(m.start===d&&(i=k.eq(0)).length);if(i.length){i.trigger(m.event)}return m};e.args=function(){var f,h=0,j={},g=arguments,k=function(l,i){if(i.indexOf(".")==0){j.selected=i}else{if(i.indexOf("!")==0){if(/^!(true|false)$/i.test(i)){j.toggle=/^!true$/i.test(i)}else{j.event=i}}else{if(i.indexOf(":")==0){i=i.substr(1).toLowerCase();if(i.indexOf("!")==0){j[i.substr(1)]=false}else{j[i]=true}}else{if(i){j.start=i}}}}};while(h<g.length){f=g[h++];switch(b(f)){case"Object":c.extend(j,f);break;case"Boolean":j.change=f;break;case"Number":j.start=f;break;case"Function":j.click=f;break;case"Null":j.start=f;break;case"String":c.each(f.split(/\s+/g),k);default:break}}return j};e.bind=function(f){if(!f){return}var g="menu"+ +new Date;if(f.grouped){c.menu(f.area,f,g)}else{f.area.each(function(){c.menu(this,f,g)})}};e.update=function(g){if(!g){return}g.update=false;var f,h,j,i=g.event;i=(i+"").indexOf("!")==0&&i.substr(1)||i;i=i?"menu."+i:"";return g.area.each(function(){f=c(this);h=f.data("menu");if(!h){return}if(i){j=c.extend({},h[i],g);e.remove(h[i]);e(j.tabarea,j,j.data)}else{for(i in h){if(!Object.hasOwnProperty.call(h,i)){continue}j=c.extend({},h[i],g);e.remove(h[i]);e(j.tabarea,j,j.data)}}})};e.remove=function(g){if(!g){return}var h,f,i=g.event;i=(i+"").indexOf("!")==0&&i.substr(1)||i;i="menu"+(i?"."+i:"");return g.area.each(function(){h=c(this).data("menu");delete h["menu."+g.event];c(this).data("menu",h);f=g.tabs||c("a[href^=#]",this);if(!f.length&&c(this).is("a[href^=#]")){f=c(this)}f.trigger(i)})};e.find=function(i){var f=this,g=false,h=i.data.s;c("a[href="+a(this)+"]:first",h.area).each(function(){var j=c(this).data(h.data);if(j){g=e.showtab.call(j.tabarea==h.tabarea?f:this,j,i)||g}});return g};e.showtab=function(f,g){if(!f||!f.toggle&&c(this).is("."+f.selected)){return f&&f.change}var h=a(this);if(f.click&&f.click.call(this,h,f,g)==false){return f.change}if(f.toggle&&c(this).is("."+f.selected)){h=null}return e.show.call(this,h,f,g)};e.show=function(g,f){f.tabs.removeClass(f.selected);f.tab(g).addClass(f.selected);f.items.hide();f.item(g).show();return f.change};e.unbind=function(g){var f=g.data.s;c(this).removeData(f.data).unbind("menu."+f.event);return false};e.extend=function(){var f=arguments;return function(){[].push.apply(f,arguments);this.menu.apply(this,f)}};e.tab=function(f){if(!f){return c([])}return c("a[href="+f+"]",this.tabarea)};e.item=function(g){if(!g){return c([])}var f=c(g);return f.length?f:c("."+g.substr(1))};e.settings={start:d,change:false,click:null,selected:".selected",event:"!click",toggle:false,grouped:false};e.version="3.0";c(function(){c("#menu").menu()})})(jQuery);