
jQuery.fn.initBogoTabs=function(tabdefs,props){props=jQuery.extend({activeLabelClass:'bogoTabsActiveLabel',inactiveLabelClass:'bogoTabsInactiveLabel',debugBogoTabs:false},props);var self=this;self.dbgdiv=null;function dbg(msg){if(self.dbgdiv)self.dbgdiv.append("BogoTabs: "+msg+"<br/>");};if(props.debugBogoTabs){this.after("<div id='bogoTabsDebugDiv'>Debugging area</div>");self.dbgdiv=jQuery('#bogoTabsDebugDiv');self.dbgdiv.css('border','1px dashed #000');dbg("debugging activated.");}
function TabsInnerHolder(){var self=this;self.tabs=[];self.links=[];self.onselect=[];self.currentTab=null;};self.holder=new TabsInnerHolder();function switchTabs(tabID){dbg('switchTabs('+tabID+')');var tab2show=null;var tabs2hide=[];for(var k=0;k<self.holder.tabs.length;++k){var key=self.holder.tabs[k];if(key==tabID){tab2show=jQuery(key);(self.holder.links[key]).removeClass(props.inactiveLabelClass).addClass(props.activeLabelClass);}else{tabs2hide[tabs2hide.length]=jQuery(key);(self.holder.links[key]).removeClass(props.activeLabelClass).addClass(props.inactiveLabelClass);}}
if(self.currentTab&&(self.currentTab.attr('id')==tab2show.attr('id'))){dbg("Skipping switch - tab already selected.");return;}
jQuery(tabs2hide).each(function(){this.hide()});if(self.holder.onselect[tabID]){(self.holder.onselect[tabID])(tab2show);}
tab2show.show();self.currentTab=tab2show;};var tab2select=null;for(var key in tabdefs){if(!tab2select)tab2select=key;var tab=jQuery(key);var attr=tabdefs[key];if(attr['selected'])tab2select=key;tab.hide();this.append(tab);var lbl=jQuery("<span tabid='"+key+"'/>");lbl.css('cursor','pointer');self.holder.tabs[self.holder.tabs.length]=key;self.holder.links[key]=lbl;self.holder.onselect[key]=attr.onselect;lbl.html(attr['label']);lbl.click(function(){dbg("Calling switch: "+jQuery(this).attr('tabid'));switchTabs(jQuery(this).attr('tabid'));return false;});this.before(lbl);}
switchTabs(tab2select);};
