﻿// (c) 2010 CodePlex Foundation
(function(){var b="ExtendedTabs";function a(){var o="ajax__tab_hover",n="ajax__tab_active",j="ajax__tab_disabled",k="owner",q="headerTab",i="populated",h="populating",g="click",r="Sys.Extended.UI.TabContainer",m="initialize",l="scrollBars",p="activeTabIndex",e="value",f="activeTabChanged",c=false,a=null,b=-1,d=true;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.ScrollBars=function(){};Sys.Extended.UI.ScrollBars.prototype={None:0,Horizontal:1,Vertical:2,Both:3,Auto:4};Sys.Extended.UI.ScrollBars.registerEnum("Sys.Extended.UI.ScrollBars",d);Sys.Extended.UI.TabContainer=function(e){var d=this;Sys.Extended.UI.TabContainer.initializeBase(d,[e]);d._cachedActiveTabIndex=b;d._activeTabIndex=b;d._scrollBars=Sys.Extended.UI.ScrollBars.None;d._tabs=a;d._header=a;d._body=a;d._loaded=c;d._autoPostBackId=a;d._app_onload$delegate=Function.createDelegate(d,d._app_onload)};Sys.Extended.UI.TabContainer.prototype={add_activeTabChanged:function(a){this.get_events().addHandler(f,a)},remove_activeTabChanged:function(a){this.get_events().removeHandler(f,a)},raiseActiveTabChanged:function(){var a=this,b=a.get_events().getHandler(f);b&&b(a,Sys.EventArgs.Empty);a._autoPostBackId&&__doPostBack(a._autoPostBackId,"activeTabChanged:"+a.get_activeTabIndex())},get_activeTabIndex:function(){return this._cachedActiveTabIndex>b?this._cachedActiveTabIndex:this._activeTabIndex},set_activeTabIndex:function(g){var a=this,f=g;if(!a.get_isInitialized())a._cachedActiveTabIndex=f;else{if(f<b)throw Error.argumentOutOfRange(e);if(f>=a.get_tabs().length)f=a.get_tabs().length-1;a._activeTabIndex!=b&&a.get_tabs()[a._activeTabIndex]._set_active(c);var h=a._activeTabIndex!=f;a._activeTabIndex=f;a._activeTabIndex!=b&&a.get_tabs()[a._activeTabIndex]._set_active(d);a._loaded&&h&&a.raiseActiveTabChanged();a.raisePropertyChanged(p)}},get_tabs:function(){if(this._tabs==a)this._tabs=[];return this._tabs},get_activeTab:function(){return this._activeTabIndex>b?this.get_tabs()[this._activeTabIndex]:a},set_activeTab:function(c){var a=Array.indexOf(this.get_tabs(),c);if(a==b)throw Error.argument(e,Sys.Extended.UI.Resources.Tabs_ActiveTabArgumentOutOfRange);this.set_activeTabIndex(a)},get_autoPostBackId:function(){return this._autoPostBackId},set_autoPostBackId:function(a){this._autoPostBackId=a},get_scrollBars:function(){return this._scrollBars},set_scrollBars:function(b){var a=this;if(a._scrollBars!=b){a._scrollBars=b;a._invalidate();a.raisePropertyChanged(l)}},initialize:function(){var a=this;Sys.Extended.UI.TabContainer.callBaseMethod(a,m);var d=a.get_element(),b=a._header=$get(a.get_id()+"_header"),c=a._body=$get(a.get_id()+"_body");$common.addCssClasses(d,["ajax__tab_container","ajax__tab_default"]);Sys.UI.DomElement.addCssClass(b,"ajax__tab_header");Sys.UI.DomElement.addCssClass(c,"ajax__tab_body");a._invalidate();Sys.Application.add_load(a._app_onload$delegate)},dispose:function(){Sys.Application.remove_load(this._app_onload$delegate);Sys.Extended.UI.TabContainer.callBaseMethod(this,"dispose")},getFirstTab:function(d){for(var c=this.get_tabs(),b=0;b<c.length;b++)if(d||c[b].get_enabled())return c[b];return a},getLastTab:function(d){for(var c=this.get_tabs(),b=c.length-1;b>=0;b--)if(d||c[b].get_enabled())return c[b];return a},getNextTab:function(e){for(var b=this.get_tabs(),g=this.get_activeTabIndex(),c=1;c<b.length;c++){var f=(g+c)%b.length,d=b[f];if(e||d.get_enabled())return d}return a},getPreviousTab:function(e){for(var b=this.get_tabs(),g=this.get_activeTabIndex(),c=1;c<b.length;c++){var f=(b.length+(g-c))%b.length,d=b[f];if(e||d.get_enabled())return d}return a},getNearestTab:function(e){var b=this,d=b.getPreviousTab(e),c=b.getNextTab(e);return d&&d.get_tabIndex()<b._activeTabIndex?d:c&&c.get_tabIndex()>b._activeTabIndex?c:a},saveClientState:function(){for(var c=this.get_tabs(),b=[],a=0;a<c.length;a++)Array.add(b,c[a].get_enabled());var d={ActiveTabIndex:this._activeTabIndex,TabState:b};return Sys.Serialization.JavaScriptSerializer.serialize(d)},_invalidate:function(){var e="ajax__scroll_auto",d="ajax__scroll_both",c="ajax__scroll_vert",b="ajax__scroll_horiz",a=this;if(a.get_isInitialized()){$common.removeCssClasses(a._body,[b,c,d,e]);switch(a._scrollBars){case Sys.Extended.UI.ScrollBars.Horizontal:Sys.UI.DomElement.addCssClass(a._body,b);break;case Sys.Extended.UI.ScrollBars.Vertical:Sys.UI.DomElement.addCssClass(a._body,c);break;case Sys.Extended.UI.ScrollBars.Both:Sys.UI.DomElement.addCssClass(a._body,d);break;case Sys.Extended.UI.ScrollBars.Auto:Sys.UI.DomElement.addCssClass(a._body,e)}}},_app_onload:function(){var a=this;if(a._cachedActiveTabIndex!=b){a.set_activeTabIndex(a._cachedActiveTabIndex);a._cachedActiveTabIndex=b}a._loaded=d}};Sys.Extended.UI.TabContainer.registerClass(r,Sys.Extended.UI.ControlBase);Sys.registerComponent(Sys.Extended.UI.TabContainer,{name:"tabContainer",parameters:[{name:p,type:"Number"}]});Sys.Extended.UI.TabPanel=function(f){var e=this;Sys.Extended.UI.TabPanel.initializeBase(e,[f]);e._active=c;e._tab=a;e._headerOuter=a;e._headerInner=a;e._header=a;e._owner=a;e._ownerID=a;e._enabled=d;e._tabIndex=b;e._dynamicContextKey=a;e._dynamicServicePath=a;e._dynamicServiceMethod=a;e._dynamicPopulateBehavior=a;e._scrollBars=Sys.Extended.UI.ScrollBars.None;e._header_onclick$delegate=Function.createDelegate(e,e._header_onclick);e._header_onmouseover$delegate=Function.createDelegate(e,e._header_onmouseover);e._header_onmouseout$delegate=Function.createDelegate(e,e._header_onmouseout);e._header_onmousedown$delegate=Function.createDelegate(e,e._header_onmousedown);e._dynamicPopulate_onpopulated$delegate=Function.createDelegate(e,e._dynamicPopulate_onpopulated);e._oncancel$delegate=Function.createDelegate(e,e._oncancel)};Sys.Extended.UI.TabPanel.prototype={add_click:function(a){this.get_events().addHandler(g,a)},remove_click:function(a){this.get_events().removeHandler(g,a)},raiseClick:function(){var a=this.get_events().getHandler(g);a&&a(this,Sys.EventArgs.Empty)},add_populating:function(a){this.get_events().addHandler(h,a)},remove_populating:function(a){this.get_events().removeHandler(h,a)},raisePopulating:function(){var a=this.get_events().getHandler(h);a&&a(this,Sys.EventArgs.Empty)},add_populated:function(a){this.get_events().addHandler(i,a)},remove_populated:function(a){this.get_events().removeHandler(i,a)},raisePopulated:function(){var a=this.get_events().getHandler(i);a&&a(this,Sys.EventArgs.Empty)},get_headerText:function(){return this.get_isInitialized()?this._header.innerHTML:""},set_headerText:function(c){var a="headerText",b=this;if(!b.get_isInitialized())throw Error.invalidOperation(String.format(Sys.Extended.UI.Resources.Tabs_PropertySetBeforeInitialization,a));if(b.get_headerText()!=c){b._header.innerHTML=c;b.raisePropertyChanged(a)}},get_headerTab:function(){return this._header},set_headerTab:function(a){var b=this;if(typeof a==="string"){a=Sys.get(a);if(!a)throw new Error.argumentNull(e);}if(b._header!=a){if(b.get_isInitialized())throw Error.invalidOperation(String.format(Sys.Extended.UI.Resources.Tabs_PropertySetAfterInitialization,q));b._header=a;b.raisePropertyChanged(e)}},get_enabled:function(){return this._enabled},set_enabled:function(b){var a=this;if(b!=a._enabled){a._enabled=b;a.get_isInitialized()&&a._makeEnabled(a._enabled);a.raisePropertyChanged("enabled")}},get_owner:function(){return this._owner},set_owner:function(a){var b=this;if(a instanceof Sys.ComponentSet)a=a.get(0);if(b._owner!=a){if(b.get_isInitialized())throw Error.invalidOperation(String.format(Sys.Extended.UI.Resources.Tabs_PropertySetAfterInitialization,k));b._owner=a;b.raisePropertyChanged(k)}},get_ownerID:function(){return this._ownerID},set_ownerID:function(a){this._ownerID=a},get_scrollBars:function(){return this._scrollBars},set_scrollBars:function(a){if(this._scrollBars!=a){this._scrollBars=a;this.raisePropertyChanged(l)}},get_tabIndex:function(){return this._tabIndex},get_dynamicContextKey:function(){return this._dynamicContextKey},set_dynamicContextKey:function(a){if(this._dynamicContextKey!=a){this._dynamicContextKey=a;this.raisePropertyChanged("dynamicContextKey")}},get_dynamicServicePath:function(){return this._dynamicServicePath},set_dynamicServicePath:function(a){if(this._dynamicServicePath!=a){this._dynamicServicePath=a;this.raisePropertyChanged("dynamicServicePath")}},get_dynamicServiceMethod:function(){return this._dynamicServiceMethod},set_dynamicServiceMethod:function(a){if(this._dynamicServiceMethod!=a){this._dynamicServiceMethod=a;this.raisePropertyChanged("dynamicServiceMethod")}},_get_active:function(){return this._active},_set_active:function(a){this._active=a;if(a)this._activate();else this._deactivate()},initialize:function(){var c="span",b=this,d=b.get_owner();if(!d){d=$find(b.get_ownerID());if(d){d.initialize();b.set_owner(d)}}Sys.Extended.UI.TabPanel.callBaseMethod(b,m);if(!d)throw Error.invalidOperation(Sys.Extended.UI.Resources.Tabs_OwnerExpected);b._tabIndex=d.get_tabs().length;Array.add(d.get_tabs(),b);var f=b.get_id()+"_tab";b._tab=document.getElementById(f);var e=b._tab!=a;if(!e){b._headerOuterWrapper=document.createElement(c);b._headerInnerWrapper=document.createElement(c);b._tab=document.createElement(c);b._tab.id=f;b._header.parentNode.replaceChild(b._tab,b._header);b._tab.appendChild(b._headerOuterWrapper);b._headerOuterWrapper.appendChild(b._headerInnerWrapper);b._headerInnerWrapper.appendChild(b._header)}$addHandlers(b._header,{mousedown:b._header_onmousedown$delegate,dragstart:b._oncancel$delegate,selectstart:b._oncancel$delegate,select:b._oncancel$delegate});if(b._enabled)b._addHandlersOnEnabled();else Sys.UI.DomElement.addCssClass(b._tab,j);if(!e){Sys.UI.DomElement.addCssClass(b._headerOuterWrapper,"ajax__tab_outer");Sys.UI.DomElement.addCssClass(b._headerInnerWrapper,"ajax__tab_inner");Sys.UI.DomElement.addCssClass(b._header,"ajax__tab_tab");Sys.UI.DomElement.addCssClass(b.get_element(),"ajax__tab_panel")}},dispose:function(){var b=this;if(b._dynamicPopulateBehavior){b._dynamicPopulateBehavior.dispose();b._dynamicPopulateBehavior=a}$common.removeHandlers(b._header,{mousedown:b._header_onmousedown$delegate,dragstart:b._oncancel$delegate,selectstart:b._oncancel$delegate,select:b._oncancel$delegate});b._enabled&&b._removeHandlersOnEnabled();Sys.Extended.UI.TabPanel.callBaseMethod(b,"dispose")},_addHandlersOnEnabled:function(){var a=this;$addHandlers(a._header,{click:a._header_onclick$delegate,mouseover:a._header_onmouseover$delegate,mouseout:a._header_onmouseout$delegate})},_removeHandlersOnEnabled:function(){var a=this;$common.removeHandlers(a._header,{click:a._header_onclick$delegate,mouseover:a._header_onmouseover$delegate,mouseout:a._header_onmouseout$delegate})},populate:function(c){var b=this;if(b._dynamicPopulateBehavior&&b._dynamicPopulateBehavior.get_element()!=b.get_element()){b._dynamicPopulateBehavior.dispose();b._dynamicPopulateBehavior=a}if(!b._dynamicPopulateBehavior&&b._dynamicServiceMethod)b._dynamicPopulateBehavior=$create(Sys.Extended.UI.DynamicPopulateBehavior,{ContextKey:b._dynamicContextKey,ServicePath:b._dynamicServicePath,ServiceMethod:b._dynamicServiceMethod},{populated:b._dynamicPopulate_onpopulated$delegate},a,b.get_element());if(b._dynamicPopulateBehavior){b.raisePopulating();b._dynamicPopulateBehavior.populate(c?c:b._dynamicContextKey)}},_activate:function(){var a=this;if(a._enabled){var e=a.get_element();$common.setVisible(e,d);Sys.UI.DomElement.addCssClass(a._tab,n);a.populate()}else if(a._get_active()){var b=a._owner.getNearestTab(c);!!b&&a._owner.set_activeTab(b)}a._owner.get_element().style.visibility="visible"},_deactivate:function(){var a=this.get_element();$common.setVisible(a,c);Sys.UI.DomElement.removeCssClass(this._tab,n)},_show:function(){this._tab.style.display=""},_hide:function(){var a=this;a._tab.style.display="none";if(a._get_active()){var b=a._owner.getNearestTab(c);!!b&&a._owner.set_activeTab(b)}a._deactivate()},_makeEnabled:function(d){var a=this;if(d){a._addHandlersOnEnabled();Sys.UI.DomElement.removeCssClass(a._tab,j)}else{a._removeHandlersOnEnabled();if(a._get_active()){var b=a._owner.getNearestTab(c);!!b&&a._owner.set_activeTab(b)}a._deactivate();Sys.UI.DomElement.addCssClass(a._tab,j)}},_header_onclick:function(){this.raiseClick();this.get_owner().set_activeTab(this)},_header_onmouseover:function(){Sys.UI.DomElement.addCssClass(this._tab,o)},_header_onmouseout:function(){Sys.UI.DomElement.removeCssClass(this._tab,o)},_header_onmousedown:function(a){a.preventDefault()},_oncancel:function(a){a.stopPropagation();a.preventDefault()},_dynamicPopulate_onpopulated:function(){this.raisePopulated()}};Sys.Extended.UI.TabPanel.registerClass("Sys.Extended.UI.TabPanel",Sys.UI.Control);Sys.registerComponent(Sys.Extended.UI.TabPanel,{name:"tabPanel",parameters:[{name:k,type:r},{name:q,type:"String"}]})}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedDynamicPopulate"],a);else a()})();