﻿// (c) 2010 CodePlex Foundation
(function(){var b="ExtendedAccordion";function a(){var k="selectedIndexChanged",j="selectedIndexChanging",i="none",g="hidden",c="auto",f="px",h="block",b="",a=null,d=true,e=false;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.AutoSize=function(){throw Error.invalidOperation();};Sys.Extended.UI.AutoSize.prototype={None:0,Fill:1,Limit:2};Sys.Extended.UI.AutoSize.registerEnum("Sys.Extended.UI.AutoSize",e);Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs=function(b,a){Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs.initializeBase(this);this._oldIndex=b;this._selectedIndex=a};Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs.prototype={get_oldIndex:function(){return this._oldIndex},set_oldIndex:function(a){this._oldIndex=a},get_selectedIndex:function(){return this._selectedIndex},set_selectedIndex:function(a){this._selectedIndex=a}};Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs.registerClass("Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs",Sys.CancelEventArgs);Sys.Extended.UI.AccordionBehavior=function(f){var c=this;Sys.Extended.UI.AccordionBehavior.initializeBase(c,[f]);c._selectedIndex=0;c._panes=[];c._fadeTransitions=e;c._duration=.25;c._framesPerSecond=30;c._autoSize=Sys.Extended.UI.AutoSize.None;c._requireOpenedPane=d;c._suppressHeaderPostbacks=e;c._headersSize=0;c._headerClickHandler=a;c._headerCssClass=b;c._headerSelectedCssClass=b;c._resizeHandler=a;c._isIE8InStandardMode=Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version>7&&Sys.Browser.documentMode!=0};Sys.Extended.UI.AccordionBehavior.prototype={initialize:function(){var c=this;Sys.Extended.UI.AccordionBehavior.callBaseMethod(c,"initialize");c._headerClickHandler=Function.createDelegate(c,c._onHeaderClick);var h=c.get_ClientState();h!==a&&h!==b&&c._changeSelectedIndex(parseInt(h),e,d);var g=c.get_element().childNodes,f={};for(f.value=0;f.value<g.length;f.value++){var j=c._getNextDiv(g,f);if(!j)break;var i=c._getNextDiv(g,f);if(i){c.addPane(j,i);f.value--}}c._requireOpenedPane&&!c.get_Pane()&&c._panes.length>0&&c._changeSelectedIndex(0,e,d);c._initializeLayout()},_getNextDiv:function(d,c){var b=a;while(c.value<d.length&&(b=d[c.value++]))if(b.tagName&&b.tagName.toLowerCase()==="div")break;return b},addPane:function(g,f){var d=this,e={};e.animation=a;e.header=g;g._index=d._panes.length;$addHandler(g,"click",d._headerClickHandler);var i=d.get_element(),c=document.createElement("div");i.insertBefore(c,f);c.appendChild(f);c._original=f;e.content=c;c.style.border=b;c.style.margin=b;c.style.padding=b;Array.add(d._panes,e);d._initializePane(g._index);f.style.display=h;return e},_getAnimation:function(g){var c=this,b=g.animation;if(!b){var h=a,i=a;if(!c._fadeTransitions)b=h=new Sys.Extended.UI.Animation.LengthAnimation(g.content,c._duration,c._framesPerSecond,"style","height",0,0,f);else{h=new Sys.Extended.UI.Animation.LengthAnimation(a,a,a,"style","height",0,0,f);i=new Sys.Extended.UI.Animation.FadeAnimation(a,a,a,Sys.Extended.UI.Animation.FadeEffect.FadeOut,0,1,e);b=new Sys.Extended.UI.Animation.ParallelAnimation(g.content,c._duration,c._framesPerSecond,[i,h])}g.animation=b;b._length=h;b._fade=i;b._pane=g;b._opening=d;b._behavior=c;b._ended=Function.createDelegate(g.animation,c._onAnimationFinished);b.add_ended(g.animation._ended);b.initialize()}return b},_onAnimationFinished:function(){this._behavior._endPaneChange(this._pane,this._opening)},_initializeLayout:function(){var a=this;for(var d=0;d<a._panes.length;d++){var i=a._panes[d].animation;i&&i.get_isPlaying()&&i.stop()}var h=a.get_element();a._initialHeight=h.offsetHeight;var b=h.style;if(a._autoSize===Sys.Extended.UI.AutoSize.None){a._disposeResizeHandler();var e=Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version>=7;if(!e||e&&b.height&&b.height.length>0)b.height=c;if(!e||e&&b.overflow&&b.overflow.length>0)b.overflow=c}else{a._addResizeHandler();b.height=h.offsetHeight+f;b.overflow=g}for(var d=0;d<a._panes.length;d++)a._initializePane(d);a._resizeSelectedPane()},_initializePane:function(k){var a=this,l=a.get_Pane(k);if(!l)return;var d=l.content,e=d._original,f=k===a._selectedIndex;d.style.height=f||a._autoSize===Sys.Extended.UI.AutoSize.Fill?c:"0px";d.style.overflow=f?c:g;d.style.display=f?h:i;e.style.height=c;e.style.maxHeight=b;e.style.overflow=f?c:g;var j=f||!a._fadeTransitions?1:0;if(a._autoSize===Sys.Extended.UI.AutoSize.Fill){$common.getElementOpacity(e)!=j&&$common.setElementOpacity(e,j);$common.getElementOpacity(d)!=1&&$common.setElementOpacity(d,1)}else{$common.getElementOpacity(d)!=j&&$common.setElementOpacity(d,j);$common.getElementOpacity(e)!=1&&$common.setElementOpacity(e,1)}l.header.className=a._selectedIndex===k?a._headerSelectedCssClass||a._headerCssClass:a._headerCssClass},_addResizeHandler:function(){var a=this;if(!a._resizeHandler){a._resizeHandler=Function.createDelegate(a,a._resizeSelectedPane);$addHandler(window,"resize",a._resizeHandler)}},dispose:function(){var b=this;b._disposeResizeHandler();b._disposeAnimations();for(var d=b._panes.length-1;d>=0;d--){var c=b._panes[d];if(c){if(c.header){c.header._index=a;$removeHandler(c.header,"click",b._headerClickHandler);c.header=a}if(c.content){c.content._original=a;c.content=a}b._panes[d]=a;delete b._panes[d]}}b._panes=a;b._headerClickHandler=a;Sys.Extended.UI.AccordionBehavior.callBaseMethod(b,"dispose")},_disposeResizeHandler:function(){if(this._resizeHandler){$removeHandler(window,"resize",this._resizeHandler);this._resizeHandler=a}},_disposeAnimations:function(){for(var c=0;c<this._panes.length;c++){var b=this._panes[c].animation;if(b){b.get_isPlaying()&&b.stop();if(b._ended){b.remove_ended(b._ended);b._ended=a}b.dispose();b._length=a;b._fade=a;b._pane=a;b._opening=a;b._behavior=a;this._panes[c].animation=a}}},_resizeSelectedPane:function(){var g=this,i=g.get_Pane();if(!i)return;g._headersSize=g._getHeadersSize().height;var a=i.content._original;switch(g._autoSize){case Sys.Extended.UI.AutoSize.None:a.style.height=c;a.style.maxHeight=b;break;case Sys.Extended.UI.AutoSize.Limit:var h=g._getRemainingHeight(e);a.style.height=c;a.style.maxHeight=h+f;break;case Sys.Extended.UI.AutoSize.Fill:var h=g._getRemainingHeight(d);a.style.height=h+f;a.style.maxHeight=b}},_onHeaderClick:function(e){var b=this,a=e.target,f=b.get_element();while(a&&a.parentNode!==f)a=a.parentNode;e.stopPropagation();b._suppressHeaderPostbacks&&e.preventDefault();var c=a._index;if(c===b._selectedIndex&&!b._requireOpenedPane)c=-1;b._changeSelectedIndex(c,d)},_changeSelectedIndex:function(d,h,i){var a=this,c=a._selectedIndex,e=a.get_Pane(d),f=a.get_Pane(c);if(!i&&e==f)return;var g=new Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs(c,d);a.raiseSelectedIndexChanging(g);if(g.get_cancel())return;if(f)f.header.className=a._headerCssClass;if(e)e.header.className=a._headerSelectedCssClass==b?a._headerCssClass:a._headerSelectedCssClass;a._selectedIndex=d;a.set_ClientState(a._selectedIndex);h&&a._changePanes(c);a.raiseSelectedIndexChanged(new Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs(c,d));a.raisePropertyChanged("SelectedIndex")},_changePanes:function(j){var c=this;if(!c.get_isInitialized())return;for(var i=a,h=a,g=0;g<c._panes.length;g++){var f=c._panes[g],b=c._getAnimation(f);b.get_isPlaying()&&b.stop();if(g==c._selectedIndex){b._opening=d;i=b}else if(g==j){b._opening=e;h=b}else continue;c._startPaneChange(f,b._opening);c._fadeTransitions&&b._fade.set_effect(b._opening?Sys.Extended.UI.Animation.FadeEffect.FadeIn:Sys.Extended.UI.Animation.FadeEffect.FadeOut);if(c._autoSize===Sys.Extended.UI.AutoSize.Fill){b.set_target(f.content._original);b._length.set_startValue($common.getContentSize(f.content._original).height);b._length.set_endValue(b._opening?c._getRemainingHeight(d):0)}else{b.set_target(f.content);b._length.set_startValue(f.content.offsetHeight);b._length.set_endValue(b._opening?c._getRemainingHeight(e):0)}}h&&h.play();i&&i.play()},_startPaneChange:function(i,e){var d=this,c=i.content,a=c._original;if(e){c.style.display=h;if(d._autoSize===Sys.Extended.UI.AutoSize.Fill&&d._isIE8InStandardMode)a.style.display=h}else{c.style.overflow=g;a.style.overflow=g;if(d._autoSize===Sys.Extended.UI.AutoSize.Limit){c.style.height=d._getTotalSize(a).height+f;a.style.maxHeight=b}}},_endPaneChange:function(j,h){var b=this,a=j.content,e=a._original;if(h){if(b._autoSize===Sys.Extended.UI.AutoSize.Limit){var g=b._getRemainingHeight(d);e.style.maxHeight=g+f}e.style.overflow=c;a.style.height=c;a.style.overflow=c}else if(!b._isIE8InStandardMode)a.style.display=i;else if(b._autoSize===Sys.Extended.UI.AutoSize.Fill)e.style.display=i;else a.style.height="0px"},_getHeadersSize:function(){for(var a={width:0,height:0},b=0;b<this._panes.length;b++){var c=this._getTotalSize(this._panes[b].header);a.width=Math.max(a.width,c.width);a.height+=c.height}return a},_getRemainingHeight:function(e){var b=this,a=0,c=b.get_Pane();if(b._autoSize===Sys.Extended.UI.AutoSize.None){if(c)a=b._getTotalSize(c.content._original).height}else{a=b._headersSize;if(e&&c)a+=b._getGutterSize(c.content._original).height;var f=b.get_element();a=Math.max(f.offsetHeight-a,0);if(c&&b._autoSize===Sys.Extended.UI.AutoSize.Limit){var d=b._getTotalSize(c.content._original).height;if(d>0)a=Math.min(a,d)}}return a},_getTotalSize:function(b){var a=$common.getSize(b),c=$common.getMarginBox(b);a.width+=c.horizontal;a.height+=c.vertical;return a},_getGutterSize:function(c){var a={width:0,height:0};try{var b=$common.getPaddingBox(c);a.width+=b.horizontal;a.height+=b.vertical}catch(d){}try{var b=$common.getBorderBox(c);a.width+=b.horizontal;a.height+=b.vertical}catch(d){}var b=$common.getMarginBox(c);a.width+=b.horizontal;a.height+=b.vertical;return a},add_selectedIndexChanging:function(a){this.get_events().addHandler(j,a)},remove_selectedIndexChanging:function(a){this.get_events().removeHandler(j,a)},raiseSelectedIndexChanging:function(b){var a=this.get_events().getHandler(j);a&&a(this,b)},add_selectedIndexChanged:function(a){this.get_events().addHandler(k,a)},remove_selectedIndexChanged:function(a){this.get_events().removeHandler(k,a)},raiseSelectedIndexChanged:function(b){var a=this.get_events().getHandler(k);a&&a(this,b)},get_Pane:function(b){var c=this;if(b===undefined||b===a)b=c._selectedIndex;return c._panes&&b>=0&&b<c._panes.length?c._panes[b]:a},get_Count:function(){return this._panes?this._panes.length:0},get_TransitionDuration:function(){return this._duration*1e3},set_TransitionDuration:function(d){var a=this;if(a._duration!=d/1e3){a._duration=d/1e3;for(var b=0;b<a._panes.length;b++){var c=a._panes[b].animation;c&&c.set_duration(a._duration)}a.raisePropertyChanged("TransitionDuration")}},get_FramesPerSecond:function(){return this._framesPerSecond},set_FramesPerSecond:function(d){var a=this;if(a._framesPerSecond!=d){a._framesPerSecond=d;for(var b=0;b<a._panes.length;b++){var c=a._panes[b].animation;c&&c.set_fps(a._framesPerSecond)}a.raisePropertyChanged("FramesPerSecond")}},get_FadeTransitions:function(){return this._fadeTransitions},set_FadeTransitions:function(c){var a=this;if(a._fadeTransitions!=c){a._fadeTransitions=c;a._disposeAnimations();if(!a._fadeTransitions)for(var b=0;b<a._panes.length;b++){$common.getElementOpacity(a._panes[b].content)!=1&&$common.setElementOpacity(a._panes[b].content,1);$common.getElementOpacity(a._panes[b].content._original)!=1&&$common.setElementOpacity(a._panes[b].content._original,1)}a.raisePropertyChanged("FadeTransitions")}},get_HeaderCssClass:function(){return this._headerCssClass},set_HeaderCssClass:function(a){this._headerCssClass=a;this.raisePropertyChanged("HeaderCssClass")},get_HeaderSelectedCssClass:function(){return this._headerSelectedCssClass},set_HeaderSelectedCssClass:function(a){this._headerSelectedCssClass=a;this.raisePropertyChanged("HeaderSelectedCssClass")},get_AutoSize:function(){return this._autoSize},set_AutoSize:function(b){var a=this;if(Sys.Browser.agent===Sys.Browser.InternetExplorer&&b===Sys.Extended.UI.AutoSize.Limit)b=Sys.Extended.UI.AutoSize.Fill;if(a._autoSize!=b){a._autoSize=b;a._initializeLayout();a.raisePropertyChanged("AutoSize")}},get_SelectedIndex:function(){return this._selectedIndex},set_SelectedIndex:function(a){this._changeSelectedIndex(a,d)},get_requireOpenedPane:function(){return this._requireOpenedPane},set_requireOpenedPane:function(a){if(this._requireOpenedPane!=a){this._requireOpenedPane=a;this.raisePropertyChanged("requireOpenedPane")}},get_suppressHeaderPostbacks:function(){return this._suppressHeaderPostbacks},set_suppressHeaderPostbacks:function(a){if(this._suppressHeaderPostbacks!=a){this._suppressHeaderPostbacks=a;this.raisePropertyChanged("suppressHeaderPostbacks")}}};Sys.Extended.UI.AccordionBehavior.registerClass("Sys.Extended.UI.AccordionBehavior",Sys.Extended.UI.BehaviorBase);Sys.registerComponent(Sys.Extended.UI.AccordionBehavior,{name:"accordion"})}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedAnimations","ExtendedBase"],a);else a()})();