var Spry;Spry||(Spry={});if(!Spry.Widget)Spry.Widget={};Spry.Widget.TabbedPanels=function(a,b){this.element=this.getElement(a);this.defaultTab=0;this.tabSelectedClass="TabbedPanelsTabSelected";this.tabHoverClass="TabbedPanelsTabHover";this.tabFocusedClass="TabbedPanelsTabFocused";this.panelVisibleClass="TabbedPanelsContentVisible";this.focusElement=null;this.hasFocus=!1;this.currentTabIndex=0;this.enableKeyboardNavigation=!0;this.nextPanelKeyCode=Spry.Widget.TabbedPanels.KEY_RIGHT;this.previousPanelKeyCode=Spry.Widget.TabbedPanels.KEY_LEFT;Spry.Widget.TabbedPanels.setOptions(this,b);if(typeof this.defaultTab=="number"){if(this.defaultTab<0)this.defaultTab=0;else{var c=this.getTabbedPanelCount();if(this.defaultTab>=c)this.defaultTab=c>1?c-1:0}this.defaultTab=this.getTabs()[this.defaultTab]}if(this.defaultTab)this.defaultTab=this.getElement(this.defaultTab);this.attachBehaviors()};Spry.Widget.TabbedPanels.prototype.getElement=function(a){return a&&typeof a=="string"?document.getElementById(a):a};Spry.Widget.TabbedPanels.prototype.getElementChildren=function(a){for(var b=[],a=a.firstChild;a;)a.nodeType==1&&b.push(a),a=a.nextSibling;return b};Spry.Widget.TabbedPanels.prototype.addClassName=function(a,b){a&&b&&!(a.className&&a.className.search(RegExp("\\b"+b+"\\b"))!=-1)&&(a.className+=(a.className?" ":"")+b)};Spry.Widget.TabbedPanels.prototype.removeClassName=function(a,b){if(a&&b&&!(a.className&&a.className.search(RegExp("\\b"+b+"\\b"))==-1))a.className=a.className.replace(RegExp("\\s*\\b"+b+"\\b","g"),"")};Spry.Widget.TabbedPanels.setOptions=function(a,b,c){if(b)for(var d in b)c&&b[d]==void 0||(a[d]=b[d])};Spry.Widget.TabbedPanels.prototype.getTabGroup=function(){if(this.element){var a=this.getElementChildren(this.element);if(a.length)return a[0]}return null};Spry.Widget.TabbedPanels.prototype.getTabs=function(){var a=[],b=this.getTabGroup();b&&(a=this.getElementChildren(b));return a};Spry.Widget.TabbedPanels.prototype.getContentPanelGroup=function(){if(this.element){var a=this.getElementChildren(this.element);if(a.length>1)return a[1]}return null};Spry.Widget.TabbedPanels.prototype.getContentPanels=function(){var a=[],b=this.getContentPanelGroup();b&&(a=this.getElementChildren(b));return a};Spry.Widget.TabbedPanels.prototype.getIndex=function(a,b){if((a=this.getElement(a))&&b&&b.length)for(var c=0;c<b.length;c++)if(a==b[c])return c;return-1};Spry.Widget.TabbedPanels.prototype.getTabIndex=function(a){var b=this.getIndex(a,this.getTabs());b<0&&(b=this.getIndex(a,this.getContentPanels()));return b};Spry.Widget.TabbedPanels.prototype.getCurrentTabIndex=function(){return this.currentTabIndex};Spry.Widget.TabbedPanels.prototype.getTabbedPanelCount=function(){return Math.min(this.getTabs().length,this.getContentPanels().length)};Spry.Widget.TabbedPanels.addEventListener=function(a,b,c,d){try{a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)}catch(e){}};Spry.Widget.TabbedPanels.prototype.cancelEvent=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;return!1};Spry.Widget.TabbedPanels.prototype.onTabClick=function(a,b){this.showPanel(b);return this.cancelEvent(a)};Spry.Widget.TabbedPanels.prototype.onTabMouseOver=function(a,b){this.addClassName(b,this.tabHoverClass);return!1};Spry.Widget.TabbedPanels.prototype.onTabMouseOut=function(a,b){this.removeClassName(b,this.tabHoverClass);return!1};Spry.Widget.TabbedPanels.prototype.onTabFocus=function(a,b){this.hasFocus=!0;this.addClassName(b,this.tabFocusedClass);return!1};Spry.Widget.TabbedPanels.prototype.onTabBlur=function(a,b){this.hasFocus=!1;this.removeClassName(b,this.tabFocusedClass);return!1};Spry.Widget.TabbedPanels.KEY_UP=38;Spry.Widget.TabbedPanels.KEY_DOWN=40;Spry.Widget.TabbedPanels.KEY_LEFT=37;Spry.Widget.TabbedPanels.KEY_RIGHT=39;Spry.Widget.TabbedPanels.prototype.onTabKeyDown=function(a,b){var c=a.keyCode;if(!this.hasFocus||c!=this.previousPanelKeyCode&&c!=this.nextPanelKeyCode)return!0;for(var d=this.getTabs(),e=0;e<d.length;e++)if(d[e]==b){var f=!1;c==this.previousPanelKeyCode&&e>0?f=d[e-1]:c==this.nextPanelKeyCode&&e<d.length-1&&(f=d[e+1]);if(f){this.showPanel(f);f.focus();break}}return this.cancelEvent(a)};Spry.Widget.TabbedPanels.prototype.preorderTraversal=function(a,b){var c=!1;if(a&&(c=b(a),a.hasChildNodes()))for(var d=a.firstChild;!c&&d;){c=this.preorderTraversal(d,b);try{d=d.nextSibling}catch(e){d=null}}return c};Spry.Widget.TabbedPanels.prototype.addPanelEventListeners=function(a){var b=this;Spry.Widget.TabbedPanels.addEventListener(a,"click",function(c){return b.onTabClick(c,a)},!1);Spry.Widget.TabbedPanels.addEventListener(a,"mouseover",function(c){return b.onTabMouseOver(c,a)},!1);Spry.Widget.TabbedPanels.addEventListener(a,"mouseout",function(c){return b.onTabMouseOut(c,a)},!1);if(this.enableKeyboardNavigation){var c=null,d=null;this.preorderTraversal(a,function(b){if(b.nodeType==1){if(a.attributes.getNamedItem("tabindex"))return c=b,!0;!d&&b.nodeName.toLowerCase()=="a"&&(d=b)}return!1});if(c)this.focusElement=c;else if(d)this.focusElement=d;this.focusElement&&(Spry.Widget.TabbedPanels.addEventListener(this.focusElement,"focus",function(c){return b.onTabFocus(c,a)},!1),Spry.Widget.TabbedPanels.addEventListener(this.focusElement,"blur",function(c){return b.onTabBlur(c,a)},!1),Spry.Widget.TabbedPanels.addEventListener(this.focusElement,"keydown",function(c){return b.onTabKeyDown(c,a)},!1))}};Spry.Widget.TabbedPanels.prototype.showPanel=function(a){var b=-1,b=typeof a=="number"?a:this.getTabIndex(a);if(!(!b<0||b>=this.getTabbedPanelCount())){for(var a=this.getTabs(),c=this.getContentPanels(),d=Math.max(a.length,c.length),e=0;e<d;e++)if(e!=b&&(a[e]&&this.removeClassName(a[e],this.tabSelectedClass),c[e]))this.removeClassName(c[e],this.panelVisibleClass),c[e].style.display="none";this.addClassName(a[b],this.tabSelectedClass);this.addClassName(c[b],this.panelVisibleClass);c[b].style.display="block";this.currentTabIndex=b}};Spry.Widget.TabbedPanels.prototype.attachBehaviors=function(){for(var a=this.getTabs(),b=this.getContentPanels(),c=this.getTabbedPanelCount(),d=0;d<c;d++)this.addPanelEventListeners(a[d],b[d]);this.showPanel(this.defaultTab)};
