CINXE.COM
Houston Marketplace
<!DOCTYPE html> <html lang="en"> <head> <title>Houston Marketplace</title> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- <meta name="viewport" content="width=device-width, initial-scale=1"> --> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <link rel="stylesheet" href="/css/checkout/checkout_v3/styles.css?id=d710976f273229850f690fca9e2785db"> <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700;800&display=swap" rel="stylesheet"> <script src="/js/checkout/manifest.js?id=9c6aef2945dd87bbec29d319bf101b8b"></script> <script src="/js/checkout/vendor.js?id=0a87be26e751a8da7f1fa66fd499b520"></script> <script src="/js/checkout/app.js?id=f253d877ddb0eaa4a71467e0f9ed8a32"></script> <script src="https://kit.fontawesome.com/675f231c85.js" crossorigin="anonymous"></script> <link rel="shortcut icon" sizes="16x16" href="https://res.cloudinary.com/bandwango/image/upload/f_auto,q_auto/khccxnnrjonyc9fl4nj9"> <style> /* Link colors will all be the main color */ .bw-whats-included-txt a, .bw-vl-map__button, .bw-hours-text-container, .bw-vl--description--btn, .bw-ic--filter-container .bw-show-more-less, .seat_map_group:hover:not([disabled]) .seat_map_shape, .breadcrumbs a:hover, .popover-content .fa-circle { color: #049be5 !important; fill: #049be5 !important; } /* This will change the default active GREEN to desired color. */ .bw-pers-filter-checkbox input[type=checkbox]:checked + label::after,.checkout-content input[type=checkbox]:checked + label .box, .bw-c__cart-quantity-ctn .bw-c-amount-active, .bw-c--cart-quantity-active, .bw-add-to-cart-active, .datepicker-inline .active, .bw-pers-filter-checkbox input[type=checkbox]:checked + label::after, .bw-c--checkout-btn, .bw-apply-promo-code-btn, .bw-c--checkout-btn, .datepicker table tr td.active, .bw-c--add-to-cart { background: #049be5 !important; } .receipt-content_panel .panel_head, .checkout-home--slider__single-slide, .checkout-filter--slider a.active, .box__effect .line, .bw-c--open-cart, .open-cart, .receipt-content_panel .panel_head, .btn.btn-success, .count-block__control, .checkout-content input[type="radio"]:checked + label:hover .ch_radio:after, .checkout-content input[type="radio"]:checked + label .ch_radio:after { background-color:#049be5 !important; } .checkout-home--slider__description .btn-default:hover { color: #000000; border-color: #049be5; } .datepicker table tr td.today:after { border: 3px solid #049be5; } .includes__full-description a, .cart .cart-item__remove, .package-card__info section h5, .switch-month-select, .counter__price, .basic_categories ul li a.active, .basic_categories ul li a:hover { color:#000000; } /*//buttons, backgrounds, text colors*/ .open-cart, .open-cart--icon, .bw-ic--product-button-wrapper,.bw-ic--product-button-wrapper a, .cart-qty, .bw-c--open-cart i, .bw-c--cart-quantity-active, .bw-c--checkout-btn-embed, .bw-c__cart-quantity-ctn .bw-c-amount-active, .bw-pers-filter-checkbox input[type=checkbox]:checked + label::after ,.bw-add-to-cart-active, .datepicker .active, .bw-c--checkout-btn, .bw-apply-promo-code-btn, .bw-need-help-btn, .count-block__control, .datepicker-inline .active, .btn-hiw, .datepicker table tr td.active, .bw-c--add-to-cart, .checkout-content input[type=checkbox]:checked + label .box { background: #049be5 !important; background-color: #049be5 !important; border-color: #049be5 !important; fill: #000000 !important; color: #000000 !important; } .header-svg-button { cursor: pointer: } @media(min-width:769px) { .Main-svg { height: 485px; } } .bg-gray { background:white; } @media (min-width: 992px) { .specification__image { max-height: none !important; } .page-section { padding: 20px 0 !important; } .product-packages--list { margin-bottom: 0 !important; } .hiw-section { padding-bottom: 60px !important; } .offer-card-filter-div { overflow-y: hidden !important; } } .open-cart {display: block;} .3CardModule {justify-content: center;} /*NEW CSS*/ .bw-c--open-cart { display: block; } .bw-ig--svg-image-container svg { max-height: 700px; width: 100%; } </style> <!-- <script type="text/javascript"> if( typeof window.onerror === 'object' && window.onerror === null ) { window.onerror = function(message, file, lineNumber) { if( Number(lineNumber) > 10 ) { $.ajax({ type : 'POST', url : '/logs', dataType: 'json', data : { 'level': 'medium', 'assignment': 'checkout', 'message': message+' URL: '+document.location.href+'| File: '+file+'| Line: '+lineNumber } }); } } } </script> --> <script> if( typeof dataLayer === 'undefined' ) { dataLayer = []; } </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MXTMMT7');</script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-53MJ2CV');</script> <!-- End Google Tag Manager --> <meta name="description" content="Main Marketplace"> <meta property="og:title" content="Houston Marketplace"> <meta property="og:type" content="website"> <meta property="og:description" content="鈥婱ain Marketplace"> <meta property="og:url" content="/checkout/3/visit-houston/8/houston-marketplace"> <meta property="og:image" content="https://res.cloudinary.com/bandwango/image/upload/c_crop,h_1567,w_1567,x_233,y_-357/f_auto,q_auto/v1/partners/3/osn0hywgdl6ogueikobi"><meta name="twitter:image" content="https://res.cloudinary.com/bandwango/image/upload/c_crop,h_1567,w_1567,x_233,y_-357/f_auto,q_auto/v1/partners/3/osn0hywgdl6ogueikobi"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:url" content="/checkout/3/visit-houston/8/houston-marketplace"> <meta name="twitter:title" content="Houston Marketplace"> <meta property="twitter:description" content="鈥婱ain Marketplace"> </head> <body class="overflow-hidden"> <script> function _(el) { if( !(this instanceof _) ) { return new _(el); } this.el = document.getElementById(el); } _.prototype.fade = function fade(type, ms) { var isIn = type === 'in', opacity = isIn ? 0 : 1, interval = 50, duration = ms, gap = interval / duration, self = this; if(isIn) { self.el.style.display = 'inline'; self.el.style.opacity = opacity; } function func() { opacity = isIn ? opacity + gap : opacity - gap; self.el.style.opacity = opacity; if(opacity <= 0) self.el.style.display = 'none'; if(opacity <= 0 || opacity >= 1) window.clearInterval(fading); } var fading = window.setInterval(func, interval); }; window.onload = function() { _('preloader').fade('out', 500); document.body.classList.remove("overflow-hidden"); // onLoad(); }; function venueChanged(venueId) { if( venueId ) { window.location = '/checkout/3/visit-houston/8/houston-marketplace?venueId='+venueId; }else{ window.location = '/checkout/3/visit-houston/8/houston-marketplace'; } } </script> <!-- preloader start --> <div id="preloader" class="preloader hidden"> <div class="loading"> </div> </div> <!-- preloader end --> <div class="bw-main-wrapper"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MXTMMT7" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-53MJ2CV" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <section style="position: relative;"> <div class="bw-c--open-cart"> <p id="open-cart-qty" class="cart-qty">0</p> <svg class="open-cart--icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="20px" height="20px" viewBox="0 0 16 16"> <path d="M14 13.1v-1.1h-9.4l0.6-1.1 9.2-0.9 1.6-6h-12.3l-0.7-3h-3v1h2.2l2.1 8.4-1.3 2.6v1.5c0 0.8 0.7 1.5 1.5 1.5s1.5-0.7 1.5-1.5-0.7-1.5-1.5-1.5h7.5v1.5c0 0.8 0.7 1.5 1.5 1.5s1.5-0.7 1.5-1.5c0-0.7-0.4-1.2-1-1.4z"/> </svg> </div> <div class="bw-ic--filter-mobile-button bw-ic--filter-button--toggle hidden" onClick="headerFilterToggle();"> <svg width="20px" height="19px" viewBox="0 0 82 84" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Group" style="fill: white" transform="translate(0.500000, 0.500000)" fill="#000000"> <rect id="Rectangle" x="0" y="38.0814412" width="81.5" height="7" rx="3"></rect> <circle id="Oval" cx="60.5312515" cy="41.5814412" r="11"></circle> <rect id="Rectangle" x="0" y="68.6628824" width="81.5" height="7" rx="3"></rect> <circle id="Oval" cx="21.9618973" cy="72.1628824" r="11"></circle> <rect id="Rectangle" x="0" y="7.5" width="81.5" height="7" rx="3"></rect> <circle id="Oval" cx="40.75" cy="11" r="11"></circle> </g> </g> </svg> </div> </section> <div id="topCart" class="pop-up pop-up--cart"> <div class="pop-up__background"></div> <section class="pop-up__content bw-c--inner-content-ctn"> <section class="border-0 bw-c--cart-close-wrapper pop-up__close"> <img src="/checkoutAssets/bw-checkout-x.svg" alt="CloseMenu" class="pop-up__close"> </section> <div class="bw-c--title"> My Cart </div> <div class="bw-no-items-in-cart">You have no items in your cart.</div> <div class="bw-default-footer" style="margin-top: 50px;"> <div class="bw-default-footer__top_part align-items-center"> <ul> <li style="font-size: 12px; line-height: 16px; margin-left: 8px;"> <a class="" href="/checkout/3/visit-houston/8/houston-marketplace/help">Need Help?</a> </li> <li style="font-size: 12px; line-height: 16px; margin-left: 8px;"> <a class="terms-and-conditions" href="" data-toggle="modal" data-target=".modal-terms">Terms & Conditions and Privacy Policy</a> </li> </ul> </div> <div class=""> <div class="align-items-center"> <div class=" copy_side" align="right"> <a href="https://www.bandwango.com/"> <img src="https://app.bandwango.com/img/bandwango-logo.png" alt="" width="94" height="30" style="margin-left: 4px;" /> </a> </div> <div class=" copy_side" style="font-size: 12px; line-height: 16px; margin: 8px 0 0 8px;" align="right"> © 2024 Houston First Corporation, All Rights Reserved </div> </div> </div> </div> </section> <script> // Need both. $('.cart-qty').html('0'); $(document).ready(function() { $('.cart-qty').html('0'); // window.persistentCart.setCart({ items: 0 }); }); </script> </div> <script> function headerFilterToggle() { var moduleId = $(".bw-offer-card-filter-div:first").data("module-id"); openFilterToggle(moduleId) } $( document ).ready(function() { if( $('.bw-offer-card-filter-div')[0] ) { $('.bw-ic--filter-button--toggle').removeClass('hidden'); } }) </script> <!-- main content start--> <main role="main" class="bw-home-page"> <div class="row container-fluid"><div id="module-assignment-div-78828" class="col-md-12 bw-module-main-ctn Breadcrumb"> <section class="breadcrumbs" style="margin:20px 0 40px 0;"> <div class="flex-row"> <div class="flex-col-12"> <i class="glyphicon glyphicon-home" aria-hidden="true"></i> <a class="bw-continue-shopping-breadcrumb" href="/checkout/3/visit-houston/8/houston-marketplace">Continue Shopping</a> / <span>Houston Brew Pass</span> </div> </div> </section> </div><div id="module-assignment-div-78829" class="col-md-12 bw-module-main-ctn CustomHTML"> <div class="container-fluid"> <div class="bw-html-module"> <div class=""> <div class=""> <h2>Houston Brew Passes</h2> <p>Sip your way through Houston and taste new flavors and discounted beer flights from your favorite breweries! It鈥檚 a great way to get a taste of the city. </p> </div> </div> </div> </div> </div><div id="module-assignment-div-78827" class="col-md-12 bw-module-main-ctn OfferCards"> <section class="bw-offer-module bw-page-section bw-ic-product-list pb-0 offer-module-78827" data-module-id="78827"> <a id="itemsAnchor" name="items"></a> <a id="module-anchor-78827" name="module-78827"></a> <div class="bw-ic--card-container"> <div class="bw-ic--packages-list-wrapper bw-ic--package-list-wrapper-center"> <div id="item-deal-78827-1101" class="bw-ic--item-card item item-module-78827 itemcat-309 itemcat-667 itemcat-2058 itemcat-2185 itemcat-2186 itemcat-2317 itemcat-3721 itemcat-3723 v-7764 v-9088 v-41293 v-6498 v-53904 v-4993 v-3866 v-9084 v-11200 v-4146 v-2710 v-100271 v-4097 v-4069 v-7757 v-13001"> <div class="bw-flex bw-w-100"> <div class="bw-item-card-inner-wrapper"> <div class="bw-item-card-img-ctn"> <a href="/checkout/3/visit-houston/8/houston-marketplace/deal/1101/1-day-houston-brew-pass?template=embed"><div class="bw-image-card-ctn"><img class="bw-ic-image lazy" src=https://res.cloudinary.com/bandwango/image/upload/c_crop,h_401,w_801,x_0,y_229/w_600,f_auto,q_auto/v1/partners/deal/1101/krx9kcmwrsz1vbpgqbyq alt=""></div></a><span class="bw-ic--special-offer" >save 81%</span> </div> <div class="bw-ic--info"> <div class=""> <h4 class="bw-ic--product-title"> <span bablic-no-vars>1-Day Houston Brew Pass</span> </h4> </div> <div class=""> <div class="" style="margin-bottom: 15px;"> <ul class="bw-ic--highlight-container"><li class="bw-ic--highlight-single">Pick up to 4 of your favorite breweries to explore with this 1-day pass</li><li class="bw-ic--highlight-single"> Exclusive perks and discounts offered with purchase</li><li class="bw-ic--highlight-single"> Valid for 24 hrs after first use</li><li class="bw-ic--highlight-single"> <b>Purchase here to save 81% on retail price</b></li></ul> </div> </div> </div> <div id="price-div-78827-deal-1101" class="bw-ic--price-ctn"> <div class="bw-ic--price"> <span>$33.95</span> </div> </div> <div class="bw-ic--btn-container bw-gtm-add-to-cart"> <button class="bw-ic--product-button-wrapper bw-gtm-a2c" data-bwitemid="1101" data-bwitemtype="deal" data-bwitemname="1-Day Houston Brew Pass" onClick="addToCart('1101', 'deal')"><a role="button" class="bw-ic-btn add-to-cart">Add to Cart</a></button><a href="/checkout/3/visit-houston/8/houston-marketplace/deal/1101/1-day-houston-brew-pass?template=embed" class="bw-ic--learn-more-btn bw-ic--product-button-wrapper bw-gtm-learn-more" data-bwitemid="1101" data-bwitemtype="deal" data-bwitemname="1-Day Houston Brew Pass">Learn More</a> </div> </div> </div> </div> <div id="item-deal-78827-1136" class="bw-ic--item-card item item-module-78827 itemcat-309 itemcat-667 itemcat-2058 itemcat-2186 itemcat-3721 itemcat-3723 v-7764 v-9088 v-41293 v-6498 v-53904 v-4993 v-3866 v-9084 v-11200 v-4146 v-2710 v-100271 v-4097 v-4069 v-7757 v-13001"> <div class="bw-flex bw-w-100"> <div class="bw-item-card-inner-wrapper"> <div class="bw-item-card-img-ctn"> <a href="/checkout/3/visit-houston/8/houston-marketplace/deal/1136/3-day-houston-brew-pass?template=embed"><div class="bw-image-card-ctn"><img class="bw-ic-image lazy" src=https://res.cloudinary.com/bandwango/image/upload/c_crop,h_1000,w_2000,x_0,y_39/w_600,f_auto,q_auto/v1/partners/deal/1136/ctnj1frz2xovv9xhga8o alt=""></div></a><span class="bw-ic--special-offer" >save 72%</span> </div> <div class="bw-ic--info"> <div class=""> <h4 class="bw-ic--product-title"> <span bablic-no-vars>3-Day Houston Brew Pass</span> </h4> </div> <div class=""> <div class="" style="margin-bottom: 15px;"> <ul class="bw-ic--highlight-container"><li class="bw-ic--highlight-single">Taste your way through 16 craft breweries</li><li class="bw-ic--highlight-single"> Exclusive perks and discounts offered with purchase</li><li class="bw-ic--highlight-single"> Valid for 72 hrs after first use</li><li class="bw-ic--highlight-single"> <b>Purchase here to save 72% on retail price</b></li></ul> </div> </div> </div> <div id="price-div-78827-deal-1136" class="bw-ic--price-ctn"> <div class="bw-ic--price"> <span>$49.95</span> </div> </div> <div class="bw-ic--btn-container bw-gtm-add-to-cart"> <button class="bw-ic--product-button-wrapper bw-gtm-a2c" data-bwitemid="1136" data-bwitemtype="deal" data-bwitemname="3-Day Houston Brew Pass" onClick="addToCart('1136', 'deal')"><a role="button" class="bw-ic-btn add-to-cart">Add to Cart</a></button><a href="/checkout/3/visit-houston/8/houston-marketplace/deal/1136/3-day-houston-brew-pass?template=embed" class="bw-ic--learn-more-btn bw-ic--product-button-wrapper bw-gtm-learn-more" data-bwitemid="1136" data-bwitemtype="deal" data-bwitemname="3-Day Houston Brew Pass">Learn More</a> </div> </div> </div> </div> <div id="item-deal-78827-1143" class="bw-ic--item-card item item-module-78827 itemcat-309 itemcat-667 itemcat-2058 itemcat-2317 itemcat-3721 itemcat-3723 v-7764 v-9088 v-41293 v-6498 v-53904 v-4993 v-3866 v-9084 v-11200 v-4146 v-2710 v-100271 v-4097 v-4069 v-7757 v-13001"> <div class="bw-flex bw-w-100"> <div class="bw-item-card-inner-wrapper"> <div class="bw-item-card-img-ctn"> <a href="/checkout/3/visit-houston/8/houston-marketplace/deal/1143/90-day-houston-brew-pass?template=embed"><div class="bw-image-card-ctn"><img class="bw-ic-image lazy" src=https://res.cloudinary.com/bandwango/image/upload/c_crop,h_2016,w_4032,x_0,y_354/w_600,f_auto,q_auto/v1/partners/deal/1143/aug2kmzu0askytvzyuts alt=""></div></a><span class="bw-ic--special-offer" >save 57%</span> </div> <div class="bw-ic--info"> <div class=""> <h4 class="bw-ic--product-title"> <span bablic-no-vars>90-Day Houston Brew Pass</span> </h4> </div> <div class=""> <div class="" style="margin-bottom: 15px;"> <ul class="bw-ic--highlight-container"><li class="bw-ic--highlight-single">Sample & savor unique flavors at 16 local favorite breweries</li><li class="bw-ic--highlight-single"> Exclusive perks and discounts offered with purchase</li><li class="bw-ic--highlight-single"> Valid for 90 days after first use</li><li class="bw-ic--highlight-single"> <b>Purchase here to save 57% on retail price</b></li></ul> </div> </div> </div> <div id="price-div-78827-deal-1143" class="bw-ic--price-ctn"> <div class="bw-ic--price"> <span>$74.95</span> </div> </div> <div class="bw-ic--btn-container bw-gtm-add-to-cart"> <button class="bw-ic--product-button-wrapper bw-gtm-a2c" data-bwitemid="1143" data-bwitemtype="deal" data-bwitemname="90-Day Houston Brew Pass" onClick="addToCart('1143', 'deal')"><a role="button" class="bw-ic-btn add-to-cart">Add to Cart</a></button><a href="/checkout/3/visit-houston/8/houston-marketplace/deal/1143/90-day-houston-brew-pass?template=embed" class="bw-ic--learn-more-btn bw-ic--product-button-wrapper bw-gtm-learn-more" data-bwitemid="1143" data-bwitemtype="deal" data-bwitemname="90-Day Houston Brew Pass">Learn More</a> </div> </div> </div> </div> </div> </div> </section> <script> bwjQuery(document).ready(function(){ updateFilters78827(); }) function updateFilters78827() { var itemsJson = [{"id":1101,"name":"1-Day Houston Brew Pass","type":"deal","venueIds":[7764,9088,41293,6498,53904,4993,3866,9084,11200,4146,2710,100271,4097,4069,7757,13001],"categoryIds":[309,667,2058,2185,2186,2317,3721,3723]},{"id":1136,"name":"3-Day Houston Brew Pass","type":"deal","venueIds":[7764,9088,41293,6498,53904,4993,3866,9084,11200,4146,2710,100271,4097,4069,7757,13001],"categoryIds":[309,667,2058,2186,3721,3723]},{"id":1143,"name":"90-Day Houston Brew Pass","type":"deal","venueIds":[7764,9088,41293,6498,53904,4993,3866,9084,11200,4146,2710,100271,4097,4069,7757,13001],"categoryIds":[309,667,2058,2317,3721,3723]}]; var venuesJson = [{"id":2710,"name":"Holler Brewing Co.","categoryIds":[835,2025,2073]},{"id":3866,"name":"Eureka Heights Brew Co","categoryIds":[835,898,2025,2085]},{"id":4069,"name":"Saint Arnold Brewing Company","categoryIds":[835,2071]},{"id":4097,"name":"Platypus Brewing","categoryIds":[835,2073]},{"id":4146,"name":"Great Heights Brewing Company","categoryIds":[835,2025,2085]},{"id":4993,"name":"Equal Parts Brewing","categoryIds":[835,2088]},{"id":6498,"name":"City Acre Brewing ","categoryIds":[2083]},{"id":7757,"name":"Southern Star Brewing Company","categoryIds":[2080]},{"id":7764,"name":"B52 Brewing","categoryIds":[835,2080]},{"id":9084,"name":"Galveston Island Brewing","categoryIds":[835,2025,2028,2076]},{"id":9088,"name":"Beerfoot Brewery","categoryIds":[835,2028,2076]},{"id":11200,"name":"Giant Texas Distillery","categoryIds":[835]},{"id":13001,"name":"True Anomaly Brewing Company","categoryIds":[835,2088]},{"id":41293,"name":"Buckstin Brewing Company","categoryIds":[835]},{"id":53904,"name":"City Orchard","categoryIds":[835]},{"id":100271,"name":"New Magnolia Brewing Co","categoryIds":[835,5003,5005]}]; bwjQuery('.item-module-78827').removeClass('hidden'); var hideItems = []; bwjQuery('.filter-section-78827').each(function() { var venuesSelected = []; var itemCatgoriesSelected = []; var venueCatgoriesSelected = []; bwjQuery('input[type=checkbox]', this).each(function() { if( bwjQuery(this).is(":checked") ) { if( bwjQuery(this).hasClass('bw-filter-venue-input') ) { venuesSelected.push(Number(bwjQuery(this).val())); bwjQuery([document.documentElement, document.body]).animate({ scrollTop: bwjQuery('.offer-module-78827').offset().top + -30 }, 150); }else if( bwjQuery(this).hasClass('bw-filter-item-categories-input') ) { itemCatgoriesSelected.push(Number(bwjQuery(this).val())); bwjQuery([document.documentElement, document.body]).animate({ scrollTop: bwjQuery('.offer-module-78827').offset().top + -30 }, 150); }else if( bwjQuery(this).hasClass('bw-filter-venue-categories-input') ) { venueCatgoriesSelected.push(Number(bwjQuery(this).val())); bwjQuery([document.documentElement, document.body]).animate({ scrollTop: bwjQuery('.offer-module-78827').offset().top + -30 }, 150); } } }); // Check to see if any categories are assigned to venues. if( venueCatgoriesSelected.length ) { for( var i=0; i<venuesJson.length; i++ ) { if( venuesJson[i].categoryIds && venuesJson[i].categoryIds.some(function(r) { return venueCatgoriesSelected.includes(r) } ) ) { venuesSelected.push(venuesJson[i].id); } } } if( venuesSelected.length ) { for( var i=0; i<itemsJson.length; i++ ) { if( !itemsJson[i].venueIds || !itemsJson[i].venueIds.some(function(r) { return venuesSelected.includes(r) } ) ) { hideItems.push(itemsJson[i]); } } } if( itemCatgoriesSelected.length ) { for( var i=0; i<itemsJson.length; i++ ) { if( !itemsJson[i].categoryIds || !itemsJson[i].categoryIds.some(function(r) { return itemCatgoriesSelected.includes(r) } ) ) { hideItems.push(itemsJson[i]); } } } }); for( var i=0; i<hideItems.length; i++ ) { var itemId = 'item-'+hideItems[i].type+'-78827-'+hideItems[i].id; bwjQuery('#'+itemId).addClass('hidden'); } } function clearCheckInputs78827() { var moduleCheckboxes = bwjQuery('#offer-card-left-filter-78827 input:checkbox'); bwjQuery(moduleCheckboxes).prop('checked', false); bwjQuery([document.documentElement, document.body]).animate({ scrollTop: bwjQuery('.offer-module-78827').offset().top }, 750); return updateFilters78827(); } function addFilterClasses78827() { var parent = '.offer-module-78827'; bwjQuery(".package-card--image", parent).each(function(){ return !bwjQuery(this).parentsUntil(parent, ".package-card--image").length; }).addClass("package-card--image-filter"); bwjQuery(".bw-ic--card-container", parent).each(function(){ return !bwjQuery(this).parentsUntil(parent, ".bw-ic--card-container").length; }).addClass("offer-filter-card-container"); bwjQuery('.offer-module-78827').addClass('bw-ic-filter-module-container') } function toggleFilterSections78827(sectionNum, lessMore) { if( lessMore == 'more' ) { bwjQuery('.filter-more-78827-'+sectionNum).removeClass('hidden'); bwjQuery('.filter-show-more-78827-'+sectionNum).addClass('hidden'); bwjQuery('.filter-show-less-78827-'+sectionNum).removeClass('hidden'); }else{ bwjQuery('.filter-more-78827-'+sectionNum).addClass('hidden'); bwjQuery('.filter-show-more-78827-'+sectionNum).removeClass('hidden'); bwjQuery('.filter-show-less-78827-'+sectionNum).addClass('hidden'); } } function filterSlide78827() { return false; var container = bwjQuery('.offer-module-78827'); var origOffsetY = container.offset().top; var filter = bwjQuery('#offer-card-left-filter-78827'); var filterButton = bwjQuery('.filter-button-78827'); var mobileCloseButton = bwjQuery('.close-filter-mobile-78827') var screenWidth = bwjQuery(window).width(); var containerOffset = container.offset(); var currentScroll = window.scrollY; var oldScroll; function scrollDown(e) { currentScroll = window.scrollY // if the scroll is below or past the container it will hide the current filter module button. if(window.scrollY < containerOffset.top || window.scrollY > containerOffset.top + container.height() ){ filterButton.removeClass('mobileFilterActive') } } document.addEventListener("scroll", scrollDown); } </script> </div></div> </main> <!-- main content end --> <div class="custom-footer-wrapper"> <section class="upper-footer-section"> <div style="padding: 20px 0;"> <img style="max-width: 275px;" src="https://res.cloudinary.com/bandwango/image/upload/v1560386820/A2_HoustonFirst_o9ytfd.png" alt="Logo"> </div> <a href="https://experience.visithouston.com/checkout/3/experience.visithouston/8/experience.visithouston/help" target="_blank"><div style="padding-right: 10px; font-weight: bold; font-size: 22px; margin-bottom: 5px;" class="need-help">Need Help?</div></a> </section> <section class="lower-footer-section"> <a class="terms-and-conditions" href="" data-toggle="modal" data-target=".modal-terms">Terms & Conditions</a> <div class="houston-first-copyright">漏 2019 Houston First Corporation, All Rights Reserved</div> </section> </div> <style> .custom-footer-wrapper { display: flex; flex-direction: column; padding: 15px 30px; max-width: 1510px; margin: 0 auto; } .terms, .houston-first-copyright { font-size: 12px; color: #878787; } .upper-footer-section, .lower-footer-section { display: flex; justify-content: space-between; flex-direction: column; } .upper-footer-section { border-bottom: 1px solid lightgray; margin-bottom: 5px; } .lower-footer-section div { margin: 5px 0; } @media(min-width: 1024px) { .upper-footer-section, .lower-footer-section { flex-direction: row; align-items: center; } } </style> <script> $(document).ready(function(){ $("#myModalLabel").html(`<div>Houston Experience Marketplace</div>`) }) </script> <div class="modal fade modal-terms" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h3 class="modal-title" id="myModalLabel">Terms & Conditions, Privacy Policy, Refund Policy</h3> </div> <div class="modal-body"> <h4 class="modal-body__title">Terms & Conditions</h4>Vouchers are redeemable for certain goods, services or experiences offered by, or facilitated through, the Merchant identified on the Voucher. The Merchant is the issuer of the Voucher and is solely responsible for all matters pertaining to the redemption and use of the Voucher. Furthermore, the Merchant is fully and solely responsible for the care and quality of all goods and services it provides to you and for any and all injuries, illnesses, damages, claims, liabilities and costs ("Liabilities") it may cause you to suffer, directly or indirectly, in full or in part, whether related to the use or redemption of a Voucher or not. You waive and release Bandwango, Houston First Corporation, and Greater Houston Convention & Visitors Bureau, including their subsidiaries, affiliates, partners, officers, directors, employees, and agents, (collectively, the "Released Parties") from any Liabilities arising from, related to, or sustained in connection with any act or omission of a Merchant, its employees, agents, contractors, and invitees, in connection with your use of a Voucher or the goods, services or experiences a Merchant provides in connection with the Voucher. Services performed by the Released Parties are provided "AS IS" without warranties of any kind, express or implied, including any implied warranty of merchantability or fitness for a particular purpose.<br/><br/><h4 class="modal-body__title">Privacy Policy</h4>Customer information is collected for the purpose of processing your order. This information is kept confidential and is not shared except to the limited extent disclosure may be required under applicable law. During checkout, we may ask you if you would like to receive marketing communications. If you opt-in, then you will receive communications according to what you opted into.<br/><br/><h4 class="modal-body__title">Refund Policy</h4>Refund Policies vary by item. See refund policy on the item鈥檚 description. Please contact customer service. Restrictions apply.<br /> <br /> In cases where a refund may be available, refunds may be made on certain unredeemed vouchers only.<br/><br/> </div> <div class="modal-footer"> <button type="button" class="bw-ic--product-button-wrapper m-0" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div id="modal-error" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content bw-error-module"> <div class="modal-header" style="border-bottom:none;"> <h3 class="modal-title bw-error-module__title" id="modalErrorTitle"><i class="glyphicon glyphicon-warning-sign" aria-hidden="true"></i> Error</h3> </div> <div id="modalErrorBody" class="modal-body bw-error-module__body"> </div> <div class="modal-footer bw-error-module__footer"> <button type="button" class="bw-ic--product-button-wrapper" data-dismiss="modal">Close</button> </div> </div> </div> </div> <!-- <script src="https://kit.fontawesome.com/d9686790d5.js" crossorigin="anonymous"></script> --> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAM1cC2yyFYkTKCO1i5TDsvgiv7UTu9uNI&libraries=places"></script> <script> $.easing.jswing = $.easing.swing; $.extend($.easing, { def: 'easeOutQuad', easeInOutCubic: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t + b; return c/2*((t-=2)*t*t + 2) + b; } }); </script> <script> var countDownRunning = false; var availableDates; /* function resetCart() { $('#resetButton').addClass('disabled'); $('#resetButton').html('Resetting...'); $.ajax({ type : 'GET', url : '/checkout/resetCart', dataType: 'json', success : function() { $('#resetButton').removeClass('disabled'); $('#resetButton').html('Reset Cart'); updateCart(true); updateSummary(); }, error: function(response) { $('#resetButton').removeClass('disabled'); $('#resetButton').html('Reset Cart'); alert('The following error ocurred: '+response.responseJSON.message); } }); } */ function updateCart(show) { if( $('#topCart') ) { $.ajax({ type : 'GET', dataType : 'html', url : '/checkout/cart?page=perk', success : function(html) { $('#topCart').html(html); if( show ) { $('body').addClass('overflow-hidden cart-is-open'); $('.pop-up--cart').addClass('active'); // window.persistentCart.setCart({ active: true }); } }, error: function () { console.log('An error ocurred updating the cart.'); } }); } } function updateSummary() { if( $('#orderSummary') ) { $('#orderSummary').css('opacity', 0.2); $.ajax({ type : 'GET', dataType : 'html', url : '/checkout/summary?recalculate=1', success : function(html) { console.log('Summary updated'); $('#orderSummary').html(html); $('#orderSummary').css('opacity', 1); }, error: function () { console.log('An error ocurred updating the summary.'); $('#orderSummary').css('opacity', 1); } }); } } function updateCustomer(callback) { $.ajax({ type : 'POST', url : '/checkout/updateOrderCustomer', dataType: 'json', data : { 'first_name': $('#firstName').val(), 'last_name': $('#lastName').val(), 'city': $('#city').val(), 'state': $('#state').val(), 'country': $('#country').val(), 'zip_code': $('#zip_code').val(), 'phone': $('#phone').val(), 'email': $('#email').val(), }, success : function() { callback(); }, error: function(response) { alert('The following error occurred: '+response.responseJSON.message); } }); } var customerFieldsLastValue = {}; function customerFieldChanged(fieldId, callback) { var fieldValue = $('#'+fieldId).val(); if( !customerFieldsLastValue[fieldId] || customerFieldsLastValue[fieldId] != fieldValue ) { var data = {}; data[fieldId] = fieldValue; customerFieldsLastValue[fieldId] = fieldValue; var isFieldValid = $('#checkout').data('formValidation').isValidField('customer['+fieldId+']'); if( fieldId === 'phone' ) { const phoneIntlTelInput = window.intlTelInput.getInstance(document.querySelector('#'+fieldId)); data[fieldId] = phoneIntlTelInput.getNumber(); // format with international code } if( data[fieldId] && isFieldValid ) { $.ajax({ type : 'POST', url : '/checkout/updateOrderCustomer', dataType: 'json', data : data, success : function() { if( typeof callback === "function" ) { callback(); } } }); } } } function updateDistributionField(itemType, orderItemId, fieldId, field) { var data = {}; data.itemType = itemType; data.orderItemId = orderItemId; data.fieldId = fieldId; data.value = field.value; var isFieldValid = $('.form-validation').data('formValidation').isValidField(field.name); if( itemType && orderItemId && fieldId && isFieldValid ) { $.ajax({ type : 'POST', url : '/checkout/updateDistributionField', dataType: 'json', data : data, success : function() { console.log('Field saved'); } }); } } function updateField(fieldId, field, itemType, orderItemId) { var data = {}; if(itemType) { data.itemType = itemType; data.orderItemId = orderItemId; } data.fieldId = fieldId; data.value = field.value; if(field.type === 'checkbox' && !field.checked) { data.value = ''; } var isFieldValid = field.type === 'checkbox' || $('.form-validation').data('formValidation').isValidField(field.name); if( fieldId && isFieldValid ) { $.ajax({ type : 'POST', url : '/checkout/updateField', dataType: 'json', data : data, success : function() { console.log('Field saved'); } }); } } function applyPromoCode() { var promoCode = $('#promoCode').val(); if( !promoCode.length ) { alert('Please provide a promo code.'); return false; } $('#applyPromoCodeButton').button('loading'); $.ajax({ type : 'POST', url : '/checkout/applyPromoCode', dataType: 'json', data : { 'code': promoCode }, success : function() { $('#applyPromoCodeButton').button('reset'); //updateSummary(); updateCustomer(function(){ var url = '/checkout/3/visit-houston/8/houston-marketplace/overview'; var serialize = $('.gift-field').serialize().replace(/[^&]+=&/g, '').replace(/&[^&]+=$/g, ''); if( serialize.length && serialize != 'distribute%5Bmessage%5D=' ) { url += '?'+serialize; } window.location.href = url; }); }, error: function (response) { $('#applyPromoCodeButton').button('reset'); alert('The following error ocurred: '+response.responseJSON.message); } }); } function escapeJQuerySelector(value) { if (!value) { return value; } const cssSpecialChars = { "!": "\\21", "#": "\\23", "$": "\\24", "%": "\\25", "&": "\\26", "'": "\\27", "(": "\\28", ")": "\\29", "*": "\\2a", "+": "\\2b", ",": "\\2c", ".": "\\2e", "/": "\\2f", ":": "\\3a", ";": "\\3b", "<": "\\3c", "=": "\\3d", ">": "\\3e", "?": "\\3f", "@": "\\40", "[": "\\5b", "\\": "\\5c", "]": "\\5d", "^": "\\5e", "`": "\\60", "{": "\\7b", "|": "\\7c", "}": "\\7d", "~": "\\7e" }; return value.replace(/[!#\$%&'\(\)\*\+,\.\/:;<=>\?@\[\\\]\^`\{\|\}~]/g, function (match) { return cssSpecialChars[match]; }); } function removePromoCode(promoCode) { if( !promoCode.length ) { alert('Invalid promo code.'); return false; } if( !confirm('Are you sure you want to remove this promo code?') ) { return false; } const escapedPromoCode = escapeJQuerySelector(promoCode); $('#tr-'+escapedPromoCode).css('opacity', 0.2); $.ajax({ type : 'POST', url : '/checkout/removePromoCode', dataType: 'json', data : { 'code': promoCode }, success : function() { //updateSummary(); location.reload(); }, error: function (response) { alert('The following error ocurred: '+response.responseJSON.message); $('#tr-'+escapedPromoCode).css('opacity', 1); } }); } function addToCart(itemId, itemType) { $('#addToCart') .html('<div class="modal-dialog"><div class="modal-content" id="addToCartContent"><div style="width:250px; height:250px;">Loading...</div></div></div>') .modal(); $.ajax({ type : 'GET', url : '/checkout/addToCart', data : { 'partnerId': '3', 'offerId': '8', 'itemId': itemId, 'itemType': itemType }, success : function(html) { $('#addToCart').html(html); initiateCalendar(); } }); } function addItemsToCart(itemId, itemType, oneQty, integrationData) { var selectedDateUtc = ''; var selectedDateTimeUtc = ''; var qty = {}; var fields = {}; var totalQuantity = 0; if( !oneQty ) { $('.'+itemId+'-'+itemType).each(function() { var total = parseInt($(this).val()); var attribute = $(this).attr('attribute'); if( total > 0 ) { qty[attribute] = total; totalQuantity += total; } }); if( totalQuantity <= 0 ) { alert('You must select a quantity.'); return false; } }else{ qty[0] = 1; totalQuantity = 1; } if( document.getElementById('form-fields-'+itemId+'-'+itemType) ) { $('#form-fields-'+itemId+'-'+itemType).data('formValidation').validate(); if( !$('#form-fields-'+itemId+'-'+itemType).data('formValidation').isValid() ) { alert('Please update or correct all fields in red.'); return false; } $('#fields-'+itemId+'-'+itemType+' .field').each(function() { var fieldId = $(this).data('id'); var fieldValue = $(this).val(); if( fieldValue.length ) { fields[fieldId] = fieldValue; } }); } var selectedDateTime = ''; if( document.getElementById('date-'+itemId+'-'+itemType) ) { if( !$('#date-'+itemId+'-'+itemType).val() ) { alert('You must select a date.'); return false; } if( document.getElementById('time-'+itemId+'-'+itemType) && !$('#time-'+itemId+'-'+itemType).val() ) { alert('You must select a time.'); return false; } var selectedDate = $('#date-'+itemId+'-'+itemType).val(); var selectedTime = $('#time-'+itemId+'-'+itemType).val(); if( selectedDate ) { selectedDateUtc = moment.tz(selectedDate, 'YYYY-MM-DD', 'America/Chicago').utc().format('YYYY-MM-DD HH:mm:ss'); if( selectedTime ) { selectedDateTimeUtc = moment.tz(selectedDate+' '+selectedTime, 'YYYY-MM-DD HH:mm:ss', 'America/Chicago').utc().format('YYYY-MM-DD HH:mm:ss'); }else{ selectedDateTimeUtc = moment.tz(selectedDate, 'YYYY-MM-DD', 'America/Chicago').utc().format('YYYY-MM-DD HH:mm:ss'); } } } $('#add-to-cart-button').button('loading'); $('#buy-now-button-'+itemId+'-'+itemType).button('loading'); $.ajax({ type : 'POST', url : '/checkout/addItemsToCart', dataType: 'json', data : { 'partnerId': '3', 'offerId': '8', 'itemId': itemId, 'itemType': itemType, 'selectedDate': selectedDateUtc, 'selectedDateTime': selectedDateTimeUtc, 'qty': qty, 'fields': fields, 'integrationData': integrationData, 'oneQty': oneQty }, success : function(response) { if( response.status == 'success') { $('#addToCart-'+itemId+'-'+itemType).addClass('hidden'); $('#add-to-cart-button').button('reset'); $('#buy-now-button-'+itemId+'-'+itemType).button('reset'); $('#addToCart').modal('hide'); // Fire GTM add to cart. if( typeof dataLayer !== 'undefined' && response.items ) { var products = []; for( var i=0; i<response.items.length; i++ ) { products.push({ 'id': response.items[i].id, 'name': response.items[i].name, 'price': response.items[i].price, 'brand': '', 'category': '', 'variant': response.items[i].attributeName, 'quantity': Number(response.items[i].quantity) }); } dataLayer.push({ 'event': 'addToCart', 'ecommerce': { 'add': { 'products': products } } }); } if( response.message && response.message.length ) { $('#modalErrorBody').html(response.message); $('#modalErrorTitle').hide(); $('#modal-error').modal('show'); }else{ updateCart(true); } }else{ $('#addToCart').modal('hide'); $('#add-to-cart-button').button('reset'); $('#buy-now-button-'+itemId+'-'+itemType).button('reset'); $('#modalErrorBody').html(response.message); $('#modalErrorTitle').show(); $('#modalErrorTitle').html('<i class="glyphicon glyphicon-warning-sign" aria-hidden="true"></i> Error'); $('#modal-error').modal('show'); } $('.counter__count-hidden').each(function() { $(this).val('0'); }); $('.count-block__value').each(function() { $(this).html('0'); }); $('#date-'+itemId+'-'+itemType).val(''); $('#time-'+itemId+'-'+itemType).val(''); $('.availability-calendar').datepicker('destroy'); $('#addToCartCalendar').addClass('hidden'); $('#switch-month-select').addClass('hidden'); $('#addToCartTimes').addClass('hidden'); $('#timeOptions').html(''); initiateCalendar(); }, error: function(response) { $('#addToCart-'+itemId+'-'+itemType).addClass('hidden'); $('#add-to-cart-button').button('reset'); $('#buy-now-button-'+itemId+'-'+itemType).button('reset'); $('#addToCart').modal('hide'); updateCart(true); } }); } function getAvailableDates() { var itemId = $('#date-item-id').val(); var itemType = $('#date-item-type').val(); var qty = ''; $('.'+itemId+'-'+itemType).each(function() { var total = parseInt($(this).val()); var attribute = $(this).attr('attribute'); if( total > 0 ) { qty += '&qty['+attribute+']='+total; $('#addToCartCalendar').removeClass('hidden'); $('.bw-cart-panel-heading-step2').addClass('cart-panel-heading-active'); } }); $("#checkAvailableDatesButton").attr("disabled", true); $('#checkAvailableDatesButton').html('<i class="fa fa-spinner fa-spin"></i> Finding dates...'); $('#date-'+itemId+'-'+itemType).val(''); $('#time-'+itemId+'-'+itemType).val(''); $.ajax({ type : 'GET', dataType: 'json', url : '/checkout/availableDates?itemId='+itemId+'&itemType='+itemType+qty, success : function(dates) { availableDates = dates; var initMonth = null; var initYear = null; if( dates && dates.length ) { initMonth = getNearestMonth(dates); initYear = getNearestYear(dates); } $('.datepicker').css({opacity: 1}); $("#checkAvailableDatesButton").attr("disabled", false); $('#checkAvailableDatesButton').html('Check Availability'); $('#checkAvailableDatesButtonDiv').hide(); $('.availability-calendar').show(); $('.availability-calendar').datepicker('destroy'); initiateCalendar(initMonth, initYear); if( dates && !dates.length ) { $('#availableDatesNoneDiv').show(); }else{ $('#switch-month-select').removeClass('hidden'); } } }); } function getAvailableTimes() { var itemId = $('#date-item-id').val(); var itemType = $('#date-item-type').val(); var date = $('#date-'+itemId+'-'+itemType).val(); var qty = ''; $('.'+itemId+'-'+itemType).each(function() { var total = parseInt($(this).val()); var attribute = $(this).attr('attribute'); if( total > 0 ) { qty += '&qty['+attribute+']='+total; } }); $('#addToCartTimes').removeClass('hidden'); // $('.bw-cart-panel-heading-step3').addClass('cart-panel-heading-active'); $('#timeOptions').html('Loading times...'); $('#time-'+itemId+'-'+itemType).val(''); $.ajax({ type : 'GET', url : '/checkout/availableTimes?itemId='+itemId+'&itemType='+itemType+'&date='+date+qty, success : function(html) { $('#timeOptions').html(html); } }); } function getNearestMonth(dates) { var now = new Date(); var datesArr = []; $.each(dates, function(i, date) { datesArr.push(date.date); }); datesArr = datesArr.sort()[0].split('-'); return datesArr[1]; } function getNearestYear(dates) { var now = new Date(); var datesArr = []; $.each(dates, function(i, date) { datesArr.push(date.date); }); datesArr = datesArr.sort()[0].split('-'); return datesArr[0]; } function isAvailable(date) { var dmy = date.getFullYear() + '-' + ('0' + (date.getMonth()+1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2); if( availableDates === null ) { return true; } else if( !availableDates.length ) { return false; } else{ var itemId = $('#date-item-id').val(); var itemType = $('#date-item-type').val(); var totalQuantity = 0; $('.'+itemId+'-'+itemType).each(function() { var total = parseInt($(this).val()); totalQuantity += total; }); for( var i=0; i<availableDates.length; i++ ) { if( availableDates[i].date == dmy ) { if( availableDates[i].quantity === null || Number(availableDates[i].quantity) >= totalQuantity ) { return true; } } } } return false; } function initiateCalendar(initMonth, initYear) { selector = '.availability-calendar'; $(selector).datepicker('destroy'); $(selector).unbind(); /* set current month to custom month-select */ $("#switch-month-select").val($("#switch-month-select option:first").val()); /* init bootstrap datepicker */ $(selector).datepicker({ format: 'mm/dd/yyyy', startDate: new Date(), todayHighlight: false, beforeShowDay: function(dt) { if( isAvailable(dt) ) { return true; }else{ return false; } }, defaultViewDate: { month: initMonth ? initMonth - 1 : new Date().getMonth(), year: initYear || new Date().getYear() } }); if( typeof updateAvailableDates === 'undefined' || !updateAvailableDates ) { if( typeof availableDates !== 'undefined' && availableDates !== null && !availableDates.length ) { $('#availableDatesNoneDiv').show(); }else{ $('#availableDatesNoneDiv').hide(); } } /* create variables, which will help us to controll calendar */ var currentDate; var currentMonth; var currentYear; var defaultMonth; var defaultYear; /* set values to variables */ currentDate = '12/3/2024'; currentMonth = currentDate.split('/')[0]; currentYear = currentDate.split('/')[2]; defaultMonth = !!initMonth ? initMonth : currentMonth; defaultYear = !!initYear ? initYear : currentYear; if( defaultMonth.charAt(0) === '0' ) { defaultMonth = defaultMonth.substr(1); } /* set current month to custom month-select */ $('#switch-month-select').val(defaultMonth +'-'+defaultYear); /* check switching calendar month by custom select */ $('#switch-month-select').on('change', function() { var newMonthYear = this.value.split('-'); var currentDateArray = currentDate.split('/'); currentDateArray[0] = newMonthYear[0]; currentDateArray[2] = newMonthYear[1]; currentDate = currentDateArray.join('/'); $('.availability-calendar').datepicker('update', currentDate ); $('.availability-calendar td.active').removeClass('active'); }); /* check switching calendar month by clicking on day from next month */ $(selector).datepicker().on('changeDate', function(e) { currentDate = $(e.date)[0].toLocaleDateString('en-US'); var currentStepDate = $(e.date)[0].toLocaleDateString('en-US'); var newMonth = currentStepDate.split('/')[0]; var newYear = currentStepDate.split('/')[2]; var currentDateArray = currentDate.split('/'); currentDateArray[0] = newMonth; currentDate = currentDateArray.join('/'); $('.availability-calendar').datepicker('update', currentDate ); /* set new current month (after step) to custom month-select */ $('#switch-month-select').val(newMonth+'-'+newYear); /* save to hidden input */ var targetId = e.target.id; var dateSelected = moment($(e.date)[0]).format('YYYY-MM-DD'); var dateInputId = targetId.replace("calendar", "date"); document.getElementById(dateInputId).value = dateSelected; if( $('#timeOptions').length ) { getAvailableTimes(); } $('.availability-calendar').trigger('bwDateSelected'); }); } /** * function disableNewDays() * disable old and new days (like in design) * @params: currentDate, todaysMonth */ function disableNewDays( currentDate, todaysMonth ) { this.currentDate = parseInt( currentDate ); this.todaysMonth = parseInt( todaysMonth ); var currentMonth = parseInt( currentDate.split('/')[0] ); /* remove all disabled class from days */ $('.availability-calendar td.day').not('.disabled-date').each( function( index, element ) { $( element ).removeClass('disabled'); $( element ).removeClass('previous-month'); }); /* check if currentMonth < todaysMonth then disable all days */ if( currentMonth < todaysMonth ) { $('.availability-calendar td.day').each( function( index, element ) { $( element ).addClass('disabled'); $( element ).addClass('previous-month'); }); $('.availability-calendar td.today').removeClass('today'); } /* disable old and new days */ $('.availability-calendar td.new, .availability-calendar td.old').each( function( index, element ) { $( element ).addClass('disabled'); }); } /*------------------------------------------------------------------------------ end of all calendar functionality ------------------------------------------------------------------------------*/ /** * function quantityCounter() * @params: e */ function quantityCounter( e ) { var value = $( e.target ).siblings('.count-block__value'); var hiddenValue = $( e.target ).siblings('.counter__count-hidden'); var count = parseInt( $( e.target ).siblings('.count-block__value').html() ); var itemId = $('#date-item-id').val(); var itemType = $('#date-item-type').val(); var maxTotalQty = parseInt( $('#max-total-quantity').val() ); var totalQuantity = 0; $('.'+itemId+'-'+itemType).each(function() { var total = parseInt($(this).val()); if( total > 0 ) { totalQuantity += total; } }); var maxQty = hiddenValue[0].max ? Number(hiddenValue[0].max) : 100; if( maxTotalQty > 0 ) { var maxQty = maxTotalQty - totalQuantity + count; } /* if we click on minus button */ if( $( e.target ).hasClass('count-block__control--minus') ) { if ( count == 1 ) { value.removeClass('bw-c-amount-active'); } var min = hiddenValue[0].min ? Number(hiddenValue[0].min) : 0; if( count > min ) { count--; value.text(count); hiddenValue.val(count); }else if( count == min ) { count = 0; value.text(0); hiddenValue.val(0); } /* if we click on plus button */ }else if( $( e.target ).hasClass('count-block__control--plus') ) { if( count == 0 ) { value.addClass('bw-c-amount-active'); } var min = hiddenValue[0].min ? Number(hiddenValue[0].min) : 0; var max = maxQty; if( count < max ) { count++; value.text(count); hiddenValue.val(count); } if( count < min ) { count = min; value.text(min); hiddenValue.val(min); } /* if we clicking on something else - just return */ } totalQuantity = 0; $('.'+itemId+'-'+itemType).each(function() { var total = parseInt($(this).val()); if( total > 0 ) { totalQuantity += total; } }); if( maxTotalQty > 0 ) { var remaining = maxTotalQty - totalQuantity; if( remaining <= 10 ) { $('.remaining-item-qty').removeClass('hidden'); } $('.remaining-item-qty').html(remaining+' remaining'); } quantityUpdated(itemId, itemType, totalQuantity); } function quantityUpdated(itemId, itemType, totalQuantity) { if( totalQuantity > 0 ) { $('.bw-c--add-to-cart').addClass('bw-add-to-cart-active'); if(!window.dateSelectionBeforeQuantity) { $("#checkAvailableDatesButton").addClass('bw-c--cart-quantity-active'); $(".bw-cart-panel-heading-step2").addClass('cart-panel-heading-active'); $(".bw-cart-panel-heading-step3").addClass('cart-panel-heading-active'); $('.bw-check-dates-button').show(); } }else if( totalQuantity <= 0 ) { // $('#addToCartCalendar').addClass('hidden'); $('.bw-c--cart-quantity').removeClass('bw-c-amount-active'); $('.bw-c--add-to-cart').removeClass('bw-add-to-cart-active'); if(!window.dateSelectionBeforeQuantity) { $(".bw-cart-panel-heading-step2").removeClass('cart-panel-heading-active'); $(".bw-cart-panel-heading-step3").removeClass('cart-panel-heading-active'); $("#checkAvailableDatesButton").removeClass('bw-c--cart-quantity-active'); $('.bw-check-dates-button').hide(); $('.availability-calendar').hide(); } } if( typeof updateAvailableDates !== 'undefined' && updateAvailableDates ) { availableDates = []; } if( typeof availableDates !== 'undefined' && !dateSelectionBeforeQuantity ) { $('#date-'+itemId+'-'+itemType).val(''); $('#time-'+itemId+'-'+itemType).val(''); $('.availability-calendar').datepicker('destroy'); $('#addToCartTimes').addClass('hidden'); $('#timeOptions').html(''); initiateCalendar(); } if( typeof updateAvailableDates !== 'undefined' && updateAvailableDates ) { $('.datepicker').css({opacity: 0.5}); $('#checkAvailableDatesButtonDiv').show(); $('#switch-month-select').addClass('hidden'); $('#availableDatesNoneDiv').hide(); } } function myMap(mapInTheDom, latitude, longitude) { var mapOptions = { center: new google.maps.LatLng(latitude, longitude), zoom: 10, scrollwheel: false }; var map = new google.maps.Map( mapInTheDom, mapOptions ); var point = new google.maps.LatLng(latitude, longitude); new google.maps.Marker({position: point, map: map}); $( mapInTheDom ).addClass( 'inited-map' ); } function showDetailsMap(e) { var currentMapNum = ''; if( $(e.target).hasClass('locator__button') ) { currentMapNum = $( e.target ).attr('href').replace('#locator-map-', ''); }else{ currentMapNum = $( e.target ).parent('.locator__button').attr('href').replace('#locator-map-', ''); } if( currentMapNum ) { var functionName = 'mapOverview'+currentMapNum; // Allows time for div to show. setTimeout(function() { eval(functionName+'();'); }, 0); }else{ return false; } } function showIncludesMap(e) { var currentMap = null; var mapInTheDom = null; if( $(e.target).hasClass('includes__preview') ) { currentMap = $( e.target ).data('target').replace('#includes', 'map'); mapInTheDom = document.getElementById(currentMap); }else{ currentMap = $(e.target).closest('.includes__preview').data('target').replace('#includes', 'map'); mapInTheDom = document.getElementById(currentMap); } var latitude = $(e.target).closest('.includes__preview').data('latitude'); var longitude = $(e.target).closest('.includes__preview').data('longitude'); if( mapInTheDom && !$(mapInTheDom).hasClass('inited-map') ) { setTimeout(function() { myMap(mapInTheDom, latitude, longitude); }, 0); }else{ return false; } } function needMoreTime() { if( confirm('Your order is about to expire. Click "OK" if you need more time.') ) { moreTime(); } /* $('#addToCart').modal('hide'); $('body').removeClass('overflow-hidden cart-is-open'); $('.pop-up--cart').removeClass('active'); var html = 'Your order is about to expire. Do you need more time?<br/><br/>'; html += '<button type="button" class="btn btn-default" data-dismiss="modal" onclick="moreTime();">Yes</button>'; $('#modalErrorBody').html(html); $('#modal-error').modal('show'); */ } function moreTime() { $.ajax({ type : 'GET', url : '/checkout/keepOrderAlive', success : function() { updateCart(); }, error: function(response) { location.reload(); } }); } function setCountDown () { seconds--; if( seconds < 0 ) { seconds = 59; minutes--; } if( minutes > 0 || seconds > 0 ) { $("#remain").html('<b>Time Remaining:</b> '+minutes+' min '+seconds+' sec'); setTimeout ( "setCountDown()", 1000 ); if( minutes == 1 && seconds == 0 ) { needMoreTime(); } }else{ alert('Your order has expired.'); window.location = '/checkout/3/visit-houston/8/houston-marketplace/abandonCart'; } } function proceedToCheckout() { window.location = '/checkout/3/visit-houston/8/houston-marketplace/overview'; } $(document).ready(function () { /** * init main home slider */ (function () { $('.checkout-home--slider').slick({ dots: false, centerMode: true, speed: 800, centerPadding: '160px', slidesToShow: 1, pauseOnHover: true, adaptiveHeight: true, autoplay: true, autoplaySpeed: 4000, useTransform: false, responsive: [ { breakpoint: 1201, settings: { slidesToShow: 1, centerPadding: '0px' } } ] }); })(); $('body') .on('click', '.pop-up--add-to-cart__close', function(e) { $('.availability-calendar').datepicker('destroy'); $('.availability-calendar').unbind(); }) .on('click', '.pop-up--add-to-cart', function(e) { if ( $( e.target ).hasClass('modal') ) { /* destroy datepicker */ $('.availability-calendar').datepicker('destroy'); $('.availability-calendar').unbind(); } }) .on('click', '.counter__count-block', quantityCounter) .on('click', '.pop-up__content-wrapper, .pop-up__close, .bw-c--btn-continue-shopping', function(e) { //e.preventDefault(); e.stopPropagation(); if( $( e.target ).hasClass( 'pop-up__content-wrapper' ) || $( e.target ).hasClass( 'pop-up__close' ) || $( e.target ).hasClass( 'bw-c--btn-continue-shopping' ) ) { /* destroy datepicker */ //$('.availability-calendar').datepicker('destroy'); //$('.availability-calendar').unbind(); /* close pop-up and return overflow to body */ $('body').removeClass( 'overflow-hidden' ); $('.pop-up').removeClass( 'active' ); if( $('body').hasClass('cart-is-open') ) { $('body').removeClass('cart-is-open'); } // window.persistentCart.setCart({ active: false }); }else{ return; } }) .on('click', '.bw-c--open-cart, .header__cart, .button-cart, .pop-up__background', function(e) { //e.preventDefault(); e.stopPropagation(); $('body').toggleClass('overflow-hidden cart-is-open'); $('.pop-up--cart').toggleClass('active'); // window.persistentCart.setCart({ active: true }); }) .on('click', '.checkout-hero--arrow', function(e) { var $distance = $('.page-hero').next().offset().top; $('html, body').stop().animate({ 'scrollTop': $distance }, 700, 'easeInOutCubic'); }); /** * init map on details page */ $('.specification__locator').on( 'click', '.locator__button', function(e) { showDetailsMap(e); }); /** * init map on includes dropdowns */ $('.includes__row').on('click', '.includes__preview', function(e) { showIncludesMap(e); }); }); $('.lazy').Lazy({ asyncLoader: function(element, response) { setTimeout(function() { element.css({ 'background-image': 'url(' + element.data('lazyImage') + ')' }); response(true); }, 1000); } }); </script> <script type="text/javascript"> // am I in an iframe ? $(document).ready(function() { if( parent.postMessage ) { setTimeout(function(){ var height = Math.max(document.body.scrollHeight, document.body.offsetHeight, 500) + 50; innerHeight = "height:"+height; parent.postMessage(innerHeight, "*"); }, 1000); $(".add-to-cart, .terms-and-conditions, .copy_li, .btn-hiw, .bw-ic--learn-more-btn, .sign-up-btn--pop-up, #add-to-cart-button ").on("click", function() { var message = "scrollUpToTop"; parent.postMessage(message, "*"); }); } window.addEventListener("message", receiveMessage, false); function receiveMessage(event) { if ( event.data === "openCart" ) { $('body').toggleClass('overflow-hidden cart-is-open'); $('.pop-up--cart').toggleClass('active'); } } }); </script> </div> <!-- adding to cart pop-up start --> <div class="modal fade pop-up--add-to-cart" id="addToCart" role="dialog"> </div> <!-- adding to cart pop-up end --> <!-- raw contents modal --> <div class="modal fade checkout-modal--main" id="raw-content--modal" role="dialog"> <div class="modal-dialog" id="modal-steps" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="color:blue; position:absolute; right:20px; top:20px; font-size:28px; opacity:1;"> <span aria-hidden="true">脳</span> </button> <h2>How It Works</h2> </div> <div class="modal-body"> <div class="container-fluid"> <div class="flex-row"> <div class="flex-col-12"> <ul> <li></li> </ul> </div> </div> </div> </div> </div> </div> </div> <!-- raw contents modal ends --> <script> function venueFilter(ids) { $('.item').addClass('hidden'); for( var i=0; i<ids.length; i++ ) { $('.v-'+ids[i]).removeClass('hidden'); } } function categoryFilter(id, noScroll) { if( $('.checkout-filter--slider').offset() != undefined ) { var toScroll = $('.checkout-filter--slider').offset().top + 160; var $allWrappers = $('.cat').parent(), $clickedWrapper = $('.cat-'+id).parent(), $allItems = $('.item'), $thisItem = $('.itemcat-'+id); if( !$clickedWrapper.hasClass('active') ) { $allWrappers.addClass('inactive'); $allWrappers.removeClass('active'); $clickedWrapper.addClass('active'); if( false && $(window).scrollTop() < toScroll - 160 ) { setTimeout(function() { $('html,body').animate({ scrollTop: toScroll }, 400); $allItems.addClass('hidden'); $thisItem.removeClass('hidden'); }, 330); }else{ if( !noScroll ) { goToCategories(); } $allItems.addClass('hidden'); $thisItem.removeClass('hidden'); } }else{ $allWrappers.removeClass('active inactive'); $allItems.removeClass('hidden'); } } $('.bw-page-section').each(function(){ var total = $('.item', this).length; if( total ) { var totalHidden = $('.item.hidden', this).length; if( total == totalHidden) { $(this).addClass('hidden'); }else{ $(this).removeClass('hidden'); } } }); } function openFilterToggle(moduleId) { var container = $(".bw-offer-module") container.on('touchstart', function() {}); container.on('touchend', function() {}); container.on('touchcancel', function() {}); container.on('touchmove', function() {}); $('.filter-div-'+moduleId).fadeToggle(); $('.close-filter-mobile-'+moduleId).toggleClass('close-filter-mobile--active'); $("body").toggleClass("modal-open") } function nowFilteringAnimation() { var moduleId = $(".bw-offer-card-filter-div:first").data("module-id"); var toScroll = $('#module-anchor-'+moduleId).offset().top - 60; $('html,body').animate({ scrollTop: toScroll }, 750); } function goToCategories() { var toScroll = $('.checkout-filter--slider').offset().top - 60; $('html,body').animate({ scrollTop: toScroll }, 400); return false; } function goToItems() { var toScroll = $('#itemsAnchor').offset().top; $('html,body').animate({ scrollTop: toScroll }, 400); return false; } </script> </body> </html>