var MultiSwapView=Class.create();Object.extend(MultiSwapView.prototype,Event.Listener);
Object.extend(MultiSwapView.prototype,{_view:null,_viewmasters:[],_baseTriggerClassName:null,_baseSelectorClassName:null,_currentViewmasterId:false,_selectedIds:[],nextSelectedId:null,triggerClassName:null,viewsToSet:[],_currentViewIndex:0,initialize:function(){},viewmasters:function(){return this._viewmasters
},currentViewIndex:function(){return this._currentViewIndex},currentBaseViewCount:function(){return this._currentBaseViewCount
},setValueForKey:function(b,a){this[a]=b},setDelegate:function(a){this._delegate=a
},setView:function(c,a,b){if(!this._currentViewmasterId){this._currentViewmasterId=c
}if(typeof(a)!=="string"){a=a.id}this.viewsToSet.push({id:c,view:a,triggerClassName:b})
},draw:function(a){this._currentViewIndex=a=a||this._currentViewIndex;this.setSwapViewWithTriggerClassName(this.viewsToSet[a].id,this.viewsToSet[a].view,this.viewsToSet[a].triggerClassName)
},setBaseTriggerAndSelectorClassNames:function(b,a){this._baseTriggerClassName=b;
this._baseSelectorClassName=a;Event.observe(document,"click",this._baseTriggerClicked.bindAsEventListener(this))
},_baseTriggerClicked:function(a){var b=a.element();if(AC.Detector.isIEStrict()&&a.type==="mouseup"){if(b&&b.nodeName.toUpperCase()==="A"){b=b.down("."+this._baseTriggerClassName)
}}else{while(b&&b.nodeName.toUpperCase()!=="A"&&b.nodeName.toUpperCase()!=="BODY"){b=b.parentNode
}}if(b&&b.href&&Element.Methods.hasClassName(b,this._baseTriggerClassName)){Event.stop(a);
this._currentBaseViewCount=0;this._currentViewmasterId=this._viewmasters[0].id;
this.nextSelectedId=null;this.baseTriggerClicked(b)}else{return}},baseTriggerClicked:function(e){var b=false,d=0,a,c=this;
while(b===false&&d<this._viewmasters.length){b=(this._viewmasters[d].id===this._currentViewmasterId)?this._viewmasters[d]:false;
d++}a=this.getSelectedViewIdForHref_selectedViewAtIndex_andTriggerClassName_(e.href,this._currentBaseViewCount,b.triggerClassName,true);
if(b!==false&&a){this._currentViewmasterId=a;var f=b.viewmaster.sectionWithId(a);
b.viewmaster.show(f,true)}this._currentBaseViewCount++},setSwapViewWithTriggerClassName:function(f,a,c){var e=(this._delegate&&typeof this._delegate.willSetSwapView==="function")?this._delegate.willSetSwapView(this,a,c):this.willSetSwapView(a,c),d,b=false;
if(this._viewmasters.length==0){b=true}d=new AC.ViewMaster.Viewer(null,a,c,{initialId:e,shouldAnimateContentChange:false,alwaysShowSection:true,silentTriggers:true,ensureInView:b});
this._viewmasters.push({id:f,viewmaster:d,view:a,triggerClassName:c});(this._delegate&&typeof this._delegate.didSetSwapView==="function")?this._delegate.didSetSwapView(this,a,c):this.didSetSwapView(a,c)
},willSetSwapView:function(a,b){return this.getSelectedViewIdForHref_selectedViewAtIndex_andTriggerClassName_(window.location.href,this._currentViewIndex,b)
},didSetSwapView:function(a,b){Event.Listener.listenForEvent(AC.ViewMaster,"ViewMasterDidShowNotification",false,function(c){this.currentTrigger=(c.event_data.data.trigger)?c.event_data.data.trigger:this.currentTrigger;
var d=parseInt(this._currentViewIndex+1);Element.addClassName(this.currentTrigger,"visited");
if(this._viewmasters.length>d){this.draw(d)}}.bindAsEventListener(this))},getSelectedViewIdForHref_selectedViewAtIndex_andTriggerClassName_:function(b,j,c,h){var f,e=$$("."+c),a,g,d=0;
if(b.indexOf("#")>0&&!this.nextSelectedId){this._selectedIds=b.split("#")[1].split(".");
a=this._selectedIds[j];this.nextSelectedId=(this._selectedIds[j+1])?this._selectedIds[j+1]:null
}else{if(this.nextSelectedId!==null){a=this.nextSelectedId;if(b.indexOf("#")>0){this._selectedIds=b.split("#")[1].split(".");
this.nextSelectedId=(this._selectedIds[j+1])?this._selectedIds[j+1]:null}else{this.nextSelectedId=null
}}}g=e.find(function(i){return(b.indexOf("#")&&(a===i.href.split("#")[1]))?true:false
});f=(!g&&e.length>0)?e[0].href.split("#")[1]:a;if(h&&!this.nextSelectedId){this.nextSelectedId=this.getSelectedViewIdForHref_selectedViewAtIndex_andTriggerClassName_(b,(j+1),c)
}e.each(function(i){if(i.href.split("#")[1]===f){this.currentTrigger=i}}.bind(this));
return f}});
