window.addEvent('domready', function(){
  $$('img.star').each(function(img) { 
    img.addEvent('mouseenter', function() {setFavoriteImage(this, true )});
    img.addEvent('mouseleave', function() {setFavoriteImage(this, false)});
  });
});

function setFavoriteImage(image_element, opposite) {
  var alt = image_element.getProperty('alt');  
  var imageSrc;
  var oppositeSrc;

  if(alt == 'Favorite') {
    imageSrc    = 'favorite.gif';
    oppositeSrc = 'unfavorite.gif';
  } else {
    imageSrc    = 'unfavorite.gif';
    oppositeSrc = 'favorite.gif';
  }
  
  if(opposite) {
    image_element.setProperty('src','/images/' + oppositeSrc);
  } else {
    image_element.setProperty('src','/images/' + imageSrc);
  }
}


function toggleFavorite(mls_number) {
  var favoriteLink = $('favorite_'+mls_number);
  var imageElement = favoriteLink.getElement('img');

  if(imageElement.get('alt') == "Favorite") {
    // unfavorite
    var req = new Request.HTML(
      {
        url:       '/listings/'+mls_number+'/unfavorite', 
        onSuccess: function(html) {
          imageElement.set('src',   '/images/unfavorite.gif');
          imageElement.set('title', 'Click to add to favorites');
          imageElement.set('alt',   'Unfavorite');
        }
      }).post({id: mls_number, _method: 'delete'});
  } else {
    // favorite
    var req = new Request.HTML(
      {
        url:       '/listings/'+mls_number+'/favorite', 
        onSuccess: function(html) {
          imageElement.set('src',   '/images/favorite.gif');
          imageElement.set('title', 'Click to remove from favorites');
          imageElement.set('alt',   'Favorite');
        }
      }).post({id: mls_number});
  }
}