MJ - The Musical

• London, GB

NOV 23

MJ - The Musical

• Pittsburgh, US

NOV 23

MJ - The Musical

• New York, US

NOV 23

MJ - The Musical

• London, GB

NOV 23

MJ - The Musical

• Pittsburgh, US

NOV 24

MJ - The Musical

• New York, US

NOV 24

MJ - The Musical

• New York, US

NOV 24

MJ - The Musical

• Pittsburgh, US

NOV 24

MJ - The Musical

• Pittsburgh, US

NOV 24

MJ - The Musical

• New York, US

NOV 25

MJ - The Musical

• London, GB

NOV 25

MJ - The Musical

• Pittsburgh, US

NOV 26

MJ - The Musical

• London, GB

NOV 26

MJ - The Musical

• New York, US

NOV 27

MJ - The Musical

• Pittsburgh, US

NOV 27

MJ - The Musical

• New York, US

NOV 27

MJ - The Musical

• London, GB

NOV 27

MJ - The Musical

• New York, US

NOV 28

MJ - The Musical

• Pittsburgh, US

NOV 28

MJ - The Musical

• London, GB

NOV 28

MJ - The Musical

• London, GB

NOV 28

MJ - The Musical

• New York, US

NOV 29

MJ - The Musical

• Pittsburgh, US

NOV 29

MJ - The Musical

• London, GB

NOV 29

MJ - The Musical

• New York, US

NOV 30

MJ - The Musical

• Pittsburgh, US

NOV 30

MJ - The Musical

• London, GB

NOV 30

MJ - The Musical

• New York, US

NOV 30

MJ - The Musical

• Pittsburgh, US

NOV 30

MJ - The Musical

• London, GB

NOV 30

MJ - The Musical

• Pittsburgh, US

DEC 1

MJ - The Musical

• New York, US

DEC 1

MJ - The Musical

• Pittsburgh, US

DEC 1

MJ - The Musical

• New York, US

DEC 1

MJ - The Musical

• London, GB

DEC 2

MJ - The Musical

• London, GB

DEC 3

MJ - The Musical

• New York, US

DEC 4

MJ - The Musical

• New York, US

DEC 4

MJ - The Musical

• London, GB

DEC 4

MJ - The Musical

• New York, US

DEC 5

MJ - The Musical

• Schenectady, US

DEC 5

MJ - The Musical

• London, GB

DEC 5

MJ - The Musical

• Schenectady, US

DEC 5

MJ - The Musical

• London, GB

DEC 5

MJ - The Musical

• New York, US

DEC 6

MJ - The Musical

• Schenectady, US

DEC 6

MJ - The Musical

• London, GB

DEC 6

MJ - The Musical

• New York, US

DEC 7

MJ - The Musical

• Schenectady, US

DEC 7

MJ - The Musical

• London, GB

DEC 7

MJ - The Musical

• Schenectady, US

DEC 7

MJ - The Musical

• New York, US

DEC 7

MJ - The Musical

• London, GB

DEC 7

MJ - The Musical

• Schenectady, US

DEC 8

MJ - The Musical

• New York, US

DEC 8

MJ - The Musical

• Schenectady, US

DEC 8

MJ - The Musical

• New York, US

DEC 8

MJ - The Musical

• New York, US

DEC 11

MJ - The Musical

• Hartford, US

DEC 11

MJ - The Musical

• New York, US

DEC 11

MJ - The Musical

• New York, US

DEC 12

MJ - The Musical

• Hartford, US

DEC 12

MJ - The Musical

• New York, US

DEC 13

MJ - The Musical

• Hartford, US

DEC 13

MJ - The Musical

• New York, US

DEC 14

MJ - The Musical

• Hartford, US

DEC 14

MJ - The Musical

• New York, US

DEC 14

MJ - The Musical

• Hartford, US

DEC 14

MJ - The Musical

• Hartford, US

DEC 15

MJ - The Musical

• New York, US

DEC 15

MJ - The Musical

• Hartford, US

DEC 15

MJ - The Musical

• New York, US

DEC 15

MJ - The Musical

• Hartford, US

DEC 15

MJ - The Musical

• New York, US

DEC 18

MJ - The Musical

• Rochester, US

DEC 18

MJ - The Musical

• New York, US

DEC 18

MJ - The Musical

• New York, US

DEC 19

MJ - The Musical

• Rochester, US

DEC 19

MJ - The Musical

• New York, US

DEC 20

MJ - The Musical

• Rochester, US

DEC 20

MJ - The Musical

• New York, US

DEC 21

MJ - The Musical

• Rochester, US

DEC 21

MJ - The Musical

• Rochester, US

DEC 21

MJ - The Musical

• New York, US

DEC 21

MJ - The Musical

• Rochester, US

DEC 22

MJ - The Musical

• New York, US

DEC 22

MJ - The Musical

• Rochester, US

DEC 22

MJ - The Musical

• New York, US

DEC 22

MJ - The Musical

• Rochester, US

DEC 22

MJ - The Musical

• New York, US

DEC 24

MJ - The Musical

• New York, US

DEC 26

MJ - The Musical

• New York, US

DEC 26

MJ - The Musical

• New York, US

DEC 27

MJ - The Musical

• New York, US

DEC 28

MJ - The Musical

• New York, US

DEC 28

MJ - The Musical

• New York, US

DEC 29

MJ - The Musical

• New York, US

DEC 29

MJ - The Musical

• New York, US

DEC 30

MJ - The Musical

• New York, US

DEC 31

MJ - The Musical

• New York, US

JAN 2

MJ - The Musical

• New York, US

JAN 3

MJ - The Musical

• New York, US

JAN 4

MJ - The Musical

• New York, US

JAN 4

MJ - The Musical

• New York, US

JAN 5

MJ - The Musical

• New York, US

JAN 5

MJ - The Musical

• New York, US

JAN 6

MJ - The Musical

• New York, US

JAN 8

MJ

• New York, US

JAN 8

MJ

• New York, US

JAN 9

MJ - The Musical

• Philadelphia, US

JAN 9

MJ - The Musical

• Philadelphia, US

JAN 9

MJ - The Musical

• New York, US

JAN 10

MJ - The Musical

• Philadelphia, US

JAN 10

MJ - The Musical

• New York, US

JAN 11

MJ - The Musical

• Philadelphia, US

JAN 11

MJ - The Musical

• Philadelphia, US

JAN 11

MJ - The Musical

• New York, US

JAN 11

MJ: The Musical

• Philadelphia, US

JAN 12

MJ - The Musical

• New York, US

JAN 12

MJ - The Musical

• Philadelphia, US

JAN 12

MJ - The Musical

• New York, US

JAN 12

MJ - The Musical

• Philadelphia, US

JAN 12

MJ - The Musical

• New York, US

JAN 15

MJ - The Musical

• Philadelphia, US

JAN 15

MJ - The Musical

• New York, US

JAN 15

MJ - The Musical

• Philadelphia, US

JAN 16

MJ - The Musical

• New York, US

JAN 17

MJ - The Musical

• Philadelphia, US

JAN 17

MJ - The Musical

• New York, US

JAN 18

MJ - The Musical

• Philadelphia, US

JAN 18

MJ - The Musical

• Philadelphia, US

JAN 18

MJ - The Musical

• New York, US

JAN 18

MJ - The Musical

• Philadelphia, US

JAN 19

MJ - The Musical

• New York, US

JAN 19

MJ - The Musical

• Philadelphia, US

JAN 19

MJ

• New York, US

JAN 19

MJ - The Musical

• Philadelphia, US

JAN 19

MJ

• New York, US

JAN 20

MJ - The Musical

• Providence, US

JAN 22

MJ

• New York, US

JAN 22

MJ - The Musical

• New York, US

JAN 22

MJ - The Musical

• New York, US

JAN 23

MJ - The Musical

• Providence, US

JAN 23

MJ - The Musical

• New York, US

JAN 24

MJ - The Musical

• Providence, US

JAN 24

MJ

• New York, US

JAN 25

MJ - The Musical

• Providence, US

JAN 25

MJ

• New York, US

JAN 25

MJ - The Musical

• Providence, US

JAN 25

MJ

• New York, US

JAN 26

MJ - The Musical

• Providence, US

JAN 26

MJ - The Musical

• Providence, US

JAN 26

MJ

• New York, US

JAN 26

MJ - The Musical

• Providence, US

JAN 26

MJ - The Musical

• New York, US

JAN 29

MJ - The Musical

• Richmond, US

JAN 29

MJ - The Musical

• New York, US

JAN 29

MJ

• New York, US

JAN 30

MJ - The Musical

• Richmond, US

JAN 30

MJ

• New York, US

JAN 31

MJ - The Musical

• Richmond, US

JAN 31

MJ

• New York, US

FEB 1

MJ - The Musical

• Richmond, US

FEB 1

MJ - The Musical

• Richmond, US

FEB 1

MJ

• New York, US

FEB 1

MJ - The Musical

• New York, US

FEB 2

MJ - The Musical

• Richmond, US

FEB 2

MJ

• New York, US

FEB 2

MJ - The Musical

• Richmond, US

FEB 2

MJ

• New York, US

FEB 5

MJ - The Musical

• Norfolk, US

FEB 5

MJ

• New York, US

FEB 5

MJ

• New York, US

FEB 6

MJ - The Musical

• Norfolk, US

FEB 6

MJ

• New York, US

FEB 7

MJ - The Musical

• Norfolk, US

FEB 7

MJ

• New York, US

FEB 8

MJ - The Musical

• Norfolk, US

FEB 8

MJ

• New York, US

FEB 8

MJ - The Musical

• Norfolk, US

FEB 8

MJ

• New York, US

FEB 9

MJ - The Musical

• Norfolk, US

FEB 9

MJ

• New York, US

FEB 9

MJ - The Musical

• Norfolk, US

FEB 9

MJ

• New York, US

FEB 12

MJ - The Musical

• East Lansing, US

FEB 12

MJ

• New York, US

FEB 12

MJ - The Musical

• East Lansing, US

FEB 13

MJ

• New York, US

FEB 14

MJ - The Musical

• East Lansing, US

FEB 14

MJ

• New York, US

FEB 15

MJ - The Musical

• East Lansing, US

FEB 15

MJ

• New York, US

FEB 15

MJ - The Musical

• East Lansing, US

FEB 15

MJ - The Musical

• New York, US

FEB 16

MJ

• New York, US

FEB 16

MJ - The Musical

• East Lansing, US

FEB 16

MJ - The Musical

• East Lansing, US

FEB 16

MJ

• New York, US

FEB 17

MJ

• New York, US

FEB 19

S T A G E O R C H E S T R A O R C H E S T R A B O X L E F T MEZZANINE B O X L E F T L O W E R G A L E R R Y B O X L E F T O R C H E S T R A B O X R I G H T B O X R I G H T B O X R I G H T MEZZANINE L O W E R G A L E R R Y P A R T E R R E B O X T I E R MEZZANINE L O W E R G A L L E R Y U P P E R G A L L E R Y CENTER LEFT PIT PIT PIT RIGHT CENTER CENTER CENTER CENTER CENTER LEFT AA A B T C S D R E Q F P G O H N M I J L K U ZZ LEFT LEFT L O W E R PIANO B O X C C L O W E R PIANO B O X A A L O W E R PIANO B O X A A L O W E R PIANO B O X C C LEFT RIGHT RIGHT RIGHT RIGHT eJzsved2MruSMPz93mtxD8aJDB3IDuRobJyzjQltG5tkwj77mTs61zE39lapc9MR8MyZtb45s/0A rVZJJalUufbc51ehXG/c4UJsmNpy/bW3V5hy7fl4mt4iP2/VBoPFbD7Fn7yXvi06FqawVa6WbAkt b7nprD8epckz/mkZ3/cWPtv9Ybu9dZq7uq75trw+fHTdnw84eEjTqRYdTTGp8OzvD58EGDoqtufQ gGYiyQhD0dGtaJqlts5PSZP26O/2bNb/L2wQZ5Ms/pgfL0a9/ugjP/4nvZXcSsW2YvBfPBXFh9X+ JTdTtwjTLMUmoF04mkpB22iYpagkvAAYiJIei+PuYsiN5ufTcZebzQrjwXg6S2/lB+3ut/J5eTya w++nf6b9dg8ahy65j8WgPVW2OeO4HtczaZmrxVrl/oADnA3b8y2aJijM1WimlV/0B72zxbDDATrZ VIr8zrbIeG5m7Q/AAvlMfk+0akP46Yqbz2GqAIysROH04UQ5DcCb8D/v0yU3+e9/T+GdF5/Y83Q8 Gban3/B2KBXdSsW3ElQcMBMXnl9zw8kAlocgkoVHLDQR/hWbwFTI41CK2oL/T1AM/ic8lTHL/d3n /pXeOhuPOAEJuen8il/ZaJSi+L/Co8vFgJvejPqIQ76rFI+F03GPG4i/kS7KgzaZPPkfLf8VWly3 px/cHPbEeLCYk12blKAAphvtPxwuNS0AaU640fX4lgw1xCbi4dhWIkXBX8AgnaK3kvH4FhMnUKJR /EkCTMt/he6xL+xJhJHA9TkH9Den/Y/+KC0OMtGqTPs9eR0TDOxq8odMJJxU/JcS/xPGC7Ofz7mR OAHYQ4VTxY6gwqdXCLU06hXGQ1yIGTlBHMCHXTIYfwhP5S/kGXSxmLj+enL9xaYiP4vxnJtBjwMO dkjkY9r+m4PjmoyUFtPxFhwuRYtOe8ZF3mGh+iP+116H/40bDPqTWR/AR3rtjw9uKvwDzyPd/hR2 yfuA+ycy4abzz/Fi1h71Ilfd9nQ8inzAoSB9D7j3eaRZgo0S4/vGH6A/8hlQ+jmXQJKm4hf+UWcB v84j3KjXnn1GuCH5Zw7njYsAtetxeAygs5kGKP/ymIv0xkDHgBQB1UtFHnp9bgoznm1FZpN2F9AR j0a6i+mUG3X/wJd4pDMdf3OjDp54Op6MiO0j3fHkj9DntPfODfuj/gheTzARwH+/2x6MxvPI55/J JzeKTGEpZjA1rhcZtrs4LEArLFJkAiQa3lzMIvN/jWcLQFp/PI3MP6ccJ31rdxdzLjJcbNFJNkJ+ 63Vh/UlvXa7XHwza0BOcRukNGNCwPesuBmREySQ+/Fm0p/AOfvxsD955GMKPsy06xURyZD9AVzke Yk6xmjkevzlp9jmcQCRXihSEIURK5PVIibwMvZQUr5ek92p8qxoPoqZoU5PalOafkTMCELpp8i80 +Reaihea/Jia0nvDxWDenwz+RJqzAe6JG3FCN/zLN4qXb6S3HviH15/jKewWDkj5CLbaLNLmAbfF +bQVb7d50G2pkzZBR5uLdEV0cPzrHN87J78MXXHSe32+VZ9v1VeA6EttOEDHiAc45puPxTGNFS+M hSbSe73+3338gUfGgn91wUNaqMazkN75wz+eE2T8EX92/XVd4klhrN66nsE9oCD/bIsQmtKoO8ab Or3VWror9W7Pp8hyu8jymzxJvn50EUhA30Q4PJNz/WciXkJkFC0Y1jmsxZwcr7MJeZZsnQ8W8LAy HS8mtdH72PWXl2eRrqewqtBXs/PFdefA6NzCP0DyZoSdge9Cg6tFf86F2/2Jz6JDoOJTbot/Cq+T r/DvO/5r5/0i9w7MhNwB3JJwgW5x/8AphbPMNyqN/uYG48kEexY+c1uwa7fu2tOJHSjng/YIcEse LAM55wB/C5hG78+oPez/LOCTh7wIbRt9uDLO29DCFiCgLRNAKXmJtJGAWjZQPLIFqj3/BD4PboXZ 8pSKz2yMhgPQw3+3etwWYpmbbalmxb9sB9bVn2FnPOjPhvCq9JmTepN+sjluHGNzxE9guph9bl2P xwOjxUdmk8MpDOHAvyMip3P+5f88aFJjU0g8DLiI4Ioku03E438srEIbeCDYTpPPftcGuK7cXAnS oBdbG7BL1tH+Avbf3xczsjeX3vzPgodL8N4f9eAVQnSRiPJIHA8n4xmeXxmD2LisaCx3HcOrQnkZ hEKW18Qq76T4ZygAzf8AVwmX6clo/K8R+baVRgSO8CKJnLVhDkF4fNUHQYyTnlNbTfzD/+8bP9LC l/s/+K0On77gt39t0dTW6dbTC7XVc8HDS77pfQ+6JOR468D111YE7g/8oDeILYZK/GcMJMX+r4/j 6Rzuv95///u9vZi/OBrNpfid3jpxNDraeHRkI8HmU2wj6/143gYpCLlAhH7e4QEsqQdwZDOcsEpl cN6F//IyFKkvZ9u9AVR0CZnL0+GbrXjCaIp/yF+q2NX/J/4OnWl/NYIgDFxUYhTbc5CZ9loR8Qdc a/za7yLj157+EX64P22cjXucweODLe8/Q5DzelwIqNy03wHeGbiPIGmcm07b/6PdbAiKol33E0QK kISFVsxWpAaokh7jn/kfZEPJY+/+aNb6uz2dHcCBupqjRKRu+3d7sJAa44OZQUNgO8V2wmhm6q// 51EFZJCzg6XBuPvN9WyhSWwa/I+YYKdP9La0nUnCnrni5mdkNjYmqmy+yU2xPlJoc6TYQ0W/3Rlw tk6GnZX+X98IzolC+m/7ZAHb/mdseJxndzGbj4f/AeTvV7doetZGHgnvUDiH9nfq/8S5gQH9p43n PwNBQ27e7sGKbWAwqbUHs9MT2C5bB0DRmn+dt1Yq3v3O1cqLwUBk5gSzJjwV3qC2InmQPEH </div> <button style="padding: 10px; position: fixed; border: none; background-color: transparent; bottom: 0; right: 0;" class="m-4 custom-index" id="zoom-reset"><img src="https://cdn.ticketwallet.co/pages/events/img/reset.svg"></button> <div id="no-seat-map-text" style="z-index: 0; display: none;" class="d-flex justify-content-center align-items-center outer-div"> <div id="no-seat-map-text-2" style="position: absolute; top: 58%; display: none;" class="inner-div"> Seatmap not currently available </div> </div> </div> </div> <!-- second tickets here before moveing foprward --> <script> $(document).ready(function() { var initial_view_port = window.innerWidth; var is_that_above_or_below = initial_view_port < 992 ? 'below' : 'above'; // Function to handle changes based on viewport width function handleViewportWidth() { // Check if viewport width is under 1200px if (window.innerWidth < 992) { // code here to have displayimng or not 3dv var section_name = document.getElementById('3ddv-section'); var viceVersaDisplay = document.getElementById('vice-versa-display'); if (section_name) { if (window.getComputedStyle(section_name).display != 'none') { viceVersaDisplay.style.display = 'none'; } else { viceVersaDisplay.style.display = 'block'; $('#seat-map').show(); } } // *********************** End ************* $(".first-seat-section").removeAttr("id"); $(".second-ticket-list").attr("id", "seats_content"); } else { $(".first-seat-section").attr("id", "seats_content"); $(".second-ticket-list").removeAttr("id"); } if(window.innerWidth < 991 && is_that_above_or_below == 'above') { GeneralFilter(); is_that_above_or_below = "None"; } else if(window.innerWidth > 991 && is_that_above_or_below == 'below') { GeneralFilter(); is_that_above_or_below = "None"; } } handleViewportWidth(); $(window).resize(handleViewportWidth); }); </script> <div id="seats_content" style="border-top:0.1px solid #E3E3E3; display: none;" class="seats-div second-ticket-list"> </div> <!-- End here --> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { var svgContainer = document.getElementById("svg-container"); if (svgContainer.firstElementChild.tagName.toLowerCase() === 'title') { document.getElementById('no-seat-map-text').style.display = 'block'; document.getElementById('no-seat-map-text-2').style.display = 'block'; svgContainer.style.display = 'none'; } }); </script> <script> var intial_value = 0; var second_value = 0; function updatePrice(selectedValue) { // alert("selected "+selectedValue); } </script> <!-- add modle here --> <script> function showOverlay() { document.getElementById('overlay').style.display = 'flex'; } </script> </div> <!-- Add it at the end --> <!-- add model here --> <script> // Function to show the Bootstrap modal function showCheckoutPriceBreakdownModal() { $('#checkout-price-breakdown').modal('show'); } function closeModelAll(event) { event.preventDefault(); $('#checkout-price-breakdown').modal('hide'); } </script> </div> </div> <script> var all_ticket_data_filter = `[{'ticket_group_id': 3372799925, 'available_quantity': 2, 'price': 150.5, 'wholesale_price': 150.5, 'row': 'M', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799818, 'available_quantity': 2, 'price': 150.57, 'wholesale_price': 150.57, 'row': 'M', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799934, 'available_quantity': 4, 'price': 155.65, 'wholesale_price': 155.65, 'row': 'M', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799802, 'available_quantity': 4, 'price': 155.65, 'wholesale_price': 155.65, 'row': 'M', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799774, 'available_quantity': 6, 'price': 160.53, 'wholesale_price': 160.53, 'row': 'L', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799870, 'available_quantity': 6, 'price': 160.53, 'wholesale_price': 160.53, 'row': 'L', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799841, 'available_quantity': 8, 'price': 165.5, 'wholesale_price': 165.5, 'row': 'K', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799755, 'available_quantity': 8, 'price': 165.52, 'wholesale_price': 165.52, 'row': 'K', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799147, 'available_quantity': 8, 'price': 175.52, 'wholesale_price': 175.52, 'row': 'E', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799128, 'available_quantity': 4, 'price': 180.44, 'wholesale_price': 180.44, 'row': 'D', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799114, 'available_quantity': 6, 'price': 185.52, 'wholesale_price': 185.52, 'row': 'D', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799101, 'available_quantity': 2, 'price': 190.12, 'wholesale_price': 190.12, 'row': 'C', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799261, 'available_quantity': 8, 'price': 250.55, 'wholesale_price': 250.55, 'row': 'D', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799481, 'available_quantity': 8, 'price': 250.65, 'wholesale_price': 250.65, 'row': 'D', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799334, 'available_quantity': 6, 'price': 255.25, 'wholesale_price': 255.25, 'row': 'E', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799530, 'available_quantity': 6, 'price': 255.35, 'wholesale_price': 255.35, 'row': 'E', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799457, 'available_quantity': 4, 'price': 260.2, 'wholesale_price': 260.2, 'row': 'F', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799325, 'available_quantity': 4, 'price': 260.55, 'wholesale_price': 260.55, 'row': 'F', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799494, 'available_quantity': 2, 'price': 265.55, 'wholesale_price': 265.55, 'row': 'G', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799166, 'available_quantity': 2, 'price': 265.63, 'wholesale_price': 265.63, 'row': 'D', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799427, 'available_quantity': 2, 'price': 265.65, 'wholesale_price': 265.65, 'row': 'G', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799163, 'available_quantity': 4, 'price': 270.53, 'wholesale_price': 270.53, 'row': 'E', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799197, 'available_quantity': 6, 'price': 280.63, 'wholesale_price': 280.63, 'row': 'F', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799963, 'available_quantity': 4, 'price': 300.51, 'wholesale_price': 300.51, 'row': 'Y', 'section': 'PARTERRE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799232, 'available_quantity': 8, 'price': 300.6, 'wholesale_price': 300.6, 'row': 'G', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799698, 'available_quantity': 4, 'price': 300.68, 'wholesale_price': 300.68, 'row': 'Y', 'section': 'PARTERRE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799697, 'available_quantity': 6, 'price': 310.45, 'wholesale_price': 310.45, 'row': 'P', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799645, 'available_quantity': 6, 'price': 310.45, 'wholesale_price': 310.45, 'row': 'P', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799707, 'available_quantity': 2, 'price': 310.52, 'wholesale_price': 310.52, 'row': 'Z', 'section': 'PARTERRE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799743, 'available_quantity': 2, 'price': 310.56, 'wholesale_price': 310.56, 'row': 'Z', 'section': 'PARTERRE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799641, 'available_quantity': 4, 'price': 315.69, 'wholesale_price': 315.69, 'row': 'Y', 'section': 'PARTERRE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799651, 'available_quantity': 6, 'price': 320.42, 'wholesale_price': 320.42, 'row': 'Y', 'section': 'PARTERRE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799710, 'available_quantity': 4, 'price': 320.45, 'wholesale_price': 320.45, 'row': 'Q', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799662, 'available_quantity': 4, 'price': 320.76, 'wholesale_price': 320.76, 'row': 'Q', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799661, 'available_quantity': 2, 'price': 325.56, 'wholesale_price': 325.56, 'row': 'Z', 'section': 'PARTERRE CIRCLE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre circle center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799679, 'available_quantity': 2, 'price': 330.4, 'wholesale_price': 330.4, 'row': 'R', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799676, 'available_quantity': 8, 'price': 330.5, 'wholesale_price': 330.5, 'row': 'Z', 'section': 'PARTERRE CIRCLE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre circle center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799727, 'available_quantity': 2, 'price': 330.96, 'wholesale_price': 330.96, 'row': 'R', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799544, 'available_quantity': 6, 'price': 335.64, 'wholesale_price': 335.64, 'row': 'U', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799553, 'available_quantity': 8, 'price': 340.7, 'wholesale_price': 340.7, 'row': 'V', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799529, 'available_quantity': 4, 'price': 340.86, 'wholesale_price': 340.86, 'row': 'T', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799517, 'available_quantity': 2, 'price': 345.8, 'wholesale_price': 345.8, 'row': 'S', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}]`; all_ticket_data_filter = all_ticket_data_filter.replace(/"/g, ''); all_ticket_data_filter = all_ticket_data_filter.replace(/'/g, '"'); all_ticket_data_filter = all_ticket_data_filter.replace(/None/g, 'null'); try { all_ticket_data_filter = JSON.parse(all_ticket_data_filter); } catch (error) { console.log(error); console.log(all_ticket_data_filter); all_ticket_data_filter = []; } </script> <script src="https://cdn.ticketwallet.co/pages/events/js/seats.js"></script> <script src="https://cdn.ticketwallet.co/pages/events/js/filter.js"></script> <script> const originalTicketPrices = [] function showPriceModal(section_id, row_number, ticket_price, ticket_id, splits, ddv = null) { document.getElementById('origional_ticket_price').value = ticket_price; document.getElementById('ticket_id').value = ticket_id; var sectionElement = document.getElementById("checkout-section"); var rowElement = document.getElementById("checkout-row"); var priceElement = document.getElementById("checkout-price"); var ticketCount = document.getElementById("ticket-count"); sectionElement.innerText =section_id; rowElement.innerText = row_number; var totalPrice = ticket_price * 1.1; priceElement.innerText = totalPrice.toFixed(2); var priceInteger = Math.floor(totalPrice); // Extract integer part var priceDecimal = (totalPrice - priceInteger).toFixed(2).slice(2); // Extract decimal part document.getElementById('priceInteger').innerText = priceInteger; document.getElementById('priceDecimal').innerText = priceDecimal; var ticketCountResult; if (splits.length === 1) { var roundvalue = splits == 1?'Ticket':'Tickets'; ticketCountResult = splits[0] + " "+roundvalue+ " Available"; } else { var rangeStart = splits[0]; var rangeEnd = splits[splits.length - 1]; ticketCountResult = rangeStart + " - " + rangeEnd + " Tickets Available"; } ticketCount.innerText = ticketCountResult; // Add value here to get the results if(typeof splits != 'object') { splits = splits.split(','); } var selectedValue = null; $('.sel-btn').each(function() { var borderColor = $(this).css('border-color'); if (borderColor == 'rgb(10, 17, 88)') { selectedValue = $(this).val(); return false; } }); var selects = document.querySelectorAll('.custom-select'); selects.forEach(function(select) { select.innerHTML = ''; splits.forEach(function(value, index) { var option = document.createElement('option'); option.value = value; option.text = value + " Ticket" + (value > 1 ? "s" : ""); // Select the "4 Tickets" option if (value == selectedValue) { option.selected = true; } select.appendChild(option); }); }); // end here if (window.innerWidth < 500) { updateAndRedirect(); } else { // filter-section $('#filter-section').hide(); // $('#seats_content').hide(); document.getElementById('seats_content').style.display = 'none'; // $('.second-ticket-list').hide(); $('.first-seat-section').hide(); document.querySelectorAll('.second-ticket-list').forEach(function(element) { element.style.setProperty('display', 'none', 'important'); }); if (window.innerWidth < 992) { $('#seat-map').hide(); } $('#3ddv-section').show(); var section = ddv; var d_section_id = 'None'; viewer3d.loadView3d({venue_id: d_section_id, view_id: section}); } } $('#ticket-price-modal').on('hidden.bs.modal', function () { $('#collapse-image-1').removeClass('show'); }); function listingShow() { $('#filter-section').show(); $('#seats_content').show(); $('#seat-map').show(); if (window.innerWidth < 992) { $('.second-ticket-list').show(); } else { $('.first-seat-section').show(); } $('#3ddv-section').hide(); } </script> <!-- **************** Section Clicked ******************* --> <script> sessionStorage.removeItem('Prev_node'); const svgContainer = document.querySelector('svg'); let ticketItemsContainer = $("#seats_content"); svgContainer.addEventListener('click', (event) => { // Flip back to list listingShow(); const clickedElement = event.target; const sectionId = clickedElement.getAttribute('data-section-id'); let section_color = clickedElement.getAttribute('fill'); if (sectionId && section_color != '#999999') { const currentColor = clickedElement.getAttribute('fill'); if (currentColor) { if (currentColor === 'rgba(47, 56, 138, 1)') { var gameCatalogItem = ` <div style="display: none; margin-top: 14px;" id="game-catelog"> <p class="catelog-heading">Game Catelog</p> </div> `; ticketItemsContainer.append(gameCatalogItem); const clickedElementNodes = document.querySelectorAll(`[data-section-id="${sectionId}"]`); clickedElementNodes.forEach(element => { element.setAttribute('fill', 'rgb(119,151,189)'); }); clickedElement.setAttribute('fill', 'rgb(119,151,189)'); } else { var sessionValue = sessionStorage.getItem('Prev_node'); if (sessionValue) { const clickedElementPrevious = document.querySelectorAll(`[data-section-id="${sessionValue}"]`); clickedElementPrevious.forEach(element => { element.setAttribute('fill', 'rgb(119,151,189)'); }); sessionStorage.removeItem('Prev_node'); } // add color here const clickedElementNodes = document.querySelectorAll(`[data-section-id="${sectionId}"]`); clickedElementNodes.forEach(element => { element.setAttribute('fill', 'rgba(47, 56, 138, 1)'); }); clickedElement.setAttribute('fill', 'rgba(47, 56, 138, 1)'); sessionStorage.setItem('Prev_node', sectionId); var gameCatalogItem = ` <div style="display: none; margin-top: 14px;" id="game-catelog"> <p class="catelog-heading">Section ${sectionId}</p> </div> `; ticketItemsContainer.append(gameCatalogItem); } } // ********************** Filter applied ******************************** GeneralFilter(); } }); // End new method here </script> <!--**************** Mouse Dragging, Zooming in and Zooming out ******************* --> <script src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js"></script> <script> svgContainermew = document.getElementById('svg-container'); const seatmapSvg = svgContainer let isDragging = false; let initialX; let initialY; let currentTranslateX = 0; let currentTranslateY = 0; let currentScale = 1; function applyTransform() { seatmapSvg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(${currentScale})`; } // ************************* mobile pinnching here --------------------------- const hammer = new Hammer(svgContainer); hammer.get('pinch').set({ enable: true }); hammer.get('pan').set({ direction: Hammer.DIRECTION_ALL }); let lastScale = 1; let lastX = 0; let lastY = 0; hammer.on('pinch', (event) => { const scaleFactor = event.scale / lastScale; currentScale *= scaleFactor; lastScale = event.scale; svgContainer.style.transform = `scale(${currentScale}) translate(${currentTranslateX}px, ${currentTranslateY}px)`; }); hammer.on('pinchend', () => { lastScale = 1; }); hammer.on('pan', (event) => { const deltaX = event.deltaX - lastX; const deltaY = event.deltaY - lastY; lastX = event.deltaX; lastY = event.deltaY; currentTranslateX += deltaX / currentScale; currentTranslateY += deltaY / currentScale; svgContainer.style.transform = `scale(${currentScale}) translate(${currentTranslateX}px, ${currentTranslateY}px)`; }); hammer.on('panend', () => { lastX = 0; lastY = 0; }); // ************************** End here --------------------------------------- svgContainer.addEventListener('wheel', (event) => { if (event.ctrlKey) { event.preventDefault(); const mouseX = event.clientX - svgContainer.getBoundingClientRect().left; const mouseY = event.clientY - svgContainer.getBoundingClientRect().top; const scaleFactor = event.deltaY > 0 ? 0.95 : 1.05; const deltaX = (mouseX - currentTranslateX) * (1 - scaleFactor); const deltaY = (mouseY - currentTranslateY) * (1 - scaleFactor); currentTranslateX += deltaX; currentTranslateY += deltaY; currentScale *= scaleFactor; // Adjust the translation to keep the cursor centered currentTranslateX += (currentTranslateX - mouseX) * (1 - scaleFactor); currentTranslateY += (currentTranslateY - mouseY) * (1 - scaleFactor); seatmapSvg.style.transform = `scale(${currentScale}) translate(${currentTranslateX}px, ${currentTranslateY}px)`; } }); seatmapSvg.addEventListener('mousedown', (event) => { if (event.ctrlKey) { return; } isDragging = true; initialX = event.clientX - seatmapSvg.getBoundingClientRect().left; initialY = event.clientY - seatmapSvg.getBoundingClientRect().top; seatmapSvg.classList.add('dragging'); }); document.addEventListener('mousemove', (event) => { if (!isDragging) return; const currentX = event.clientX - seatmapSvg.getBoundingClientRect().left; const currentY = event.clientY - seatmapSvg.getBoundingClientRect().top; const deltaX = currentX - initialX; const deltaY = currentY - initialY; // Adjust the translation proportionally to the scale factor currentTranslateX += deltaX / currentScale; currentTranslateY += deltaY / currentScale; seatmapSvg.style.transform = `scale(${currentScale}) translate(${currentTranslateX}px, ${currentTranslateY}px)`; }); document.addEventListener('mouseup', () => { isDragging = false; seatmapSvg.classList.remove('dragging'); }); // Buttomn SVG here const svg = document.querySelector(".zoomable-svg"); const zoomInButton = document.getElementById("zoom-in"); const zoomInReset = document.getElementById("zoom-reset"); const zoomOutButton = document.getElementById("zoom-out"); zoomInButton.addEventListener("click", function () { currentScale += 0.1; applyTransform(); // svg.style.transform = `scale(${currentScale})`; }); zoomOutButton.addEventListener("click", function () { currentScale -= 0.1; applyTransform(); // svg.style.transform = `scale(${currentScale})`; }); function zoomIn() { currentScale += 0.1; applyTransform(); } function zoomOut() { currentScale -= 0.1; applyTransform(); } let zoomInterval; function startZoomIn() { zoomInterval = setInterval(zoomIn, 100); } function startZoomOut() { zoomInterval = setInterval(zoomOut, 100); } function stopZoom() { clearInterval(zoomInterval); } zoomInButton.addEventListener("mousedown", startZoomIn); zoomOutButton.addEventListener("mousedown", startZoomOut); zoomInButton.addEventListener("mouseup", stopZoom); zoomOutButton.addEventListener("mouseup", stopZoom); zoomInButton.addEventListener("mouseleave", stopZoom); zoomOutButton.addEventListener("mouseleave", stopZoom); zoomInReset.addEventListener("click", function () { // Reset the zoom to the original scale (1) currentScale = 1; svg.style.transform = `scale(${currentScale})`; // Reset the translation to the initial position currentTranslateX = 0; currentTranslateY = 0; seatmapSvg.style.transform = `scale(${currentScale}) translate(${currentTranslateX}px, ${currentTranslateY}px)`; }); </script> <!-- **************************** Intial color Allocation to section that has tickets ************************************** --> <script> window.addEventListener('load', updateFillColor); // update color scheme here saad function updateColorWithQuantity() { var min = parseInt($("#min-price").val().replace("$", "")); var boolean = $("#max-price").val().replace("$", ""); if(boolean.includes("+")) { max = 200000; } else { var max = parseInt($("#max-price").val().replace("$", "")); } var selectedValue = null; $('.sel-btn').each(function() { var borderColor = $(this).css('border-color'); if (borderColor == 'rgb(10, 17, 88)') { selectedValue = $(this).val(); return false; } }); if(selectedValue != null) { selectedValue = parseInt(selectedValue, 10); } else { selectedValue = "any" } // fetch all the mobile var all_ticket_data = `[{'ticket_group_id': 3372799925, 'available_quantity': 2, 'price': 150.5, 'wholesale_price': 150.5, 'row': 'M', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799818, 'available_quantity': 2, 'price': 150.57, 'wholesale_price': 150.57, 'row': 'M', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799934, 'available_quantity': 4, 'price': 155.65, 'wholesale_price': 155.65, 'row': 'M', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799802, 'available_quantity': 4, 'price': 155.65, 'wholesale_price': 155.65, 'row': 'M', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799774, 'available_quantity': 6, 'price': 160.53, 'wholesale_price': 160.53, 'row': 'L', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799870, 'available_quantity': 6, 'price': 160.53, 'wholesale_price': 160.53, 'row': 'L', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799841, 'available_quantity': 8, 'price': 165.5, 'wholesale_price': 165.5, 'row': 'K', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799755, 'available_quantity': 8, 'price': 165.52, 'wholesale_price': 165.52, 'row': 'K', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799147, 'available_quantity': 8, 'price': 175.52, 'wholesale_price': 175.52, 'row': 'E', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799128, 'available_quantity': 4, 'price': 180.44, 'wholesale_price': 180.44, 'row': 'D', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799114, 'available_quantity': 6, 'price': 185.52, 'wholesale_price': 185.52, 'row': 'D', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799101, 'available_quantity': 2, 'price': 190.12, 'wholesale_price': 190.12, 'row': 'C', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799261, 'available_quantity': 8, 'price': 250.55, 'wholesale_price': 250.55, 'row': 'D', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799481, 'available_quantity': 8, 'price': 250.65, 'wholesale_price': 250.65, 'row': 'D', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799334, 'available_quantity': 6, 'price': 255.25, 'wholesale_price': 255.25, 'row': 'E', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799530, 'available_quantity': 6, 'price': 255.35, 'wholesale_price': 255.35, 'row': 'E', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799457, 'available_quantity': 4, 'price': 260.2, 'wholesale_price': 260.2, 'row': 'F', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799325, 'available_quantity': 4, 'price': 260.55, 'wholesale_price': 260.55, 'row': 'F', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799494, 'available_quantity': 2, 'price': 265.55, 'wholesale_price': 265.55, 'row': 'G', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799166, 'available_quantity': 2, 'price': 265.63, 'wholesale_price': 265.63, 'row': 'D', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799427, 'available_quantity': 2, 'price': 265.65, 'wholesale_price': 265.65, 'row': 'G', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799163, 'available_quantity': 4, 'price': 270.53, 'wholesale_price': 270.53, 'row': 'E', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799197, 'available_quantity': 6, 'price': 280.63, 'wholesale_price': 280.63, 'row': 'F', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799963, 'available_quantity': 4, 'price': 300.51, 'wholesale_price': 300.51, 'row': 'Y', 'section': 'PARTERRE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799232, 'available_quantity': 8, 'price': 300.6, 'wholesale_price': 300.6, 'row': 'G', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799698, 'available_quantity': 4, 'price': 300.68, 'wholesale_price': 300.68, 'row': 'Y', 'section': 'PARTERRE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799697, 'available_quantity': 6, 'price': 310.45, 'wholesale_price': 310.45, 'row': 'P', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799645, 'available_quantity': 6, 'price': 310.45, 'wholesale_price': 310.45, 'row': 'P', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799707, 'available_quantity': 2, 'price': 310.52, 'wholesale_price': 310.52, 'row': 'Z', 'section': 'PARTERRE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799743, 'available_quantity': 2, 'price': 310.56, 'wholesale_price': 310.56, 'row': 'Z', 'section': 'PARTERRE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799641, 'available_quantity': 4, 'price': 315.69, 'wholesale_price': 315.69, 'row': 'Y', 'section': 'PARTERRE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799651, 'available_quantity': 6, 'price': 320.42, 'wholesale_price': 320.42, 'row': 'Y', 'section': 'PARTERRE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799710, 'available_quantity': 4, 'price': 320.45, 'wholesale_price': 320.45, 'row': 'Q', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799662, 'available_quantity': 4, 'price': 320.76, 'wholesale_price': 320.76, 'row': 'Q', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799661, 'available_quantity': 2, 'price': 325.56, 'wholesale_price': 325.56, 'row': 'Z', 'section': 'PARTERRE CIRCLE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre circle center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799679, 'available_quantity': 2, 'price': 330.4, 'wholesale_price': 330.4, 'row': 'R', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799676, 'available_quantity': 8, 'price': 330.5, 'wholesale_price': 330.5, 'row': 'Z', 'section': 'PARTERRE CIRCLE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre circle center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799727, 'available_quantity': 2, 'price': 330.96, 'wholesale_price': 330.96, 'row': 'R', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799544, 'available_quantity': 6, 'price': 335.64, 'wholesale_price': 335.64, 'row': 'U', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799553, 'available_quantity': 8, 'price': 340.7, 'wholesale_price': 340.7, 'row': 'V', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799529, 'available_quantity': 4, 'price': 340.86, 'wholesale_price': 340.86, 'row': 'T', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799517, 'available_quantity': 2, 'price': 345.8, 'wholesale_price': 345.8, 'row': 'S', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}]`; all_ticket_data = all_ticket_data.replace(/"'/g, "'"); all_ticket_data = all_ticket_data.replace(/"/g, "'"); all_ticket_data = all_ticket_data.replace(/'/g, '"'); all_ticket_data = all_ticket_data.replace(/None/g, 'null'); try { all_ticket_data = JSON.parse(all_ticket_data); // apply filter here if(selectedValue == "8+") { all_ticket_data = all_ticket_data.filter(function (ticket) { return ticket.splits.some(split => split >= 7); }); } else if (selectedValue != 'any') { all_ticket_data = all_ticket_data.filter(function (ticket) { return ticket.splits.includes(selectedValue); }); } all_ticket_data = all_ticket_data.filter(function (ticket) { price = (ticket.price * 1.1).toFixed(2); return price >= min && price <= max; }); } catch (error) { all_ticket_data = []; } const paths = svgContainer.querySelectorAll('path'); const rect = svgContainer.querySelectorAll('rect'); const polygon = svgContainer.querySelectorAll('polygon'); paths.forEach(path => { const sectionId = path.getAttribute('data-section-id'); const fillColor = path.getAttribute('fill'); if (fillColor === 'rgba(47, 56, 138, 1)') { return; } if (sectionId !== null) { if (true) { let hasMatchingSection = all_ticket_data.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); rect.forEach(path => { const sectionId = path.getAttribute('data-section-id'); const fillColor = path.getAttribute('fill'); if (fillColor === 'rgba(47, 56, 138, 1)') { return; } if (sectionId !== null) { if (true) { let section = sectionId.match(/\d/g)?.join(''); let hasMatchingSection = all_ticket_data.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); polygon.forEach(path => { const sectionId = path.getAttribute('data-section-id'); const fillColor = path.getAttribute('fill'); if (fillColor === 'rgba(47, 56, 138, 1)') { return; } if (sectionId !== null) { if (true) { let section = sectionId.match(/\d/g)?.join(''); let hasMatchingSection = all_ticket_data.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); } // Subset check here function containsAllCharacters(subset, superset) { // Any case // return false; if (/\d/.test(subset)) { if(venue_id == 'nam-us-10178-astros-sec') { return subset == superset.replace('section ', ''); } else { return false; } } else { var cleanedSubset = subset.replace(/[-_\s]/g, ''); var cleanedSuperset = superset.replace(/[-_\s]/g, ''); var regex = new RegExp(cleanedSubset.split('').join('.*')); return regex.test(cleanedSuperset); } } function updateFillColor() { // fetch all the mobile var all_ticket_data = `[{'ticket_group_id': 3372799925, 'available_quantity': 2, 'price': 150.5, 'wholesale_price': 150.5, 'row': 'M', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799818, 'available_quantity': 2, 'price': 150.57, 'wholesale_price': 150.57, 'row': 'M', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799934, 'available_quantity': 4, 'price': 155.65, 'wholesale_price': 155.65, 'row': 'M', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799802, 'available_quantity': 4, 'price': 155.65, 'wholesale_price': 155.65, 'row': 'M', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799774, 'available_quantity': 6, 'price': 160.53, 'wholesale_price': 160.53, 'row': 'L', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799870, 'available_quantity': 6, 'price': 160.53, 'wholesale_price': 160.53, 'row': 'L', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799841, 'available_quantity': 8, 'price': 165.5, 'wholesale_price': 165.5, 'row': 'K', 'section': 'UPPER GALLERY RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799755, 'available_quantity': 8, 'price': 165.52, 'wholesale_price': 165.52, 'row': 'K', 'section': 'UPPER GALLERY LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'upper gallery left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799147, 'available_quantity': 8, 'price': 175.52, 'wholesale_price': 175.52, 'row': 'E', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799128, 'available_quantity': 4, 'price': 180.44, 'wholesale_price': 180.44, 'row': 'D', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799114, 'available_quantity': 6, 'price': 185.52, 'wholesale_price': 185.52, 'row': 'D', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799101, 'available_quantity': 2, 'price': 190.12, 'wholesale_price': 190.12, 'row': 'C', 'section': 'LOWER GALLERY', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'lower gallery', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799261, 'available_quantity': 8, 'price': 250.55, 'wholesale_price': 250.55, 'row': 'D', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799481, 'available_quantity': 8, 'price': 250.65, 'wholesale_price': 250.65, 'row': 'D', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799334, 'available_quantity': 6, 'price': 255.25, 'wholesale_price': 255.25, 'row': 'E', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799530, 'available_quantity': 6, 'price': 255.35, 'wholesale_price': 255.35, 'row': 'E', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799457, 'available_quantity': 4, 'price': 260.2, 'wholesale_price': 260.2, 'row': 'F', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799325, 'available_quantity': 4, 'price': 260.55, 'wholesale_price': 260.55, 'row': 'F', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799494, 'available_quantity': 2, 'price': 265.55, 'wholesale_price': 265.55, 'row': 'G', 'section': 'MEZZANINE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799166, 'available_quantity': 2, 'price': 265.63, 'wholesale_price': 265.63, 'row': 'D', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799427, 'available_quantity': 2, 'price': 265.65, 'wholesale_price': 265.65, 'row': 'G', 'section': 'MEZZANINE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799163, 'available_quantity': 4, 'price': 270.53, 'wholesale_price': 270.53, 'row': 'E', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799197, 'available_quantity': 6, 'price': 280.63, 'wholesale_price': 280.63, 'row': 'F', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799963, 'available_quantity': 4, 'price': 300.51, 'wholesale_price': 300.51, 'row': 'Y', 'section': 'PARTERRE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799232, 'available_quantity': 8, 'price': 300.6, 'wholesale_price': 300.6, 'row': 'G', 'section': 'MEZZANINE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'mezzanine', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799698, 'available_quantity': 4, 'price': 300.68, 'wholesale_price': 300.68, 'row': 'Y', 'section': 'PARTERRE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799697, 'available_quantity': 6, 'price': 310.45, 'wholesale_price': 310.45, 'row': 'P', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799645, 'available_quantity': 6, 'price': 310.45, 'wholesale_price': 310.45, 'row': 'P', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799707, 'available_quantity': 2, 'price': 310.52, 'wholesale_price': 310.52, 'row': 'Z', 'section': 'PARTERRE LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799743, 'available_quantity': 2, 'price': 310.56, 'wholesale_price': 310.56, 'row': 'Z', 'section': 'PARTERRE RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799641, 'available_quantity': 4, 'price': 315.69, 'wholesale_price': 315.69, 'row': 'Y', 'section': 'PARTERRE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799651, 'available_quantity': 6, 'price': 320.42, 'wholesale_price': 320.42, 'row': 'Y', 'section': 'PARTERRE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799710, 'available_quantity': 4, 'price': 320.45, 'wholesale_price': 320.45, 'row': 'Q', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799662, 'available_quantity': 4, 'price': 320.76, 'wholesale_price': 320.76, 'row': 'Q', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799661, 'available_quantity': 2, 'price': 325.56, 'wholesale_price': 325.56, 'row': 'Z', 'section': 'PARTERRE CIRCLE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre circle center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799679, 'available_quantity': 2, 'price': 330.4, 'wholesale_price': 330.4, 'row': 'R', 'section': 'ORCHESTRA LEFT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra left', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799676, 'available_quantity': 8, 'price': 330.5, 'wholesale_price': 330.5, 'row': 'Z', 'section': 'PARTERRE CIRCLE CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'parterre circle center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799727, 'available_quantity': 2, 'price': 330.96, 'wholesale_price': 330.96, 'row': 'R', 'section': 'ORCHESTRA RIGHT', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra right', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799544, 'available_quantity': 6, 'price': 335.64, 'wholesale_price': 335.64, 'row': 'U', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799553, 'available_quantity': 8, 'price': 340.7, 'wholesale_price': 340.7, 'row': 'V', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4, 5, 6, 7, 8], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799529, 'available_quantity': 4, 'price': 340.86, 'wholesale_price': 340.86, 'row': 'T', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2, 3, 4], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}, {'ticket_group_id': 3372799517, 'available_quantity': 2, 'price': 345.8, 'wholesale_price': 345.8, 'row': 'S', 'section': 'ORCHESTRA CENTER', 'format': 'Eticket', 'type': 'event', 'wheelchair': 'False', 'splits': [1, 2], 'signature': '', 'view_type': None, 'tevo_section_name': 'orchestra center', 'instant_delivery': 'False', 'ddv_section_id': None, 'thumbnail_image_path': None, 'wide_image_path': None, 'in_hand_on': '2025-05-13'}]`; all_ticket_data = all_ticket_data.replace(/"'/g, "'"); all_ticket_data = all_ticket_data.replace(/"/g, "'"); all_ticket_data = all_ticket_data.replace(/'/g, '"'); all_ticket_data = all_ticket_data.replace(/None/g, 'null'); try { all_ticket_data = JSON.parse(all_ticket_data); } catch (error) { console.log(error); all_ticket_data = []; } let prices = all_ticket_data.map(ticket => ticket.price); let minPrice = Math.ceil(Math.min(...prices)) - 1; // let maxPrice = Math.ceil(Math.max(...prices)) + 1; prices.sort((a, b) => a - b); let index75thPercentile = Math.ceil(prices.length * 0.9) - 1; let maxPrice = prices[index75thPercentile]; maxPrice = Math.floor(maxPrice); $("#max-price-input").val(maxPrice); $("#price-slider").slider({ range: true, min: minPrice, max: maxPrice, // saad values: [minPrice, maxPrice], slide: function (event, ui) { $("#min-price").val("$" + ui.values[0]); $("#max-price").val("$" + ui.values[1]); filterPrice(ui.values[0], ui.values[1], maxPrice); }, }); var min_price = $("#price-slider").slider("values", 0); var max_price = $("#price-slider").slider("values", 1); $("#min-price").val("$" + min_price); $("#max-price").val("$" + (max_price)+"+"); filterPrice(min_price, max_price, maxPrice); const paths = svgContainer.querySelectorAll('path'); const rect = svgContainer.querySelectorAll('rect'); const polygon = svgContainer.querySelectorAll('polygon'); // Additionl where make text clcikable var texts = svgContainer.querySelectorAll('text'); texts.forEach(function(text) { text.setAttribute('pointer-events', 'none'); }); // End it paths.forEach(path => { const sectionId = path.getAttribute('data-section-id'); if (sectionId !== null) { if (true) { let section = sectionId.match(/\d/g)?.join(''); let hasMatchingSection = all_ticket_data.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); rect.forEach(path => { const sectionId = path.getAttribute('data-section-id'); if (sectionId !== null) { if (true) { let section = sectionId.match(/\d/g)?.join(''); let hasMatchingSection = all_ticket_data.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); polygon.forEach(path => { const sectionId = path.getAttribute('data-section-id'); if (sectionId !== null) { if (true) { let section = sectionId.match(/\d/g)?.join(''); let hasMatchingSection = all_ticket_data.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); } </script> <!-- End here --> <script> function rand(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } function increasePrices() { const priceElements = document.querySelectorAll('.ticket-item-price, .ticket-item-price-none-3d'); priceElements.forEach((priceElement) => { // Get the current price as text, remove the "$" sign, and convert it to a number const currentPrice = parseFloat(priceElement.textContent.replace('$', '')); originalTicketPrices.push(currentPrice) // Calculate the new price with a 17% increase const newPrice = (currentPrice * 1.1).toFixed(2); // Round to 2 decimal places // Update the price element with the new price priceElement.textContent = '$' + newPrice; }); // Add "All In" text when checkbox is checked const elementsWithAllInText = document.querySelectorAll('.allInText') elementsWithAllInText.forEach((element) => { element.innerHTML = 'All-IN'; }); } increasePrices(); </script> <script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script> <script> $(document).ready(function () { $('#eventsSlider').slick({ infinite: false, slidesToShow: 5, // Number of slides to show at a time slidesToScroll: 5, // Number of slides to scroll overflow: 'hidden', prevArrow: '<a href="#" class="arrow__btn arrow-hoverable-sports left-arrow">‹</a>', nextArrow: '<a href="#" class="arrow__btn arrow-second-sports right-arrow">›</a>', lazyLoad: 'ondemand', responsive: [ { breakpoint: 3000, // Adjust this breakpoint based on your design settings: { slidesToShow: 6, // Number of slides to show at a time on smaller screens slidesToScroll: 6, // Number of slides to scroll on smaller screens } }, { breakpoint: 1900, // Adjust this breakpoint based on your design settings: { slidesToShow: 5, // Number of slides to show at a time on smaller screens slidesToScroll: 5, // Number of slides to scroll on smaller screens } }, { breakpoint: 1200, // Adjust this breakpoint based on your design settings: { slidesToShow: 4, // Number of slides to show at a time on smaller screens slidesToScroll: 4, // Number of slides to scroll on smaller screens } }, { breakpoint: 1050, // Adjust this breakpoint based on your design settings: { slidesToShow: 3, // Number of slides to show at a time on even smaller screens slidesToScroll: 3, // Number of slides to scroll on even smaller screens } }, ] }); // add here const eventsSlider = document.getElementById('eventsSlider'); eventsSlider.style.overflow = 'hidden'; eventsSlider.addEventListener('mouseover', function (event) { const arrowBtn = document.querySelector('.arrow-hoverable-sports'); const arrowBtnsec = document.querySelector('.arrow-second-sports'); if (arrowBtn) { const slickInstance = $('#eventsSlider').slick('getSlick'); arrowBtnsec.style.opacity = '1'; if (slickInstance.currentSlide > 0) { arrowBtn.style.opacity = '1'; } else { arrowBtn.style.opacity = '0'; } } }); eventsSlider.addEventListener('mouseout', function (event) { const arrowBtn = document.querySelector('.arrow-hoverable-sports'); const arrowBtnsec = document.querySelector('.arrow-second-sports'); if (arrowBtn) { arrowBtn.style.opacity = '0'; arrowBtnsec.style.opacity = '0'; } }); // Second soltion -- // ############### Slider move ############### var slotValue = $('[name="slot_name"]').val(); if (slotValue) { var screenWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var numOfSlides = 5; if(screenWidth <= 3000 && screenWidth > 1900) { numOfSlides = 6; } else if(screenWidth < 1900 && screenWidth >= 1200) { numOfSlides = 5; } else if(screenWidth < 1200 && screenWidth >= 1050) { numOfSlides = 4; } else if (screenWidth < 1050) { numOfSlides = 3; } var slider_index = parseInt(slotValue) - 1; var ratio = (slider_index+1) % numOfSlides; if (ratio == 1) { $('#eventsSlider').slick('slickGoTo', slider_index); } else { $('#eventsSlider').slick('slickGoTo', slider_index+numOfSlides); ratio = ratio == 0 ? numOfSlides : ratio; var diff = numOfSlides - ratio; diff +=1; for(let i=0 ; i < diff ; i++) { $('#eventsSlider').slick('slickAdd', '<div></div>', 0, true); $('#eventsSlider').slick('slickAdd', '<div></div>', false); } } } }); </script> <script> function GoBackToLink() { // Check the referrer const referrer = document.referrer; // Specify the URL to check for const specificUrl = 'checkout'; // If the referrer contains the specific URL, go back if (referrer.includes(specificUrl)) { window.location.href = '/'; } else { // Otherwise, redirect to the home page window.history.back(); } } // ******************* Only fucntion ********************** var default_image_view = ''; var boolean_flag = true; function addTicketsOneFunction(selectedSectionData, quantity__='any') { venue_id = "None"; let ticketItemsContainer = $("#seats_content"); ticketItemsContainer.append("<div class='game-catelog-txt' style='width:100%; display:none'> Game Catalog </div>" ); if (selectedSectionData.length > 0) { // default image view if and only if it has venue var result_key_check = "None"; var is_parking_check = "False"; if(result_key_check && is_parking_check == 'False' && boolean_flag) { const defaultImage = selectedSectionData.find(function (section) { return section.wide_image_path !== null; }); if (defaultImage) { default_image_view = defaultImage.wide_image_path; } else { default_image_view = ''; } boolean_flag = false; } selectedSectionData.forEach(function (section) { var ticketCount = section.splits.length; var ticketText = ticketCount == 1 && section.splits[0] === 1 ? 'Ticket' : 'Tickets'; var img_path = section.wide_image_path; var style_brightness_adjact = 'style="filter: brightness(1)"'; var p_embend = ''; if(!img_path) { img_path = default_image_view; style_brightness_adjact = 'style="filter: brightness(0.5) ; min-height:112px;"'; p_embend = '<p style="left: 46px;" class="not-available"> Not Available </p>'; } else { // This code only if(venue_id == 'nam-us-00052-stars-sec') { img_path = ''; section_a = section.ddv_section_id; var element_str = 'thumbnail_'+section.ticket_group_id; (async () => { await handleViewerPromise(section_a, element_str); })(); } // End here } var origional_price = parseFloat(section.price); var all_in_price = (origional_price * 1.1).toFixed(2); var result_key = "None"; var is_parking = "False"; if(result_key != 'None' && result_key && is_parking == 'False') { var sanitizedRow = section.row.replace(/[ÂÃ]/g, '') var ticketItem = ` <div data-section="${section.splits}" data-price="${section.price}" data-tevo="${section.tevo_section_name}" class='ticket-details ticket-item-${section.ticket_id}'> <a tabindex="0" class="text-truncate list-group-item" role="button" href="JavaScript:void(0)" onclick="showPriceModal('${section.section}', '${section.row}', ${section.price}, ${section.ticket_group_id}, '${section.splits}', '${section.ddv_section_id}')" style="border-bottom: 0.3px solid #E3E3E3"> <div class='d-flex increase-padding- justify-content-between' style="pointer-events: all;" data-toggle="modal" data-target="#exampleModalCenter"> <div class="my-hauto"> <img id="thumbnail_${section.ticket_group_id}" class="import-img ${section.ddv_section_id}" ${style_brightness_adjact} height="112px" width="172px" loading="lazy" src="${img_path}" alt="" onerror="this.style.opacity='0';"> ${p_embend} </div> <div style="width: 100%; margin-top:auto !important; margin-bottom:auto !important" class="w-full mx-3 mt-2"> <div style="white-space: normal; overflow-wrap: break-word; line-height:17px !important" class='ticket-item-heading'> Section ${section.section.substring(0, 30)} <span style="margin-left:3px; margin-right:3px"> &#x2022; </span> Row ${sanitizedRow} </div> <span class='verified-resale w-100 float-start' style="margin-top: 8px;"> ${section.format == 'TM_mobile' ? ` <img class="img-rouund hide-on-medium" style="height:14px; width:15px; display: inline; margin-top: -3px;" src="https://cdn.ticketwallet.co/pages/events/img/simple-mobile.svg" alt="Logo"> <span class="hide-on-medium "> Mobile Transfer</span>` : ''} ${section.instant_delivery != 'False' ? ` <span class='verified-resale mx-1 instant-del'> <span class="full-width-small-screen"> <img class="img-rouund" style="height:16px; width:15px; display: inline; margin-top: -3px;" src="https://cdn.ticketwallet.co/pages/events/img/instant.svg" loading="lazy" alt="Logo"> <span> Instant Transfer</span> </span>` : ''} <span class="ticket-splits-mobile"> <img class="ticket-split-img img-rouund ui___relative" style="height:20px; width:15px; display: inline; margin-top: -3px; margin-left: 5px;" src="https://cdn.ticketwallet.co/pages/events/img/mobile.svg" alt="Logo"> ${section.splits[0]} ${section.splits.length > 1 ? '- ' + section.splits[section.splits.length - 1] : ''} ${ticketText} </span> </span> <div class="row align-items-end"> <div class="col-7"> <p style="padding-top:10px; padding-left:5px" class="verified-p"> <img style="height: 15px; width: 20px; margin-top: -2px; margin-right:2px" src="https://cdn.ticketwallet.co/pages/events/img/ticketwallet_logo.png" alt=""> Verified Seller </p> </div> <div style="padding: 0px; margin-top: 14px" class="col-5 ticket-placement text-end"> <div> <p class='ticket-item-price d-inline'>$${all_in_price}</p> </div> <p class="extra-small-p-text" style="margin-bottom: 0px;"> <img style="display: inline; height: 12px; font-weight: 14px; width:12px; margin-top: -2px; margin-right:1px" src="https://cdn.ticketwallet.co/pages/events/img/tick.png" alt=""> All-In pricing </p> <!-- allInText --> </div> </div> </div> </div> </a> </div> `; ticketItemsContainer.append(ticketItem); } else { var ticketItem = ` <div data-section="${section.splits}" data-price="${section.price}" data-tevo="${section.tevo_section_name}" class='ticket-details ticket-item-${section.ticket_id}'> <a tabindex="0" class="text-truncate list-group-item" role="button" href="JavaScript:void(0)" onclick="showPriceModal('${section.section}', '${section.row}', ${section.price}, ${section.ticket_group_id}, '${section.splits}', '${section.ddv_section_id}')" style="border: none; border-bottom: 0.3px solid #E3E3E3"> <div class='d-flex mt-2 mb-2 justify-content-between'> <div class="adjact-margin"> <span style="white-space: normal; overflow-wrap: break-word;" class='ticket-item-heading non-view-heading'> Section ${section.section} <span style="margin-left:3px; margin-right:3px"> &#x2022; </span> Row ${section.row} </span> <span class='verified-resale w-100 float-start mt-5px' style="margin-top: 3px;"> ${section.format == 'TM_mobile' ? ` <img style="height:14px; width:15px; display: inline; margin-top: -3px;" src="https://cdn.ticketwallet.co/pages/events/img/simple-mobile.svg" alt="Logo"> <span> Mobile Transfer</span>` : ''} ${section.instant_delivery != 'False' ? ` <span class='verified-resale mx-1 instant-del'> <img class="img-rouund" style="height:16px; width:15px; display: inline; margin-top: -3px;" src="https://cdn.ticketwallet.co/pages/events/img/instant.svg" loading="lazy" alt="Logo"> <span> Instant Transfer</span>` : ''} <img style="height:20px; width:15px; display:inline; margin-top:-3px; margin-left:5px;" src="https://cdn.ticketwallet.co/pages/events/img/mobile.svg" alt="Logo"> ${section.splits[0]} ${section.splits.length > 1 ? '- ' + section.splits[section.splits.length - 1] : ''} ${ticketText} </span> </div> <div class="mt-8rem" style="margin-top:0.3rem"> <div style="display: inline; text-align: right;"> <div class="text-right"> <p class='ticket-item-price-none-3d d-inline'>$${all_in_price}</p> </div> <p class="extra-small-p-text" style="margin-bottom: 0px;"> <img style="display: inline; height: 12px; font-weight: 14px; width:12px; margin-top: -2px; margin-right:1px" src="https://cdn.ticketwallet.co/pages/events/img/tick.png" alt=""> All-In pricing </p> </div> </div> </div> </a> </div> `; ticketItemsContainer.append(ticketItem); } }); } else { // quantity__ var no_seats_available_html = ` <div style="color:rgba(10, 17, 88, 1);margin: 0.8rem 0rem 0rem 1rem"><p>There are no ticket packages that match your current filters</p></div> ` ticketItemsContainer.append(no_seats_available_html); } } var keyValueStore = {}; async function handleViewerPromise(section_id, element_id) { if (section_id in keyValueStore) { setTimeout(function() { var element = document.getElementById(element_id); if (element) { element.src = keyValueStore[section_id]; element.style.height = '112px'; element.style.opacity = '1'; } else { console.log('Element not found'); } }, 200); } else { try { const section_a = await viewer_promise; var node = viewer.getNodeById(section_id); if (node) { var imgurl = await viewer3d.getThumbnail({ venue_id: venue_id, view_id: node.id }); keyValueStore[section_id] = imgurl.src; var element = document.getElementById(element_id); if (element.tagName === "IMG") { element.src = imgurl.src; // Set the image source to the thumbnail URL element.style.height = '112px' ; element.style.opacity = '1'; } else { console.error(`Element with class "${node.id}" is not an <img> element.`); } } else { console.error(`Node with id "${section_id}" not found.`); } } catch (error) { console.error("An error occurred while fetching the thumbnail:", error); } } } // ************************ Update section color accordingly ************************** function updateSpecificFillColor(resultData) { if(svgContainer != null){ const paths = svgContainer.querySelectorAll('path'); const rect = svgContainer.querySelectorAll('rect'); const polygon = svgContainer.querySelectorAll('polygon'); // Additionl where make text clcikable var texts = svgContainer.querySelectorAll('text'); texts.forEach(function(text) { text.setAttribute('pointer-events', 'none'); }); // End it paths.forEach(path => { const fillColor = path.getAttribute('fill'); if (fillColor === 'rgba(47, 56, 138, 1)') { return; } const sectionId = path.getAttribute('data-section-id'); if (sectionId !== null) { if (true) { let section = sectionId.match(/\d/g)?.join(''); let hasMatchingSection = resultData.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); path.style.cursor = 'pointer'; } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); rect.forEach(path => { const sectionId = path.getAttribute('data-section-id'); const fillColor = path.getAttribute('fill'); if (fillColor === 'rgba(47, 56, 138, 1)') { return; } if (sectionId !== null) { if (true) { let section = sectionId.match(/\d/g)?.join(''); let hasMatchingSection = resultData.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); path.style.cursor = 'pointer'; } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); polygon.forEach(path => { const sectionId = path.getAttribute('data-section-id'); const fillColor = path.getAttribute('fill'); if (fillColor === 'rgba(47, 56, 138, 1)') { return; } if (sectionId !== null) { if (true) { let section = sectionId.match(/\d/g)?.join(''); let hasMatchingSection = resultData.some(ticket => ticket.tevo_section_name.toLowerCase() == sectionId.toLowerCase() || containsAllCharacters(ticket.tevo_section_name.toLowerCase(), sectionId.toLowerCase())); if (hasMatchingSection) { path.setAttribute('fill', 'rgb(119,151,189)'); path.style.cursor = 'pointer'; } else { path.setAttribute('fill', '#999999'); } } else { path.setAttribute('fill', '#999999'); } } }); } } </script> <!-- Calculate the overall height --> <script> function adjustSeatsContentHeight() { const windowWidth = window.innerWidth; const seatMaps = document.querySelectorAll('.seats-div'); if (windowWidth < 992) { const sidebar_h = document.getElementById('sideBar'); const seatmap__h = document.getElementById('seat-map'); const sidebarHeight = sidebar_h.offsetHeight; var seatmapHeight = seatmap__h.offsetHeight; if(seatmapHeight == 59) { seatmapHeight = 19; } else { seatmapHeight+=8; } const windowHeight = window.innerHeight; const headerHeight = sidebarHeight+seatmapHeight+4; const availableHeight = windowHeight - headerHeight; seatMaps.forEach(function(seatMap) { seatMap.style.height = availableHeight + 'px'; seatMap.style.overflowY = 'auto'; }); } else { seatMaps.forEach(function(seatMap) { seatMap.style.height = ''; seatMap.style.overflowY = ''; }); } } adjustSeatsContentHeight(); window.addEventListener('resize', adjustSeatsContentHeight); </script> </body> <!-- Modal content for login modal (place outside of body tags to allow clicking on buttons/input) --> <div class="modal fade" id="loginModal" tabindex="-1"> <div style="width: 400px;" class="modal-dialog modal-dialog-centered new-width-adjact"> <div class="modal-content"> <div class="modal-body"> <div class="row"> <button type="button" class="btn-close ms-auto me-3" style="border-color: rgba(10, 17, 88, 1) ; box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.3); border-radius: 50%; padding: 10px; font-size: 12px;" data-bs-dismiss="modal" aria-label="Close" style="float: right"></button> </div> <div class="col border border-2 rounded-3 main-block"> <div class="text-left px-3 mb-2"> <h3 class="text-heading">Login with Ticket Wallet</h3> <div class="text-small">Please enter your details to sign in</div> </div> <!-- form --> <div class="row px-3 py-3"> <div id="login-form" class="d-flex d-column justify-content-center align-items-center"> <form class="rounded-3 needs-validation" onsubmit="submitLoginForm(event)" novalidate> <input type="hidden" name="csrfmiddlewaretoken" value="dzgQ7rIeybwmGMg8rc9WpFmiPZXbR0uX1k0fuCO2eiKpHWimVrfYzUftssrWQCSM"> <div id="login-pnumber" class="mb-2"> <label for="inputPhoneNumber"> PHONE NUMBER </label> <div class="input-group mb-3"> <button id="button-country-code-2" class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false"></button> <ul id="input-country-code-2" class="dropdown-menu"></ul> <input type="tel" name="phone_number" class="form-control" placeholder="" id="inputPhoneNumber2" aria-describedby="phoneNumberHelp" required /> <div class="input-group-append"> <button class="x-button" type="button" onClick="document.getElementById('inputPhoneNumber2').value = ''" tabindex="-1"> <i class="fas fa-times fa-lg"></i> </button> </div> </div> </div> <div class="row mb-2 justify-content-center"> <div class="d-flex justify-content-center align-items-center" style="gap: 15px"> <div class="or-divider-line"> <hr /> </div> <div class="or-divider-text"> <span class="text-muted">OR</span> </div> <div class="or-divider-line"> <hr /> </div> </div> </div> <div id="login-email"> <label for="exampleInputEmail1">EMAIL</label> <div class="input-group mb-3"> <input type="email" name="email" class="form-control" placeholder="" id="exampleInputEmail1" aria-describedby="emailHelp" required /> <div class="input-group-append"> <button class="x-button" type="button" onClick="document.getElementById('exampleInputEmail1').value = ''" tabindex="-1"> <i class="fas fa-times fa-lg"></i> </button> </div> <div class="invalid-feedback"> Please enter a valid email address. </div> </div> </div> <!-- submit form button --> <div class="d-grid"> <button id="login-submit-btn" type="submit" class="signin-button btn btn-primary btn-lg"> <div class="signin-text">Login</div> </button> <div class="auth-error mx-auto" id="loginError"></div> </div> <div class="row mt-3"> <div class="col text-center forgot-pass-text"> <a href="" class="text-decoration-underline forgot-pass-link" data-bs-toggle="modal" data-bs-target="#createAccountModal">Create Account</a> </div> </div> </form> <div></div> </div> </div> </div> </div> </div> </div> </div> <!-- Modal content for create account modal --> <div class="modal fade" id="createAccountModal" tabindex="-1"> <div style="width: 400px;" class="modal-dialog modal-dialog-centered new-width-adjact"> <div class="modal-content"> <div class="modal-body"> <div class="row"> <button type="button" class="btn-close ms-auto me-2" data-bs-dismiss="modal" aria-label="Close" style="float: right; border-color: rgba(10, 17, 88, 1) ; box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.3); border-radius: 50%; padding: 10px; font-size: 12px;"></button> </div> <div class="col border border-2 rounded-3 mt-1 main-block"> <div class="text-left px-3 mb-2"> <h3 class="text-heading">Create an Account</h3> <div class="text-small"> Please enter account details below </div> </div> <!-- Registration form --> <div class="row px-3 pt-3 pb-2"> <div id="login-form" class="d-flex d-column justify-content-center align-items-center"> <form class="rounded-3 needs-validation" onsubmit="submitRegisterForm(event)" novalidate> <input type="hidden" name="csrfmiddlewaretoken" value="dzgQ7rIeybwmGMg8rc9WpFmiPZXbR0uX1k0fuCO2eiKpHWimVrfYzUftssrWQCSM"> <div id="login-fname" class="mb-2"> <label for="inputFirstName">FIRST NAME</label> <div class="input-group mb-3"> <input type="text" name="first_name" class="form-control" placeholder="" id="inputFirstName" aria-describedby="firstNameHelp" required /> <div class="input-group-append"> <button class="x-button" type="button" onClick="document.getElementById('inputFirstName').value = ''" tabindex="-1"> <i class="fas fa-times fa-lg"></i> </button> </div> </div> </div> <div id="login-lname" class="mb-2"> <label for="inputLastName">LAST NAME</label> <div class="input-group mb-3"> <input type="text" name="last_name" class="form-control" placeholder="" id="inputLastName" aria-describedby="lastNameHelp" required /> <div class="input-group-append"> <button class="x-button" type="button" onClick="document.getElementById('inputLastName').value = ''" tabindex="-1"> <i class="fas fa-times fa-lg"></i> </button> </div> </div> </div> <div id="login-pnumber" class="mb-2"> <label for="inputPhoneNumber">PHONE NUMBER</label> <div class="input-group mb-3"> <button id="button-country-code" class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false"></button> <ul id="input-country-code" class="dropdown-menu"></ul> <input type="tel" name="phone_number" class="form-control" placeholder="" id="inputPhoneNumber" aria-describedby="phoneNumberHelp" required /> <div class="input-group-append"> <button class="x-button" type="button" onClick="document.getElementById('inputPhoneNumber').value = ''" tabindex="-1"> <i class="fas fa-times fa-lg"></i> </button> </div> </div> </div> <div id="login-email"> <label for="exampleInputEmail2">EMAIL</label> <div class="input-group mb-3"> <input type="email" name="email" class="form-control" placeholder="" id="exampleInputEmail2" aria-describedby="emailHelp" required /> <div class="input-group-append"> <button class="x-button" type="button" onClick="document.getElementById('exampleInputEmail2').value = ''" tabindex="-1"> <i class="fas fa-times fa-lg"></i> </button> </div> </div> </div> <!-- Create account button --> <div class="d-grid"> <button id="register-submit-btn" type="submit" class="spectacular-button btn btn-primary btn-lg btn-block"> Sign Up </button> </div> <!-- Shows create account error messages --> <div class="d-flex justify-content-center mx-auto mb-2"> <div class="auth-error" id="registerError"></div> </div> <!-- 'Already have an account?' button --> <div class="row mt-3"> <div class="col text-center forgot-pass-text"> <!-- <a class="text-decoration-none forgot-pass-text" href="/login/"></a> --> <a id="loginButton" href="" class="text-decoration-none forgot-pass-link" data-bs-toggle="modal" data-bs-target="#loginModal">Login</a> </div> </div> </form> </div> </div> </div> </div> </div> </div> </div> <!-- Email Sent Modal --> <div class="modal fade" id="emailSentModal" tabindex="-1"> <div style="width: 400px;" class="modal-dialog modal-dialog-centered new-width-adjact"> <div class="modal-content"> <div class="modal-body"> <div class="row"> <div class="col-3 text-left"> <button type="button" class="text-left me-2" onclick="resendOTP()" style="outline:none;border: none ; background-color: #FFFFFF; font-size: 12px;"> <img class="store-img" src="https://cdn.ticketwallet.co/shared/img/back-btn.png" /> </button> </div> <div class="col-9"> <button type="button" class="btn-close ms-auto me-2" data-bs-dismiss="modal" aria-label="Close" style="float: right; border-color: rgba(10, 17, 88, 1) ; box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.3); border-radius: 50%; padding: 10px; font-size: 12px;"></button> </div> </div> <div class="col border border-2 rounded-3 main-block"> <div class="text-left px-3 mb-2"> <h3 class="text-heading">Enter your OTP</h3> <div class="text-small" style="line-height: 19px;"> Please enter the code sent to <span id="change-title-form">email</span> </div> </div> <div class="row px-3 py-3"> <div id="login-form" class="d-flex d-column justify-content-center align-items-center"> <form class="rounded-3 mb-0" onsubmit="submitForm(event)"> <input type="hidden" name="csrfmiddlewaretoken" value="dzgQ7rIeybwmGMg8rc9WpFmiPZXbR0uX1k0fuCO2eiKpHWimVrfYzUftssrWQCSM"> <input id="nextUrl" type="hidden"/> <input id="inputUsername" type="hidden" name="username" /> <div id="login-email"> <label for="inputCode">CODE</label> <div class="input-group"> <input name="code" class="form-control input-otp" placeholder="" id="inputCode" aria-describedby="emailHelp" required /> <div id="suggestion-box" class="suggestion-box"></div> <div class="input-group-append"> <button class="x-button" type="button" onClick="document.getElementById('inputCode').value = ''" tabindex="-1"> <i class="fas fa-times fa-lg"></i> </button> </div> </div> </div> <!-- submit form button --> <div class="d-grid"> <button type="submit" class="signin-button btn btn-primary"> <div class="signin-text">Submit</div> </button> <div class="auth-error mx-auto" id="authError"></div> </div> </form> </div> </div> </div> </div> </div> </div> </div> <script> // add login methods function SellTicket() { const sellTicketsUrl = "/sell"; localStorage.setItem('is_page', sellTicketsUrl); $('#loginModal').modal('show'); } function LoginBtn() { localStorage.setItem('is_page', false); $('#loginModal').modal('show'); } // Cleaning error messages on modal close $(document).ready(function () { $('#loginModal, #emailSentModal, #createAccountModal').on( 'hidden.bs.modal', function () { $('.auth-error').each(function () { $(this).text(''); // Set the text content of each element to an empty string }); } ); }); // Login submit function function submitLoginForm(event) { event.preventDefault(); document.getElementById("inputCode").value = null; var email = document.getElementById('exampleInputEmail1').value; var phone = document.getElementById('inputPhoneNumber2').value; const changeTitleForm = document.getElementById("change-title-form"); if (!phone && !email) { document.getElementById('loginError').textContent = 'Please enter a valid phone number or email address'; return; } if (email && !isEmailValid(email)) { document.getElementById('loginError').textContent = 'Please enter a valid email address'; return; } if (phone && !isPhoneNumberValid(phone)) { document.getElementById('loginError').textContent = 'Please enter a valid phone number'; return; } var formData = new FormData(); if (phone) { var country_code = document.getElementById( 'button-country-code-2' ).textContent; // Keeping only digits from phone number and adding country code phone = phone.replace(/[^0-9]/g, ''); phone = country_code + phone; formData.append('username', phone); changeTitleForm.innerHTML = phone; } else { formData.append('username', email); changeTitleForm.innerHTML = email; } const loginSubmitBtn = document.getElementById('login-submit-btn'); loginSubmitBtn.disabled = true; loginSubmitBtn.innerHTML = '<div class="spinner-border text-primary" role="status" style="width:30px; height:30px; color:lightgray!important"></div>'; fetch('/api/users/v1/auth/request/otp/', { method: 'POST', body: formData, }) .then((response) => { loginSubmitBtn.disabled = false; loginSubmitBtn.innerHTML = '<div class="signin-text">Login</div>'; if (response.status === 200) { $('#loginModal').modal('hide'); $('#emailSentModal').modal('show'); if(email) { document.getElementById('inputUsername').value = email; } else { document.getElementById('inputUsername').value = phone; } } else { document.getElementById('loginError').textContent = 'User not found. Try again or create a new account.'; } }) .catch((error) => { console.error('Error:', error); }); } function resendOTP() { $('#loginModal').modal('show'); $('#emailSentModal').modal('hide'); } // Register submit function function isPhoneNumberValid(phone_number) { // Regular expression to validate the email const phoneRegex = /^[-.\s]?\d{0,3}[-.\s]?\(?\d{1,}\)?[-.\s]?\d{1,}[-.\s]?\d{1,}$/; return phoneRegex.test(phone_number); } function isEmailValid(email) { // Regular expression to validate the email const emailRegex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\\.,;:\s@\"]+\.)+[^<>()[\]\\.,;:\s@\"]{2,})$/i; return emailRegex.test(email); } function submitRegisterForm(event) { event.preventDefault(); var first_name = document.getElementById('inputFirstName').value; var last_name = document.getElementById('inputLastName').value; var phone_number = document.getElementById('inputPhoneNumber').value; var email = document.getElementById('exampleInputEmail2').value; var country_code = document.getElementById( 'button-country-code' ).textContent; const changeTitleForm = document.getElementById("change-title-form"); if (!first_name || !last_name || !phone_number || !email) { document.getElementById('registerError').textContent = 'Please fill in the required fields'; return; } if (!isPhoneNumberValid(phone_number)) { document.getElementById('registerError').textContent = 'Please enter a valid phone number in worldwide format'; return; } if (!isEmailValid(email)) { document.getElementById('registerError').textContent = 'Please enter a valid email address'; return; } // Keeping only digits from phone number and adding country code const numberRegex = /\d/g; phone_number = phone_number.match(numberRegex).join(''); phone_number = country_code + phone_number; console.log(phone_number); var formData = new FormData(); formData.append('email', email); formData.append('phone_number', phone_number); formData.append('first_name', first_name); formData.append('last_name', last_name); changeTitleForm.innerHTML = email; const registerSubmitBtn = document.getElementById('register-submit-btn'); registerSubmitBtn.disabled = true; registerSubmitBtn.innerHTML = '<div class="spinner-border text-primary" role="status" style="width:30px; height:30px; color:lightgray!important"></div>'; fetch('/api/users/v1/auth/register/', { method: 'POST', body: formData, }) .then((response) => { registerSubmitBtn.disabled = false; registerSubmitBtn.innerHTML = 'Sign Up'; if (response.status === 200) { $('#createAccountModal').modal('hide'); $('#emailSentModal').modal('show'); document.getElementById('inputUsername').value = email; } else { response.json().then((data) => { if (data.detail) { document.getElementById('registerError').textContent = data.detail; } else { document.getElementById('registerError').textContent = 'An unknown error occurred'; } }); } }) .catch((error) => { console.error('Error:', error); }); } // OTP submit function function submitForm(event) { event.preventDefault(); var code = document.getElementById('inputCode').value; var email = document.getElementById('inputUsername').value; var nextUrl = document.getElementById('nextUrl').value; var formData = new FormData(); formData.append('email', email); formData.append('code', code); fetch('/login/', { method: 'POST', body: formData, headers: { 'X-CSRFToken': document.querySelector('[name=csrfmiddlewaretoken]') .value, }, }) .then((response) => { console.log(response); if (response.status === 200) { // var nextUrl = new URLSearchParams(window.location.search).get('next') || '/'; document.getElementById('authError').textContent = ''; const storedUrl = localStorage.getItem('is_page'); if (storedUrl && storedUrl != 'false') { window.location.replace(storedUrl); }else if (nextUrl) { window.location.replace(nextUrl); } else { window.location.reload(); } localStorage.setItem('is_page', false); } else { document.getElementById('authError').textContent = 'Expired or invalid code.'; } }) .catch((error) => { console.error('Error:', error); }); } // Creating logic for the country codes dropdown document.addEventListener('DOMContentLoaded', function () { var allCountries = [ ['United States', 'us', '1', 0], [ 'Canada', 'ca', '1', 1, [ '204', '226', '236', '249', '250', '263', '289', '306', '343', '354', '365', '367', '368', '382', '387', '403', '416', '418', '428', '431', '437', '438', '450', '584', '468', '474', '506', '514', '519', '548', '579', '581', '584', '587', '604', '613', '639', '647', '672', '683', '705', '709', '742', '753', '778', '780', '782', '807', '819', '825', '867', '873', '902', '905', ], ], ['Afghanistan (‫افغانستان‬‎)', 'af', '93'], ['Albania (Shqipëri)', 'al', '355'], ['Algeria (‫الجزائر‬‎)', 'dz', '213'], ['American Samoa', 'as', '1', 5, ['684']], ['Andorra', 'ad', '376'], ['Angola', 'ao', '244'], ['Anguilla', 'ai', '1', 6, ['264']], ['Antigua and Barbuda', 'ag', '1', 7, ['268']], ['Argentina', 'ar', '54'], ['Armenia (Հայաստան)', 'am', '374'], ['Aruba', 'aw', '297'], ['Ascension Island', 'ac', '247'], ['Australia', 'au', '61', 0], ['Austria (Österreich)', 'at', '43'], ['Azerbaijan (Azərbaycan)', 'az', '994'], ['Bahamas', 'bs', '1', 8, ['242']], ['Bahrain (‫البحرين‬‎)', 'bh', '973'], ['Bangladesh (বাংলাদেশ)', 'bd', '880'], ['Barbados', 'bb', '1', 9, ['246']], ['Belarus (Беларусь)', 'by', '375'], ['Belgium (België)', 'be', '32'], ['Belize', 'bz', '501'], ['Benin (Bénin)', 'bj', '229'], ['Bermuda', 'bm', '1', 10, ['441']], ['Bhutan (འབྲུག)', 'bt', '975'], ['Bolivia', 'bo', '591'], ['Bosnia and Herzegovina (Босна и Херцеговина)', 'ba', '387'], ['Botswana', 'bw', '267'], ['Brazil (Brasil)', 'br', '55'], ['British Indian Ocean Territory', 'io', '246'], ['British Virgin Islands', 'vg', '1', 11, ['284']], ['Brunei', 'bn', '673'], ['Bulgaria (България)', 'bg', '359'], ['Burkina Faso', 'bf', '226'], ['Burundi (Uburundi)', 'bi', '257'], ['Cambodia (កម្ពុជា)', 'kh', '855'], ['Cameroon (Cameroun)', 'cm', '237'], ['Cape Verde (Kabu Verdi)', 'cv', '238'], ['Caribbean Netherlands', 'bq', '599', 1, ['3', '4', '7']], ['Cayman Islands', 'ky', '1', 12, ['345']], ['Central African Republic (République centrafricaine)', 'cf', '236'], ['Chad (Tchad)', 'td', '235'], ['Chile', 'cl', '56'], ['China (中国)', 'cn', '86'], ['Christmas Island', 'cx', '61', 2, ['89164']], ['Cocos (Keeling) Islands', 'cc', '61', 1, ['89162']], ['Colombia', 'co', '57'], ['Comoros (‫جزر القمر‬‎)', 'km', '269'], ['Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)', 'cd', '243'], ['Congo (Republic) (Congo-Brazzaville)', 'cg', '242'], ['Cook Islands', 'ck', '682'], ['Costa Rica', 'cr', '506'], ['Côte d’Ivoire', 'ci', '225'], ['Croatia (Hrvatska)', 'hr', '385'], ['Cuba', 'cu', '53'], ['Curaçao', 'cw', '599', 0], ['Cyprus (Κύπρος)', 'cy', '357'], ['Czech Republic (Česká republika)', 'cz', '420'], ['Denmark (Danmark)', 'dk', '45'], ['Djibouti', 'dj', '253'], ['Dominica', 'dm', '1', 13, ['767']], [ 'Dominican Republic (República Dominicana)', 'do', '1', 2, ['809', '829', '849'], ], ['Ecuador', 'ec', '593'], ['Egypt (‫مصر‬‎)', 'eg', '20'], ['El Salvador', 'sv', '503'], ['Equatorial Guinea (Guinea Ecuatorial)', 'gq', '240'], ['Eritrea', 'er', '291'], ['Estonia (Eesti)', 'ee', '372'], ['Eswatini', 'sz', '268'], ['Ethiopia', 'et', '251'], ['Falkland Islands (Islas Malvinas)', 'fk', '500'], ['Faroe Islands (Føroyar)', 'fo', '298'], ['Fiji', 'fj', '679'], ['Finland (Suomi)', 'fi', '358', 0], ['France', 'fr', '33'], ['French Guiana (Guyane française)', 'gf', '594'], ['French Polynesia (Polynésie française)', 'pf', '689'], ['Gabon', 'ga', '241'], ['Gambia', 'gm', '220'], ['Georgia (საქართველო)', 'ge', '995'], ['Germany (Deutschland)', 'de', '49'], ['Ghana (Gaana)', 'gh', '233'], ['Gibraltar', 'gi', '350'], ['Greece (Ελλάδα)', 'gr', '30'], ['Greenland (Kalaallit Nunaat)', 'gl', '299'], ['Grenada', 'gd', '1', 14, ['473']], ['Guadeloupe', 'gp', '590', 0], ['Guam', 'gu', '1', 15, ['671']], ['Guatemala', 'gt', '502'], ['Guernsey', 'gg', '44', 1, ['1481', '7781', '7839', '7911']], ['Guinea (Guinée)', 'gn', '224'], ['Guinea-Bissau (Guiné Bissau)', 'gw', '245'], ['Guyana', 'gy', '592'], ['Haiti', 'ht', '509'], ['Honduras', 'hn', '504'], ['Hong Kong (香港)', 'hk', '852'], ['Hungary (Magyarország)', 'hu', '36'], ['Iceland (Ísland)', 'is', '354'], ['India (भारत)', 'in', '91'], ['Indonesia', 'id', '62'], ['Iran (‫ایران‬‎)', 'ir', '98'], ['Iraq (‫العراق‬‎)', 'iq', '964'], ['Ireland', 'ie', '353'], [ 'Isle of Man', 'im', '44', 2, ['1624', '74576', '7524', '7924', '7624'], ], ['Israel (‫ישראל‬‎)', 'il', '972'], ['Italy (Italia)', 'it', '39', 0], ['Jamaica', 'jm', '1', 4, ['876', '658']], ['Japan (日本)', 'jp', '81'], [ 'Jersey', 'je', '44', 3, ['1534', '7509', '7700', '7797', '7829', '7937'], ], ['Jordan (‫الأردن‬‎)', 'jo', '962'], ['Kazakhstan (Казахстан)', 'kz', '7', 1, ['33', '7']], ['Kenya', 'ke', '254'], ['Kiribati', 'ki', '686'], ['Kosovo', 'xk', '383'], ['Kuwait (‫الكويت‬‎)', 'kw', '965'], ['Kyrgyzstan (Кыргызстан)', 'kg', '996'], ['Laos (ລາວ)', 'la', '856'], ['Latvia (Latvija)', 'lv', '371'], ['Lebanon (‫لبنان‬‎)', 'lb', '961'], ['Lesotho', 'ls', '266'], ['Liberia', 'lr', '231'], ['Libya (‫ليبيا‬‎)', 'ly', '218'], ['Liechtenstein', 'li', '423'], ['Lithuania (Lietuva)', 'lt', '370'], ['Luxembourg', 'lu', '352'], ['Macau (澳門)', 'mo', '853'], ['Madagascar (Madagasikara)', 'mg', '261'], ['Malawi', 'mw', '265'], ['Malaysia', 'my', '60'], ['Maldives', 'mv', '960'], ['Mali', 'ml', '223'], ['Malta', 'mt', '356'], ['Marshall Islands', 'mh', '692'], ['Martinique', 'mq', '596'], ['Mauritania (‫موريتانيا‬‎)', 'mr', '222'], ['Mauritius (Moris)', 'mu', '230'], ['Mayotte', 'yt', '262', 1, ['269', '639']], ['Mexico (México)', 'mx', '52'], ['Micronesia', 'fm', '691'], ['Moldova (Republica Moldova)', 'md', '373'], ['Monaco', 'mc', '377'], ['Mongolia (Монгол)', 'mn', '976'], ['Montenegro (Crna Gora)', 'me', '382'], ['Montserrat', 'ms', '1', 16, ['664']], ['Morocco (‫المغرب‬‎)', 'ma', '212', 0], ['Mozambique (Moçambique)', 'mz', '258'], ['Myanmar (Burma) (မြန်မာ)', 'mm', '95'], ['Namibia (Namibië)', 'na', '264'], ['Nauru', 'nr', '674'], ['Nepal (नेपाल)', 'np', '977'], ['Netherlands (Nederland)', 'nl', '31'], ['New Caledonia (Nouvelle-Calédonie)', 'nc', '687'], ['New Zealand', 'nz', '64'], ['Nicaragua', 'ni', '505'], ['Niger (Nijar)', 'ne', '227'], ['Nigeria', 'ng', '234'], ['Niue', 'nu', '683'], ['Norfolk Island', 'nf', '672'], ['North Korea (조선 민주주의 인민 공화국)', 'kp', '850'], ['North Macedonia (Северна Македонија)', 'mk', '389'], ['Northern Mariana Islands', 'mp', '1', 17, ['670']], ['Norway (Norge)', 'no', '47', 0], ['Oman (‫عُمان‬‎)', 'om', '968'], ['Pakistan (‫پاکستان‬‎)', 'pk', '92'], ['Palau', 'pw', '680'], ['Palestine (‫فلسطين‬‎)', 'ps', '970'], ['Panama (Panamá)', 'pa', '507'], ['Papua New Guinea', 'pg', '675'], ['Paraguay', 'py', '595'], ['Peru (Perú)', 'pe', '51'], ['Philippines', 'ph', '63'], ['Poland (Polska)', 'pl', '48'], ['Portugal', 'pt', '351'], ['Puerto Rico', 'pr', '1', 3, ['787', '939']], ['Qatar (‫قطر‬‎)', 'qa', '974'], ['Réunion (La Réunion)', 're', '262', 0], ['Romania (România)', 'ro', '40'], ['Russia (Россия)', 'ru', '7', 0], ['Rwanda', 'rw', '250'], ['Saint Barthélemy', 'bl', '590', 1], ['Saint Helena', 'sh', '290'], ['Saint Kitts and Nevis', 'kn', '1', 18, ['869']], ['Saint Lucia', 'lc', '1', 19, ['758']], ['Saint Martin (Saint-Martin (partie française))', 'mf', '590', 2], ['Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)', 'pm', '508'], ['Saint Vincent and the Grenadines', 'vc', '1', 20, ['784']], ['Samoa', 'ws', '685'], ['San Marino', 'sm', '378'], ['São Tomé and Príncipe (São Tomé e Príncipe)', 'st', '239'], ['Saudi Arabia (‫المملكة العربية السعودية‬‎)', 'sa', '966'], ['Senegal (Sénégal)', 'sn', '221'], ['Serbia (Србија)', 'rs', '381'], ['Seychelles', 'sc', '248'], ['Sierra Leone', 'sl', '232'], ['Singapore', 'sg', '65'], ['Sint Maarten', 'sx', '1', 21, ['721']], ['Slovakia (Slovensko)', 'sk', '421'], ['Slovenia (Slovenija)', 'si', '386'], ['Solomon Islands', 'sb', '677'], ['Somalia (Soomaaliya)', 'so', '252'], ['South Africa', 'za', '27'], ['South Korea (대한민국)', 'kr', '82'], ['South Sudan (‫جنوب السودان‬‎)', 'ss', '211'], ['Spain (España)', 'es', '34'], ['Sri Lanka (ශ්‍රී ලංකාව)', 'lk', '94'], ['Sudan (‫السودان‬‎)', 'sd', '249'], ['Suriname', 'sr', '597'], ['Svalbard and Jan Mayen', 'sj', '47', 1, ['79']], ['Sweden (Sverige)', 'se', '46'], ['Switzerland (Schweiz)', 'ch', '41'], ['Syria (‫سوريا‬‎)', 'sy', '963'], ['Taiwan (台灣)', 'tw', '886'], ['Tajikistan', 'tj', '992'], ['Tanzania', 'tz', '255'], ['Thailand (ไทย)', 'th', '66'], ['Timor-Leste', 'tl', '670'], ['Togo', 'tg', '228'], ['Tokelau', 'tk', '690'], ['Tonga', 'to', '676'], ['Trinidad and Tobago', 'tt', '1', 22, ['868']], ['Tunisia (‫تونس‬‎)', 'tn', '216'], ['Turkey (Türkiye)', 'tr', '90'], ['Turkmenistan', 'tm', '993'], ['Turks and Caicos Islands', 'tc', '1', 23, ['649']], ['Tuvalu', 'tv', '688'], ['U.S. Virgin Islands', 'vi', '1', 24, ['340']], ['Uganda', 'ug', '256'], ['Ukraine (Україна)', 'ua', '380'], ['United Arab Emirates (‫الإمارات العربية المتحدة‬‎)', 'ae', '971'], ['United Kingdom', 'gb', '44', 0], ['Uruguay', 'uy', '598'], ['Uzbekistan (Oʻzbekiston)', 'uz', '998'], ['Vanuatu', 'vu', '678'], ['Vatican City (Città del Vaticano)', 'va', '39', 1, ['06698']], ['Venezuela', 've', '58'], ['Vietnam (Việt Nam)', 'vn', '84'], ['Wallis and Futuna (Wallis-et-Futuna)', 'wf', '681'], [ 'Western Sahara (‫الصحراء الغربية‬‎)', 'eh', '212', 1, ['5288', '5289'], ], ['Yemen (‫اليمن‬‎)', 'ye', '967'], ['Zambia', 'zm', '260'], ['Zimbabwe', 'zw', '263'], ['Åland Islands', 'ax', '358', 1, ['18']], ]; for (var i = 0; i < allCountries.length; i++) { var c = allCountries[i]; allCountries[i] = { name: c[0], iso2: c[1], dialCode: c[2], priority: c[3] || 0, areaCodes: c[4] || null, }; } // add both for that ----- const countries_ul_2 = document.getElementById('input-country-code-2'); const countries_button_2 = document.getElementById('button-country-code-2'); countries_button_2.textContent = '+1'; function formatState2(country) { const li = document.createElement('li'); li.className = 'd-flex align-items-center'; const flag = "<div class='iti__flag-box'><div class='iti__flag iti__" + country.iso2 + "'></div></div>"; const spaces = '\xa0'; li.innerHTML = flag + spaces + "<p class='m-0 mr-2' style='color:dimgrey'>+" + country.dialCode + spaces + '</p>' + "<p class='m-0'>" + country.name + '</p>'; li.addEventListener('click', function () { countries_button_2.textContent = '+' + country.dialCode; }); countries_ul_2.appendChild(li); } allCountries.forEach(function (country) { formatState2(country); }); // copy paster here const countries_ul = document.getElementById('input-country-code'); const countries_button = document.getElementById('button-country-code'); countries_button.textContent = '+1'; function formatState(country) { const li = document.createElement('li'); li.className = 'd-flex align-items-center'; const flag = "<div class='iti__flag-box'><div class='iti__flag iti__" + country.iso2 + "'></div></div>"; const spaces = '\xa0'; li.innerHTML = flag + spaces + "<p class='m-0 mr-2' style='color:dimgrey'>+" + country.dialCode + spaces + '</p>' + "<p class='m-0'>" + country.name + '</p>'; li.addEventListener('click', function () { countries_button.textContent = '+' + country.dialCode; }); countries_ul.appendChild(li); } allCountries.forEach(function (country) { formatState(country); }); }); </script> <input type="hidden" name="csrfmiddlewaretoken" value="dzgQ7rIeybwmGMg8rc9WpFmiPZXbR0uX1k0fuCO2eiKpHWimVrfYzUftssrWQCSM"> <script src="https://cdn.ticketwallet.co/shared/search/js/search.js"></script> </html>