1const countriesData = { 2"AF": { name: "Afghanistan", region: "row" }, 3"AX": { name: "Aland Islands", region: "row" }, 4"AL": { name: "Albania", region: "row" }, 5"DZ": { name: "Algeria", region: "row" }, 6"AS": { name: "American Samoa", region: "row" }, 7"AD": { name: "Andorra", region: "row" }, 8"AO": { name: "Angola", region: "row" }, 9"AI": { name: "Anguilla", region: "row" }, 10"AQ": { name: "Antarctica", region: "row" }, 11"AG": { name: "Antigua and Barbuda", region: "row" }, 12"AR": { name: "Argentina", region: "row" }, 13"AM": { name: "Armenia", region: "row" }, 14"AW": { name: "Aruba", region: "row" }, 15"AU": { name: "Australia", region: "au" }, 16"AT": { name: "Austria", region: "eu" }, 17"AZ": { name: "Azerbaijan", region: "row" }, 18"BS": { name: "Bahamas", region: "row" }, 19"BH": { name: "Bahrain", region: "row" }, 20"BD": { name: "Bangladesh", region: "row" }, 21"BB": { name: "Barbados", region: "row" }, 22"BY": { name: "Belarus", region: "row" }, 23"BE": { name: "Belgium", region: "eu" }, 24"BZ": { name: "Belize", region: "row" }, 25"BJ": { name: "Benin", region: "row" }, 26"BM": { name: "Bermuda", region: "row" }, 27"BT": { name: "Bhutan", region: "row" }, 28"BO": { name: "Bolivia", region: "row" }, 29"BQ": { name: "Bonaire, Sint Eustatius and Saba", region: "row" }, 30"BA": { name: "Bosnia And Herzegovina", region: "row" }, 31"BW": { name: "Botswana", region: "row" }, 32"BV": { name: "Bouvet Island", region: "row" }, 33"BR": { name: "Brazil", region: "row" }, 34"IO": { name: "British Indian Ocean Territory", region: "row" }, 35"BN": { name: "Brunei Darussalam", region: "row" }, 36"BG": { name: "Bulgaria", region: "eu" }, 37"BF": { name: "Burkina Faso", region: "row" }, 38"BI": { name: "Burundi", region: "row" }, 39"CV": { name: "Cabo Verde", region: "row" }, 40"KH": { name: "Cambodia", region: "row" }, 41"CM": { name: "Cameroon", region: "row" }, 42"CA": { name: "Canada", region: "ca" }, 43"KY": { name: "Cayman Islands", region: "row" }, 44"CF": { name: "Central African Republic", region: "row" }, 45"TD": { name: "Chad", region: "row" }, 46"CL": { name: "Chile", region: "row" }, 47"CN": { name: "China", region: "row" }, 48"CX": { name: "Christmas Island", region: "row" }, 49"CC": { name: "Cocos (Keeling) Islands", region: "row" }, 50"CO": { name: "Colombia", region: "row" }, 51"KM": { name: "Comoros", region: "row" }, 52"CG": { name: "Congo", region: "row" }, 53"CD": { name: "Congo, Democratic Republic of the", region: "row" }, 54"CK": { name: "Cook Islands", region: "row" }, 55"CR": { name: "Costa Rica", region: "row" }, 56"CI": { name: "Cote D'Ivoire", region: "row" }, 57"HR": { name: "Croatia", region: "eu" }, 58"CW": { name: "Curacao", region: "row" }, 59"CY": { name: "Cyprus", region: "eu" }, 60"CZ": { name: "Czechia", region: "eu" }, 61"DK": { name: "Denmark", region: "eu" }, 62"DJ": { name: "Djibouti", region: "row" }, 63"DM": { name: "Dominica", region: "row" }, 64"DO": { name: "Dominican Republic", region: "row" }, 65"EC": { name: "Ecuador", region: "row" }, 66"EG": { name: "Egypt", region: "row" }, 67"SV": { name: "El Salvador", region: "row" }, 68"GQ": { name: "Equatorial Guinea", region: "row" }, 69"ER": { name: "Eritrea", region: "row" }, 70"EE": { name: "Estonia", region: "eu" }, 71"ET": { name: "Ethiopia", region: "row"}, 72"SZ": {name: "Eswatini (Swaziland)", region: "row" }, 73"FK": { name: "Falkland Islands (Malvinas)", region: "row" }, 74"FO": { name: "Faroe Islands", region: "row" }, 75"FJ": { name: "Fiji", region: "row" }, 76"FI": { name: "Finland", region: "eu" }, 77"FR": { name: "France", region: "eu" }, 78"GF": { name: "French Guiana", region: "row" }, 79"PF": { name: "French Polynesia", region: "row" }, 80"TF": { name: "French Southern Territories", region: "row" }, 81"GA": { name: "Gabon", region: "row" }, 82"GM": { name: "Gambia", region: "row" }, 83"GE": { name: "Georgia", region: "row" }, 84"DE": { name: "Germany", region: "eu" }, 85"GH": { name: "Ghana", region: "row" }, 86"GI": { name: "Gibraltar", region: "row" }, 87"GR": { name: "Greece", region: "eu" }, 88"GL": { name: "Greenland", region: "row" }, 89"GD": { name: "Grenada", region: "row" }, 90"GP": { name: "Guadeloupe", region: "row" }, 91"GU": { name: "Guam", region: "row" }, 92"GT": { name: "Guatemala", region: "row" },
93"GG": { name: "Guernsey", region: "row" }, 94"GN": { name: "Guinea", region: "row" }, 95"GW": { name: "Guinea-Bissau", region: "row" }, 96"GY": { name: "Guyana", region: "row" }, 97"HT": { name: "Haiti", region: "row" }, 98"HM": { name: "Heard Island and Mcdonald Islands", region: "row" }, 99"VA": { name: "Holy See (Vatican City State)", region: "row" }, 100"HN": { name: "Honduras", region: "row" }, 101"HK": { name: "Hong Kong", region: "row" }, 102"HU": { name: "Hungary", region: "eu" }, 103"IS": { name: "Iceland", region: "row" }, 104"IN": { name: "India", region: "in" }, 105"ID": { name: "Indonesia", region: "row" }, 106"IQ": { name: "Iraq", region: "row" }, 107"IE": { name: "Ireland", region: "eu" }, 108"IM": { name: "Isle of Man", region: "gb" }, 109"IL": { name: "Israel", region: "row" }, 110"IT": { name: "Italy", region: "eu" }, 111"JM": { name: "Jamaica", region: "row" }, 112"JP": { name: "Japan", region: "row" }, 113"JE": { name: "Jersey", region: "row" }, 114"JO": { name: "Jordan", region: "row" }, 115"KZ": { name: "Kazakhstan", region: "row" }, 116"KE": { name: "Kenya", region: "row" }, 117"KI": { name: "Kiribati", region: "row" }, 118"KW": { name: "Kuwait", region: "row" }, 119"KG": { name: "Kyrgyzstan", region: "row" }, 120"LA": { name: "Lao People's Democratic Republic", region: "row" }, 121"LV": { name: "Latvia", region: "eu" }, 122"LB": { name: "Lebanon", region: "row" }, 123"LS": { name: "Lesotho", region: "row" }, 124"LR": { name: "Liberia", region: "row" }, 125"LY": { name: "Libya", region: "row" }, 126"LI": { name: "Liechtenstein", region: "row" }, 127"LT": { name: "Lithuania", region: "eu" }, 128"LU": { name: "Luxembourg", region: "eu" }, 129"MO": { name: "Macao", region: "row" }, 130"MG": { name: "Madagascar", region: "row" }, 131"MW": { name: "Malawi", region: "row" }, 132"MY": { name: "Malaysia", region: "row" }, 133"MV": { name: "Maldives", region: "row" }, 134"ML": { name: "Mali", region: "row" }, 135"MT": { name: "Malta", region: "eu" }, 136"MH": { name: "Marshall Islands", region: "row" }, 137"MQ": { name: "Martinique", region: "row" }, 138"MR": { name: "Mauritania", region: "row" }, 139"MU": { name: "Mauritius", region: "row" }, 140"YT": { name: "Mayotte", region: "row" }, 141"MX": { name: "Mexico", region: "row" }, 142"FM": { name: "Micronesia, Federated States of", region: "row" }, 143"MD": { name: "Moldova, Republic Of", region: "row" }, 144"MC": { name: "Monaco", region: "row" }, 145"MN": { name: "Mongolia", region: "row" }, 146"ME": { name: "Montenegro", region: "row" }, 147"MS": { name: "Montserrat", region: "row" }, 148"MA": { name: "Morocco", region: "row" }, 149"MZ": { name: "Mozambique", region: "row" }, 150"NA": { name: "Namibia", region: "row" }, 151"NR": { name: "Nauru", region: "row" }, 152"NP": { name: "Nepal", region: "row" }, 153"NL": { name: "Netherlands", region: "eu" }, 154"NC": { name: "New Caledonia", region: "row" }, 155"NZ": { name: "New Zealand", region: "row" }, 156"NI": { name: "Nicaragua", region: "row" }, 157"NE": { name: "Niger", region: "row" }, 158"NG": { name: "Nigeria", region: "row" }, 159"NU": { name: "Niue", region: "row" }, 160"NF": { name: "Norfolk Island", region: "row" }, 161"MK": { name: "North Macedonia", region: "row" }, 162"MP": { name: "Northern Mariana Islands", region: "row" }, 163"NO": { name: "Norway", region: "row" }, 164"OM": { name: "Oman", region: "row" }, 165"PK": { name: "Pakistan", region: "row" }, 166"PW": { name: "Palau", region: "row" }, 167"PS": { name: "Palestine, State of", region: "row" }, 168"PA": { name: "Panama", region: "row" }, 169"PG": { name: "Papua New Guinea", region: "row" }, 170"PY": { name: "Paraguay", region: "row" }, 171"PE": { name: "Peru", region: "row" }, 172"PH": { name: "Philippines", region: "row" }, 173"PN": { name: "Pitcairn", region: "row" }, 174"PL": { name: "Poland", region: "eu" }, 175"PT": { name: "Portugal", region: "eu" }, 176"PR": { name: "Puerto Rico", region: "row" }, 177"QA": { name: "Qatar", region: "row" }, 178"RE": { name: "Reunion", region: "row" }, 179"RO": { name: "Romania", region: "eu" }, 180"RU": { name: "Russian Federation", region: "row" }, 181"RW": { name: "Rwanda", region: "row" }, 182"BL": { name: "Saint Barthelemy", region: "row" }, 183"SH": { name: "Saint Helena, Ascension and Tristan Da Cunha", region: "row" }, 184"KN": { name: "Saint Kitts and Nevis", region: "row" }, 185"LC": { name: "Saint Lucia", region: "row" }, 186"MF": { name: "Saint Martin (French Part)", region: "row" }, 187"PM": { name: "Saint Pierre and Miquelon", region: "row" }, 188"VC": { name: "Saint Vincent and the Grenadines", region: "row" }, 189"WS": { name: "Samoa", region: "row" }, 190"SM": { name: "San Marino", region: "row" }, 191"ST": { name: "Sao Tome and Principe", region: "row" }, 192"SA": { name: "Saudi Arabia", region: "row" }, 193"SN": { name: "Senegal", region: "row" }, 194"RS": { name: "Serbia", region: "row" }, 195"SC": { name: "Seychelles", region: "row" }, 196"SL": { name: "Sierra Leone", region: "row" }, 197"SG": { name: "Singapore", region: "row" }, 198"SX": { name: "Sint Maarten (Dutch Part)", region: "row" }, 199"SK": { name: "Slovakia", region: "eu" }, 200"SI": { name: "Slovenia", region: "eu" }, 201"SB": { name: "Solomon Islands", region: "row" }, 202"SO": { name: "Somalia", region: "row" }, 203"ZA": { name: "South Africa", region: "za" }, 204"GS": { name: "South Georgia and the South Sandwich Islands", region: "row" }, 205"KR": { name: "South Korea", region: "kr" }, 206"ES": { name: "Spain", region: "eu" }, 207"LK": { name: "Sri Lanka", region: "row" }, 208"SR": { name: "Suriname", region: "row" }, 209"SJ": { name: "Svalbard and Jan Mayen", region: "row" },
210"SE": { name: "Sweden", region: "eu" }, 211"CH": { name: "Switzerland", region: "row" }, 212"TW": { name: "Taiwan, Province of China", region: "row" }, 213"TJ": { name: "Tajikistan", region: "row" }, 214"TZ": { name: "Tanzania", region: "row" }, 215"TH": { name: "Thailand", region: "row" }, 216"TL": { name: "Timor-Leste", region: "row" }, 217"TG": { name: "Togo", region: "row" }, 218"TK": { name: "Tokelau", region: "row" }, 219"TO": { name: "Tonga", region: "row" }, 220"TT": { name: "Trinidad and Tobago", region: "row" }, 221"TN": { name: "Tunisia", region: "row" }, 222"TR": { name: "Turkey", region: "row" }, 223"TM": { name: "Turkmenistan", region: "row" }, 224"TC": { name: "Turks and Caicos Islands", region: "row" }, 225"TV": { name: "Tuvalu", region: "row" }, 226"UG": { name: "Uganda", region: "row" }, 227"UA": { name: "Ukraine", region: "row" }, 228"AE": { name: "United Arab Emirates", region: "row" }, 229"GB": { name: "United Kingdom", region: "gb" }, 230"UM": { name: "United States Minor Outlying Islands", region: "row" }, 231"US": { name: "United States of America", region: "us" }, 232"UY": { name: "Uruguay", region: "row" }, 233"UZ": { name: "Uzbekistan", region: "row" }, 234"VU": { name: "Vanuatu", region: "row" }, 235"VE": { name: "Venezuela", region: "row" }, 236"VN": { name: "Viet Nam", region: "row" }, 237"VG": { name: "Virgin Islands (British)", region: "row" }, 238"VI": { name: "Virgin Islands (US)", region: "row" }, 239"WF": { name: "Wallis and Futuna", region: "row" }, 240"EH": { name: "Western Sahara", region: "row" }, 241"YE": { name: "Yemen", region: "row" }, 242"ZM": { name: "Zambia", region: "row" }, 243"ZW": { name: "Zimbabwe", region: "row" } 244}; 245const productsData = { 246 "pass": { 247 displayName: "Pass", 248 billingPeriod: "for 30 days", 249 regions: { 250 gb: { price: 8, currency: "GBP", productCode: "passUk" }, 251 us: { price: 10, currency: "USD", productCode: "passUs" }, 252 ca: { price: 15, currency: "CAD", productCode: "passCa" }, 253 au: { price: 15, currency: "AUD", productCode: "passAu" }, 254 in: { price: 600, currency: "INR", productCode: "passIn" }, 255 kr: { price: 8, currency: "GBP", productCode: "passKr" }, 256 za: { price: 8, currency: "GBP", productCode: "passZa" }, 257 eu: { price: 9, currency: "EUR", productCode: "passEu" }, 258 row: { price: 8, currency: "GBP", productCode: "passRow" } 259 } 260 },
261 "annual": { 262 displayName: "Annual", 263 billingPeriod: "per year", 264 regions: { 265 gb: { price: 60, currency: "GBP", productCode: "annUk" }, 266 us: { price: 80, currency: "USD", productCode: "annUs" }, 267 ca: { price: 110, currency: "CAD", productCode: "annCa" }, 268 au: { price: 115, currency: "AUD", productCode: "annAu" }, 269 in: { price: 3000, currency: "INR", productCode: "annIn" }, 270 kr: { price: 60, currency: "GBP", productCode: "annKr" }, 271 za: { price: 60, currency: "GBP", productCode: "annZa" }, 272 eu: { price: 70, currency: "EUR", productCode: "annEu" }, 273 row: { price: 60, currency: "GBP", productCode: "annRow" } 274 } 275 }, 276 "monthly": { 277 displayName: "Monthly", 278 billingPeriod: "per month", 279 regions: { 280 gb: { price: 6, currency: "GBP", productCode: "monUk" }, 281 us: { price: 8, currency: "USD", productCode: "monUs" }, 282 ca: { price: 11, currency: "CAD", productCode: "monCa" }, 283 au: { price: 12, currency: "AUD", productCode: "monAu" }, 284 in: { price: 500, currency: "INR", productCode: "monIn" }, 285 kr: { price: 6, currency: "GBP", productCode: "monKr" }, 286 za: { price: 6, currency: "GBP", productCode: "monZa" }, 287 eu: { price: 7, currency: "EUR", productCode: "monEu" }, 288 row: { price: 6, currency: "GBP", productCode: "monRow" } 289 } 290 } 291}; 292const currencyMeta = { 293 GBP: { 294 symbol: "£", 295 symbolPosition: "before", 296 decimals: 2 297 }, 298 USD: { 299 symbol: "$", 300 symbolPosition: "before", 301 decimals: 2 302 }, 303 EUR: { 304 symbol: "â¬", 305 symbolPosition: "before", 306 decimals: 2 307 }, 308 CAD: { 309 symbol: "CA$", 310 symbolPosition: "before", 311 decimals: 2 312 }, 313 AUD: { 314 symbol: "AU$", 315 symbolPosition: "before", 316 decimals: 2 317 }, 318 INR: { 319 symbol: "â¹", 320 symbolPosition: "before", 321 decimals: 2 322 } 323}; 324const taxMeta = { 325 gb: "none", 326 eu: "exclusive", 327 au: "none", 328 in: "inclusive", 329 kr: "inclusive", 330 za: "inclusive", 331 us: "none", 332 ca: "exclusive", 333 row: "none" 334}; 335window.dataLayer = window.dataLayer || []; 336window.emeAppState = window.emeAppState || {}; 337emeAppState.selectedCountryCode = "GB"; // default 338emeAppState.selectedRegion = "gb"; // default 339 340// Push geo to dataLayer 341function geo_init() { 342 var getCountry = function () { 343 if (typeof ct.getCountryForTimezone === "function") { 344 return ct.getCountryForTimezone( 345 Intl.DateTimeFormat().resolvedOptions().timeZone 346 ); 347 } 348 return undefined; 349 }; 350 351 // Push geo once on page load 352 var pushGeo = function () { 353 var country = getCountry(); 354 window.dataLayer = window.dataLayer || []; 355 window.dataLayer.push({ Geo: country }); 356 }; 357 pushGeo(); 358} 359// Get country/region from timezone 360function getRegion() { 361 if (typeof ct.getCountryForTimezone === "function") { 362 emeAppState.selectedCountryCode = ct.getCountryForTimezone(Intl.DateTimeFormat().resolvedOptions().timeZone); 363 emeAppState.selectedCountryCode = emeAppState.selectedCountryCode.id; 364 emeAppState.selectedRegion = countriesData[emeAppState.selectedCountryCode]?.region.toLowerCase(); 365 } else { 366 emeAppState.selectedCountryCode = "GB"; 367 emeAppState.selectedRegion = "gb" 368 } 369 }; 370// Price display 371function formatPrice(amount, currency) { 372 const meta = currencyMeta[currency]; 373 if (!meta) return amount.toString(); 374 375 const fixedAmount = Number.isInteger(amount) 376 ? amount.toString() 377 : amount.toFixed(meta.decimals); 378 379 return meta.symbolPosition === "before" 380 ? `${meta.symbol}${fixedAmount}` 381 : `${fixedAmount}${meta.symbol}`; 382} 383// Tax display 384function formatTaxText(region) { 385 const taxDisplay = taxMeta[region] || "none"; 386 const labels = { 387 inclusive: "incl. tax", 388 exclusive: "excl. tax", 389 none: "" 390 }; 391 return labels[taxDisplay] || ""; 392} 393//Build local prices 394function buildLocalSubPrices() { 395 const prices = {}; 396 397 ['pass', 'monthly', 'annual'].forEach(productKey => { 398 const product = productsData[productKey]; 399 const regionData = product?.regions[emeAppState.selectedRegion]; 400 401 if (!regionData) return; 402 403 prices[productKey] = { 404 rawPrice: regionData.price, 405 currency: regionData.currency, 406 formattedPrice: formatPrice(regionData.price, regionData.currency), 407 billingPeriod: product.billingPeriod, 408 taxText: formatTaxText(emeAppState.selectedRegion) 409 }; 410 }); 411 412 return prices; 413} 414// Push price info to dataLayer 415function pushLocalSubPrices() { 416 const localSubPrices = buildLocalSubPrices(); 417 const localSubPass = localSubPrices.pass?.formattedPrice || ""; 418 const localSubMonthly = localSubPrices.monthly?.formattedPrice || ""; 419 const localSubAnnual = localSubPrices.annual?.formattedPrice || ""; 420 window.dataLayer = window.dataLayer || []; 421 window.dataLayer.push({ 422 localSubPrices, 423 localSubPass, 424 localSubMonthly, 425 localSubAnnual 426 }); 427}
428geo_init(); 429getRegion(); 430pushLocalSubPrices()
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.