PageSourceSearch

https://www.weddingku.com/assets/js/main.js?v=0.6059992

js weddingku.com collected 2026-09-24 09:50:05 UTC 22,280 bytes, 647 lines download raw bytes

1function openLogin(caller){
2	/*$("#minilogin .btn.facebook").attr("onClick","openWindow('"+weddingkumembers + "/fblogin.asp?caller="+window.location.href+"');");
3	$("#minilogin .btn.instagram").attr("onClick","openWindow('"+weddingkumembers + "/instalogin.asp?caller="+window.location.href+"');");
4	// $('#minilogin #caller').val(caller);
5	$('#minilogin #caller').val(window.location.href);
6	// if (caller === 'undefined'){
7		if (caller.indexOf("login") < 0 ){
8			if ($( "#minilogin a#signupcaller" ).length > 0){
9				$("#minilogin a#signupcaller").prop("href", weddingkumembers + "/register?caller="+caller);
10			}
11		}
12	// }
13	$('#minilogin').modal('show');*/
14	window.location.href=weddingkumembers+"/login?caller="+caller
15}
16function popNotif() {
17	$('#popNotif').hide();
18}
19function openEventPopup(){
20	$('#popupevent').modal('show');
21	$('html').css('overflow-y','hidden');
22}
23
24function setCookieHour(cname,cvalue,exdays) {
25	var now = new Date();
26	var minutes = 60;
27   now.setTime(now.getTime() + (minutes * 60 * 1000));
28	document.cookie =
29	cname + "=" + cvalue +
30	'; expires=' + now.toUTCString() +
31	'; path=/';
32}
33
34function openWindow(url,name,width,height) {
35	var left = (screen.width - width) / 2;
36	var top = (screen.height - height) / 4;
37	var myFeatures = "toolbar=no,location=no,status=yes,directories=no,menubar=no,scrollbars=yes,resizable=yes,width=" 
37+ width + ",height=" + height + ",top=" + top + ",left=" + left;
38	var myWindow = window.open(url,name,myFeatures);
39}
40
41function alertLogin() {
42	$('#alertlogin').modal('show');
43}
44
45function loadLazy() {
46	$(".lazy").lazyload({
47		effect : "fadeIn",
48		failure_limit : 120,
49		threshold : 400
50	});
51}
52
53function cetakRate(rate){
54	var sisa = 0, overal = 0, text="", starCount=0;
55	sisa = (rate*10 % 10);
56	//console.log(sisa);
57	overal=rate*10-sisa;
58	overal=overal/10;
59	for (i = 0; i < overal; i++) {
60		text += '<i class="fa fa-star"></i>';
61		starCount++;
62	}
63	if (sisa > 1){
64		text += '<i class="fa fa-star-half-o"></i>';
65		starCount++;
66	}
67	for (i = 0; i < (5-starCount); i++) {
68		text += '<i class="fa fa-star-o"></i>';
69	}
70	return text;
71}
72
73function blockimage(){
74	document.oncontextmenu = function(e) {
75		e = e || window.event;
76		//console.log(e.type+'-'+e.button+'-'+e.which);
77		if ((e.type && e.type == "contextmenu") || (e.button && e.button == 2) || (e.which && e.which == 3)) {
78			if (/^img$/i.test((e.target || e.srcElement).nodeName)) return false;
79		}
80	};
81	var pixelSource = 'https://images.weddingku.com/images/transparent.gif';
82    var useOnAllImages = true;
83    // Preload the pixel
84    var preload = new Image();
85    preload.src = pixelSource;
86    $('img.mfp-img').on('mouseenter touchstart', function(e) {
87        // Only execute if this is not an overlay or skipped
88        var img = $(this);
89        if (img.hasClass('protectionOverlay')) return;
90        if (!useOnAllImages && !img.hasClass('protectMe')) return;
91        // Get the real image's position, add an overlay
92        var pos = img.offset();
93        var overlay = $('<img class="protectionOverlay" src="' + pixelSource + '" width="' + img.width() + '" height="' + img.height() + '" />').css({position: 'absolute', zIndex: 9999999, left: pos.left, top: pos.top}).appendTo('body').bind('mouseleave', function() {
94            setTimeout(function(){ overlay.remove(); }, 0, $(this));
95        });
96        if ('ontouchstart' in window) $(document).one('touchend', function(){ setTimeout(function(){ overlay.remove(); }, 0, overlay); });
97    });
98}
99
100
101Number.prototype.formatMoney = function(c, d, t){
102var n = this,
103    c = isNaN(c = Math.abs(c)) ? 2 : c,
104    d = d == undefined ? "." : d,
105    t = t == undefined ? "," : t,
106    s = n < 0 ? "-" : "",
107    i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "",
108    j = (j = i.length) > 3 ? j % 3 : 0;
109   return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
110 };
111
112function kFormatter(num) {
113    return num > 999 ? (num/1000).toFixed(1) + 'k' : num
114}
115
116function intFormatter (value) {
117	if (value > 999) {
118    var suffixes = ["", "K", "M", "B","T"];
119    var suffixNum = Math.floor((""+value).length/3);
120    var shortValue = parseFloat((suffixNum != 0 ? (value / Math.pow(1000,suffixNum)) : value).toPrecision(2));
121    if (shortValue % 1 != 0) {
122        shortValue = shortValue.toFixed(1);
123    }
124		return shortValue+suffixes[suffixNum];
125	} else {
126		return value;
127	}
128}
129
130function formatPrice(value,symbol){
131	if(value != undefined){
132		value += '';
133		x = value.split('.');
134		x1 = x[0];
135		x2 = x.length > 1 ? '.' + x[1] : '';
136		var rgx = /(\d+)(\d{3})/;
137		while (rgx.test(x1)) {
138			x1 = x1.replace(rgx, '$1' + '.' + '$2');
139		}
140		return symbol+' '+x1 + x2;
141	}
142}
143
144function dtTimeFormat(dtDate) {
145	var datetime = new Date(dtDate);
146
147	return "0"+date.getHours().substr(2)+":"+"0"+date.getMinutes().substr(2);
148}
149function dtTimeDifference(dtDate) {
150
151	var current = Date.now();
152
153	var d = dtDate.replace(/-/g, "/");
154	var T = dtDate.replace("T", " ");
155	var Z = T.replace("Z", " ");
156	var datetime = new Date(Z);
157
158    var msPerMinute = 60 * 1000;
159    var msPerHour = msPerMinute * 60;
160    var msPerDay = msPerHour * 24;
161    var msPerMonth = msPerDay * 30;
162    var msPerYear = msPerDay * 365;
163
164    var elapsed = current - datetime;
165    if (elapsed < msPerMonth) {
166		if(Math.round(elapsed/msPerDay) < 1){
167			return 'Today';
168		}else{
169			return formatDate(datetime);
170		}
171    }else{
172		return formatDate(datetime);
173	}
174}
175
176function formatDateTZ(d) {
177	var d = d.replace(/-/g, "/");
178	var T = d.replace("T", " ");
179	var Z = T.replace("Z", " ");
180	var date = new Date(Z);
181	return formatDate(date);
182}
183
184function formatDate(date) {
185   var monthNames = [
186    "Jan", "Feb", "Mar",
187    "Apr", "May", "Jun", "Jul",
188    "Aug", "Sep", "Oct",
189    "Nov", "Dec"
190  ];
191  var day = date.getDate();
192  var monthIndex = date.getMonth();
193  var year = String(date.getFullYear());
194
195  if(year > 2000){
196	  year = year.substr(year.length - 2);
197  }
198  return day + ' ' + monthNames[monthIndex] + ' ' + year;
199}
200
201function formatDateTZnum(d){
202
203	var d = d.replace(/-/g, "/");
204	var T = d.replace("T", " ");
205	var Z = T.replace("Z", " ");
206	var date = new Date(Z)
207	var day = date.getDate();
208	var monthIndex = (1 + date.getMonth()).toString();
209	var year = date.getFullYear();
210	// console.log(day + ' ' + monthNames[monthIndex] + ' ' + year);
211	return day + '/' + monthIndex + '/' + year;
212}
213
214function getFormattedDate(date) {
215
216	var monthNames = [
217		"January", "February", "March",
218		"April", "May", "June", "July",
219		"August", "September", "October",
220		"November", "December"
221	];
222	var year = date.getFullYear();
223
224	var month = (1 + date.getMonth()).toString();
225	month = month.length > 1 ? month : '0' + month;
226
227	var day = date.getDate().toString();
228	day = day.length > 1 ? day : '0' + day;
229
230	return day + ' ' + monthNames[month] + ' ' + year;
231}
232
233function formatDateTZEvent(StartDate,EndDate) {
234	var Startd = StartDate.replace(/-/g, "/");
235	var StartT = Startd.replace("T", " ");
236	var StartZ = StartT.replace("Z", " ");
237	var Startdate = new Date(StartZ);
238
239	var Endd = EndDate.replace(/-/g, "/");
240	var EndT = Endd.replace("T", " ");
241	var EndZ = EndT.replace("Z", " ");
242	var Enddate = new Date(EndZ);
243	return WriteEventDate(Startdate,Enddate);
244}
245function WriteEventDate(StartDate,EndDate){
246	var StartDay,StartMonth,StartYear,EndDay,EndMonth,EndYear,sEventDate2;
247
248	var monthNames = [
249	"Jan", "Feb", "Mar",
250	"Apr", "May", "Jun", "Jul",
251	"Aug", "Sep", "Oct",
252	"Nov", "Dec"
253	];
254
255	if (StartDate != null || StartDate != "") {
256		StartMonthNames = monthNames[StartDate.getMonth()];
257		StartDay = StartDate.getDate();
258		StartYear = String(StartDate.getFullYear());
259	}
260
261	if (EndDate != null || EndDate != "") {
262		EndMonthNames = monthNames[EndDate.getMonth()];
263		EndDay = EndDate.getDate();
264		EndYear = String(EndDate.getFullYear());
265	}
266
267	var strStart, strEnd, StartMonth, StartDay, EndMonth, EndDay;
268	if (StartDate.getMonth().length > 1) {
269		Startmonth = "0"+StartDate.getMonth();
270	} else {
271		StartMonth = StartDate.getMonth();
272	}
273
274	if (StartDate.getDate().length > 1) {
275		StartDay = "0"+StartDate.getDate();
276	} else {
277		StartDay = StartDate.getDate();
278	}
279
280	if (EndDate.getMonth().length > 1) {
281		EndMonth = "0"+EndDate.getMonth();
282	} else {
283		EndMonth = EndDate.getMonth();
284	}
285
286	if (EndDate.getDate().length > 1) {
287		EndDay = "0"+EndDate.getDate();
288	} else {
289		EndDay = EndDate.getDate();
290	}
291
292	strStart = String(StartDate.getFullYear()) + "-" + StartMonth + "-" + StartDay
293	strEnd = String(EndDate.getFullYear()) + "-" + EndMonth + "-" + EndDay
294	if (StartDay === EndDay && StartMonth === EndMonth && StartYear === EndYear) {
295		sEventDate2= '<time itemprop="startDate" datetime="' + strStart +  '">' + StartDay + '</time>' + StartMonthNames + " " + StartYear
296	} else if (StartMonth === EndMonth && StartYear === EndYear) {
297		sEventDate2= '<time itemprop="startDate" datetime="' + strStart +  '">' + StartDay + "</time>" + '-<time itemprop="endDate" datetime="' + strEnd +  '">' + EndDay + "</time> " + StartMonthNames + " " + StartYear
298	} else if (StartMonth === EndMonth && StartYear != EndYear) {
299		sEventDate2= '<time itemprop="startDate" datetime="' + strStart +  '">' + StartDay + "</time> " + StartMonthNames + " " + StartYear + '-<time itemprop="endDate" datetime="' + strEnd +  '">' + EndDay + "</time> " + EndMonthNames + " " + EndYear
300	} else if (StartMonth != EndMonth && StartYear == EndYear) {
301		sEventDate2= '<time itemprop="startDate" datetime="' + strStart +  '">' + StartDay + "</time> " + StartMonthNames + '-<time itemprop="endDate" datetime="' + strEnd +  '">' + EndDay + "</time> " + EndMonthNames + " " + StartYear
302	} else if (StartMonth != EndMonth && StartYear != EndYear) {
303		sEventDate2= '<time itemprop="startDate" datetime="' + strStart +  '">' + StartDay + " " + StartMonthNames + " " + StartYear + "</time>" + '-<time itemprop="endDate" datetime="' + strEnd +  '">' + EndDay + " " + EndMonthNames + " " + EndYear + "</time>"
304	} else {
305		sEventDate2= '<time itemprop="startDate" datetime="' + strStart +  '">' + strStart + "</time>" + '-<time itemprop="endDate" datetime="' + strEnd +  '">' + strEnd + "</time>"
306	}
307
308	return sEventDate2
309}
310
311function nl2br (str, is_xhtml) {
312    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
313    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
314}
315
316function vLove(id,tipe){
317	$.ajax({
318		type:'GET',
319		url: weddingkuhome+'/ajax/love-vendors.asp',
320		data:'i='+id,
321		success:function(response){
322			if (response.code == "01"){
323				openLogin(window.location.href);
324			}
325			else {
326				var response=$.parseJSON(response);
327				Result=response.description;
328				var iLove = parseInt($("#love"+id+" span.num").html());
329				if (response.code == "01"){
330					openLogin(window.location.href);
331				}
332				else if (Result == "Successfull love"){
333					$(".ico-love"+id).addClass('loved');
334					$("#love #"+id).addClass('loved');
335					$("#love"+id+" span.num").html(iLove+1);
336
337					console.log("loved");
338				}
339				else {
340					$(".ico-love"+id).removeClass('loved');
341					$("#love #"+id).removeClass('loved');
342					$("#love"+id+" span.num").html(iLove-1);
343					console.log("love");
344				}
345			}
346		}
347	});
348}
349function cLove(id,tipe){
350	$.ajax({
351		type:'GET',
352		url: weddingkuhome+'/ajax/love-collections.asp',
353		data:'i='+id,
354		success:function(response){
355			// console.log(response)
356			if (response == "-1"){
357				openLogin(window.location.href);
358			}
359			else {
360				var response=$.parseJSON(response);
361				Result=response.code;
362				Love=response.description;
363				if (Result == "01"){
364					openLogin(window.location.href);
365				}
366				else if (Result == "00"){
367					if (Love == "Successfull love") {
368						// $("#"+id).addClass('loved');
369						$(".loveicon"+id).addClass('loved');
370						if (tipe== '1')
371							$("#love"+id).html(kFormatter(Love));
372					}
373					else{
374						// $("#"+id).removeClass('loved');
375						$(".loveicon"+id).removeClass('loved');
376						if (tipe== '1')
377							$("#love"+id).html(kFormatter(Love));
378					}
379				}
380				else {
381					// $("#"+id).removeClass('loved');
382					$(".loveicon"+id).removeClass('loved');
383					if (tipe== '1')
384						$("#love"+id).html(kFormatter(Love));
385				}
386			}
387		}
388	});
389}
390
391
392var isMobile = false; //initiate as false
393// device detection
394function devDetect() {
395	if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)
396		|| /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.
396substr(0,4))) {
397		isMobile = true;
398	}
399}
400
401$(window).resize(function() {
402	devDetect();
403 });
404$(document).ready(function(){
405	devDetect();
406
407	$('section[data-type="background"]').each(function(){
408		var $bgobj = $(this); // assigning the object
409
410		$(window).scroll(function() {
411			var yPos = -($window.scrollTop() / $bgobj.data('speed'));
412			var bgSrc =  $bgobj.data('src');
413			var coords = '50% '+ yPos + 'px';
414			$bgobj.css("background", "url('"+bgSrc+"') fixed");
415			$bgobj.css({ backgroundPosition: coords,
416						 '-webkit-background-size': 'cover',
417						 '-moz-background-size': 'cover',
418						 '-o-background-size': 'cover',
419						 'background-size': 'cover' });
420		});
421	});
422
423	$('#nav-me a').click(function(e){
424		if($(this).hasClass('active')){
425			$('.wrapper').remove();
426			$(".mobile_menu").hide();
427			$(".mobile_menu").removeClass('active');
428			$(this).removeClass('active');
429			$('body').css('overflow-y','');
430			$('html').css('overflow-y','');
431		}
432		else {
433			$('body').prepend('<div class="wrapper"></div>');
434			$(".mobile_menu").show();
435			$(".mobile_menu").addClass('active');
436			$(this).addClass('active');
437			$('body').css('overflow-y','hidden');
438			$('html').css('overflow-y','hidden');
439		}
440	});
441
442	$('#mobile_menu-close').click(function(e){
443		$('.wrapper').remove();
444		$(".mobile_menu").hide();
445		$(".mobile_menu").removeClass('active');
446		$('.active').removeClass('active');
447		$('body').css('overflow-y','');
448		$('html').css('overflow-y','');
449	});
450
451	$('.dropdown a').click(function(e){
452		//console.log("click"+$(this).parent().parent().parent().attr('id'));
453		if ($(this).parent().parent().parent().attr('id') == "category-bar" || $(this).parent().parent().parent().parent().parent().attr('id') == "category-bar"){
454			if($(this).parent().hasClass('active')){
455				$(this).parent().children('.sub-menu').slideUp();
456				$(this).parent().removeClass('active');
457			}
458			else {
459				//console.log("click4"+$(this).attr('class'));
460				$(this).parent().children('.sub-menu').slideDown();
461				$(this).parent().addClass('active');
462			}
463		}
464		else {
465			//console.log("click2"+$(this).attr('class'));
466			$('.navbar-m .subnav-m').slideUp(350);
467			$('.navbar-m .subnav-m').removeClass('active');
468			$('.sub-menu .dropdown .sub-menu').hide();
469			$('.sub-menu .dropdown .sub-menu').parent().removeClass('active');
470			if ($(this).parent().parent().parent().attr('id') == "nav-bottom"){
471				$('body .wrapper').remove();
472				$('body').css('overflow-y','');
473				$('html').css('overflow-y','');
474				//console.log("click");
475			}
476			//console.log("click6-"+$(this).parent().hasClass('dropdown'));
477
478			if($(this).parent().hasClass('dropdown')){
479				if($(this).parent().hasClass('active')){
480					$(this).parent().children('.sub-menu').hide();
481					$(this).parent().removeClass('active');
482				}
483				else {
484					$(this).parent().children('.sub-menu').show();
485					$(this).parent().addClass('active');
486					if ($(this).parent().parent().parent().attr('id') == "nav-bottom" && $(this).attr('id') == "more"){
487						$('body').prepend('<div class="wrapper"></div>');
488						$('body').css('overflow-y','hidden');
489						$('html').css('overflow-y','hidden');
490					}
491				}
492			}
493		}
494	});
495
496	$(document).mouseup(function (e)
497	{
498		var container = $(".active");
499		if (!container.is(e.target) // if the target of the click isn't the container...
500			&& container.has(e.target).length === 0) // ... nor a descendant of the container
501		{
502			$('.dropdown>.sub-menu').hide();
503			$('.dropdown>.sub-menu').parent().removeClass('active');
504			$('.navbar .subnav').hide();
505			$('.active').removeClass('active');
506			$('.wrapper').remove();
507			$(".mobile_menu").hide();
508		}
509	});
510
511
512	//Click event to scroll to top
513	$('#gototop').click(function(){
514		$('html, body').animate({scrollTop : 0},800);
515		return false;
516	});
517	$('#nav-me>a').click(function(){
518		$('#nav-me .sub-menu').toggle();
519		return false;
520	});
521
522	$('.navbar a').click(function(e){
523		if ($(this).parent().parent('ul.navbar').hasClass('active')){
524			$('.navbar .subnav').hide();
525			$('.navbar').removeClass('active');
526		}
527		else{
528			$('.navbar .subnav').show();
529			$('.navbar').addClass('active');
530		}
531	});
532
533	$(".navbar-m > li.slideDown > a").on("click", function(e){
534		if($(this).parent().has("ul")) {
535		  e.preventDefault();
536		}
537
538		if(!$(this).hasClass("active")) {
539		  // hide any open menus and remove all other classes
540		  $(".navbar-m li.slideDown ul.subnav-m").slideUp(350);
541		  $(".navbar-m li.slideDown a").removeClass("active");
542
543		  // open our new menu and add the open class
544		  $(this).next("ul.subnav-m").slideDown(350);
545		  $(this).addClass("active");
546		}
547
548		else if($(this).hasClass("active")) {
549		  $(this).removeClass("active");
550		  $(this).next("ul.subnav-m").slideUp(350);
551		}
552	});
553
554	$('#header-formsearch').submit(function(e) {
555		e.preventDefault();
556		var data = $("#header-formsearch :input").serializeArray();
557		strURL = weddingkuhome;
558		$.each(data, function(i, field){
559			if (field.name == "q" && field.value != "")
560				strURL += "/search?q="+encodeURIComponent(field.value).replace(/%20/g,'+');
561			else
562				strURL += "/wedding-vendors/bridal-house-boutique/jakarta";
563		});
564		window.location.href = strURL;
565	});
566
567	$('.input-with-animated-label').bind('blur', function () {
568		if ($('#'+this.id).val() == "") {
569			$('#'+this.id).removeClass("data-has-value");
570		}else{}
571	}).bind('focus', function () {
572		$('#'+this.id).addClass("data-has-value");
573	});
574});
575
576function banner(){
577	$('#bannerbar-fixed-bottom').hide();
578	$('#m-btn-filter .float').css({'bottom': '30px'});
579	$('#gototop a').attr('style', 'bottom: 50px !important');
580}
581
582function closeBanner() {
583	$('#bannerbar-fixed-bottom').hide();
584	$('#left-content #vendor-name #profile-contact').css({'bottom': '0px'});
585	$('#m-btn-filter .float ').css({'bottom': '30px'});
586	$('.qcw-trigger-btn.svelte-noomlu.svelte-noomlu').addClass('bc');
587	$('#gototop').addClass('bc');
588}
589
590var ellipsisText = function (e, etc) {
591	var wordArray = e.innerHTML.split(" ");
592	while (e.scrollHeight > e.offsetHeight) {
593		wordArray.pop();
594		e.innerHTML = wordArray.join(" ") + (etc || "...");
595	}
596};
597[].forEach.call(document.querySelectorAll(".line-clamp-ff"), function(elem) {
598	ellipsisText(elem);
599});
600
601if (typeof(Storage) !== "undefined") {
602	var weddingkudt = localStorage.getItem("weddingkudt");
603	var weddingkupageopen = localStorage.getItem("weddingkupageopen");
604	var idwfpopup = localStorage.getItem("idwfpopup");
605	var idwfpopupvisited = localStorage.getItem("idwfpopupvisited");
606	var set_ga = localStorage.getItem("set_ga");
607	if (set_ga == "" || set_ga === null) {
608	  localStorage.setItem("set_ga",0);
609	}
610	if (weddingkupageopen == "" || weddingkupageopen === null) {
611	  weddingkupageopen = 0;
612	  weddingkudt = Date.now();
613	}weddingkupageopen++;
614	localStorage.setItem("weddingkupageopen", weddingkupageopen);
615	localStorage.setItem("weddingkudt",weddingkudt);
616}
617
618function setlog(refid,pid,id,tipe,url,ga){
619	$.ajax({
620		type	: "POST",
621		cache	: false,
622		url		: weddingkuhome+"/ajax/addlog.asp",
623		data	: "pid="+pid+"&ga="+ga+"&id="+id+"&refid="+refid+'&typ='+tipe+'&ca='+url,
624		success	: function(data) {
625
626		}
627	});
628}
629
630function notifcookies(id){
631	$.ajax({
632		type	: "POST",
633		cache	: false,
634		url		: weddingkuhome+"/ajax/addnoticookies.asp",
635		data	: "id="+id,
636		success	: function(data) {
637
638		}
639	});
640}
641
642function addEventGA(sCat,sLabel){
643	gtag('event', 'click', {
644	  'event_category': sCat,
645	  'event_label': sLabel
646	});
647}

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.