Love & Friendship Cards

Make someone’s day with free love and friendship greeting cards! Discover a fabulous collection of free eCards filled with heartfelt wishes for your loved ones. Digital Greeting Cards have everything you love about traditional paper cards, but can be delivered immediately to the person you’re thinking of. Select a beautiful design, personalize the message to say, “I love you,” in your own special way, and send it today!

Love & Friendship

Make someone’s day with free love and friendship greeting cards! Discover a fabulous collection of free eCards filled with heartfelt wishes for your loved ones. Digital Greeting Cards have everything you love about traditional paper cards, but can be delivered immediately to the person you’re thinking of. Select a beautiful design, personalize the message to say, “I love you,” in your own special way, and send it today!

') $('.design-studio-favorite-modal').removeClass('hidden') } }); // Make a request to toggle the favorite status of the package function toggleFavorite(el) { hasToggleFavoritesRequest = true; var data = { user_favorite_package: { package_id: $(el).data('package-id'), package_type: 'ecard' } } var favoriteButton = $(el); if (favoriteButton.hasClass('icon-heart')) { $.ajax({ type: 'DELETE', url: '/user/favorites', headers: { 'X-CSRF-Token': csrfToken }, data: data, success: function(_data) { PBS.user.removeFavoriteEcard(data['user_favorite_package']['package_id']) favoriteButton.addClass('icon-heart-empty'); favoriteButton.removeClass('icon-heart'); hasToggleFavoritesRequest = false; }, error: function(_data) { alert("Sorry, your card couldn't be removed from your favorites. Please try again."); hasToggleFavoritesRequest = false; } }); } else { $.ajax({ type: 'POST', url: '/user/favorites', headers: { 'X-CSRF-Token': csrfToken }, data: data, success: function(_data) { window.dataLayer.push({ event: 'ecard_design_favorited', package_id: data.user_favorite_package.package_id }); PBS.user.addFavoriteEcard(data['user_favorite_package']['package_id']) favoriteButton.addClass('icon-heart'); favoriteButton.removeClass('icon-heart-empty'); hasToggleFavoritesRequest = false; }, error: function(_data) { alert("Sorry, your card couldn't be favorited. Please try again."); hasToggleFavoritesRequest = false; } }); } } $('.design-studio-favorite-modal .close-modal').click(function() { $('.design-studio-favorite-modal').addClass('hidden') $('.favorite-modal-overlay').remove() }) function setHeartsFromLocalStorage() { setHeartsFromIds(PBS.user.favoritesData().ecard_favorite_ids) } function setHeartsFromIds(ecard_favorite_ids) { _.forEach(ecard_favorite_ids, function(package_id) { $('.is-favorite[data-package-id="' + package_id + '"]').addClass('icon-heart').removeClass('icon-heart-empty'); }) } // Only set hearts if the user is logged in if (PBS.current_user.registered) { setHeartsFromLocalStorage(); // set hearts from local storage prior to making ajax request to prevent late-loading of hearts that haven't changed $.ajax({ url: '/user/favorites', method: 'GET', dataType: 'json', success: function(data) { try { localStorage.setItem('userFavorites', JSON.stringify(data)); setHeartsFromLocalStorage(); } catch (err) { // if local storage could not be set due to size constraints, don't let it break the rest of the js on the page console.log(err); setHeartsFromIds(data.ecard_favorite_ids) } } }) } else { localStorage.removeItem('userFavorites') } // Track category load });