var breeze_prefetch = {"local_url":"https://bidbat.com","ignore_remote_prefetch":"1","ignore_list":["wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
Skip to contentWhat’s in It for You What You’ll Be Doing What You Bring Sound Like You? If you live and breathe design and want your creativity to make a global impact, apply today and join Bidbat – a team that believes great design isn’t just seen, but felt.
What’s in It for You What You’ll Be Doing What You Bring Sound Like You? If you’re passionate about ecommerce and want to help brands reach their full potential, apply today and join Bidbat – where innovation, strategy, and execution come together to redefine global business support.
What’s in It for You What You’ll Be Doing What You Bring Sound Like You? If you’re passionate about empowering people, building talent pipelines, and driving growth through learning, we’d love to hear from you. Apply now and join Bidbat – a global team that’s redefining the future of virtual assistance.
What’s in It for You What You’ll Be Doing What You Bring Sound Like You? If you’re passionate about building relationships, solving problems, and helping clients succeed, we’d love to hear from you. Apply now and be part of a global team that’s reshaping how businesses get things done.
What’s in It for You What You’ll Be Doing What You Bring Sound Like You? If you’re passionate about paid advertising and want to manage campaigns that directly shape global businesses, apply now and join Bidbat – where data meets creativity to fuel growth.
https://bidbat.com/wp-includes/js/jquery/jquery.min.js
https://bidbat.com/wp-includes/js/jquery/jquery-migrate.min.js
https://bidbat.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
// Function to add new logos dynamically with SVG
function addNewLogo(logoName, svgContent = null) {
const marqueeWrapper = document.querySelector('.marquee-wrapper');
const existingLogos = document.querySelectorAll('.marquee-item');
const logoCount = existingLogos.length / 2; // Divide by 2 because of duplication
// Default SVG content if none provided
const defaultSvg = `
<svg class="logo" viewBox="0 0 140 60" fill="currentColor">
<rect x="15" y="20" width="20" height="20" rx="3" fill="currentColor"/>
<text x="45" y="25" font-family="Arial" font-size="12" font-weight="bold">${logoName}</text>
<text x="45" y="38" font-family="Arial" font-size="6">Brand Logo</text>
</svg>
`;
// Create new logo element
const newLogoHtml = `
<div class="marquee-item">
${svgContent || defaultSvg}
</div>
`;
// Add to both sets (original and duplicate)
const middleIndex = Math.floor(existingLogos.length / 2);
existingLogos[middleIndex - 1].insertAdjacentHTML('afterend', newLogoHtml);
existingLogos[existingLogos.length - 1].insertAdjacentHTML('afterend', newLogoHtml);
// Update animation width
const newLogoCount = logoCount + 1;
const itemWidth = window.innerWidth <= 480 ? 120 : window.innerWidth <= 768 ? 150 : 200;
marqueeWrapper.style.width = `calc(${itemWidth}px * ${newLogoCount * 2})`;
// Update animation
updateAnimation(newLogoCount, itemWidth);
}
// Function to add logo with custom SVG
function addCustomSVGLogo(svgContent) {
const marqueeWrapper = document.querySelector('.marquee-wrapper');
const existingLogos = document.querySelectorAll('.marquee-item');
const logoCount = existingLogos.length / 2;
const newLogoHtml = `
<div class="marquee-item">
${svgContent}
</div>
`;
const middleIndex = Math.floor(existingLogos.length / 2);
existingLogos[middleIndex - 1].insertAdjacentHTML('afterend', newLogoHtml);
existingLogos[existingLogos.length - 1].insertAdjacentHTML('afterend', newLogoHtml);
const newLogoCount = logoCount + 1;
const itemWidth = window.innerWidth <= 480 ? 120 : window.innerWidth <= 768 ? 150 : 200;
marqueeWrapper.style.width = `calc(${itemWidth}px * ${newLogoCount * 2})`;
updateAnimation(newLogoCount, itemWidth);
}
function updateAnimation(logoCount, itemWidth) {
const styleSheet = document.styleSheets[0];
const keyframeRule = Array.from(styleSheet.cssRules).find(rule =>
rule.type === CSSRule.KEYFRAMES_RULE && rule.name === 'scroll'
);
if (keyframeRule) {
styleSheet.deleteRule(Array.from(styleSheet.cssRules).indexOf(keyframeRule));
}
const newKeyframe = `
@keyframes scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-${itemWidth * logoCount}px); }
}
`;
styleSheet.insertRule(newKeyframe, styleSheet.cssRules.length);
}
// Example: Add new logo after 5 seconds
// setTimeout(() => {
// addNewLogo('Microsoft');
// }, 5000);
// Handle responsive changes
window.addEventListener('resize', () => {
const logoCount = document.querySelectorAll('.marquee-item').length / 2;
const itemWidth = window.innerWidth <= 480 ? 120 : window.innerWidth <= 768 ? 150 : 200;
document.querySelector('.marquee-wrapper').style.width = `calc(${itemWidth}px * ${logoCount * 2})`;
updateAnimation(logoCount, itemWidth);
});
window.addEventListener('load', function() {
const blurElements = document.querySelectorAll('.parallax-scroll');
// Clear zone settings - desktop and mobile
const blurSettings = {
desktop: {
clearZone: 300, // Center - 300px clear zone
maxBlur: 5
},
mobile: {
clearZone: 250, // Mobile center 150px clear zone
maxBlur: 3
}
};
const isMobile = window.innerWidth <= 768;
const currentSettings = isMobile ? blurSettings.mobile : blurSettings.desktop;
function updateBlur() {
const scrollY = window.pageYOffset;
const windowHeight = window.innerHeight;
const viewportCenter = scrollY + windowHeight / 2;
blurElements.forEach(element => {
const rect = element.getBoundingClientRect();
const elementTop = rect.top + scrollY;
const elementHeight = rect.height;
const elementCenter = elementTop + elementHeight / 2;
const distanceFromCenter = Math.abs(viewportCenter - elementCenter);
let blur = 0;
if (distanceFromCenter > currentSettings.clearZone) {
const blurDistance = distanceFromCenter - currentSettings.clearZone;
const blurProgress = Math.min(1, blurDistance / currentSettings.clearZone);
blur = blurProgress * currentSettings.maxBlur;
}
element.style.filter = `blur(${blur}px)`;
});
}
let isScrolling = false;
function handleScroll() {
if (!isScrolling) {
requestAnimationFrame(() => {
updateBlur();
isScrolling = false;
});
isScrolling = true;
}
}
window.addEventListener('scroll', handleScroll, { passive: true });
updateBlur();
});
document.addEventListener("DOMContentLoaded", function () {
if (typeof jQuery !== "undefined") {
jQuery(function ($) {
$(window).scroll(function () {
var scrollTop = $(window).scrollTop();
if (scrollTop > 100) {
$(".header-wrapper").addClass("fixed");
} else {
$(".header-wrapper").removeClass("fixed");
}
});
});
} else {
console.log("jQuery is not loaded!");
}
});
// Add interactive click effect
const container = document.querySelector('.custom-icon-container');
container.addEventListener('click', function() {
// Create ripple effect on click
const ripple = document.createElement('div');
ripple.style.position = 'absolute';
ripple.style.width = '100%';
ripple.style.height = '100%';
ripple.style.borderRadius = '50%';
ripple.style.border = '3px solid rgba(255, 75, 51, 0.8)';
ripple.style.animation = 'ripple 0.6s ease-out';
ripple.style.pointerEvents = 'none';
this.appendChild(ripple);
setTimeout(() => {
ripple.remove();
}, 600);
});
document.addEventListener("DOMContentLoaded", function () {
const btn = document.getElementById("schedule-demo");btn.addEventListener("click", function (e) {
e.preventDefault(); // prevent page reload
Calendly.initPopupWidget({
url: 'https://calendly.com/bidbatva/bidbat',
prefill: {},
pageSettings: {
backgroundColor: 'ffffff',
hideEventTypeDetails: false,
hideLandingPageDetails: false,
primaryColor: '0073e6',
textColor: '000000'
}
});
return false;
});
});
const lazyloadRunObserver = () => {
const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
entries.forEach( ( entry ) => {
if ( entry.isIntersecting ) {
let lazyloadBackground = entry.target;
if( lazyloadBackground ) {
lazyloadBackground.classList.add( 'e-lazyloaded' );
}
lazyloadBackgroundObserver.unobserve( entry.target );
}
});
}, { rootMargin: '200px 0px 200px 0px' } );
lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
lazyloadBackgroundObserver.observe( lazyloadBackground );
} );
};
const events = [
'DOMContentLoaded',
'elementor/lazyload/observe',
];
events.forEach( ( event ) => {
document.addEventListener( event, lazyloadRunObserver );
} );
https://bidbat.com/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js
https://bidbat.com/wp-content/plugins/elementor/assets/js/frontend-modules.min.js
https://bidbat.com/wp-includes/js/jquery/ui/core.min.js
var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":576,"lg":992,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":575,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":767,"default_value":880,"direction":"max","is_enabled":true},"tablet":{"label":"Tablet Portrait","value":991,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1199,"default_value":1200,"direction":"max","is_enabled":true},"laptop":{"label":"Laptop","value":1300,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.30.3","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_optimized_markup":true,"theme_builder_v2":true,"nested-elements":true,"e_element_cache":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"cloud-library":true,"e_opt_in_v4_page":true,"mega-menu":true},"urls":{"assets":"https:\/\/bidbat.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/bidbat.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/bidbat.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"20371d397d"},"swiperClass":"swiper","settings":{"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_mobile_extra","viewport_tablet","viewport_tablet_extra"],"viewport_mobile":575,"viewport_mobile_extra":767,"viewport_tablet":991,"viewport_tablet_extra":1199,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":0,"title":"career","excerpt":"<p>current job vacancies<\/p>\n"}};
//# sourceURL=elementor-frontend-js-before
https://bidbat.com/wp-content/plugins/elementor/assets/js/frontend.min.js
https://bidbat.com/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js
https://bidbat.com/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js
https://bidbat.com/wp-includes/js/dist/hooks.min.js
https://bidbat.com/wp-includes/js/dist/i18n.min.js
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/bidbat.com\/wp-admin\/admin-ajax.php","nonce":"d69e483522","urls":{"assets":"https:\/\/bidbat.com\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/bidbat.com\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_US","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/bidbat.com\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}};
//# sourceURL=elementor-pro-frontend-js-before
https://bidbat.com/wp-content/plugins/elementor-pro/assets/js/frontend.min.js
https://bidbat.com/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js
gsap.registerPlugin(ScrollTrigger);document.querySelectorAll(".heading-container .heading-animation").forEach((heading) => {
const split = new SplitType(heading, {
types: "words, chars",
});gsap.timeline({
scrollTrigger: {
trigger: heading.closest(".heading-container"),
start: "top 68%",
end: "+=60%",
scrub: 0.5,
},
}).to(split.chars, {
color: "#071D3B",
stagger: 0.1,
duration: 0.3,
ease: "none",
});
});
//reveal
gsap.utils.toArray('.jsimg, .jscontent, .jsblock').forEach((element, index) => {
gsap.to(element, {
clipPath: 'inset(0% 0% 0% 0%)',
duration: 1.8,
ease: "power3.out",
delay: index * 0.15,
scrollTrigger: {
trigger: element,
start: 'top 80%'
}
});
});
document.addEventListener('DOMContentLoaded', function() {
// Get elements
const toggleSwitch = document.getElementById('toggleSwitch');
const toggleLabelLeft = document.querySelector('.toggle-label-left');
const toggleLabelRight = document.querySelector('.toggle-label-right');
const hourlyElements = document.querySelectorAll('.hourly');
const monthlyElements = document.querySelectorAll('.monthly');
let isMonthly = false;// Toggle switch functionality
toggleSwitch.addEventListener('click', function() {
isMonthly = !isMonthly;
if (isMonthly) {
// Switch to monthly
toggleSwitch.classList.add('active');
toggleLabelLeft.classList.remove('active');
toggleLabelRight.classList.add('active');
// Show/hide price elements
hourlyElements.forEach(el => el.style.display = 'none');
monthlyElements.forEach(el => el.style.display = 'inline');
} else {
// Switch to hourly
toggleSwitch.classList.remove('active');
toggleLabelLeft.classList.add('active');
toggleLabelRight.classList.remove('active');
// Show/hide price elements
hourlyElements.forEach(el => el.style.display = 'inline');
monthlyElements.forEach(el => el.style.display = 'none');
}
});// Category Tab Switching
const categoryTabs = document.querySelectorAll('.category-tab');
const pricingContents = document.querySelectorAll('.pricing-content');categoryTabs.forEach(tab => {
tab.addEventListener('click', function() {
const category = this.getAttribute('data-category');
// Update active tab
categoryTabs.forEach(t => t.classList.remove('active'));
this.classList.add('active');// Show corresponding content
pricingContents.forEach(content => {
if (content.getAttribute('data-category') === category) {
content.classList.add('active');
} else {
content.classList.remove('active');
}
});
});
});// Select Package Button Actions
const selectBtns = document.querySelectorAll('.select-btn');
selectBtns.forEach(btn => {
btn.addEventListener('click', function() {
alert('Package selected! Redirecting to checkout...');
// Add your checkout logic here
});
});
});
jQuery(document).ready(function($) {
function addReadMore() {
$('.review-wrap h4').each(function() {
if ($(this).next('.read-more-btn').length > 0) {
return; // Already processed, skip
}
var $content = $(this);
var maxLines = 4;
var lineHeight = parseInt($content.css('line-height'));
var maxHeight = lineHeight * maxLines;
var actualHeight = $content[0].scrollHeight;
if (actualHeight > maxHeight) {
$content.css({
'max-height': maxHeight + 'px',
'overflow': 'hidden',
'position': 'relative'
});
$content.after('<span class="read-more-btn" style="color: #FF4B33; cursor: pointer; font-weight: 600; display: inline-block; margin-top: 10px;">Read More</span>');
$content.next('.read-more-btn').on('click', function() {
if ($content.css('max-height') !== 'none') {
$content.css('max-height', 'none');
$(this).text('Read Less');
} else {
$content.css('max-height', maxHeight + 'px');
$(this).text('Read More');
}
});
}
});
}addReadMore();
setTimeout(function() {
addReadMore();
}, 500);
$(document).on('click', '.swiper-button-next, .swiper-button-prev, .elementor-swiper-button', function() {
setTimeout(function() {
addReadMore();
}, 300);
});$(document).on('click', '.swiper-pagination-bullet', function() {
setTimeout(function() {
addReadMore();
}, 300);
});
});