import wixLocationFrontend from 'wix-location-frontend'; const DEPOSIT_AMOUNT = 30; const UPGRADE_OPTIONS = [ { id: "extra-glass", name: "Extra Glass Pack", price: 15 }, { id: "premium-room", name: "Premium Room Upgrade", price: 25 }, { id: "slow-motion", name: "Slow-Motion Video", price: 10 }, { id: "protective-gear", name: "Premium Protective Gear", price: 8 } ]; let bookingTotal = 100; let selectedUpgrades = []; $w.onReady(function () { initialisePage(); }); function initialisePage() { setInitialVisibility(); wireEvents(); loadBookingFromUrl(); renderUpgradeOptions(); updateSummary(); } function setInitialVisibility() { safelyHide("#errorText"); safelyHide("#successText"); safelyHide("#loadingText"); } function wireEvents() { safelyOnClick("#lookupBookingButton", lookupBooking); safelyOnClick("#payBalanceButton", continueToPayment); safelyOnClick("#copyBookingCodeButton", copyBookingCode); } function loadBookingFromUrl() { const query = wixLocationFrontend.query || {}; const bookingId = query.bookingId || query.booking || ""; if (bookingId && $w("#bookingIdInput")) { $w("#bookingIdInput").value = bookingId; } } function renderUpgradeOptions() { if (!$w("#upgradesRepeater")) { return; } $w("#upgradesRepeater").data = UPGRADE_OPTIONS.map((upgrade) => ({ _id: upgrade.id, name: upgrade.name, price: upgrade.price, selected: false })); $w("#upgradesRepeater").onItemReady(($item, itemData) => { if ($item("#upgradeName")) { $item("#upgradeName").text = itemData.name; } if ($item("#upgradePrice")) { $item("#upgradePrice").text = `+$${itemData.price.toFixed(2)}`; } if ($item("#upgradeCheckbox")) { $item("#upgradeCheckbox").checked = selectedUpgrades.includes(itemData.id); $item("#upgradeCheckbox").onChange((event) => { toggleUpgrade(itemData.id, event.target.checked); }); } }); } function toggleUpgrade(upgradeId, isSelected) { if (isSelected && !selectedUpgrades.includes(upgradeId)) { selectedUpgrades.push(upgradeId); } if (!isSelected) { selectedUpgrades = selectedUpgrades.filter((id) => id !== upgradeId); } updateSummary(); } function updateSummary() { const upgradeTotal = selectedUpgrades.reduce((sum, upgradeId) => { const upgrade = UPGRADE_OPTIONS.find((item) => item.id === upgradeId); return sum + (upgrade ? upgrade.price : 0); }, 0); const fullAmount = bookingTotal + upgradeTotal; const remainingBalance = Math.max(fullAmount - DEPOSIT_AMOUNT, 0); setText("#bookingTotalText", formatMoney(bookingTotal)); setText("#depositText", `-${formatMoney(DEPOSIT_AMOUNT)}`); setText("#upgradesTotalText", formatMoney(upgradeTotal)); setText("#fullAmountText", formatMoney(fullAmount)); setText("#remainingBalanceText", formatMoney(remainingBalance)); if ($w("#payBalanceButton")) { $w("#payBalanceButton").label = remainingBalance > 0 ? `Pay Remaining ${formatMoney(remainingBalance)}` : "Complete Booking"; } } async function lookupBooking() { const bookingId = ($w("#bookingIdInput")?.value || "").trim(); clearMessage(); if (!bookingId) { showError("Enter the booking confirmation number first."); return; } showLoading(true); try { // Replace this demo lookup with a backend web method that validates the // booking owner, retrieves the authoritative booking total, and confirms // that the deposit was successfully paid. Never trust a browser value for // the booking total or deposit status. const booking = await getBookingFromSecureBackend(bookingId); bookingTotal = booking.total; setText("#customerNameText", booking.customerName ? `Hi, ${booking.customerName}!` : "Booking found"); setText("#bookingCodeText", bookingId); showSuccess("Booking found. Your $30 deposit has been applied below."); updateSummary(); } catch (error) { showError(error.message || "We could not find that booking. Check the confirmation number and try again."); } finally { showLoading(false); } } async function continueToPayment() { const bookingId = ($w("#bookingIdInput")?.value || "").trim(); const upgradeTotal = selectedUpgrades.reduce((sum, upgradeId) => { const upgrade = UPGRADE_OPTIONS.find((item) => item.id === upgradeId); return sum + (upgrade ? upgrade.price : 0); }, 0); if (!bookingId) { showError("Enter and verify your booking confirmation number before paying."); return; } const remainingBalance = Math.max(bookingTotal + upgradeTotal - DEPOSIT_AMOUNT, 0); // Production recommendation: call a backend web method here. The backend // should re-read the booking and deposit, calculate the balance, create an // order/payment for the balance plus upgrades, and return the payment URL or // payment ID. A client-side coupon/code alone can be copied and reused. if (remainingBalance === 0) { showSuccess("Your booking is fully paid. We will add the selected upgrades to your reservation."); return; } wixLocationFrontend.to(`/balance-checkout?bookingId=${encodeURIComponent(bookingId)}&upgradeIds=${encodeURIComponent(selectedUpgrades.join(","))}`); } async function copyBookingCode() { const bookingId = ($w("#bookingIdInput")?.value || "").trim(); if (!bookingId || typeof navigator === "undefined" || !navigator.clipboard) { showError("Copy is unavailable. Please select your confirmation number manually."); return; } await navigator.clipboard.writeText(bookingId); showSuccess("Confirmation number copied."); } async function getBookingFromSecureBackend(bookingId) { // Demo fallback so the page works before the backend is connected. // Replace this function with: // import { getBookingBalance } from "backend/bookingBalance.web"; // return getBookingBalance(bookingId); if (bookingId.length < 4) { throw new Error("That confirmation number is too short."); } return { customerName: "", total: 100 }; } function formatMoney(amount) { return `$${Number(amount).toFixed(2)}`; } function setText(selector, value) { if ($w(selector)) { $w(selector).text = value; } } function safelyHide(selector) { if ($w(selector)) { $w(selector).hide(); } } function safelyOnClick(selector, handler) { if ($w(selector)) { $w(selector).onClick(handler); } } function showLoading(isLoading) { if ($w("#loadingText")) { isLoading ? $w("#loadingText").show() : $w("#loadingText").hide(); } if ($w("#lookupBookingButton")) { $w("#lookupBookingButton").disable(); if (!isLoading) { $w("#lookupBookingButton").enable(); } } } function clearMessage() { safelyHide("#errorText"); safelyHide("#successText"); } function showError(message) { if ($w("#errorText")) { $w("#errorText").text = message; $w("#errorText").show(); } } function showSuccess(message) { if ($w("#successText")) { $w("#successText").text = message; $w("#successText").show(); } }
top of page
NO (Mobile Banner)-4.png

NO EXCUSES
GOOD NIGHTS DESERVE SAFE ENDINGS.
 

WHATS IS THIS?

This initiative is focused on promoting safe and responsible transportation within our community. We have a thriving bar scene, and our goal is to help ensure everyone has a great time and gets home safely.

​

We are simply serving as a host site to share information for this effort. This initiative is not affiliated with any of our bars or with Tyler Enterprises. The individuals offering rides are independent community members who are voluntarily providing ride assistance as good Samaritans.

​

Due to the limited availability of Lyft and Uber in our area, finding a reliable way home can be challenging. This initiative helps fill that gap by connecting people with alternative ride options.

​

This initiative is not exclusive to bar-related outings. Whether you’re attending a Mardi Gras ball, a private party, or another event and need transportation to and from your destination, these individuals may be able to help.
 

Below you will find the contact information for our driving friends.

Crosstown Taxi

318-750-4992

Micah M

903-506-1286

Hayden S

318-664-5695

Kimberly C

318-229-1155

Ibrar Nazir

318-359-8372

Mel

318-730-2744

Gary C

318-452-6434

Pamelyn

318-446-5902

Konner W

337-627-0809

Amiee W

318-321-8285

Eric W

318-314-0921

Neni C 

318-446-6324

Raymond

318-308-7107

Megan G

318-359-5117

Stephanie H

318-955-1260

Ms. Tee

318-955-5118

Jess I

318-205-1109

Janet P

318-446-8459

Contact

Wanna join the No Excuses Campaign? Just send us a quick message!

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram

Thanks for submitting!

CONTACT

​

4180 Jackson St. 

Alexandria, La 71303

​

Email: shytylerradio@gmail.com

​Text/Call  318.319.7946

OPENING HOURS

 

Thursday - Saturday

6pm - 2:30 am

​

FIND​ US (to the left of Hokus Pokus Liquor & behind Spa Nails)

  • Instagram
  • Facebook

© 2035 by MDBrom. Powered and secured by Wix.

bottom of page