if (!window.vm) {
  vm = {};
}

vm.urls = { 
  toggleFavorite: null,
  quickLook: null
}

vm.initFavorites = function() {
  vm.urls.toggleFavorite = toggleFavoriteUrl;
  $$('a.favlink').each(function(link) {
    Event.observe(link, 'click', vm.toggleFavorite);
  });
}

vm.addFavorite = function(slug) {
  var url = vm.urls.toggleFavorite;
  var a = new Ajax.Request(url, {
   parameters: 'slug='+slug+'&isFavorite=1',
   asynchronous:true, 
   evalScripts:false, 
   onSuccess:function(request, json){
     Element.update('numFavorites', json.numFavorites);
   }
  });
}

vm.toggleFavorite = function(e) {
  var link = Event.findElement(e, 'a');
  var url = vm.urls.toggleFavorite;
  var slug = link.id.replace('favorite_', '');
  var a = new Ajax.Request(url, {
   parameters: 'slug='+slug,
   asynchronous:true, 
   evalScripts:false, 
   onSuccess:function(request, json){
     $(link).className = json.klass; 
     Element.update('numFavorites', json.numFavorites);
   }
  });
  Event.stop(e);
};

Event.observe(window, 'load', function() { vm.initFavorites(); });
