1 2<!DOCTYPE html> 3<html lang="en"> 4<head> 5 <title>Your cart</title> 6 <!-- #region Render Header --> 7<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 8<link href="//fonts.googleapis.com/css?family=Open+Sans:400,700italic,700" rel="stylesheet"> 9<link href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.4/cerulean/bootstrap.min.css" rel="stylesheet"> 10<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.3/css/all.css" integrity="sha384-SZXxX4whJ79/gErwcOYf+zWLeJdY/qpuqC4cAa9rOGUstPomtqpuNWT9wdPEn2fk" crossorigin="anonymous"> 11<link href="https://www.virtualgraffiti.com/css/styles2.css?ver=1" rel="stylesheet">
12<script>document.write("<link href='/css/styles.css?v=" + Date.now() + "' rel='stylesheet'><\/link>");</script>
12 13<meta name="facebook-domain-verification" content="ym0qfdseww42s2m1qlwkyho3ujuyyc" /> 14<!-- Favicon Start --> 15<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-57x57.png"> 16<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-60x60.png"> 17<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-72x72.png"> 18<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-76x76.png"> 19<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-114x114.png"> 20<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-120x120.png"> 21<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-144x144.png"> 22<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-152x152.png"> 23<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.blueally.com/tokenguard/images/favicons/apple-icon-180x180.png"> 24<link rel="icon" type="image/png" sizes="192x192" href="https://cdn.blueally.com/tokenguard/images/favicons/android-icon-192x192.png"> 25<link rel="icon" type="image/png" sizes="32x32" href="https://cdn.blueally.com/tokenguard/images/favicons/favicon-32x32.png"> 26<link rel="icon" type="image/png" sizes="96x96" href="https://cdn.blueally.com/tokenguard/images/favicons/favicon-96x96.png"> 27<link rel="icon" type="image/png" sizes="16x16" href="https://cdn.blueally.com/tokenguard/images/favicons/favicon-16x16.png"> 28<link rel="manifest" href="https://cdn.blueally.com/tokenguard/images/favicons/manifest.json"> 29<meta name="msapplication-TileColor" content="#ffffff"> 30<meta name="msapplication-TileImage" content="/images/favicons/ms-icon-144x144.png"> 31<meta name="theme-color" content="#ffffff"> 32<!-- Favicon End --> 33<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 33-34
33 34<script async src="https://www.googletagmanager.com/gtag/js?id=
34UA-215164-51
vendor: 12 bytes, line 34
34"></script>
35<script> 36
vendor: 134 bytes, lines 36-40
36window.dataLayer = window.dataLayer || []; 37 function gtag(){dataLayer.push(arguments);} 38 gtag('js', new Date()); 39 40 gtag('config', '
40UA-215164-51
vendor: 4 bytes, line 40
40');
41</script>
41 42<!-- Google Tag Manager -->
43<script>
vendor: 327 bytes, lines 43-47
43(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 44new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 45j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 46'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 47})(window,document,'script','dataLayer','
47GTM-K5RMCCC
vendor: 3 bytes, line 47
47');
47</script>
47 48<!-- End Google Tag Manager --> 49<!-- Google Tag Manager -->
50<script>
vendor: 327 bytes, lines 50-54
50(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 51new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 52j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 53'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 54})(window,document,'script','dataLayer','
54GTM-TDJP3SH
vendor: 3 bytes, line 54
54');
54</script>
54 55<!-- End Google Tag Manager --> 56<!-- Google Search Console --> 57<meta name="google-site-verification" content="IPLx8Nqz4rtWqtVzLwEQ02QDFW4nw3ZFLLwnvf66tNQ" /> 58<!-- End Google Search Console -->
vendor: 65 bytes, lines 58-59
58 59<script src='https://www.google.com/recaptcha/api.js'></script>
60<!-- Positive SSL Code -->
61<script type="text/javascript"> //<![CDATA[ 62var tlJsHost = ((window.location.protocol == "https:") ? "https://secure.trust-provider.com/" : "http://www.trustlogo.com/"); 63document.write(unescape("%3Cscript src='" + tlJsHost + "trustlogo/javascript/trustlogo.js' type='text/javascript'%3E%3C/script%3E")); 64//]]> 65</script>
65 66<!-- End of Positive SSL Code 67<!-- DYNAMIC PRICING --> 68<!-- END OF DYNAMIC PRICING --> <!-- #endregion --> 69 <!-- #region Section other --> 70 71 <link href="/portal/css/cart.css" rel="stylesheet" /> 72 73 <!-- #endregion --> 74</head> 75<body> 76 77 <div class="container"> 78 <!-- #region Render Top menu --> 79<div class="header"> 80 <div class="row logo-row"> 81 <div class="col-md-4 col-sm-6 logo-block"> 82 <div class="logo"><a href="http://www.tokenguard.com/"><img src="https://cdn.blueally.com/tokenguard/images/tokenguard-logo.png" alt="tokenguard.com" class="img-responsive"></a></div> 83 <h2 class="hidden-sm hidden-md hidden-lg hidden-xl">Call a Specialist Today! <a class="tel" href="tel:877-352-0546">877-352-0546</a></h2> 84 </div> 85 <div class="col-md-8 col-sm-12"> 86 <div class="row"> 87 <div class="col-md-6 col-sm-12"> 88 <div id="main-search"> 89 <form class="top-search" role="search" action="/search.php" method="get"> 90 <input id="search-input" type="text" placeholder="Search by Model, Part, or SKU" autocomplete="off" class="search-input" name="q"> 91 <button type="submit" id="search-btn"><i class="fa fa-search"></i></button> 92 </form> 93 </div> 94 </div> 95 <div class="col-md-6"> 96 <p class="phone-header"><span style="font-weight: 500;">Call a Specialist Today! </span><a class="tel" href="tel:877-352-0546">877-352-0546</a><br> 97 <span style="font-weight: 500;">Free Shipping!</span><img src="https://cdn.blueally.com/tokenguard/images/free-shipping/truckgrey_xsm.png" alt="Free Shipping!"></p> 98 </div> 99 </div> 100 </div> 101 </div> 102</div> 103<div class="navbar navbar-default"> 104 <div class="navbar-header"> 105 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> 106 </div> 107 <div class="navbar-collapse collapse navbar-responsive-collapse"> 108 <ul class="nav navbar-nav"> 109 <li class="productDropdown dropdown"> <a href="/products.asp" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="1000">Products <b class="caret"></b></a> 110 <ul class="dropdown-menu"> 111 <li class="dropdownHeader">RSA SecurID:</li> 112 <li class="dropdown dropdown-submenu"><a href="#" class="dropdown-toggle" data-toggle="dropdown">ID Plus</a> 113 <ul class="dropdown-menu"> 114 <li><a href="/id-plus-subscription-plans.asp">Subscription Plans</a></li> 115 <li><a href="/ds100-authenticator.asp">DS100 Authenticator</a></li> 116 <li><a href="/rsa-mobile-lock.asp">Mobile Lock</a></li> 117 <li><a href="/risk-ai.asp">Risk AI</a></li> 118 <li><a href="/rsa-governance-and-lifecycle-cloud.asp">RSA Governance & Lifecycle Cloud</a></li> 119 </ul> 120 </li> 121 <li><a href="/securid-cloud-free-trial.asp">SecurID Cloud Free Trial</a></li> 122 </li> 123 <li><a href="/auth-manager.asp">Authentication Manager</a></li> 124 <li><a href="/securid-access.asp">SecurID Access</a></li> 125 <li><a href="/securid-software.asp">Software Authenticators</a></li> 126 <li class="dropdown dropdown-submenu"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Hardware Authenticators</a> 127 <ul class="dropdown-menu"> 128 <li><a href="/securid-700.asp">SecurID 700 Token</a></li> 129 </ul> 130 </li> 131 <li><a href="/securid-appliance.asp">SecurID Appliance</a></li> 132 <li><a href="/identity-governance-and-adminstration.asp">RSA Identity Governance and Administration</a></li> 133 <li><a href="/single-sign-on.asp">RSA Single Sign-On</a></li> 134 135 136 137 <li><a href="/products.asp"><strong>View All Products</strong></a></li> 138 </ul> 139 </li> 140 <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">Solutions <b class="caret"></b></a> 141 <ul class="dropdown-menu"> 142 <li class="dropdownHeader">Remote Access</li> 143 <li><a href="/healthcare.asp">Healthcare Solutions</a></li> 144 </ul> 145 </li> 146 <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">Resources <b class="caret"></b></a> 147 <ul class="dropdown-menu"> 148 <li class="dropdown dropdown-submenu"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Datasheets</a> 149 <ul class="dropdown-menu"> 150 <li><a href="/rsa-governance-and-lifecycle-cloud.asp">RSA Governance & Lifecycle Cloud</a></li> 151 </ul> 152 </li> 153 <li><a href="/consulting.asp">Consulting</a></li> 154 <li><a href="/policies/legal.asp">Leasing</a></li> 155 </ul> 156 </li> 157 <li><a href="/quoterequest.asp">Get a Quote!</a></li> 158 <li><a href="/contact.asp">Contact Us</a></li> 159 </ul> 160 <ul class="nav navbar-nav navbar-right"> 161 <li class="nav-item"><a class="nav-link" href="/about-us.asp">About Us</a></li> 162 <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown"><i class="fa fa-user" aria-hidden="true"></i> Account <b class="caret"></b></a> 163 <ul class="dropdown-menu"> 164 <li><a href="/portal/cart">Shopping Cart</a></li> 165 <li><a href="/portal/manage/index">Your Account</a></li> 166 <li><a href="/portal/orderhistory">Order History</a></li> 167 <li><a href="/portal/account/help">Help with checkout</a></li> 168 </ul> 169 </li> 170 </ul> 171 </div> 172</div> <!-- #endregion --> 173 174 <div> 175 <!-- #region LoginPartial --> 176 177 178<link href="/portal/css/loginpartial.css" rel="stylesheet" /> 179 180 <div class="nav-login-menu"> 181 <ul class="nav navbar-nav navbar-right nav-login"> 182 <li class="dropdown"> 183 <a href="#" class="dropdown-toggle a-custom" data-toggle="dropdown" data-hover="dropdown">Sign in/Register <b class="caret"></b></a> 184 <ul class="dropdown-menu"> 185 <li><a href="/portal/account/login">Sign in</a></li> 186 <li><a href="/portal/account/register">Create an account</a></li> 187 </ul> 188 </li> 189 </ul> 190 </div> 191 192 <!-- #endregion --> 193 </div> 194 195 <!-- #region RenderBody --> 196 197 198 199 200<div class="cart-container"> 201 202 <div class="row"> 203 204 <div class="col-sm-8"> 205 206 <header> 207 <h1 class="page-title"><i class="fa fa-shopping-cart fa-lg"></i> Shopping Cart</h1> 208 </header> 209 210 <article id="shopping-bag"> 211 <section class="checkout-container"> 212 <h2 class="page-subtitle"> 213 Items (0) 214 </h2> 215 <div class="item-row clearfix"> 216 <p class="bag-empty-msg">You have no items in your shopping cart.</p> 217 </div> 218 </section> 219 </article> 220 221 </div> 222 223 <div class="col-sm-4"> 224 225 <div></div> 226 227 <div id="orderSummaryContainer" class="summary-container"> 228 229 <h2 class="page-subtitle clearfix">Summary</h2> 230 231 <ul class="summary clearfix"> 232 233 <li class="summary-item summary-subtotal clearfix">
234 <span class="summary-label">Subtotal </span> 235 <span id="summary-cart-subtotal" class="summary-value"> $0.00</span> 236 </li> 237 238 <li class="summary-item summary-shipping clearfix"> 239 <span class="summary-label">Estimated Shipping</span> 240 <span id="summary-cart-shipping" class="summary-value"> $0.00</span> 241 </li> 242 243 <li class="summary-item clearfix"> 244 <span class="summary-label">Taxes</span> 245 <span class="summary-value">Pending<sup>1</sup></span> 246 </li> 247 248 <li class="summary-item summary-total clearfix"> 249 <span class="summary-label">Estimated Total</span> 250 <span id="summary-cart-total" class="summary-value"> $0.00</span> 251 </li> 252 253 </ul> 254 255 <div class="cart-continue"> 256 <div class="button-cart-continue"> 257 <a href="/portal/account/landing?returnUrl=%2FCheckout" > 258 <button class="btn btn-primary" type="submit">Check out now</button> 259 </a> 260 </div> 261 </div> 262 <div class="mt-4 summary-item"> 263 <sup>1</sup><b>Taxes:</b> Please note that all applicable taxes will be calculated and added when your payment is processed. 264 <br><br> 265 <p> 266 <b>Have a Tax Exemption Certificate?</b><br> 267 Email it to <a href="/cdn-cgi/l/email-protection#7e091b1c17100f0b170c171b0d3e1c120b1b1f121207501d1113410d0b1c141b1d0a432a1f065e3b061b130e0a1711105e3d1b0c0a1718171d1f0a1b"><span class="__cf_email__" data-cfemail="11667473787f6064786378746251737d6474707d7d683f727e7c">[email protected]</span></a>. Learn more about our <a href="/shipping.asp#tax-certificate" target="_blank">tax exemption policy</a>. 268 </p> 269</div> 270 271 272 </div> 273 </div> 274 275 </div> 276 277</div> 278 279 280 <!-- #endregion --> 281 282 </div> 283 284 <!-- #region Render Footer --> 285<aside id="footer-widgets"> 286<div class="container"> 287<div class="row"> 288<div class="col-md-2"> 289 <h3 class="footer-widget-title">Site Map:</h3> 290 <ul class="list-unstyled"> 291 <li><a href="/">Home</a></li> 292 <li><a href="/portal/cart">Shopping Cart</a></li> 293 <li><a href="/contact.asp">Contact Us</a></li> 294 <li> 295 </li> 296 </ul> 297</div> 298<div class="col-md-2"> 299 <h3 class="footer-widget-title">Products:</h3> 300 <ul class="list-unstyled"> 301<li><a href="/auth-manager.asp">RSA Authentication Manager</a></li> 302 <li><a href="/securid-access.asp">RSA SecurID Access</a></li> 303 <li><a href="/securid-software.asp">RSA Software Authenticators</a></li> 304 <li><a href="/products.asp"><strong>View all Products</strong></a></li> 305 </ul> 306</div> 307<div class="col-md-2"> 308 <h3 class="footer-widget-title">Resources:</h3> 309 <ul class="list-unstyled"> 310 <li><a href="/about-us.asp">About Us</a></li> 311 <li><a href="/news.asp">News</a></li> 312 <li><a href="/shipping.asp">Shipping</a></li> 313 <li><a href="/policies/return-policy.asp">Returns</a></li> 314 <li><a href="/consulting.asp">Consulting</a></li> 315 </ul> 316</div> 317<div class="col-md-3"> 318<p class="phone-header" style="text-align:left">Call a Specialist Today!<br> 319 <a class="tel" href="tel:877-352-0546">877-352-0546</a></p> 320<form class="top-search" role="search" action="/search.php" method="get"> 321<div class="input-group"> 322 <input type="text" class="form-control" placeholder="Search by Model, Part, or SKU" name="q"> 323 <div class="input-group-btn"> 324 <button class="btn btn-primary" type="submit"><i class="fa fa-search"></i></button> 325 </div> 326</div> 327<br> 328<br> 329<a href="/policies/legal.asp"><img src="https://cdn.blueally.com/tokenguard/images/mastercard-visa-amex-discover.png" alt="BlueAlly accepts Mastercard, VISA, America Express and Discover Card"></a> 330</div> 331<div class="col-md-3"> 332 <h3 class="footer-widget-title">Contact:</h3> 333 Prominence Tower<br> 3343475 Piedmont Road NE<br> 335Suite 900, Atlanta, GA 30305<br> 336 <i class="fa fa-phone"></i> <a class="tel" href="tel:877-352-0546">877-352-0546</a><br> 337 <i class="fa fa-envelope"></i> <a href="/cdn-cgi/l/email-protection#54073538312714003b3f313a13213526307a373b39"><span class="__cf_email__" data-cfemail="cd9eaca1a8be8d99a2a6a8a38ab8acbfa9e3aea2a0">[email protected]</span></a><br> 338 <a href="/quoterequest.asp"><strong>Get a Quote!</strong></a><br> 339 <br> 340 <div class="icons"> <a id="facebook" title="Facebook page" href="//www.facebook.com/BlueAllyTech" target="_blank"><i class="fab fa-facebook-square fa-2x"></i></a> <a id="twitter" title="Twitter page" href="//twitter.com/BlueAlly_IT"><i class="fab fa-twitter-square fa-2x"></i></a> <a id="youtube" title="Youtube page" href="//www.youtube.com/c/BlueAllyTechnologies"><i class="fab fa-youtube-square fa-2x"></i></a> <a id="linkedin" title="LinkedIn page" href="//www.linkedin.com/company/blueally"><i class="fab fa-linkedin fa-2x"></i></a> </div> 341</div> 342</div> 343</div> 344</div> 345</aside> 346<footer id="footer"> 347 <p><strong>TokenGuard.com is a division of <a href="https://www.blueally.com/" target="_blank">BlueAlly, an authorized RSA reseller.</a></strong><br>
348 Copyright © 2000
vendor: 108 bytes, line 348
348<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
348<script>new Date().getFullYear()>2000&&document.write("-"+new Date().getFullYear());</script>
348. All Rights Reserved. <a href="/policies/legal.asp">Site Terms</a> and <a href="/policies/privacy-policy.asp">Privacy Policy</a></p> 349</footer>
350<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
350
351<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
vendor: 1 bytes, line 351
351
352<script src="/includes/custom.js?v=1"></script>
352 353<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 353-354
353 354<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
354GTM-K5RMCCC
vendor: 83 bytes, lines 354-355
354" 355height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
356<!-- End Google Tag Manager (noscript) --> 357<link href="/css/poststyle.css" rel="stylesheet"> <!-- #endregion --> 358 <!-- #region Section Scripts --> 359 360
360<script> 361 gtag('event', 'add_to_cart', { 362 currency: 'USD', 363 items: [ 364 ], 365 value: 0, 366 }); 367 </script>
367 368 369 370 371
372<script> 373(function() { 374 'use strict'; 375 376 const CartManager = { 377 portalUrl: '/portal', 378 379 init: function() { 380 this.bindEventHandlers(); 381 this.initializePopovers(); 382 this.initializeModals(); 383 }, 384 385 bindEventHandlers: function() { 386 $(document).on('click', '.postLink', this.handlePostLinkClick); 387 $(document).on('click', '.RemoveLink, .HiddenRemoveLink', this.handleRemoveFromCart.bind(this)); 388 $(document).on('click', '.HiddenUpdateLink', this.handleUpdateCart.bind(this)); 389 $(document).on('keyup', '.quantity-input', this.handleQuantityChange); 390 $(document).on('keypress', '.quantity-input', this.restrictToNumbers); 391 $(document).on('cut copy paste contextmenu', '.quantity-input', this.preventTextManipulation); 392 $(document).on('focus', 'input', this.selectInputOnFocus); 393 }, 394 395 initializePopovers: function() { 396 $('[data-toggle=popover]').popover(); 397 }, 398 399 initializeModals: function() { 400 $('#modal-container').on('show.bs.modal', function(event) { 401 const button = $(event.relatedTarget); 402 const url = button.attr('href'); 403 $(this).find('.modal-content').load(url); 404 }); 405 }, 406 407 handlePostLinkClick: function(e) { 408 $(this).closest('form')[0].submit(); 409 }, 410 411 handleRemoveFromCart: async function(e) { 412 e.preventDefault(); 413 const recordId = $(e.currentTarget).attr('data-id'); 414 if (!recordId) return; 415 416 try { 417 const response = await this.makeCartRequest('/cart/removefromcart', { id: recordId }); 418 if (response) { 419 this.updateCartUI(response); 420 } 421 } catch (error) { 422 console.error('Error removing item from cart:', error); 423 } 424 }, 425 426 handleUpdateCart: async function(e) { 427 e.preventDefault(); 428 const recordId = $(e.currentTarget).attr('data-id'); 429 const quantity = $(`#${recordId}`).val(); 430 431 if (!recordId) return; 432 433 try { 434 const response = await this.makeCartRequest('/cart/updatecart', { 435 id: recordId, 436 quantity: quantity 437 }); 438 439 if (response) { 440 this.updateCartUI(response); 441 if (response.itemCount > 0) { 442 $(`#Update${response.deleteId}`).hide(); 443 } 444 if (response.extendedPrice) { 445 $(`#cart-extended-price-${response.deleteId}`).text(response.extendedPrice); 446 } 447 } 448 } catch (error) { 449 console.error('Error updating cart:', error); 450 } 451 }, 452 453 makeCartRequest: function(endpoint, data) { 454 return new Promise((resolve, reject) => { 455 $.post(this.portalUrl + endpoint, data) 456 .done(function(rawData) { 457 const response = typeof rawData === 'string' ? JSON.parse(rawData) : rawData; 458 459 if (!response) { 460 CartManager.showEmptyCart(); 461 resolve(null); 462 return; 463 } 464 465 resolve(response); 466 }) 467 .fail(function(xhr, status, error) { 468 reject(error); 469 }); 470 }); 471 }, 472 473 updateCartUI: function(data) { 474 this.updateCartCount(data.cartCount); 475 476 if (data.itemCount === 0) { 477 this.removeCartItem(data.deleteId); 478 if (data.cartCount === 0) { 479 this.showEmptyCart(); 480 } 481 } 482 483 this.updateCartTotals(data.cartTotal); 484 }, 485 486 updateCartCount: function(count) { 487 const cartElement = document.getElementById('cartItemCount'); 488 if (cartElement) { 489 cartElement.innerHTML = `ITEMS (${count})`; 490 } 491 }, 492 493 removeCartItem: function(itemId) { 494 $(`#row-${itemId}`).fadeOut('slow'); 495 $(`#item-row-${itemId}`).fadeOut('fast'); 496 }, 497 498 showEmptyCart: function() { 499 $('#row-header').fadeOut('slow'); 500 const cartStatus = document.getElementById('cart-status'); 501 if (cartStatus) { 502 cartStatus.innerHTML = '<div class="item-row"><p class="bag-empty-msg">You have no items in your shopping cart.</p></div>'; 503 } 504 }, 505 506 updateCartTotals: function(total) { 507 const formattedTotal = total && total !== '0' ? total : '$0.00'; 508 $('#summary-cart-subtotal').text(formattedTotal); 509 $('#summary-cart-total').text(formattedTotal); 510 }, 511 512 handleQuantityChange: function(e) { 513 const value = this.value; 514 const currentId = $(this).attr('id'); 515 const deleteBtn = $(`#Delete${currentId}`); 516 const updateBtn = $(`#Update${currentId}`); 517 518 if (value === '0') { 519 deleteBtn.show(); 520 updateBtn.hide(); 521 } else if (value.length === 0) { 522 deleteBtn.hide(); 523 updateBtn.hide(); 524 } else { 525 deleteBtn.hide(); 526 updateBtn.show(); 527 } 528 }, 529 530 selectInputOnFocus: function(e) { 531 const element = this; 532 if (!$(element).data('focused')) { 533 $(element).data('focused', true); 534 setTimeout(() => element.select(), 50); 535 } 536 }, 537 538 restrictToNumbers: function(e) { 539 const isControlKey = e.which === 8 || e.which === undefined || e.
539which === 0; 540 const isNonNumeric = !isControlKey && String.fromCharCode(e.which).match(/[^0-9]/); 541 if (isNonNumeric) { 542 e.preventDefault(); 543 } 544 }, 545 546 preventTextManipulation: function(e) { 547 e.preventDefault(); 548 } 549 }; 550 551 window.deleteFromCart = function(sku, descr, price, quantity, total) { 552 if (typeof gtag !== 'undefined') { 553 gtag('event', 'remove_from_cart', { 554 currency: 'USD', 555 items: [{ 556 id: sku, 557 name: descr, 558 price: price, 559 quantity: quantity, 560 }], 561 value: total 562 }); 563 } 564 }; 565 566 $(document).ready(function() { 567 CartManager.init(); 568 }); 569})(); 570</script>
570 571 572 573 <!-- #endregion --> 574</body> 575</html>
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.