JIRA.Project=(function(){var permissionsCheck=function(xhr,response,url){var loginPageRedirect=xhr&&xhr.getResponseHeader("X-Atlassian-Dialog-Control")=="permissionviolation";var permissionError=response&&response.permissionError;if(loginPageRedirect||permissionError){window.location.href=url.replace(/\?.*/,"");return false}else{return true}};return{navigationTabs:function(){var loadEvents={},loadTab,projectTab,activeTab,previousTab,xhrObject,tabs,CONST={projectTabSelector:"#project-tab",tabsSelector:"ul.vertical.tabs li",requestParams:"decorator=none&contentOnly=true",stateRequestParams:"decorator=none&contentOnly=true&updateState=true",loadedTabClass:"loaded",activeTabClass:"active",hashSuffix:"-panel"},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(/^[^\?]*\?/,""),populateTab=function(contentObj,textStatus,xhr){if(permissionsCheck(xhr,contentObj,tabAnchor.attr("href"))){projectTab.empty();projectTab.append(contentObj.content);if(!historyEvent){dhtmlHistory.add(id)}runTabLoadEvent(tabAnchor.attr("id"));JIRA.userhover(projectTab);activeTab.addClass(CONST.loadedTabClass)}};if(/\?selectedTab=/.test(window.location.href)){window.location.href=window.location.href.replace(/\?(.*)/,"#"+id);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()}projectTab.html("<h2>"+tabAnchor.html()+"</h2>");xhrObject=jQuery(jQuery.ajax({method:"get",dataType:"json",url:url,data:CONST.requestParams,success:populateTab,error:function(xhr,error){if(error==="parsererror"){window.location.href=url}else{permissionsCheck(xhr,null,url);projectTab.html('<div style="padding:0 20px">'+AJS.extractBodyFromResponse(xhr.responseText)+"</div>")}}})).throbber({target:tab})}},handleBrowserNavigation=function(newLocation){var node;if(activeTab.find("a").attr("href").replace(/.*\?/,"")===newLocation){return }if(newLocation&&newLocation!==""){node=getTab(newLocation);newLocation=jQuery(node).find("a").attr("href").replace(/\?.*/,"?"+newLocation)}else{if(newLocation===""){node=jQuery(loadTab);newLocation=node.find("a").attr("href")}}if(node){navigateToTab(node,true,newLocation)}},getTab=function(url){var tabRegExp=/selectedTab=[^(?:\:|%3A)]*(?:\:|%3A)([^&]*)/,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[1]===tabToTarget[1]){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 projectTab},addLoadEvent:function(tabName,handler){loadEvents[tabName]=loadEvents[tabName]||[];if(jQuery.isFunction(handler)){loadEvents[tabName].push(handler)}},init:function(){var addressTab;projectTab=jQuery(CONST.projectTabSelector);tabs=jQuery(CONST.tabsSelector).each(function(){if(jQuery(this).hasClass(CONST.activeTabClass)){activeTab=jQuery(this);loadTab=jQuery("#"+activeTab.find("a").attr("id")).parent()}});addressTab=getTab(window.location.href);if(dhtmlHistory.getCurrentHash()&&addressTab&&activeTab&&activeTab.find("a").attr("href").replace(/.*\?/,"")!==dhtmlHistory.getCurrentHash()){navigateToTab(jQuery(addressTab),true,jQuery(addressTab).find("a").attr("href").replace(/\?.*/,"?"+dhtmlHistory.getCurrentHash()))}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()}}})}}}(),dropdowns:function(){var quickLinks=function(){var quickLinks=AJS.$("#quicklinks");AJS.Dropdown.create({trigger:quickLinks.find(".aui-dd-link"),content:quickLinks.find(".aui-list"),alignment:AJS.RIGHT});AJS.$("#quicklinks .aui-dd-link").linkedMenu();return arguments.callee}();var $quickCreate=AJS.$("#create-issue");AJS.Dropdown.create({trigger:$quickCreate.find(".aui-dd-link"),content:$quickCreate.find(".aui-list"),alignment:AJS.RIGHT});AJS.$(["summary-panel-panel","version-summary-panel-panel","component-summary-panel-panel"]).each(function(){JIRA.Project.navigationTabs.addLoadEvent(this,quickLinks)})},expandos:function(){var CONST={containerSelector:"li.expando",linkSelector:".versionBanner-link",contentClass:"versionBanner-content",activeClass:"active",tweenSpeed:"fast",requestParams:"decorator=none&contentOnly=true&noTitle=true",collapseVersionParam:"collapseVersion",expandVersionParam:"expandVersion"};return function(){var handler=function(){JIRA.Project.navigationTabs.getProjectTab().find(".versionBanner-header").click(function(e){var parent=jQuery(this).parent(),contentElement=parent.find("."+CONST.contentClass),linkTarget=jQuery(this).find(CONST.linkSelector);if(e.target.nodeName==="A"||jQuery(e.target).parent().get(0).nodeName==="A"){return }if(!parent.hasClass(CONST.activeClass)&&!contentElement.is(":animated")){parent.addClass(CONST.activeClass);var url=linkTarget.attr("href");var throbberTarget={target:JIRA.Project.navigationTabs.getActiveTab()};jQuery(jQuery.ajax({url:url,data:CONST.requestParams,dataType:"json",error:function(xhr){permissionsCheck(xhr,null,url)},success:function(response,textStatus,xhr){if(permissionsCheck(xhr,response,url)){if(contentElement.length===0){contentElement=jQuery("<div>").css({display:"block",overflow:"hidden",height:"0"}).addClass(CONST.contentClass).appendTo(parent).click(function(e){e.stopPropagation()})}contentElement.html(response.content);contentElement.css({display:"block",overflow:"hidden"}).animate({height:contentElement.attr("scrollHeight")},CONST.tweenSpeed,function(){linkTarget.attr("href",linkTarget.attr("href").replace(CONST.expandVersionParam,CONST.collapseVersionParam));parent.addClass("expanded")})}}})).throbber(throbberTarget)}else{if(parent.hasClass(CONST.activeClass)&&!parent.hasClass("locked")){jQuery.get(linkTarget.attr("href")+"&"+CONST.requestParams,function(){parent.removeClass(CONST.activeClass);contentElement.css({overflow:"hidden"}).animate({height:0},CONST.tweenSpeed,function(){contentElement.css({display:"none"});linkTarget.attr("href",linkTarget.attr("href").replace(CONST.collapseVersionParam,CONST.expandVersionParam));parent.removeClass("expanded")})})}}});return arguments.callee}();JIRA.Project.navigationTabs.addLoadEvent("roadmap-panel-panel",handler);JIRA.Project.navigationTabs.addLoadEvent("changelog-panel-panel",handler);JIRA.Project.navigationTabs.addLoadEvent("component-roadmap-panel-panel",handler);JIRA.Project.navigationTabs.addLoadEvent("component-changelog-panel-panel",handler)}}()}})();jQuery(document).ready(JIRA.Project.navigationTabs.init);jQuery(document).ready(JIRA.Project.expandos);jQuery(document).ready(JIRA.Project.dropdowns);AJS.namespace("jira.app.browseProject",null,JIRA.Project);

