PageSourceSearch

https://mfk.dk/wp-content/plugins/stom-woocommerce-favourites/assets/script.js?ver=7.0

js mfk.dk collected 2026-10-06 11:23:23 UTC 7,127 bytes, 230 lines download raw bytes

1
2(function($) {
3
4
5	var stomWF = {};
6
7
8	stomWF.getItem = function(data) {
9		return window.localStorage.getItem(data + '_' + stomWF_siteIdentify);
10	}
11
12	stomWF.setItem = function(data) {
13		return window.localStorage.setItem(data + '_' + stomWF_siteIdentify, JSON.stringify(stomWF.storage));
14	}
15
16
17	function displayMessage($parent, message, status) {
18		if (!$parent)
19			return false;
20
21
22		if (undefined === window.stomWFMessageTimer)
23			window.stomWFMessageTimer = {};
24
25		if (window.stomWFMessageTimer[$parent.attr('data-product-id')])
26			window.clearTimeout(window.stomWFMessageTimer[$parent.attr('data-product-id')]);
27
28		if ($('.stomWF-message', $parent).length)
29			$('.stomWF-message', $parent).remove();
30
31		$parent.prepend('<div class="stomWF-message stomWF-' + status + '"><p>' + message + '</p></div>');
32		$('.stomWF-message', $parent).fadeIn(200);
33
34		window.stomWFMessageTimer[$parent.attr('data-product-id')] = window.setTimeout(function() {
35			$('.stomWF-message', $parent).fadeOut(300, function() {
36				$('.stomWF-message', $parent).remove();
37			});
38		}, 3000);
39	}
40
41
42	function displayAddedToFavourites(productId) {
43		if (typeof productId === 'undefied')
44			return false;
45
46		if (!stomWF.generatedData.hasOwnProperty(productId))
47			return false;
48
49		if (!$('.stomWF-favourites-list-link .favourites-added-list').length)
50			return false;
51
52
53		$('.stomWF-favourites-list-link').addClass('list-open');
54
55		if ($('[data-stomwf-product-id="' + productId + '"]').length)
56			return false;
57
58
59		$('.stomWF-favourites-list-link .favourites-added-list').css('display', '').append(stomWF.addedToList[productId]);
60	}
61
62
63	function displayRemovedFromFavourites(productId) {
64		if (typeof productId === 'undefied')
65			return false;
66
67		if (!$('.stomWF-favourites-list-link .favourites-added-list').length)
68			return false;
69
70
71		if ($('.stomWF-favourites-list-link [data-stomwf-product-id="' + productId + '"]').length)
72			$('.stomWF-favourites-list-link [data-stomwf-product-id="' + productId + '"]').remove();
73
74
75		if (!$('.stomWF-favourites-list-link .favourites-added-list .added-item').length)
76			$('.stomWF-favourites-list-link .favourites-added-list-close').click();
77	}
78
79
80	function onAddedToFavourites(showMessage, $favouritesBtn) {
81		var svg = $favouritesBtn.find('svg').get(0).outerHTML;
82
83		if ($favouritesBtn.parents('#product-' + $favouritesBtn.attr('data-product-id')).length)
84			$favouritesBtn.addClass('current-favourite').children('a').html(svg);
85		else
86			$favouritesBtn.addClass('current-favourite');
87
88		if (showMessage) {
89			displayMessage($favouritesBtn, 'Vare gemt som favorit', 'success');
90
91			displayAddedToFavourites($favouritesBtn.attr('data-product-id'));
92		}
93	}
94
95
96	function onRemovedFromFavourites(showMessage, $favouritesBtn) {
97		var svg = $favouritesBtn.find('svg').get(0).outerHTML;
98
99		if ($favouritesBtn.parents('#product-' + $favouritesBtn.attr('data-product-id')).length)
100			$favouritesBtn.removeClass('current-favourite').children('a').html(svg);
101		else
102			$favouritesBtn.removeClass('current-favourite');
103
104		if (showMessage) {
105			displayMessage($favouritesBtn, 'Vare fjernet fra favoritter', 'success');
106
107			displayRemovedFromFavourites($favouritesBtn.attr('data-product-id'));
108		}
109	}
110
111
112	function updateFavouritesCount() {
113		var favouritesStorage = stomWF.getItem('stomWF') ? JSON.parse(stomWF.getItem('stomWF')) : false;
114		if (favouritesStorage.constructor === Object && Object.keys(favouritesStorage).length !== 0)
115			$('.display, .filler', '.stomWF-favourites-list-link').text(Object.keys(favouritesStorage).length);
116		else
117			$('.display, .filler', '.stomWF-favourites-list-link').text(0);
118	}
119	updateFavouritesCount();
120
121
122
123	function handleAddToFavouritesButtons() {
124		$('.stom-add-to-favourites:not(.handled)').each(function() {
125			var productId = $(this).attr('data-product-id');
126
127			if (!stomWF.generatedData.hasOwnProperty(productId)) {
128				var $stomWF_generatedData = $('.stomWF-generated-data[data-product-id=' + productId + ']');
129				stomWF.generatedData[productId] = $stomWF_generatedData.attr('data-product-html');
130				stomWF.addedToList[productId] = $stomWF_generatedData.attr('data-product-added-html');
131				// $stomWF_generatedData.remove();
132			}
133
134			if (stomWF.storage.hasOwnProperty(productId))
135				onAddedToFavourites(false, $(this));
136			
137			$(this).addClass('handled');
138		});
139	}
140	window.handleAddToFavouritesButtonsFunc = handleAddToFavouritesButtons;
141
142
143
144	$(window).on('load', function() {
145		stomWF.generatedData = {};
146		stomWF.addedToList = {};
147		stomWF.storage = stomWF.getItem('stomWF') ? JSON.parse(stomWF.getItem('stomWF')) : {};
148
149		handleAddToFavouritesButtons();
150	});
151
152
153
154	$('body').on('click', '.stom-add-to-favourites', function(e) {
155		e.preventDefault();
156		e.stopPropagation();
157
158		var productId = $(this).attr('data-product-id');
159
160		if (!$(this).hasClass('current-favourite')) {
161			stomWF.storage = stomWF.getItem('stomWF') ? JSON.parse(stomWF.getItem('stomWF')) : {};
162			stomWF.storage[productId] = stomWF.generatedData[productId];
163
164			stomWF.setItem('stomWF', JSON.stringify(stomWF.storage));
165
166			onAddedToFavourites(true, $(this));
167		} else {
168			delete stomWF.storage[productId];
169
170			stomWF.setItem('stomWF', JSON.stringify(stomWF.storage));
171
172			onRemovedFromFavourites(true, $(this));
173		}
174
175		updateFavouritesCount();
176	});
177
178
179
180	if ($('#stomWF-favourites-list-wrap').length) {
181		var favouritesStorage = stomWF.getItem('stomWF') ? JSON.parse(stomWF.getItem('stomWF')) : false;
182		if (Object.keys(favouritesStorage).length === 0 && favouritesStorage.constructor === Object)
183			favouritesStorage = false;
184
185		var favouritesListHTML = '';
186
187		if (favouritesStorage) {
188			$.each(favouritesStorage, function(productID, productHTML) {
189				favouritesListHTML += productHTML;
190			});
191		} else {
192			favouritesListHTML = '<p class="message no-products">Du har ingen produkter på din favoritliste</p>';
193		}
194
195		$('#stomWF-favourites-list').html(favouritesListHTML);
196	}
197
198
199
200	$('ul#stomWF-favourites-list .item-close').on('click', function(e) {
201		e.preventDefault();
202		e.stopPropagation();
203
204		stomWF.storage = stomWF.getItem('stomWF') ? JSON.parse(stomWF.getItem('stomWF')) : {};
205
206		delete stomWF.storage[$(this).attr('data-product-id')];
207
208		stomWF.setItem('stomWF', JSON.stringify(stomWF.storage));
209
210		$(this).parent().remove();
211
212		displayMessage($('#stomWF-favourites-list'), 'Vare fjernet fra favoritter', 'success');
213
214		updateFavouritesCount();
215
216		if (Object.keys(stomWF.storage).length === 0 && stomWF.storage.constructor === Object)
217			$('#stomWF-favourites-list').append('<p class="message no-products">Du har ingen produkter på din favoritliste</p>');
218	});
219
220
221
222	$(document.body).on('click', '.stomWF-favourites-list-link .favourites-added-list-close', function() {
223		$('.stomWF-favourites-list-link .favourites-added-list').fadeOut(250, function() {
224			$('.stomWF-favourites-list-link').removeClass('list-open');
225			$(this).css('display', '');
226		});
227	});
228
229
230})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.