﻿BenefulMap.AddToFavorites = Class.extend({
	init: function(context, favoritedDiv, slideDownDiv) {
	    this.context = context;
	    this.favoritedDiv = favoritedDiv;
	    if (slideDownDiv) {
            this.slideDownDiv =  slideDownDiv;
	    }
	    
	    this.addToFavoritesListener();
	},
	getContext: function() {
	   return this.context;
	},
	setContext: function() {
	   this.context = context;
	},
	getFavoritedDiv: function() {
	   return this.favoritedDiv;
	},
	getSlideDownDiv: function() {
	   return this.slideDownDiv;
	},
	addToFavoritesListener: function() {
        var self = this;
        $(document).bind("favorites.add_to", function(event, target, spotId) {
           self.addToFavorites(target, spotId);
        });
	},
	addToFavorites: function(target, spotId) {
        var self = this;
        var context = this.getContext();
        var favDiv = this.getFavoritedDiv();
        var slideDiv = this.getSlideDownDiv();
        
        $(target).unbind();
        $(target).bind('click', function(event) {
         event.preventDefault();
         WagWorld.Web.AjaxUtility.IsAuthenticated( function(result) {
             var isLoggedIn = result.value.Pass;
             if (isLoggedIn == true) {
                 WagWorld.Web.AjaxUtility.AddSpotToFavorites(spotId, function(result) {
                     if (result.value == true) {
                         switch(context) {
                            case 'infowin':
                                        $(favDiv).html("<span class='fave'>Favorited!</span>");
                                        break;
                            
                            case 'details':
                                        $(slideDiv).slideDown("fast");
                                        $(favDiv).html("<span>Favorited!</span>");
                                        break;
                            default:
                                        console.warn("unknown context in addFavorite");
                         }
                     }
                 });
             } else {
                 $(document).trigger("login.open");
             }
         });
        }); 
	}
});


