// Run when the page ready (before images and other resource)
jQuery(function($) {MultiCurrencies.init();ActiveOrderPopup.init();WishList.init();});var MultiCurrencies = function() {var that = {nameSpace: 'multi-currencies',isActive: false,isChangedCurrency: false};that.init = function() {$(document).on('s123.page.ready.multi_currencies', function( event ) {that.settings = tryParseJSON($('.s123-multi-currencies').val());if ( !that.settings ) return;if ( !that.settings.active ) return;that.activeCurrency = tryParseJSON($.cookie($(websiteID).val()+'-'+that.nameSpace));that.defaultCurrency = that.settings.defaultCurrency;that.currencies = that.settings.currencies;that.setActiveCurrency(that.activeCurrency.currency);that.$menuIcon = $('[data-toggle="multiCurrenciesPopup"]');that.isActive = true;$(document).off('build_popup.open.multi_currencies').on('build_popup.open.multi_currencies', function( event ) {handleMenuIcon($('#popupFloatDivMenu [data-toggle="multiCurrenciesPopup"]'),true);});handleMenuIcon(that.$menuIcon,false);that.priceOnlyType.backup();$(document).off('pageLoaded.multi_currencies').on('pageLoaded.multi_currencies', function( event ) {if ( $.isNumeric(S123.QueryString.clientZone) ) {$('.client-zone-orders-table [data-rel="multiCurrency"]').removeAttr('data-rel');}
if ( isDefaultCurrency() && that.isChangedCurrency ) {that.reset();} else if ( isDefaultCurrency() && !that.isChangedCurrency  ) {$('[data-rel="multiCurrency"]').css({visibility: 'visible'});} else {updateAllPrices();}});if ( $.isNumeric(S123.QueryString.clientZone) ) return;$(document).off('s123.pjax.complete.multi_currencies').on('s123.pjax.complete.multi_currencies', function() {that.$menuIcon = $('[data-toggle="multiCurrenciesPopup"]');handleMenuIcon(that.$menuIcon,false);that.priceOnlyType.backup();$(document).trigger('pageLoaded.multi_currencies');});$(document).off('multi_currencies_price_update').on('multi_currencies_price_update', function( event, settings ) {$.each(settings, function( index, setting ) {if ( !isDefaultCurrency() ) {updatePrice(setting.el,setting.newPrice,true);} else {setting.el.find('[data-rel="multiCurrency"]').css({visibility: 'visible'});}});});$(document).trigger('pageLoaded.multi_currencies');modulesExtraActions();$(document).off('multi_currency_update').on('multi_currency_update', function() {buildPopup_CloseAction('popupFloatDivMenu');});});};that.setActiveCurrency = function( currency ) {that.activeCurrency = that.currencies[currency];if ( !that.activeCurrency ) {that.activeCurrency = that.defaultCurrency;}
$.cookie($(websiteID).val()+'-'+that.nameSpace,JSON.stringify(that.activeCurrency),{ expires: 365, path: '/' });};that.reset = function( ) {if ( !that.isActive ) return;if ( getOrderScreen() > 1 ) return;if ( window.czIsLoggedIn ) return;$('[data-rel="multiCurrency"]').each(function( index, el ) {var originalPrice = $(this).find('[data-type="price"]').data(that.nameSpace + '-price');var $price = $(showPrice(that.defaultCurrency.data,originalPrice));$(this).replaceWith($price);$price.css({visibility: 'visible'});backUpPrice($price.find('[data-type="price"]'),$price.find('[data-type="price"]').html(),false);});$('[data-multi-currency-symbol-only="true"]').html(that.defaultCurrency.data.symbol);that.priceOnlyType.update();that.isChangedCurrency = false;};that.geConvertedPrice = function( price ) {if ( !that.isActive ) return price;if ( !$.isNumeric(price) ) return price;if ( isDefaultCurrency() ) return price;if ( getOrderScreen() > 1 ) return price;var result = parseFloat(price) * parseFloat(that.activeCurrency.rate);return result > 0 ? result.toFixed(2) : result;};that.getOriginalPrice = function( price ) {if ( !that.isActive ) return price;if ( !$.isNumeric(price) ) return price;return parseFloat(price) / parseFloat(that.activeCurrency.rate);};that.getActiveCurrency = function() {return that.activeCurrency.data;};that.getMobileIconHtml = function() {var $clone = that.$menuIcon.clone();$clone.attr('data-is-mobile',true);return $clone.prop('outerHTML');};function handleMenuIcon( $menuIcon, isMobileMenu ) {setMenuIconCurrency($menuIcon);var html = '';var maxHeight = 160;html += '<div class="currency-menu-container fancy-scrollbar" style="max-height:' + maxHeight + 'px;">';html += '<div class="currency-list">';html += '<div class="currency-list-item" data-value="' + S123.escapeHtml(that.defaultCurrency.currency) + '">';html += '<a href="#">';html += '<span>' + that.defaultCurrency.currency + '</span>';html += '<span>-</span>';html += '<span>' + that.defaultCurrency.data.symbol + '</span>';html += '</a>';html += '</div>';$.each(that.currencies, function( currencyCode, currency ) {html += '<div class="currency-list-item" data-value="' + S123.escapeHtml(currencyCode) + '">';html += '<a href="#">';html += '<span>' + currencyCode + '</span>';html += '<span>-</span>';html += '<span>' + currency.data.symbol + '</span>';html += '</a>';html += '</div>';});html += '</div>';html += '</div>';$html = $(html);setActiveCurrencyListItem($html);$html.find('.currency-list').on('click.multi_currencies', 'a', function( event ) {event.preventDefault();if ( !isDefaultCurrency() ) {that.isChangedCurrency = true;} else {that.isChangedCurrency = false;}
that.setActiveCurrency($(this).parent().data('value'));$(document).trigger('pageLoaded.multi_currencies');modulesExtraActions();setMenuIconCurrency($menuIcon);$menuIcon.popover('hide');setActiveCurrencyListItem($html);$(document).trigger('multi_currency_update',[that.activeCurrency]);});S123.popOver.init({$el: $menuIcon,elSelector: '.multi-currencies-controller',namespace: 'multi_currency_menu_icon',oneTimeUsage: false,popOverSettings: {selector: 'multi-currency',content: $html,html: true,trigger: 'manual',template: '<div class="popover multi-currency" role="tooltip"><div class="arrow"></div><div data-menu-dismiss="popover"><i class="fa fa-times" aria-hidden="true"></i></div><div class="popover-content"></div></div>',placementCallBack: function() {if ( isMobileMenu ) return 'top';if ( getWebsiteMenuPosition() === 'top' || getWebsiteMenuPosition() === 'bottom' ) {if ( ($('nav#mainNav').offset().top - $(window).scrollTop()) > maxHeight ) {return 'top';} else {return 'bottom';}} else {if ( $('html').attr('dir') === 'rtl' ) {return 'left';} else {return 'right';}}}}});$(document).on('s123_pop_over_wrapper.show.multi_currency_menu_icon', function() {$menuIcon.addClass('active');})
.on('s123_pop_over_wrapper.hide.multi_currency_menu_icon', function() {$menuIcon.removeClass('active');});$menuIcon.off('click.multi_currencies').on('click.multi_currencies', function() {if ( $(this).hasClass('active') ) {$(this).popover('hide');} else {$(this).popover('show');}});}
function setActiveCurrencyListItem( $currencyList ) {$currencyList.find('.currency-list-item').removeClass('active');$currencyList.find('.currency-list-item[data-value="'+that.activeCurrency.currency+'"]').addClass('active');}
function setMenuIconCurrency( $menuIcon ) {var html = '';if ( $menuIcon.data('is-mobile') ) {html += '<span>' + that.activeCurrency.currency + '</span>';} else {html += '<span>' + that.activeCurrency.currency + '</span>';html += '<span class="m-c-symbol">' + that.activeCurrency.data.symbol + '</span>';if ( getWebsiteMenuPosition() === 'top' || getWebsiteMenuPosition() === 'bottom' ) {html += S123.s123IconToSvg.getHtml('caret-down','mc-icon','');} else {if ( $('html').attr('dir') === 'rtl' ) {html += S123.s123IconToSvg.getHtml('caret-left','mc-icon','');} else {html += S123.s123IconToSvg.getHtml('caret-right','mc-icon','');}}}
$menuIcon.html(html);}
function updateAllPrices() {if ( isDefaultCurrency() && that.isChangedCurrency ) {that.reset();} else if ( isDefaultCurrency() && !that.isChangedCurrency  ) {$('[data-rel="multiCurrency"]').css({visibility: 'visible'});} else {$('[data-rel="multiCurrency"]').each(function( index, el ) {updatePrice($(this),$(this).find('[data-type="price"]').html(),false);});}
$('[data-multi-currency-symbol-only="true"]').html(that.activeCurrency.data.symbol);that.priceOnlyType.update();}
function updatePrice( $el, newPrice, force ) {backUpPrice($el.find('[data-type="price"]'),newPrice,force);if ( isReplaceDisabled() ) {$el.css({visibility: 'visible'});} else {var $price = $el.find('[data-type="price"]');var priceAsString = $price.data(that.nameSpace + '-price');var price = parseFloat(priceAsString);var $newEl = $(showPrice(that.activeCurrency.data,(price * parseFloat(that.activeCurrency.rate)).toFixed(2)));backUpPrice($newEl.find('[data-type="price"]'),priceAsString,false);$price.parent().replaceWith($newEl);$newEl.css({visibility: 'visible'});}}
function backUpPrice( $el, newPrice, force ) {if ( !that.isActive ) return;if ( !$el.data(that.nameSpace + '-price') || force ) {$el.data(that.nameSpace + '-price',newPrice);}}
function modulesExtraActions() {$(document).off('donate_price_update.multi_currencies giftCard_price_update.multi_currencies').on('donate_price_update.multi_currencies giftCard_price_update.multi_currencies', function( event, $el ) {if ( isDefaultCurrency() ) return;var price = $el.val();price = parseFloat(price) * parseFloat(that.activeCurrency.rate);$el.val(price.toFixed(2));});}
function isDefaultCurrency() {return that.defaultCurrency.currency === that.activeCurrency.currency;}
function isReplaceDisabled() {if ( getOrderScreen() > 1 ) {return true;} else if ( window.czIsLoggedIn ) {return true;} else {return false;}
return false;}
function getOrderScreen() {var path = window.location.pathname.split("/");var orderScreen = path[path.length - 2];if ( orderScreen == '-order1' ) return 1;if ( orderScreen == '-order2' ) return 2;if ( orderScreen == '-order3' ) return 3;return 0;}
that.priceOnlyType = {backup: function() {$('[data-multi-currency-price-only="true"]').each(function( index, el ) {if ( $.isNumeric($(this).data(that.nameSpace + '-price')) ) return;$(this).data(that.nameSpace + '-price',$(this).html());});},update: function() {$('[data-multi-currency-price-only="true"]').each(function( index, el ) {var originalPrice = $(this).data(that.nameSpace + '-price');var newPrice = parseFloat(originalPrice) * parseFloat(that.activeCurrency.rate);if ( newPrice % 1 === 0 ) {$(this).html(newPrice);} else {$(this).html(newPrice.toFixed(2));}});}};return that;}();var ActiveOrderPopup = function() {AO = {};AO.init = function() {$( document ).on( 's123.page.ready.activeOrderPopup', function( event ) {AO.initializeAddToCart();AO.productCallToAction.init();AO.initializeShowCart();});};AO.initializeAddToCart = function() {$('.orderButtonPopup').off('click').on('click', function( event ) {var $this = $(this);if ( $this.hasClass('a-o-out-of-stock') ) {bootbox.dialog({title: translations.activeOrderPopup.messageTitle,message: translations.activeOrderPopup.messageBody,buttons: {cancel: {label: translations.Ok,className: 'btn btn-primary'}}});return;}
if ( $this.data('disable-atc-validator') != '1' ) {if ( !AO.atcValidator() ) return;}
$this.attr('disabled','');S123.ButtonLoading.start($this);var multiProducts = $this.data('multi-products') ? $this.data('multi-products') : JSON.stringify([$this.data('unique-page')]);var formData = new FormData();formData.append('w',$('#w').val());formData.append('websiteID',$('#websiteID').val());formData.append('moduleID',$this.data('module'));if ( $this.data('product-page') ) {if ( $('#productOptions').prop('type') == 'textarea' ) {formData.append('productOptions',$('#productOptions').length !== 0 ? $('#productOptions').html() : '');} else {formData.append('productOptions',$('#productOptions').length !== 0 ? $('#productOptions').val() : '');}
formData.append('customText',$('#customText').length !== 0 ? $('#customText').html() : '');}
formData.append('amount',$this.data('quantity-amount') ? $this.data('quantity-amount') : '1');formData.append('multiProducts',multiProducts);formData.append('viewModeTXT',viewModeTXT);$('input[type="file"]').each(function( index, upload ) {if ( upload.files.length > 0 ) {formData.append(upload.id,upload.files[0]);}});if ( $('.product-subscription-pricing').length !== 0 ) {let checkedPricing = $('.product-subscription-pricing').find('input[type="radio"]:checked');if ( checkedPricing.length == 0 ) {$('.product-subscription-error').remove();$('.product-subscription-title').append(`<div class="product-subscription-error">${translations.productSubscriptionError}</div>`);S123.ButtonLoading.stop($this);$this.removeAttr('disabled');return;}
formData.append('subscriptionTicketID',checkedPricing.val());formData.append('activeProductSubscription',true);}
$.ajax({type: "POST",url: "/versions/2/wizard/orders/front/addToCart.php",data: formData,cache: false,contentType: false,processData: false,success: function( response ) {response = tryParseJSON(response);showCart_GetContent('/versions/2/wizard/orders/front/showCart.php?w='+$('#w').val()+'&websiteID='+$('#websiteID').val()+'&tranW='+websiteLanguageCountryFullCode+'&moduleID='+$this.data('module')+'&viewModeTXT='+viewModeTXT,true);CartCounter.updateCartIcon();S123.ButtonLoading.stop($this);$this.removeAttr('disabled');topWindow.eCommerce_cart_lastAdded = response.updatedCartIds ? response.updatedCartIds : false;}});});};AO.initializeShowCart = function() {$('.orderOpenCart').off('click').on('click',function( event ) {AO.showCart();});};AO.showCart = function() {showCart_GetContent('/versions/2/wizard/orders/front/showCart.php?w='+$('#w').val()+'&websiteID='+$('#websiteID').val()+'&moduleTypeNUM=37&tranW='+websiteLanguageCountryFullCode+'&cartButton=1',true);};AO.atcValidator = function() {var $ct = $("#product-custom-text");var $po = $('.product-options');if ( $ct.length !== 0 && $ct.data('mandatory') ) {var $ct_fieldTitle = $('#ct_fieldTitle');if ( $ct_fieldTitle.val().length === 0 ) {$ct_fieldTitle.popover({container: 'body',content: translations.productvalidatorPopover,trigger: 'manual',template: '<div class="popover product-validator-popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>',placement: function(popover, input) {return isMobileDevice.any() ? 'auto' : ($('html').attr('dir') === 'rtl' ? 'left' : 'right');}});$ct_fieldTitle.popover('show').one('input', function(e) {$(this).popover('hide');});$ct_fieldTitle.focus();return false;}}
if ( $po.length !== 0 ) {var $options = $po.find('.p-o-container[data-mandatory="1"]');var addToCart = true;var $popoverContainer;var $firstErrorOption;var $errorsOptionsList = [];$.each($options, function( index, option ) {var $option = $(option);var addErrorMsg = false;switch( $option.data('type') ) {case 'color':case 'radio':case 'checkbox':case 'size':case 'list':if ( $option.find('[id*=poi].selected').length === 0 ) {addToCart = false;addErrorMsg = true;}
$popoverContainer = $(option);break;default:if ( $option.find('.fake-input').length > 0 ) {var id = $option.find('.fake-input').data('related-id');if ( $option.find('[data-id="'+id+'"]').val().length === 0 ) {addToCart = false;addErrorMsg = true;$popoverContainer = $(option).parent();}} else {if ( $option.find('.form-control').val().length === 0 ) {addToCart = false;addErrorMsg = true;$popoverContainer = $(option).parent();}}}
if ( addErrorMsg ) {$errorsOptionsList.push($option);var $popover = $option.find('.p-o-popover-box');if ( $popover.length === 0  ) $popover = $option;$popover.popover({container: 'body',content: translations.productvalidatorPopover,trigger: 'manual',template: '<div class="popover product-validator-popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>',placement: function(popover, input) {let isSmallDeviceWidthBOO = findBootstrapEnvironment() === 'xs';return isSmallDeviceWidthBOO ? 'auto' : ($('html').attr('dir') === 'rtl' ? 'right' : 'left');}});}});if ( $errorsOptionsList.length !== 0 ) {var offset = $('#mainNav').outerHeight();if ( !$.isNumeric(offset) ) offset = 0;if ( !elementInViewport($errorsOptionsList[0].get(0)) ) {$('html, body').scrollTop($errorsOptionsList[0].offset().top - offset);}
$.each($errorsOptionsList, function( index, $option ) {var $popover = $option.find('.p-o-popover-box');if ( $popover.length === 0  ) $popover = $option;$popover.popover('show');});$po.off('po.update').on('po.update', function( event ) {$('.product-validator-popover').popover('hide');});}
return addToCart;}
return true;};AO.productCallToAction = function() {var _ = {};_.init = function( settings ) {_.$controllers = $('.orderButtonPopup[data-p-c-t-a]');if ( _.$controllers.length == 0 ) return;_.$controllers.each(function() {var $this = $(this);var callToAction = $this.data('p-c-t-a');if ( callToAction.type == 'externalLink' && callToAction.externalLink.length > 0 ) {$this.off('click').on('click', function( event ) {window.open(callToAction.externalLink,'_blank');});} else if ( callToAction.type == 'contactUs' ) {$this.off('click').on('click', function( event ) {buildPopup('popupFloatDivSearch','',generateContactForm(callToAction),'',true,true,true,'right','')
S123.globalContactEmail.submitHandler();fillDescription(callToAction);});}});};function generateContactForm( callToAction ) {var html = '';html += '<div class="global-contact-email-container">';html += '<div class="g-c-email-info-box">';html += '<h3>'+translations.productCallToAction.title+'</h3>';html += '<p>'+translations.productCallToAction.infoBox+'</p>';html += '</div>';html += '<form class="g-c-email-form">';html += '<div class="row">';html += '<div class="col-xs-12">';html += '<div class="form-group">';html += '<label for="emailForm_fullName" class="white">'+translations.productCallToAction.fullName+'</label>';html += '<input type="text" name="emailForm_fullName" placeholder="'+translations.productCallToAction.fullName+'" class="form-control" required data-msg-required="'+translations.jqueryValidMsgRequire+'">';html += '</div>';html += '</div>';html += '<div class="col-xs-12">';html += '<div class="form-group">';html += '<label for="emailForm_email" class="white">'+translations.emailAddress+'</label>';html += '<input type="text" name="emailForm_email" placeholder="'+translations.emailAddress+'" class="form-control" required data-msg-required="'+translations.jqueryValidMsgRequire+'" data-rule-email="true" data-msg-email="'+translations.jqueryValidMsgEmail+'">';html += '</div>';html += '</div>';html += '<div class="col-xs-12">';html += '<div class="form-group">';html += '<label for="emailForm_phone" class="white">'+translations.productCallToAction.phone+'</label>';html += '<input type="text" name="emailForm_phone" placeholder="'+translations.productCallToAction.phone+'" class="form-control">';html += '</div>';html += '</div>';html += '</div>';html += '<div class="row">';html += '<div class="col-xs-12">';html += '<button type="submit" class="btn btn-primary btn-block">'+translations.send+'</button>';html += '<input type="hidden" name="websiteID" value="'+$('#websiteID').val()+'">';html += '<input type="hidden" name="w" value="'+$('#w').val()+'">';html += '<input type="hidden" name="isAddToCartBtn" value="1">';html += '<input type="hidden" name="recaptchaToken" value="">';html += '<textarea class="form-control hidden" name="emailForm_description"></textarea>';html += '</div>';html += '</div>';html += '</form>';html +='<div class="g-c-email-message-sent-box">';html += '<div class="row">';html += '<div class="col-sm-6 col-xs-12 col-md-offset-3">';html += '<h3 class="g-c-email-message-content">'+translations.productCallToAction.thankYouMessage+'</h3>';html += '</div>';html += '</div>';html += '<div class="row">';html += '<div class="col-sm-6 col-xs-12 col-md-offset-3">';html += '<button type="button" class="btn btn-primary close-order-thank-you">'+translations.productCallToAction.thankYouCloseBtn+'</button>';html += '</div>';html += '</div>';html += '</div>';html += '</div>';return html;}
function fillDescription( callToAction ) {var pageURL = window.location.protocol+'//'+domain+callToAction.pageURL;
var html = '';html += '<br>';html += '<strong>'+translations.productCallToAction.productName+'<strong> ';html += '<a href="'+pageURL+'" target="_blank">'+callToAction.title+'</a>';$('#popupFloatDivSearch [name="emailForm_description"]').val(html);}
return _;}();return AO;}();var WishList = function() {var WL = {};WL.init = function( settings ) {$( document ).on( 's123.page.ready.wish_list', function( event ) {WL.websiteID = $('#websiteID').val();WL.$menuButton = $('.wishListActionButton');if ( WL.$menuButton.length === 0 ) return;WL.eventRecurring();WL.initilizeMenuButton();WL.initializeLayoutButtons();WL.initializeDataPageButtons();});};WL.markUnMarkIcons = function() {var $container = $('.s123-module-eCommerce');var $items = $container.find('.product-data-obj');var $icons = $items.find('.wish-list-btn');WL.items = tryParseJSON($.cookie(WL.websiteID+'-wishList'));if ( !WL.items || $container.length === 0 ) return;$icons.removeClass('wl-active');$.each(WL.items, function( index, item ) {$items.filter('.product-data-obj[data-unique-id="'+item.uniqueID+'"]').find('.wish-list-btn').addClass('wl-active');});if ( $container.hasClass('s123-page-data-eCommerce') ) {WL.setToolTip($container);}};WL.setToolTip = function( $container ) {var $wishListBtn = $container.find('.wish-list-btn');$wishListBtn.attr('data-original-title',$wishListBtn.data('add-tooltip'));$wishListBtn.filter('.wl-active').attr('data-original-title',$wishListBtn.data('remove-tooltip'));$wishListBtn.tooltip({container: 'body',placement: 'auto'});};WL.eventRecurring = function() {WL.markUnMarkIcons();WL.updateCounterIcon();};WL.refresh = function() {WL.eventRecurring();};WL.initilizeMenuButton = function() {if ( WL.$menuButton.length === 0 ) return;WL.$menuButton.off('click').on('click',function( event ) {var $this = $(this);showCart_GetContent('/versions/2/wizard/orders/front/showCart.php?w='+$('#w').val()+'&websiteID='+$('#websiteID').val()+'&moduleTypeNUM=112&tranW='+websiteLanguageCountryFullCode+'&cartButton=1&wishList=true',true);});};WL.initializeLayoutButtons = function() {var $container = $('.s123-module-eCommerce:not(.s123-page-data-eCommerce)');if ( $container.length === 0 ) return;$container.find('.wish-list-btn').off('click.wishList').on('click.wishList',function( event ) {event.stopPropagation();var $this = $(this);var $wishListItem = $this.closest('.product-data-obj');if ( $this.hasClass('disabled') ) return false;if ( $this.hasClass('wl-active') ) {WL.removeItem($this,$wishListItem.data('module'),$wishListItem.data('module-type-num'),$wishListItem.data('unique-id'));} else {WL.addItem($this,$wishListItem.data('module'),$wishListItem.data('unique-id'));}});};WL.initializeDataPageButtons = function() {var $container = $('.s123-module-eCommerce.s123-page-data-eCommerce');if ( $container.length === 0 ) return;$container.find('.wish-list-btn').off('click.wishList').on('click.wishList', function( event ) {var $this = $(this);var $wishListItem = $this.closest('.product-data-obj');if ( $this.hasClass('disabled') ) return false;if ( $this.hasClass('wl-active') ) {WL.removeItem($this,$wishListItem.data('module'),$wishListItem.data('module-type-num'),$wishListItem.data('unique-id'));} else {WL.addItem($this,$wishListItem.data('module'),$wishListItem.data('unique-id'));}});};WL.addItem = function( $item , moduleID, uniqueID ) {$item.addClass('disabled');$.ajax({type: "POST",url: "/versions/2/wizard/orders/front/addToCart.php",data:  {w: $('#w').val(),websiteID: WL.websiteID,moduleID: moduleID,wishList: true,multiProducts: JSON.stringify(Array(uniqueID)),viewModeTXT: viewModeTXT,},success: function( response ) {response = tryParseJSON(response);showCart_GetContent('/versions/2/wizard/orders/front/showCart.php?w='+$('#w').val()+'&websiteID='+$('#websiteID').val()+'&tranW='+websiteLanguageCountryFullCode+'&moduleID='+moduleID+'&wishList=true',true);WishList.eventRecurring();$item.removeClass('disabled');topWindow.eCommerce_cart_lastAdded = response.updatedCartIds ? response.updatedCartIds : false;}});};WL.removeItem = function( $item, moduleID, moduleTypeNUM, uniqueID ) {$item.addClass('disabled');$.ajax({type: "POST",url: "/versions/2/wizard/orders/front/removeCartItem.php",data: {w: $('#w').val(),websiteID: WL.websiteID,moduleID: moduleID,id: WL.items[uniqueID].id,uniqueID: uniqueID,wishList: true,cartType: moduleTypeNUM,tranW: websiteLanguageCountryFullCode},success: function( response ) {var response = JSON.parse(response);if ( !response.success ) return;WishList.eventRecurring();$item.removeClass('disabled');topWindow.eCommerce_cart_lastAdded = response.updatedCartIds ? response.updatedCartIds : false;}});};WL.updateCounterIcon = function() {var $headerWishListWrapper = $('.header-wish-list');if ( $headerWishListWrapper.length === 0 ) return;var itemsNumber = WL.items ? Object.keys(WL.items).length : 0 ;if ( parseInt(itemsNumber) === 0 ) {if ( !$headerWishListWrapper.hasClass('show-static') ) {$headerWishListWrapper.hide();ResetMoreButton();}
$headerWishListWrapper.find('.count').hide();} else {if ( !$headerWishListWrapper.hasClass('show-static') ) {$headerWishListWrapper.show();ResetMoreButton();}
$headerWishListWrapper.find('.count').html(itemsNumber).css({ display: 'flex' });}};return WL;}();var ShowCartMobileHandler = function() {var _ = {};_.step1 = function( settings ) {$(document).one('buildSmallPopup.open',function() {$('body').addClass('popupWinScroll');});$(document).one('buildSmallPopup.close',function() {$('body').removeClass('popupWinScroll');if ( window.visualViewport ) {$(window.visualViewport).off('resize.cartMobile scroll.cartMobile');}
$(window).off('resize.cartMobile');});};_.step2 = function() {if ( !isMobileDevice.any() ) return;const updateQuickCartHeight = () => {const quickCart = $('.quickCart');if ( !quickCart.length ) return;const visibleHeight = window.visualViewport?.height || window.innerHeight;quickCart.height(visibleHeight);};const handleViewportChange = () => {clearTimeout(window.updateQuickCartTimeout);window.updateQuickCartTimeout = setTimeout(updateQuickCartHeight,100);};if ( window.visualViewport ) {$(window.visualViewport).on('resize.cartMobile scroll.cartMobile',handleViewportChange);}
$(window).on('resize.cartMobile',handleViewportChange);updateQuickCartHeight();};return _;}();function showCart_GetContent( url, bsp ) {var window_object = S123.isWebsiteInSlidingWindow ? parent : window;var b_s_p = window_object.buildSmallPopup;ShowCartMobileHandler.step1();$.ajax({type: "GET",url: url,success: function( response ) {if ( bsp ) {b_s_p('popupCart',translations.cart,response,'',true,false,true,'');} else {$('#popupCart .content').html(response);}
showCart(window_object);}});}
function showCart( current_window ) {var $cartOrderPage = current_window.$('#popupCart').find('.content');init();function init() {eventRecurring();if ( $.isArray(topWindow.eCommerce_cart_lastAdded) ) {$.each(topWindow.eCommerce_cart_lastAdded, function( index, cart_id ) {$cartOrderPage.find('[data-cart-id="'+cart_id+'"]').addClass('last-added-highlight');});topWindow.eCommerce_cart_lastAdded = false;}}
function eventRecurring() {current_window.CartCounter.updateCartIcon();var aop_settings = tryParseJSON($cartOrderPage.find('#aopSettings').val());$cartOrderPage.height('auto');$cartOrderPage.find('.empty-cart-btn').off('click').on('click','a.empty-cart', function() {$.ajax({type: "GET",url: $(this).data('href')+'&wishList='+aop_settings.wishList,success: function( data ) {$cartOrderPage.closest('#popupCart .content').html(data);eventRecurring();showCart_UpdateCartWasChanged();}});});$cartOrderPage.find('.change-cart').on('click', function() {$.ajax({type: "GET",url: $(this).data('href'),success: function( data ) {$cartOrderPage.closest('#popupCart .content').html(data);eventRecurring();}});});$cartOrderPage.find('.continue-shopping-btn, .closeIcon').click(function() {current_window.buildSmallPopup_CloseAction('popupCart');});$cartOrderPage.find('.edit-quantity').on('click',function() {var $this = $(this);$cartOrderPage.find('#quantity_box_'+$this.data('product-id')+'').toggle();});$cartOrderPage.find('.edit-quantity-minus').on('click',function() {var $this = $(this);var $box = $cartOrderPage.find('#quantity_box_'+$this.data('product-id')+'');$box.find('.quantity_field').val(parseInt($box.find('.quantity_field').val())-1).trigger('input');updateAutomaticCouponMsg();});$cartOrderPage.find('.edit-quantity-plus').on('click',function() {var $this = $(this);var $box = $cartOrderPage.find('#quantity_box_'+$this.data('product-id')+'');$box.find('.quantity_field').val(parseInt($box.find('.quantity_field').val())+1).trigger('input');updateAutomaticCouponMsg();});function updateAutomaticCouponMsg() {$.ajax({type: 'POST',url: '/versions/' + $('#versionNUM').val() + '/wizard/orders/front/getAutomaticCouponMsg.php',data: {w: $('#w').val(),websiteID: $(websiteID).val(),total: $('#cartTotalPrice span[data-type="price"]').html(),cartType: $('.cartBottom').data('cart-type'),couponApplyTo: 'cartOrder',},success: function( response ) {$('.cart-automatic-coupon-container').html('').append(response);}});}
$cartOrderPage.find('.quantity_field').on('input', function() {var $input = $(this);if ( $input.val().length === 0 ) $input.val(1);if ( !$.isNumeric($input.val()) ) $input.val($input.val().replace(/[^0-9]/g,''));if ( $input.val() <= 0 ) $input.val(1);if ( parseInt($input.val()) > parseInt($input.data('inventory-limit')) ) {$input.val($input.data('inventory-limit'));showCart_QuantityPopover($cartOrderPage.find('[data-cart-id="'+$input.data('product-id')+'"]'),translations.productQuntityLimit.replace('{{units_limitation}}',$input.data('inventory-limit')));} else if ( parseInt($input.val()) > parseInt($input.data('maximum-purchase')) ) {$input.val($input.data('maximum-purchase'));showCart_QuantityPopover($cartOrderPage.find('[data-cart-id="'+$input.data('product-id')+'"]'),translations.productQuntityLimit.replace('{{units_limitation}}',$input.data('maximum-purchase')));} else if ( parseInt($input.val()) < parseInt($input.data('minimum-purchase')) ) {$input.val($input.data('minimum-purchase'));showCart_QuantityPopover($cartOrderPage.find('[data-cart-id="'+$input.data('product-id')+'"]'),translations.productQuntityLimitMin.replace('{{units_limitation}}',$input.data('minimum-purchase')));}
showCart_UpdateQuantityTotalPrice();clearTimeout(window.quantityInputFinished);window.quantityInputFinished = setTimeout( function() {$cartOrderPage.find('#q_u_loading_'+$input.data('product-id')).show();$.ajax({type: 'POST',url: '/versions/' + aop_settings.versionNUM + '/wizard/orders/front/quantityUpdate.php',data: {w: aop_settings.w,websiteID: aop_settings.websiteID,tranW: aop_settings.tranW,moduleID: aop_settings.moduleID,cartType: aop_settings.cartType,id: $input.data('product-id'),newQuantity: $input.val()},success: function( response ) {var response = JSON.parse(response);if ( response.success ) {$cartOrderPage.find('#q_u_loading_'+$input.data('product-id')).hide();current_window.CartCounter.updateCartIcon();showCart_UpdateCartWasChanged();}}});},300);});$cartOrderPage.find('.remove-product-btn').off('click').on('click', function() {var $this = $(this);$this.parent().children().hide();$this.parent().append('<div class="loading-primary r-p-loading" class="text-center">'+S123.s123IconToSvg.getHtml('spinner','fa-spin','')+'</div>');$.ajax({type: 'POST',url: '/versions/' + aop_settings.versionNUM + '/wizard/orders/front/removeCartItem.php',data: {id: $this.data('product-id'),uniqueID: $this.closest('.item').get(0).id,w: aop_settings.w,websiteID: aop_settings.websiteID,tranW: aop_settings.tranW,moduleID: aop_settings.moduleID,cartType: aop_settings.cartType,wishList: aop_settings.wishList},success: function( response ) {var response = tryParseJSON(response);if ( response.success ) {if ( $this.closest('.item').siblings().not('.mix-modules-products-buttons').length == 0 ) {$cartOrderPage.find('.cart-list-container').hide();$cartOrderPage.find('.empty-cart-container').show();}
$this.closest('.item').fadeOut(300,function() {$this.closest('.item').remove();showCart_UpdateQuantityTotalPrice();if ( aop_settings.wishList ) {WishList.markUnMarkIcons();WishList.updateCounterIcon();}
showCart_UpdateCartWasChanged();updateAutomaticCouponMsg();});} else {$cartOrderPage.find('.r-p-loading').remove();$this.show();showCart_UpdateQuantityTotalPrice();}
current_window.CartCounter.updateCartIcon();},error: function(data) {$cartOrderPage.find('.r-p-loading').remove();$this.show();}});});$cartOrderPage.find('#couponWebsite').validate({errorElement: 'div',errorClass: 'help-block',focusInvalid: true,ignore: ":hidden",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 > 1 ) controls.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 ) {$(form).find('button:submit').prop('disabled', true);return true;}});ShowCartMobileHandler.step2();if ( aop_settings.foodDeliveryCart ) {foodDeliveryEditProductEvent($cartOrderPage);}
if ( $('html.onlyContent123').length > 0 ) {window.parent.$(window.parent.document).trigger('pageLoaded');} else {$(document).trigger('pageLoaded');}
if ( window.location.pathname == '/-order1/' ) {$(document).off('order1.reload').on('order1.reload', function(){if ( typeof window.isCartWasChanged != 'undefined' ) {delete window.isCartWasChanged;window.location.reload();}});}}
function showCart_QuantityPopover( $input, message ) {$input.popover({container: $cartOrderPage,content: message,trigger: 'manual',template: '<div class="popover cart-validator-popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>',placement: function(popover, input) {return isMobileDevice.any() ? 'auto' : 'bottom';}});$input.popover('show');clearTimeout($input.data('q-p-timeout'));$input.data('q-p-timeout',setTimeout(function(){$input.popover('destroy');},3000));}
function showCart_UpdateQuantityTotalPrice() {var cartTotal = 0.00;$cartOrderPage.find('.quantity_field').each(function() {var $quantityInput = $(this);var $info            = $quantityInput.closest('.cart-product-info');var $priceBox        = $info.find('.cart-product-price');var $price           = $info.find('.cart-product-price [data-type="price"]');var $quantityPrice   = $info.find('.quantity-total-price');var $fullPrice           = $info.find('.cart-product-full-price [data-type="price"]');var $quantityFullPrice   = $info.find('.quantity-total-full-price');var total = (parseFloat($price.closest('[data-price]').data('price')) * parseInt($quantityInput.val()));var totalFullPrice = (parseFloat($fullPrice.closest('[data-price]').data('price')) * parseInt($quantityInput.val()));cartTotal += parseFloat(total);$quantityPrice.find('.main_price [data-type="price"]').html(total.toFixed(2));$quantityFullPrice.find('.main_price [data-type="price"]').html(totalFullPrice.toFixed(2));if (parseInt($quantityInput.val()) > 1) {$quantityPrice.show();$priceBox.hide();} else {$quantityPrice.hide();$priceBox.show();}
$info.find('.cart-product-quantity .qty_count').html($quantityInput.val());$(document).trigger('multi_currencies_price_update',[[{el: $quantityPrice.find('.main_price'),newPrice: total.toFixed(2)}]]);});$cartOrderPage.find('#cartTotalPrice [data-type="price"]').html(cartTotal.toFixed(2));$(document).trigger('multi_currencies_price_update',[[{el: $cartOrderPage.find('#cartTotalPrice'),newPrice: cartTotal.toFixed(2)}]]);}
function showCart_UpdateCartWasChanged() {window.isCartWasChanged = window.location.pathname == '/-order1/';}}
jQuery(function($) {MenuModuleInitialize();});function MenuModuleInitialize() {$( document ).on( "s123.page.load", function( event ) {var $sections = $('.s123-module-menu.layout-2, .s123-module-menu.layout-3');$sections.each(function( index ) {var $s = $(this);var $categories = $s.find('.filter a');$categories.off('click').on('click',function ( event, initialize ) {var $category = $(this);var $products = $s.find('.menu-category');$s.find('.filter li').removeClass('active');$category.parent().addClass('active');var $filtered = $products.filter('[data-filter=' + $category.data('filter') + ']')
if ( initialize ) {$products.hide();$filtered.show();} else {$products.fadeOut(200).promise().done( function() {$filtered.fadeIn(200);$(window).trigger('scroll');});}
return false;});$categories.first().trigger('click',true);});});}
//Run when the page load (before images and other resource)
jQuery(function($) {$( document ).on( 's123.page.ready', function( event ) {var $section = $('.s123-module-restaurantReservation.layout-1');$section.each(function( index ) {var $sectionThis = $(this);(function() {googleMapPopUp.init({locationData : $sectionThis.find('.mapPopupActivator'),mapsDisplayDomain : $GLOBALS["maps-display-domain"],longFreeCustomer : longFreeCustomer,language : languageCode});})();if ( $sectionThis.find(".restaurantWorkingDays").length == 0) return;var rr = JSON.parse($sectionThis.find(".restaurantWorkingDays").val());var inActiveDays = 0;if ( rr.availability == 'custom' ) {$.each(rr.businessHours,function( index, dayOfWeek) {if (!dayOfWeek.isActive) {inActiveDays ++;}});}
$sectionThis.find('.calendar-loading-container').addClass('hidden');if ( inActiveDays == 7 || rr.availability == 'unavailable' ) {$sectionThis.find('.calendar-container').addClass('hidden');$sectionThis.find('.note-container').removeClass('hidden');return;}
buisnessHoursTemplate.init({$buisnessHourContainer : $sectionThis.find('.businessWorkingDays'),buisnessHourJSON : $sectionThis.find(".restaurantWorkingDays")});$sectionThis.find('.calendar-container').removeClass('hidden');if ( rr.availability == 'custom' ) {$.each(rr.businessHours, function( index, day ) {var startShift = 'startTime3';var endShift = 'endTime3';if ( day.startTime3 == '' || day.endTime3 == '' ) {startShift = 'startTime2';endShift = 'endTime2';}
if ( day.startTime2 == '' || day.endTime2 == '' ) {startShift = 'startTime1';endShift = 'endTime1';}
if ( rr.businessHours[index].isActive && !day.hasNoShifts && day[endShift] <= day[startShift] ) {var startHour = parseInt(day[startShift].substring(0,2));var startMin = day[startShift].substring(3,5);var endHour = parseInt(day[endShift].substring(0,2));var endMin = day[endShift].substring(3,5);rr.businessHours[index][endShift] = '23:59';var dayIndex = (index+1);if ( index == 6 ) {dayIndex = 0;}
if ( endHour < 10 ) endHour = '0'+endHour.toString();rr.businessHours[dayIndex].startTime0 = '00:'+ startMin;rr.businessHours[dayIndex].endTime0 = endHour + ':' + endMin;if ( !rr.businessHours[dayIndex].isActive ) {rr.businessHours[dayIndex].isActive = true;rr.businessHours[dayIndex].startTime1 = '';rr.businessHours[dayIndex].endTime1 = '';rr.businessHours[dayIndex].startTime2 = '';rr.businessHours[dayIndex].endTime2 = '';rr.businessHours[dayIndex].startTime3 = '';rr.businessHours[dayIndex].endTime3 = '';rr.businessHours[dayIndex].hasNoShifts = true;}}});}
var disabledDays =[];if ( rr.availability == 'fullTime' ) {$.each(rr.businessHours,function( index, weekday ) {weekday.isActive = true;weekday.startTime1 ='00:00';weekday.endTime1 ='24:00';weekday.startTime2 ='';weekday.endTime2 ='';weekday.startTime3 ='';weekday.endTime3 ='';});} else {var total = rr.businessHours.length;$.each(rr.businessHours, function( index ) {if ( !rr.businessHours[index].isActive ) {disabledDays.push(index);}});}
disabledDays = disabledDays.join(',');var datePickerFormat = rr.dateFormat;if (rr.dateFormat == 'd/m/Y') {datePickerFormat = 'dd/mm/yyyy';} else {datePickerFormat = 'mm/dd/yyyy';}
var calendarStartTime = $sectionThis.find('.clientTimeByZone').val();var calendar = new calendar_handler();var $datepicker = $sectionThis.find('.sandbox-container .fake-input.r-s-datePicker');var $hiddenInput = $sectionThis.find('[data-id="'+$datepicker.data('related-id')+'"]');var $datepickerIcon = $sectionThis.find('.r-s-datePicker-icon');var $restaurantDatesContainer = $sectionThis.find('.restaurantDatesContainer');var $restaurantTableHourContainer = $sectionThis.find('.restaurantTableHourContainer');if ( $restaurantTableHourContainer.find('.table-hour').length == 0) {$restaurantTableHourContainer.append('<select class="form-control table-hour" name="tableHour"></select><label class="hidden no-time-available">'+ translations.NoAvailableTime +'</label>');let uiRichSelect = new UiRichSelect();}
var $tableHour = $restaurantTableHourContainer.find('.table-hour');$datepicker.on('changeDate', function() {var $this = $(this);let tomSelectInstance = $tableHour.get(0).tomselect;if ( tomSelectInstance ) tomSelectInstance.destroy();$tableHour.empty();buildHourSelect(rr, $this.parent(), $restaurantDatesContainer, $tableHour);if ( $tableHour.text().length <=0 ) {$tableHour.addClass('hidden');$restaurantTableHourContainer.find('.no-time-available').removeClass('hidden');$sectionThis.find('.makeOrder').attr('disabled',true);} else {$restaurantTableHourContainer.find('.no-time-available').addClass('hidden');$tableHour.removeClass('hidden');$sectionThis.find('.makeOrder').attr('disabled',false);}
let uiRichSelect = new UiRichSelect();});$sectionThis.find('.makeOrder').click(function() {var $emailIcon 	= $(this);var websiteID 	= $sectionThis.find('.websiteID').val();var moduleID	= $sectionThis.find('.moduleID').val();var w 			= $('#w').val();var clientTime  = calendarStartTime.substring(0,10);var autoConfirm = $sectionThis.find('.confirmationStyle').val();var tableSize   = $sectionThis.find('.tableSize').val();var tableHour 	= $sectionThis.find('.table-hour').val();var tableDate 	= $sectionThis.find('.restaurantDatesContainer input').val();var location  	= $sectionThis.find('.location').val();var restaurantName = $sectionThis.find('.restaurantName').val();var clientTimeZone = $sectionThis.find('.clientTimeZone').val();var temporaryDate = new Date();var tableHourSplit = tableHour.split(":");temporaryDate.setHours(tableHourSplit[0]);temporaryDate.setMinutes(tableHourSplit[1]);tableHour 		= changeTimeFormat(rr.timeFormat,temporaryDate);buildPopup('popupRestaurantReservations','',buildRestaurantReservationForm(w,websiteID,moduleID,tableDate,tableSize,tableHour,clientTime,autoConfirm,location,restaurantName,clientTimeZone),'',true,false,true,'','');$('#popupRestaurantReservations').find('.restaurantReservationsFormPopup').each( function( index ) {var $form = $(this);var forms_GoogleRecaptcha = new Forms_GoogleRecaptcha();forms_GoogleRecaptcha.init($form);jQuery.validator.addMethod('phone-pattern', function(value, element) {return this.optional(element) || /^[0-9-+*() ]+$/i.test(value);}, translations.pleaseEnterValidPhone);$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();},submitHandler: function( form ) {var $form = $(form);if ( forms_GoogleRecaptcha.isActive && !forms_GoogleRecaptcha.isGotToken ) {forms_GoogleRecaptcha.getToken();return false;}
$form.find('button:submit').prop('disabled', true);$.ajax({type: "POST",url: "/versions/2/include/restaurantReservationsO.php",data: $form.serialize(),success: function( data ) {$form.trigger("reset");forms_GoogleRecaptcha.reset();$form.addClass("hidden");$(".orderConfirmation").find(".orderId").text('#'+JSON.parse(data).orderID);$(".orderConfirmation").removeClass("hidden");$form.next().find(".close-order-thank-you").on("click",function() {buildPopup_CloseAction('popupRestaurantReservations');$form.find(".tableSize,.table-hour").find("option:first-child").attr('selected','selected');$sectionThis.find('.restaurantReservationsForm').get(0).reset();calendar.setDate(new Date(calendarStartTime));$datepicker.trigger('changeDate');});if (autoConfirm == "1")
$form.next().find(".thankYouMessage").text(translations.ThankYouAuto+"!");$form.find('button:submit').prop('disabled', false);WizardNotificationUpdate();}});return false;}});});});calendar.init({$fakeInput: $datepicker,$hiddenInput: $hiddenInput,$fakeInputIcon: $datepickerIcon,type: 'datePicker',title: translations.chooseDate,calendarSettings: {format: $datepicker.data('date-format'),weekStart: parseInt(rr.firstDayOfWeek),todayBtn: "linked",clearBtn: false,language: languageCode,startDate: new Date(calendarStartTime).toString(),daysOfWeekDisabled: disabledDays,todayHighlight: true},onSubmit: function( selectedDate ) {$datepicker.html(selectedDate);$hiddenInput.val(selectedDate);$datepicker.trigger('changeDate');},onInit: function() {$datepicker.trigger('changeDate');}});let uiRichSelect = new UiRichSelect();});});});function changeTimeFormat( websiteTimeFormat, date ) {var dayObj = dayjs(date);if ( websiteTimeFormat === 'H:i' ) {return dayObj.format('HH:mm');} else if ( websiteTimeFormat === 'h:i A' ) {return dayObj.format('hh:mm A');}}
function changeDateFormat( websiteDateFormat, date ) {switch( websiteDateFormat ) {case 'YYYY-mm-DD m/d/Y':return dayjs(date).format("YYYY-MM-DD");break;case 'YYYY-mm-DD d/m/Y':var newdate = date.split("/").reverse().join("-");return dayjs(newdate).format("YYYY-MM-DD");break;}}
function buildHourSelect( rr, $this, $restaurantDatesContainer, $tableHour ) {var dateValue = $this.find('input').val();if ( !dateValue ) throw 'Missing date parameter';dateValue = changeDateFormat( 'YYYY-mm-DD '+ rr.dateFormat, dateValue );for( var i = 0 ; i <= 3 ; i++ ) {var addShift = false;if ( i > 1 ) {addShift = true ;}
var dataIndex = new Date(dateValue).getDay();var startTime = 'startTime'+i;var endTime = 'endTime'+i;startTime = rr.businessHours[dataIndex][startTime];endTime = rr.businessHours[dataIndex][endTime];if (startTime == ''|| endTime == '' || !rr.businessHours[dataIndex].isActive)
continue;var selectedDate = new Date(dateValue);if ( getDateFormat(selectedDate) == getDateFormat(new Date()) && new Date().getTime() >= dayjs(dateValue+" "+startTime).valueOf()) {startTime = dayjs(dateValue+" "+$restaurantDatesContainer.data('corrent-time')).valueOf();} else {startTime = dayjs(dateValue+" "+startTime).valueOf();}
endTime = dayjs(dateValue+" "+endTime).valueOf();for ( ;startTime < endTime ;  startTime += 900000 ) {var newdate = new Date(startTime);var newHour = newdate.getHours();var newMinutes = newdate.getMinutes();if (newHour.toString().length == 1 )
newHour = '0' + newHour;if (newMinutes.toString().length == 1 )
newMinutes = '0' + newMinutes;var hourExists = false;$.each($tableHour.find('option'),function(index) {$optionVal = $(this).val();if ($optionVal == newHour+':'+newMinutes) {hourExists = true;return false;}});if (!hourExists)	$tableHour.append('<option value="'+newHour+':'+newMinutes+'">'+changeTimeFormat(rr.timeFormat,newdate)+'</option>');else continue;}}}
function getDateFormat( DateChoosed ) {var formattedDate = DateChoosed;return formattedDate.getFullYear() +'-'+ (formattedDate.getMonth() + 1)  + '-'+ formattedDate.getDate();}
function getAnotherDateFormat( DateChoosed ) {var formattedDate = DateChoosed;return (formattedDate.getMonth() + 1) +'/'+ formattedDate.getDate()+'/'+ formattedDate.getFullYear();}
function add2CalConvertDateFormat( dateString, type ) {if ( type == 'date' ) {const regex = /^(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})$/;const matches = regex.exec(dateString);if (matches == null) {return "Invalid Date";}
const year = matches[3];const month = ('0' + matches[2]).slice(-2);const day = ('0' + matches[1]).slice(-2);const isoDate = `${year}-${month}-${day}`;const dateObj = new Date(isoDate);return dateObj.toString() !== 'Invalid Date' ? isoDate : 'Invalid Date';} else {timeFormat = '';if ( dateString.match(/\b(AM|PM)\b/) ) {dateString = dateString.split(' ');timeFormat = dateString[1];dateString = dateString[0];}
const [hours, minutes] = dateString.split(':'); // extract hours and minutes from the time string
const dateObj = new Date();dateObj.setHours(hours);dateObj.setMinutes(minutes);dateObj.setHours(dateObj.getHours() + 2);return `${String(dateObj.getHours()).padStart(2, '0')}:${String(dateObj.getMinutes()).padStart(2, '0')}` + ` ${timeFormat}`;}}
function buildRestaurantReservationForm( w, websiteID, moduleID, tableDate, tableSize, tableHour,clientTime, autoConfirm, location, restaurantName, clientTimeZone ) {let dateObj = add2CalConvertDateFormat(tableDate,'date');let tableHourEnd = add2CalConvertDateFormat(tableHour,'time');var html = '';html += '<form class="restaurantReservationsFormPopup">';html += '<div class="row">';html += '<div class="col-sm-6 col-xs-12">';html += '<div class="form-group">';html += '<label for="restaurantFirstName" class="white">'+translations.firstName+'</label>';html += '<input type="text" name="restaurantFirstName" placeholder="'+translations.firstName+'" class="form-control" required data-msg-required="'+translations.jqueryValidMsgRequire+'">';html += '</div>';html += '</div>';html += '<div class="col-sm-6 col-xs-12">';html += '<div class="form-group">';html += '<label for="restaurantLastName" class="white">'+translations.lastName+'</label>';html += '<input type="text" name="restaurantLastName" placeholder="'+translations.lastName+'" class="form-control" required data-msg-required="'+translations.jqueryValidMsgRequire+'">';html += '</div>';html += '</div>';html += '</div>';html += '<div class="row">';html += '<div class="col-sm-6 col-xs-12">';html += '<div class="form-group">';html += '<label for="restaurantPhone" class="white">'+translations.phone+'</label>';html += '<input type="text" name="restaurantPhone" placeholder="'+translations.phone+'" class="form-control" data-rule-phone-pattern="true" data-msg-phone-pattern="'+translations.pleaseEnterValidPhone+'">';html += '</div>';html += '</div>';html += '<div class="col-sm-6 col-xs-12">';html += '<div class="form-group">';html += '<label for="restaurantEmail" class="white">'+translations.emailAddress+'</label>';html += '<input type="text" name="restaurantEmail" placeholder="'+translations.emailAddress+'" class="form-control" required data-msg-required="'+translations.jqueryValidMsgRequire+'" data-rule-email="true" data-msg-email="'+translations.jqueryValidMsgEmail+'">';html += '</div>';html += '</div>';html += '</div>';html += '<div class="row">';html += '<div class="col-xs-12">';html += '<div class="form-group">';html += '<label for="restaurantSpecialRequest" class="white">'+translations.SpecialRequest+'</label>';html += '<textarea class="form-control" name="restaurantSpecialRequest" placeholder="'+translations.SpecialRequest+'"></textarea>';html += '</div>';html += '</div>';html += '</div>';html += '<button type="submit" class="btn btn-primary btn-block">'+translations.send+'</button>';html += '<input type="hidden" name="w" value="'+w+'">';html += '<input type="hidden" name="websiteID" value="'+websiteID+'">';html += '<input type="hidden" name="moduleID" value="'+moduleID+'">';html += '<input type="hidden" name="tableDate" value="'+tableDate+'">';html += '<input type="hidden" name="tableSize" value="'+tableSize+'">';html += '<input type="hidden" name="tableHour" value="'+tableHour+'">';html += '<input type="hidden" name="clientTime" value="'+clientTime+'">';html += '<input type="hidden" name="autoConfirm" value="'+autoConfirm+'">';html += '<input type="hidden" name="recaptchaToken" value="">';html += '</form>';html +='<div class="orderConfirmation hidden">';html += '<div class="row">';html += '<div class="col-sm-12 col-md-6 col-xs-12 col-md-offset-3">';html += '<div class="form-group">';html += '<label class="white thankYouMessage">'+translations.ThankYouManual+'!</label>';html += '</div>';html += '</div>';html += '</div>';html += '<div class="row">';html += '<div class="col-sm-12 col-md-6 col-xs-12 col-md-offset-3">';html += '<div class="form-group">';html += '<label class="white">'+translations.OrderNumber+':</label>&nbsp;';html += '<label class="white orderId">No order</label>';html += '</div>';html += '</div>';html += '</div>';html += '<div class="row">';html += '<div class="col-sm-4 col-md-2 col-md-offset-3 col-xs-12">';html += '<div class="form-group">';html += '<label for="tableDate" class="white">'+translations.Date+'</label><br>';html += '<label for="tableDate" class="white">'+tableDate+'</label>';html += '</div>';html += '</div>';html += '<div class="col-sm-4 col-md-2 col-xs-12">';html += '<div class="form-group">';html += '<label for="clientTime" class="white">'+translations.Hour+'</label><br>';html += '<label for="tableHour" class="white">'+tableHour+'</label>';html += '</div>';html += '</div>';html += '<div class="col-sm-4 col-md-2 col-xs-12">';html += '<div class="form-group">';html += '<label for="clientTime" class="white">'+translations.TableSize+'</label><br>';html += '<label for="tableSize" class="white">'+tableSize+'</label>';html += '</div>';html += '</div>';html += '</div>';html += '<div class="row">';html += '<div class="col-sm-12 col-md-6 col-xs-12 col-md-offset-3">';html += '<div class="form-group">';html += `<add-to-calendar-button
name="${restaurantName}"
startDate="${dateObj}"
startTime="${tableHour}"
endDate="${dateObj}"
endTime="${tableHourEnd}"
location="${location}"
timeZone="${clientTimeZone}"
buttonStyle="round"
options="'Apple','Google','Outlook.com'"
size="4|3|2"
hideCheckmark
></add-to-calendar-button>`;html += '</div>';html += '</div>';html += '</div>';html += '<div class="row">';html += '<div class="col-sm-12 col-md-6 col-xs-12 col-md-offset-3">';html += '<button type="button" class="btn btn-primary btn-block close-order-thank-you">'+translations.Ok+'</button>';html += '</div>';html += '</div>';html += '</div>';return html;}
function Forum_calcActivityTime( diff, postDateTime ) {var oneMin = 60 * 1000; //One minute in millisecond = 60 Sec * 1000 Millisecond
var oneHour = oneMin * 60;var oneDay = oneHour * 24;var oneMonth = oneDay * 30;var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];if ( diff > oneMonth ) {return (monthNames[postDateTime.getMonth()]+' \''+postDateTime.getFullYear().toString().substring(2,4));} else if ( diff > oneDay ) {return (parseInt(parseFloat(diff)/oneDay) +'d');} else if ( diff > oneHour ) {return (parseInt(parseFloat(diff)/oneHour)+'h');} else if ( diff > oneMin ) {return (parseInt(parseFloat(diff)/oneMin)+'m');}
return ('Just now');}
function Forum_updateActivityDateTime( dateTime, $posts ) {dateTime = new Date(dateTime);$posts.each(function (index, post) {var $post = $(post);var postDateTime = new Date($post.data('date-time'));var diff = dateTime - postDateTime;$post.find('span').html(Forum_calcActivityTime(diff,postDateTime));});}
function Forum_froalaEditorInit( $popup, autofocus ) {$popup.find('[data-editor=froala]').each( function() {var $this     = $(this);var websiteID = $this.data('websiteId');var placeholder = $this.data('froala-placeholder') ? $this.data('froala-placeholder') : '';var buttonsList = ['clear', 'fr_separator' ,'bold', 'italic', 'underline', 'strikeThrough', 'fr_separator', 'formatOL', 'formatUL', 'fr_separator', 'insertLink', 'undo', 'redo', 'clearFormatting', 'selectAll'];$this.on('froalaEditor.initialized', function (e, editor, inputEvent) {S123.s123IconToSvg.handleFroalaIcons();});FroalaEditor.DefineIcon('clear', {NAME: 'times',template: 'font_awesome'});new FroalaEditor('#'+$this.get(0).id, {attribution: false,key: 'fIE3A-9C2C1G2B4D5A3D1ud1BI1IMNBUMRWAi1AYMSTRBUZYB-16D4E3D2E3C3I2H1B10C2B1==',fontSize: ['8', '9', '10', '11', '12', '14', '16', '18', '20', '22', '24', '26', '28', '30', '36', '48', '60', '72', '96'],tableStyles: {'fr-no-borders': 'No Borders','fr-dashed-borders': 'Dashed Borders','fr-alternate-rows': 'Alternate Rows'},placeholderText: placeholder,saveInterval: 0,linkInsertButtons: ['linkBack'],height: $this.data('froala-height'),useClasses: true,direction: $('html').attr('dir') === 'rtl' ? 'rtl' : 'ltr',imageUploadURL: '/versions/2/wizard/modules/forum/froalaEditorUploadFile.php',imageUploadParams: {w: $('#w').val(),websiteID: websiteID,returnType: 'froalaEditor'},quickInsertButtons:['image','table', 'ul', 'ol', 'hr'],htmlRemoveTags: ['script', 'style', 'base', 'form', 'input', 'textarea', 'button', 'select', 'frameset', 'embed', 'object', 'param', 'iframe', 'section'],enter: FroalaEditor.ENTER_BR,pastePlain: true,toolbarSticky: false,toolbarButtonsMD: buttonsList,toolbarButtonsSM: buttonsList,toolbarButtonsXS: buttonsList,toolbarButtons: buttonsList,videoEditButtons:['videoReplace','videoRemove','videoDisplay','videoAlign','videoSize'],linkAlwaysNoFollow: true,autofocus: autofocus});});}
function Forum_setAvatar( image, imageSize, name, color ) {var $html = $('<span></span>');if ( image.length > 0 ) {$html.css('background-image','url(' + getImageWRV1(imageSize,image) + ')');if ( name.length > 0 ) {$html.attr('data-rel','tooltip');$html.attr('title',S123.escapeHtml(name));}} else {if ( name.length > 0 ) {$html.css('background-color',color);$html.attr('data-letters',S123.escapeHtml(name).charAt(0));$html.attr('data-rel','tooltip');$html.attr('title',S123.escapeHtml(name));}}
$html.addClass('avatar-img');return $html}
function Forum_getClientDetails( w, websiteID, clientID, itemUniqueID, $button, callback) {$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/getClientCard.php",data: 'w='+w+'&websiteID='+websiteID+'&clientID='+clientID+'&itemUniqueID='+itemUniqueID,success: function( data ) {var dataObj = jQuery.parseJSON(data);if (callback) callback.call(this,data,$button,Forum_initializePopover);}});}
function Forum_generateClientCard( data, $button, callback ) {var data = jQuery.parseJSON(data);var html = '<div class="client-card">';html += '<div class="client-card-avatar">';html += '<div class="forum-card-avatar"></div>';html += '<div class="client-card-name"><span></span></div>';html += '</div>';html += '<div class="client-card-posts">';html += '<span class="card-posts-data">'+translations.joined+' <b><span class="client-card-join"></span></b></span>';html += '<span class="card-posts-data">'+translations.posted+' <b><span class="client-card-last-post" style="display:none;"></span></b></span>';html += '<span class="card-posts-data">'+translations.forumCountOfTotalPosts.replace('{{numbers_of_posts}}','<b><span class="client-card-total-posts" style="display:none;"></span><span>')+'</span></b></span>';'+translations.countOfTotalPosts+'
html += '</div>';html += '</div>';var $html = $(html);var avatar = Forum_setAvatar(data.profileImage,400,data.nickname,data.avatarColor);var $avatar = $(avatar);$html.find('.forum-card-avatar').append($avatar);$html.find('.forum-card-avatar span').addClass('avatar-img');if ( data.nickname.length > 1 ) {$html.find('.client-card-name span').html(data.nickname);}
$html.find('.client-card-join').html(data.joined);if ( data.lastPost.length > 0 ) {$html.find('.client-card-last-post').html(data.lastPost).show();}
if ( data.totalPosts > 0 ) {$html.find('.client-card-total-posts').html(data.totalPosts).show();}
if (callback) callback.call(this,$html,$button);}
function Forum_initializePopover( html, $button ) {var $html = $(html);$button.popover({container: 'body',html: 'true',content: $html,trigger: 'manual',template: '<div class="popover client-card-popover" role="tooltip" style="max-width: 100%;"><div class="arrow"></div><div class="popover-content"></div></div>',placement: function(popover, button) {if ( isMobileDevice.any() ) return 'auto';if ( $(button).hasClass('side-menu-popover') ) {return $('html[dir=rtl]').length === 1 ? 'right' : 'left';}
return $('html[dir=rtl]').length === 1 ? 'left' : 'right';}});$button.popover('show');$button.on('shown.bs.popover', function () {$(document).on('mousedown.forumDestroyPopover', function ( event ) {if ( $(event.target).closest('.popover.share-reply').length === 0 ) {destroyClientCardPopover();}});});function destroyClientCardPopover() {$button.popover('destroy');$(document).off('mousedown.forumDestroyPopover');$(window).off('blur.forumDestroyPopover');$(window).off('scroll.forumDestroyPopover');}}
function Forum_initializeClientCard( $button, websiteID, w, itemUniqueID ) {$button.click(function() {var clientID = $(this).data('client-id');Forum_getClientDetails(w,websiteID,clientID,itemUniqueID,$button,Forum_generateClientCard);});}
function Forum_initializeSearch( $section, websiteID, itemUniqueID, searchURL, dateTime ) {var direction = $('html[dir=rtl]').length === 1 ? 'left' : 'right';var html = '<div>';html += '<form class="forum-search-box">';html += '<div class="form-group search-container">';html += '<div class="input-group">';html += '<input type="text" name="q" class="form-control forum-search-input" placeholder="'+translations.forumSearchPlaceholder+'" aria-required="true" autocomplete="off">';html += '</div>';html += '<div style="text-align:' + direction + ';">';html += '<a class="forum-search-option" href="' + searchURL + '&q=">'+translations.options+'</a>';html += '</div>';html += '</div>';html += '<input type="hidden" name="w" value="' + $('#w').val() + '">';html += '<input type="hidden" name="websiteID" value="' + websiteID + '">';html += '<input type="hidden" name="itemUniqueID" value="' + itemUniqueID + '">';html += '<input type="hidden" name="type" value="popover">';html += '</form>';html += '<div class="forum-search-loading text-center" style="display:none;">';html += S123.s123IconToSvg.getHtml('spinner','fa-spin fa-2x primary-color','');html += '</div>';html += '<div class="forum-results-container" style="display:none;"></div>';html += '</div>';var $html = $(html);var $form = $html.find('form');var $resultsContainer = $html.find('.forum-results-container');var $loading = $html.find('.forum-search-loading');var $search = $form.find('.forum-search-input');$form.submit(function(e) {e.preventDefault();});$search.on('keydown', function(event) {var eventKey = event.which;clearTimeout($search.inputFinished);$search.inputFinished = setTimeout( function() {if ( !$search.val() ) {$resultsContainer.slideUp(200).html('');return;}
$resultsContainer.slideUp(200).html('');$loading.fadeIn();Forum_search($form,$resultsContainer,$loading,searchURL,dateTime,Forum_generateSearchResult);$form.find('.forum-search-option').attr('href',searchURL+'&q='+$form.find('[name=q]').val());},500);});$section.find('.forum-search-btn').each(function(key, button){var $button = $(button);if ( isMobileDevice.any() ) {$button.attr('href',searchURL+'&q=').removeAttr('onclick');return false;}
$button.off('click').on('click', function(){var $button = $(this);$(this).popover({container: 'body',html: 'true',content: $html,trigger: 'manual',template: '<div class="popover forum-search" role="tooltip" style="max-width: 100%;"><div class="arrow hidden"></div><div class="popover-content"></div></div>',placement: function(popover, button) {return 'bottom';}});$button.popover('show');$search.focus();$button.on('shown.bs.popover', function () {$(document).on('mousedown.forumDestroyPopover', function ( event ) {if ( $(event.target).closest('.popover.forum-search').length === 0 ) {destroySearchPopover();}});});function destroySearchPopover() {$button.popover('destroy');$(document).off('mousedown.forumDestroyPopover');$(window).off('blur.forumDestroyPopover');$(window).off('scroll.forumDestroyPopover');}});});}
function Forum_search( $form, $resultsContainer, $loading, searchURL, dateTime, callback ) {$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/search.php",data: $form.serialize(),success: function( data ) {var dataObj = jQuery.parseJSON(data);if (callback) callback.call(this,dataObj,$resultsContainer,$loading,searchURL,dateTime);}});}
function Forum_generateSearchResult( resultsData, $resultsContainer, $loading, searchURL, dateTime ) {if ( resultsData.status == 'fail' || resultsData.length === 0 ) {var html = '<div class="text-center"><span>' + resultsData.msg + '</span></div>';var $html = $(html);$loading.fadeOut();$resultsContainer.append($html).slideDown(200);return;}
dateTime = new Date(dateTime);var index = 0;var html = '<ul class="forum-results-list">';html += '<div>';$.each(resultsData.results, function(key,data) {if ( index > 4 ) return false;index = index + 1;var createTime = new Date(data.createTime);var diff = dateTime - createTime;html += '<li>';html += '<a class="search-result background-primary-color-hover" href="'+data.url+'">';html += '<span class="result-topic">';html += '<span>' + data.subject + '</span>';if ( data.categoryName != null && data.categoryName.length > 0 ) {html += '<span>-</span>';html += '<span><b>' + data.categoryName + '</b></span>';}
html += '</span>';html += '<span class="result-body">';html += '<span>' + Forum_calcActivityTime(diff,createTime) + '</span>';html += '<span> - </span>';html += '<span>' + data.message + '</span>';html += '</span>';html += '</a>';html += '</li>';});html += '</div>';html += '</ul>';if ( index < resultsData.results.length ) {html += '<ul class="forum-more-results">';html += '<div>';html += '<li class="text-center">';html += '<a class="search-result background-primary-color-hover" href="' + searchURL + '&q=' + resultsData.query + '">'+translations.seeMore+' '+S123.s123IconToSvg.getHtml('angle-down','','')+'</a>';html += '</li>';html += '</div>';html += '</ul>';}
var $html = $(html);$resultsContainer.append($html);if ( index >= resultsData.results.length ) {$resultsContainer.find('ul.forum-results-list li:last-child').addClass('forum-last-result');}
$loading.fadeOut();$resultsContainer.slideDown(200);return;}
function Forum_getTopics( $container, websiteID, callback, itemUniqueID, hasCategories ) {$(window).scroll(function() {if($(window).scrollTop() == $(document).height() - $(window).height()) {if ( $container.data('is-loading') == 'true' ) return false;var html = '<div class="forum-load-more-loading col-xs-12 text-center">'+S123.s123IconToSvg.getHtml('spinner','fa-spin fa-4x primary-color','')+'</div>';$container.append($(html));Forum_loadTopics($container,websiteID,callback,itemUniqueID,hasCategories);}});}
function Forum_loadTopics( $container, websiteID, callback, itemUniqueID, hasCategories ) {$container.data('is-loading','true');$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/loadTopics.php",data: {w : $('#w').val(),websiteID : websiteID,itemUniqueID : itemUniqueID,page : $container.data('page'),categoryUniqueID : $container.data('category-id')},dataType: "json",success: function( data ) {$container.data('page',parseInt($container.data('page')) + 1);if (callback) callback.call(this,data,$container,websiteID,itemUniqueID,hasCategories);}});}
function Forum_getData( $container, $topics, w, websiteID, categoryUniqueID, hasCategories, callback ) {$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/getForumData.php",data: 'w='+w+'&websiteID='+websiteID+'&categoryUniqueID='+categoryUniqueID,success: function( data ) {var data = jQuery.parseJSON(data);$container.data('date-time',data.dateTime);if (callback) callback.call(this,data,$container,$topics,w,websiteID,categoryUniqueID,hasCategories);}});}
function Forum_ActiveSoftLabelInputs() {$('.newTopicForm .softLabel,#popupEditTopicReply .softLabel').each(function() {var $this = $(this);if ($this.find('input[type="text"],input[type="email"],input[type="number"]').val()!='' || typeof $this.find('input[type="text"],input[type="email"],input[type="number"]').attr('placeholder') !== 'undefined') {$this.find('label').addClass('active');}});$('.newTopicForm .softLabel > label, #popupEditTopicReply .softLabel > label').on('click',function() {var $this = $(this);$this.parents('.softLabel').find('input[type="text"],input[type="email"],input[type="number"]').trigger('focus');});$('.newTopicForm .softLabel > input[type="text"],input[type="email"],input[type="number"], #popupEditTopicReply .softLabel > input[type="text"],input[type="email"],input[type="number"]').on('focus',function() {var $this = $(this);$this.parents('.softLabel').find('label').addClass('active');});$('.newTopicForm .softLabel > input[type="text"],input[type="email"],input[type="number"], #popupEditTopicReply .softLabel > input[type="text"],input[type="email"],input[type="number"]').on('blur',function() {var $this = $(this);if ($this.val()=='' && typeof $this.attr('placeholder') === 'undefined') {$this.parents('.softLabel').find('label').removeClass('active');}});}
jQuery(function($) {ForumModuleInitialize_Topics();});function ForumModuleInitialize_Topics() {$( document ).on( 's123.page.ready', function( event ) {var w = $('#w').val();var $section = $('section.s123-module-forum.forum-topics');$section.each(function( index ) {var $sectionThis = $(this);var $forumContainer = $sectionThis.find('.forum-container');var $infoBtn = $sectionThis.find('.forum-info-btn');var websiteID = $forumContainer.data('website-id');var itemUniqueID = $forumContainer.data('module-unique-id');var categoryUniqueID = $forumContainer.data('category-id') ? $forumContainer.data('category-id') : '' ;var searchURL = $forumContainer.data('search-url');var hasCategories = !jQuery.isEmptyObject($forumContainer.data('categories'));if ( $forumContainer.length > 0 ) {Forum_getData($forumContainer,$forumContainer,w,websiteID,categoryUniqueID,hasCategories,initializeForumTopics);}
Forum_initializeSearch($sectionThis,websiteID,itemUniqueID,searchURL,$forumContainer.data('date-time'));if( window.location.href.indexOf('arrange=categories') === -1 && $forumContainer.find('.topics-subject').length > 11 ) {Forum_getTopics($forumContainer,websiteID,addMoreTopics,itemUniqueID,hasCategories);}
$infoBtn.off('click').click(function(){generateForumInfoPopUp(w,websiteID,categoryUniqueID);});});});}
function addMoreTopics( data, $container, websiteID, itemUniqueID, hasCategories ) {if ( data.status == 'fail' || !data.topics || data.topics.length === 0 ) {var html = '<div class="f-search-no-result"><span><b></b></span></div>';var $html = $(html);if ( data.msg ) {$html.find('span b').html(data.msg);}
$container.append($html);$container.find('.forum-load-more-loading').remove();} else {var w = $('#w').val();var moreTopics = '<div class="moreTopics">' + data.topics + '</div>';var $moreTopics = $(moreTopics);$moreTopics.find('.forum-avatar').each(function(key,value){Forum_initializeClientCard($(value),websiteID,w,itemUniqueID);});Forum_updateActivityDateTime($container.data('date-time'),$moreTopics.find('.topic-last-activity'));Forum_getData($container,$moreTopics,w,websiteID,itemUniqueID,hasCategories,initializeMoreTopics);}}
function initializeTopics( data, $container, $moreTopics, w, websiteID, itemUniqueID, hasCategories ) {$moreTopics.find('.forum-topic').each(function(){var $topic = $(this);var $button = $topic.find('.topic-buttons-container');var $topicTitle = $container.find('.topic-title');if ( (data.loggedIn == 'true' || data.isManagment == true) && data.manager == 'true' ) {var topicID = $button.data('topic-id');var html = '<div class="btn-group">';html += '<span class="rmv-topic-btn">'+S123.s123IconToSvg.getHtml('trash','','')+'</span>';html += '</div>';$html = $(html);initializeTopicsButtons(websiteID,topicID,itemUniqueID,$html);$button.html($html).show();$container.find('.manage-topic-title').show();if ( hasCategories ) {$topicTitle.attr('class', 'topic-title col-sm-2 col-md-3');$container.find('.topics-users').attr('class', 'topics-users col-sm-1 col-md-2');;$topic.find('.forum-category').attr('class', 'forum-category hidden-xs col-sm-2');$topic.find('.topics-subject').attr('class', 'topics-subject col-xs-7 col-sm-2 col-md-3');$topicsAvatar = $topic.find('.topics-avatar-row').each(function (index, value){$value = $(value);if ( $value.hasClass('visible-xs') ) {$value.attr('class', 'topics-avatar-row visible-xs col-xs-2 col-sm-1 col-md-2');}
if ( $value.hasClass('hidden-xs') ) {$value.attr('class', 'topics-avatar-row hidden-xs col-xs-2 col-sm-1 col-md-2');}});} else {$topicTitle.attr('class', 'topic-title col-sm-4 col-md-5');$topic.find('.topics-subject').attr('class', 'topics-subject col-xs-7 col-sm-4 col-md-5');$topic.find('.topics-users').attr('class', 'topics-users col-sm-2 col-md-3');}} else if ( !hasCategories ) {$topicTitle.attr('class', 'topic-title col-sm-6');$topic.find('.topics-subject').attr('class', 'topics-subject col-xs-7 col-sm-6');}});}
function initializeMoreTopics( data, $container, $moreTopics, w, websiteID, itemUniqueID, hasCategories ) {initializeTopics(data,$container,$moreTopics,w,websiteID,itemUniqueID,hasCategories);$container.find('.forum-load-more-loading').remove();$moreTopics.find('.forum-topic').each(function(){$container.append($(this));});$container.data('is-loading','false');}
function initializeForumTopics( data, $container, $moreTopics, w, websiteID, itemUniqueID, hasCategories ) {initializeTopics(data,$container,$moreTopics,w,websiteID,itemUniqueID,hasCategories);generateAddNewTopicBtn(data,$container,$moreTopics,w,websiteID,itemUniqueID);Forum_updateActivityDateTime($container.data('date-time'),$container.find('.topic-last-activity'));$container.find('.forum-avatar').each(function(key,value){Forum_initializeClientCard($(value),websiteID,w,itemUniqueID);});}
function generateAddNewTopicBtn( data, $container, $topics, w, websiteID, itemUniqueID ) {var $newTopicBtn = $container.find('.add-new-topic-btn');var categories = $container.data('categories');var loginURL = $container.data('login-url');var categoryID = $container.data('category-id') ? $container.data('category-id') : '';if ( data.loggedIn == 'true' ) {initializeAddNewTopicBtn(websiteID,itemUniqueID,$newTopicBtn,categories,categoryID);} else {$newTopicBtn.attr('href', loginURL);}}
function initializeAddNewTopicBtn( websiteID, itemUniqueID, $button, categories, categoryID ) {var $addTopicBtn = $button;$addTopicBtn.off('click').click(function() {$.getScript('https://www.google.com/recaptcha/api.js?render=6LcICoEUAAAAAFaNA94im3FfzM5fw1b-1v2aghM7', function() {});var w = $('#w').val();buildPopup('popupNewTopic','',buildNewTopicForm(websiteID,w,itemUniqueID),'',true,false,true,'','');Forum_ActiveSoftLabelInputs();var $popup = $('#popupNewTopic');var $loading = $popup.find('#loading');generateCategoriesBox($popup,categories);if ( categoryID.length > 0 ) {$popup.find('select[name=categoryUniqueID]').val(categoryID);}
Forum_froalaEditorInit($popup,false);$popup.find('input[name=subject]').focus();$popup.find('.newTopicForm').each( function( index ) {var $form = $(this);setTimeout(function() {try {grecaptcha.ready(function() {grecaptcha.execute('6LcICoEUAAAAAFaNA94im3FfzM5fw1b-1v2aghM7', {action: 'users_forum_add_new_topic'})
.then(function(token) {$form.find('#recaptchaToken').val(token);});});} catch(err) {$form.find('#recaptchaToken').val('');}}, 50);$form.validate({errorElement: 'div',errorClass: 'help-block',focusInvalid: true,ignore: ":hidden:not(#topicMessage), [contenteditable='true']:not([name])",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();},submitHandler: function( form ) {var $form = $(form);$form.find('button:submit').prop('disabled', true);$form.hide();$loading.show();$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/addTopic.php",data: $form.serialize(),success: function( data ) {var dataObj = jQuery.parseJSON(data);$loading.hide();if ( dataObj.status == 'done' ) {$form.trigger("reset");buildPopup_CloseAction('popupNewTopic');if ( dataObj.url.length === 0 ) location.reload();window.location.href = dataObj.url;} else {$form.find('button:submit').prop('disabled', false);$form.show();return false;}}});}});});});}
function initializeTopicsButtons ( websiteID, topicID, itemUniqueID, $html ) {if ( !$html ) return;var $rmvTopicBtn = $html.find('.rmv-topic-btn');$rmvTopicBtn.off('click').click(function() {var w = $('#w').val();bootbox.confirm({title: '<span class="text-danger"><b>'+translations.forumDeleteTopicTitle+'</b></span>',message: translations.forumDeleteTopic,backdrop: true,buttons: {confirm: {label: translations.yes,className: 'btn-danger'},cancel: {label: translations.no,className: 'btn-default'}},callback: function( result ) {if ( !result ) return;$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/rmvTopic.php",data: 'w='+w+'&websiteID='+websiteID+'&uniqueID='+topicID+'&itemUniqueID='+itemUniqueID,success: function( data ) {var dataObj = jQuery.parseJSON(data);if ( dataObj.status == 'done' ) window.location.reload();}});}});});}
function buildNewTopicForm(websiteID, w, itemUniqueID) {var direction = $('html').attr('dir') === 'rtl' ? 'right' : 'left';var html = '<form class="newTopicForm" style="max-width: 700px; height: 100%;">';html += '<h1 style="color:#fff;">'+translations.forumCreateNewTopic+'</h1>';html += '<div class="row">';html += '<div class="col-xs-12">';html += '<div class="form-group softLabel">';html += '<label for="subject">'+translations.insertTopicTitle+'</label>';html += '<input type="text" name="subject" class="form-control" required data-msg-required="'+translations.jqueryValidMsgRequire+'" minlength="10" maxlength="255" data-rule-no-spaces-only="true" data-msg-no-spaces-only="'+translations.jqueryValidSpacesOnlyMsg+'">';html += '</div>';html += '</div>';html += '<div class="col-xs-12 categories-list" style="display:none;"></div>';html += '<div class="col-xs-12" style="text-align:'+direction+';">';html += '<div class="form-group softLabel">';html += '<label for="topicMessage">'+translations.insertTopicTitle+'</label>';html += '<textarea class="form-control" id="topicMessage" name="topicMessage" data-editor="froala" data-froala-height="350" data-froala-buttons="about" data-website-id="'+websiteID+'" required data-msg-required="'+translations.jqueryValidMsgRequire+'" data-rule-no-spaces-only="true" data-msg-no-spaces-only="'+translations.jqueryValidSpacesOnlyMsg+'"></textarea>';html += '</div>';html += '</div>';html += '</div>';html += '<button type="submit" class="btn btn-primary btn-block">'+translations.send+'</button>';html += '<input type="hidden" name="w" value="'+w+'">';html += '<input type="hidden" name="itemUniqueID" value="'+itemUniqueID+'">';html += '<input type="hidden" name="websiteID" value="'+websiteID+'">';html += '<input type="hidden" id="recaptchaToken" name="recaptchaToken" value=""/>';html += '</form>';html += '<div id="loading" class="text-center" style="display:none; color:#fff;">';html += S123.s123IconToSvg.getHtml('spinner','fa-spin fa-4x','background-color: #fff;');html += '</div>';return html;}
function generateCategoriesBox( $popup, categories ) {var options = '';$.each (categories, function (categoryUniqueID, category) {options += '<option value="'+categoryUniqueID+'">'+category.name+'</option>';});if ( options.length === 0 ) return;var html = '';html += '<div class="form-group softLabel">';html += '<label for="categoryUniqueID" class="active">'+translations.chooseCategory+'</label>';html += '<select class="form-control" name="categoryUniqueID" required data-msg-required="'+translations.jqueryValidMsgRequire+'">';html += options;html += '</select>';html += '</div>';$html = $(html);$popup.find('.categories-list').append($html).show();}
function generateForumInfoPopUp( w, websiteID, categoryUniqueID ) {var html = '<div class="container-fluid bg-primary">';html += '<div class="row">';html += '<div class="col-xs-12">';html += '<div class="forum-information">';html += '<div id="loading" class="text-center" style="display:none;color:#fff;">';html += S123.s123IconToSvg.getHtml('spinner','fa-spin fa-4x blue','');html += '</div>';html += '</div>';html += '</div>';html += '</div>';html += '</div>';buildPopup('popupForumInformation','',html,'',true,false,true,'','');var $popupForumInformation = $('#popupForumInformation');var $loading = $popupForumInformation.find('#loading');$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/getForumInfo.php",data: 'w='+w+'&websiteID='+websiteID+'&categoryUniqueID='+categoryUniqueID,beforeSend: function(){$loading.show();},complete: function(){$loading.hide();},success: function( data ) {var data = jQuery.parseJSON(data);$popupForumInformation.find('.forum-information').append($(data.info));}});}
jQuery(function($) {ForumExpandedSearchInitialize();});function ForumExpandedSearchInitialize() {$( document ).on( 's123.page.ready', function( event ) {var w = $('#w').val();var $section = $('section.s123-module-forum.forum-expanded-search');$section.each(function( index ) {var $sectionThis = $(this);var $forumSearchContainer = $sectionThis.find('.forum-search-container');var $forumResultscontainer = $sectionThis.find('.forum-results-container');var $container = $sectionThis.find('.expanded-search-container');var websiteID = $container.data('website-id');var itemUniqueID = $container.data('module-unique-id');var dateTime = $container.data('date-time');$sectionThis.find('.forum-search-form').each( function( index ) {var $form = $(this);var $searchInput = $form.find('[name=q]');var $advancedSearch = $form.find('.forum-advanced-search');var $advancedSearchBtn = $form.find('.forum-advanced-search-btn');$searchInput.focus();var $datePicker = $form.find('.fake-input.forum-date-picker');var $hiddenInput = $form.find('.real-input.forum-search-date');var $datePickerIcon = $form.find('.forum-datePicker-icon');var forumSearchCalendar = new calendar_handler();forumSearchCalendar.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);}});$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();},errorPlacement: function(e, element) {$(e).appendTo($(".forum-search-form-group"));},submitHandler: function( form ) {var $form = $(form);$form.find('button:submit').prop('disabled', true);$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/search.php",data: $form.serialize(),beforeSend: function(){$forumResultscontainer.html('');$forumSearchContainer.find('.forum-search-loading').show();},complete: function(){$forumSearchContainer.find('.forum-search-loading').hide();},success: function( data ) {var dataObj = jQuery.parseJSON(data);if ( dataObj.status == 'fail' ) {$forumResultscontainer.html('<div class="f-search-no-result"><span><b>' + dataObj.msg + '</b></span></div>').show();}
if ( dataObj.status == 'good' ) {initializeForumSearchResults(dataObj,$forumResultscontainer,dateTime);$forumResultscontainer.find('.forum-avatar').each(function(key,value){Forum_initializeClientCard($(value),websiteID,w,itemUniqueID);});$forumResultscontainer.slideDown(200);}
$form.find('button:submit').prop('disabled', false);}});return false;}});if ( $searchInput.val().length > 0 ) $form.submit();$advancedSearchBtn.off('click').on('click', function() {$advancedSearch.slideToggle('slow');return false;});});});});}
function generateForumSearchResult() {var html = '<div class="row f-search-result">';html += '<div class="col-xs-12 f-search-bottom-line">';html += '<div class="row">';html += '<div class="col-sm-1 col-xs-2">';html += '<div class="f-search-client-avatar"></div>';html += '</div>';html += '<div class="col-sm-9 col-xs-7">';html += '<div class="f-search-post-title"><a></a></div>';html += '<div class="f-search-category"><span><b></b></span></div>';html += '<div class="f-search-post-time"></div>';html += '<div class="f-search-post-message"></div>';html += '</div>';html += '</div>';html += '</div>';html += '</div>';return html;}
function initializeForumSearchResults( dataObj, $container, dateTime ) {dateTime = new Date(dateTime);var html = '<div class="f-search-header">';html += '<div class="f-search-results">';html += '<span>' + dataObj.results.length + ' ' + dataObj.msg + ' </span>';html += '<span><b>' + dataObj.query + '</b></span>';html += '</div>';html += '<div class="new-topic-btn"></div>';html += '</div>';var $html = $(html);$container.append($html);$.each(dataObj.results, function(key,result) {var html = generateForumSearchResult();var $html = $(html);$html.find('.f-search-post-title a').attr('href',result.url).html(result.subject);$html.find('.f-search-post-message').html(result.message);$html.find('.f-search-client-avatar').append(Forum_setAvatar(result.avatar[0].image,100,result.avatar[0].name,result.avatar[0].color));$html.find('.f-search-client-avatar .avatar-img').addClass('forum-avatar').attr('data-client-id',result.avatar[0].id);if ( result.categoryName != null && result.categoryName.length > 0 ) $html.find('.f-search-category span b').html(result.categoryName).show();var createTime = new Date(result.createTime);var diff = dateTime - createTime;$html.find('.f-search-post-time').data('date-time',result.createTime).html(Forum_calcActivityTime(diff,createTime));$container.append($html);});}
jQuery(function($) {ForumModuleInitialize_Layout2();});function ForumModuleInitialize_Layout2() {$( document ).on( 's123.page.ready', function( event ) {var w = $('#w').val();var $section = $('section.s123-module-forum.layout-2 .forum-topics-list');$section.each(function( index ) {var $sectionThis = $(this);var $loading = $sectionThis.find('.loading');var $topFive = $sectionThis.find('.forum-top-five');var websiteID = $sectionThis.data('website-id');var uniqueID = $sectionThis.data('module-unique-id');if ( $sectionThis.length > 0 ) {$.ajax({type: "POST",url: "/versions/2/wizard/modules/forum/getForumTopics.php",data: 'w='+w+'&websiteID='+websiteID+'&categoryUniqueID=&uniqueID='+uniqueID,success: function( data ) {$data = $(data);$loading.hide();$section.html('').append($data.hide().fadeIn(200));}});}});});}
