$(function() {
    $(".favoritetoggle").click(function() {

        var self = this;

        if ($(self).hasClass("favoriteteam")) {
            var type = 'team';
            var postData = { team_id: this.id.substr("favoriteteam-".length) };
        } else if ($(self).hasClass("favoriteuser")) {
            var type = 'user';
            var postData = { user_id: this.id.substr("favoriteuser-".length) };
        } else {
            return;
        }


        $.post(
            '/favorites/toggle.json',
            postData,
            function (data, textStatus) {

                if (textStatus == 'success') {

                    var isFavorite = false;

                    for (var i = 0; i < data.length; i++) {
                        switch (type) {
                            case 'team':
                                if (data[i].TeamFavorite != undefined && data[i].TeamFavorite.favorite_team_id == postData.team_id) {
                                    isFavorite = true;
                                }
                                break;
                            case 'user':
                                if (data[i].Favorite != undefined && data[i].Favorite.favorite_user_id == postData.user_id) {
                                    isFavorite = true;
                                }
                                break;
                        }
                    }

                    if (isFavorite == true) {
                        var icon = "/img/icon/star.png";
                    } else {
                        var icon = "/img/icon/star_off.png";
                    }

                    $(self).attr("src", icon);

                }

            },
            'json'
        );

    });
});
