var Marketplace = window.Marketplace || {};


/*
 * Favorite Form
 * Converts the favorite links on detail pages to XHR requests so the
 * page doesn't refresh on click.
 */

Marketplace.FavoriteForm = (function($) {
  function onClick(e) {
    e.preventDefault();
    var link = $(this);

    $.ajax({
      type: 'POST',
      url: link.attr('href')
    });

    var parent = link.parent();
    var on_class = 'favorited';
    if (parent.hasClass(on_class)) {
      parent.removeClass(on_class);
      link.attr('href', link.attr('href').replace(/\/delete\//, '/add/'));
      link.text(link.text().replace('Delete', 'Add'));
    }
    else {
      parent.addClass(on_class);
      link.attr('href', link.attr('href').replace(/\/add\//, '/delete/'));
      link.text(link.text().replace('Add', 'Delete'));
    }
  }

  return function(link) {
    $(link).bind('click', onClick);
  };
})(jQuery);


jQuery(document).ready(function($) {
  $('.share_tools .favorite a.no_clickthru').each(function() {
    Marketplace.FavoriteForm(this);
  });
});


Marketplace.Follow = (function($) {
  function onClick(e) {
    e.preventDefault();
    var link = $(this);

    $.ajax({
      type: 'POST',
      url: link.attr('href')
    });

    if (link.hasClass('follow')) {
      link.removeClass('follow');
      link.addClass('unfollow');
      link.text('Unfollow');
      link.attr('href', link.attr('href').replace(/\/connect\//, '/disconnect/'));
    }
    else {
      link.removeClass('unfollow');
      link.addClass('follow');
      link.text('Follow');
      link.attr('href', link.attr('href').replace(/\/disconnect\//, '/connect/'));
    }
  }
  
  return function(link) {
    $(link).bind('click', onClick);
  }
})(jQuery);


jQuery(document).ready(function($) {
  $('a.follow, a.unfollow').each(function() {
    Marketplace.Follow(this);
  });
});

