var BOM_Multitabs=Class.create();BOM_Multitabs.prototype={initialize:function(elm){this.elm=$(elm);this.options=Object.extend({defaultTab:0,multipage:false},arguments[1]||{});this.header=$A(this.elm.getElementsByClassName('BOM-multitabs-header'))[0];this.headerHeight=this.header.getHeight();this.headerWidth=this.header.getWidth();this.tabsRow=this.header.getElementsBySelector('ul')[0];this.tabsWidth=this.tabsRow.getWidth();this.tabs=this.header.getElementsBySelector('a');this.pages=$A(this.elm.getElementsByClassName('BOM-multitabs-tab'));if(!this.options.multipage){for(i=0;i<this.tabs.length;i++){Event.observe(this.tabs[i],'click',this._revealIt.bindAsEventListener(this,i))}}this._revealIt(null,this.options.defaultTab);},_revealIt:function(e,index){if(e){Event.stop(e);this._switchTabs(e)}else{this._switchTabs(index)}if(!this.options.multipage)this._switchPages(index)},_switchTabs:function(e){var lien=(typeof e=='object')?Event.findElement(e,'a'):this.tabs[e];for(i=0;i<this.tabs.length;i++){this.tabs[i].removeClassName('BOM-multitabs-selectTab')}lien.addClassName('BOM-multitabs-selectTab');lien.blur()},_switchPages:function(index){for(i=0;i<this.pages.length;i++){this.pages[i].removeClassName('BOM-multitabs-selectTab')}var page=this.pages[index];page.addClassName('BOM-multitabs-selectTab')},_positionArrow:function(){this.prevArrow=this.elm.getElementsByClassName('BOM-multitabs-prev')[0];this.nextArrow=this.elm.getElementsByClassName('BOM-multitabs-next')[0];this.prevArrow.urlOn=this.prevArrow.src;this.nextArrow.urlOn=this.nextArrow.src;this.prevArrow.urlOff=this.prevArrow.src.replace(/(\.\w+)$/,'_off'+"$1");this.nextArrow.urlOff=this.nextArrow.src.replace(/(\.\w+)$/,'_off'+"$1");this.prevArrow.src=this.prevArrow.urlOff;this.widthArrow=Element.getWidth(this.nextArrow);this.headerWidth=this.headerWidth-this.widthArrow;this.header.style.width=this.headerWidth+'px';this.prevArrow.style.display='block';this.nextArrow.style.display='block'},_goToNext:function(e){if(this.xPosition==this.delta){return}else if(this.xPosition+this.pas<this.delta){new Effect.MoveBy(this.tabsRow,0,-this.pas,{queue:{scope:'multitabs',limit:1},afterFinish:this._callbackNext.bind(this)});if(this.prevArrow.src!=this.prevArrow.urlOn){this.prevArrow.src=this.prevArrow.urlOn}}else{new Effect.MoveBy(this.tabsRow,0,-(this.delta-this.xPosition),{queue:{scope:'multitabs',limit:1},afterFinish:this._callbackNext.bind(this)});if(this.prevArrow.src!=this.prevArrow.urlOn){this.prevArrow.src=this.prevArrow.urlOn}this.nextArrow.src=this.nextArrow.urlOff}},_goToPrev:function(e){if(this.xPosition==0){return}else if(this.xPosition-this.pas>0){new Effect.MoveBy(this.tabsRow,0,this.pas,{queue:{scope:'multitabs',limit:1},afterFinish:this._callbackPrev.bind(this)});if(this.nextArrow.src!=this.nextArrow.urlOn){this.nextArrow.src=this.nextArrow.urlOn}}else{new Effect.MoveBy(this.tabsRow,0,this.xPosition,{queue:{scope:'multitabs',limit:1},afterFinish:this._callbackPrev.bind(this)});if(this.nextArrow.src!=this.nextArrow.urlOn){this.nextArrow.src=this.nextArrow.urlOn}this.prevArrow.src=this.prevArrow.urlOff}},_scrollToInit:function(){var delta=Position.page(this.tabs[this.options.defaultTab])[0]-Position.page(this.tabs[0])[0];if(delta>this.headerWidth){this.temp=this.pas;this.pas=delta;this._goToNext()}},_callbackPrev:function(){if(this.xPosition-this.pas>0)this.xPosition-=this.pas;else this.xPosition=0},_callbackNext:function(){if(this.xPosition+this.pas<this.delta)this.xPosition+=this.pas;else this.xPosition=this.delta;if(this.temp)this.pas=this.temp}}
