document.observe('dom:loaded', function() {

  // if ($('mlc_item_tags')) {
  //   $$('form.remove_tagging').each(function(form_element) {
  //     var link = new Element('a', {'href': '#remove_tagging'}).insert(
  //       new Element('img', {
  //         'src': '/matlabcentral/linkexchange/images/icon_subtract.gif',
  //         'alt': 'Remove this tag'
  //       })
  //     );
  //     link.addClassName('remove_tag');
  // 
  //     var href = form_element.readAttribute('action');
  //     var params = form_element.serialize();
  // 
  //     link.observe('click', function(event) {
  //       event.stop();
  //       new Ajax.Request(href, {
  //         'method': 'post',
  //         'parameters': params,
  //         'onSuccess': function(response) {
  //           console.log('removed');
  //         }
  //       });
  //     });
  //     form_element.replace(link);
  //   });
  // }

  if ($('recommended_tags')) {
    $('recommended_tags_toggle').removeClassName('hide');

    $('recommended_tags_toggle').down('a').observe('click', function(event) {
      event.stop();
      if ($('recommended_tags_secondary').hasClassName('hide')) {
        event.element().update('Show fewer tags');
      } else {
        event.element().update('Show more tags');
      }
      $('recommended_tags_secondary').toggleClassName('hide');
    });

    var form_element = $('tags');

    if (form_element) {
      var create_tag_name_link = function(tag) {
        var link = new Element('a', {'href': '#add_tag_' + tag.gsub(/ /, '_')}).update(tag);

        link.observe('click', function(event) {
          event.stop();
          var tag_name = event.element().innerHTML;

          event.element().up('span').update(tag_name);
          if (form_element.value == '') {
            form_element.value = tag_name;
          }
          if (form_element.value != '' && !form_element.value.include(tag_name)) {
            form_element.value = form_element.value + ', ' + tag_name;
          }
        });
        return link;
      }

      form_element.observe('blur', function() {
        var users_tag_names = form_element.value.split(', ');
        var suggested_links = $("recommended_tags").getElementsBySelector('span').map(function(span) {
          return !span.down('a') ? span : null;
        }).compact();
        suggested_links.each(function(span) {
          if (!users_tag_names.include(span.innerHTML)) {
            span.update(create_tag_name_link(span.innerHTML));
          }
        });
      });

      $("recommended_tags").getElementsBySelector('span').each(function(element) {
        var tag_name = element.innerHTML;
        var link     = create_tag_name_link(tag_name);
        element.update(link);
      });
    }
  }
});