AJS.Labels=(function(e){var j={parse:function(r){var s=[],q=e(r);if(q.is(d.labelItem)){s.push(q[0])}else{q.find(d.labelItem).each(function(){s.push(this)})}return s},contains:function(s){var q=e(s),r=q.text(),v=q.attr(v),t=e(d.labelView).first(),u;u=h()?":contains('"+r+"')":"["+d.idAttribute+"='"+v+"']";return !!t.find(d.labelItem).filter(u).size()},size:function(){return e(d.labelView).first().find(d.labelItem).size()}};var d={labelView:".label-list",labelItem:".label",noLabelsMessage:".no-labels-message",idAttribute:"data-label-id"};var p=Confluence.getContextPath(),n={index:p+"/labels/autocompletelabel.action?maxResults=3",create:p+"/json/addlabelactivity.action",validate:p+"/json/validatelabel.action",destroy:p+"/json/removelabelactivity.action"};var h=function(){return !!document.getElementById("createpageform")};var a=function(){return e(".space-administration").size()};var f=0;var m=function(s){var q;var r=b();o();q=s();if(q&&q.promise){q.done(function(u,t){AJS.Meta.set("num-labels",j.size());i(t);e("#rte-button-labels").trigger("updateLabel")});q.done(l);q.fail(l);q.done(r);q.fail(r)}return q};var b=function(){var q=e("#labelsString, #add-labels-editor-button");q.addClass("disabled");return function(){q.removeClass("disabled")}};var l=function(){e("#labelsString").val("")};var o=function(q){q=q||null;e("#labelOperationErrorMessage").html(q).toggle(!!q)};var i=function(q){var r=e(q);r.each(function(){var u=e(this),t=u.find("li").size(),s=u.siblings(d.noLabelsMessage);s.toggle(!t)})};var k=function(q){if(!q){return false}var s={type:"POST",dataType:"json",data:{}},t,r=e.Deferred();s.url=h()?n.validate:n.create;s.data.entityIdString=AJS.params.pageId;s.data.labelString=q;t=AJS.safe.ajax(s);t.done(function(w){var v=e(d.labelView),u=j.parse(w.response),x=e(u);x.each(function(){if(j.contains(this)){return}var z,y=e("<li/>");if(h()){z=f+(new Date().getTime());this.setAttribute(d.idAttribute,z);f++}y.append(this).appendTo(v)});if(!w.success){o(w.response)}r.resolve(x,v)});t.fail(function(w,u,v){AJS.log(v);o(v.message);r.reject(v.message)});h()&&t.done(function(){var u=e("#createPageLabelsString").val();e("#createPageLabelsString").val(u+" "+q)});return r.promise()};var c=function(r){if(!r){return false}r=r.jquery?r:e(r);var v=r.attr(d.idAttribute),q=jQuery.trim(r.text()),u,t={type:"POST",dataType:"json",data:{}},s=e.Deferred();if(h()){u=e.Deferred();u.resolve()}else{if(a()){t.type="GET";t.url=p+"/spaces/removelabelfromspace.action";t.data.key=AJS.Meta.get("space-key");t.data.labelId=v;t.dataType="text"}else{t.url=n.destroy;t.data.entityIdString=AJS.params.pageId;t.data.labelIdString=v}u=AJS.safe.ajax(t)}u.done(function(){var w=e(d.labelItem);w=w.filter("["+d.idAttribute+"='"+v+"']");w.fadeOut("normal",function(){var x=w.closest(d.labelView);w.parent().remove();s.resolve(r,x)})});u.fail(function(y,w,x){console.log(x);o(x.message);s.reject()});h()&&s.done(function(){var w=e("#createPageLabelsString").val();var x=w.split(/\s+/);x=e.grep(x,function(y){return(!y||y==q)},true);e("#createPageLabelsString").val(x.join(" "))});return s.promise()};var g=function(){var v=e("#labelsString"),u=v.parents("#add-labels-form").length;if(!v.length){return}var s=function(w){e("#labelsAutocompleteList").append(w)};var t=function(E){if(E.find("a.label-suggestion").length){var F=e("span",E),B=e.data(F[0],"properties"),D=v.val(),x=[];if(u){x=D.split(/\s+/);x[x.length-1]=B.name;v.val(x.join(" "))}else{var C=AJS.Labels.queryTokens,I=-1,y,z="";for(var A=0,H=C.length;A<H;A++){z=C[A];y=D.lastIndexOf(z);if(y>I){I=y}}if(I!=-1){var G=D.substr(0,I);var w=D.substr(I+z.length).match(/^\s+/);if(w){G+=w[0]}v.val(G+B.name)}else{v.val(B.name)}}}};var q=function(){if(!e("#labelsAutocompleteList .label-suggestion").length){this.hide()}else{if(!u){var y=e("#labelsAutocompleteList a.label-suggestion");for(var w=0,x=y.length;w<x;w++){y.get(w).href="#"}}}};var r="/labels/autocompletelabel.action?maxResults=3";e(window).bind("quicksearch.ajax-success",function(x,w){if(w.url==r){AJS.Labels.queryTokens=(w.json&&w.json.queryTokens)||[];return false}});e(window).bind("quicksearch.ajax-error",function(x,w){if(w.url==r){AJS.Labels.queryTokens=[];return false}});v.quicksearch(r,q,{makeParams:function(w){return{query:w,contentId:AJS.params.pageId||""}},dropdownPlacement:s,ajsDropDownOptions:{selectionHandler:function(x,w){t(w);this.hide();x.preventDefault()}}})};return{addLabel:function(q){return m(function(){return k(q)})},removeLabel:function(q){return m(function(){return c(q)})},bindAutocomplete:g}})(AJS.$);
AJS.toInit(function(b){var a=function(c){b("#labels_div").toggleClass("hidden");b("#labels_info").toggleClass("hidden");if(b("#labels_div").hasClass("hidden")){b("#labels_info").html(b("#labelsString").val().toLowerCase());b("#labels_edit_link").html("Edit")}else{b("#labels_edit_link").html("Done")}if(c){c.preventDefault()}};b("#labels_edit_link").click(a);AJS.Labels.bindAutocomplete();b(".label-list.editable a.label").live("click",function(c){c.preventDefault()});b(".label-list.editable .remove-label").live("click",function(c){c.preventDefault();AJS.Labels.removeLabel(this.parentNode)});b(".edit-space-details").find(".label-list").addClass("editable")});

