var TabSet=new Class({options:{defTab:null,initFx:null,evType:null,style:{tab:null,targ:null},tabStyle:null,targStyle:null,procArg:null,exclusive:true,toggle:false,inject:false,pageLink:null,autoWidth:null,zMod:null,frid:null,cookie:null},initialize:function(F,D){this._tabSet={};
this._tabOrder=[];this._nSet=0;this._curTab=null;this._config={};this._zMod=null;this._zOrder=null;this._frid=null;this._cookie=null;if(!$defined(F)){return}this.setOptions(D);var A=this._initOpt();var E=true;
if(!A.acts){A.acts=A.defs;E=false}F=this._confirmSetConfig(F);var C=this._initTab(F,A);if(E&&C.length<=0){for(var B in A.defs){if(this._tabSet[B]){C.push(B)}}}C.each(function(G){this._activateTab({idTab:G},this._config.evType&TabSet.EvType.both,!A.initFx["active"],true)
},this)},_confirmSetConfig:function(G){if($type(G)=="array"&&$type(G[0])!="object"){var E={};var B=[];var F=false;if(G.length==5){F=true;E={idTab:G[0],tab:G[1],idTarg:G[2],targ:G[3]};B=G[4].split("-")}
else{
E={idTab:G[0],idTarg:G[1]};
B=G[2].split("-")
};
B[1]>B[0]||B.reverse();G=[];var D=function(J,I,H){if($type(J)=="array"){return J[H]}return J+String(I)};for(var C=B[0],A=0;C<=B[1];C++,A++){if(F){G.push({idTab:D(E.idTab,C,A),tab:D(E.tab,C,A),idTarg:D(E.idTarg,C,A),targ:D(E.targ,C,A)})
}else{G.push({idTab:E.idTab+C,idTarg:E.idTarg+C})}}}else{if($type(G)=="object"){G=(function(I){var H=[];for(var J in I){H.push({idTab:J,idTarg:I[J]})}return H})(G)}}G.each(function(H){if(!$defined(H.tab)){H.tab=H.idTab
}if(!$defined(H.targ)){H.targ=H.idTarg}});return G},_initOpt:function(){if($type(this.options.style)!="object"){this.options.style={}}if($type(this.options.tabStyle)!="object"){this.options.tabStyle=null
}if($type(this.options.targStyle)!="object"){this.options.targStyle=null}if($type(this.options.procArg)!="object"){this.options.procArg=null}if($type(this.options.initFx)!="object"){this.options.initFx={}
}this._config.style=DuHash.copyObj(this.options.style);if(!this._config.style["tab"]){this._config.style["tab"]=DuStyle.Setup.none()}if(!this._config.style["targ"]){this._config.style["targ"]=DuStyle.Setup.block()
}this._config.tabStyle=this.options.tabStyle;this._config.targStyle=this.options.targStyle;this._config.evType=(this.options.evType&TabSet.EvType.both?this.options.evType:TabSet.EvType.click);this._config.exclusive=!!this.options.exclusive;
this._config.bToggle=(((!this._config.exclusive&&!(this._config.evType&TabSet.EvType.mouseleave))||this.options.toggle)?true:false);this._config.bInject=!!this.options.inject;this._config.targHide=(this.options.targHide&&(this._config.evType&TabSet.EvType.mouseenter&&this._config.evType&TabSet.EvType.mouseleave)?true:false);
this._config.pageLink=($type(this.options.pageLink)=="object"&&(this.options.pageLink.prev||this.options.pageLink.next)?this.options.pageLink:null);if(this.options.autoWidth){var H=this.options.autoWidth;
if($type(H)!="object"){this._config.autoWidth={mod:H}}else{this._config.autoWidth=($defined(H.mod)||$defined(H.min)||$defined(H.max)?H:null)}}if(this.options.zMod){this._zMod={};this._zOrder={};var C=this.options.zMod;
if($type(C)!="object"){if($type(C)!="number"){C=10}this._zMod={tab:{base:C,add:1},targ:{base:C,add:1}};this._zOrder={tab:{},targ:{}}}else{if(!$defined(C.tab)&&!$defined(C.targ)){C.tab=C.targ=DuHash.copyObj(C)
}["tab","targ"].each(function(I){if($defined(C[I])){this._zMod[I]={};this._zOrder[I]={};if($type(C[I])!="object"){this._zMod[I]={base:C[I],add:1}}else{if($defined(C[I]["base"])){this._zMod[I]["base"]=C[I]["base"]
}this._zMod[I]["add"]=($defined(C[I]["add"])?C[I]["add"]:1)}}},this)}}var B=function(J){var I={};if($type(J)!="array"){return I}J.each(function(K){if($chk(K)){I[K]=true}});return I};var F=null;if($defined(this.options.defTab)&&this.options.defTab!==true){F={};
F[this.options.defTab]=true}var G=null;var E=[];this.options.cookie=($type(this.options.cookie)=="object"&&$type(this.options.cookie.obj)=="object"?this.options.cookie:null);if(this.options.cookie){this._cookie={};
this._cookie.obj=this.options.cookie.obj;this._cookie.key=($chk(this.options.cookie.key)?this.options.cookie.key:"tabset");this._cookie.options=($type(this.options.cookie.options)=="object"?this.options.cookie.options:null);
this._cookie.init=($defined(this.options.cookie.init)?!!this.options.cookie.init:true);this._cookie.update=($defined(this.options.cookie.update)?!!this.options.cookie.update:true);var D=this._cookie.obj.get(this._cookie.key);
if($chk(D)){E=D.split("&")}if(this._cookie.init&&E){G=B(E)}}this.options.frid=($type(this.options.frid)=="object"&&$type(this.options.frid.obj)=="object"?this.options.frid:null);if(this.options.frid){this._frid={};
this._frid.obj=this.options.frid.obj;this._frid.key=($defined(this.options.frid.key)?this.options.frid.key:"tabset");this._frid.init=($defined(this.options.frid.init)?this.options.frid.init:true);this._frid.update=($defined(this.options.frid.update)?!!this.options.frid.update:true);
if(this._frid.key==""){E=this._frid.obj.getKeys().filter(function(I){if(!$chk(I)){return false}return(this._frid.obj.getOpt(I)===true?true:false)},this)}else{E=this._frid.obj.getOpt(this._frid.key,true)
}if(this._frid.init&&E){G=B(E);if($type(this._frid.init)=="string"&&!window.ie){var A=$(this._frid.init);if(A){A.scrollIntoView()}}}}return{acts:G,defs:F,initFx:this.options.initFx,defAct:(this.options.defTab===true?true:false)}
},_createStyle:function(B,A){if(!A){return}return(A.fx?new DuStyle.Fx(B,A):new DuStyle(B,A))},_disableLink:function(B){var A=($type(B)=="array"?B:[B]);A.each(function(E,C){var D=E.getElements("a");if(E.tagName.toLowerCase()=="a"){D.push(E)
}D.each(function(F){F.addEvent("click",function(G){G.preventDefault()}.bindWithEvent())})})},_initTabEvent:function(A){if(!this._tabSet[A]){return}var B=this._tabSet[A];var C=(B.tabs?B.tabs:[B.tab]);if(this._config.evType&TabSet.EvType.click){C.each(function(E,D){E.addEvent("click",this._toggleTab.bindWithEvent(this,[{idTab:A,idxTabItem:D},TabSet.EvType.click]))
},this)}if(this._config.evType&TabSet.EvType.mouseover){C.each(function(E,D){if(this._config.evType&TabSet.EvType.mouseenter){E.addEvent("mouseenter",this._toggleTab.bindWithEvent(this,[{idTab:A,idxTabItem:D},TabSet.EvType.mouseenter]))
}if(this._config.evType&TabSet.EvType.mouseleave){E.addEvent("mouseleave",this._outTab.bindWithEvent(this,[{idTab:A,idxTabItem:D}]))}},this)}if(this._config.targHide&&B.targ){B.targ.addEvent("mouseover",this._overTarg.bindWithEvent(this,[{idTab:A}]))
}},_initZmod:function(A,B){B.zDef={};["tab","targ"].each(function(C){if(!B[C]||!$defined(this._zMod[C])){return}if($defined(this._zMod[C]["base"])){B[C].setStyle("z-index",this._zMod[C]["base"])}B.zDef[C]=B[C].getStyle("z-index");
if(B.zDef[C]!="auto"){B.zDef[C]=Number(B.zDef[C]);this._zOrder[C][A]=0}},this)},_initPageLink:function(){if(!this._tabOrder||!this._config.pageLink){return}this._tabOrder.each(function(A,C){var B=this._tabSet[A]["targ"];
if(!B){return}["prev","next"].each(function(E){var D=null;if(E=="prev"&&C-1>=0){D=this._tabOrder[C-1]}else{if(E=="next"&&C+1<this._tabOrder.length){D=this._tabOrder[C+1]}}if(D==null){return}B.getElementsBySelector(this._config.pageLink[E]).each(function(F){F.addEvent("click",this._pageLink.bindWithEvent(this,[D,E]))
},this)},this)},this);this._config.pageLink["topElem"]=null;if(this._config.pageLink["top"]){elem=$(this._config.pageLink["top"]);if(elem){this._config.pageLink["topElem"]=elem}}},_initTab:function(H,C,L){var J=[];
for(var E=0;E<H.length;E++){var B=H[E]["idTab"];var G=H[E]["idTarg"];var F=H[E]["tab"];var K=H[E]["targ"];var A=$(F);var I=$(K);if(!A){continue}this._nSet++;this._tabOrder.push(B);this._tabSet[B]={index:E,tab:A,targ:I,idTarg:G,state:TabSet.EvType.none};
this._initTabEvent(B);if(this._config.evType&TabSet.EvType.disableLink){this._disableLink(A)}if(this._config.bInject&&I){I.injectInside(A)}if(this._config.autoWidth&&I){DuStyle.Tools.autoWidth(I,(this._config.autoWidth["mod"]===true?null:this._config.autoWidth["mod"]),this._config.autoWidth["min"],this._config.autoWidth["max"])
}if(this._zMod){this._initZmod(B,this._tabSet[B])}this._tabSet[B]["tabStyle"]=this._createStyle(A,(this._config.tabStyle&&this._config.tabStyle[B]?this._config.tabStyle[B]:this._config.style["tab"]));if(I){this._tabSet[B]["targStyle"]=this._createStyle(I,(this._config.targStyle&&this._config.targStyle[G]?this._config.targStyle[G]:this._config.style["targ"]))
}this._tabSet[B]["procArg"]=(this.options.procArg&&this.options.procArg[B]?this.options.procArg[B]:null);var D=C.acts;if((!(this._config.exclusive&&J.length>=1)&&$defined(D)&&$defined(D[B]))||(!$defined(D)&&C.defAct)){J.push(B)
}else{this._deactivateTab({idTab:B},!C.initFx["inactive"],true)}B++}this._initPageLink();return J},_pageLink:function(B,A,C){B.preventDefault();this._toggleTab(B,{idTab:A,idxTabItem:0},TabSet.EvType.click);
if(this._tabSet[A]){if(this._config.pageLink["topElem"]){this._config.pageLink["topElem"].scrollIntoView(true)}else{this._tabSet[A]["targ"].scrollIntoView(true)}}},_clickProc:function(A){var B=this._tabSet[A.idTab]["state"];
if(B&TabSet.EvType.click){this._config.bToggle&&this._deactivateTab(A)}else{if(B&TabSet.EvType.mouseenter){this._tabSet[A.idTab].state|=TabSet.EvType.click}else{this._activateTab(A,TabSet.EvType.click)
}}},_overProc:function(A){var B=this._tabSet[A.idTab]["state"];if(this._config.bToggle&&(B&TabSet.EvType.both)==TabSet.EvType.mouseenter){this._deactivateTab(A)}else{if(!B){this._activateTab(A,TabSet.EvType.mouseenter)
}}},_toggleTab:function(B,D,F){if(!this._tabSet[D.idTab]){return false}if(this._config.targHide&&F&TabSet.EvType.mouseenter&&this._tabSet[D.idTab]["targHide"]){return true}var G=(F&TabSet.EvType.click?this._clickProc:this._overProc);
if(this._config.exclusive){for(var A in this._tabSet){if(A==D.idTab){continue}if(this._tabSet[A]["state"]||this._config.exclusive!==true){this._deactivateTab({idTab:A},this._config.exclusive!==true)}}}G.call(this,D);
if(!(F&TabSet.EvType.click||this._config.bToggle)){return true}var C=[];for(A in this._tabSet){if(this._tabSet[A]["state"]){C.push(A)}}if(this._cookie&&this._cookie.update){this._cookie.obj.set(this._cookie.key,C.join("&"),this._cookie.options)
}if(this._frid&&this._frid.update){if(this._frid.key==""){$each(this._tabSet,function(H,I){this._frid.obj.removeOpt(I)},this);var E={};C.each(function(H){E[H]=true});this._frid.obj.setOpts(E).updateFrid()
}else{this._frid.obj.setOpt(this._frid.key,C).updateFrid()}}},_outTab:function(A,B){if(!this._tabSet[B.idTab]){return false}if(this._tabSet[B.idTab]["targHide"]){this._tabSet[B.idTab]["targHide"]=false
}var C=this._tabSet[B.idTab]["state"];if(this._config.bToggle){if((this._config.evType&TabSet.EvType.click)&&(C&TabSet.EvType.both)==TabSet.EvType.mouseenter){this._deactivateTab(B)}}else{if(!(C&TabSet.EvType.click)){this._deactivateTab(B)
}}return true},_overTarg:function(C,B){if(!this._tabSet[B.idTab]){return false}var A=this._tabSet[B.idTab];if(!A.targHide){A.targHide=true;this._deactivateTab(B)}},_zModify:function(A){if(!this._zMod){return
}var B=this._tabSet[A];["tab","targ"].each(function(E){var C=this._zOrder[E];if(!B[E]||!this._zMod[E]||!$defined(C[A])){return}var D=C[A];for(var F in C){if(F==A){C[F]=this._nSet-1}else{if(C[F]>D){C[F]--
}}this._tabSet[F][E].setStyle("z-index",B.zDef[E]+C[F]*this._zMod[E]["add"])}},this)},_activateTab:function(C,E,D,A){var B=this._tabSet[C.idTab];if(!$defined(B)){return false}this._curTab=C.idTab;this._zModify(C.idTab);
B.state=E;B.tabStyle.activate(B.procArg,D);if(B.targStyle){B.targStyle.activate(B.procArg,D)}return true},_deactivateTab:function(C,D,A){var B=this._tabSet[C.idTab];if(!$defined(B)){return false}if(C.idTab==this._curTab){this._curTab=null
}B.state=TabSet.EvType.none;if(B.targStyle){B.targStyle.deactivate(B.procArg,D)}B.tabStyle.deactivate(B.procArg,D);return true}});TabSet.implement(new Options);TabSet.EvType=new Abstract({none:0,click:1,mouseenter:2,mouseleave:4,disableLink:8,both:3,mouseover:6,stillClick:9});
TabSet.MultiTab=TabSet.extend({options:{tabSA:null},initialize:function(B,A){this._tabSA=false;this.parent(B,A)},_initTab:function(I,C,N){this._tabSA=(this.options.tabSA?true:false);var K=[];for(var E=0;
E<I.length;E++){var B=I[E]["idTab"];var G=I[E]["idTarg"];var F=I[E]["tab"];var M=I[E]["targ"];var L=$$(F);if(L.length<=0){L=$(F);if(!L){continue}L=[L]}var J=$(M);var A=L[0];this._nSet++;this._tabOrder.push(B);
this._tabSet[B]={index:E,tab:A,tabs:L,targ:J,actTab:0,state:TabSet.EvType.none};this._initTabEvent(B);if(this._config.evType&TabSet.EvType.disableLink){this._disableLink(L)}if(this._config.bInject&&J){J.injectInside(A)
}if(this._config.autoWidth&&J){DuStyle.Tools.autoWidth(J,(this._config.autoWidth["mod"]===true?null:this._config.autoWidth["mod"]),this._config.autoWidth["min"],this._config.autoWidth["max"])}if(this._zMod){this._initZmod(B,this._tabSet[B])
}this._tabSet[B]["tabStyle"]=[];var H=(this._config.tabStyle&&$type(this._config.tabStyle[B])=="object"?this._config.tabStyle[B]:this._config.style["tab"]);this._tabSet[B]["tabs"].each(function(P,O){this._tabSet[B]["tabStyle"].push(this._createStyle(P,(this._config.tabStyle&&this._config.tabStyle[B]&&this._config.tabStyle[B][O]?this._config.tabStyle[B][O]:H)))
},this);this._tabSet[B]["targStyle"]=this._createStyle(J,(this._config.targStyle&&this._config.targStyle[G]?this._config.targStyle[G]:this._config.style["targ"]));this._tabSet[B]["procArg"]=(this.options.procArg&&this.options.procArg[B]?this.options.procArg[B]:null);
var D=C.acts;if((!(this._config.exclusive&&K.length>=1)&&$defined(D)&&$defined(D[B]))||(!$defined(D)&&C.defAct)){K.push(B)}else{this._deactivateTab({idTab:B},!C.initFx["inactive"],true)}}return K},_initZmod:function(A,B){B.zDef={};
["tab","targ"].each(function(C){if(!B[C]||!$defined(this._zMod[C])){return}if(C=="tab"){B.tabs.each(function(D){if($defined(this._zMod[C]["base"])){D.setStyle("z-index",this._zMod[C]["base"])}},this)}else{if($defined(this._zMod[C]["base"])){B[C].setStyle("z-index",this._zMod[C]["base"])
}}B.zDef[C]=B[C].getStyle("z-index");if(B.zDef[C]!="auto"){B.zDef[C]=Number(B.zDef[C]);this._zOrder[C][A]=0}},this)},_zModify:function(A){if(!this._zMod){return}var B=this._tabSet[A];["tab","targ"].each(function(F){var D=this._zOrder[F];
if(!B[F]||!this._zMod[F]||!$defined(D[A])){return}var E=D[A];for(var G in D){if(G==A){D[G]=this._nSet-1}else{if(D[G]>E){D[G]--}}var C=B.zDef[F]+D[G]*this._zMod[F]["add"];if(F=="tab"){this._tabSet[G]["tabs"].each(function(H){H.setStyle("z-index",C)
},this)}else{this._tabSet[G][F].setStyle("z-index",C)}}},this)},_activateTab:function(D,F,E,A){var B=this._tabSet[D.idTab];if(!$defined(B)){return false}if(this._config.bInject&&B.actTab!=D.idxTabItem){var C=B.tabs[D.idxTabItem];
if($type(C)=="element"){B.targ.injectInside(C)}}B.actTab=($defined(D.idxTabItem)?D.idxTabItem:0);this._zModify(D.idTab);B.state=F;B.tabStyle.each(function(H,G){if(this._tabSA&&$defined(D.idxTabItem)&&D.idxTabItem!=G){return
}H.activate(B.procArg,E)},this);if(B.targStyle){B.targStyle.activate(B.procArg,E)}return true},_deactivateTab:function(C,D,A){var B=this._tabSet[C.idTab];if(!$defined(B)){return false}B.state=TabSet.EvType.none;
if(B.targStyle){B.targStyle.deactivate(B.procArg,D)}B.tabStyle.each(function(E){E.deactivate(B.procArg,D)});return true}});TabSet.ProcTarg=TabSet.extend({initialize:function(B,A){this.parent(B,A)},_initTab:function(H,C,J){var I=[];
for(var F=0;F<H.length;F++){var B=H[F]["idTab"];var G=H[F]["tab"];var E=H[F]["targ"];var A=$(G);if(!A){continue}this._nSet++;this._tabOrder.push(B);this._tabSet[B]={index:F,tab:A,targ:E,state:TabSet.EvType.none};
this._initTabEvent(B);if(this._config.evType&TabSet.EvType.disableLink){this._disableLink(A)}if(this._zMod){this._initZmod(B,this._tabSet[B])}this._tabSet[B]["tabStyle"]=this._createStyle(A,(this._config.tabStyle&&this._config.tabStyle[B]?this._config.tabStyle[B]:this._config.style["tab"]));
this._tabSet[B]["procArg"]=(this.options.procArg&&this.options.procArg[B]?this.options.procArg[B]:null);var D=C.acts;if((!(this._config.exclusive&&I.length>=1)&&$defined(D)&&$defined(D[B]))||(!$defined(D)&&C.defAct)){I.push(B)
}else{this._deactivateTab({idTab:B},!C.initFx["inactive"],true)}}return I},_activateTab:function(C,E,D,A){var B=this._tabSet[C.idTab];if(!$defined(B)){return false}this._zModify(C.idTab);B.state=E;B.tabStyle.activate(B.procArg,D);
if($type(B.targ)=="function"){B.targ(true,B,C,D)}return true},_deactivateTab:function(C,D,A){var B=this._tabSet[C.idTab];if(!$defined(B)){return false}B.state=TabSet.EvType.none;if($type(B.targ)=="function"){B.targ(false,B,C,D)
}B.tabStyle.deactivate(B.procArg,D);return true}});TabSet.Ga=TabSet.extend({_initOpt:function(){this.gaCtrlInit(this.options.gaTrack);return this.parent()},_activateTab:function(B,D,C,A){if(!this.parent(B,D,C,A)){return false
}if(!A){this.gaCtrlTrack(B.idTab)}return true}});TabSet.Ga.implement(new DuGaCtrl);TabSet.MultiTab.Ga=TabSet.MultiTab.extend({_initOpt:function(){this.gaCtrlInit(this.options.gaTrack);return this.parent()
},_activateTab:function(B,D,C,A){if(!this.parent(B,D,C,A)){return false}if(!A){this.gaCtrlTrack(B.idTab)}return true}});TabSet.MultiTab.Ga.implement(new DuGaCtrl);TabSet.ProcTarg.Ga=TabSet.ProcTarg.extend({_initOpt:function(){this.gaCtrlInit(this.options.gaTrack);
return this.parent()},_activateTab:function(B,D,C,A){if(!this.parent(B,D,C,A)){return false}if(!A){this.gaCtrlTrack(B.idTab)}return true}});TabSet.ProcTarg.Ga.implement(new DuGaCtrl);