var gmmap = new function () { var config, mapScript, src, siteID; var basicConfig = {"dataURL": "https://www.gatemastertickets.com/mapadmin/mapconfig.aspx", "css": "\r\n .gmEventMap_OuterContainer {\r\n position:relative;\r\n background-color:rgba(200,200,200,.8);\r\n border:1px solid rgba(200,200,200,.8);\r\n }\r\n .gmEventMap_OuterContainer *{\r\n box-sizing: border-box !important;\r\n }\r\n .gmEventMap_OuterContainer img.sizingMap {\r\n width:100%;\r\n height:auto;\r\n max-width:100%;\r\n opacity:0;\r\n }\r\n\r\n .gmEventMap_OuterContainer span.control {\r\n cursor:pointer;\r\n background-color:#aaa;\r\n padding:1em;\r\n margin:1em;\r\n }\r\n\r\n \r\n\r\n #gmEventMap {\r\n position:relative;\r\n overflow:hidden;\r\n }\r\n\r\n #gmEventMap .mapWrapper {\r\n position:absolute;\r\n top:0px;\r\n left:0px;\r\n min-width:100%;\r\n min-height:100%;\r\n }\r\n\r\n #gmEventMap .mapWrapper {\r\n /*overflow:hidden;*/\r\n }\r\n\r\n #gmEventMap .innerScale{\r\n overflow:visible;\r\n }\r\n\r\n #gmEventMap .mapWrapper .locations {\r\n position:absolute;\r\n top:0px;\r\n left:0px;\r\n overflow:visible;\r\n }\r\n #gmEventMap .seat {\r\n position:absolute;\r\n overflow:visible;\r\n border-radius:50%;\r\n cursor:pointer;\r\n text-align:center;\r\n }\r\n\r\n #gmEventMap .seat.selected {\r\n border:.25em solid #fff;\r\n }\r\n\r\n #gmEventMap.labelsfalse .seat .info {\r\n display:none;\r\n }\r\n\r\n\r\n #gmEventMap .seat .info {\r\n height:100%;\r\n line-height:100%;\r\n text-align:center;\r\n font-size:.7em;\r\n }\r\n #gmEventMap .seat .info span {\r\n display:none;\r\n }\r\n\r\n .gmEventMap_OuterContainer .mapKey {\r\n position:absolute;\r\n bottom:1em;\r\n right:1em;\r\n width: 30%;\r\n background-color:rgba(50,50,50,.5);\r\n text-align:center;\r\n }\r\n\r\n .gmEventMap_OuterContainer .mapKey .sectionKey{\r\n display:inline-block; margin:5px;\r\n padding:.5em 1em;\r\n }\r\n\r\n /*.mapControls {\r\n width:100%;\r\n background-color:rgba(50,50,50,.5);\r\n text-align:center;\r\n padding:.25em;\r\n }*/\r\n\r\n .mapControls {\r\n position:absolute;\r\n top:1em;\r\n right:1em;\r\n width:3em;\r\n z-index:100;\r\n }\r\n .mapControls img {\r\n width:100%;\r\n max-width:100%;\r\n height:auto;\r\n }\r\n .mapControls .range-input {\r\n width:280px;\r\n margin:0 .5em;\r\n }\r\n .mapControls #mapReset{\r\n line-height:20px;\r\n cursor:pointer;\r\n background-color:#aaa;\r\n text-align:center;\r\n display:inline-block;\r\n padding:.5em 1em;\r\n margin:0 .5em;\r\n }\r\n\r\n .selectionInfo .proceedToCheckout {\r\n float:right;\r\n background-color:#38c363;\r\n padding:.25em 1em;\r\n margin:.25em;\r\n cursor:pointer;\r\n }\r\n .selectionInfo .proceedToCheckout:only-child {\r\n display:none;\r\n }\r\n .selectionInfo {\r\n text-align:left;\r\n padding:1em .5em .5em .5em;\r\n }\r\n\r\n .selectionInfo span.x, .selectionInfo span.y, .selectionInfo .seatID {\r\n display:none;\r\n }\r\n .selectionInfo strong, .selectionInfo span {\r\n margin-right:1em;\r\n }\r\n .selectionInfo .remove {\r\n cursor:pointer;\r\n font-weight:bold;\r\n color:#c33838;\r\n }\r\n .selectionInfo strong {\r\n display:inline-block;\r\n min-width:120px;\r\n }\r\n .selectionInfo .price {\r\n display:inline-block;\r\n min-width:30px;\r\n }\r\n .selectionInfo:after {\r\n content:\u0027\u0027;\r\n height:1px;\r\n width:100%;\r\n display:block;\r\n clear:both;\r\n }\r\n .desktop { display: none;}\r\n .desktop .zoom {\r\n cursor:pointer;\r\n }\r\n\r\n .mobile { display: block;}\r\n\r\n\r\n @media (min-width: 768px) {\r\n\r\n .desktop { display: block !important; }\r\n\r\n .mobile { display: none !important; }\r\n\r\n }\r\n\r\n\r\n", "settings": {"site":"SVRA"}}; var seatData; var $container; var loadConfig = function (siteid) { alert(siteid); } var getMySrc = function () { var scripts = document.getElementsByTagName('script'); var index = scripts.length - 1; mapScript = scripts[index]; src = mapScript.src; } this.init = function () { console.log("Map init()"); getMySrc(); siteID = getParameterByName("site", src); } this.getConfiguration = function (site = siteID) { if (config == null || siteID !== site) { siteID = site; var configDataURL = basicConfig.dataURL + "?site=" + siteID + "&configonly=true"; console.log("Loading configuration for " + site); //load new config data $.ajax({ url: configDataURL, dataType: 'jsonp', success: function (data) { config = data; generateMap(); getSeatData(); } }); } else { //config data already loaded generateMap(); } } this.loadMap = function(siteID) { this.getConfiguration(siteID); } var getSeatData = function(){ console.log("Loading seat data for " + siteID); $.ajax({ url: config.ajaxURL, dataType: 'json', success: function (data) { seatData = data; loadSeatData(); }, error: function (textStatus, errorThrown) { Success = false; } }); } var loadSeatData = function() { for (var s = 0; s < seatData.Sections.length; s++) { var sec = seatData.Sections[s]; for (var r = 0; r < sec.Rows.length; r++) { var row = sec.Rows[r]; for (var se = 0; se < row.Seats.length; se++) { var seat = row.Seats[se]; var $seat = $("#seat-" + seat.lngAssignID); $seat.attr("class","seat sold-" + seat.fSold); $(".price", $seat).text(seat.curPrice); } } } $(".seat").click(function(){ var $s = $(this); if ($s.hasClass("sold-false") && $s.hasClass("selected") == false){ console.log("Add seat " + $s.attr("id")); $s.addClass("selected"); var $seatInfo = $(".info", $s).clone(true).appendTo(".selectionInfo", $s.closest(".gmEventMap_OuterContainer")); } else { console.log("Seat " + $s.attr("id") + " unavailable"); $(".info", ".selectionInfo").filter(function(){ return $(".seatID", this).text() === $s.attr("id").replace("seat-",""); }).remove(); $s.removeClass("selected"); } }); $(".remove", ".seat").click(function(){ console.log("Remove Seat"); $("#seat-" + $(".seatID", $(this).parent()).text()).removeClass("selected"); $(this).parent().remove(); }); } var generateMap = function(){ if ($container == null) { console.log("Generating map for " + siteID); $container = $('
'); $container.insertAfter(mapScript); } $container.html(""); //add style sheets to container var $mapStyles = $(''); $container.append($mapStyles); mapStyleElm = document.createElement("style"); document.head.appendChild(mapStyleElm); var mapStyles = mapStyleElm.sheet; $infoSection = $(""); //$container.append($infoSection); $mapControls = $('