JIRA.TabManager=function(){return{navigationTabs:function(){var loadEvents={},loadTab,filterTab,activeTab,previousTab,xhrObject,tabs,CONST={filterTabSelector:".active-area",tabsSelector:"ul.vertical.tabs li",requestParams:"decorator=none&contentOnly=true",stateRequestParams:"decorator=none&contentOnly=true&updateState=true",activeTabClass:"active",loadedTabClass:"loaded",getTabRegEx:/filterView=.*/,checkQualifiedUrlRegEx:/\?(?=filterView=)/,idGeneratorRegEx:/^[^\?]*\?/},runTabLoadEvent=function(hashMapID){if(loadEvents[hashMapID]&&loadEvents[hashMapID] instanceof Array){jQuery(loadEvents[hashMapID]).each(function(){this()})}},navigateToTab=function(tab,historyEvent,url){var tabAnchor=jQuery(tab).find("a"),id=url.replace(CONST.idGeneratorRegEx,""),populateTab=function(contentObj){filterTab.empty();filterTab.html(contentObj);if(!historyEvent){dhtmlHistory.add(id)}runTabLoadEvent(tabAnchor.attr("id"));activeTab.addClass(CONST.loadedTabClass)};if(CONST.checkQualifiedUrlRegEx.test(window.location.href)){window.location.href=url.replace(CONST.checkQualifiedUrlRegEx,"#");return }if(url&&(activeTab.get(0)!==tab||url)){if(activeTab&&activeTab.length){previousTab=activeTab.removeClass(CONST.activeTabClass).removeClass(CONST.loadedTabClass)}activeTab=jQuery(tab).addClass("active");if(xhrObject&&xhrObject.get(0)&&xhrObject.get(0).readyState!==4&&xhrObject.get(0).abort){if(jQuery.isFunction(xhrObject.hideThrobber)){xhrObject.hideThrobber()}xhrObject.get(0).abort()}filterTab.html("<h2>"+tabAnchor.attr("title")+"</h2>");xhrObject=jQuery(jQuery.ajax({method:"get",dataType:"html",url:url,data:CONST.requestParams,success:populateTab})).throbber({target:tab})}},handleBrowserNavigation=function(newLocation){var node;if(activeTab.find("a").attr("href").replace(CONST.idGeneratorRegEx,"")===newLocation){return }if(newLocation&&newLocation!==""){node=getTab(newLocation);newLocation=jQuery(node).find("a").attr("href").match(CONST.idGeneratorRegEx)+newLocation}else{if(newLocation===""){node=jQuery(loadTab);newLocation=node.find("a").attr("href")}}if(node){navigateToTab(node,true,newLocation)}},getTab=function(url){var tabRegExp=CONST.getTabRegEx,tabToTarget=url.match(tabRegExp),tab;jQuery(tabs).each(function(){var tabToCompare=jQuery(this).find("a").attr("href").match(tabRegExp);if(tabToTarget&&tabToTarget.length>0&&tabToCompare[0]===tabToTarget[0]){tab=this}});return tab};window.onload=function(onload){return function(){if(jQuery.isFunction(onload)){onload()}dhtmlHistory.initialize();dhtmlHistory.addListener(handleBrowserNavigation)}}(window.onload);return{getActiveTab:function(){return activeTab},getProjectTab:function(){return filterTab},addLoadEvent:function(tabName,handler){loadEvents[tabName]=loadEvents[tabName]||[];if(jQuery.isFunction(handler)){loadEvents[tabName].push(handler)}},init:function(opts){AJS.$.extend(CONST,opts);var addressTab;filterTab=jQuery(CONST.filterTabSelector);tabs=jQuery(CONST.tabsSelector).each(function(){if(jQuery(this).hasClass(CONST.activeTabClass)){activeTab=jQuery(this);activeTab.addClass(CONST.loadedTabClass);loadTab=jQuery("#"+activeTab.find("a").attr("id")).parent()}});addressTab=getTab(window.location.href);if(dhtmlHistory.getCurrentHash()&&addressTab&&activeTab&&activeTab.find("a").attr("href").replace(CONST.idGeneratorRegEx,"")!==dhtmlHistory.getCurrentHash()){var newUrl=jQuery(addressTab).find("a").attr("href").match(CONST.idGeneratorRegEx)+dhtmlHistory.getCurrentHash();navigateToTab(jQuery(addressTab),true,newUrl)}filterTab.ajaxError(function(event,request,settings){if(request.status===401){window.location.reload()}else{var fragment=request.responseText.match(/<body[^>]*>([\S\s]*)<\/body[^>]*>/);if(fragment&&fragment.length>0){jQuery(this).html('<div style="padding:0 20px">'+fragment[1]+"</div>")}}});jQuery(document).click(function(e){var node=e.target;if(node&&node.nodeName!=="A"){node=node.parentNode}if(node&&node.nodeName==="A"){var tab=getTab(node.href);if(tab){navigateToTab(tab,false,node.href);e.preventDefault()}}});if(opts&&opts.customInit){opts.customInit()}}}}()}}();AJS.namespace("jira.app.manageShared",null,JIRA.TabManager);

