window.notificationMessages = []; Help us serve you better & stand to win a $200 Samsung phone & data bundles! Complete a short survey here Complete survey Help us serve you better & stand to win a $200 Samsung phone & data bundles! Complete a short survey here Complete survey Verify Employer Account Now Activate let hasCheckedBrowserAlert = false;
function bannerSlider(initialBanners = []) {
return {
banners: Array.isArray(initialBanners) ? initialBanners : [],
activeSlide: 1,
timer: null,
hydrated: false,
init() {
this.hydrated = true;
this.$nextTick(() => {
this.deferLoop();
});
},
loop() {
if (this.banners.length > 1 && !this.timer) {
this.timer = setInterval(() => {
this.activeSlide = (this.activeSlide % this.banners.length) + 1;
}, 5000);
}
},
deferLoop() {
if (this.banners.length this.loop();
if ("requestIdleCallback" in window) {
requestIdleCallback(start, { timeout: 6000 });
} else {
setTimeout(start, 5000);
}
},
pause() {
if (this.timer) {
clearInterval(this.timer);
this.timer = null;
}
},
resume() {
this.deferLoop();
},
resetLoop() {
if (this.timer) {
clearInterval(this.timer);
this.timer = null;
}
this.deferLoop();
},
setSlide(num) {
this.activeSlide = num;
this.resetLoop();
},
nextSlide() {
if (!this.banners.length) return;
this.activeSlide =
this.activeSlide === this.banners.length
? 1
: this.activeSlide + 1;
this.resetLoop();
},
prevSlide() {
if (!this.banners.length) return;
this.activeSlide =
this.activeSlide === 1
? this.banners.length
: this.activeSlide - 1;
this.resetLoop();
},
addBanner(banner) {
const alreadyExists = this.banners.some(
b => b.banner_type === banner.banner_type,
);
if (!alreadyExists) {
this.banners.unshift(banner);
}
},
deferBrowserAlertBanner() {
const run = () => this.showBrowserAlertBanner();
if ("requestIdleCallback" in window) {
requestIdleCallback(run, { timeout: 8000 });
} else {
setTimeout(run, 6000);
}
},
showBrowserAlertBanner() {
const maxRetries = 10;
const retryInterval = 300;
const browserAlertBanner = {
icon: "speakerphone",
banner_text: Authorise this browser to receive instant browser alerts.,
banner_cta_event: "onesignal_subscribe",
banner_type: "browser_alert",
};
return new Promise((resolve) => {
let retries = 0;
const interval = setInterval(() => {
if (typeof window.checkIfHasOnesignalPlayerId === "function") {
clearInterval(interval);
if (!hasCheckedBrowserAlert) {
hasCheckedBrowserAlert = true;
window.checkIfHasOnesignalPlayerId((result) => {
if (result) {
this.addBanner(browserAlertBanner);
resolve(browserAlertBanner);
} else {
resolve(false);
}
});
} else {
resolve(false);
}
} else {
retries++;
if (retries >= maxRetries) {
clearInterval(interval);
resolve(false);
}
}
}, retryInterval);
});
},
hideBrowserAlertBanner() {
this.banners = this.banners.filter(
banner => banner.banner_type !== "browser_alert",
);
this.activeSlide = 1;
},
};
} Find a Job + + + + Search const TopSearch = {
handleSubmit: function (event) {
event.preventDefault();
event.stopPropagation();
const form = event.target;
const getValue = (name) => {
if (form[name]) {
if (form[name].type) {
if (["select-one", "text", "hidden"].indexOf(form[name].type) > -1) {
return form[name].value;
}
if (["checkbox", "radio"].indexOf(form[name].type) > -1 && form[name].checked) {
return form[name].value;
}
} else if (form[name].length) {
return form[name].value;
}
}
return "";
};
const experienceLevel = getValue("experience[]") || getValue("experience");
const jobFunction = getValue("job_function[]") || getValue("job_function");
const industry = getValue("industry[]") || getValue("industry");
const location = getValue("location[]") || getValue("location");
const workType = getValue("work_type");
const term = getValue("q");
const sortBy = getValue("sort_by");
// If the logged in user is authenticated
// Append authenticated value to make url unique/different to logged out url
// same action is happening in SearchFilterViewComposer
// line 589 in the multiSearchFilterHref function
const authenticated = document.getElementById("authenticated").value;
let toUrl = "";
if (industry.trim() && jobFunction.trim()) {
const segments = [jobFunction, location, workType].filter((x) => x);
toUrl = ${segments.join("/")}?industry=${industry};
} else {
const segments = [jobFunction, industry, location, workType].filter((x) => x);
toUrl = segments.join("/");
}
if (experienceLevel) {
toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}experience=${experienceLevel};
}
if (term.trim()) {
toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}q=${encodeURI(term.replace(" ", "+"))};
}
if (sortBy.trim()) {
toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}sort=${sortBy};
}
if (authenticated === "true") {
toUrl += ${toUrl.indexOf("?") === -1 ? "?" : "&"}authenticated=${Date.now()};
}
const wholeUrl = `${form.getAttribute("action")}/${toUrl.to
---
**
[Click the Apply button below to see the contact details]