var NODE_LAST_FOCUS=null;function TabPanel(a){this.id=a;this.tabs=[];this.current_tab=0}
TabPanel.prototype.init=function(){this.node=document.getElementById(this.id);var a=this;browser.addEvent(this.node,"click",function(b){handleTabPanelClickEvent(b,a)},!1);browser.addEvent(this.node,"keydown",function(b){handleTabPanelKeyDownEvent(b,a)},!0);browser.addEvent(this.node,"keypress",function(b){handleTabPanelKeyPressEvent(b,a)},!0);for(var c=0;c<this.tabs.length;c++)this.tabs[c].init();selectTabPanel(this,this.current_tab,!0)};
TabPanel.prototype.add=function(a){this.tabs[this.tabs.length]=a};function Tab(a,c){this.tab_id=a;this.panel_id=c;this.node_last_focus=null}Tab.prototype.init=function(){};nextTabPanel=function(a){a.current_tab<a.tabs.length-1&&(new_tab=a.current_tab+1,selectTabPanel(a,new_tab,!1))};previousTabPanel=function(a){a.current_tab>0&&(new_tab=a.current_tab-1,selectTabPanel(a,new_tab,!1))};
selectTabPanel=function(a,c,b){if(c>=0&&c<a.tabs.length){for(var d=0;d<a.tabs.length;d++)if(d!=c){var e=document.getElementById(a.tabs[d].tab_id);e.setAttribute("aria-selected","false");e.className="tab";document.getElementById(a.tabs[d].panel_id).style.display="none";document.getElementById(a.tabs[d].panel_id).setAttribute("aria-hidden","true");document.getElementById(a.tabs[d].tab_id).tabIndex=-1}a.current_tab=c;e=document.getElementById(a.tabs[a.current_tab].tab_id);e.setAttribute("aria-selected",
"true");e.className="tab selected";document.getElementById(a.tabs[a.current_tab].panel_id).style.display="block";document.getElementById(a.tabs[a.current_tab].panel_id).setAttribute("aria-hidden","false");document.getElementById(a.tabs[a.current_tab].tab_id).tabIndex=0;a.tabs[a.current_tab].node_last_focus?a.tabs[a.current_tab].node_last_focus.focus():b!=!0&&document.getElementById(a.tabs[a.current_tab].tab_id).focus()}};
nextTab=function(a,c){var b=indexOfNodeInTabList(a,c);b>=0&&b<c.tabs.length-1&&(b++,selectTabPanel(c,b,!1),document.getElementById(c.tabs[b].tab_id).focus())};previousTab=function(a,c){var b=indexOfNodeInTabList(a,c);b>0&&(b--,selectTabPanel(c,b,!1),document.getElementById(c.tabs[b].tab_id).focus())};indexOfNodeInTabList=function(a,c){for(var b=-1,d=0;d<c.tabs.length;d++)if(a==document.getElementById(c.tabs[d].tab_id)||a==document.getElementById("s"+c.tabs[d].tab_id))b=d;return b};
isNodeInTabList=function(a,c){for(var b=!1,d=0;!b&&d<c.tabs.length;d++)a==document.getElementById(c.tabs[d].tab_id)&&(b=!0);return b};function handleTabPanelKeyPressEvent(a){a=a||window.event;switch(a.keyCode){case KEY_PAGEUP:case KEY_PAGEDOWN:if(a.ctrlKey&&!a.altKey&&!a.shiftKey)return browser.stopPropagation(a);break;case KEY_TAB:if(a.ctrlKey&&!a.altKey)return browser.stopPropagation(a)}}
function handleTabPanelKeyDownEvent(a,c){var b=a||window.event,d=!b.ctrlKey&&!b.shiftKey,e=b.ctrlKey&&!b.shiftKey&&!b.altKey;switch(b.keyCode){case KEY_LEFT:case KEY_UP:if(isNodeInTabList(browser.target(b),c)&&d)return previousTab(browser.target(b),c),browser.stopPropagation(a);break;case KEY_RIGHT:case KEY_DOWN:if(isNodeInTabList(browser.target(b),c)&&d)return nextTab(browser.target(b),c),browser.stopPropagation(b);break;case KEY_PAGEDOWN:if(e)return nextTabPanel(c),browser.stopPropagation(b);break;
case KEY_PAGEUP:if(e)return previousTabPanel(c),browser.stopPropagation(b);break;case KEY_HOME:case KEY_ALT:if(d)return selectTabPanel(c,0,!1),browser.stopPropagation(b);case KEY_END:if(d)return selectTabPanel(c,c.tabs.length-1,!1),browser.stopPropagation(b);case KEY_TAB:if(b.ctrlKey&&!b.altKey)return b.shiftKey?previousTabPanel(c):nextTabPanel(c),browser.stopPropagation(b)}return!0}
handleTabPanelClickEvent=function(a,c){var b=indexOfNodeInTabList(browser.target(a||window.event),c);if(b>=0)return selectTabPanel(c,b,!1),document.getElementById(c.tabs[b].tab_id).focus(),!1;return!0};handleInputFocusEvent=function(a,c){c.node_last_focus=browser.target(a||window.event)};
