function Comments_Initialize( settings ) {var that = this;var $s123CommentsContainer = $('#'+settings.id);var $commentsForm = $s123CommentsContainer.find('.commentsForm');var $commentsContainer;var Rating = {};var submitMessage = {};var hasRating = false;that.onLoad = settings.onLoad;that.onFormSubmit = settings.onFormSubmit;that.customLabels = settings.customLabels ? settings.customLabels : {};switch( settings.type ) {case 0:$commentsContainer 	= $s123CommentsContainer.find('#commentsContainer');submitMessage.title = translations.sent;submitMessage.message = translations.blogReviewMessage;break;case 1:$commentsContainer 	= $s123CommentsContainer.find('#commentsContainer');hasRating = true;break;default:return;break;}
that.init = function() {that.loadComments(false);};that.showSubcomments = function ( subComments, $commentsContainer ) {$.each(subComments,function( index, comment ) {var $parentComments = $commentsContainer.find('.commentBox');$.each($parentComments,function( index, parentComment ) {if ($(this).data('comment-id') == comment.parentID ) {$(parentComment).find('.sub-comments-div').append(that.comment_HTML(comment.title,comment.time,comment.message));}});});};that.comment_HTML = function ( title, time, message ) {var html ='';html += '<div class="sub-comments-div-box">';html += '<h4 class="title">'+title+'</h4>';html += '<small class="time">'+time+'</small><br/>';html += '<div class="message">'+message+'</div>';html += '</div>';return html;};that.submitHandler = function ( $form ) {var forms_GoogleRecaptcha = new Forms_GoogleRecaptcha();forms_GoogleRecaptcha.init($form);$form.validate({errorElement: 'div',errorClass: 'help-block',focusInvalid: true,ignore: "",highlight: function (e) {$(e).closest('.form-group').removeClass('has-info').addClass('has-error');},success: function (e) {$(e).closest('.form-group').removeClass('has-error');$(e).remove();}});$form.off('submit.commentsForm').off('submit.commentsForm').on('submit.commentsForm', function( event ) {event.preventDefault();if ( hasRating ) {var formValid = $form.valid();var ratingValid = Rating.valid();if ( !formValid || !ratingValid ) return;} else {if ( !$form.valid() ) return;}
if ( forms_GoogleRecaptcha.isActive && !forms_GoogleRecaptcha.isGotToken ) {forms_GoogleRecaptcha.getToken();return false;}
$form.find('.blogSubmitButton').prop('disabled', true);$form.find('.blogSubmitButton').html(S123.s123IconToSvg.getHtml('spinner','fa-spin',''));$.ajax({type: "POST",url: "/versions/2/wizard/comments/addShowComments.php",data: $form.serialize(),success: function( data ) {var dataObj = tryParseJSON(data);if ( dataObj.blockComment  == '1' ) {that.showManagerApproveMessage();}
that.loadComments(data.commentsHtml);$form.trigger('reset');forms_GoogleRecaptcha.reset();$form.find('.blogSubmitButton').prop('disabled', false);$form.find('.blogSubmitButton').html($form.find('.blogSubmitButton').data('text'));WizardNotificationUpdate();if ( that.onFormSubmit ) that.onFormSubmit.call(this,dataObj.newCommentID,dataObj.blockComment);}});return false;});};that.showManagerApproveMessage = function () {if ( !submitMessage.message ) return;bootbox.alert({title: submitMessage.title,message: submitMessage.message,className: 'contactUsConfirm',buttons: {ok: {label: translations.Ok}},backdrop: true});};that.showReplyModal = function (t,childForm) {var x = '';x += '<form class="row" method="post" style="margin:0px;">';x += '<div class="col-xs-12 col-sm-12">';x += '<div class="form-group">';x += '<textarea class="form-control comment_message" name="comment_message" placeholder="'+(that.customLabels.commentResponseText ? that.customLabels.commentResponseText : t.data('tran-comment'))+'" style="min-height: 150px;" required data-msg-required="'+t.data('tran-this-field-is-required')+'"></textarea>';x += '</div>';x += '<div class="row">';x += '<div class="col-xs-12 col-sm-6">';x += '<div class="form-group">';x += '<input type="text" name="contact_name" placeholder="'+(that.customLabels.commentName ? that.customLabels.commentName : t.data('tran-name'))+'" class="form-control" required data-msg-required="'+t.data('tran-this-field-is-required')+'">';x += '</div>';x += '</div>';x += '<div class="col-xs-12 col-sm-6">';x += '<div class="form-group">';x += '<input type="text" name="contact_email" placeholder="'+(that.customLabels.commentEmail ? that.customLabels.commentEmail : t.data('tran-email-address'))+'" class="form-control" required data-msg-required="'+t.data('tran-this-field-is-required')+'" data-rule-email="true" data-msg-email="'+t.data('tran-please-enter-valid-email')+'">';x += '</div>';x += '</div>';x += '</div>';x += '<div class="text-center">';x += '<button type="submit" class="btn btn-primary blogSubmitButton" data-text="'+t.data('tran-post-reply')+'">'+(that.customLabels.replyButtonText ? that.customLabels.replyButtonText : t.data('tran-post-reply'))+'</button>';x += '</div>';x += '<div class="text-center comments-message-text">';x += '<small>* '+(that.customLabels.commentMessage ? that.customLabels.commentMessage : t.data('tran-the-email-will-not-be-published-on-the-website'))+'</small>';x += '</div>';x += '</div>';x += '<input type="hidden" name="w" value="'+t.data('hidden-w')+'">';x += '<input type="hidden" name="websiteID" value="'+t.data('hidden-website-id')+'">';x += '<input type="hidden" name="uniquePageID" value="'+t.data('hidden-unique-page-id')+'">';x += '<input type="hidden" name="moduleID" value="'+t.data('module-id')+'">';x += '<input type="hidden" name="moduleTypeNUM" value="'+t.data('module-type')+'">';x += '<input type="hidden" name="tranW" value="'+websiteLanguageCountryFullCode+'">';x += '<input type="hidden" class="commentTo" name="commentTo" value="'+t.data('hidden-comment-to')+'">';x += '<input type="hidden" name="act" value="addShow">';x += '</form>';childForm.html(x);that.submitHandler(childForm.find('form'));};Rating = new function() {var R = this;R.init = function( settings ) {if ( !settings.hasRating ) return;R.$form = settings.$form;R.$input = settings.$input;R.$json = settings.$json;if ( R.$form.length === 0 ) return;R.$raty = R.$form.find('.rating-plugin');R.$raty.raty({starType: 'i',cancel: false,number: 5,hints: R.getHints(),starHalf: (IsIE11() ? 'fa fa-star-half star-half' : 'star-half svg-m'),starOff: (IsIE11() ? 'fa fa-star-o star-o' : 'star-o svg-m'),starOn: (IsIE11() ? 'fa fa-star star' : 'star svg-m'),click: function( rating ,event ) {R.$input.val(rating);R.valid();}});};R.getHints = function() {var json = tryParseJSON(R.$json.val());if ( !json ) {return hints = [translations.reviewBad,translations.reviewPoor,translations.reviewRegular,translations.reviewGood,translations.reviewGorgeous];} else {return hints = json.hints;}};R.valid = function() {var valid = $.isNumeric(R.$input.val()) && parseInt(R.$input.val()) > 0;var $parent = R.$raty.closest('.form-group');$parent.removeClass('.has-error');$parent.find('#ratingError').remove();if ( !valid ) {$parent.addClass('has-error');$parent.append('<div id="ratingError" class="text-center help-block">'+R.$raty.data('msg-required')+'</div>');}
return valid;};};that.loadComments = function( commentsHtml ) {if ( !commentsHtml ) {loadCommentsByAjax();} else {addCommentsToPage(commentsHtml);}
$commentsForm.find('.blogCommentsBox #comment_message').focus(function() {$commentsForm.find('.blogCommentsBox').addClass('active');});that.submitHandler($commentsForm);Rating.init({$form: $commentsForm,$input: $commentsForm.find('.rating'),$json: $commentsForm.find('.rating-plugin-data'),hasRating: hasRating});};function loadCommentsByAjax() {$.ajax({type: "POST",url: '/versions/2/wizard/comments/addShowComments.php',data: {w: $('#w').val(),websiteID: $('#websiteID').val(),disableCssFiles: 1,moduleID: $commentsContainer.data('module-id'),moduleTypeNUM: $commentsContainer.data('module-type-num'),uniquePageID: $commentsContainer.data('unique-page-id'),tranW: $commentsContainer.data('tran-w'),act: $commentsContainer.data('action')},success: function( data ) {data = tryParseJSON(data);if ( !data ) return;addCommentsToPage(data.commentsHtml);}});}
function addCommentsToPage( commentsHtml ) {$commentsContainer.html(commentsHtml);$commentsContainer.find('.blog-reply-to').each(function( index, replyLink ) {$(replyLink).off('click').on('click',function() {$childForm = $(this).closest('.commentBox').find('.blogReplyForm');if ($childForm.hasClass('hidden')) {that.showReplyModal($(this),$childForm);$('.blogReplyForm').addClass('hidden');$('.blog-reply-to').html($(this).data('text-reply'));$(this).html($(this).data('text-hide'));$childForm.removeClass('hidden');} else {$childForm.addClass('hidden');$(this).html($(this).data('text-reply'));}
$childForm.find('.comment_message').select();});});var subComments = tryParseJSON($commentsContainer.find('.sub-comments').html());that.showSubcomments(subComments,$commentsContainer);if ( hasRating) {if ( that.onLoad ) that.onLoad.call(this,$commentsContainer.find('.commentBox').length,$commentsContainer.find('#reviewAvg').val(),false);}}
that.init();}
// DOM.event.move
(function(fn) {if (typeof define === 'function' && define.amd) {define([], fn);} else if ((typeof module !== "undefined" && module !== null) && module.exports) {module.exports = fn;} else {fn();}})(function(){var assign = Object.assign || window.jQuery && jQuery.extend;var threshold = 8;var requestFrame = (function(){return (window.requestAnimationFrame ||window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||window.oRequestAnimationFrame ||window.msRequestAnimationFrame ||function(fn, element){return window.setTimeout(function(){fn();}, 25);});})();(function () {if ( typeof window.CustomEvent === "function" ) return false;function CustomEvent ( event, params ) {params = params || { bubbles: false, cancelable: false, detail: undefined };var evt = document.createEvent( 'CustomEvent' );evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );return evt;}
CustomEvent.prototype = window.Event.prototype;window.CustomEvent = CustomEvent;})();var ignoreTags = {textarea: true,input: true,select: true,button: true};var mouseevents = {move:   'mousemove',cancel: 'mouseup dragstart',end:    'mouseup'};var touchevents = {move:   'touchmove',cancel: 'touchend',end:    'touchend'};var rspaces = /\s+/;var eventOptions = { bubbles: true, cancelable: true };var eventsSymbol = typeof Symbol === "function" ? Symbol('events') : {};function createEvent(type) {return new CustomEvent(type, eventOptions);}
function getEvents(node) {return node[eventsSymbol] || (node[eventsSymbol] = {});}
function on(node, types, fn, data, selector) {types = types.split(rspaces);var events = getEvents(node);var i = types.length;var handlers, type;function handler(e) { fn(e, data); }
while (i--) {type = types[i];handlers = events[type] || (events[type] = []);handlers.push([fn, handler]);node.addEventListener(type, handler);}}
function off(node, types, fn, selector) {types = types.split(rspaces);var events = getEvents(node);var i = types.length;var type, handlers, k;if (!events) { return; }
while (i--) {type = types[i];handlers = events[type];if (!handlers) { continue; }
k = handlers.length;while (k--) {if (handlers[k][0] === fn) {node.removeEventListener(type, handlers[k][1]);handlers.splice(k, 1);}}}}
function trigger(node, type, properties) {var event = createEvent(type);if (properties) { assign(event, properties); }
node.dispatchEvent(event);}
function Timer(fn){var callback = fn,active = false,running = false;function trigger(time) {if (active){callback();requestFrame(trigger);running = true;active = false;}
else {running = false;}}
this.kick = function(fn) {active = true;if (!running) { trigger(); }};this.end = function(fn) {var cb = callback;if (!fn) { return; }
if (!running) {fn();}
else {callback = active ?function(){ cb(); fn(); } :fn ;active = true;}};}
function noop() {}
function preventDefault(e) {e.preventDefault();}
function isIgnoreTag(e) {return !!ignoreTags[e.target.tagName.toLowerCase()];}
function isPrimaryButton(e) {return (e.which === 1 && !e.ctrlKey && !e.altKey);}
function identifiedTouch(touchList, id) {var i, l;if (touchList.identifiedTouch) {return touchList.identifiedTouch(id);}
i = -1;l = touchList.length;while (++i < l) {if (touchList[i].identifier === id) {return touchList[i];}}}
function changedTouch(e, data) {var touch = identifiedTouch(e.changedTouches, data.identifier);if (!touch) { return; }
if (touch.pageX === data.pageX && touch.pageY === data.pageY) { return; }
return touch;}
function mousedown(e){if (!isPrimaryButton(e)) { return; }
if (isIgnoreTag(e)) { return; }
on(document, mouseevents.move, mousemove, e);on(document, mouseevents.cancel, mouseend, e);}
function mousemove(e, data){checkThreshold(e, data, e, removeMouse);}
function mouseend(e, data) {removeMouse();}
function removeMouse() {off(document, mouseevents.move, mousemove);off(document, mouseevents.cancel, mouseend);}
function touchstart(e) {if (ignoreTags[e.target.tagName.toLowerCase()]) { return; }
var touch = e.changedTouches[0];var data = {target:     touch.target,pageX:      touch.pageX,pageY:      touch.pageY,identifier: touch.identifier,touchmove:  function(e, data) { touchmove(e, data); },touchend:   function(e, data) { touchend(e, data); }};on(document, touchevents.move, data.touchmove, data);on(document, touchevents.cancel, data.touchend, data);}
function touchmove(e, data) {var touch = changedTouch(e, data);if (!touch) { return; }
checkThreshold(e, data, touch, removeTouch);}
function touchend(e, data) {var touch = identifiedTouch(e.changedTouches, data.identifier);if (!touch) { return; }
removeTouch(data);}
function removeTouch(data) {off(document, touchevents.move, data.touchmove);off(document, touchevents.cancel, data.touchend);}
function checkThreshold(e, data, touch, fn) {var distX = touch.pageX - data.pageX;var distY = touch.pageY - data.pageY;if ((distX * distX) + (distY * distY) < (threshold * threshold)) { return; }
triggerStart(e, data, touch, distX, distY, fn);}
function triggerStart(e, data, touch, distX, distY, fn) {var touches = e.targetTouches;var time = e.timeStamp - data.timeStamp;var template = {altKey:     e.altKey,ctrlKey:    e.ctrlKey,shiftKey:   e.shiftKey,startX:     data.pageX,startY:     data.pageY,distX:      distX,distY:      distY,deltaX:     distX,deltaY:     distY,pageX:      touch.pageX,pageY:      touch.pageY,velocityX:  distX / time,velocityY:  distY / time,identifier: data.identifier,targetTouches: touches,finger: touches ? touches.length : 1,enableMove: function() {this.moveEnabled = true;this.enableMove = noop;e.preventDefault();}};trigger(data.target, 'movestart', template);fn(data);}
function activeMousemove(e, data) {var timer  = data.timer;data.touch = e;data.timeStamp = e.timeStamp;timer.kick();}
function activeMouseend(e, data) {var target = data.target;var event  = data.event;var timer  = data.timer;removeActiveMouse();endEvent(target, event, timer, function() {setTimeout(function(){off(target, 'click', preventDefault);}, 0);});}
function removeActiveMouse() {off(document, mouseevents.move, activeMousemove);off(document, mouseevents.end, activeMouseend);}
function activeTouchmove(e, data) {var event = data.event;var timer = data.timer;var touch = changedTouch(e, event);if (!touch) { return; }
e.preventDefault();event.targetTouches = e.targetTouches;data.touch = touch;data.timeStamp = e.timeStamp;timer.kick();}
function activeTouchend(e, data) {var target = data.target;var event  = data.event;var timer  = data.timer;var touch  = identifiedTouch(e.changedTouches, event.identifier);if (!touch) { return; }
removeActiveTouch(data);endEvent(target, event, timer);}
function removeActiveTouch(data) {off(document, touchevents.move, data.activeTouchmove);off(document, touchevents.end, data.activeTouchend);}
function updateEvent(event, touch, timeStamp) {var time = timeStamp - event.timeStamp;event.distX =  touch.pageX - event.startX;event.distY =  touch.pageY - event.startY;event.deltaX = touch.pageX - event.pageX;event.deltaY = touch.pageY - event.pageY;event.velocityX = 0.3 * event.velocityX + 0.7 * event.deltaX / time;event.velocityY = 0.3 * event.velocityY + 0.7 * event.deltaY / time;event.pageX =  touch.pageX;event.pageY =  touch.pageY;}
function endEvent(target, event, timer, fn) {timer.end(function(){trigger(target, 'moveend', event);return fn && fn();});}
function movestart(e) {if (e.defaultPrevented) { return; }
if (!e.moveEnabled) { return; }
var event = {startX:        e.startX,startY:        e.startY,pageX:         e.pageX,pageY:         e.pageY,distX:         e.distX,distY:         e.distY,deltaX:        e.deltaX,deltaY:        e.deltaY,velocityX:     e.velocityX,velocityY:     e.velocityY,identifier:    e.identifier,targetTouches: e.targetTouches,finger:        e.finger};var data = {target:    e.target,event:     event,timer:     new Timer(update),touch:     undefined,timeStamp: e.timeStamp};function update(time) {updateEvent(event, data.touch, data.timeStamp);trigger(data.target, 'move', event);}
if (e.identifier === undefined) {on(e.target, 'click', preventDefault);on(document, mouseevents.move, activeMousemove, data);on(document, mouseevents.end, activeMouseend, data);}
else {data.activeTouchmove = function(e, data) { activeTouchmove(e, data); };data.activeTouchend = function(e, data) { activeTouchend(e, data); };on(document, touchevents.move, data.activeTouchmove, data);on(document, touchevents.end, data.activeTouchend, data);}}
on(document, 'mousedown', mousedown);on(document, 'touchstart', touchstart);on(document, 'movestart', movestart);if (!window.jQuery) { return; }
var properties = ("startX startY pageX pageY distX distY deltaX deltaY velocityX velocityY").split(' ');function enableMove1(e) { e.enableMove(); }
function enableMove2(e) { e.enableMove(); }
function enableMove3(e) { e.enableMove(); }
function add(handleObj) {var handler = handleObj.handler;handleObj.handler = function(e) {var i = properties.length;var property;while(i--) {property = properties[i];e[property] = e.originalEvent[property];}
handler.apply(this, arguments);};}
jQuery.event.special.movestart = {setup: function() {on(this, 'movestart', enableMove1);return false;},teardown: function() {off(this, 'movestart', enableMove1);return false;},add: add};jQuery.event.special.move = {setup: function() {on(this, 'movestart', enableMove2);return false;},teardown: function() {off(this, 'movestart', enableMove2);return false;},add: add};jQuery.event.special.moveend = {setup: function() {on(this, 'movestart', enableMove3);return false;},teardown: function() {off(this, 'movestart', enableMove3);return false;},add: add};});
(function($){$.fn.twentytwenty = function(options) {var options = $.extend({default_offset_pct: 0.5,orientation: 'horizontal',before_label: 'Before',after_label: 'After',no_overlay: false,move_slider_on_hover: false,move_with_handle_only: true,click_to_move: false}, options);return this.each(function() {var sliderPct = options.default_offset_pct;var container = $(this);var sliderOrientation = options.orientation;var beforeDirection = (sliderOrientation === 'vertical') ? 'down' : 'left';var afterDirection = (sliderOrientation === 'vertical') ? 'up' : 'right';container.wrap("<div class='twentytwenty-wrapper twentytwenty-" + sliderOrientation + "'></div>");if(!options.no_overlay) {container.append("<div class='twentytwenty-overlay'></div>");var overlay = container.find(".twentytwenty-overlay");overlay.append("<div class='twentytwenty-before-label' data-content='"+options.before_label+"'></div>");overlay.append("<div class='twentytwenty-after-label' data-content='"+options.after_label+"'></div>");}
var beforeImg = container.find("img:first");var afterImg = container.find("img:last");container.append("<div class='twentytwenty-handle'></div>");var slider = container.find(".twentytwenty-handle");slider.append("<span class='twentytwenty-" + beforeDirection + "-arrow'></span>");slider.append("<span class='twentytwenty-" + afterDirection + "-arrow'></span>");container.addClass("twentytwenty-container");beforeImg.addClass("twentytwenty-before");afterImg.addClass("twentytwenty-after");var calcOffset = function(dimensionPct) {var w = beforeImg.width();var h = beforeImg.height();return {w: w+"px",h: h+"px",cw: (dimensionPct*w)+"px",ch: (dimensionPct*h)+"px"};};var adjustContainer = function(offset) {if (sliderOrientation === 'vertical') {beforeImg.css("clip", "rect(0,"+offset.w+","+offset.ch+",0)");afterImg.css("clip", "rect("+offset.ch+","+offset.w+","+offset.h+",0)");}
else {beforeImg.css("clip", "rect(0,"+offset.cw+","+offset.h+",0)");afterImg.css("clip", "rect(0,"+offset.w+","+offset.h+","+offset.cw+")");}
container.css("height", offset.h);};var adjustSlider = function(pct) {var offset = calcOffset(pct);slider.css((sliderOrientation==="vertical") ? "top" : "left", (sliderOrientation==="vertical") ? offset.ch : offset.cw);adjustContainer(offset);};var minMaxNumber = function(num, min, max) {return Math.max(min, Math.min(max, num));};var getSliderPercentage = function(positionX, positionY) {var sliderPercentage = (sliderOrientation === 'vertical') ?(positionY-offsetY)/imgHeight :(positionX-offsetX)/imgWidth;return minMaxNumber(sliderPercentage, 0, 1);};$(window).on("resize.twentytwenty", function(e) {adjustSlider(sliderPct);});var offsetX = 0;var offsetY = 0;var imgWidth = 0;var imgHeight = 0;var onMoveStart = function(e) {if (((e.distX > e.distY && e.distX < -e.distY) || (e.distX < e.distY && e.distX > -e.distY)) && sliderOrientation !== 'vertical') {e.preventDefault();}
else if (((e.distX < e.distY && e.distX < -e.distY) || (e.distX > e.distY && e.distX > -e.distY)) && sliderOrientation === 'vertical') {e.preventDefault();}
container.addClass("active");offsetX = container.offset().left;offsetY = container.offset().top;imgWidth = beforeImg.width();imgHeight = beforeImg.height();};var onMove = function(e) {if (container.hasClass("active")) {sliderPct = getSliderPercentage(e.pageX, e.pageY);adjustSlider(sliderPct);}};var onMoveEnd = function() {container.removeClass("active");};var moveTarget = options.move_with_handle_only ? slider : container;moveTarget.on("movestart",onMoveStart);moveTarget.on("move",onMove);moveTarget.on("moveend",onMoveEnd);if (options.move_slider_on_hover) {container.on("mouseenter", onMoveStart);container.on("mousemove", onMove);container.on("mouseleave", onMoveEnd);}
slider.on("touchmove", function(e) {e.preventDefault();});container.find("img").on("mousedown", function(event) {event.preventDefault();});if (options.click_to_move) {container.on('click', function(e) {offsetX = container.offset().left;offsetY = container.offset().top;imgWidth = beforeImg.width();imgHeight = beforeImg.height();sliderPct = getSliderPercentage(e.pageX, e.pageY);adjustSlider(sliderPct);});}
$(window).trigger("resize.twentytwenty");});};})(jQuery);
jQuery(function($) {imageComparisonModuleInitialize();});function imageComparisonModuleInitialize() {$( document ).on( 's123.page.ready', function( event ) {var $section = $('.s123-module-image-comparison.layout-1');$section.each( function() {var $sectionThis = $(this);var beforeLabel = $sectionThis.find('.image-comparison').data('before-label');var afterLabel = $sectionThis.find('.image-comparison').data('after-label');(function () {$sectionThis.off('module_layout_categories.show').on('module_layout_categories.click', function( event, catID ) {var $compare_category = $sectionThis.find('.compare-category[data-categories-filter="'+catID+'"]');$compare_category.css({ visibility: 'hidden' });});$sectionThis.off('module_layout_categories.show').on('module_layout_categories.shown', function( event, catID ) {var $compare_category = $sectionThis.find('.compare-category[data-categories-filter="'+catID+'"]');$sectionThis.trigger('resize.twentytwenty');$compare_category.css({ visibility: 'visible' });});})();$sectionThis.find('.compare-display').each( function( event ) {var $compare_display = $(this);if ( $compare_display.hasClass('image-comparison-initialized') ) return;initImageComparison($compare_display.find('.image-comparison-container'),$compare_display.data('orientation'), beforeLabel,afterLabel);$compare_display.addClass('image-comparison-initialized');});var categories = new ModuleLayoutCategories({$items :  $sectionThis.find('.compare-category'),$categoriesContainer : $sectionThis.find('.categories-panel'),$filterButton : $sectionThis.find('.items-responsive-filter'),$categories : $sectionThis.find('.items-categories-container li')});});$(document).on('wizard.preview.device.changed.imageComparison', function( event ) {$section.find('.image-comparison-container img').addClass('w-p-device-changed-fix');});});function initImageComparison( $imageComparison, $orientation, beforeLabel, afterLabel ) {ImageComparisonPreloader.init({$elements: $imageComparison.find('img')});$imageComparison.twentytwenty({default_offset_pct: 0.5, // How much of the before image is visible when the page loads
orientation: $orientation, // Orientation of the before and after images ('horizontal' or 'vertical')
before_label: beforeLabel, // Set a custom before label
after_label: afterLabel, // Set a custom after label
no_overlay: false, //Do not show the overlay with before and after
move_slider_on_hover: false, // Move slider on mouse hover?
move_with_handle_only: false, // Allow a user to swipe anywhere on the image to control slider movement.
click_to_move: false // Allow a user to click (or tap) anywhere on the image to move the slider to that location.
});}
var ImageComparisonPreloader = function() {var _ = {className: 'img-s-h-processed'};_.init = function( settings ) {_.$elements = settings.$elements;_.$elements.each(function( index, el ) {var aspectRatio = $(this).data('ratio');if ( !$.isNumeric(aspectRatio) ) return;processSize($(this),aspectRatio);});};function processSize( $el, aspectRatio ) {if ( $el.data('add-def-size') === 'height' ) {var width = $el.width();if ( width === 0 ) return;$el.css({height: ( width / aspectRatio )});} else {var height = $el.height();if ( height === 0 ) return;$el.css({width: ( height * aspectRatio )});}
$el.addClass(_.className);}
return _;}();}
jQuery(function($) {headersModuleInitialize_Layout();});function headersModuleInitialize_Layout() {$( document ).on( "s123.page.ready", function( event ) {var $sections = $('section.s123-module-headers:is(.layout-6,.layout-7,.layout-8,.layout-9,.layout-18,.layout-20,.layout-22,.layout-23,.layout-24,.layout-25,.layout-26,.layout-27,.layout-29,.layout-30,.layout-35,.layout-39,.layout-40,.mobile-layout-1,.mobile-layout-3,.mobile-layout-7,.mobile-layout-8,.mobile-layout-11');$sections.each(function( index ) {var $s = $(this);var $carousel = $s.find('[data-ride="carousel"]');var sliderSpeed = $s.data('slider-speed');if ( sliderSpeed == '' || parseInt(sliderSpeed) < 1 || parseInt(sliderSpeed) > 21 ) {sliderSpeed = 5000;} else {sliderSpeed = parseInt(sliderSpeed) * 1000;}
$s.find('.header1, .header2').each(function( index ) {var $this = $(this);if ( $this.data('line-height') && $this.data('line-height').length > 0 ) {$this.get(0).style.setProperty('--header_line_height',$this.data('line-height'));$this.css('line-height',$this.data('line-height'));}});if( $s.hasClass('layout-20') ) {var $firstImage = $s.find('.headers-image').first();if ( $firstImage.length > 0 ) {if ( $firstImage.data('bg') !== undefined ) {var img = new Image();img.src = $firstImage.data('bg');img.onload = function() {var aspectRatio = this.width / this.height;$s.find('.headers-image').css('aspect-ratio',String(aspectRatio));if( $s.find('.headers-container').hasClass('circle-under-image') && aspectRatio < 1 ) {$s.addClass('corner-circle');}};} else {$firstImage.closest('.headers-img-wrap').addClass('circle-fixed-width');}}}
if( $s.hasClass('layout-22') || $s.hasClass('layout-29') || $s.hasClass('mobile-layout-7') ) {var $headersDescription = $s.find('.headers-description');var $headersimage = $s.find('.headers-image');if ( $headersimage.length == 0 ) {$headersimage = $s.find('.headers-bg-video');}
if ( $headersimage.length > 0 && $headersDescription.length > 0 ) {if ( ($headersDescription.get(0).offsetHeight - 60) > $headersimage.get(0).offsetHeight ) {$s.get(0).style.setProperty('--headers-description-height',$headersDescription.get(0).offsetHeight+'px');}}}
$carousel.carousel({interval: sliderSpeed});if( $s.hasClass('layout-26') && $s.attr('data-version') !== undefined && $s.attr('data-version') == '2' ) {if ( IsWizard() ) {$(document).on('site123.colorPicker.change',function( event ) {updateBackgroundColor();});}
updateBackgroundColor();}
function updateBackgroundColor() {var boxColorClass = $s.data('box-color');var color = $s.hasClass('bg-primary') ?getComputedStyle(document.documentElement).getPropertyValue('--modules_color_box') :getComputedStyle(document.documentElement).getPropertyValue('--modules_color_second_box');switch (boxColorClass) {case 'bg-primary-gray':color = '#ebedf0';break;case 'bg-primary-white':color = '#ffffff';break;case 'bg-primary-black':color = '#000000';break;case 'background-primary-color btn-primary-text-color':color = $s.hasClass('bg-primary') ?getComputedStyle(document.documentElement).getPropertyValue('--modules_color_section_main') :getComputedStyle(document.documentElement).getPropertyValue('--modules_color_second_section_main');break;}
$s.find('.headers-img-wrap').get(0).style.setProperty('--layout26OpacityColor',hexToRGB(color));}
function hexToRGB(hex) {var r = parseInt(hex.slice(1, 3), 16),g = parseInt(hex.slice(3, 5), 16),b = parseInt(hex.slice(5, 7), 16);return r + ", " + g + ", " + b;}
if( $s.data('image-width') == 2 ) {var sectionHeight = $s.height();$s.find('.headers-container').css('min-height',sectionHeight+'px');if( $s.hasClass('layout-22') ) {$s.find('.headers-image').css('min-height',sectionHeight+'px');}
$s.data('image-width',0);}});var $sections = $('section.s123-module-headers');$sections.each(function( index ) {var $s = $(this);$s.find('.custom-header-font').each(function( index ) {var $this = $(this);var customFont = $this.data('custom-font');if ( customFont.length > 0 ) {$this.css('font-family',customFont);}});$s.find('.header1, .header2').each(function( index ) {var $this = $(this);if( $s.hasClass('layout-7') || $s.hasClass('layout-9') || $s.hasClass('layout-22') || $s.hasClass('layout-23') || $s.hasClass('layout-24') || $s.hasClass('layout-26') || $s.hasClass('layout-27') || $s.hasClass('layout-29') || $s.hasClass('layout-33') || $s.hasClass('mobile-layout-1') || $s.hasClass('mobile-layout-7') ) {fitHeaderTextToParentContainer($this);}});$s.find('.h-s-form').each(function( index ) {let $this = $(this);hotelBookingWidgetInit($this);$this.off('submit').on('submit', function(event) {event.preventDefault();window.location.href = '/'+ $this.find('[data-id="page"] option').val() + '?' + $this.serialize();});});function fitHeaderTextToParentContainer( $textEl ) {if ( $textEl.length == 0 ) return;fontSize = parseFloat($textEl.css('font-size'));if ( !$.isNumeric(fontSize) ) return;var $parentContainer = $textEl.closest('.headers-text-resize-container');if ( $parentContainer.length > 0 && $parentContainer.width() < $textEl.width() ) {$textEl.css('visibility','hidden');var parentContainerWidth = $parentContainer.width();if ( $textEl.closest('section').hasClass('layout-9') || $textEl.closest('section').hasClass('layout-27') || $textEl.closest('section').hasClass('mobile-layout-1') ) {parentContainerWidth = parentContainerWidth + 5;}
if ( $textEl.closest('section').hasClass('layout-23') ) {parentContainerWidth = $parentContainer.innerWidth();}
var index = 0;while ( parentContainerWidth < $textEl.width() && index < 99 ) {index++;fontSize--;$textEl.get(0).style.setProperty('--header-font-size',fontSize);}
$textEl.css('visibility','unset');}}});S123_ActionButtons.init();});}
jQuery(function($) {HeadersModuleInitialize_Layout5();});function HeadersModuleInitialize_Layout5() {$( document ).on( 's123.page.ready', function( event ) {var $section = $('section.s123-module-headers.layout-5');$section.each(function( index ) {var $sectionThis = $(this);var $flickityContainer = $sectionThis.find('.carousel');var originalFirstImageSize = {};if ( $flickityContainer.length === 0 ) return;$flickityContainer.flickity({imagesLoaded: true,lazyLoad: 2,pageDots: false,wrapAround: true,percentPosition: false});});});}
jQuery(function($) {HeadersModuleInitialize_Layout30();});function HeadersModuleInitialize_Layout30() {$( document ).on( 's123.page.ready', function( event ) {var $section = $('section.s123-module-headers.layout-30, section.s123-module-headers.mobile-layout-11');$section.each(function( index ) {var $sectionThis = $(this);$sectionThis.find('.contactUsForm').each( function( index ) {var $form = $(this);var customFormMultiSteps = new CustomFormMultiSteps();customFormMultiSteps.init({$form: $form,$nextButton: $form.find('.next-form-btn'),$submitButton: $form.find('.submit-form-btn'),$previousButton: $form.find('.previous-form-btn'),totalSteps: $form.find('.custom-form-steps').data('total-steps')});var forms_GoogleRecaptcha = new Forms_GoogleRecaptcha();forms_GoogleRecaptcha.init($form);$form.validate({errorElement: 'div',errorClass: 'help-block',focusInvalid: true,ignore: ':hidden:not(.custom-form-step:visible input[name^="datePicker-"])',highlight: function (e) {$(e).closest('.form-group').removeClass('has-info').addClass('has-error');},success: function (e) {$(e).closest('.form-group').removeClass('has-error');$(e).remove();},errorPlacement: function (error, element) {if( element.is('input[type=checkbox]') || element.is('input[type=radio]') ) {var controls = element.closest('div[class*="col-"]');if( controls.find(':checkbox,:radio').length > 0 ) element.closest('.form-group').append(error);else error.insertAfter(element.nextAll('.lbl:eq(0)').eq(0));}
else if( element.is('.select2') ) {error.insertAfter(element.siblings('[class*="select2-container"]:eq(0)'));}
else if( element.is('.chosen-select') ) {error.insertAfter(element.siblings('[class*="chosen-container"]:eq(0)'));}
else {error.appendTo(element.closest('.form-group'));}},submitHandler: function( form ) {var $form = $(form);var clickAction = $form.data('click-action');$form.append($('<div class="conv-code-container"></div>'));var $convCodeContainer = $form.find('.conv-code-container');var thankYouMessage = translations.ThankYouAfterSubmmit;if ( $form.data('thanks-msg') ) {thankYouMessage = $form.data('thanks-msg');}
$form.find('button:submit').prop('disabled', true);S123.ButtonLoading.start($form.find('button:submit'));var url = "/versions/2/include/contactO.php";if ( $form.hasClass('custom-form') || $form.hasClass('horizontal-custom-form') ) {if ( !CustomForm_IsLastStep( $form ) ) {$form.find('.next-form-btn:visible').trigger('click');S123.ButtonLoading.stop($form.find('button:submit'));$form.find('button:submit').prop('disabled', false);return false;}
if ( !CustomForm_IsFillOutAtLeastOneField($form) ) {bootbox.alert(translations.fillOutAtLeastOneField);S123.ButtonLoading.stop($form.find('button:submit'));$form.find('button:submit').prop('disabled', false);return false;}
url = "/versions/2/include/customFormO.php";}
if ( forms_GoogleRecaptcha.isActive && !forms_GoogleRecaptcha.isGotToken ) {forms_GoogleRecaptcha.getToken();return false;}
$.ajax({type: "POST",url: url,data: $form.serialize(),success: function( data ) {var dataObj = jQuery.parseJSON(data);$form.trigger("reset");if ( clickAction == 'thankYouMessage' || clickAction == '' ) {bootbox.alert({title: translations.sent,message: thankYouMessage+'<iframe src="/versions/2/include/contactSentO.php?w='+$('#w').val()+'&websiteID='+dataObj.websiteID+'&moduleID='+dataObj.moduleID+'" style="width:100%;height:30px;" frameborder="0"></iframe>',className: 'contactUsConfirm',buttons: {ok: {label: translations.Ok}},backdrop: true});} else {if ( dataObj.conv_code.length > 0 ) {var $convCode = $('<div>' + dataObj.conv_code + '</div>');$convCodeContainer.html($convCode.text());}
if( top.$('#websitePreviewIframe').length ) {bootbox.alert({title: translations.previewExternalLinkTitle,message: translations.previewExternalLinkMsg.replace('{{externalLink}}','<b>'+dataObj.action.url+'</b>'),className: 'externalAlert'});} else {window.open(dataObj.action.url,'_self');}}
customFormMultiSteps.reset();forms_GoogleRecaptcha.reset();S123.ButtonLoading.stop($form.find('button:submit'));$form.find('button:submit').prop('disabled', false);WizardNotificationUpdate();}});return false;}});$form.find('.f-b-date-timePicker').each( function() {var $option = $(this);var $datePicker = $option.find('.fake-input.date-time-picker');var $hiddenInput = $option.find('[data-id="'+$datePicker.data('related-id')+'"]');var $datePickerIcon = $option.find('.f-b-date-timePicker-icon');var formBuilderCalendar = new calendar_handler();$datePicker.data('date-format',$form.data('date-format'));formBuilderCalendar.init({$fakeInput: $datePicker,$hiddenInput: $hiddenInput,$fakeInputIcon: $datePickerIcon,type: 'datePicker',title: translations.chooseDate,calendarSettings: {format: $datePicker.data('date-format'),weekStart: 0,todayBtn: "linked",clearBtn: false,language: languageCode,todayHighlight: true},onSubmit: function( selectedDate ) {$datePicker.html(selectedDate);$hiddenInput.val(selectedDate);}});});CustomForm_DisableTwoColumns($form);});});});}
