AJS.toInit(function(G){function D(I){return G.trim(I).length==0}var C,F=140;function E(){var I=new AJS.Dialog(650,200,"update-user-status-dialog");I.addHeader(AJS.params.statusDialogHeading||"What are you working on?");I.addPanel("Set Status","<form class='aui update-status'><fieldset><legend class='assistive'>Status Update</legend><label for='status-text' class='assistive'>"+AJS.params.statusDialogAccessibilityLabel+"</label><textarea name='status-text' id='status-text'></textarea><span id='update-status-chars-left'>"+F+"</span><div id='dialog-current-status' class='current-user-latest-status'>"+(AJS.params.statusDialogLatestLabel||"Latest:")+" <span class='status-text'></span></div></fieldset></form>");I.addButton(AJS.params.statusDialogUpdateButtonLabel||"Update",A,"status-update-button");I.addButton(AJS.params.statusDialogCancelButtonLabel||"Cancel",function(J){J.hide()},"status-cancel-button");I.popup.element.find(".dialog-button-panel").append("<span class='error-message'></span>");I.setError=function(J){G("#update-user-status-dialog .error-message").html(J)};return I}function B(I){G(".current-user-latest-status .status-text").html(I.text);G(".current-user-latest-status a[id^=view]").each(function(){var K=G(this),J=K.attr("href");K.attr("href",J.replace(/\d+$/,I.id)).text(I.friendlyDate).attr("title",new Date(I.date).toLocaleString())})}function H(){G.getJSON(AJS.Confluence.getContextPath()+"/status/current.action",function(I){if(I.errorMessage!=null){C.setError(I.errorMessage)}else{B(I)}})}var A=function(){var I=G("#update-user-status-dialog #status-text").attr("disabled","disabled").attr("readonly","readonly").blur();var J=I.val();G(".status-update-button").attr("disabled","disabled");if(J.length>F||D(J)){return false}AJS.safe.ajax({url:AJS.Confluence.getContextPath()+"/status/update.action",type:"POST",dataType:"json",data:{text:J},success:function(K){if(K.errorMessage!=null){C.setError(K.errorMessage)}else{B(K);I.val("");setTimeout(function(){C.hide()},1000)}},error:function(M,L,K){AJS.log("Error updating status: "+L);AJS.log(K);C.setError("There was an error - "+K)}})};G("#set-user-status-link").click(function(K){var J=G(this).parents(".ajs-drop-down")[0];J&&J.hide();if(typeof C=="undefined"){C=E();var L=G("#update-status-chars-left");var I=G(".status-update-button").attr("disabled","disabled");G("#update-user-status-dialog form.update-status #status-text").keydown(function(M){if(M.which==13){A()}}).bind("blur focus change "+(G.browser.mozilla?"paste input":"keyup"),function(){var M=F-G(this).val().length;L.removeClass("over-limit").removeClass("close-to-limit").text(M);I.removeAttr("disabled");if(D(G(this).val())){I.attr("disabled","disabled")}if(M<0){L.addClass("over-limit").html("&minus;"+-M);I.attr("disabled","disabled")}else{if(M<20){L.addClass("close-to-limit")}}});G("#update-user-status-dialog form.update-status").submit(function(M){A();return AJS.stopEvent(M)})}C.setError("");H();C.show();G("#update-user-status-dialog #status-text").removeAttr("readonly").removeAttr("disabled").focus();return AJS.stopEvent(K)})});
