text: // Generated by CoffeeScript 1.6.2
  (function() {
    (function($) {
      return $.widget("IKS.hallowagtaillink", {
        options: {
          uuid: '',
          editable: null
        },
        populateToolbar: function(toolbar) {
          var button, getEnclosingLink, widget;
  
          widget = this;
          getEnclosingLink = function() {
            var node;
  
            node = widget.options.editable.getSelection().commonAncestorContainer;
            return $(node).parents('a').get(0);
          };
          button = $('<span></span>');
          button.hallobutton({
            uuid: this.options.uuid,
            editable: this.options.editable,
            label: 'Links',
            icon: 'icon-link',
            command: null,
            queryState: function(event) {
              return button.hallobutton('checked', !!getEnclosingLink());
            }
          });
          toolbar.append(button);
          return button.on("click", function(event) {
            var enclosingLink, lastSelection, url;
  
            enclosingLink = getEnclosingLink();
            if (enclosingLink) {
              $(enclosingLink).replaceWith(enclosingLink.innerHTML);
              button.hallobutton('checked', false);
              return widget.options.editable.element.trigger('change');
            } else {
              lastSelection = widget.options.editable.getSelection();
              if (lastSelection.collapsed) {
                url = window.chooserUrls.pageChooser + '?allow_external_link=true&allow_email_link=true&prompt_for_link_text=true';
              } else {
                url = window.chooserUrls.pageChooser + '?allow_external_link=true&allow_email_link=true';
              }
              return ModalWorkflow({
                url: url,
                responses: {
                  pageChosen: function(pageData) {
                    var a;
  
                    a = document.createElement('a');
                    a.setAttribute('href', pageData.url);
                    if (pageData.id) {
                      a.setAttribute('data-id', pageData.id);
                      a.setAttribute('data-linktype', 'page');
                    }
                    if ((!lastSelection.collapsed) && lastSelection.canSurroundContents()) {
                      lastSelection.surroundContents(a);
                    } else {
                      a.appendChild(document.createTextNode(pageData.title));
                      lastSelection.insertNode(a);
                    }
                    return widget.options.editable.element.trigger('change');
                  }
                }
              });
            }
          });
        }
      });
    })(jQuery);
  
  }).call(this);