PageSourceSearch

https://www.bellosmarket.com/wp-content/themes/fp-wp-gold-standard…/includes/drink-calculator.js?ver=1.1.7

js bellosmarket.com collected 2026-09-30 19:42:25 UTC 11,993 bytes, 341 lines download raw bytes

1(function($) {
2	window.drinkCalculator = {
3    	calculatedResults: {
4    		wine: '750ml bottle{0} of Wine',
5    		spirit: '750ml bottle{0} of Spirit',
6    		'beer': '6-pack{0} of Beer',
7    		'champagne': '750ml bottle{0} of Champagne/Sparkling Wine',
8    		'per_guest': 'drinks per guest',
9    		'total': 'total drinks'
10    	},
11    	init: function() {
12    		var $form = $('form#calculator'),
13    			$wineSlider = $form.find('#wineSlider'),
14		    	$beerSlider = $form.find('#beerSlider'),
15		    	$spiritSlider = $form.find('#spiritSlider'),		    	
16		    	$wine = $form.find('input#uxWine'),
17		    	$beer = $form.find('input#uxBeer'),
18		    	$spirit = $form.find('input#uxSpirits'),
19		    	$winePercent = $form.find('input#wine-percent'),
20		    	$beerPercent = $form.find('input#beer-percent'),
21		    	$spiritPercent = $form.find('input#spirit-percent'),
22		    	$wineLastValue = $form.find('input#wineLastValue'),
23		    	$beerLastValue = $form.find('input#beerLastValue'),
24		    	$spiritLastValue = $form.find('input#spiritsLastValue');		    	
25
26		    $wineSlider.slider({
27		        value: $winePercent.val(),
28		        min: 0,
29		        max: 100,
30		        step: 1,
31		        stop: function (event, ui) {
32					// if ((parseInt($wine.val()) + parseInt($beer.val()) + parseInt($spirit.val())) < 100)
33					// {
34					// 	$wine.val(parseInt($wine.val()) + 1);
35					// }
36		        },
37		        slide: function(event, ui) {
38					var difference = ui.value - $winePercent.val(),
39						remainder = adjustSlider("beer",difference,2,0);
40
41					remainder = adjustSlider("spirit",difference-(remainder*2),2,0,true);
42					$winePercent.val(ui.value);
43					$wineLastValue.val(Math.ceil(ui.value));
44					$wine.val(Math.ceil(ui.value));
45
46					if (remainder != 0)
47					{
48						remainder = adjustSlider("wine",-remainder,1,1,true);
49						return false;
50					}
51				}
52			});
53
54			$beerSlider.slider({
55			    value:$beerPercent.val(),
56			    min: 0,
57			    max: 100,
58			    step: 1,
59			    stop: function (event, ui) {
60				    // if (parseInt($wine.val()) + parseInt($beer.val()) + parseInt($spirit.val()) < 100)
61				    // {
62				    //     $beer.val(parseInt($beer.val()) + 1);
63				    // }
64				},
65				slide: function( event, ui ) {
66				    var difference = ui.value - $beerPercent.val();
67				    var remainder = adjustSlider("wine",difference,2,0);
68				    
69				    remainder = adjustSlider("spirit",difference-(remainder*2),2,0,true);
70				    $beerPercent.val(ui.value);
71				    $beerLastValue.val(Math.ceil(ui.value));
72				    $beer.val(Math.ceil(ui.value));
73				    
74				    if (remainder != 0)
75				    {
76				        remainder = adjustSlider("beer",-remainder,1,1,true);
77				        return false;
78				    }
79			}});
80
81			$spiritSlider.slider({
82			    value:$spiritPercent.val(),
83			    min: 0,
84			    max: 100,
85			    step: 1,
86			    stop: function (event, ui) {
87				    // if (parseInt($wine.val()) + parseInt($beer.val()) + parseInt($spirit.val()) < 100)
88				    // {
89				    //     $spirit.val(parseInt($spirit.val()) + 1);
90				    // }
91				},
92				slide: function( event, ui ) {
93				    var difference = ui.value - $spiritPercent.val();
94				    var remainder = adjustSlider("wine",difference,2,0);
95				    
96				    remainder = adjustSlider("beer",difference-(remainder*2),2,0,true);
97				    $spiritPercent.val(ui.value);
98				    $spiritLastValue.val(Math.ceil(ui.value));
99				    $spirit.val(Math.ceil(ui.value));
100				    
101				    if (remainder != 0)
102				    {
103				        remainder = adjustSlider("spirit",-remainder,1,1,true);
104				        return false;
105				    }
106				}});
107
108			$form.on('submit', function(event) {
109                event.preventDefault();
110                $form.find('.error').hide();
111
112                submitCalculation();
113            });
114
115			function submitCalculation(){
116				var numberOfGuests = $form.find('#guests').val(),
117					eventLength = parseInt($form.find('#length').val()),
118					errors = [];
119					
120				if(!eventLength || eventLength > 4 || eventLength < 1) errors.push({key: 'length', value: 'Must be between 1 and 4 hours'});
121				
122				if(!parseInt(numberOfGuests) || !this.drinkCalculator.isWholeNumber(numberOfGuests)) errors.push({key: 'guests', value: 'Must be between 1 and 2000 people'});
123				else numberOfGuests = parseInt(numberOfGuests);
124
125				if(errors.length) {
126					errors.forEach(function(item){
127						var $errorInput = $form.find('#' + item.key).next();
128						$errorInput.html(item.value).show();
129					});
130
131					if(!window.isSmall) $("html, body").animate({ scrollTop: 0 }, "slow");
132					return;
133				}
134				else $form.find('.error').hide();
135
136				var $results = $('body').find('.calculations-container').addClass('has-results'),
137					$resultCalc = $results.find('#calulations-placeholder'),
138					$resultRecommend = $results.find('#recommendations-placeholder'),
139					resultCalcHTML = '<ul>',
140					drinksPerHour = eventLength + 1,
141					drinksTotal = numberOfGuests * drinksPerHour,
142					winePercent = parseInt($wine.val()) / 100,
143					beerPercent = parseInt($beer.val()) / 100,
144					spiritPercent = parseInt($spirit.val()) / 100,
145					wineCount = Math.ceil(numberOfGuests * drinksPerHour * winePercent / 5),
146					beerCount = Math.ceil((numberOfGuests * drinksPerHour * beerPercent)/ 6),
147					spiritCount = Math.ceil(numberOfGuests * drinksPerHour * spiritPercent / 16),
148					champagneCount = 0,
149					champagneVal = $form.find('input[name=champagne]:checked').val();
150					
151				if(champagneVal == 'true') {
152					champagneCount = Math.ceil(numberOfGuests / 5);
153					drinksTotal = drinksTotal + numberOfGuests;
154					drinksPerHour = drinksPerHour + 1;
155				}
156
157				resultCalcHTML += '<li>' + drinksTotal + ' ' + this.drinkCalculator.calculatedResults.total + '</li>';
158			    resultCalcHTML += '<li>' + drinksPerHour + ' ' + this.drinkCalculator.calculatedResults.per_guest + '</li>';
159			    resultCalcHTML += '</ul>';
160			    $resultCalc.html(resultCalcHTML);
161
162			    resultCalcHTML = '<ul>';			    
163			    if(wineCount > 0) resultCalcHTML += '<li>' + wineCount + ' x ' + this.drinkCalculator.calculatedResults.wine.replace('{0}', wineCount > 1 ? 's' : '') + '</li>';
164			    if(spiritCount > 0) resultCalcHTML += '<li>' + spiritCount + ' x ' + this.drinkCalculator.calculatedResults.spirit.replace('{0}', spiritCount > 1 ? 's' : '') + '</li>';
165			    if(beerCount > 0) resultCalcHTML += '<li>' + beerCount + ' x ' + this.drinkCalculator.calculatedResults.beer.replace('{0}', beerCount > 1 ? 's' : '') + '</li>';
166			    if(champagneCount > 0) resultCalcHTML += '<li>' + champagneCount + ' x ' + this.drinkCalculator.calculatedResults.champagne.replace('{0}', champagneCount > 1 ? 's' : '') + '</li>';
167			    resultCalcHTML += '</ul>';
168
169			    $resultRecommend.html(resultCalcHTML);
170
171			    if(!window.isSmall) $("html, body").animate({ scrollTop: 0 }, "slow");
172			    else window.location.href = "#results";
173			}
174
175			function enableCalcKeyUp(){
176				$beer.keyup(function(event) {
177				    if (($beer.val() > -1) && ($beer.val()< 101))
178				    {
179				        var difference = ($beer.val() - 100)/2;
180				        $beerLastValue.val($beer.val())
181				        $beerPercent.val($beer.val())
182				        $beerSlider.slider( "value", $beer.val() );
183				        
184				        var remainder = adjustSlider("wine",(parseInt(difference) + parseInt($wineLastValue.val())),1,0);
185				        remainder = adjustSlider("spirit",(parseInt(difference) + parseInt($spiritLastValue.val()) - (remainder)),1,0);
186				        
187				        if (remainder != 0)
188				        {
189				            remainder = adjustSlider("wine",-remainder,1,0);
190				            if (remainder != 0)
191				            {
192				                remainder = adjustSlider("beer",-remainder,1,1);
193				            }
194				        }
195				    }
196				    else
197				    {
198				        $beer.val($beerLastValue.val());
199				    }
200				});
201
202				$wine.keyup(function(event) {
203				    if (($wine.val() > -1) && ($wine.val()< 101))
204				    {
205				        var difference = ($wine.val() - 100)/2;
206
207				        $wineLastValue.val($wine.val())
208				        $winePercent.val($wine.val())
209				        $wineSlider.slider( "value", $wine.val());
210
211				        var remainder = adjustSlider("beer",(parseInt(difference) + parseInt($beerLastValue.val())),1,0);
212				        remainder = adjustSlider("spirit",(parseInt(difference) + parseInt($spiritLastValue.val()) - (remainder)),1,0);
213
214				        if (remainder != 0)
215				        {
216				            remainder = adjustSlider("beer",-remainder,1,0);
217				            if (remainder != 0)
218				            {
219				                remainder = adjustSlider("wine",-remainder,1,1
219);
220				            }
221				        }
222				    }
223				    else
224				    {
225				        $wine.val($wineLastValue.val());
226				    }
227
228				});
229
230				$spirit.keyup(function(event) {
231				    if (($spirit.val() > -1) && ($spirit.val()< 101))
232				    {
233				        var difference = ($spirit.val() - 100)/2;
234				        
235				        $spiritLastValue.val($spirit.val())
236				        $spiritPercent.val($spirit.val())
237				        $spiritSlider.slider( "value", $spirit.val() );
238				        
239				        var remainder = adjustSlider("wine",(parseInt(difference) + parseInt($wineLastValue.val())),1,0);
240				        remainder = adjustSlider("beer",(parseInt(difference) + parseInt($beerLastValue.val()) - (remainder)),1,0);
241				        
242				        if (remainder != 0)
243				        {
244				            remainder = adjustSlider("wine",-remainder,1,0);
245				            if (remainder != 0)
246				            {
247				                remainder = adjustSlider("spirit",-remainder,1,1);
248				            }
249				        }
250				    }
251				    else
252				    {
253				        $spirit.val($spiritLastValue.val());
254				    }
255				});
256			}
257
258			function adjustSlider(sliderName, amount, divisor, force,isActive){
259			    var resultValue,
260			    	fixedamount,
261			    	remainder = 0,
262			    	$lockedElement,
263			    	$selectedSlider,
264			    	$selectedPercent,
265			    	$selectedLastValue,
266			    	$selectedVal;
267
268			    fixedamount = (amount / divisor);
269
270			    switch(sliderName) {
271			    	case 'beer':
272			    		$lockedElement = $('#beer-lock:checked');
273			    		$selectedSlider = $beerSlider;
274				    	$selectedPercent = $beerPercent;
275				    	$selectedLastValue = $beerLastValue;
276				    	$selectedVal = $beer;
277			    		break;
278			    	case 'spirit':
279			    		$lockedElement = $('#spirit-lock:checked');
280			    		$selectedSlider = $spiritSlider;
281				    	$selectedPercent = $spiritPercent;
282				    	$selectedLastValue = $spiritLastValue;
283				    	$selectedVal = $spirit;
284			    		break;
285			    	case 'wine':
286			    		$lockedElement = $('#wine-lock:checked:checked');
287			    		$selectedSlider = $wineSlider;
288				    	$selectedPercent = $winePercent;
289				    	$selectedLastValue = $wineLastValue;
290				    	$selectedVal = $wine;
291			    		break;
292			    	default:
293			    		break;
294			    }
295
296			    if (($lockedElement.val() == undefined) || (force == 1))
297		        {
298		            if ($selectedPercent.val() - (fixedamount) < 0)
299		            {
300		                remainder = $selectedPercent.val() - (fixedamount)
301		                resultValue = 0
302		            }
303		            else
304		            {
305		                resultValue = $selectedPercent.val() - (fixedamount);
306		            }
307
308		            $selectedSlider.slider("value",resultValue);
309		            $selectedPercent.val(resultValue);
310
311		            if(isActive) {
312		            	$selectedLastValue.val(Math.ceil(resultValue));
313		            	$selectedVal.val(Math.ceil(resultValue));
314		            }
315		            else {
316		            	$selectedLastValue.val(Math.floor(resultValue));
317		            	$selectedVal.val(Math.floor(resultValue));
318		            }
319		        }
320		        else
321		        {
322		            remainder = -fixedamount;
323		        }
324			    
325			    if (remainder != 0) {}
326				
327				return remainder;
328			}
329		},
330		isWholeNumber: function(n) {
331  			return /^\d+$/.test(n);
332  		}
333	}
334
335	$(document).ready(function() {
336		if(wpConfig.enableDrinkCalculator) {
337	    	if($('body').hasClass('drink-calculator')) window.drinkCalculator.init();
338	    }
339	});
340
341})(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.