if(typeof(Control)=="undefined"){var Control={}}Control.Tabs=Class.create();Object.extend(Control.Tabs,{instances:[],findByTabId:function(a){return Control.Tabs.instances.find(function(b){return b.links.find(function(c){return c.key==a})})}});Object.extend(Control.Tabs.prototype,{initialize:function(c,b){this.activeContainer=false;this.activeLink=false;this.containers=$H({});this.links=[];Control.Tabs.instances.push(this);this.options={beforeChange:Prototype.emptyFunction,afterChange:Prototype.emptyFunction,hover:false,linkSelector:"li a",setClassOnContainer:false,activeClassName:"active",defaultTab:"first",autoLinkExternal:true,targetRegExp:/#(.+)$/,showFunction:Element.show,hideFunction:Element.hide};Object.extend(this.options,b||{});(typeof(this.options.linkSelector=="string")?$(c).getElementsBySelector(this.options.linkSelector):this.options.linkSelector($(c))).findAll(function(d){return(/^#/).exec(d.href.replace(window.location.href.split("#")[0],""))}).each(function(d){this.addTab(d)}.bind(this));this.containers.values().each(this.options.hideFunction);if(this.options.defaultTab=="first"){this.setActiveTab(this.links.first())}else{if(this.options.defaultTab=="last"){this.setActiveTab(this.links.last())}else{this.setActiveTab(this.options.defaultTab)}}var a=this.options.targetRegExp.exec(window.location);if(a&&a[1]){a[1].split(",").each(function(d){this.links.each(function(f,e){if(e.key==f){this.setActiveTab(e);throw $break}}.bind(this,d))}.bind(this))}if(this.options.autoLinkExternal){$A(document.getElementsByTagName("a")).each(function(d){if(!this.links.include(d)){var e=d.href.replace(window.location.href.split("#")[0],"");if(e.substring(0,1)=="#"){if(this.containers.keys().include(e.substring(1))){$(d).observe("click",function(g,f){this.setActiveTab(f.substring(1))}.bindAsEventListener(this,e))}}}}.bind(this))}},addTab:function(a){this.links.push(a);a.key=a.getAttribute("href").replace(window.location.href.split("#")[0],"").split("/").last().replace(/#/,"");this.containers[a.key]=$(a.key);a[this.options.hover?"onmouseover":"onclick"]=function(b){if(window.event){Event.stop(window.event)}this.setActiveTab(b);return false}.bind(this,a)},setActiveTab:function(a){if(!a){return}if(typeof(a)=="string"){this.links.each(function(b){if(b.key==a){this.setActiveTab(b);throw $break}}.bind(this))}else{this.notify("beforeChange",this.activeContainer);if(this.activeContainer){this.options.hideFunction(this.activeContainer)}this.links.each(function(b){(this.options.setClassOnContainer?$(b.parentNode):b).removeClassName(this.options.activeClassName)}.bind(this));(this.options.setClassOnContainer?$(a.parentNode):a).addClassName(this.options.activeClassName);this.activeContainer=this.containers[a.key];this.activeLink=a;this.options.showFunction(this.containers[a.key]);this.notify("afterChange",this.containers[a.key])}},next:function(){this.links.each(function(b,a){if(this.activeLink==b&&this.links[a+1]){this.setActiveTab(this.links[a+1]);throw $break}}.bind(this));return false},previous:function(){this.links.each(function(b,a){if(this.activeLink==b&&this.links[a-1]){this.setActiveTab(this.links[a-1]);throw $break}}.bind(this));return false},first:function(){this.setActiveTab(this.links.first());return false},last:function(){this.setActiveTab(this.links.last());return false},notify:function(b){try{if(this.options[b]){return[this.options[b].apply(this.options[b],$A(arguments).slice(1))]}}catch(a){if(a!=$break){throw a}else{return false}}}});if(typeof(Object.Event)!="undefined"){Object.Event.extend(Control.Tabs)};