Rico.Accordion=Class.create(); Rico.Accordion.prototype={initialize:function(a,c){if(this.container=$(a)){this.lastExpandedTab=null;this.accordionTabs=[];this.setOptions(c);this._attachBehaviors();if(this.options.tabLocation=="inline"&&!this.options.fixborders)this.container.style.borderBottom="1px solid "+this.options.borderColor;if(this.options.onLoadShowTab>=this.accordionTabs.length)this.options.onLoadShowTab=0;for(var e=this.options.panelHeight=="auto",b=0;b<this.accordionTabs.length;b++){this.accordionTabs[b].content.style.display="inline"; this.accordionTabs[b].content.style.margin="0px";if(b!=this.options.onLoadShowTab){this.accordionTabs[b].collapse();this.accordionTabs[b].content.style.display="none";this.accordionTabs[b].content.style.height="1px";this.accordionTabs[b].content.style.overflowY=this.options.panelHeight=="auto"?"hidden":"auto"}else{this.accordionTabs[b].showExpanded(e);this.accordionTabs[b].content.style.display="block";if(this.options.panelHeight=="auto")this.accordionTabs[b].content.style.height=this.accordionTabs[b].content.scrollHeight+ "px";else{this.accordionTabs[b].content.style.overflowY="auto";this.accordionTabs[b].content.style.height=this.options.panelHeight+"px"}this.lastExpandedTab=this.accordionTabs[b]}this.accordionTabs[b].content.style.overflowX="hidden"}}},setOptions:function(a){this.options={expandedBg:"#63699c",hoverBg:"#63699c",collapsedBg:"#6b79a5",expandedTextColor:"#ffffff",expandedFontWeight:"bold",hoverTextColor:"#ffffff",collapsedTextColor:"#ced7ef",collapsedFontWeight:"normal",borderColor:"#ff0000",panelHeight:200, onShowTab:null,onLoadShowTab:0,tabLocation:"inline",tabSpacing:"1",panelWidth:0,mode:"normal",roundCorners:false,fixborders:false,expandedBgImg:false,collapsedBgImg:false,tabLocations:"inline",hoverImg:false,duration:false,transitionColor:false,expandedFontWeight:"bold",expandedBorderBottom:"1px solid #000000",expandedBorderLeft:"3px solid #000000",collapsedBorderBottom:"1px solid #000000",collapsedBorderLeft:"3px solid #000000"};Object.extend(this.options,a||{})},showTabByIndex:function(a,c){var e= arguments.length==1?true:c;if(a<this.accordionTabs.length&&a>=0)this.showTab(this.accordionTabs[a],e);else a<0&&this.showTabHide(this.accordionTabs.length-1,"desc")},showTabHide:function(a,c){c||(c="desc");var e=this,b;if(c=="desc"&&a>=0||c=="asc"&&a<e.accordionTabs.length){var d;d=c=="desc"?a-1:a+1;b=this.accordionTabs[a];if(parseInt(b.content.offsetHeight)<=2?true:false)e.showTabHide(d);else{b.content.style.display="";new Rico.Effect.AccordionSize(b.content,this.options.panelHeight,100,10,{mode:"free", complete:function(){e.showTabHide(d)}})}}else{for(var g=0;g<=this.accordionTabs.length-1;g++){b=this.accordionTabs[g];e.showTabDone(b,false,true,{showCollapsed:function(){}})}this.lastExpandedTab=null}},showTab:function(a,c){var e=this.options.tabLocation=="inline"&&(arguments.length==1?true:c),b=parseInt(a.content.offsetHeight)<=2?true:false,d=this,g=this.lastExpandedTab,h,f,k=this.options.panelHeight,j=this.options.transitionColor;if(!this.lastExpandedTab)this.lastExpandedTab=a;a.content.style.display= "";if(!(this.options.mode=="free"&&e)&&k!="auto"&&e&&a.content.offsetHeight<=5&&this.lastExpandedTab.content.offsetHeight>5)this.lastExpandedTab.content.style.height=this.lastExpandedTab.content.offsetHeight-1+"px";this.lastExpandedTab.content.style.overflowY=this.options.mode=="free"&&e&&this.lastExpandedTab!=a?"auto":"hidden";var i=1;if(RicoUtil.isIE)i=1.3;if(k=="auto"){h=a.content.scrollHeight+f;f=parseInt(this.lastExpandedTab.content.scrollHeight)+f;f=5;a.content.style.overflowY="hidden";h=a.content.scrollHeight+ f;f=this.lastExpandedTab.content.scrollHeight+f;if(this.options.duration)duration2=duration=this.options.duration*i;else{duration=parseInt(h*i);duration2=parseInt(f*i)}}else{a.content.style.overflowY="hidden";f=h=k;if(this.options.duration)duration2=duration=this.options.duration*i;else duration=duration2=parseInt(h*i)}if(this.options.mode=="free"&&e)new Rico.Effect.AccordionSize(a.content,h,duration,duration/10,{mode:this.options.mode,color:j,complete:function(){d.showTabDone(a,b,true,{showCollapsed:function(){}})}}); else if(this.lastExpandedTab==a)if(this.options.onLoadShowTab==-2&&e||b||this.options.mode=="free"&&!e){a.content.style.overflowY="hidden";new Rico.Effect.AccordionSize(a.content,h,duration,duration/10,{mode:"free",color:j,complete:function(){d.showTabDone(a,b,true,{showCollapsed:function(){}})}});if(!b)this.lastExpandedTab=false}else a.content.style.overflowY="auto";else if(k=="auto"){a.content.style.display="none";new Rico.Effect.AccordionSize(g.content,f,duration2,duration2/10,{mode:"free",color:j, complete:function(){a.showExpanded(true);g.showCollapsed(true,true);a.content.style.display="";g.content.style.display="none";new Rico.Effect.AccordionSize(a.content,h,duration,duration/10,{mode:"free",color:j,complete:function(){g.content.style.display="";d.showTabDone(a,b,true,g)}})}});this.lastExpandedTab=a}else if(e){new Rico.Effect.AccordionSize(this.lastExpandedTab.content,h+1,duration,duration/10,{couple:a.content,mode:this.options.mode,color:j,complete:function(){d.showTabDone(a,b,true,g)}}); this.lastExpandedTab=a}else{if(this.options.mode=="free"||b)this.showTabDone(a,b,false,g);if(b)this.lastExpandedTab=a}},showTabDone:function(a,c,e,b){var d=this.options.panelHeight=="auto";if(c){a.showExpanded(d);b.showCollapsed();if(!e)if(a!=b){b.content.style.height="1px";b.content.style.display="none"}if(!d)a.content.style.height=this.options.panelHeight+"px"}else if(this.options.mode=="free"){a.showCollapsed();if(!e){a.content.style.height="1px";b.content.style.height="1px";a.content.style.display= "none";b.content.style.display="none"}}else if(e){if(a!=b){a.showCollapsed();a.content.style.height="1px";a.content.style.display="none"}}else{b.content.style.height="1px";b.content.style.display="none";b.showCollapsed();a.showExpanded(d)}this.options.onShowTab&&this.options.onShowTab(this.lastExpandedTab)},_attachBehaviors:function(){var a=this._getDirectChildrenByTag(this.container,"DIV"),c=null,e=null;if(this.options.tabLocation!="inline"){c=document.createElement("div");c.style.border="1px solid "+ this.options.borderColor;c.style.clear="both";this.container.insertBefore(c,this.container.firstChild);e=document.createElement("div");e.style.overflowY="hidden";e.style.backgroundColor="transparent";if(this.options.tabLocation=="top")this.container.insertBefore(e,this.container.firstChild);else this.options.tabLocation=="bottom"&&this.container.appendChild(e);this.container.style.overflowY="hidden"}for(var b=0;b<a.length;b++){var d=this._getDirectChildrenByTag(a[b],"DIV");if(d.length!=2)alert("Warning: panel "+ b+" has "+d.length+" children (expected 2");else{var g=d[0],h=d[1];if(this.options.tabLocation!="inline"){var f;f=g.textContent?g.textContent:g.innerText;f=f.replace(/^\s*|\s*$/g,"");f.substring(0,10);g.overflow="hidden";h.style.clear="left";h.style.overflowX="hidden";c.appendChild(h);g.style.padding="0px";if(this.options.roundCorners)if(this.options.tabLocation=="top")g.style.marginTop="-5px";else if(this.options.tabLocation=="bottom")g.style.marginBottom="-5px";f=document.createElement("div");f.appendChild(g); if(RicoUtil.isIE)f.style.styleFloat="left";else f.style.cssFloat="left";f.style.textAlign="center";if(b>0)f.style.marginLeft=this.options.tabSpacing+"px";f.style.width=this.options.panelWidth?Math.floor(this.options.panelWidth)/(parseInt(d.length)+1)-(b>0?this.options.tabSpacing:0)<=300?Math.floor(this.options.panelWidth)/(d.length+2)-(b>0?this.options.tabSpacing:0)+"px":300/d.length:Math.floor(h.offsetWidth)/d.length<=300?Math.floor(h.offsetWidth)/d.length-(b>0?this.options.tabSpacing:0)+"px":300/ d.length;f.style.styleFloat="left";e.appendChild(f);this.options.roundCorners&&Rico.Corner.round(f,{corners:this.options.tabLocation,color:"transparent"});this.accordionTabs.push(new Rico.Accordion.Tab(this,f,h))}else this.accordionTabs.push(new Rico.Accordion.Tab(this,g,h))}}},_getDirectChildrenByTag:function(a,c){for(var e=[],b=a.childNodes,d=0;d<b.length;d++)b[d]&&b[d].tagName&&b[d].tagName==c&&e.push(b[d]);return e}};Rico.Accordion.Tab=Class.create(); Rico.Accordion.Tab.prototype={initialize:function(a,c,e){this.accordion=a;this.titleBar=c;this.content=e;this._attachBehaviors()},collapse:function(){this.showCollapsed();this.content.style.height="1px"},showCollapsed:function(a){this.expanded=false;if(this.accordion.options.collapsedBgImg)this.titleBar.style.backgroundImage="url("+this.accordion.options.collapsedBgImg+")";else this.titleBar.style.backgroundColor=this.accordion.options.collapsedBg;this.titleBar.style.color=this.accordion.options.collapsedTextColor; this.titleBar.style.fontWeight=this.accordion.options.collapsedFontWeight;this.titleBar.style.borderBottom=this.accordion.options.collapsedBorderBottom;this.titleBar.style.borderLeft=this.accordion.options.collapsedBorderLeft;this.titleBar.style.borderTop=this.accordion.options.collapsedBorderBottom;if(!a)this.content.style.display="none"},showExpanded:function(a,c){this.expanded=true;this.titleBar.style.fontWeight=this.accordion.options.expandedFontWeight;if(this.accordion.options.expandedBgImg)this.titleBar.style.backgroundImage= "url("+this.accordion.options.expandedBgImg+")";else this.titleBar.style.backgroundColor=this.accordion.options.expandedBg;this.titleBar.style.color=this.accordion.options.expandedTextColor;this.titleBar.style.fontWeight=this.accordion.options.expandedFontWeight;this.titleBar.style.fontWeight=this.accordion.options.expandedFontWeight;this.titleBar.style.borderBottom=this.accordion.options.expandedBorderBottom;this.titleBar.style.borderLeft=this.accordion.options.expandedBorderLeft;this.titleBar.style.borderTop= this.accordion.options.collapsedBorderBottom;if(!c){this.content.style.display="block";this.content.style.overflowY=a?"hidden":"auto";this.content.style.overflowX="hidden"}},titleBarClicked:function(){this.accordion.showTab(this)},hover:function(){if(this.accordion.options.hoverImg)this.titleBar.style.backgroundImage="url("+this.accordion.options.hoverImg+")";else this.titleBar.style.backgroundColor=this.accordion.options.hoverBg;this.titleBar.style.color=this.accordion.options.hoverTextColor},unhover:function(){if(this.expanded){if(this.accordion.options.expandedBgImg)this.titleBar.style.backgroundImage= "url("+this.accordion.options.expandedBgImg+")";else this.titleBar.style.backgroundColor=this.accordion.options.expandedBg;this.titleBar.style.color=this.accordion.options.expandedTextColor;this.titleBar.style.fontWeight=this.accordion.options.expandedFontWeight}else{if(this.accordion.options.collapsedBgImg)this.titleBar.style.backgroundImage="url("+this.accordion.options.collapsedBgImg+")";else this.titleBar.style.backgroundColor=this.accordion.options.collapsedBg;this.titleBar.style.color=this.accordion.options.collapsedTextColor}}, _attachBehaviors:function(){if(this.accordion.options.tabLocations=="inline")if(this.accordion.options.borderColor){this.content.style.border="1px solid "+this.accordion.options.borderColor;this.content.style.borderTopWidth="0px";this.content.style.borderRightWidth="0px";this.content.style.borderLeftWidth="3px";this.content.style.borderBottomWidth="0px";this.content.style.margin="0px";if(this.accordion.options.fixborders){var a=this.content.parentNode,c=document.createElement("div");c.style.borderTop= "0px solid "+this.accordion.options.borderColor;a.appendChild(c);c=document.createElement("div");c.style.borderBottom="1px solid "+this.accordion.options.borderColor;a.insertBefore(c,this.content)}}else if(this.accordion.options.fixborders!=true){this.content.style.border="0px";this.content.style.margin="0px";a=this.content.parentNode;c=document.createElement("div");c.style.height="5px";c.style.overflow="hidden";c.style.backgroundImage="url("+this.accordion.options.fixborders+")";c.style.backgroundRepeat= "no-repeat";a.appendChild(c)}Event.observe(this.titleBar,"click",this.titleBarClicked.bindAsEventListener(this));Event.observe(this.titleBar,"mouseover",this.hover.bindAsEventListener(this));Event.observe(this.titleBar,"mouseout",this.unhover.bindAsEventListener(this))}};Rico.Effect.AccordionSize=Class.create(); Rico.Effect.AccordionSize.prototype={initialize:function(a,c,e,b,d){this.e1=d.couple&&!d.free?$(d.couple):{offsetHeight:0,style:{height:0,display:0}};this.e2=$(a);this.size=this.e1.offsetHeight>this.e2.offsetHeight?this.e1.offsetHeight:this.e2.offsetHeight>1?this.e2.offsetHeight:c;this.options=d||{};if(this.options.color){this.color1=this.e1.style.color;this.color2=this.e2.style.color;this.e1.style.color=this.options.color;this.e2.style.color=this.options.color}this.mode=d.couple&&d.mode!="free"? parseInt(this.e1.offsetHeight)-parseInt(this.e2.offsetHeight)>=10?0:3:this.e2.offsetHeight<=10?2:1;if(this.diff=b>=0?parseInt((this.size-1)/b):0){realSize=this.diff*b;aditional=this.size-realSize;aditionalSteps=parseInt(aditional/this.diff);b+=aditionalSteps}this.counter=b;this.stepDuration=b>=0?Math.round(e/b):0;this.accordionSize()},accordionSize:function(){if(this.isFinished()){if(this.e1.style.height<=5)this.e1.style.height="1px";if(this.e2.style.height<=5)this.e2.style.height="1px";if(this.options.color){this.e1.style.color= this.color1;this.e2.style.color=this.color2}this.options.complete&&this.options.complete(this)}else{this.timer&&clearTimeout(this.timer);var a;a=this.counter<=1&&this.size-parseInt(this.e2.style.height)>=0?this.mode==0||this.mode==2?this.size-parseInt(this.e2.offsetHeight):-parseInt(this.e2.offsetHeight)+1:this.mode==0||this.mode==2?this.diff:-this.diff;var c=this.stepDuration;this.counter--;this.resizeBy(a);this.timer=setTimeout(this.accordionSize.bind(this),c)}},isFinished:function(){return this.counter<= 0},resizeBy:function(a){a=parseInt(a);if(this.mode==0||this.mode==3)var c=this.e1.offsetHeight;var e=this.e2.offsetHeight;if(parseInt(this.mode)==0||parseInt(this.mode)==3)this.e1.style.height=c-a+"px";this.e2.style.height=e+a+"px"}};
