jQuery.fn.stalker=function(){var $win,$doc,$stalker,$transitionElems,offsetY,placeholder,lastScrollPosY,stalkerHeight,isInitialized,selector;function isSupported(){if(jQuery.browser.msie&&jQuery.browser.version<7||(!jQuery.os.mac&&jQuery.browser.mozilla&&getBrowserVersionAsInt()<191)){return false}return true}function getBrowserVersionAsInt(){return parseInt(jQuery.browser.version.replace(/\.*/g,"").substring(0,3),10)}function getInactiveProperties(){if(jQuery.os.windows||jQuery.os.linux){return{position:"absolute",top:offsetY}}else{return{position:"fixed",top:offsetY-$win.scrollTop()}}}function needToApplyFlickerFix(){var browserVersion=jQuery.browser.version.replace(/\.*/g,"").substring(0,3);return jQuery.browser.mozilla&&browserVersion<192}function initialize(){$stalker=jQuery(selector),offsetY=$stalker.offset().top,$transitionElems=$stalker.prevAll(":visible");function setStalkerHeight(){$stalker.css("overflow","hidden");stalkerHeight=$stalker.height();$stalker.css("overflow","")}function createPlaceholder(){placeholder=jQuery("<div />").addClass("stalker-placeholder").css({visibility:"hidden",height:stalkerHeight}).insertBefore($stalker)}function setPlaceholderHeight(){if(!$stalker.hasClass("detached")){placeholder.height($stalker.height())}else{placeholder.height($stalker.removeClass("detached").height());$stalker.addClass("detached")}}setStalkerHeight();createPlaceholder();setPlaceholderHeight();$stalker.css(getInactiveProperties());$stalker.bind("stalkerHeightUpdated",setPlaceholderHeight);$stalker.bind("positionChanged",setStalkerPosition);if(needToApplyFlickerFix()){$stalker.addClass("fix-ff35-flicker")}isInitialized=true}function offsetPageScrolling(){function setScrollPostion(scrollTarget){var docHeight=jQuery.getDocHeight(),scrollPos;if(scrollTarget>=0&&scrollTarget<=docHeight){scrollPos=scrollTarget}else{if(scrollTarget>=$win.scrollTop()){scrollPos=docHeight}else{if(scrollTarget<0){scrollPos=0}}}$win.scrollTop(scrollPos)}function pageUp(){if(!isInitialized){initialize()}var scrollTarget=jQuery(window).scrollTop()-jQuery(window).height();setScrollPostion(scrollTarget+stalkerHeight)}function pageDown(){if(!isInitialized){initialize()}var scrollTarget=jQuery(window).scrollTop()+jQuery(window).height();setScrollPostion(scrollTarget-stalkerHeight)}jQuery(function(){$doc.bind("keydown keypress keyup",{combi:"pagedown",disableInInput:true},function(e){if(!jQuery.browser.mozilla&&e.type==="keydown"){pageDown()}else{if(jQuery.browser.mozilla&&e.type==="keypress"){pageDown()}}e.preventDefault()});$doc.bind("keydown keypress keyup",{combi:"pageup",disableInInput:true},function(e){if(!jQuery.browser.mozilla&&e.type==="keydown"){pageUp()}else{if(jQuery.browser.mozilla&&e.type==="keypress"){pageUp()}}e.preventDefault()});$doc.bind("keydown keypress keyup",{combi:"space",disableInInput:true},function(e){if(!jQuery.browser.mozilla&&e.type==="keydown"){pageDown()}else{if(jQuery.browser.mozilla&&e.type==="keypress"){pageDown()}}e.preventDefault()});$doc.bind("keydown keypress keyup",{combi:"shift+space",disableInInput:true},function(e){if(!jQuery.browser.mozilla&&e.type==="keydown"){pageUp()}else{if(jQuery.browser.mozilla&&e.type==="keypress"){pageUp()}}e.preventDefault()})})}function containDropdownsInWindow(){$doc.bind("showLayer",function(e,type,obj){var stalkerOffset,targetHeight;if(!isInitialized){initialize()}if(type==="dropdown"&&obj.$.parents(selector).length!==-1){stalkerOffset=($stalker.hasClass("detached")?0:$stalker.offset().top);targetHeight=jQuery(window).height()-$stalker.height()-stalkerOffset;if(targetHeight<=parseInt(obj.$.attr("scrollHeight"),10)){AJS.containDropdown.containHeight(obj,targetHeight)}else{AJS.containDropdown.releaseContainment(obj)}obj.reset();if(needToApplyFlickerFix()){$stalker.height($stalker.attr("scrollHeight"))}}}).bind("hideLayer",function(){if(needToApplyFlickerFix()){$stalker.height("")}})}if(!isSupported()){return}$win=jQuery(window);$doc=jQuery(document);selector=this.selector;offsetPageScrolling();containDropdownsInWindow();$doc.click(function(e){if(jQuery(e.target).parents(selector).length!==0&&!isInitialized){initialize()}});$doc.bind("showLayer",function(e,type){if($transitionElems){$transitionElems.css("opacity","")}if(jQuery.browser.mozilla&&type==="popup"){setStalkerPosition()}});jQuery(".stalker-placeholder, "+this.selector).offsetAnchors();function setStalkerPosition(){function getOpacitySetting(){var opacityTarget=1-$win.scrollTop()/offsetY;if(opacityTarget>1){return""}else{if(opacityTarget<0){return 0}else{return opacityTarget}}}if(!isInitialized){initialize()}$transitionElems.css("opacity",getOpacitySetting());if(offsetY<=$win.scrollTop()){if(!$stalker.hasClass("detached")){$stalker.css({top:0,position:"fixed"}).addClass("detached")}}else{$stalker.css(getInactiveProperties()).removeClass("detached")}lastScrollPosY=$win.scrollTop()}$win.scroll(setStalkerPosition).resize(function(){if($stalker){$stalker.trigger("stalkerHeightUpdated")}});$doc.mouseup(function(){if(lastScrollPosY&&$win.scrollTop()===lastScrollPosY){$transitionElems.css("opacity","   ")}});return this};
jQuery.fn.offsetAnchors=function(){var currentTargetName,isClick,offsetScroll,offsetElemSelector=this.selector;offsetScroll=function(){var targetElemName,targetScroll,targetElemOffset,offsetElem,offsetElemHeight,offsetElemY,targetElem;targetElemName=window.location.href.replace(/.*#(.*)/,"$1");if(targetElemName===currentTargetName&&!isClick){return}if(!/\w+/.test(targetElemName)){return}offsetElem=jQuery(offsetElemSelector);offsetElemHeight=offsetElem.outerHeight();offsetElemY=offsetElem.offset().top;targetElem=jQuery("#"+targetElemName);if(targetElem.length===0){targetElem=jQuery("a[name="+targetElemName+"]")}if(!targetElem.is("visible")){targetElem=targetElem.parent()}targetElemOffset=targetElem.offset().top;if(targetElem.length>0&&(jQuery(window).scrollTop()>offsetElemY+offsetElemHeight)){targetScroll=targetElemOffset-30-offsetElemHeight;if(jQuery.browser.safari){jQuery(function(){window.setTimeout(function(){jQuery(window).scrollTop(targetScroll)},100)})}else{jQuery(window).scrollTop(targetScroll)}currentTargetName=targetElemName}};if(/#.+/.test(window.location.href)){jQuery(window).one("scroll",offsetScroll)}jQuery(document).click(function(){isClick=true;jQuery(window).one("scroll",offsetScroll);window.setTimeout(function(){jQuery("html,body").unbind("scroll",offsetScroll);isClick=null},20)});jQuery.fn.offsetAnchors=function(){throw"Anchors can only be offset from a single element. Current offset elem is: "+offsetElemSelector}};
jQuery("#stalker.stalker").stalker();jQuery(function(){var openInNewWindow=function(e){e.preventDefault();e.stopPropagation();var $this=jQuery(this);jQuery(document).click();window.open($this.attr("href"),"screenshot","width=800,height=700,scrollbars=yes,status=yes")};jQuery(document).keydown(function(e){if(e.keyCode===27){jQuery("#comment-issue.active").click()}});AJS.$("#comment-issue").click(function(e){e.preventDefault();var elem=jQuery(this);if(elem.hasClass("active")){elem.removeClass("active");jQuery("#stalker").removeClass("action");jQuery("#add_comment").appendTo("#addcomment .mod-content")}else{if(AJS.$("#addcomment").hasClass("active")){AJS.$("#footer-comment-button").click()}elem.addClass("active");jQuery("#stalker").addClass("action");jQuery("#add_comment").appendTo(".ops-cont");AJS.$("#comment").focus().trigger("refreshInputHeight")}jQuery("#stalker").trigger("stalkerHeightUpdated")});AJS.$("#footer-comment-button").click(function(e){e.preventDefault();var elem=jQuery("#addcomment");if(elem.hasClass("active")){elem.removeClass("active")}else{if(AJS.$("#comment-issue").hasClass("active")){AJS.$("#comment-issue").click()}elem.addClass("active");jQuery("#add_comment").appendTo("#addcomment .mod-content");AJS.$("#comment").focus().trigger("refreshInputHeight")}});jQuery(".module #issuetable tr").hover(function(){jQuery(this).addClass("hover")},function(){if(!AJS.dropDown.current){jQuery(this).removeClass("hover")}});jQuery(document).bind("hideLayer",function(e,type,obj){if(type==="dropdown"&&obj.$.parent().hasClass("action-dropdown")){obj.$.closest("tr").removeClass("hover")}});jQuery(document).bind("showWikiInput",function(e,previewElem){jQuery("#stalker").trigger("stalkerHeightUpdated");jQuery("#comment").expandOnInput();return arguments.callee}());jQuery(document).bind("showWikiPreview",function(){jQuery("#stalker").trigger("stalkerHeightUpdated")});jQuery("#add_comment_cancel").click(function(e){e.preventDefault();var stalkerCommentButton=AJS.$("#comment-issue"),footerCommentModule=AJS.$("#addcomment ");if(AJS.$("#comment-edit").hasClass("previewClass")){AJS.$("#comment-preview_link").click()}if(stalkerCommentButton.hasClass("active")){stalkerCommentButton.click()}else{if(footerCommentModule.hasClass("active")){AJS.$("#footer-comment-button").click()}}AJS.$("#comment").val("")});AJS.$("#commentDiv input[type='submit']").click(function(e){if(AJS.$("#comment").val()===""){e.preventDefault();AJS.$("#emptyCommentErrMsg").show()}});AJS.$("#attach-screenshot").click(openInNewWindow);AJS.$("#tt_include_subtasks input").click(function(e){if(AJS.$(this).is(":checked")){AJS.$("#tt_info_single").hide();AJS.$("#tt_info_aggregate").show()}else{AJS.$("#tt_info_aggregate").hide();AJS.$("#tt_info_single").show()}});if(jQuery.browser.mozilla&&/^1\.9\.1/.test(jQuery.browser.version)&&!jQuery.os.mac){var stalker=jQuery("#stalker");var setStalkerWidth=function(){var contentWidth=jQuery("#main-content").outerWidth();if(contentWidth<1000){stalker.width(contentWidth)}else{stalker.css("width","")}};jQuery(window).resize(setStalkerWidth);setStalkerWidth();stalker.trigger("stalkerHeightUpdated")}var toggleVotingAndWatching=function(trigger,className,resultContainer,issueOpTrigger,i18n){var classNameOn=className+"-on";var classNameOff=className+"-off";var method="POST";if(trigger.hasClass(classNameOn)){method="DELETE"}var restPath="/voters";if(className.indexOf("watch")!==-1){restPath="/watchers"}trigger.removeClass(classNameOn).removeClass(classNameOff);AJS.$(AJS.$.ajax({url:contextPath+"/rest/api/1.0/issues/"+trigger.attr("rel")+restPath,type:method,dataType:"json",contentType:"application/json",data:{empty:true},success:function(response){if(method==="POST"){trigger.addClass(classNameOn).attr("title",i18n.titleOn);issueOpTrigger.attr("title",i18n.titleOn).text(i18n.textOn)}else{trigger.addClass(classNameOff).attr("title",i18n.titleOff);issueOpTrigger.attr("title",i18n.titleOff).text(i18n.textOff)}resultContainer.text(response.count)},error:function(XMLHttpRequest,textStatus,errorThrown){alert(i18n.errorText);if(method==="POST"){trigger.addClass(classNameOff).attr("title",i18n.titleOff);issueOpTrigger.attr("title",i18n.titleOff).text(i18n.textOff)}else{trigger.addClass(classNameOn).attr("title",i18n.titleOn);issueOpTrigger.attr("title",i18n.titleOn).text(i18n.textOn)}}})).throbber({target:trigger})};AJS.$("#toggle-vote-issue").click(function(e){e.preventDefault();AJS.$("#toggle_voting_label").click()});AJS.$("#toggle-watch-issue").click(function(e){e.preventDefault();AJS.$("#toggle_watching_label").click()});AJS.$("#toggle_voting_label").click(function(e){e.preventDefault();var i18n={titleOn:AJS.params.issueOpTitleUnvote,titleOff:AJS.params.issueOpTitleVote,textOn:AJS.params.issueOpUnvote,textOff:AJS.params.issueOpVote,errorText:AJS.params.errorVoting};toggleVotingAndWatching(AJS.$(this),"icon-vote",AJS.$("#votes-data"),AJS.$("#toggle-vote-issue"),i18n)});AJS.$("#toggle_watching_label").click(function(e){e.preventDefault();var i18n={titleOn:AJS.params.issueOpTitleUnwatch,titleOff:AJS.params.issueOpTitleWatch,textOn:AJS.params.issueOpUnwatch,textOff:AJS.params.issueOpWatch,errorText:AJS.params.errorWatching};toggleVotingAndWatching(AJS.$(this),"icon-watch",AJS.$("#watchers-data"),AJS.$("#toggle-watch-issue"),i18n)});AJS.$(".shorten").shorten();AJS.moveInProgress=false;AJS.$(document).bind("moveToStarted",function(){AJS.moveInProgress=true}).bind("moveToFinished",function(){AJS.moveInProgress=false});AJS.$(".issue-data-block").mouseover(function(){if(!AJS.moveInProgress){AJS.$(".issue-data-block.focused").removeClass("focused");AJS.$(this).addClass("focused")}});AJS.$(".issuePanelContainer").mouseout(function(){if(!AJS.moveInProgress){AJS.$(".issue-data-block.focused").removeClass("focused")}});if(jQuery.browser.msie&&parseInt(jQuery.browser.version,10)===7){jQuery("a.twixi").bind("focus",function(e){e.preventDefault()})}else{jQuery(document).bind("moveToFinished",function(event,target){jQuery("a.twixi:visible",target).focus()})}});jQuery(function(){if(AJS.dropDown.actionDropdowns.length>0){jQuery.each(AJS.dropDown.actionDropdowns,function(){this.addCallback("refreshSuccess",function(){AJS.containDropdown(this,".active-area")});this.addCallback("show",function(){AJS.containDropdown(this,".active-area")})})}});jQuery(function(){if(jQuery.browser.msie&&jQuery.browser.version<7){return}var initFancyBoxForClass=function(aClassName){var closeFancyBox=function(){jQuery(aClassName).fancybox.close()};var isFireFoxLinux=function(){return jQuery.os.linux&&jQuery.browser.mozilla};var useOverlay=true;if(isFireFoxLinux()){useOverlay=false}var fancyBoxOptions={"zoomSpeedIn":300,"zoomSpeedOut":300,"imageScale":true,"centerOnScroll":false,"overlayShow":useOverlay,callbackOnStart:function(){jQuery("#header").css("zIndex","-1");if(useOverlay){jQuery("body").addClass("fancybox-show")}},"callbackOnShow":function(){jQuery(document).click(function(){closeFancyBox()})},"callbackOnClose":function(){jQuery("#header").css("zIndex","");if(useOverlay){jQuery("body").removeClass("fancybox-show")}jQuery(document).unbind("click",closeFancyBox);if(jQuery.browser.safari){var top=AJS.$(window).scrollTop();AJS.$(window).scrollTop(10+5*(top==10)).scrollTop(top)}}};jQuery(aClassName).fancybox(fancyBoxOptions)};initFancyBoxForClass("a.gallery")});
AJS.Shorten=Class.extend({_getDefaultOptions:function(){return{items:"a, span",numRows:1,shortenText:"hide",shortenOnInit:true,persist:true}},init:function(options){var that=this;if(typeof options==="string"){options={element:options}}options=options||{};this.options=AJS.$.extend(this._getDefaultOptions(),options);this.$container=AJS.$(this.options.element);this.$container.css({padding:0,display:"block"});if(this.options.persist){AJS.Cookie.read(this.$container.attr("id"),"hidden")}if(this._isShortenedOnLoad()){this.shorten()}else{this.expand()}AJS.$(window).resize(function(){if(!that.expanded){that.shorten()}})},_isShortenedOnLoad:function(){var cookieValue=AJS.Cookie.read(this.$container.attr("id"));if(cookieValue==="hidden"){return true}else{if(cookieValue==="shown"){return false}else{if(this.options.shortenOnInit){return true}}}return false},_renders:{ellipsis:function(itemsHidden){return AJS.$("<a href='#' class='ellipsis'>("+(itemsHidden)+")</a><br />")},shortenTip:function(removeText){return AJS.$("<a title='Hide' class='icon icon-hide' href='#'><span>"+removeText+"</span></a>")}},_removeEllipsis:function(){if(this.$ellipsis){this.$ellipsis.remove();this.$ellipsis=null}},_hasEllipsisWrapped:function(){return this.$ellipsis.attr("offsetTop")>this.$ellipsis.prev().attr("offsetTop")},_insertEllipsis:function(afterElement,itemsHidden){function moveEllipsisBackAnItem(){afterElement=that.$ellipsis.prev().prev();that._removeEllipsis();that.$ellipsis=that._renders.ellipsis(itemsHidden+1).insertAfter(afterElement)}var that=this;this.$ellipsis=this._renders.ellipsis(itemsHidden).insertAfter(afterElement);if(this.$items[0]!==afterElement&&this._hasEllipsisWrapped()){moveEllipsisBackAnItem()}this.$ellipsis.click(function(e){e.preventDefault();that.expand()})},shorten:function(moveToShortened){function hasWrapped(){if(i<that.$items.length-1){return that.$items[i].offsetTop<that.$items[i+1].offsetTop||that.$items[i].offsetHeight>that.$items[i+1].offsetHeight+5}else{return that.$items[i].offsetTop>that.$items[i-1].offsetTop||that.$items[i].offsetHeight>that.$items[i-1].offsetHeight+5}}var availableRows=this.options.numRows,i=0,rows=0,that=this;this._removeEllipsis();if(this.$shortenTip){this.$shortenTip.remove()}this.$items=this.$container.children(this.options.items);if(this.$items.length<2){return}this.$container.css({overflow:"hidden"});do{if(hasWrapped()){rows++;if(rows===availableRows){if(i==0){that._insertEllipsis(this.$items[0],this.$items.length-1)}else{that._insertEllipsis(this.$items[i-1],this.$items.length-i)}that.$container.height(this.$items[0].offsetHeight+2*that.options.numRows);break}else{if(i===0){availableRows=availableRows+1}}}i++}while(this.$items[i]);if(this.options.persist){AJS.Cookie.save(this.$container.attr("id"),"hidden")}if(moveToShortened){this.$container.moveTo(false)}delete this.expanded},expand:function(){function canBeShortened(){return that.$items[0].offsetTop>that.$items[that.$items.length-1].offsetTop||that.$items[0].offsetHeight>that.$items[that.$items.length-1].offsetHeight+5}var that=this;this.expanded=true;this._removeEllipsis();this.$items=AJS.$(this.options.items);this.$container.height("");if(this.$items.length>1&&canBeShortened()){this.$shortenTip=this._renders.shortenTip(this.options.shortenText);this.$shortenTip.appendTo(this.$container).click(function(e){that.shorten(true);e.preventDefault()})}if(this.options.persist){AJS.Cookie.save(this.$container.attr("id"),"shown")}}});jQuery.fn.shorten=function(options){var res=[];this.each(function(){options=options||{};options.element=this;res.push(new AJS.Shorten(options))});return res};

