(function(a){a.fn.tabnav=function(e){var b=a.extend({},a.fn.tabnav.defaults,e),c={$self:this,index:0,fragment:document.location.hash.substring(1)},d=function(a){return a.match(/^[A-Za-z]([A-Za-z0-9\-\_\:\.]+|$)/)!==null};return this.each(function(){var f,e={$self:a(this),$tabs:null,$panes:null,index:0,selfId:undefined},h=function(){return"tabnav"+document.location.pathname+"#"+e.selfId},l=function(a){if(!b.enableSessionStorage||!window.sessionStorage)return;window.sessionStorage.setItem(h(),a.attr("id"))},j=function(){return!b.enableSessionStorage||!window.sessionStorage?null:window.sessionStorage.getItem(h())},g=function(a,c){a.show().siblings().hide();c.addClass("selected").siblings().removeClass("selected");l(a);typeof b.callBackSelectPane==="function"&&b.callBackSelectPane(e,a,c);return!0},n=function(a){if(a<0)e.$panes.hide();else g(e.$panes.eq(a),e.$tabs.eq(a))},i=function(c,d){var b=a(document.createElement("span"));if(c==1)b.text(d);else b.append(i(c-1,d));return b},s=function(c){var d,f=a(document.createElement("li")),h=a(document.createElement("a")),j=c.find(b.tabTextSelector).remove();if(c.attr("id")!==undefined)d=c.attr("id");else{d=e.selfId+"-"+e.index;c.attr("id",d)}if(b.padTabs)h.append(i(b.padTabs,j.text()));else h.text(j.text());h.attr("href","#"+d).click(function(a){a.preventDefault();!f.hasClass("selected")&&g(c,f)}).appendTo(f);return f},p=function(){var c=a(document.createElement("ul"));e.$panes=e.$self.find(b.paneSelector).addClass(b.paneClass).each(function(){e.index++;c.append(s(a(this)))});return c},m=function(){var f,a=c.fragment;if(!b.enableFragmentSelection||a.length===0||!d(a)||!document.getElementById(a))return!1;try{f=e.$panes.filter("[id="+a+"]");return f.length&&f}catch(g){alert(g.message)}return!1},k=function(){var b,a=j();if(!a||!d(fragment)||!document.getElementById(a))return!1;try{b=e.$panes.filter('[id="'+a+'"]');return b.length&&b}catch(c){alert(c.message)}return!1},r=function(){var a=m()||k();(!a||!g(a,e.$tabs.eq(e.$panes.index(a))))&&n(b.initialIndex)},q=function(){if(e.$self.attr("id")===undefined){e.selfId=b.prefix+c.index;e.$self.attr("id",e.selfId)}else e.selfId=e.$self.attr("id")},o=function(c){switch(b.tabsPlacement){case a.fn.tabnav.tabsPlacements.before:e.$self.before(c);break;case a.fn.tabnav.tabsPlacements.inside:e.$self.prepend(c)}};c.index++;q();f=p().addClass(b.tabsClass);b.tabsId&&f.attr("id",b.tabsId);e.$tabs=f.children("li");b.initialIndex=Math.min(b.initialIndex,e.$tabs.length-1);o(f);r()})};a.fn.tabnav.tabsPlacements={before:1,inside:2};a.fn.tabnav.defaults={callBackSelectPane:undefined,enableFragmentSelection:!1,enableSessionStorage:!1,initialIndex:0,tabTextSelector:"",padTabs:0,paneClass:"pane",paneSelector:">*",prefix:"pane",tabsClass:"tabs",tabsId:undefined,tabsPlacement:a.fn.tabnav.tabsPlacements.before}})(jQuery)
