(function () {
	function getHash(domain) {
		return btoa(domain).replace(/[a-z]/gi, function (c) {
			return String.fromCharCode(
				(c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26
			);
		});
	}

	function getDeviceType() {
		var device = (function () {
			var e = /iPhone/i,
				i = /iPod/i,
				n = /iPad/i,
				o = /\biOS-universal(?:.+)Mac\b/i,
				a = /\bAndroid(?:.+)Mobile\b/i,
				r = /Android/i,
				t = /(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,
				d = /Silk/i,
				b = /Windows Phone/i,
				l = /\bWindows(?:.+)ARM\b/i,
				p = /BlackBerry/i,
				v = /BB10/i,
				c = /Opera Mini/i,
				h = /\b(CriOS|Chrome)(?:.+)Mobile/i,
				s = /Mobile(?:.+)Firefox\b/i;
			return (function (u) {
				var w = (u =
					u ||
					("undefined" != typeof navigator ? navigator.userAgent : "")).split(
					"[FBAN"
				);
				void 0 !== w[1] && (u = w[0]),
					void 0 !== (w = u.split("Twitter"))[1] && (u = w[0]);
				var f = (function (e) {
						return function (i) {
							return i.test(e);
						};
					})(u),
					M = {
						apple: {
							phone: f(e) && !f(b),
							ipod: f(i),
							tablet: !f(e) && f(n) && !f(b),
							universal: f(o),
							device: (f(e) || f(i) || f(n)) && !f(b),
						},
						amazon: {
							phone: f(t),
							tablet: !f(t) && f(d),
							device: f(t) || f(d),
						},
						android: {
							phone: (!f(b) && f(t)) || (!f(b) && f(a)),
							tablet: !f(b) && !f(t) && !f(a) && (f(d) || f(r)),
							device:
								(!f(b) && (f(t) || f(d) || f(a) || f(r))) || f(/\bokhttp\b/i),
						},
						windows: { phone: f(b), tablet: f(l), device: f(b) || f(l) },
						other: {
							blackberry: f(p),
							blackberry10: f(v),
							opera: f(c),
							firefox: f(s),
							chrome: f(h),
							device: f(p) || f(v) || f(c) || f(s) || f(h),
						},
						any: !1,
						phone: !1,
						tablet: !1,
					};
				return (
					(M.any =
						M.apple.universal ||
						M.apple.device ||
						M.android.device ||
						M.windows.device ||
						M.other.device),
					(M.phone = M.apple.phone || M.android.phone || M.windows.phone),
					(M.tablet = M.apple.tablet || M.android.tablet || M.windows.tablet),
					M
				);
			})();
		})();

		if (device.phone) return "m";

		if (device.tablet) return "t";

		return "d";
	}

	function cv() {
		const urlParams = new URLSearchParams(window.location.search);
		// if live preview, don't load the script
		if (urlParams.has("cb_live_preview")) return;

		const isDemoMode =
			urlParams.has("cb_demo") || sessionStorage.getItem("CB_DEMO_MODE")
				? "&demo=true"
				: "";
		const a = document.createElement("script");

		a.src =
			"//s.cartbooster.io/init?h=" +
			getHash(window.location.hostname) +
			"&d=" +
			getDeviceType() +
			isDemoMode;
		document.getElementsByTagName("head")[0].appendChild(a);
	}

	if (document.readyState != "loading") cv();
	else if (document.addEventListener) window.addEventListener("load", cv);
	else if (document.attachEvent) window.attachEvent("onload", cv);
})();
