1/* 2 * Copyright 2019, Backblaze, Inc. All rights reserved. 3 */ 4 5(function (global) { 6 'use strict'; 7 8 function PageID() { 9 this.pageIDs = { 10 '/free-trial': 'B1C-Free-Trial', 11 '/landing/': 'B1C-Free-Trial-Podcast', // Will match all podcast landing pages in the /landing directory 12 '/buy_plan': 'B1C-Purchase-License', 13 '/buy': 'B1C-Login-Buy-Page', // If a key could be found as part of another key it has to be placed below that key 14 '/business-groups-create': 'BfB-Group-Acct-Create', 15 '/business-serverbackup-create': 'Bfb-Server-Backup-Acct-Create', 16 '/business-veeam-backup-create': 'BfB-Veeam', 17 '/business-veeam-cloud-tier': 'BfB-Veeam-Cloud-Tier-Acct-Create', 18 '/business/veeam-cloud-backup-lp': 'BfB-Veeam-Cloud-Backup', 19 '/b2/sign-up': 'B2-Create-Account', 20 '/ja_JP/cloud-storage': 'B2-Create-Account-NoPref', 21 '/zh_TW/cloud-storage': 'B2-Create-Account-NoPref', 22 '/zh_CN/cloud-storage': 'B2-Create-Account-NoPref', 23 '/ko_KR/cloud-storage': 'B2-Create-Account-NoPref', 24 '/fr_FR/cloud-storage': 'B2-Create-Account-NoPref', 25 '/de_DE/cloud-storage': 'B2-Create-Account-NoPref', 26 '/es_ES/cloud-storage': 'B2-Create-Account-NoPref', 27 '/it_IT/cloud-storage': 'B2-Create-Account-NoPref', 28 '/ru_RU/cloud-storage': 'B2-Create-Account-NoPref', 29 '/pt_BR/cloud-storage': 'B2-Create-Account-NoPref', 30 '/b2/partners/': 'B2-Create-Account-Partners', 31 '/business_groups': 'BfB-Group-License-Purchase', 32 '/activate_gift': 'B1C-Activate-Gift', 33 '/r_invite': 'B1C-RaF-Accept-Invite', 34 '/catblaze': 'B1C-Catblaze', 35 '/b2/s3-create-acct/': 'B2-Create-Account-S3Compatible', 36 '/b2/solutions/datatransfer/cloud-to-cloud-create': 37 'B2-Create-Account-Flexify', 38 '/b2/cloudflare-business': 'B2-Create-Account-Cloudflare-Business', 39 '/b2/blog-cta-sign-up': 'B2-Create-Account-Blog-CTA', 40 '/b2/replication-lp': 'B1B-Create-Acct-Replication-LP', 41 '/b2/solutions/ransomware-protection-and-recovery': 42 'B2-Create-Account-Ransomware', 43 '/b2/cloud-storage-sign-up': 'B2-Create-Account-BzAd-A', 44 '/b2/cloud-storage-sign-up-1': 'B2-Create-Account-BzAd-B', 45 '/business-backup-cb1': 'BfB-Group-Acct-Create-BusinessHero', 46 '/business-computer-backup-cb1': 'BfB-Group-Acct-Create-ComputerHero', 47 '/b2/multi-cloud': 'B2-MULTI-CLOUD', 48 '/blaze-it-a': 'B2-Create-Account-BlazeIt-A', 49 '/blaze-it-b': 'B2-Create-Account-BlazeIt-B', 50 '/cloud-backup': 'B1C-Free-Trial', 51 '/cloud-backup-1': 'B1C-Free-Trial', 52 '/crashplan-replacement': 'B1B-Group-Acct-Create-Crashplan-Replacement', 53 '/b2/replication': 'B2-Create-Account-Replication', 54 '/business/partner-veritas': 'B2-Create-Account-Veritas', 55 '/business-computer-backup-pua': 'B1B-Group-Acct-Create-General-PUA', 56 '/partner-msp360-lp': 'BfB-MSP360-Acct-Create', 57 '/b2/cloud-storage': 'B2-Create-Account-Hero', 58 '/b2-backup-and-archive': 'b2-backup-and-archive', 59 '/b2-object-storage': 'b2-object-storage', 60 '/b2-cloud-storage': 'b2-cloud-storage', 61 '/b2-content-delivery': 'b2-content-delivery', 62 '/b2-c2c-migration-general': 'b2-c2c-migration-general', 63 '/b2-c2c-migration-aws': 'b2-c2c-migration-aws', 64 '/b2-c2c-migration-azure': 'b2-c2c-migration-azure', 65 '/b2-c2c-migration-gcp': 'b2-c2c-migration-gcp', 66 '/b2-fastly': 'b2-fastly', 67 '/b2-veritas': 'B2-Create-Account-Veritas-PUA', 68 '/partner/technology/catalogic-dpx': 'B2-Acct-Create-Catalogic-PUA', 69 }; 70 } 71 72 PageID.prototype.getPageID = function (pathname) { 73 var pageIDKeys = Object.keys(this.pageIDs); 74 var pageID = ''; 75 76 for (var i = 0; i < pageIDKeys.length; i++) { 77 var key = pageIDKeys[i]; 78 if (pathname.search(key) === 0) { 79 pageID = this.pageIDs[key]; 80 break; 81 } 82 } 83 84 return pageID !== '' ? this.extendIfNecessary(pageID) : pageID; 85 }; 86 87 PageID.prototype.extendIfNecessary = function (pageID) { 88 switch (pageID) { 89 case 'B1C-Login-Buy-Page': { 90 var newRadioOption = document.querySelector('input[value=new]'); 91 if (newRadioOption) { 92 return pageID + (newRadioOption.checked ? '.New' : '.Existing'); 93 } else { 94 break; 95 } 96 } 97 case 'Bfb-Server-Backup-Acct-Create': { 98 if (window.selectedServerOptionID) { 99 return ( 100 pageID + 101 (window.selectedServerOptionID === 'single-server' 102 ? '.Single' 103 : '.Multi') 104 ); 105 } else { 106 break; 107 } 108 } 109 110 case 'BfB-Veeam-Cloud-Backup': 111 switch (window.b2Referrer) { 112 case 'veeam-cloud-backup-contactSales': { 113 return 'BfB-Contact-Sales-Veeam-Cloud-LP'; 114 } 115 case 'veeam-cloud-backup-startNow': { 116 return 'BfB-Create-Acct-Veeam-Cloud-LP'; 117 } 118 default: { 119 return 'BfB-Unknown'; 120 } 121 } 122 123 case 'B2-Create-Account': { 124 switch (window.b2Referrer) { 125 case 'backup': { 126 return pageID + '-Backup'; 127 } 128 case 'lto': { 129 return pageID + '-LTO'; 130 } 131 case 'cdn': { 132 return pageID + '-CDN'; 133 } 134 case 'compute': { 135 return pageID + '-Compute'; 136 } 137 case 'datatransfer': { 138 return pageID + '-DataTransfer'; 139 } 140 case 'media': { 141 return pageID + '-MediaEntertainment'; 142 } 143 case 'developer': { 144 return pageID + '-Developer'; 145 } 146 case 'nas': { 147 return 'BfB-NAS-Backup-Acct-Create'; 148 } 149 case 'develop': { 150 return pageID + '-Develop'; 151 } 152 case 'ransomware': { 153 return 'B2-Create-Account-Ransomware'; 154 } 155 case 'blaze-it-a': { 156 return pageID + '-BlazeIt-A'; 157 } 158 case 'blaze-it-b': { 159 return pageID + '-BlazeIt-B'; 160 } 161 case 'cloud-storage-sign-up': { 162 return pageID + '-BzAd-A'; 163 } 164 case 'cloud-storage-sign-up-1': { 165 return pageID + '-BzAd-B'; 166 } 167 case 'cloud-replication': {
168 return pageID + '-Replication'; 169 } 170 default: { 171 return pageID + '-NoPref'; 172 } 173 } 174 } 175 176 case 'BfB-Group-Acct-Create': { 177 // TODO: Update hardcoded pageIDs below once BfB is changed to B1B 178 var bzReferrer = window.bzReferrer || getURLParameter('referrer'); 179 switch (bzReferrer) { 180 case 'business': { 181 return pageID + '-Business'; 182 } 183 case 'computer': { 184 return pageID + '-Computer'; 185 } 186 case 'pricing': { 187 return 'B1B-Group-Acct-Create-Pricing'; 188 } 189 case 'comparison': { 190 return 'B1B-Group-Acct-Create-Comparison'; 191 } 192 default: { 193 return 'B1B-Group-Acct-Create-NoRef'; 194 } 195 } 196 } 197 198 case 'B2-Create-Account-Flexify': { 199 if (window.dataToTransfer) { 200 return ( 201 pageID + 202 (window.dataToTransfer === 'under-50-tb' ? 'Under50TB' : 'Over50TB') 203 ); 204 } else { 205 break; 206 } 207 } 208 209 case 'BfB-Veeam': { 210 var bzReferrer = 211 window.bzReferrer || getURLParameter('referrer') || 'noref'; 212 if ( 213 bzReferrer && 214 bzReferrer === 'veeam-partner' && 215 window.formCloudtierCreate 216 ) { 217 return 'B2-Create-Account-Veeam-Partner'; 218 } else if ( 219 bzReferrer && 220 bzReferrer === 'veeamon-theatervideo' && 221 window.formCloudtierCreate 222 ) { 223 return 'B2-Create-Account-VeeamOn-2021-Video'; 224 } else if (window.formCloudtierCreate) { 225 return pageID + '-Cloud-Tier-Acct-Create'; 226 } else if (window.formCommunityCreate) { 227 return pageID + '-Backup-Acct-Create'; 228 } else { 229 break; 230 } 231 } 232 233 case 'BfB-MSP360-Acct-Create': { 234 if (window.selectedServerOptionID) { 235 return ( 236 pageID + 237 (window.selectedServerOptionID === 'single-server' 238 ? '-Single-PUA' 239 : '-Multiple-PUA') 240 ); 241 } else { 242 break; 243 } 244 } 245 246 case 'B2-MULTI-CLOUD': { 247 if (window.selectedServerOptionID === 'multi-server') { 248 return 'B2-Create-Acct-Multicloud-LP-A'; 249 } else { 250 return 'B2-Contact-Sales-Multicloud-LP-A'; 251 } 252 } 253 254 case 'b2-backup-and-archive': { 255 switch (window.b2Referrer) { 256 case 'b2-backup-and-archive-contactSales': { 257 return 'B2-Contact-Sales-B2Backup-LP'; 258 } 259 case 'b2-backup-and-archive-startNow': { 260 return 'B2-Create-Acct-B2Backup-LP'; 261 } 262 default: { 263 return 'BfB-Unknown'; 264 } 265 } 266 } 267 268 case 'b2-object-storage': { 269 switch (window.b2Referrer) { 270 case 'b2-object-storage-contactSales': { 271 return 'B2-Contact-Sales-ObjectStorage-PUA'; 272 } 273 case 'b2-object-storage-startNow': { 274 return 'B2-Acct-Create-ObjectStorage-PUA'; 275 } 276 default: { 277 return 'BfB-Unknown'; 278 } 279 } 280 } 281 282 case 'b2-cloud-storage': { 283 switch (window.b2Referrer) { 284 case 'b2-cloud-storage-contactSales': { 285 return 'B2-Contact-Sales-CloudStorage-PUA'; 286 } 287 case 'b2-cloud-storage-startNow': { 288 return 'B2-Acct-Create-CloudStorage-PUA'; 289 } 290 default: { 291 return 'BfB-Unknown'; 292 } 293 } 294 } 295 296 case 'b2-content-delivery': { 297 switch (window.b2Referrer) { 298 case 'b2-content-delivery-contactSales': { 299 return 'B2-Contact-Sales-ContentDelivery-PUA'; 300 } 301 case 'b2-content-delivery-startNow': { 302 return 'B2-Acct-Create-ContentDelivery-PUA'; 303 } 304 default: { 305 return 'BfB-Unknown'; 306 } 307 } 308 } 309 310 case 'b2-fastly': { 311 switch (window.b2Referrer) { 312 case 'b2-fastly-contactSales': { 313 return 'B2-Contact-Sales-FastlyCDN-PUA'; 314 } 315 case 'b2-fastly-startNow': { 316 return 'B2-Acct-Create-FastlyCDN-PUA'; 317 } 318 default: { 319 return 'BfB-Unknown'; 320 } 321 } 322 } 323 324 case 'b2-c2c-migration-general': { 325 switch (window.b2Referrer) { 326 case 'b2-c2c-migration-general-contactSales': { 327 return 'B2-Contact-Sales-C2CGeneral-PUA'; 328 } 329 case 'b2-c2c-migration-general-startNow': { 330 return 'B2-Acct-Create-C2CGeneral-PUA'; 331 } 332 default: { 333 return 'BfB-Unknown'; 334 } 335 } 336 } 337 338 case 'b2-c2c-migration-aws': { 339 switch (window.b2Referrer) { 340 case 'b2-c2c-migration-aws-contactSales': { 341 return 'B2-Contact-Sales-C2CAWS-PUA'; 342 } 343 case 'b2-c2c-migration-aws-startNow': { 344 return 'B2-Acct-Create-C2CAWS-PUA'; 345 } 346 default: { 347 return 'BfB-Unknown'; 348 } 349 } 350 } 351 352 case 'b2-c2c-migration-azure': { 353 switch (window.b2Referrer) { 354 case 'b2-c2c-migration-azure-contactSales': { 355 return 'B2-Contact-Sales-C2CAzure-PUA'; 356 } 357 case 'b2-c2c-migration-azure-startNow': { 358 return 'B2-Acct-Create-C2CAzure-PUA'; 359 } 360 default: { 361 return 'BfB-Unknown'; 362 } 363 } 364 } 365 366 case 'b2-c2c-migration-gcp': { 367 switch (window.b2Referrer) { 368 case 'b2-c2c-migration-gcp-contactSales': { 369 return 'B2-Contact-Sales-C2CGCP-PUA'; 370 } 371 case 'b2-c2c-migration-gcp-startNow': { 372 return 'B2-Acct-Create-C2CGCP-PUA'; 373 } 374 default: { 375 return 'BfB-Unknown'; 376 } 377 } 378 } 379 380 default: { 381 return pageID; 382 } 383 } 384 385 return pageID; 386 }; 387 388 // Will only be successful if the user is authenticated 389 PageID.prototype.postToBzHubSpotProxy = function () { 390 var origin = window.location.origin; 391 var pathname = window.location.pathname; 392 var xhr = new XMLHttpRequest(); 393 xhr.open( 394 'POST', 395 'https://secure.backblaze.' + origin.slice('-3') + '/api2/bz_p2hu' 396 ); 397 xhr.setRequestHeader('Content-Type', 'application/json'); 398 xhr.send( 399 JSON.stringify({ 400 hutk: window.getCookie ? window.getCookie('hubspotutk') : '', 401 pageId: this.getPageID(pathname), 402 pageUrl: origin + pathname, 403 pageName: window.document.title, 404 redirectUrl: '', 405 sfdcCampaignId: '', 406 }) 407 ); 408 }; 409
410 function init() { 411 try { 412 global.Bz = global.Bz || {}; 413 global.Bz.PageID = new PageID(); 414 } catch (err) { 415 console.log(err); 416 } finally { 417 if (!global.Bz.PageID) { 418 global.Bz.PageID = {}; 419 } 420 } 421 } 422 423 init(); 424})(window);
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.