1var myPathD = []; 2var myPathC = []; 3var Triangle = []; 4var snapC = []; 5var snapD = []; 6 7/** 8 * Competition modal country field must stay a native <select> for keyboard/tab access. 9 * Global Selectric leaves a hidden .selectric-input that steals focus and blocks typing. 10 */ 11function kilchomanCompetitionUseNativeSelect() { 12 var $modal = jQuery('#competitionModal'); 13 14 if (!$modal.length) { 15 return; 16 } 17 18 $modal.find('select.country-type, select[name="country"]').each(function () { 19 var $select = jQuery(this); 20 21 if (jQuery.fn.selectric && $select.data('selectric')) { 22 try { 23 $select.selectric('destroy'); 24 } catch (error) { 25 // Fall through to manual cleanup below. 26 } 27 } 28 29 $select.siblings('.selectric-input').remove(); 30 31 var $wrapper = $select.closest('.selectric-wrapper'); 32 if ($wrapper.length) { 33 $select.detach(); 34 $wrapper.replaceWith($select); 35 } 36 37 $select 38 .removeClass('selectric-hide-select') 39 .prop('tabindex', 0) 40 .css({ 41 position: '', 42 left: '', 43 opacity: '', 44 visibility: '', 45 clip: '', 46 width: '', 47 height: '' 48 }); 49 }); 50 51 $modal.find('.selectric-input').remove(); 52} 53 54function setSVGInit(id, index) { 55 56 snapC[index] = Snap(id); 57 snapD[index] = Snap(id); 58 59 myPathD[index] = snapC[index].path("M1,1c0,0,0,136.766,1.189,181.065c0.525,19.546,8.82,39.406,37.499,68.085c32.701,35.185,76.968,44.105,85.095,68.285 c15.619,46.474-80.144,121.175-67.689,172.342c2.942,12.088,28.162,15.561,52.823,10.208c33.168-7.198,77.093-44.698,77.093-44.698").attr({ 60 id: 'svg_offset', 61 fill: "none", 62 strokeWidth: "2", 63 stroke: "#ba9765", 64 }); 65 66 myPathC[index] = snapC[index].path("M1,1c0,0,0,136.766,1.189,181.065c0.525,19.546,8.82,39.406,37.499,68.085c32.701,35.185,76.968,44.105,85.095,68.285 c15.619,46.474-80.144,121.175-67.689,172.342c2.942,12.088,28.162,15.561,52.823,10.208c33.168-7.198,77.093-44.698,77.093-44.698").attr({ 67 fill: "none", 68 strokeWidth: "2", 69 strokeDasharray: '2', 70 stroke: "#ba9765", 71 }); 72 73 Triangle[index] = snapC[index].path("M12.2,2.1c-2.8,0-5.1,1-7.1,3s-3,4.3-3,7.1c0,2.8,1,5.1,3,7.1s4.3,3,7.1,3s5.1-1,7.1-3s3-4.3,3-7.1 c0-2.8-1-5.1-3-7.1C17.4,3.1,15,2.1,12.2,2.1z").attr({ 74 fill: "#1b3975", 75 stroke: "#ba9765", 76 strokeWidth: "9px", 77 strokeDasharray: '0', 78 strokeLinejoin: "round", 79 class: "svg-round", 80 transform: 'scale(0.65)', 81 }); 82} 83 84function setSVGInit1(id, index) { 85 86 snapC[index] = Snap(id); 87 snapD[index] = Snap(id); 88 89 myPathD[index] = snapC[index].path("M1-61.956V93.677c0,25.894,3.685,50.6,20.391,73.169A131.373,131.373,0,0,0,67.2,205.182c13.2,6.8,27.3,12.73,39.159,21.048,33.411,23.652,21.911,60.281,4.667,88.49-12.664,20.614-68.206,90.925-28.671,106.748,14.432,7.551,43.392-.189,59.227-13.605").attr({ 90 id: 'svg_offset', 91 fill: "none", 92 strokeWidth: "2", 93 stroke: "#ba9765", 94 95 }); 96 97 myPathC[index] = snapC[index].path("M1-61.956V93.677c0,25.894,3.685,50.6,20.391,73.169A131.373,131.373,0,0,0,67.2,205.182c13.2,6.8,27.3,12.73,39.159,21.048,33.411,23.652,21.911,60.281,4.667,88.49-12.664,20.614-68.206,90.925-28.671,106.748,14.432,7.551,43.392-.189,59.227-13.605").attr({ 98 fill: "none", 99 strokeWidth: "2", 100 strokeDasharray: '2', 101 stroke: "#ba9765", 102 103 }); 104 105 Triangle[index] = snapC[index].path("M12.2,2.1c-2.8,0-5.1,1-7.1,3s-3,4.3-3,7.1c0,2.8,1,5.1,3,7.1s4.3,3,7.1,3s5.1-1,7.1-3s3-4.3,3-7.1 c0-2.8-1-5.1-3-7.1C17.4,3.1,15,2.1,12.2,2.1z").attr({ 106 fill: "#1b3975", 107 stroke: "#ba9765", 108 strokeWidth: "9px", 109 strokeDasharray: '0', 110 strokeLinejoin: "round", 111 class: "svg-round", 112 transform: 'scale(0.56) translate(2 0)', 113 }); 114} 115 116function setSVGInit2(id, index) { 117 118 snapC[index] = Snap(id); 119 snapD[index] = Snap(id); 120 121 myPathD[index] = snapC[index].path("M1-120.28V36.957c0,11.316,3.307,50.757,44.8,89.133.52.507,33.182,37.783,34,38.634,35.958,37.474,18.922,136.5-34,78.942-58.71-63.854,68.637-72.959,149.912-53").attr({ 122 id: 'svg_offset', 123 fill: "none", 124 strokeWidth: "2", 125 stroke: "#ba9765", 126 127 }); 128 129 myPathC[index] = snapC[index].path("M1-120.28V36.957c0,11.316,3.307,50.757,44.8,89.133.52.507,33.182,37.783,34,38.634,35.958,37.474,18.922,136.5-34,78.942-58.71-63.854,68.637-72.959,149.912-53").attr({ 130 fill: "none", 131 strokeWidth: "2", 132 strokeDasharray: '2', 133 stroke: "#ba9765", 134 135 }); 136 137 Triangle[index] = snapC[index].path("M12.2,2.1c-2.8,0-5.1,1-7.1,3s-3,4.3-3,7.1c0,2.8,1,5.1,3,7.1s4.3,3,7.1,3s5.1-1,7.
1371-3s3-4.3,3-7.1 c0-2.8-1-5.1-3-7.1C17.4,3.1,15,2.1,12.2,2.1z").attr({ 138 fill: "#1b3975", 139 stroke: "#ba9765", 140 strokeWidth: "9px", 141 strokeDasharray: '0', 142 strokeLinejoin: "round", 143 class: "svg-round", 144 transform: 'scale(0.56) translate(2 0)', 145 }); 146} 147 148function setSVGInit3(id, index) { 149 150 snapC[index] = Snap(id); 151 snapD[index] = Snap(id); 152 153 myPathD[index] = snapC[index].path("M1-61.956V63.738c0,20.913,3.685,40.868,20.391,59.094,11.317,12.384,27.034,23.191,45.805,30.961,13.2,5.491,27.3,10.281,39.159,17,33.411,19.1,21.911,48.685,4.667,71.467-12.664,16.649-70.128,61.994-28.671,86.213,25.767,16.249,53.606,18.847,92.287,21.255").attr({ 154 id: 'svg_offset', 155 fill: "none", 156 strokeWidth: "2", 157 stroke: "#ba9765", 158 159 }); 160 161 myPathC[index] = snapC[index].path("M1-61.956V63.738c0,20.913,3.685,40.868,20.391,59.094,11.317,12.384,27.034,23.191,45.805,30.961,13.2,5.491,27.3,10.281,39.159,17,33.411,19.1,21.911,48.685,4.667,71.467-12.664,16.649-70.128,61.994-28.671,86.213,25.767,16.249,53.606,18.847,92.287,21.255").attr({ 162 fill: "none", 163 strokeWidth: "2", 164 strokeDasharray: '2', 165 stroke: "#ba9765", 166 167 }); 168 169 Triangle[index] = snapC[index].path("M12.2,2.1c-2.8,0-5.1,1-7.1,3s-3,4.3-3,7.1c0,2.8,1,5.1,3,7.1s4.3,3,7.1,3s5.1-1,7.1-3s3-4.3,3-7.1 c0-2.8-1-5.1-3-7.1C17.4,3.1,15,2.1,12.2,2.1z").attr({ 170 fill: "#1b3975", 171 stroke: "#ba9765", 172 strokeWidth: "9px", 173 strokeDasharray: '0', 174 strokeLinejoin: "round", 175 class: "svg-round", 176 transform: 'scale(0.56) translate(2 0)', 177 }); 178} 179 180function setSVGInit4(id, index) { 181 182 snapC[index] = Snap(id); 183 snapD[index] = Snap(id); 184 185 myPathD[index] = snapC[index].path("M1-61.956V93.677c0,25.894,3.685,50.6,20.391,73.169A131.373,131.373,0,0,0,67.2,205.182c13.2,6.8,27.3,12.73,39.159,21.048,33.411,23.652,21.911,60.281,4.667,88.49-12.664,20.614-68.206,90.925-28.671,106.748,14.432,7.551,71.144-2.368,86.979-15.784").attr({ 186 id: 'svg_offset', 187 fill: "none", 188 strokeWidth: "2", 189 stroke: "#ba9765", 190 191 }); 192 193 myPathC[index] = snapC[index].path("M1-61.956V93.677c0,25.894,3.685,50.6,20.391,73.169A131.373,131.373,0,0,0,67.2,205.182c13.2,6.8,27.3,12.73,39.159,21.048,33.411,23.652,21.911,60.281,4.667,88.49-12.664,20.614-68.206,90.925-28.671,106.748,14.432,7.551,71.144-2.368,86.979-15.784").attr({ 194 fill: "none", 195 strokeWidth: "2", 196 strokeDasharray: '2', 197 stroke: "#ba9765", 198 199 }); 200 201 Triangle[index] = snapC[index].path("M12.2,2.1c-2.8,0-5.1,1-7.1,3s-3,4.3-3,7.1c0,2.8,1,5.1,3,7.1s4.3,3,7.1,3s5.1-1,7.1-3s3-4.3,3-7.1 c0-2.8-1-5.1-3-7.1C17.4,3.1,15,2.1,12.2,2.1z").attr({ 202 fill: "#1b3975", 203 stroke: "#ba9765", 204 strokeWidth: "9px", 205 strokeDasharray: '0', 206 strokeLinejoin: "round", 207 class: "svg-round", 208 transform: 'scale(0.56) translate(2 0)', 209 }); 210} 211 212 213function svgAnimation(id, index) { 214 215 initTriangle(index); 216 217 function initTriangle(index) { 218 var triangleGroup = snapC[index].g(Triangle[index]); // Group path 219 movePoint = myPathC[index].getPointAtLength(length); 220 triangleGroup.transform('t' + parseInt(movePoint.x - 8) + ',' + parseInt(movePoint.y - 8) + 'r' + (movePoint.alpha - 90)); 221 } 222 223 var lenC = myPathC[index].getTotalLength(); 224 225 function animateSVG(id, index) { 226 227 myPathC[index].attr({ 228 stroke: '#ba9765', 229 strokeWidth: 2, 230 fill: 'none', 231 strokeDasharray: '2', 232 }); 233 234 var triangleGroup = snapC[index].g(Triangle[index]); // Group path 235 236 setTimeout(function () { 237 Snap.animate(0, lenC, function (value) { 238 239 movePoint = myPathC[index].getPointAtLength(value); 240 241 triangleGroup.transform('t' + parseInt(movePoint.x - 8) + ',' + parseInt(movePoint.y - 8) + 'r' + (movePoint.alpha - 90)); 242 243 }, 4000, mina.linear, function () { 244 alertEnd(id, index); 245 }); 246 }); 247 248 } 249 250 animateSVG(id, index); 251 252 function alertEnd(id, index) { 253 254 // Do Animation 255 myPathC[index].attr({ 256 strokeDasharray: '0', 257 }) 258 259 // Enable Button 260 $(id).removeClass('svg_solid_drow'); 261 $('#nin').removeAttr('disabled'); 262 263 } 264} 265 266jQuery('.popup-close').on('click', function () { 267 alert('fsdfsd'); 268 jQuery('.togglemenu').find('.menutxt').text("Close") 269}); 270 271var navOffset = 0; 272var winHeight = 0; 273 274function kilchomanRememberPageForContactReturn() { 275 try { 276 var path = window.location.pathname.replace(/\/+$/, '') || '/'; 277 if (path === '/contact' || /^\/wp-(admin|login)/.test(path)) { 278 return; 279 } 280 sessionStorage.setItem('kilchomanLastPage', window.location.href); 281 } catch (e) { 282 return; 283 } 284} 285 286var siteScript = { 287 init: function () {
288 this.fullpage(); 289 this.sidebar(); 290 this.carouselmulti(); 291 // this.video(); 292 this.scrollonscaleimg(); 293 this.scrollonscaledownimg(); 294 // this.fadedetail(); 295 this.carouseltypesm(); 296 // this.videosection(); 297 this.contactslide(); 298 this.fadedetail(); 299 this.basecustomselect(); 300 // this.carttoggler(); 301 this.labelanim(); 302 this.pagescrollr(); 303 this.slimscroller(); 304 this.listactiver(); 305 this.bgmove(); 306 // this.quantityDown(); 307 // this.quantityUp(); 308 this.blankpageopener(); 309 //this.datepick(); 310 this.masonry(); 311 // this.scrollReveal(); 312 //this.carouselprevnxt(); 313 //this.carouseltypesm(); 314 }, 315 fullpage: function () { 316 317 jQuery('.woocommerce-page.single-product .section.block-6').appendTo('.main-detail-page .woocommerce .single-product'); 318 319 jQuery(document).on('click', '.btnpathgroup .with-path', function () { 320 jQuery(this).parent().addClass('spot-path'); 321 jQuery('.path-mapcover').addClass('linestart'); 322 jQuery('.islay-map').addClass('linestart'); 323 324 setTimeout(function () { 325 326 jQuery('.home-path').addClass('startanim'); 327 $.fn.fullpage.moveSectionDown(2); 328 329 }, 1000); 330 setTimeout(function () { 331 jQuery('.btnpathgroup .with-path').parent().removeClass('spot-path'); 332 }, 1500); 333 334 335 }); 336 /* jQuery(document).on('click', '#fp-nav li:nth-child(2) a', function(){ 337 jQuery('.btnpathgroup').addClass('spot-path'); 338 jQuery('.home-path').addClass('startanim'); 339 }); 340 341 jQuery(document).on('click', '#fp-nav li:nth-child(2) a', function(){ 342 jQuery('.btnpathgroup').addClass('spot-path'); 343 jQuery('.home-path').addClass('startanim'); 344 });*/ 345 346 }, 347 sidebar: function () { 348 349 var loadMenuHoverImages = function () { 350 jQuery('.hovered-image[data-bg]').each(function () { 351 var $el = jQuery(this); 352 var url = $el.attr('data-bg'); 353 if (!url) { 354 return; 355 } 356 $el.css('background-image', 'url("' + url + '")'); 357 $el.removeAttr('data-bg'); 358 }); 359 }; 360 361 jQuery('.togglemenu').click(function (e) { 362 e.preventDefault(); 363 jQuery('body').toggleClass('sidebar-open'); 364 if (jQuery('body').hasClass('sidebar-open')) { 365 loadMenuHoverImages(); 366 } 367 // jQuery(this).find('.menutxt').html('close'); 368 369 if (jQuery(this).find('.menutxt').text() == "Menu") 370 371 jQuery(this).find('.menutxt').text("Close") 372 373 else 374 jQuery(this).find('.menutxt').text("Menu"); 375 376 }); 377 jQuery('.sidebar ul li a').on('click', function () { 378 jQuery('body').removeClass('sidebar-open'); 379 }); 380 381 382 }, 383 384 carouselmulti: function () { 385 if (jQuery('.wrap-carousel .owl-carousel').length > 0) { 386 console.log("multi"); 387 jQuery('.wrap-carousel .owl-carousel').owlCarousel({ 388 items: 1, 389 dots: false, 390 navigation: true, 391 loop: true, 392 slideSpeed: 4000, 393 autoplay: false, 394 animateOut: 'fadeOut', 395 // margin:10, 396 autoHeight: false 397 }); 398 } 399 400 }, 401 datepick: function () { 402 if (jQuery('.datePick input').length > 0) { 403 jQuery('.datePick input').datepicker({ 404 startDate: new Date(), 405 orientation: "bottom auto right", 406 format: "dd/mm/yyyy", 407 minDate: 0, 408 autoclose: true 409 }).on('changeDate', function (e) { 410 var d = new Date(e.date); 411 jQuery(this).parents().find('.dsp').text(d.getDate() + '/' + d.getMonth() + '/' + d.getFullYear()); 412 }).on('clearDate', function (e) { 413 jQuery(this).parents().find('.dsp').text('Please Select'); 414 }).on('hide', function (e) { 415 jQuery("#datepic1").val(''); 416 //jQuery(this).parents().find('.dsp').text('Please Select'); 417 }); 418 } 419 }, 420 scrollonscaleimg: function () { 421 422 var top = jQuery(window).scrollTop(), 423 424 nav = jQuery('.plain-block'); 425 winHeight = jQuery(window).height(); 426 if (nav.length > 0) { 427 navOffset = nav.offset().top - winHeight - 100; 428 } 429 top = top - navOffset; 430 431 if (top <= 0) { 432 top = 0; 433 } 434 435 // document.title = navOffset +'--' + (winHeight/2); 436 437 var scale = (top / 10000) + 1, 438 scale1 = (top / 8000) + 1, 439 translate = (top / 1), 440 translate1 = (top / 1.3); 441 442 if (scale <= 0) { 443 scale = 0; 444 translate = 0; 445 translate1 = 0; 446 } 447 448 if (scale > 3) { 449 scale = 3; 450 } 451 452 if (scale1 <= 0) { 453 scale1 = 0; 454 translate = 0; 455 translate1 = 0; 456 } 457 458 if (scale1 > 3) { 459 scale1 = 3; 460 } 461 setTimeout(function () { 462 var bigImage = jQuery('.mainimg').height(); 463 jQuery('.behind-workshop').css('height', bigImage); 464 jQuery('.scrollmain').css('height', bigImage); 465 466 var smallImage = jQuery('.only-bottom img').height(); 467 jQuery('.only-bottom').css('height', smallImage); 468 }, 200); 469 470 471 let scaler = { 472 'transform': 'scale(' + scale + ',' + scale + ') translateY(' + translate + 'px)',
473 '-webkit-transform': 'scale(' + scale + ',' + scale + ') translateY(' + translate + 'px)' 474 } 475 let scaler1 = { 476 'transform': 'scale(' + scale1 + ',' + scale1 + ') translateY(' + translate1 + 'px)', 477 '-webkit-transform': 'scale(' + scale1 + ',' + scale1 + ') translateY(' + translate1 + 'px)' 478 } 479 480 /*if(jQuery(window).scrollTop() >= navOffset){ 481 jQuery('.behind-workshop').css('opacity', '0'); 482 jQuery('.scale').css('opacity', '1'); 483 }else{ 484 jQuery('.behind-workshop').css('opacity', '1'); 485 jQuery('.scale').css('opacity', '0'); 486 }*/ 487 jQuery('.scale').css(scaler); 488 jQuery('.scrollmain').css(scaler); 489 jQuery('.only-bottom').css(scaler1); 490 } 491 , 492 493 scrollonscaledownimg: function () { 494 495 var top = jQuery(window).scrollTop(), 496 scale = (top / 522) + 0.85, 497 translate = (top / 4) - 5; 498 499 if (scale <= 0) { 500 scale = 0; 501 } 502 503 if (scale > 1) { 504 scale = 1; 505 } 506 507 if (translate > 0) { 508 translate = 0; 509 } 510 511 let scaler = { 512 'transform': 'scale(' + scale + ',' + scale + ') translate3d(0, ' + translate + '%, 0)', 513 '-webkit-transform': 'scale(' + scale + ',' + scale + ') translate3d(0, ' + translate + '%, 0)' 514 } 515 516 jQuery('.downscale').css(scaler); 517 518 }, 519 520 fadedetail: function () { 521 var minheightPlace = jQuery('.minheight_imgspot').outerHeight() / 2; 522 jQuery(".minheight_imgspot .detail_block").css("opacity", 1 - jQuery(window).scrollTop() / minheightPlace); 523 }, 524 carouseltypesm: function () { 525 526 527 jQuery('.plain_detail .owl-carousel').owlCarousel({ 528 items: 1, 529 nav: false, 530 navText: ['<i class="arrow_lft"></i>', '<i class="arrow_rgt"></i>'], 531 onInitialized: counter, //When the plugin has initialized. 532 //When the translation of the stage has 533 onTranslated: counter, 534 onChanged: counter, 535 touchDrag: false, 536 mouseDrag: false, 537 animateOut: 'fadeOut', 538 slideTransition: 200 539 540 }); 541 542 function counter(event) { 543 var element = event.target; // DOM element, in this example .owl-carousel 544 var items = event.item.count; // Number of items 545 var item = this._current + 1; // Position of the current item 546 jQuery('#owls_count').html('Section ' + item + ' of ' + items); 547 jQuery('.img_switchgroup .itemz').removeClass('active'); 548 jQuery('.img_switchgroup .itemz').eq(this._current).addClass('active'); 549 } 550 551 552 }, 553 554 carouselprevnxt: function () { 555 556 557 jQuery('.plain_detailwrap_new .owl-carousel').owlCarousel({ 558 items: 1, 559 nav: false, 560 navText: ['<i class="arrow_lft"></i>', '<i class="arrow_rgt"></i>'], 561 onInitialized: counter, //When the plugin has initialized. 562 //When the translation of the stage has 563 onTranslated: counter, 564 onChanged: counter, 565 566 }); 567 568 function counter(event) { 569 var element = event.target; // DOM element, in this example .owl-carousel 570 var items = event.item.count; // Number of items 571 var item = this._current + 1; // Position of the current item 572 jQuery('#owls_count').html('Section ' + item + ' of ' + items); 573 jQuery('.img_switchgroup .itemz').removeClass('active'); 574 jQuery('.img_switchgroup .itemz').eq(this._current).addClass('active'); 575 } 576 577 // console.log(itemLength); 578 579 580 }, 581 contactslide: function () { 582 jQuery('.form_mainwrap #step_type').click(function (e) { 583 e.preventDefault(); 584 jQuery('.error-display').removeClass('compul'); 585 var popError = false; 586 var username = jQuery('#fullname').val(); 587 var emailaddress = jQuery('#emailaddress').val(); 588 var telephone = jQuery('#telephone').val(); 589 590 if (username == '') { 591 popError = true; 592 jQuery('#fullname').addClass('error-field'); 593 } else { 594 jQuery('#fullname').removeClass('error-field'); 595 } 596 if (emailaddress == '') { 597 popError = true; 598 jQuery('#emailaddress').addClass('error-field'); 599 } else { 600 var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 601 var is_email_sample = re.test(emailaddress); 602 if (!is_email_sample) { 603 popError = true; 604 jQuery('#emailaddress').addClass('error-field'); 605 } else { 606 jQuery('#emailaddress').removeClass('error-field'); 607 } 608 } 609 if (telephone == '') { 610 popError = true; 611 jQuery('#telephone').addClass('error-field'); 612 } else { 613 var re = /^(?=.*[0-9])[- +()0-9]+$/; 614 var is_tel_sample = re.test(telephone); 615 if (!is_tel_sample) { 616 popError = true; 617 jQuery('#telephone').addClass('error-field'); 618 } else { 619 jQuery('#telephone').removeClass('error-field'); 620 } 621 } 622 623 if (popError == true) { 624 jQuery('.error-display').addClass('compul'); 625 return false;
626 } else { 627 jQuery(this).hide(); 628 jQuery('.error-display').removeClass('compul'); 629 jQuery('.control_dotsgroup a[href="#slidesecond"]').tab('show') // Select tab by name 630 jQuery('.form_mainwrap #form_submit').show(); 631 632 } 633 634 }); 635 636 jQuery('.control_dotsgroup a[href="#slidefirst"]').click(function (e) { 637 jQuery('.form_mainwrap #step_type').show(); 638 jQuery('.form_mainwrap #form_submit').hide(); 639 }); 640 jQuery('.control_dotsgroup a[href="#slidesecond"]').click(function (e) { 641 642 643 e.preventDefault(); 644 jQuery('.error-display').removeClass('compul'); 645 var popError = false; 646 var username = jQuery('#fullname').val(); 647 var emailaddress = jQuery('#emailaddress').val(); 648 var telephone = jQuery('#telephone').val(); 649 650 if (username == '') { 651 popError = true; 652 jQuery('#fullname').addClass('error-field'); 653 } else { 654 jQuery('#fullname').removeClass('error-field'); 655 } 656 if (emailaddress == '') { 657 popError = true; 658 jQuery('#emailaddress').addClass('error-field'); 659 } else { 660 var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 661 var is_email_sample = re.test(emailaddress); 662 if (!is_email_sample) { 663 popError = true; 664 jQuery('#emailaddress').addClass('error-field'); 665 } else { 666 jQuery('#emailaddress').removeClass('error-field'); 667 } 668 } 669 if (telephone == '') { 670 popError = true; 671 jQuery('#telephone').addClass('error-field'); 672 } else { 673 var re = /^(?=.*[0-9])[- +()0-9]+$/; 674 var is_tel_sample = re.test(telephone); 675 if (!is_tel_sample) { 676 popError = true; 677 jQuery('#telephone').addClass('error-field'); 678 } else { 679 jQuery('#telephone').removeClass('error-field'); 680 } 681 } 682 683 if (popError == true) { 684 685 jQuery('.error-display').addClass('compul'); 686 return false; 687 } else { 688 jQuery('.form_mainwrap #step_type').hide(); 689 jQuery('.form_mainwrap #form_submit').show(); 690 } 691 }); 692 693 var clearContactFormSubmitTimeout = function ($form) { 694 var timeoutId = $form.data('kilchomanSubmitTimeout'); 695 if (timeoutId) { 696 window.clearTimeout(timeoutId); 697 $form.removeData('kilchomanSubmitTimeout'); 698 } 699 }; 700 701 var setContactFormSubmitting = function ($form, isSubmitting) { 702 var $btn = $form.find('#form_submit'); 703 $form.data('kilchomanSubmitting', isSubmitting); 704 $form.toggleClass('is-submitting-form', isSubmitting); 705 if (!isSubmitting) { 706 clearContactFormSubmitTimeout($form); 707 } 708 if (isSubmitting) { 709 if (!$btn.data('originalText')) { 710 $btn.data('originalText', $btn.text()); 711 } 712 $btn.addClass('is-submitting').attr({ 713 'aria-busy': 'true', 714 'aria-disabled': 'true' 715 }).html('Sending<span class="sending-dots" aria-hidden="true">...</span>'); 716 } else { 717 $btn.removeClass('is-submitting').attr({ 718 'aria-busy': 'false', 719 'aria-disabled': 'false' 720 }); 721 if ($btn.data('originalText')) { 722 $btn.text($btn.data('originalText')); 723 } 724 } 725 }; 726 727 var unlockContactFormIfSubmitting = function (event) { 728 var $form = jQuery(event.target); 729 if (!$form.is('form.wpcf7-form') || !$form.data('kilchomanSubmitting')) { 730 return; 731 } 732 setContactFormSubmitting($form, false); 733 }; 734 735 document.addEventListener('wpcf7invalid', unlockContactFormIfSubmitting);
736 document.addEventListener('wpcf7spam', unlockContactFormIfSubmitting); 737 document.addEventListener('wpcf7mailfailed', unlockContactFormIfSubmitting); 738 document.addEventListener('wpcf7aborted', unlockContactFormIfSubmitting); 739 740 var setContactFormNextLink = function () { 741 var link = document.querySelector('.contact-single-step-form .contact-form-next a'); 742 if (!link) { 743 return; 744 } 745 try { 746 var current = new URL(window.location.href); 747 var currentPath = current.pathname.replace(/\/+$/, '') || '/'; 748 var stored = sessionStorage.getItem('kilchomanLastPage'); 749 if (!stored && document.referrer) { 750 var previous = new URL(document.referrer); 751 var previousPath = previous.pathname.replace(/\/+$/, '') || '/'; 752 if (previous.origin === current.origin && previousPath !== currentPath) { 753 stored = previous.href; 754 sessionStorage.setItem('kilchomanLastPage', stored); 755 } 756 } 757 if (!stored) { 758 return; 759 } 760 var storedUrl = new URL(stored); 761 if (storedUrl.origin !== current.origin) { 762 return; 763 } 764 var storedPath = storedUrl.pathname.replace(/\/+$/, '') || '/'; 765 if (storedPath === currentPath) { 766 return; 767 } 768 link.setAttribute('href', storedUrl.href); 769 link.textContent = 'Return to the last page you visited'; 770 } catch (e) { 771 return; 772 } 773 }; 774 setContactFormNextLink(); 775 776 var nameField = document.getElementById('fullname'); 777 var contactForm = document.querySelector('.contact-single-step-form form.wpcf7-form'); 778 if (nameField && contactForm && !contactForm.classList.contains('sent')) { 779 window.setTimeout(function () { 780 if (document.activeElement && document.activeElement !== document.body && document.activeElement !== nameField) { 781 return; 782 } 783 nameField.focus(); 784 }, 0); 785 } 786 787 if (contactForm) { 788 contactForm.querySelectorAll('#gdpr_terms a').forEach(function (link) { 789 link.setAttribute('tabindex', '-1'); 790 }); 791 792 var syncHiddenContactTabStops = function () { 793 contactForm.querySelectorAll('.cf-turnstile iframe').forEach(function (iframe) { 794 var widget = iframe.closest('.cf-turnstile'); 795 var showingChallenge = widget && widget.offsetHeight > 32; 796 iframe.setAttribute('tabindex', showingChallenge ? '0' : '-1'); 797 }); 798 contactForm.querySelectorAll('.wpcf7-honeypot input, .honeypot-cf7-field input').forEach(function (input) { 799 input.setAttribute('tabindex', '-1'); 800 }); 801 }; 802 syncHiddenContactTabStops(); 803 if (window.MutationObserver) { 804 new MutationObserver(syncHiddenContactTabStops).observe(contactForm, { 805 childList: true, 806 subtree: true 807 }); 808 } 809 } 810 811 var markContactFormComplete = function (form) { 812 var wrap = form && form.closest ? form.closest('.contact-single-step-form') : null; 813 if (!wrap) { 814 wrap = document.querySelector('.contact-single-step-form'); 815 } 816 if (!wrap) { 817 return; 818 } 819 wrap.classList.add('is-complete'); 820 var column = wrap.querySelector('.form_inner.with-bgemblom'); 821 if (column && typeof column.scrollIntoView === 'function') { 822 var reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; 823 column.scrollIntoView({ 824 behavior: reduceMotion ? 'auto' : 'smooth', 825 block: 'start' 826 }); 827 } 828 }; 829 830 if (document.querySelector('.contact-single-step-form form.sent')) { 831 markContactFormComplete(document.querySelector('.contact-single-step-form form.sent')); 832 } 833 834 document.addEventListener('wpcf7mailsent', function (event) { 835 clearContactFormSubmitTimeout(jQuery(event.target)); 836 markContactFormComplete(event.target); 837 }); 838 839 jQuery('#form_submit').on('click', function (e) { 840 e.preventDefault(); 841 var $btn = jQuery(this); 842 var $form = $btn.closest('form.wpcf7-form'); 843 if (!$form.length || $form.data('kilchomanSubmitting')) { 844 return; 845 } 846 847 var popError = false;
848 var username = jQuery('#fullname').val(); 849 var emailaddress = jQuery('#emailaddress').val(); 850 var telephone = jQuery('#telephone').val(); 851 var messagearea = jQuery('#messagearea').val(); 852 853 if (username == '') { 854 popError = true; 855 jQuery('#fullname').addClass('error-field'); 856 } else { 857 jQuery('#fullname').removeClass('error-field'); 858 } 859 if (emailaddress == '') { 860 popError = true; 861 jQuery('#emailaddress').addClass('error-field'); 862 } else { 863 var emailRegex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 864 var isEmailValid = emailRegex.test(emailaddress); 865 if (!isEmailValid) { 866 popError = true; 867 jQuery('#emailaddress').addClass('error-field'); 868 } else { 869 jQuery('#emailaddress').removeClass('error-field'); 870 } 871 } 872 if (telephone == '') { 873 popError = true; 874 jQuery('#telephone').addClass('error-field'); 875 } else { 876 var telephoneRegex = /^(?=.*[0-9])[- +()0-9]+$/; 877 var isTelephoneValid = telephoneRegex.test(telephone); 878 if (!isTelephoneValid) { 879 popError = true; 880 jQuery('#telephone').addClass('error-field'); 881 } else { 882 jQuery('#telephone').removeClass('error-field'); 883 } 884 } 885 886 var isChecked = jQuery('#gdpr input').is(':checked'); 887 if (!isChecked) { 888 popError = true; 889 jQuery('label[for="gdpr_check"]').addClass('error-field'); 890 jQuery('#gdpr span span').addClass('error-field'); 891 } else { 892 jQuery('label[for="gdpr_check"]').removeClass('error-field'); 893 jQuery('#gdpr span span').removeClass('error-field'); 894 } 895 896 if (messagearea == '') { 897 popError = true; 898 jQuery('#messagearea').addClass('error-field'); 899 } else { 900 jQuery('#messagearea').removeClass('error-field'); 901 } 902 903 if (popError == false) { 904 jQuery('.error-display').removeClass('compul'); 905 setContactFormSubmitting($form, true); 906 $form.data('kilchomanSubmitTimeout', window.setTimeout(function () { 907 if (!$form.data('kilchomanSubmitting')) { 908 return; 909 } 910 setContactFormSubmitting($form, false); 911 var output = $form[0].querySelector('.wpcf7-response-output'); 912 if (output) { 913 output.textContent = 'The form is taking too long to send. Please wait a moment and try again.'; 914 } 915 }, 45000)); 916 if (window.wpcf7 && typeof window.wpcf7.submit === 'function') { 917 window.wpcf7.submit($form[0]); 918 } else { 919 HTMLFormElement.prototype.submit.call($form[0]); 920 } 921 } else { 922 jQuery('.error-display').addClass('compul'); 923 } 924 }); 925 }, 926 basecustomselect: function () { 927 /* Leave CF7 cask form selects native (custom gold styling in cask-ownership.php). */ 928 /* Competition modal country select: native select avoids an extra invisible tab stop from Selectric. */ 929 jQuery('select') 930 .not('.cask-reg-form select') 931 .not('#competitionModal select') 932 .not('select.country-type') 933 .selectric(); 934 935 kilchomanCompetitionUseNativeSelect(); 936 937 jQuery('#shipping_state_field select').selectric('destroy'); 938 if (jQuery('body').hasClass('woocommerce-checkout')) { 939 if (jQuery('#shipping_state').is('input:text')) { 940 if (jQuery('#shipping_state_field span.select2').is(':visible')) { 941 jQuery('#shipping_state').select2('destroy'); 942 } 943 } else { 944 jQuery('#shipping_state').select2(); 945 } 946 } 947 948 }, 949 carttoggler: function () { 950 jQuery('header .iconcart,.cart-contents').on('click', function (e) { 951 e.preventDefault(); 952 // jQuery(this).html('<strong>Close</strong>'); 953 jQuery('body').toggleClass('show_cart'); 954 jQuery('html').toggleClass('onshow_cart'); 955 // jQuery("body.page-template-team .scrollwrap").niceScroll({}); 956 957 }); 958 }, 959 960 labelanim: function () {
961 var updatePlaceholderLabel = function ($input) { 962 var $label = $input.next('.placeholdertxt'); 963 964 if (!$label.length) { 965 $label = $input.closest('.wpcf7-form-control-wrap').next('.placeholdertxt'); 966 } 967 968 if (!$label.length) { 969 $label = $input.closest('.form-group').find('> .placeholdertxt, label.placeholdertxt').first(); 970 } 971 972 if (!$label.length) { 973 return; 974 } 975 976 if ($input.val() !== '' || $input.is(':focus')) { 977 $label.addClass('stickylabel'); 978 } else { 979 $label.removeClass('stickylabel'); 980 } 981 }; 982 983 jQuery(document).on('input focus blur', '.slide_blocks .form-control, .contactWrap .form-control, #login .form-control, .form-control', function () { 984 updatePlaceholderLabel(jQuery(this)); 985 }); 986 987 jQuery('.slide_blocks .form-control, .contactWrap .form-control, #login .form-control, .form-control').each(function () { 988 updatePlaceholderLabel(jQuery(this)); 989 }); 990 }, 991 pagescrollr: function () { 992 /*jQuery('.clickscroll').on('click', function (e) { 993 e.preventDefault(); 994 995 var target = this.hash; 996 var $target = jQuery(target); 997 var headHeigh = jQuery('header').outerHeight(); 998 jQuery('html, body').stop().animate({ 999 'scrollTop': $target.offset().top - headHeigh 1000 }, 900, 'swing', function () { 1001 window.location.hash = target; 1002 }); 1003 });*/ 1004 1005 jQuery('.clickscroll, .page-template-distillery .scrollarrow_btn, .page-template-distillery .detail_block .btn').click(function () { 1006 var headHeigh = jQuery('header').outerHeight(); 1007 var target = jQuery(this.hash); 1008 target = target.length ? target : jQuery('[name=' + this.hash.substr(1) + ']'); 1009 if (target.length) { 1010 jQuery('html,body').animate({ 1011 scrollTop: target.offset().top - headHeigh 1012 }, 1000); 1013 return false; 1014 } 1015 }); 1016 }, 1017 slimscroller: function () { 1018 1019 jQuery('.scrollwrap').slimscroll({ 1020 start: 'top', 1021 railColor: '#e4e0dc', 1022 railVisible: true, 1023 color: '#c3bcb4', 1024 height: '200px', 1025 railOpacity: '1', 1026 opacity: '1', 1027 //wheelStep: 10, 1028 allowPageScroll: false, 1029 //wheelStep: 10, 1030 }); 1031 1032 jQuery('.order-detail-container .scrollwrap, .sidebar-cart-count .scrollwrap').slimscroll({ 1033 height: '350px', 1034 }); 1035 }, 1036 listactiver: function () { 1037 var url = window.location; 1038 jQuery('.lined_list a[href="' + url + '"]').parent().addClass('active'); 1039 jQuery('.lined_list a').filter(function () { 1040 return this.href == url; 1041 }).parent().addClass('active'); 1042 1043 jQuery('.lined_list a').each(function () { 1044 if (jQuery(this).attr('href') == '#') { 1045 jQuery(this).parents('li').removeClass('active'); 1046 } 1047 }); 1048 }, 1049 1050 bgmove: function () { 1051 var movementStrength = 20; 1052 var height = movementStrength / jQuery(window).height(); 1053 var width = movementStrength / jQuery(window).width(); 1054 jQuery(".mover_bg").mousemove(function (e) { 1055 var pageX = e.pageX - (jQuery(window).width() / 2); 1056 var pageY = e.pageY - (jQuery(window).height() / 2); 1057 var newvalueX = width * pageX * -1 - -10; 1058 var newvalueY = height * pageY * -1 - 0; 1059 jQuery('.mover_bg').css("background-position", newvalueX + "px " + newvalueY + "px"); 1060 }); 1061 }, 1062 masonry: function () { 1063 1064 1065 // init Isotope after all images have loaded 1066 $('.grid-products').isotope({ 1067 itemSelector: '.grid-item', 1068 layoutMode: 'fitRows' 1069 }); 1070 1071 1072 }, 1073 blankpageopener: function () { 1074 jQuery('#menu-social_links li, #menu-social_links-2 li').each(function () { 1075 1076 jQuery(this).find('a').attr('target', '_blank'); 1077 }) 1078 } 1079} 1080 1081jQuery(document).on('ready', function () { 1082 kilchomanRememberPageForContactReturn(); 1083 siteScript.init(); 1084 // console.log(itemLength); 1085 var owl = jQuery('.plain_detail .owl-carousel'); 1086 owl.owlCarousel(); 1087 1088 jQuery(document).on('click touch', '.customNextBtn', function () { 1089 1090 owl.trigger('next.owl.carousel', [300]); 1091 1092 }); 1093 // Go to the previous item 1094 jQuery(document).on('click touch', '.customPrevBtn', function () { 1095 1096 1097 owl.trigger('prev.owl.carousel', [300]); 1098 }); 1099 1100 jQuery('.woocommerce-checkout').on('click', '.actions a[href="#next"]', function (e) { 1101 if (jQuery('#billing_first_name').length > 0 && jQuery('#shipping_first_name').length > 0) { 1102 jQuery('#shipping_first_name').val(jQuery('#billing_first_name').val()); 1103 jQuery('#shipping_last_name').val(jQuery('#billing_last_name').val()); 1104 } 1105 }); 1106 1107 1108 1109 1110 jQuery('body').addClass('notevidebutton'); 1111 1112 1113 jQuery('#customer_country').selectric(); 1114 1115 1116 jQuery('.custom_admin_order').on('click', function () { 1117 1118 1119 jQuery('.mainloader').html('<div class="preloader" style="display: none;"></div>'); 1120 1121 jQuery('.mainloader .preloader').show(); 1122 var prodctID = jQuery(this).attr('data-productID'); 1123 1124 var data = { 1125 action: 'getAdminCustomOrder', 1126 productId: prodctID, 1127 }; 1128 jQuery.ajax({ 1129 type: 'POST', 1130 url: kilchoman_ajax_object.ajax_url, 1131 data: data, // form data 1132 success: function (data) { 1133 //var obj = jQuery.parseJSON( data ); 1134 1135 jQuery('#product_popup').html(data); 1136 jQuery('#product_popup select').selectric({ 1137 onInit: function () { 1138 var selectricContainer = jQuery(".selectric-scroll"); 1139 selectricContainer.slimScroll({ 1140 height: '200px', 1141 start: 'top', 1142 railColor: '#e4e0dc', 1143 railVisible: true, 1144 color: '#c3bcb4', 1145 railOpacity: '1', 1146 opacity: '1', 1147 wheelStep: 10, 1148 alwaysVisible: true 1149 }); 1150 1151 }, 1152 }); 1153 1154 jQuery('#product_popup').modal('show'); 1155 jQuery('.mainloader .preloader').remove(); 1156 1157 } 1158 }); 1159 }); 1160 /* Custom Order Booking*/ 1161 1162 1163 jQuery(document).on('click', "#book_now_ticket_new", function (e) { 1164 1165 e.preventDefault(); 1166 //jQuery('body').addClass('modal-open'); 1167 var popError = false;
1168 jQuery('#customer_data_group span.Error').remove(); 1169 1170 var isDisable = jQuery(this).attr('disabled'); 1171 1172 if (isDisable == 'disabled') { 1173 popError = true; 1174 jQuery('#customer_data_group .apply-btn').after('<span class="Error">Please select a time slot:</span>'); 1175 } 1176 if (popError == true) { 1177 return false; 1178 } 1179 1180 1181 jQuery('.selectric-number-people span.Error').remove(); 1182 //jQuery( 'body' ).removeClass( 'modal-open' ); 1183 1184 var tourName = jQuery('#tour_name').val(); 1185 var productType = jQuery('option:selected', "select[name='kilchoman-variation']").val(); 1186 var productPrice = jQuery('option:selected', "select[name='available-places']").attr('data-price'); 1187 var productId = jQuery('#ajax_change_id').val(); 1188 var productVariationId = jQuery('option:selected', "select[name='available-places']").val(); 1189 var bookingTime = jQuery('option:selected', "select[name='available-places']").text(); 1190 var productQuantity = jQuery('option:selected', "select[name='kilchoman-people']").val(); 1191 var productDate = jQuery("#datepicker_booking").val(); 1192 1193 var single_event_adults = jQuery('option:selected', "select[name='single_event_adults']").val(); 1194 var single_event_childrens = jQuery('option:selected', "select[name='single_event_childrens']").val(); 1195 var is_single_event = jQuery('#is_single_event').val(); 1196 /* Customer Info Start */ 1197 1198 var firstname = jQuery("#firstname").val(); 1199 var lastname = jQuery("#lastname").val(); 1200 var emailid = jQuery("#emailid").val(); 1201 var phonenumber = jQuery("#phonenumber").val(); 1202 var customer_country = jQuery('option:selected', "select[name='customer_country']").val(); 1203 var address1 = jQuery("#address1").val(); 1204 var address2 = jQuery("#address2").val(); 1205 var city = jQuery("#city").val(); 1206 var state = jQuery("#state").val(); 1207 var postcode = jQuery("#postcode").val(); 1208 1209 1210 /* Customer Info End */ 1211 1212 if (productDate == '') { 1213 1214 popError = true; 1215 1216 jQuery('.date-group span').after('<span class="Error">Please select date..</span>'); 1217 1218 } 1219 if (jQuery('select[name="kilchoman-people"]').length > 0) { 1220 if (productQuantity == '' || productQuantity == 'Please select number of persons..') { 1221 1222 popError = true; 1223 1224 jQuery('.selectric-number-people .selectric').after('<span class="Error">Please select people..</span>'); 1225 1226 } 1227 } 1228 if (productPrice == '') { 1229 1230 popError = true; 1231 1232 jQuery('.selectric-time-slote .selectric').after('<span class="Error">Please select a time slot</span>'); 1233 1234 } 1235 if (productVariationId == '') { 1236 1237 popError = true; 1238 1239 jQuery('.selectric-time-slote .selectric').after('<span class="Error">Please select time..</span>'); 1240 1241 } 1242 1243 // if(firstname == ''){ 1244 1245 // popError = true; 1246 1247 // jQuery(".firstname").after('<span class="Error">Please Enter First Name..</span>'); 1248 1249 // } 1250 1251 // if(lastname == ''){ 1252 1253 // popError = true; 1254 1255 // jQuery(".lastname").after('<span class="Error">Please Enter Last Name..</span>'); 1256 1257 // } 1258 // if(emailid == ''){ 1259 1260 // popError = true; 1261 1262 // jQuery(".emailid").after('<span class="Error">Please Enter Email Address..</span>'); 1263 1264 // }else if(emailid != ''){ 1265 // var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 1266 // var is_email_sample = re.test(emailid); 1267 // if(!is_email_sample){ 1268 1269 // popError = true; 1270 1271 // jQuery(".emailid").after('<span class="Error">Please Enter Valid Email Address..</span>'); 1272 1273 // } 1274 // } 1275 // if(phonenumber == ''){ 1276 1277 // popError = true; 1278 1279 // jQuery(".phonenumber").after('<span class="Error">Please Enter Phone Number..</span>'); 1280 1281 // }else if(phonenumber != ''){ 1282 // var re = /^(?=.*[0-9])[- +()0-9]+$/; 1283 // var is_tel_sample = re.test(phonenumber); 1284 // if(!is_tel_sample){ 1285 // popError = true; 1286 1287 // jQuery(".phonenumber").after('<span class="Error">Please Enter Valid Phone Number..</span>'); 1288 // } 1289 // } 1290 1291 // if(state == ''){ 1292 1293 // popError = true; 1294 1295 // jQuery(".state").after('<span class="Error">Please Enter State..</span>'); 1296 1297 // } 1298 1299 // if(address1 == ''){ 1300 1301 // popError = true; 1302 1303 // jQuery(".address1").after('<span class="Error">Please Enter Address 1..</span>'); 1304 1305 // } 1306 1307 // if(address2 == ''){ 1308 1309 // popError = true; 1310 1311 // jQuery(".address2").after('<span class="Error">Please Enter Address 2..</span>'); 1312 1313 // } 1314 1315 // if(city == ''){ 1316 1317 // popError = true; 1318 1319 // jQuery(".city").after('<span class="Error">Please Enter City..</span>'); 1320 1321 // } 1322 1323 // if(postcode == ''){ 1324 1325 // popError = true; 1326 1327 // jQuery(".postcode").after('<span class="Error">
1327Please Enter Postcode..</span>'); 1328 1329 // } 1330 1331 if (popError == true) { 1332 return false; 1333 } 1334 jQuery(".preloader").show(); 1335 var data = { 1336 action: 'cutom_admin_order', 1337 productType: productType, 1338 productId: productId, 1339 productPrice: productPrice, 1340 bookingTime: bookingTime, 1341 productVariationId: productVariationId, 1342 productQuantity: productQuantity, 1343 productDate: productDate, 1344 firstname: firstname, 1345 lastname: lastname, 1346 emailid: emailid, 1347 phonenumber: phonenumber, 1348 address1: address1, 1349 address2: address2, 1350 city: city, 1351 state: state, 1352 postcode: postcode, 1353 customer_country: customer_country, 1354 tourName: tourName, 1355 1356 single_event_adults: single_event_adults, 1357 single_event_childrens: single_event_childrens, 1358 is_single_event: is_single_event 1359 1360 }; 1361 jQuery.ajax({ 1362 type: 'POST', 1363 url: kilchoman_ajax_object.ajax_url, 1364 data: data, // form data 1365 success: function (data) { 1366 var obj = jQuery.parseJSON(data); 1367 1368 if (obj.added == 'success') { 1369 jQuery('.message').html(''); 1370 jQuery('.message').html(obj.message); 1371 jQuery('.number-people').prop('selectedIndex', 0).selectric({ 1372 onInit: function () { 1373 var selectricContainer = jQuery(".selectric-scroll"); 1374 selectricContainer.slimScroll({ 1375 height: '200px', 1376 start: 'top', 1377 railColor: '#e4e0dc', 1378 railVisible: true, 1379 color: '#c3bcb4', 1380 railOpacity: '1', 1381 opacity: '1', 1382 wheelStep: 10, 1383 alwaysVisible: true 1384 }); 1385 1386 }, 1387 }); 1388 jQuery('#datepicker_booking').val(''); 1389 jQuery("#available_place").html(''); 1390 jQuery('#customer_data_group').hide(); 1391 jQuery('#firstname').val(''); 1392 jQuery('#lastname').val(''); 1393 jQuery('#emailid').val(''); 1394 jQuery('#address1').val(''); 1395 jQuery('#address2').val(''); 1396 jQuery('#city').val(''); 1397 jQuery('#state').val(''); 1398 jQuery('#postcode').val(''); 1399 jQuery('#phonenumber').val(''); 1400 jQuery('.button-group').hide(); 1401 jQuery('.ticket-price').hide(); 1402 jQuery('#book_now_ticket_new').attr('disabled', 'disabled'); 1403 jQuery('.form-control').next('.placeholdertxt').removeClass('stickylabel'); 1404 jQuery('select[name="customer_country"]').prop('selectedIndex', 0).selectric({ 1405 onInit: function () { 1406 var selectricContainer = jQuery(".selectric-scroll"); 1407 selectricContainer.slimScroll({ 1408 height: '200px', 1409 start: 'top', 1410 railColor: '#e4e0dc', 1411 railVisible: true, 1412 color: '#c3bcb4', 1413 railOpacity: '1', 1414 opacity: '1', 1415 wheelStep: 10, 1416 alwaysVisible: true 1417 }); 1418 1419 }, 1420 }); 1421 //jQuery('body').addClass('modal-open'); 1422 jQuery('.preloader').hide(); 1423 1424 } 1425 } 1426 }); 1427 1428 1429 }); 1430 1431 // jQuery('#shipping_country').on('change',function(){ 1432 // setTimeout(function(){ 1433 // jQuery('.state_select').selectric('destroy'); 1434 // jQuery('.state_select').selectric(); 1435 // }); 1436 1437 1438 // }); 1439 1440 1441 // if(window.location.href.indexOf('#data_login_modal') != -1) { 1442 1443 // setTimeout(function(){ jQuery('#data_login_modal').modal('show'); },1000); 1444 // } 1445 1446 // for reset password 1447 // jQuery("form#resetPasswordForm").submit(function(){ 1448 // var submit = jQuery("div#resetPassword #submit"), 1449 // preloader = jQuery("div#resetPassword #preloader"), 1450 // message = jQuery("div#resetPassword #message"), 1451 // contents = { 1452 // action: 'reset_pass', 1453 // nonce: this.rs_user_reset_password_nonce.value, 1454 // pass1: this.pass1.value, 1455 // pass2: this.pass2.value, 1456 // user_key: this.user_key.value, 1457 // user_login: this.user_login.value 1458 // }; 1459 1460 // // disable button onsubmit to avoid double submision 1461 // submit.attr("disabled", "disabled").addClass('disabled'); 1462 1463 // // Display our pre-loading 1464 // preloader.css({'visibility':'visible'}); 1465 1466 // $.post( kilchoman_ajax_object.ajax_url, contents, function( data ){ 1467 // submit.removeAttr("disabled").removeClass('disabled'); 1468 1469 // // hide pre-loader 1470 // preloader.css({'visibility':'hidden'}); 1471 1472 // // display return data 1473 // message.html( data ); 1474 // }); 1475 1476 // return false;
1477 // }); 1478 1479 1480 // jQuery('.open-popup-link').on('click',function(){ 1481 // jQuery('.selectric-items ul li').each(function(){ 1482 // if(jQuery(this).hasClass('selected')){ 1483 // jQuery('.popup-price').html(jQuery(this).find('strong').text()); 1484 // } 1485 // }); 1486 // }); 1487 1488 1489 //jQuery('.popup-price').html(jQuery('option:selected','select[name="attribute_product"]').attr('data-price')); 1490 1491 1492 jQuery(document).on('change', '.number-people', function () { 1493 var countPeople = jQuery('option:selected', this).val(); 1494 var ticketPrice = jQuery('option:selected', '.tour-type').attr('data-price'); 1495 jQuery('.ticket-price span').text((parseFloat(ticketPrice) * countPeople).toFixed(2)); 1496 1497 }); 1498 1499 1500 /*sigle add to cart ajax customize end*/ 1501 1502 1503 // jQuery('.club-login-menu a').attr('href', 'javascript:void(0)'); 1504/* 1505 jQuery('.club-login-menu').on('click', function () { 1506 1507 jQuery('#data_login_modal').modal('show'); 1508 ga('send', { 1509 hitType: 'event', 1510 eventCategory: 'Settings', 1511 eventAction: 'Enable', 1512 eventLabel: 'Dark mode' 1513 }); 1514 1515 gtag('event', 'open_login', { 1516 event_category: 'Login Screen', 1517 event_label: 'Open Poup to Login' 1518 }); 1519 }); 1520*/ 1521 jQuery('#gdpr input').attr('id', 'gdpr_check'); 1522 jQuery('.toggle_cart').on('click', function () { 1523 1524 jQuery('body').toggleClass('show_cart'); 1525 }); 1526 1527 jQuery('#backtotop').click(function () { 1528 jQuery("html, body").animate({ 1529 scrollTop: 0 1530 }, 500); 1531 return false; 1532 }); 1533 1534 jQuery("select#product").on('change', function () { 1535 var popID = jQuery('.mfp-with-anim.wpb_wl_clearfix.product').attr('id'); 1536 var priceVal = jQuery('option:selected', this).attr('data-price'); 1537 1538 jQuery('#' + popID + ' .popup-price span').remove(); 1539 jQuery('#' + popID + ' .popup-price').html(priceVal); 1540 }); 1541 1542 jQuery('#shipping_myfield2_checkbox').on('click', function () { 1543 if (jQuery(this).prop("checked") == true) { 1544 1545 var country = jQuery('#billing_country option:selected').val(); 1546 var address1 = jQuery('#billing_address_1').val(); 1547 var address2 = jQuery('#billing_address_2').val(); 1548 var ciy = jQuery('#billing_city').val(); 1549 var postcode = jQuery('#billing_postcode').val(); 1550 1551 jQuery('#shipping_country').val(country); 1552 jQuery('#shipping_country').selectric(); 1553 jQuery('#shipping_address_1').val(address1); 1554 jQuery('#shipping_address_2').val(address2); 1555 jQuery('#shipping_city').val(ciy); 1556 jQuery('#shipping_postcode').val(postcode); 1557 //jQuery('body').trigger('update_checkout'); 1558 1559 } else if (jQuery(this).prop("checked") == false) { 1560 1561 jQuery('#shipping_country').val(''); 1562 jQuery('#shipping_country').selectric(); 1563 jQuery('#shipping_address_1').val(''); 1564 jQuery('#shipping_address_2').val(''); 1565 jQuery('#shipping_city').val(''); 1566 jQuery('#shipping_postcode').val(''); 1567 //jQuery('body').trigger('update_checkout'); 1568 } 1569 }); 1570 1571 1572 // Perform AJAX forget password on form submit 1573 jQuery('form#forgot_password').on('submit', function (e) { 1574 if (!jQuery(this).valid()) return false; 1575 1576 ctrl = jQuery(this); 1577 var $status = jQuery('p.status', ctrl); 1578 var $button = jQuery('.submit_button', ctrl); 1579 var originalButtonText = $button.data('original-text') || $button.val(); 1580 $button.data('original-text', originalButtonText); 1581 1582 // Loading state: show progress in the banner *and* on the button 1583 // itself, since that's where the user's eye already is. 1584 $status 1585 .removeClass('status--success status--error') 1586 .addClass('status--loading') 1587 .text(kilchoman_ajax_object.loadingmessage); 1588 $button.prop('disabled', true).val(kilchoman_ajax_object.loadingmessage); 1589 1590 jQuery.ajax({ 1591 type: 'POST', 1592 dataType: 'json', 1593 url: kilchoman_ajax_object.ajax_url, 1594 data: { 1595 'action': 'ajaxforgotpassword1', 1596 'user_login': jQuery('#user_login').val(), 1597 'security': jQuery('#forgotsecurity').val(), 1598 }, 1599 success: function (data) { 1600 var isSuccess = !!data.success; 1601 $status 1602 .removeClass('status--loading status--success status--error') 1603 .addClass(isSuccess ? 'status--success' : 'status--error') 1604 .text(data.message); 1605 1606 if (isSuccess) { 1607 $button.val('Email Sent').prop('disabled', true); 1608 } else { 1609 $button.val(originalButtonText).prop('disabled', false); 1610 } 1611 }, 1612 error: function () { 1613 $status 1614 .removeClass('status--loading status--success status--error') 1615 .addClass('status--error') 1616 .text('Something went wrong sending that request. Please try again.'); 1617 $button.val(originalButtonText).prop('disabled', false); 1618 } 1619 }); 1620 e.preventDefault(); 1621 return false;
1622 }); 1623 1624// Client side form validation 1625 if (jQuery('#forgot_password').length) { 1626 jQuery('#forgot_password').validate(); 1627 } 1628 1629 1630 if (jQuery('.onepage-account').length > 0) { 1631 jQuery(document).on("scroll", onScrollActive); 1632 } 1633 1634 1635 jQuery('#lostpass').on('click', function () { 1636 jQuery('#data_login_modal').modal('hide'); 1637 jQuery('#data_reset_modal').modal('show'); 1638 }); 1639 1640 // Reset the password-reset modal to a clean state each time it's 1641 // reopened, so a previous success/error message or disabled button 1642 // doesn't linger from an earlier attempt. 1643 jQuery('#data_reset_modal').on('shown.bs.modal', function () { 1644 var $form = jQuery('#forgot_password', this); 1645 var $button = jQuery('.submit_button', $form); 1646 jQuery('p.status', $form).removeClass('status--loading status--success status--error').text(''); 1647 $button.prop('disabled', false).val($button.data('original-text') || $button.val()); 1648 }); 1649 1650 1651 jQuery('#shipping_loader_btn').on('click', function () { 1652 1653 $sPostCode = jQuery('#shipping_loader_input').val(); 1654 if ($sPostCode.length > 3) { 1655 ShippingSearchAddress($sPostCode); 1656 } 1657 }); 1658 1659 jQuery('form#login').on('submit', function (e) { 1660 e.preventDefault(); 1661 jQuery("#login #username").removeClass('error'); 1662 jQuery("#login #password").removeClass('error'); 1663 1664 jQuery("#login span.form-error-message").remove(); 1665 // jQuery('form#login span.messages').text(kilchoman_ajax_object.loadingmessage); 1666 var userName = jQuery('form#login #username').val(); 1667 var passWord = jQuery('form#login #password').val(); 1668 var remember = jQuery('form#login #remember:checked').length; 1669 if (remember == 0) { 1670 rememberme = 'false'; 1671 } else { 1672 rememberme = 'true'; 1673 } 1674 var popError = false; 1675 1676 if (userName == '' && passWord != '') { 1677 popError = true; 1678 1679 jQuery("#login #username").addClass('error'); 1680 } else if (userName != '' && passWord == '') { 1681 popError = true; 1682 1683 jQuery("#login #password").addClass('error'); 1684 } else if (userName == '' && passWord == '') { 1685 popError = true; 1686 1687 jQuery("#login #username").addClass('error'); 1688 jQuery("#login #password").addClass('error'); 1689 } else { 1690 popError = false; 1691 } 1692 1693 if (popError == true) { 1694 return false; 1695 } else { 1696 jQuery('form#login span.messages').css('display', 'block'); 1697 } 1698 jQuery.ajax({ 1699 type: 'POST', 1700 dataType: 'json', 1701 url: kilchoman_ajax_object.ajax_url, 1702 data: { 1703 'action': 'ajaxlogin', //calls wp_ajax_nopriv_ajaxlogin 1704 'username': userName, 1705 'password': passWord, 1706 'remember': rememberme, 1707 'security': jQuery('form#login #security').val(), 1708 'redirect_to': jQuery('form#login input[name="redirect_to"]').val() || '' 1709 }, 1710 success: function (data) { 1711 jQuery('form#login span.messages').text(data.message); 1712 if (data.needs_wp_login && data.redirect) { 1713 window.location.href = data.redirect; 1714 return; 1715 } 1716 if (data.loggedin == true) { 1717 document.location.href = data.redirect || kilchoman_ajax_object.redirecturl; 1718 } 1719 }, 1720 error: function (xhr, status, err) { 1721 var msg = 'Login could not be completed. Please try again or use the main login page.'; 1722 if (status === 'parsererror') { 1723 msg = 'The server returned an unexpected response (often two-factor or security software). Try logging in from the main WordPress login page, or refresh this page and try again.'; 1724 } else if (xhr.status === 403 || xhr.status === 0) { 1725 msg = 'Request was blocked or failed to reach the server. Check your connection or try again later.'; 1726 } 1727 jQuery('form#login span.messages').text(msg); 1728 } 1729 }); 1730 e.preventDefault(); 1731 }); 1732 1733 1734 jQuery('span#book_ticket_button').on('click', function () { 1735 1736 jQuery('#forms')[0].reset(); 1737 jQuery('#variation_people').hide(); 1738 jQuery('#variation_people').prop('selectedIndex', 0); 1739 jQuery('#available_place').hide(); 1740 jQuery('.date-group').hide(); 1741 jQuery('.button-group').hide(); 1742 jQuery('#customer_data_group').hide(); 1743 1744 jQuery("#datepicker_booking").datepicker("refresh"); 1745 // jQuery('.apply-btn').hide(); 1746 }); 1747 1748 // jQuery('h3#ship-to-different-address label input[name="ship_to_different_address"]').prop('checked',true); 1749 // jQuery('.shipping-tab-contents .woocommerce-shipping-fields .shipping_address').show(); 1750 //jQuery('#ship-to-different-address').hide();
1751 //jQuery('.mc4wp-checkbox.mc4wp-checkbox-woocommerce label span').after('<b>Keep up to date with all that goes on at Kilchoman and receive special offers on whisky and merchandise.</b>'); 1752 jQuery('#billing_myfield11_field label span:eq(0)').after('<b>You must be aged 18 or over to checkout and become a member of the Kilchoman Club.</b>'); 1753 jQuery('#shipping_myfield1_field label span:eq(0)').after('<b>You can edit the address saved to your account in your account settings.</b>'); 1754 jQuery('#shipping_myfield2_field label span:eq(0)').after('<b>We are not able to ship alcohol to all the countries listed. Please check the above shipping costs for the full list of countries we are able to ship whisky to.</b>'); 1755 1756 1757 jQuery('input[name="comOption"]').on('change', function () { 1758 jQuery("#SelectedOption").val(jQuery('input[name="comOption"]:checked').val()); 1759 }); 1760 1761 jQuery('#competitionModal').on('shown.bs.modal', function () { 1762 kilchomanCompetitionUseNativeSelect(); 1763 }); 1764 1765 document.addEventListener('wpcf7mailsent', function (event) { 1766 var form = event.target; 1767 if (!form || !form.querySelectorAll) { 1768 return; 1769 } 1770 form.querySelectorAll('.cf-turnstile, .wpcf7-turnstile').forEach(function (widget) { 1771 widget.style.display = 'none'; 1772 }); 1773 }); 1774 1775 document.addEventListener('wpcf7domready', function (event) { 1776 if (event.target && event.target.closest && event.target.closest('#competitionModal')) { 1777 setTimeout(kilchomanCompetitionUseNativeSelect, 0); 1778 } 1779 }); 1780 1781 var divs = jQuery(".grid-list-item"); 1782 var divCount = divs.length; 1783 var evenHalf = Math.ceil(divs.length / 2); 1784 for (var i = 0; i < divCount; i += evenHalf) { 1785 if (i == evenHalf) { 1786 divs.slice(i, i + evenHalf).wrapAll("<div class='paroller-block-odd'></div>"); 1787 } else { 1788 divs.slice(i, i + evenHalf).wrapAll("<div class='paroller-block-even'></div>"); 1789 } 1790 } 1791 1792 1793 window.scrollTo(0, 0); 1794 jQuery(function () { 1795 var $elems = jQuery('.element-item,.blog-list'); 1796 var winheight = jQuery(window).height(); 1797 var fullheight = jQuery(document).height(); 1798 1799 jQuery(window).scroll(function () { 1800 animate_elems($elems, winheight, fullheight); 1801 }); 1802 1803 1804 // end animate_elems() 1805 }); 1806 1807 1808 if (jQuery('#play_video').length > 0) { 1809 document.getElementById("play_video").controls = false; 1810 } 1811 1812 1813 jQuery('.product-remove a.remove').on('click', function () { 1814 1815 var url = window.location.href; 1816 1817 jQuery('a.cart-contents').load(url + ' div.header-cart-count'); 1818 jQuery('#checkout_cart .preloader').show(); 1819 jQuery('#checkout_cart').load(url + ' #refresh_checkout'); 1820 setTimeout(function () { 1821 jQuery('#checkout_cart .preloader').hide(); 1822 jQuery('.scrollwrap').slimscroll({ 1823 start: 'top', 1824 railColor: '#e4e0dc', 1825 railVisible: true, 1826 color: '#c3bcb4', 1827 height: '350px', 1828 railOpacity: '1', 1829 opacity: '1', 1830 //wheelStep: 10, 1831 allowPageScroll: false, 1832 //wheelStep: 10, 1833 }); 1834 }, 2000); 1835 }); 1836 1837 1838 jQuery('.product_single_modal').on('click', function () { 1839 jQuery('.mainloader').html('<div class="preloader" style="display: none;"></div>'); 1840 jQuery('.mainloader .preloader').show(); 1841 var prodctID = jQuery(this).attr('data-productID'); 1842 1843 var data = { 1844 action: 'get_single_product_data', 1845 productId: prodctID, 1846 }; 1847 jQuery.ajax({ 1848 type: 'POST', 1849 url: kilchoman_ajax_object.ajax_url, 1850 data: data, // form data 1851 success: function (data) { 1852 jQuery('#product_popup').html(data); 1853 jQuery('#product_popup select').selectric({ 1854 onInit: function () { 1855 var selectricContainer = jQuery(".selectric-scroll"); 1856 selectricContainer.slimScroll({ 1857 height: '200px', 1858 start: 'top', 1859 railColor: '#e4e0dc', 1860 railVisible: true, 1861 color: '#c3bcb4', 1862 railOpacity: '1', 1863 opacity: '1', 1864 wheelStep: 10, 1865 alwaysVisible: true 1866 }); 1867 }, 1868 }); 1869 jQuery('#product_popup').modal('show'); 1870 jQuery('.mainloader .preloader').remove(); 1871 } 1872 }); 1873 setTimeout(function () {
1874 jQuery('.modal-backdrop.in').fadeOut(); 1875 }, 100); 1876 jQuery('.tour-type').prop('selectedIndex', prodctID).selectric(); 1877 jQuery('.number-people').prop('selectedIndex', 0).selectric({ 1878 onInit: function () { 1879 var selectricContainer = jQuery(".selectric-scroll"); 1880 selectricContainer.slimScroll({ 1881 height: '200px', 1882 start: 'top', 1883 railColor: '#e4e0dc', 1884 railVisible: true, 1885 color: '#c3bcb4', 1886 railOpacity: '1', 1887 opacity: '1', 1888 wheelStep: 10, 1889 alwaysVisible: true 1890 }); 1891 }, 1892 }); 1893 jQuery('#variation_people').show(); 1894 }); 1895 1896 1897 jQuery(".tab-whisky a").on('click', function (e) { 1898 1899 jQuery(".preloader").show(); 1900 1901 jQuery(this).parent().siblings().removeClass('active'); 1902 jQuery(this).parent().addClass('active'); 1903 1904 var pageurl = jQuery(this).attr('data-href'); 1905 var newYear = jQuery(this).html(); 1906 1907 var data = { 1908 action: 'get_whisky_tab_posts', 1909 postYear: newYear 1910 }; 1911 jQuery.ajax({ 1912 type: 'POST', 1913 url: kilchoman_ajax_object.ajax_url, 1914 data: data, // form data 1915 success: function (data) { 1916 jQuery('.whiskyLoad').html(data); 1917 // window.history.pushState({path: pageurl}, '', pageurl); 1918 jQuery(".preloader").hide(); 1919 1920 } 1921 }); 1922 1923 1924 }); 1925 1926 1927 1928 jQuery("#menu-primary_menu li").each(function () { 1929 1930 if (jQuery(this).hasClass('current-menu-item')) { 1931 jQuery(this).find('a').children('.menu-image-hover-wrapper').addClass('active'); 1932 } 1933 1934 }); 1935 1936 jQuery('#menu-primary_menu li a').mouseenter(function () { 1937 jQuery(this).parent().siblings().find('.menu-image-hover-wrapper').removeClass('active'); 1938 jQuery(this).parent().siblings().removeClass('current-menu-item'); 1939 jQuery(this).find('.menu-image-hover-wrapper').addClass('active'); 1940 jQuery(this).parent().addClass('current-menu-item'); 1941 }); 1942 1943 jQuery(document).on('load', function () { 1944 jQuery(".video-foreground video source").each(function () { 1945 var sourceFile = jQuery(this).attr("data-src"); 1946 jQuery(this).attr("src", sourceFile); 1947 var video = this.parentElement; 1948 video.load(); 1949 video.play(); 1950 }); 1951 }); 1952 1953 /** 1954 * product image lightbox 1955 */ 1956 1957 jQuery("[data-fancybox]").fancybox(); 1958 1959 if (jQuery('#svg_machir').length > 0) { 1960 setSVGInit1("#svg_machir", 0); 1961 } 1962 if (jQuery('#svgC').length > 0) { 1963 setSVGInit("#svgC", 0); 1964 } 1965 if (jQuery('#svg_sanaig').length > 0) { 1966 setSVGInit2("#svg_sanaig", 0); 1967 } 1968 if (jQuery('#svg_loch').length > 0) { 1969 setSVGInit3("#svg_loch", 0); 1970 } 1971 if (jQuery('#svg_islay').length > 0) { 1972 setSVGInit4("#svg_islay", 0); 1973 } 1974 1975 1976 jQuery("#nin").click(function (event) { 1977 jQuery("#svgC").toggleClass('svg_solid_drow'); 1978 svgAnimation("#svgC", 0); 1979 }); 1980 jQuery("#nin").click(function (event) { 1981 jQuery("#mobilesvg").toggleClass('svg_solid_drow'); 1982 svgAnimation("#mobilesvg", 0); 1983 }); 1984 1985 jQuery("button.machir-bay").click(function (event) { 1986 jQuery("#svg_machir").toggleClass('svg_solid_drow'); 1987 svgAnimation("#svg_machir", 0); 1988 }); 1989 jQuery("button.sanaig").click(function (event) { 1990 jQuery("#svg_sanaig").toggleClass('svg_solid_drow'); 1991 svgAnimation("#svg_sanaig", 0); 1992 }); 1993 jQuery("button.loch-gorm").click(function (event) { 1994 jQuery("#svg_loch").toggleClass('svg_solid_drow'); 1995 svgAnimation("#svg_loch", 0); 1996 }); 1997 jQuery("button.pro-100-islay").click(function (event) { 1998 jQuery("#svg_islay").toggleClass('svg_solid_drow'); 1999 svgAnimation("#svg_islay", 0); 2000 }); 2001 2002 2003}); 2004jQuery(window).resize(function () { 2005 setTimeout(function () { 2006 var bigImage = jQuery('.mainimg').height(); 2007 jQuery('.behind-workshop').css('height', bigImage); 2008 jQuery('.scrollmain').css('height', bigImage); 2009 2010 var smallImage = jQuery('.only-bottom img').height(); 2011 jQuery('.only-bottom').css('height', smallImage); 2012 }, 200); 2013}); 2014 2015jQuery(window).scroll(function () { 2016 2017 if (jQuery('.element-item').length > 0) { 2018 var $elems = jQuery('.element-item'); 2019 var winheight = jQuery(window).height(); 2020 var fullheight = jQuery(document).height(); 2021 2022 animate_elems($elems, winheight, fullheight); 2023 } 2024 siteScript.scrollonscaleimg(); 2025 if (jQuery(this).scrollTop() >= 200) { 2026 2027 jQuery('.showproduct_spot').addClass('zoomingstop'); 2028 } else { 2029 siteScript.scrollonscaledownimg(); 2030 jQuery('.showproduct_spot').removeClass('zoomingstop'); 2031 } 2032 2033 siteScript.fadedetail(); 2034 2035 var top = jQuery(window).scrollTop() 2036 jQuery('.behind-workshop').css({'transform': 'translateY(' + -top + 'px)'}); 2037 2038}).scroll(); 2039 2040 2041function playVideo(videoID) { 2042 2043 var element = document.getElementById(videoID); 2044 element.pause(); 2045 element.currentTime = '0'; 2046 element.play(); 2047 document.getElementById("play_video").controls = true; 2048 jQuery('.maru_potanu').hide(); 2049} 2050 2051function playVideoIfram(videoID) { 2052 2053 var symbol = jQuery('#' + videoID)[0].src.indexOf("?") > -1 ? "&" : "?";
2054 //modify source to autoplay and start video 2055 jQuery('#' + videoID)[0].src += symbol + "autoplay=1&controls=1&rel=0"; 2056 2057 jQuery('#' + videoID).prev().hide(); 2058 jQuery('#' + videoID).parent().addClass('active'); 2059 //jQuery('#'+videoID).parent().addClass('active').parents('.grid-list-item').siblings().children().children('.img_place').removeClass('active'); 2060} 2061 2062function animate_elems($elems, winheight, fullheight) { 2063 wintop = jQuery(window).scrollTop(); // calculate distance from top of window 2064 2065// loop through each item to check when it animates 2066 2067 $elems.each(function () { 2068 $elm = jQuery(this); 2069 2070 if ($elm.hasClass('animated')) { 2071 return true; 2072 } // if already animated skip to the next item 2073 2074 topcoords = $elm.offset().top; // element's distance from top of page in pixels 2075 2076 if (wintop > (topcoords - (winheight * .75))) { 2077 // animate when top of the window is 3/4 above the element 2078 $elm.addClass('animated'); 2079 } 2080 }); 2081} 2082 2083function redirectTo(pageLink) { 2084 location = pageLink; 2085} 2086 2087function ShippingSearchAddress($sPostCode) { 2088 jQuery("#shipping_loader_input").addClass('loader-field'); 2089 jQuery.ajax({ 2090 type: "GET", 2091 url: kilchoman_ajax_object.ajax_url, 2092 data: {action: 'search_address', post_code: $sPostCode}, 2093 success: function (html) { 2094 var responseData = JSON.parse(html); 2095 var data = responseData.data; 2096 jQuery('#shipping_postcode_selector').remove(); 2097 var combo = jQuery("<ul></ul>").attr("id", "shipping_postcode_selector").attr("name", "postcode_selector").attr("class", "postcode_selector"); 2098 jQuery.each(data, function (i, el) { 2099 combo.append("<li class='shipping_postcode_selector_data' data-post-code='" + el.post_code + "' id='" + el.id + "'>" + el.post_code + " " + el.address + "</li>"); 2100 }); 2101 jQuery("#shipping_loader_input").after(combo); 2102 jQuery("#shipping_loader_input").removeClass('loader-field'); 2103 jQuery('.shipping_postcode_selector_data').on('click', function (e) { 2104 //jQuery(".shipping_postcode_selector_data").click(function(){ 2105 2106 var aId = this.id.split('|'); 2107 console.log(jQuery(this).data("post-code")); 2108 if (aId[1].length > 0) { 2109 $NewpostCode = this.id; 2110 ShippingRetriveAddress($NewpostCode); 2111 } else { 2112 ShippingSearchAddress(jQuery(this).data("post-code")); 2113 } 2114 }); 2115 } 2116 }); 2117} 2118 2119function ShippingRetriveAddress($NewpostCode) { 2120 jQuery("#shipping_loader_input").addClass('loader-field'); 2121 jQuery.ajax({ 2122 type: "GET", 2123 url: kilchoman_ajax_object.ajax_url, 2124 data: {action: 'retrive_address', id: $NewpostCode}, 2125 success: function (html) { 2126 console.log(html); 2127 var responseData = JSON.parse(html); 2128 var data = responseData.data; 2129 2130 2131 jQuery('#shipping_address_1').val(data.Line1); 2132 jQuery('#shipping_address_2').val(data.Line2); 2133 jQuery('#shipping_city').val(data.City); 2134 jQuery('#shipping_state').val(data.Province); 2135 jQuery('#shipping_postcode').val(data.PostalCode); 2136 2137 2138 jQuery('#shipping_postcode_selector').remove(); 2139 jQuery("#shipping_loader_input").removeClass('loader-field'); 2140 } 2141 }); 2142}
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.