/home/bdqbpbxa/demo-subdomains/homesearch.goodface.com.ua/frontend/js/script.js
// Custom scrollbar initialization
$(document).ready(function () {
if ($(".--custom-scrollbar").length) {
$(".--custom-scrollbar").each(function () {
$(this).overlayScrollbars({
className: "os-theme-dark",
scrollbars: {
clickScrolling: true,
},
});
});
}
});
// Set default value to dropdown
$(document).ready(function () {
if ($(".--dropdown").length) {
$(".--dropdown").each(function () {
if (!$(this).find(".--dropdown__clear").length) {
let text = $(this).find(".--dropdown__list-item").eq(0).text().trim();
if ($(this).find(".--dropdown__value .--dropdown__value-text").length) {
$(this).find(".--dropdown__value-text").html(text);
} else {
$(this).find(".--dropdown__value").html(text);
}
$(this).find("input").attr("value", text).change();
}
});
}
});
// Show file name
$(document).on("change", 'input[type="file"]', function () {
let container = $(this).closest(".file-uploader");
let file = $(this).val();
if (file) {
let fileName = file.split("/").pop().split("\\").pop();
container.find(".file-uploader__content").text(fileName);
container.addClass("-file-uploaded");
} else {
container.removeClass("-file-uploaded");
}
});
// Check header color on load
let headerDefaultClass = false;
$(document).ready(function () {
let header = $(".header");
if (header.data("default-color") === "white") {
headerDefaultClass = "-white-mode";
header.addClass("-white-mode");
}
});
// Fill Header after scroll
// $(document).ready(addHeaderBg);
// $(window).scroll(addHeaderBg);
let lastScroll = 0;
$(window).on("scroll", function () {
let header = $(".header");
let scrollTop = $(window).scrollTop();
if (scrollTop > 0) {
header.addClass("-has-bg");
if (!headerDefaultClass) {
header.addClass("-white-mode");
}
} else {
if (!$("body").hasClass("-scroll-lock")) {
header.removeClass("-has-bg");
if (!headerDefaultClass) {
header.removeClass("-white-mode");
}
}
}
if (scrollTop > lastScroll) {
if (scrollTop - lastScroll === scrollTop || scrollTop <= 0) {
} else {
header.addClass("-hide");
}
} else {
header.removeClass("-hide");
}
lastScroll = scrollTop;
});
// Add shadow to bottom block on mob
function addShadowToButton() {
const mobileMenu = $(".mobile-menu__list");
if (mobileMenu.length) {
let bottomBlock = mobileMenu.closest(".mobile-menu").find(".mobile-menu__bottom");
if (mobileMenu[0].scrollHeight > mobileMenu[0].clientHeight) {
bottomBlock.addClass("-has-shadow");
} else {
bottomBlock.removeClass("-has-shadow");
}
}
}
$(window).on("load resize", addShadowToButton);
fullTransitionendCallback(".mobile-menu__list .header-dropdown__visible", addShadowToButton, "color");
// Open/close mobile menu
$(document).on("click", ".open-mobile-menu", function () {
if ($(".mobile-menu").hasClass("-active")) {
unlockScroll();
} else {
lockScroll();
}
$(".mobile-menu").toggleClass("-active");
$(".mobile-menu-bg").toggleClass("-active");
});
$(document).on("click", ".mobile-menu-bg.-active", function () {
unlockScroll();
$(".mobile-menu").toggleClass("-active");
$(".mobile-menu-bg").toggleClass("-active");
});
// Open hovers dropdown on mob
$(document).on("click", ".--hover-dropdown", function () {
$(this).toggleClass("-active");
});
customClickOutsideCallback(".--hover-dropdown.-active", function () {
$(".--hover-dropdown.-active").removeClass("-active");
});
// Callback after load all child images
function onLoadChildImages(el, callback) {
el.data("loaded-images", "0");
const images = el.find("img");
const imagesCount = images.length;
images.on("load", function () {
$(this).outerWidth();
if (!$(this).hasClass("-loaded")) {
let loadedImages = Number(el.data("loaded-images"));
loadedImages++;
if (loadedImages === imagesCount) {
setTimeout(() => {
if (callback) callback();
}, 100);
} else {
el.data("loaded-images", loadedImages);
}
} else {
setTimeout(() => {
if (callback) callback();
}, 100);
}
});
}
// Conveyor line functionality
const conveyor = $(".conveyor-belt__belt");
function conveyorReady(conveyor) {
let thisConveyor = conveyor;
const part = thisConveyor.find(".conveyor-belt__belt-part");
const partWidth = part.outerWidth();
const windowWidth = window.screen.width;
let partDublicateCount;
let partHtml = part[0].outerHTML;
let appendHtml = "";
if (partWidth >= windowWidth) {
partDublicateCount = 1;
} else {
partDublicateCount = Math.ceil(windowWidth / partWidth) - 1;
}
for (var i = 0; i < partDublicateCount; i++) {
appendHtml += partHtml;
}
thisConveyor.append(appendHtml);
lazyload(".conveyor-belt__belt");
startConveyorAnimation(thisConveyor, partWidth);
}
function startConveyorAnimation(conveyor, partWidth) {
let index = 0.7;
if (!isPc) {
index = 0.9;
}
// const speed = index * (partWidth / 100);
const speed = 18;
const animationVal = `conveyor-part ${speed}s linear infinite`;
conveyor.find(".conveyor-belt__belt-part").css({
animation: animationVal,
});
}
// Conveyor start
conveyor.each(function () {
const conveyor = $(this);
onLoadChildImages(conveyor, function () {
conveyorReady(conveyor);
});
});
function swiperInit() {
let swiperContainer = $(".testimonials");
if (swiperContainer.length) {
let testimonialsSwiper = new Swiper(swiperContainer[0], {
slidesPerView: 1,
spaceBetween: 66,
speed: 900,
autoHeight: true,
navigation: {
nextEl: swiperContainer.find(".testimonials__navigation-button.swiper-button-next")[0],
prevEl: swiperContainer.find(".testimonials__navigation-button.swiper-button-prev")[0],
},
pagination: {
el: swiperContainer.find(".swiper-pagination")[0],
type: "bullets",
clickable: true,
},
breakpoints: {
760: {
spaceBetween: 80,
},
},
});
}
}
$(window).on("load", swiperInit);
// Open/close modal windows
$(document).on("click", ".open-modal", function () {
openModalWindow($(this));
});
$(document).on("click", ".modal-window__close", closeModalWindow);
$(document).on("click", ".modal-window__video-video", function () {
let video = $(this).find("video")[0];
if ($(this).hasClass("-active")) {
video.pause();
} else {
video.play();
}
$(this).toggleClass("-active");
});
function openModalWindow(button) {
let modalWrapper = $(".modals-wrapper");
let modalName = button.data("to-modal");
let modalWindow = modalWrapper.find($(`.modal-window[data-modal-name="${modalName}"]`));
if (modalWindow.length) {
lockScroll();
modalWindow.addClass("-active");
modalWrapper.addClass("-active");
lazyload(modalWindow);
}
}
function closeModalWindow() {
let activeModal = $(".modal-window.-active");
if ($(".modals-wrapper.-active").length) {
let iframe = activeModal.find("iframe");
activeModal.find(".modal-window__video-video.-active").click();
iframe.attr("src", iframe.attr("src"));
$(".modals-wrapper.-active").removeClass("-active");
activeModal.removeClass("-active");
unlockScroll();
}
}
customClickOutsideCallback(".modal-window", function (e, selector) {
closeModalWindow();
});
// ROI number formatted
function formatNumber(number) {
return new Intl.NumberFormat("en-US").format(number);
}
function deFormatNumber(number) {
return parseFloat(number.replaceAll(",", ""));
}
$(".calculator-question-box input").on("input", function () {
this.value = this.value.replace(/[^\d.]/g, "");
this.value = this.value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
getAllNumbers();
calculatingROI();
});
function calculatorReady() {
let container = $(".calculator-item-result");
if (container.length) {
container.each(function () {
let text = formatNumber($(this).find(".result span").html());
$(this).find(".result span").html(text);
});
}
}
$(document).ready(function () {
calculatorReady();
});
// ROI calculator
const calculatingObj = {};
function getAllNumbers() {
calculatingObj.targetTurnover = deFormatNumber($(".input-box[data-property-name='target-turnover'] input").val());
calculatingObj.averageFee = deFormatNumber($(".input-box[data-property-name='average-fee'] input").val());
calculatingObj.saleConversion = deFormatNumber($(".input-box[data-property-name='sale-conversion'] input").val());
calculatingObj.valuationConversionRate = deFormatNumber(
$(".input-box[data-property-name='valuation-conversion-rate'] input").val()
);
calculatingObj.numberOfBranches = deFormatNumber(
$(".input-box[data-property-name='number-of-branches'] input").val()
);
calculatingObj.individualLetterPrice = deFormatNumber(
$('.calculator-item-result[data-property-name="individual-letter-price"] .result span').html()
);
calculatingObj.branchSubscription = deFormatNumber(
$('.calculator-item-result[data-property-name="monthly-cost-per-branch"] .result span').html()
);
}
function calculatingROI() {
calculatingObj.salesNeeded = Math.ceil(calculatingObj.targetTurnover / calculatingObj.averageFee);
calculatingObj.instructionsNeeded = Math.ceil((calculatingObj.salesNeeded / calculatingObj.saleConversion) * 100);
calculatingObj.valuationsNeeded = Math.ceil(
(calculatingObj.instructionsNeeded / calculatingObj.valuationConversionRate) * 100
);
calculatingObj.targetedProspectingLetters = calculatingObj.valuationsNeeded * 90;
calculatingObj.monthlyTargetedProspectingLetters = calculatingObj.targetedProspectingLetters / 12;
calculatingObj.monthlyTargetedProspectingLettersCost =
calculatingObj.monthlyTargetedProspectingLetters * calculatingObj.individualLetterPrice;
calculatingObj.monthlySubscriptionCost = calculatingObj.branchSubscription * calculatingObj.numberOfBranches;
calculatingObj.monthlyAllPrice =
calculatingObj.monthlySubscriptionCost + calculatingObj.monthlyTargetedProspectingLettersCost;
calculatingObj.yearsTargetedProspectingLettersCost = calculatingObj.monthlyTargetedProspectingLettersCost * 12;
calculatingObj.yearsSubscriptionCost = calculatingObj.monthlySubscriptionCost * 12;
calculatingObj.yearsAllPrice =
calculatingObj.yearsSubscriptionCost + calculatingObj.yearsTargetedProspectingLettersCost;
calculatingObj.roiInPercent = Math.round((calculatingObj.targetTurnover / calculatingObj.yearsAllPrice) * 100);
calculatingObj.roiInX = Math.round(calculatingObj.targetTurnover / calculatingObj.yearsAllPrice);
checkResultStatus();
DisplayROIResult();
}
function checkResultStatus() {
let statusContainer = $("[data-can-has-status]");
statusContainer.each(function () {
$(this).removeClass("-negative -positive");
});
if (calculatingObj.roiInPercent < 100 || calculatingObj.roiInPercent === "NaN") {
calculatingObj.roiInPercent = calculatingObj.roiInPercent - 100;
calculatingObj.roiInX = calculatingObj.roiInPercent / 100;
statusContainer.each(function () {
$(this).addClass("-negative");
});
} else if (calculatingObj.roiInPercent > 100) {
statusContainer.each(function () {
$(this).addClass("-positive");
});
} else if (calculatingObj.roiInPercent === 100) {
statusContainer.each(function () {
$(this).removeClass("-negative -positive");
});
}
}
function DisplayROIResult() {
let globalResult = $(".calculator-result__global .counter");
let resultInPercent = $('.calculator-item-result[data-property-name="return-on-investment-percent"] .result span');
let resultInX = $('.calculator-item-result[data-property-name="return-on-investment-x"] .result span');
let monthlyGlobalResult = $('.calculator-item-result[data-property-name="result-per-month"] .result span');
let period = $(".calculator-top-result__dropdown input").val();
let monthlySubscriptionCost = $(
'.calculator-item-result[data-property-name="monthly-subscription-cost"] .result span'
);
let monthlyLetterCost = $('.calculator-item-result[data-property-name="monthly-letter-cost"] .result span');
let targetedProspectingLetters = $(
'.calculator-item-result[data-property-name="targeted-prospecting-letters"] .result span'
);
let monthlyTargetedProspectingLetters = $(
'.calculator-item-result[data-property-name="monthly-targeted-prospecting-letters"] .result span'
);
let sales = $('.calculator-item-result[data-property-name="sales"] .result span');
let instructions = $('.calculator-item-result[data-property-name="instructions"] .result span');
let valuations = $('.calculator-item-result[data-property-name="valuations"] .result span');
if (period === "per year") {
displayROIResultItem(calculatingObj.yearsAllPrice, globalResult);
} else {
displayROIResultItem(calculatingObj.monthlyAllPrice, globalResult);
}
displayROIResultItem(calculatingObj.roiInPercent, resultInPercent);
displayROIResultItem(calculatingObj.roiInX, resultInX);
displayROIResultItem(calculatingObj.monthlyAllPrice, monthlyGlobalResult);
displayROIResultItem(calculatingObj.monthlyTargetedProspectingLettersCost, monthlyLetterCost);
displayROIResultItem(calculatingObj.targetedProspectingLetters, targetedProspectingLetters);
displayROIResultItem(calculatingObj.monthlyTargetedProspectingLetters, monthlyTargetedProspectingLetters);
displayROIResultItem(calculatingObj.salesNeeded, sales);
displayROIResultItem(calculatingObj.instructionsNeeded, instructions);
displayROIResultItem(calculatingObj.valuationsNeeded, valuations);
displayROIResultItem(calculatingObj.monthlySubscriptionCost, monthlySubscriptionCost);
}
function displayROIResultItem(number, place) {
if (number === "NaN" || !number || !isFinite(number)) {
number = 0;
}
place.html(formatNumber(number));
}
$(".calculator-top-result__dropdown input").change(calculatingROI);
// ROI result on mobile
function ROIResultReady() {
let allResultContainer = $(".calculator-content__right");
if (allResultContainer.length) {
let visiblePartHeight = allResultContainer.find(".calculator-top-result").outerHeight();
allResultContainer.css({
height: `${visiblePartHeight}px`,
});
}
}
fullTransitionendCallback(
".calculator-content__right",
function (e) {
if (!isPc) {
const accordion = $(e.target).closest(".calculator-content__right");
const isOpen = accordion.hasClass("-open");
if (isOpen) {
accordion.css("height", "auto");
}
}
},
"height"
);
$(document).ready(ROIResultReady);
if ($(".calculator-content__opener").length) {
$(".calculator-content__opener").swipe({
swipe: function (event, direction, distance, duration, fingerCount, fingerData) {
let allResultContainer = $(".calculator-content__right");
let allResultHeight = allResultContainer.find(".calculator-content__right-content").outerHeight();
let visiblePartHeight = allResultContainer.find(".calculator-top-result").outerHeight();
if (!allResultContainer.hasClass("-open") && direction === "up") {
if (allResultHeight > window.innerHeight) {
let innerHeight = parseInt(document.documentElement.style.getPropertyValue("--window-inner-height"));
allResultHeight = innerHeight - 120;
}
allResultContainer.addClass("-open");
allResultContainer.css({
height: allResultHeight,
});
} else if (allResultContainer.hasClass("-open") && direction === "down") {
allResultContainer.removeClass("-open");
allResultContainer.css({
height: allResultHeight,
});
allResultContainer.outerWidth();
allResultContainer.css({
height: `${visiblePartHeight}px`,
});
}
},
threshold: 0,
});
}
$(document).ready(function () {
if ($(".vacancy-title").length) {
let text = $("h1").html();
$(".vacancy-title").val(text).change();
}
});