Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (2024)

  • Main Ticketing Page
  • Your Account

Browse Dates

Loading...

Su Mo Tu We Th Fr Sa
Loading...

Go to previous month

Go to next month

Categories

Browse by Venue

View Venue listing

Information

Box Office Hours:
Daily10am - 1am

Purchase your tickets via phone, please call (702) 380-7711

2000 Las Vegas Blvd South
Las Vegas, Nevada 89104

Map

Promoter Login

Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (3)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (4)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (5)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (6)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (7)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (8)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (9)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (10)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (11)Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (12)

Fetching Seatmap...

Available Seats

Please select the seats you would like to purchase in order to continue.

', '

',getPriceRange(seat.prices),'

', '', '

'].join(''); seatingDOM.push(newSeatObject); return; } function toggleSeat(seatID, seatButton){ var doRemove = $(seatButton).hasClass("added"); var seat = getSeatByID(seatID); var seatSection = getSectionByID(seat.sectionID); if(doRemove){ removeSeat(seat.seatID); $(seatButton).removeClass("added"); $(seatButton).parent().removeClass("selected"); $(seatButton).html("Add Seat"); $(seatButton).attr("aria-label", "Add Seat " + seat.row + " - " + seat.seatNo); }else{ selectSeat(seat, seatSection); seat.selected = true; $(seatButton).addClass("added"); $(seatButton).parent().addClass("selected"); $(seatButton).html("Remove Seat"); $(seatButton).attr("aria-label", "Remove Seat " + seat.row + " - " + seat.seatNo); } } function appendSectionSelectFilter(section, availableCount){ var optionString = section.name; optionString += ' (' + availableCount + ' seats available)'; optionString = '

"; $("#AccessibleSeatListSectionSelect").append(optionString); } function filterAccessibleSeatsBySelectedSection(){ var selectedSection = $("#AccessibleSeatListSectionSelect").val(); if(selectedSection == -1){ $(".seatmap-list-seat-wrap").show();//show it all $("#SeatmapMain").height($("#AccessibleSeatList").height()); return; } $(".seatmap-list-seat-wrap").hide(); $(".seatmap-list-seat-section-" + selectedSection).show(); $(".seatmap-list-seat-wrap.selected").show(); $("#SeatmapMain").height($("#AccessibleSeatList").height()); } $(function() { $(window).scroll( function() { if(window.matchMedia("only screen and (max-width: 1024px)").matches){ $('#SelectedSeats').css('top', ''); return; } if ($(window).scrollTop() > $('#SeatmapMain').offset().top) $('#SelectedSeats').css('top', $(window).scrollTop() - $('#SeatmapMain').offset().top); else $('#SelectedSeats').css('top', 0); }); $("body").on("keydown", ".seatmap-list-seat-info", function(e){ console.log(e); switch(e.which) { case 37: // left $(this).parent().prev('.seatmap-list-seat-wrap').find(".seatmap-list-seat-button").focus(); e.preventDefault(); break; case 38: // up $(this).parent().prev('.seatmap-list-seat-wrap').find(".seatmap-list-seat-info").focus(); e.preventDefault(); break; case 39: // right $(this).next(".seatmap-list-price-info").focus(); e.preventDefault(); break; case 40: // down $(this).parent().next('.seatmap-list-seat-wrap').find(".seatmap-list-seat-info").focus(); e.preventDefault(); break; default: return; // exit this handler for other keys } }) $("body").on("keydown", ".seatmap-list-price-info", function(e){ console.log(e); switch(e.which) { case 37: // left $(this).prev('.seatmap-list-seat-info').focus(); e.preventDefault(); break; case 38: // up $(this).parent().prev('.seatmap-list-seat-wrap').find(".seatmap-list-price-info").focus(); e.preventDefault(); break; case 39: // right $(this).next(".seatmap-list-seat-button").focus(); e.preventDefault(); break; case 40: // down $(this).parent().next('.seatmap-list-seat-wrap').find(".seatmap-list-price-info").focus(); e.preventDefault(); break; default: return; // exit this handler for other keys } }) $("body").on("keydown", ".seatmap-list-seat-button", function(e){ console.log(e); switch(e.which) { case 37: // left $(this).prev('.seatmap-list-price-info').focus(); e.preventDefault(); break; case 38: // up $(this).parent().prev('.seatmap-list-seat-wrap').find(".seatmap-list-seat-button").focus(); e.preventDefault(); break; case 39: // right $(this).parent().next('.seatmap-list-seat-wrap').find(".seatmap-list-seat-info").focus(); e.preventDefault(); break; case 40: // down $(this).parent().next('.seatmap-list-seat-wrap').find(".seatmap-list-seat-button").focus(); e.preventDefault(); break; default: return; // exit this handler for other keys } }) });

" } $(pricing).html(defaultPrice.priceCodeName + " " + pcIconLabelHTML + " - " + formatCurrency(defaultPrice.price)); if (pcHoverDescription !== "" && pcHoverDescription != 'undefined'){ addSeatNote(pcHoverDescription,'',''); } if(seatSection.allSeatsPurchasedTogether === 1){ addSeatNote("All seats in this section must be purchased together.", '', '') seatSection.seats.forEach(function(seat){ seat.hover = 1; }); updateSeatmap(true); } if(seat.specialSeating && seat.specialSeating.name != ''){ addSeatNote(seat.specialSeating.name, seat.specialSeating.terms, seat.specialSeating.icon); } if(seat.isAisle){ addSeatNote("This is an aisle seat", '', '') } displayHover(hover, screenLocation.x, screenLocation.y); } function displayHover(hoverOBj, hoverX, hoverY){ var hovergap = 30; var hoverPosition = {x: hoverX, y: hoverY}; //default to location above the seat targetLeft = hoverPosition.x - ($(hoverOBj).width() / 2); targetTop = hoverPosition.y - ($(hoverOBj).height() + hovergap); var hoverOrientation = "above"; if(hoverPosition.y < ($("#SeatmapWrapper").height() / 2)){ targetTop = hoverPosition.y + hovergap; hoverOrientation = "below"; } /* if(hoverPosition.x < ($("#SeatmapWrapper").width() / 2)){ targetTop = hoverPosition.y - ($(hoverOBj).height() / 2); targetLeft = hoverPosition.x + hovergap; hoverOrientation = "right"; } if(hoverPosition.x > ($("#SeatmapWrapper").width() / 2)){ targetTop = hoverPosition.y - ($(hoverOBj).height() / 2); targetLeft = hoverPosition.x -($(hoverOBj).width() + hovergap); hoverOrientation = "left"; } if((hoverOrientation == "left" || hoverOrientation == "right") && hoverPosition.y < ($(hoverOBj).height()/2)){ targetTop = hoverPosition.y + hovergap; hoverOrientation = "below-" + hoverOrientation; } if((hoverOrientation == "left" || hoverOrientation == "right") && hoverPosition.y > ($("#SeatmapWrapper").height() - ($(hoverOBj).height()))){ targetTop = hoverPosition.y - ($(hoverOBj).height() + hovergap); hoverOrientation = "above-" + hoverOrientation; } */ $(hoverOBj).attr("class", hoverOrientation); $(hoverOBj).css("top", targetTop + "px"); $(hoverOBj).css("left",targetLeft + "px"); $(hoverOBj).stop(true, true).fadeIn(200); } var hoverTimer; function resetHover(){ clearTimeout(hoverTimer); hoverTimer = setTimeout(fadeHover, 400); } function fadeHover(){ if(lastMouse){ var deviceMouse = getCanvasClick(lastMouse); var hoverObject = findSeatByCoord(deviceMouse.x, deviceMouse.y) || findSectionByCoord(deviceMouse.x, deviceMouse.y); }else{ var hoverObject = null; } if(hoverObject === null || hoverObject.type === 0 || !canSelect){ $("#SeatmapHover").stop(true, true).fadeOut(200); clearTimeout(hoverTimer); if(typeof afterHoverFade === 'function') afterHoverFade(); return; }else{ resetHover(); } } function drawCategoryLegend(){ var legendCategory = $("#LegendCategory"), maxWidth = 0; legendSeatTypes = legendSeatTypes.sort(comparePriceRange); if(oSeatmap.EnforceDistancing > 0 || oSeatmap.hasGapSeats){ var catDiv = document.createElement("div"); catDiv.setAttribute("class","seat-type legend-category-item"); catDiv.innerHTML = 'Social Distancing'; $(legendCategory).append(catDiv); if($(catDiv).width() > maxWidth){ maxWidth = $(catDiv).width(); } } var hasNonVisibleSection = false oSeatmap.sections.forEach(function(sec){ if(sec.visible == 0 && sec.showInBoxOffice == 1){ hasNonVisibleSection = true; } }); if(hasNonVisibleSection){ var catDiv = document.createElement("div"); catDiv.setAttribute("class","seat-type legend-category-item"); catDiv.innerHTML = 'Not Visible Online'; $(legendCategory).append(catDiv); if($(catDiv).width() > maxWidth){ maxWidth = $(catDiv).width(); } } legendSeatTypes.forEach(function(t){ if(t.priceRange != '$Infinity'){ var catDiv = document.createElement("div"); catDiv.setAttribute("class","seat-type legend-category-item"); catDiv.innerHTML = '' + t.name + '' if(t.priceRange != ''){ var priceText = document.createElement("span"); priceText.setAttribute("class", "legend-price-range"); priceText.innerHTML = t.priceRange; $(catDiv).append(priceText); } } $(legendCategory).append(catDiv); if($(catDiv).width() > maxWidth){ maxWidth = $(catDiv).width(); } }) if (maxWidth <= 0) { $(".legend-category-item").css("width", "auto"); } else { $(".legend-category-item").css("width", (maxWidth * 1.1) + "px"); } //legendSeatTypes - an array of seat categories and colors/prices } function keepVisible(){ var canvasHeight = $("#SeatmapCanvas").height();var canvasWidth = $("#SeatmapCanvas").width(); var visibleWidth = oSeatmap.seatmapWidth * oSeatmap.tZoom;//we use the target zoom here, to ensure that transitions are smoother since zooming should also keep the seamap visible var visibleHeight = oSeatmap.seatmapHeight * oSeatmap.tZoom;//we use the target zoom here, to ensure that transitions are smoother since zooming should also keep the seamap visible if(visibleWidth >= canvasWidth){ if(oSeatmap.tOffset.x > 50) oSeatmap.tOffset.x = 50; if(oSeatmap.tOffset.x < ((canvasWidth / oSeatmap.tZoom) - oSeatmap.seatmapWidth) - 50) oSeatmap.tOffset.x = ((canvasWidth / oSeatmap.tZoom) - oSeatmap.seatmapWidth) - 50; } if(visibleHeight >= canvasHeight){ if(oSeatmap.tOffset.y > 50) oSeatmap.tOffset.y = 50; if(oSeatmap.tOffset.y < ((canvasHeight / oSeatmap.tZoom) - oSeatmap.seatmapHeight) - 50) oSeatmap.tOffset.y = ((canvasHeight / oSeatmap.tZoom) - oSeatmap.seatmapHeight) - 50; } if(visibleWidth <= canvasWidth){ if(oSeatmap.tOffset.x < -50) oSeatmap.tOffset.x = -50; if(oSeatmap.tOffset.x > ((canvasWidth / oSeatmap.tZoom) - oSeatmap.seatmapWidth) + 50) oSeatmap.tOffset.x = ((canvasWidth / oSeatmap.tZoom) - oSeatmap.seatmapWidth) + 50; } if(visibleHeight <= canvasHeight){ if(oSeatmap.tOffset.y < -50) oSeatmap.tOffset.y = -50; if(oSeatmap.tOffset.y > ((canvasHeight / oSeatmap.tZoom) - oSeatmap.seatmapHeight) + 50) oSeatmap.tOffset.y = ((canvasHeight / oSeatmap.tZoom) - oSeatmap.seatmapHeight) + 50; } } function addSeatNote(title, noteText, icon){ var ssIcon = fetchUnicodeIcon(icon); var ssElem = document.createElement("span"); $(ssElem).addClass("fa").html(ssIcon).attr("style", "margin-right:.5em;"); var noteElem = document.createElement("div"); noteElem.setAttribute("class", "seat-note") if(title != ''){ var titleElem = document.createElement("div"); titleElem.setAttribute("class", "seat-note-title"); titleElem.innerHTML = title; if(ssIcon != ''){ titleElem.setAttribute("class", "seat-note-title ada-seat-note"); $(titleElem).prepend(ssElem); } $(noteElem).append(titleElem); } if(noteText != ''){ var textElem = document.createElement("div"); textElem.innerHTML = noteText $(noteElem).append(textElem); } $("#SeatNotesWrap").append(noteElem); } function clickZoom(positiveZoom){ var psuedoMouse = {}; if(positiveZoom){ psuedoMouse.deltaY = -1; }else{ psuedoMouse.deltaY = 1; } psuedoMouse.offsetX = $("#SeatmapCanvas").width() / 2; psuedoMouse.offsetY = $("#SeatmapCanvas").height() / 2; psuedoMouse.preventDefault = function(){return 1;} updateZoom(psuedoMouse, true); } function updateZoom(e, doubleZoom) { const originalZoom = currentZoom; var zDiff = 1; if (e.deltaY > 0) { //zoom out by 20% zDiff = .8; if(doubleZoom){ zDiff = .6; } } else { //zoom in by 20% zDiff = 1.2; if(doubleZoom){ zDiff = 1.4; } } applyZoom(e, oSeatmap.zoom * zDiff); } function zoomAt(xLocation, yLocation, targetZoom){ var seatmapWidth = $("#SeatmapCanvas").width(); var seatmapHeight = $("#SeatmapCanvas").height(); oSeatmap.tZoom = targetZoom; oSeatmap.tOffset.x = 0 - xLocation + ((seatmapWidth/2) / targetZoom); oSeatmap.tOffset.y = 0 - yLocation + ((seatmapHeight/2) / targetZoom); updateSeatmap(true); } function zoomAtSection(sec){ var seatmapWidth = $("#SeatmapCanvas").width(); var seatmapHeight = $("#SeatmapCanvas").height(); var minX = Math.min(sec.x, rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y, sec.rotation)[0], rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y + sec.height, sec.rotation)[0], rotatePoint(sec.x, sec.y, sec.x, sec.y + sec.height, sec.rotation)[0]); var maxX = Math.max(sec.x, rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y, sec.rotation)[0], rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y + sec.height, sec.rotation)[0], rotatePoint(sec.x, sec.y, sec.x, sec.y + sec.height, sec.rotation)[0]); var minY = Math.min(sec.y, rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y, sec.rotation)[1], rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y + sec.height, sec.rotation)[1], rotatePoint(sec.x, sec.y, sec.x, sec.y + sec.height, sec.rotation)[1]); var maxY = Math.max(sec.y, rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y, sec.rotation)[1], rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y + sec.height, sec.rotation)[1], rotatePoint(sec.x, sec.y, sec.x, sec.y + sec.height, sec.rotation)[1]); var secWidth = maxX - minX; var secHeight = maxY - minY; var targetZoom = Math.min(seatmapHeight / secHeight, seatmapWidth / secWidth); oSeatmap.tZoom = targetZoom * 0.95;//create's a 2.5% margin around the section if(secWidth * targetZoom < seatmapWidth){ oSeatmap.tOffset.x = 0 - minX + (((seatmapWidth - (secWidth * targetZoom)) / 2) / targetZoom); }else{ oSeatmap.tOffset.x = 0 - minX + (seatmapWidth * 0.025); } if(secHeight * targetZoom < seatmapHeight){ oSeatmap.tOffset.y = 0 - minY + (((seatmapHeight - (secHeight * targetZoom)) / 2) / targetZoom); }else{ oSeatmap.tOffset.y = 0 - minY + (seatmapHeight * 0.025); } updateSeatmap(true); } var lastZoomTime = Date.now(); function applyZoom(e, zoomVal) { if(!e || Date.now() - lastZoomTime < 20){ //prevent zoom from happening so fast it causes jumpyness return; } lastZoomTime = Date.now(); oSeatmap.tZoom = zoomVal; var currentZoom = oSeatmap.zoom; $(".seatmap-control-button").removeClass("disabled"); if (oSeatmap.tZoom > 2){ oSeatmap.tZoom = 2; //maximum zoom allowed - just to prevent it from getting silly $("#ZoomSeamtapPlus").addClass("disabled"); } if (oSeatmap.tZoom < minimumZoom){ oSeatmap.tZoom = minimumZoom; $("#ZoomSeatmapMinus").addClass("disabled"); } var zoomLocation = getCanvasClick(e); var focalPoint = getSeatmapClickCoord(zoomLocation); var focalDist = { x: ((oSeatmap.offset.x + focalPoint.x) * oSeatmap.zoom) - ((oSeatmap.offset.x + focalPoint.x) * oSeatmap.tZoom), y: ((oSeatmap.offset.y + focalPoint.y) * oSeatmap.zoom) - ((oSeatmap.offset.y + focalPoint.y) * oSeatmap.tZoom) } oSeatmap.tOffset.x = oSeatmap.tOffset.x + (focalDist.x / oSeatmap.tZoom); oSeatmap.tOffset.y = oSeatmap.tOffset.y + (focalDist.y / oSeatmap.tZoom); updateSeatmap(true); } function positionBackground() { var imageScale = (oSeatmap.backgroundImageScale * oSeatmap.zoom) + "px"; var imageOffset = (oSeatmap.backgroundImageX + oSeatmap.offset.x) * oSeatmap.zoom + "px " + (oSeatmap.backgroundImageY + oSeatmap.offset.y) * oSeatmap.zoom + "px"; $("#SeatmapCanvas").css({"background-size": imageScale, "background-position": imageOffset}); applyZoom(); } function fitMap(){ //sets the default zoom and minimum zoom based on the seatmap size relatiev to its container var xRatio = canvas.width / oSeatmap.seatmapWidth; var yRatio = (canvas.height / oSeatmap.seatmapHeight) * .95; //the effective canvas height is the space provided minus some space for the legend oSeatmap.zoom = xRatio < yRatio ? xRatio : yRatio; oSeatmap.tZoom = oSeatmap.zoom; minimumZoom = oSeatmap.zoom; $("#ZoomSeamtapPlus").removeClass("disabled"); $("#ZoomSeatmapMinus").addClass("disabled"); if(xRatio < yRatio){//align set height offset var ydiff = ((canvas.height / oSeatmap.zoom) - oSeatmap.seatmapHeight) / 2; oSeatmap.offset = {x: 0, y: ydiff}; oSeatmap.tOffset = {x: 0, y: ydiff}; }else{ var xdiff = ((canvas.width - (oSeatmap.seatmapWidth * oSeatmap.zoom)) / 2) / oSeatmap.zoom; oSeatmap.offset = {x: xdiff, y: 0}; oSeatmap.tOffset = {x: xdiff, y: 0}; } updateSeatmap(true); } function exitSeatmap() { if(hoverLocked) return; lastMouse = {}; clearAllHover(); endDrag(); } var adaAgree = false; function doCheckout(){ $(".seatTerms").hide(); var numSeats = $("#SelectedSeatsWrap .selected-item").length; if(!adaAgree && $("#SelectedSeatsWrap .selected-item.ada-seat").length){ $("#ADAModal").slideDown(300); var adaShow; $(".ada-seat").each(function(){ var mySeatID = $(this).find(".selected-seat-price").data("seat"); var mySeat = getSeatByID(mySeatID); var myID = mySeat.specialSeating.identifier; $("#seatType" + myID).show(); }) }else{ adaCancel(false); if(oSeatmap.gapCheck()){ reserveSeats();//we neeed to update the session first apparently } } } function reserveSeats(){ if(oSeatmap.selectedSeatsMinimum > 0 && oSeatmap.getSelectedCount() < oSeatmap.selectedSeatsMinimum){ displayWarningMessage("Minimum Selection Not Met", "You must select at least " + oSeatmap.selectedSeatsMinimum + " seats to continue."); return false; } $("#SeatmapWrapper").addClass("loading"); var gaSeats = [], reservedSeats = [], seat= {}, seats = [], r = {}; //build list of GA seats $(".ga-seat").each(function(){ seat.area = $(this).data("area"); seat.pricingCode = $(this).val(); seat.seatCategory = $(this).data("category"); seat.qty = 1; seats.push(seat); seat = {}; }) for(var i = 0; i < seats.length; i++){ var added = false; gaSeats.forEach(function(addedSeat){ if(addedSeat.category == seats[i].category && addedSeat.area == seats[i].area && addedSeat.pricingCode == seats[i].pricingCode){ addedSeat.qty++; added = true; } }) if(!added) gaSeats.push(seats[i]) } seats = []; //build reserved seats $(".reserved-seat").each(function(){ seat.area = $(this).data("area"); seat.pricingCode = $(this).val(); seat.seatCategory = $(this).data("category"); seat.id = $(this).data("seat"); reservedSeats.push(seat); seat = {}; }) r.p = 50793; r.gaSeats = gaSeats; r.reservedSeats = reservedSeats; r.oldBundleID = oSeatmap.oldBundleID; r.qualifierID = oSeatmap.qualifierID; $.post( '//tickets.thestrat.com/include/modules/SeatingChart/Request/reserveSeatmapSeats.asp', JSON.stringify(r) ).done(function(data){ validateReservation(data); }); } function validateReservation(data){ data = JSON.parse(data); if(data.error){ handleError(data.error); $("#SeatmapWrapper").removeClass("loading"); }else{ var forceContinueShoppingParams = ($("#forceContinueShopping").val()==1)?"&forceContinueShopping=1":""; if(oSeatmap.oldBundleID != 0){ window.location.href = data.nextBundlePerfURL; }else{ window.location.href = '//tickets.thestrat.com/basket.asp?p=50793&v=1&coupon='+oSeatmap.usedCoupon+forceContinueShoppingParams; } } } function handleError(errors){ try{ errors.forEach(function(er){ console.log(er); switch(er.code){ case 5000: var membershipErrorMsg = 'The Membership items you selected did not process, you may no longer have access to these items.'; displayError(membershipErrorMsg, er.code) break; case 99: var bundleErrorMsg = 'You have a Package purchase in progress. Please continue your purchase, or empty your basket to continue.'; displayError(bundleErrorMsg, er.code) break; case 11001: displayError('Some of the tickets selected are no longer available. Please check your basket to review any tickets which were reserved successfully, and continue with your purchase.', er.code) var seatID = er.message.split("#")[1]; markSeatError(seatID); break; case 11002: displayError('Some of the tickets selected are no longer available. Please check your basket to review any tickets which were reserved successfully, and continue with your purchase.', er.code) break; case 11011: displayError('You have exceeded the maximum number of tickets allowed in a single basket. Please reduce the number of tickets selected and try again.', er.code) break; case 11010: displayError('You have exceeded the maximum number of tickets allowed in a single basket for this performance. Please reduce the number of tickets selected and try again.', er.code) break; case 11019: displayError('You have selected more seats than the available quantity. Please reduce the number of selected tickets to proceed with your purchase.', er.code) break; case 11007: displayError('The seats you have selected produce isolated seats. Please modify your selection so that a single seat is not left empty by itself.', er.code) break; case 11005: displayError('One of the prices you have selected is no longer valid, or not available with the permissions you have. Please select different pricing for the highlighted seats. Please check your basket to review any tickets which were reserved successfully, and continue with your purchase.', er.code) var seatID = er.message.split("#")[1]; markSeatError(seatID); break; case 11021: displayError(er.message, er.code) break; default: displayError('Unknown Error - Please refresh the page and start over.', 1); break; } }); }catch(e){ console.log("Error with the Error:"); console.log(e); } } function displayError(message, errorCode){ if(errorCode && errorCode > 0){ $(".error-code-" + String(errorCode)).remove(); } var container = $("#ErrorMessages"); var newError = document.createElement("div"); var errorIcon = document.createElement("i"); $(errorIcon).addClass("fa fa-exclamation-circle").css({"margin-right": ".5em", "margin-left": "-1.5em"}); $(newError).addClass("error-message seatmap-error error-code-" + String(errorCode)).html(message).prepend(errorIcon); container.append(newError); } function adaCancel(showErrorSeats){ if(showErrorSeats) $("#SelectedSeatsWrap .ada-seat").addClass("error"); $("#ADAModal").slideUp(200); } //helper functions function parseSeat(seatData, categories, specialSeating){ /* Required to reduce server load when passing around HUGE numbers of seats seat: [seatid|x|y|areaid|category|row|seatNo|isAisle|specialseatingID] */ seatData = seatData.split('|'); var seat = {}; seat.status = 1; //loading seat data, default to available and update later seat.seatID = parseInt(seatData[0]); seat.x = parseFloat(seatData[1]); seat.y = parseFloat(seatData[2]); seat.sectionID = parseInt(seatData[3]); seat.seatCategory = parseInt(seatData[4]); var catData = getCategoryByID(categories, seatData[4]); seat.color = catData.color; seat.seatCategoryName = catData.name; seat.row = seatData[5]; seat.seatNo = seatData[6]; seat.isAisle = parseInt(seatData[7]); seat.specialSeatingID = parseInt(seatData[8]);seat.rowname =seatData[9] for (var i = 0; i < specialSeating.length; i++) { if (parseInt(specialSeating[i].id) === parseInt(seatData[8])) { seat.specialSeating = specialSeating[i]; } } return seat; } function formatCurrency(c){ var currencySymbol = "$"; try{ return currencySymbol + parseFloat(c).toFixed(2); }catch(e){ console.log("currency format error:"); console.log(e); return c; } } function markSeatError(seatID){ $(".seat-" + seatID).addClass("error"); } function getOptimalZoomForScreen(){ var winHeight = $(window).height(); var winWidth = $(window).width(); if(winWidth < 1025){ return .65; }else{ return .5; } } function getPriceRange(prices){ var min, max; prices = prices.map(function(p){return p.price}); min = Math.min.apply(Math, prices); max = Math.max.apply(Math, prices); if(min < max){ return formatCurrency(min) + " - " + formatCurrency(max); }else{ return formatCurrency(min) } } function getSectionByID(findSection) { for (var i = 0; i < oSeatmap.sections.length; i++) { if (oSeatmap.sections[i].sectionID === findSection) { return oSeatmap.sections[i]; } } return null; } function getSeatByID(findSeat) { for (var i = 0; i < oSeatmap.sections.length; i++) { var section = oSeatmap.sections[i]; for(var j = 0; j < section.seats.length; j++) { if (section.seats[j].seatID === findSeat) return section.seats[j]; } } return null; } function getSeatByXY(xCoord, yCoord, sectionID){ var sec = getSectionByID(sectionID); for(var j = 0; j < sec.seats.length; j++) { if (sec.seats[j].x === xCoord && sec.seats[j].y === yCoord) return sec.seats[j]; } return null; } function getUnavailableStatusColor(seat){ //grab the status color for the seat, return the seat color if no status colors are defined for the seatmap for some reason (qualifiers for example) // console.log(seat); // console.log(oSeatmap.statusColors); if(oSeatmap.statusColors.length == 0){ return seat.color; //no status colors present in seatmap, return the seat color } var defaultUnavailableColor; for(var i = 0; i < oSeatmap.statusColors.length;i++){ if(seat.status === oSeatmap.statusColors[i].id){ return oSeatmap.statusColors[i].color; } if(oSeatmap.statusColors[i].systemStatusType = 9){ defaultUnavailableColor = oSeatmap.statusColors[i].color; } } return defaultUnavailableColor } function getCategoryByID(categories, catID){ for (var i = 0; i < categories.length; i++) { if (parseInt(categories[i].id) === parseInt(catID)) { return categories[i]; } } } function clearAllHover(){ oSeatmap.sections.forEach(function (section) { for (var i = 0; i < section.seats.length; i++) { if (section.seats[i].hover == true) { section.seats[i].hover = false; if(section.seats[i].status === 1) drawSeat(section.seats[i], section, true); } } }); clearTimeout(hoverTimer); resetHover(); lastSeat = null; } function clearHighlights(){ var foundHighlights = false; oSeatmap.sections.forEach(function(sec){ sec.seats.forEach(function(s){ if(s.highlight || s.hasError){ foundHighlights = true; s.highlight = 0; s.hasError = 0; } }); }); if(foundHighlights) window.requestAnimationFrame(redrawAll); } function findSeatByCoord(findx, findy) { var foundSeat = null; var section = findSectionByCoord(findx, findy); currentSeatSize = seatSize * oSeatmap.zoom; if(section !== null){ //faster version for (var i = 0; i < section.seats.length; i++) { if (section.seats[i].actualX - currentSeatSize < findx && section.seats[i].actualX + currentSeatSize > findx && section.seats[i].actualY - currentSeatSize < findy && section.seats[i].actualY + currentSeatSize > findy) { foundSeat = section.seats[i]; return section.seats[i]; } } } if(foundSeat === null){ //fallback for sections that may overlap, as well as section coordinates that return false negatives for(var j = 0; j < oSeatmap.sections.length;j++){ section = oSeatmap.sections[j]; for (var i = 0; i < section.seats.length; i++) { if (section.seats[i].actualX - currentSeatSize < findx && section.seats[i].actualX + currentSeatSize > findx && section.seats[i].actualY - currentSeatSize < findy && section.seats[i].actualY + currentSeatSize > findy) { foundSeat = section.seats[i]; return section.seats[i]; } } } } return foundSeat; } function findSectionByCoord(coordX, coordY){ for (var i = 0; i < oSeatmap.sections.length; i++) { sec = oSeatmap.sections[i]; var minX = Math.min(sec.x, rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y, sec.rotation)[0], rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y + sec.height, sec.rotation)[0], rotatePoint(sec.x, sec.y, sec.x, sec.y + sec.height, sec.rotation)[0]); minX = (minX + oSeatmap.offset.x) * oSeatmap.zoom; var maxX = Math.max(sec.x, rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y, sec.rotation)[0], rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y + sec.height, sec.rotation)[0], rotatePoint(sec.x, sec.y, sec.x, sec.y + sec.height, sec.rotation)[0]); maxX = (maxX + oSeatmap.offset.x) * oSeatmap.zoom; var minY = Math.min(sec.y, rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y, sec.rotation)[1], rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y + sec.height, sec.rotation)[1], rotatePoint(sec.x, sec.y, sec.x, sec.y + sec.height, sec.rotation)[1]); minY = (minY + oSeatmap.offset.y) * oSeatmap.zoom; var maxY = Math.max(sec.y, rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y, sec.rotation)[1], rotatePoint(sec.x, sec.y, sec.x + sec.width, sec.y + sec.height, sec.rotation)[1], rotatePoint(sec.x, sec.y, sec.x, sec.y + sec.height, sec.rotation)[1]); maxY = (maxY + oSeatmap.offset.y) * oSeatmap.zoom; if (coordX > minX && coordX < maxX && coordY > minY && coordY < maxY) return sec; } return null; } function setCanvasSize(width, height) { var ratio = window.devicePixelRatio, style = canvas.style; //style.width = '' + (width / ratio) + 'px'; //style.height = '' + (height / ratio) + 'px'; canvas.width = width; canvas.height = height; } function rotatePoint(cx, cy, x, y, angle) { var rad = angle * Math.PI / 180.0; var sinRad = Math.sin(rad); var cosRad = Math.cos(rad); var nx = cosRad * (x-cx) - sinRad * (y-cy) + cx; var ny = sinRad * (x-cx) + cosRad * (y-cy) + cy; return [nx,ny]; } function getAngle(cx, cy, x, y) { return Math.atan2(y - cy, x - cx) * 180 / Math.PI; } function isSeat(obj){ try{ if(!obj.hasOwnProperty('type')){ //is a seat return true; }else{ return false; } }catch(e){ return false; } } function comparePriceRange(a,b) { priceCompareA = parseFloat(String(a.priceRange).split("-")[0].replace(/\$/g, '')); priceCompareB = parseFloat(String(b.priceRange).split("-")[0].replace(/\$/g, ''));// if it's price range, try using the max priceif (String(a.priceRange).split("-").length ==2){try{priceCompareA = parseFloat(String(a.priceRange).split("-")[1].replace(/\$/g, ''));}catch(e){}}if (String(b.priceRange).split("-").length ==2){try{priceCompareB = parseFloat(String(b.priceRange).split("-")[1].replace(/\$/g, ''));}catch(e){}} if(priceCompareA == '') return 1; if (priceCompareA < priceCompareB) return -1; if (priceCompareA > priceCompareB) return 1; return 0; } function notifyLoading(message){ $("#SeatmapLoadingStatus").html(message); } $(window).resize(function(){ // browser zoom is a problem for us since we determine the position of the mouse in the dom, and translate that to the canvas // using the functions at include/modules/DetectZoom.js, we'll try and compensate for browser zoom, or device zoom setCanvasSize(canvasWrap.width(), canvasWrap.height()); canvHeight = $(canvas).height(), canvWidth = $(canvas).width() fitMap(); }); function getBrowserZoom(){ return detectZoom.zoom(); } function fetchUnicodeIcon(charCode){ var ssIcon; switch(charCode){ case 'f193': ssIcon = '\uf193'; break; case 'f007': ssIcon = '\uf007'; break; case 'f070': ssIcon = '\uf070'; break; case 'f12a': ssIcon = '\uf12a'; break; default: ssIcon = ''; //this isn't pretty, I get it, but unicode escaping is slightly unreliable accross browsers so this is ugly but effective. } return ssIcon; } ////////////////////////////// DEBUG AND OPTIMIZATION FUNCTIONALITY/////////////////////////////////////////// ////////////////////////////// DEBUG AND OPTIMIZATION FUNCTIONALITY/////////////////////////////////////////// var drawAllCount = 0; var drawSeatCount = 0; var drawAllTime = 0; //performance testing only //we'll need to extend the redraw functionality - we don't want our optimization getting in the way of our actual code and slowing things down function setContinueShopping(pVal){ $("#forceContinueShopping").val(pVal); }

Tickets | Terry Fator at The STRAT Theater, Las Vegas, NV on 6/2/2024 5:00 pm | the STRAT Ticketing (2024)
Top Articles
Latest Posts
Article information

Author: Rev. Leonie Wyman

Last Updated:

Views: 6254

Rating: 4.9 / 5 (79 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Rev. Leonie Wyman

Birthday: 1993-07-01

Address: Suite 763 6272 Lang Bypass, New Xochitlport, VT 72704-3308

Phone: +22014484519944

Job: Banking Officer

Hobby: Sailing, Gaming, Basketball, Calligraphy, Mycology, Astronomy, Juggling

Introduction: My name is Rev. Leonie Wyman, I am a colorful, tasty, splendid, fair, witty, gorgeous, splendid person who loves writing and wants to share my knowledge and understanding with you.