1 2$(document).ready(function () { 3 $(window).bind("scroll", function () { 4 var navHeight = $(".vanue-banner").height(); 5 if ($(window).scrollTop() > navHeight) { 6 $(".main-nav").addClass("fixed-header"); 7 } else { 8 $(".main-nav").removeClass("fixed"); 9 } 10 }); 11}); 12 13$(document).on("scroll", function () { 14 var hT = $("#theTarget").offset().top, 15 hH = $("#theTarget").outerHeight(), 16 wH = $(window).height(), 17 wS = $(this).scrollTop(); 18 if (wS > hT + hH - wH) { 19 if (scrollEvent == 1) { 20 if (moreEvent == 1) { 21 getApiData(); 22 } 23 } 24 scrollEvent = 0; 25 } 26}); 27$(function () { 28 $("#dtRangePicker1").daterangepicker({ 29 showDropdowns: true, 30 autoUpdateInput: false, 31 autoApply: true, 32 minDate: moment().format('DD/MM/YYYY'), 33 parentEl: "#datePickerContainer1", 34 locale: { 35 format: "DD/MM/YYYY", 36 cancelLabel: "Clear", 37 firstDay: 1, 38 }, 39 }); 40 41 $("#dtRangePicker1").on("cancel.daterangepicker", function (ev, picker) { 42 $("#dtRangePicker1").data("daterangepicker").show(); 43 $(this).val(""); 44 }); 45 $("#dtRangePicker1").on("apply.daterangepicker", function (ev, picker) { 46 $(this).val( 47 picker.startDate.format("DD/MM/YYYY") + 48 " - " + 49 picker.endDate.format("DD/MM/YYYY") 50 ); 51 }); 52 53 $("#dtRangePicker1").on("click", function () { 54 $("#dtRangePicker1").data("daterangepicker").show(); 55 }); 56}); 57$(function () { 58 $('input[name="daterange"]').daterangepicker({ 59 showDropdowns: true, 60 beforeShow: function (input) { 61 console.log("a"); 62 }, 63 locale: { 64 format: "DD/MM/YYYY", 65 cancelLabel: "Clear", 66 }, 67 }); 68 $('input[name="daterange"]').on( 69 "cancel.daterangepicker", 70 function (ev, picker) { 71 $(this).val("All Dates"); 72 } 73 ); 74}); 75 76setTimeout(function () { 77 $('input[name="daterange"]').val("All Dates"); 78 $('input[name="daterange"]').attr("placeholder", "All Dates"); 79}, 100); 80 81$("body").on("click", ".dropdown-menu", function (e) { 82 $(this).parent().is(".open") && e.stopPropagation(); 83}); 84 85$(".selectall").click(function () { 86 var $filter = $(this).parents(".filter-dropdown"); 87 if ($(this).is(":checked")) { 88 $filter.find(".custom-check").prop("checked", true); 89 var total = $filter.find("input.custom-check:checked").length; 90 if (total == 1) { 91 var txt = $filter 92 .find('input[type="checkbox"]:checked') 93 .parents("li") 94 .find("label.head") 95 .text(); 96 $filter.find(".dropdown-text").html(txt); 97 } else 98 $filter 99 .find(".dropdown-text") 100 .html( 101 $filter.find(".dropdown-text").attr("data-attr") + 102 " (" + 103 total + 104 ")" 105 ); 106 $filter.find(".select-text").html(" Deselect"); 107 } else { 108 $filter.find(".custom-check").prop("checked", false); 109 $filter.find(".select-text").html(" All"); 110 $filter 111 .find(".dropdown-text") 112 .html("All " + $filter.find(".dropdown-text").attr("data-attr")); 113 } 114}); 115$(".apply-btn.clear").click(function () { 116 var $filter = $(this).parents(".filter-dropdown"); 117 $filter.find(".custom-check").prop("checked", false); 118 $filter.find(".selectall").prop("checked", false); 119 $filter 120 .find(".dropdown-text") 121 .html($filter.find(".dropdown-text").attr("data-attr")); 122}); 123$("input[type='checkbox'].custom-check").change(function () { 124 var $filter = $(this).parents(".filter-dropdown"); 125 var a = $filter.find("input[type='checkbox'].custom-check"); 126 if (a.length == a.filter(":checked").length) { 127 $filter.find(".selectall").prop("checked", true); 128 $filter.find(".select-text").html(" Deselect"); 129 } else { 130 $filter.find(".selectall").prop("checked", false); 131 $filter.find(".select-text").html(" All"); 132 } 133 var total = $filter.find( 134 'input[type="checkbox"].custom-check:checked' 135 ).length; 136 if (total > 0) { 137 if (total == 1) { 138 var txt = $filter 139 .find('input[type="checkbox"].custom-check:checked') 140 .parents("li") 141 .find("label.head") 142 .text(); 143 $filter.find(".dropdown-text").html(txt); 144 } else 145 $filter 146 .find(".dropdown-text") 147 .html( 148 $filter.find(".dropdown-text").attr("data-attr") + 149 " (" + 150 total + 151 ")" 152 ); 153 } else $filter.find(".dropdown-text").html("All " + $filter.find(".dropdown-text").attr("data-attr")); 154}); 155$(".filter-dropdown .dropdown").on("click", function (e) { 156 e.stopPropagation(); 157 $(this).find("ul.dropdown-menu").show(); 158 $("#filter-search").addClass("filters-open"); 159}); 160 161$(".btn-apply").on("click", function (e) { 162 e.preventDefault(); 163 var parentId = $(this).attr("data-refer"); 164 setTimeout(function () { 165 $("#" + parentId).css({ 166 display: "none", 167 }); 168 }, 200); 169}); 170 171var promise; 172var eventCount = 0; 173var eventData = []; 174var mainLoop = 1; 175 176var seletedPageCity = ""; 177if (type == "city") { 178 seletedPageCity = queryValue; 179} 180 181var selectedPageGenre = ""; 182if (type == "genre") { 183 selectedPageGenre = queryValue; 184} 185$("#filter-form").submit(function (e) { 186 e.preventDefault(); 187 $(window).scrollTop(0); 188 if($("#ads-box").length){ 189 $('html, body').animate({ 190 scrollTop: $("#ads-box").offset().top + 100 191 }, 2000); 192 } else { 193 $('html, body').animate({ 194 scrollTop: 0 195 }, 2000); 196 } 197 $("body").addClass("loading"); 198 199 $("#show-events").html( 200 `<div class="container"> 201 <div class="` + 202 rowClass + 203 `" id="event-list"> 204 </div> 205 </div>` 206 ); 207 //$("#load-more-div").html('<div class="col-md-12 mt-4" id="theTarget1"></div>'); 208 209 var genreLoop = 0; 210 var genre = ""; 211 $("input:checkbox[name='genre']:checked").each(function () { 212 genreLoop++; 213 genre = $(this).val(); 214 }); 215 216 var extraGenreLoop = 0; 217 var extra_genre = ""; 218 var arr = new Array(); 219 $("input:checkbox[name='extra_genre']:checked").each(function () { 220 arr[extraGenreLoop] = $(this).val(); 221 extraGenreLoop++; 222 }); 223 extra_genre = arr.length ? arr.toString() : ''; 224 var timeLoop = 0; 225 var show_time = ""; 226 var arr = new Array(); 227 $("input:checkbox[name='times']:checked").each(function () { 228 arr[timeLoop] = $(this).val(); 229 timeLoop++; 230 }); 231 show_time = arr.toString(); 232 var selectedCity = {}; 233 var cityLoop = 0; 234 $("input:checkbox[name='city_id']:checked").each(function () { 235 cityLoop++; 236 selectedCity[$(this).attr("data-name")] = $(this).val(); 237 }); 238 if(type != 'calendar') 239 var dateRangeValue = $("#dtRangePicker1").val(); 240 else { 241 const queryUrl = new URL(window.location.href); 242 const searchParams = queryUrl.searchParams; 243 if(searchParams.get('from_date') && searchParams.get('to_date')){ 244 toDateSelected = searchParams.get('to_date'); 245 fromDateSelected = searchParams.get('from_date'); 246 } 247 } 248 var dateRange = {}; 249 if ( 250 dateRangeValue !== "All Dates" && 251 dateRangeValue !== "" && 252 typeof dateRangeValue != "undefined" 253 ) { 254 dateRange["type"] = "range"; 255 var dateArray = dateRangeValue.split(" - "); 256 dateRange["from_date"] = formatDate(dateArray[0]); 257 dateRange["to_date"] = formatDate(dateArray[1]); 258 } else if (typeof requestHeader1.calendar != "undefined") { 259 dateRange = JSON.parse(requestHeader1.calendar); 260 // dateRange["type"] = "range"; 261 // dateRange["to_date"] = toDateSelected; 262 // dateRange["from_date"] = fromDateSelected; 263 } 264 265 requestHeader["date_range"] = dateRange; 266 267 if (cityLoop > 0) { 268 delete requestHeader["regional_cities"]; 269 if (cityLoop > 1) { 270 requestHeader["regional_cities"] = selectedCity; 271 delete requestHeader["city"]; 272 } else { 273 $("input:checkbox[name='city_id']:checked").each(function () { 274 requestHeader["city"] = $(this).val(); 275 }); 276 } 277 } else { 278 if (seletedPageCity != "") { 279 requestHeader["city"] = seletedPageCity; 280 } else { 281 delete requestHeader["city"]; 282 } 283 } 284 285 if (genreLoop > 0) { 286 requestHeader["genre"] = genre; 287 } else { 288 if (selectedPageGenre != "") { 289 requestHeader["genre"] = selectedPageGenre; 290 } else { 291 delete requestHeader["genre"]; 292 } 293 } 294 if (extraGenreLoop > 0) { 295 requestHeader["extra_genre"] = extra_genre; 296 } 297 298 if (timeLoop > 0) { 299 requestHeader["show_time"] = show_time; 300 } else { 301 delete requestHeader["show_time"]; 302 } 303 304 if(requestHeader1.calendar){ 305 requestHeader["calendar"] = requestHeader1.calendar; 306 } 307 308 requestHeader["page"] = 1; 309 requestHeader["type"] = type; 310 311 requestHeader1 = null; 312 313 requestHeader1 = requestHeader; 314 var settings = { 315 url: "https://www.comparetheticketprice.com/api/v1/events", 316 method: "GET", 317 timeout: 0, 318 headers: { 319 "data-x-request": JSON.stringify(requestHeader), 320 Authorization: requestToken, 321 "Content-Type": "application/json", 322 }, 323 }; 324 325 promise = $.ajax(settings).done(function (response) { 326 $("#event-data").html(); 327 $("body").removeClass("loading"); 328 scrollEvent = 1; 329 var response = JSON.parse(response); 330 if (typeof response.section_banners !== "undefined") 331 bannerData = response.section_banners 332 else 333 bannerData = []; 334 if (typeof response.by_events["events"] !== "undefined") { 335 if (response.more_flag == true) { 336 moreEvent = 1; 337 } else { 338 moreEvent = 0; 339 } 340 events = response.by_events["events"]; 341 eventCount = events.length; 342 for (var i = 0; i < events.length; i++) { 343 var data = []; 344 345 //events[i].description = events[i].description.replace('"',"'"); 346 data["title"] = events[i].title; 347 data["slug"] = events[i].slug; 348 data["is_free"] = events[i].is_free; 349 data["is_comp"] = events[i].is_comp; 350 data["is_offer"] = events[i].is_offer; 351 data["event_slug"] = events[i].event_slug; 352 data["resource_id"] = events[i].resource_id; 353 data["description"] = events[i].description; 354 data["our_desc"] = events[i].our_desc; 355 data["venue"] = events[i].venue; 356 data["venue_slug"] = events[i].venue_slug; 357 data["date"] = events[i].date; 358 data["video"] = events[i].video; 359 data["media"] = events[i].media; 360 data["event"] = events[i]; 361 setDataToView(data, eventCount); 362 if (i % 15 == 0 && bannerData.length) { 363 loadBannerView(bannerData, BannerOffset); 364 } 365 } 366 } else { 367 events = response.events; 368 369 if (events.length > 0) { 370 for (var i = 0; i < events.length; i++) { 371 if (events[i].performance.length > 0) { 372 $("#event-list").append( 373 `<h2>` + formatDateNew(events[i].date) + `</h2>` 374 ); 375 $("#event-list").append( 376 `<div class="row" id="date-row` + mainLoop + `">` 377 ); 378 eventCount = events[i].performance.length; 379 var divId = "#date-row" + mainLoop; 380 for (var j = 0; j < events[i].performance.length; j++) { 381 var data = []; 382 //events[i].performance[j].description = events[i].performance[j].description.replace('"',"'"); 383 data["title"] = events[i].performance[j].title; 384 data["description"] = events[i].performance[j].our_desc + "" + 385 events[i].performance[j].description; 386 data["is_free"] = events[i].performance[j].is_free; 387 data["resource_id"] = events[i].performance[j].resource_id; 388 data["is_comp"] = events[i].performance[j].is_comp; 389 data["is_offer"] = events[i].performance[j].is_offer; 390 data["event_slug"] = events[i].performance[j].slug; 391 data["venue"] = events[i].performance[j].venue_name; 392 data["venue_slug"] = 393 events[i].performance[j].venue_slug; 394 data["date"] = formatDateNew( 395 events[i].performance[j].performance_date 396 ); 397 data["media"] = events[i].performance[j].media; 398 data["video"] = events[i].performance[j].video || ''; 399 data["event"] = events[i].performance[j]; 400 setDataToView(data, eventCount, divId); 401 } 402 mainLoop++; 403 $("#event-list").append("</div>"); 404 } 405 if (i % 3 == 0 && bannerData.length) { 406 loadBannerView(bannerData, BannerOffset); 407 } 408 } 409 } 410 } 411 }); 412}); 413 414function setDataToView(data, eventCount, divId = "#event-list") { 415 this["eventData" + eventCount] = JSON.stringify(data["event"]); 416 417 var img = 418 typeof data["media"] !== "undefined" && data["media"].length > 0 ? 419 data["media"][0]["path"] : 420 defaultImg; 421 422 var dateToDisplay = "<h6>" + data["date"] + "</h6>"; 423 var video = 424 typeof data["video"] !== "undefined" && data["video"]["image_path"] ? 425 data["video"]["image_path"] : 426 ''; 427 var stripClass = data['is_free'] ? 'free-strip' : (data['is_comp'] ? 'comp-strip' : (data['is_offer'] ? 'offer-strip' : '')); 428 var videoAnchor = ""; 429 if (video) 430 videoAnchor = `<a href="#" class="more-info" data-toggle="modal" data-json = '` + 431 JSON.stringify(data["event"]) 432 .replace(/\//g, "\\/") 433 .replace(/'/g, "'") + 434 `' data-target="#largeModal2" data-load="video"> Play Video </a>`; 435 436 437 if (divId != "#event-list") { 438 dateToDisplay = ""; 439 $(divId).append( 440 `<div class="` + 441 columns + 442 `"> <div class="show-events"> 443 <a href="/event/` + 444 data["event_slug"] + 445 `" class="show-mobile mobile-title"> 446 <h4>` + 447 data["title"] + 448 `</h4> 449 </a> 450 <a href="/event/` + 451 data["event_slug"] + 452 `" class="`+stripClass+`"><img 453 src="` + 454 img + 455 `" alt="` + 456 data["title"] + 457 `"></a> 458 <div class="show-detail"> 459 <a href="/event/` + 460 data["event_slug"] + 461 `" class="show-desktop desktop-title"> 462 <h4>` + 463 data["title"] + 464 `</h4></a> 465 <h6 class="venue"> 466 <a href="/whats-on/` + 467 data["venue_slug"] + 468 `">` + 469 data["venue"] + 470 `</a> 471 </h6> 472 ` + 473 dateToDisplay + 474 `
475 <span class="show-mobile list-description"> 476 ` + 477 htmlToPlainText( 478 data["description"] 479 ).substring(0, 240) + 480 ` 481 </span> 482 <ul class="event-btns"> 483 <li class="info"> <a href="#" class="more-info" data-toggle="modal" data-json = '` + 484 JSON.stringify(data["event"]) 485 .replace(/\//g, "\\/") 486 .replace(/'/g, "'") + 487 `' data-target="#largeModal2"> More Info </a> 488 </li> 489 <li class="buy-btn"> <a href="` + 490 data["event_link"] + 491 `" target="_blank" onClick="trackLink(`+data["resource_id"]+`,'`+data["event_link"]+`')"> ` + (data['is_free'] ? 'Book' : 'Buy') + ` 492 Tickets </a></li> 493 </ul> 494 </div> 495 </div> 496 </div>` 497 ); 498 } else { 499 $(divId).append( 500 `<div class="` + 501 columns + 502 `"> 503 <a href="/event/` + 504 data["event_slug"] + 505 `"><h4>` + 506 data["title"] + 507 `</h4></a> 508 <div class="show-events `+stripClass+`"> 509 <a href="/event/` + 510 data["event_slug"] + 511 `"><img 512 src="` + 513 img + 514 `" alt="` + 515 data["title"] + 516 `"></a> 517 <div class="show-detail"> 518 <h6 class="venue"> 519 <a href="/whats-on/` + 520 data["venue_slug"] + 521 `">` + 522 data["venue"] + 523 `</a> 524 </h6> 525 ` + 526 dateToDisplay + 527 `<span class="list-description"> 528 ` + 529 htmlToPlainText( 530 data["description"] 531 ).substring(0, 240) + 532 ` 533 </span> 534 <ul class="event-btns"> 535 <li class="info"> <a href="/event/` + 536 data["event_slug"] + 537 `" class="more-info" data-toggle="modal" data-json = '` + 538 JSON.stringify(data["event"]) 539 .replace(/\//g, "\\/") 540 .replace(/'/g, """) + 541 `' data-target="#largeModal2"> More Info </a> 542 </li> 543 <li class="video"> 544 ` + videoAnchor + ` 545 </li> 546 <li class="buy-btn"> <a href="` + 547 data["event_link"] + 548 `" target="_blank" onClick="trackLink(`+data["resource_id"]+`,'`+data["event_link"]+`')"> ` + (data['is_free'] ? 'Book' : 'Buy') + ` 549 Tickets </a></li> 550 </ul> 551 </div> 552 </div> 553 </div>` 554 ); 555 } 556 //console.log(JSON.parse(this["eventData"+eventCount])); 557 $("#show-events a.more-info").bind("click", function () { 558 popup = $("#largeModal2"); 559 var dataJson = $(this).attr("data-json"); 560 //dataJson = JSON.stringify(dataJson); 561 dataJson = JSON.parse(dataJson); 562 //var dataJson = JSON.parse(this["eventData"+eventCount]); 563 //console.log(dataJson.media); 564 565 //alert(dataJson); 566 if (typeof dataJson.media !== "undefined" && dataJson.media[0].path) 567 popup 568 .find("img.event_popup_img") 569 .attr("src", dataJson.media[0].path); 570 else popup.find("img.event_popup_img").attr("src", defaultImg); 571 if (dataJson.video && dataJson.video.image_path) { 572 popup 573 .find("iframe.inner-video") 574 .attr("src", dataJson.video.image_path); 575 popup.find(".event_popup_videolink").show(); 576 } else { 577 popup.find("img.event_popup_img").show(); 578 popup.find("iframe.inner-video").hide(); 579 popup.find(".event_popup_videolink").hide(); 580 } 581 popup.find(".event_popup_title").html(dataJson.title); 582 popup.find(".event_popup_venue").html(dataJson.venue_name); 583 popup 584 .find(".event_popup_venue") 585 .attr("href", "/whats-on/" + dataJson.venue_slug); 586 popup.find(".event_popup_date").html(dataJson.date); 587 popup.find(".event_popup_desc").html(dataJson.our_desc + " " + dataJson.description); 588 popup.find(".event_popup_link").each(function () { 589 $(this).attr("href", "/event/" + dataJson.event_slug); 590 }); 591 var buylink = dataJson.event_link ? 592 dataJson.event_link : 593 "/event/" + dataJson.event_slug; 594 var target = dataJson.event_link ? "_blank" : "_self"; 595 popup.find(".event_popup_buylink").attr("href", buylink); 596 popup.find(".event_popup_buylink").attr("target", target); 597 if(dataJson.event_link){ 598 popup 599 .find(".event_popup_buylink")[0] 600 .bind("click", trackLink(dataJson.resource_id, dataJson.event_link)); 601 } 602 popup.find("iframe.inner-video").hide(); 603 popup.find("img.event_popup_img").show(); 604 }); 605 606// $("#largeModal2 a.event_popup_videolink").bind("click", function () { 607// var $this = $(this); 608// var $item = $this.parents("#largeModal2"); 609// var $iframe = $item.find("iframe.inner-video"); 610// if ($iframe) { 611// $item.find("img.event_popup_img").toggle();
612// $iframe.toggle(); 613// $iframe[0].contentWindow.postMessage( 614// '{"event":"command","func":"' + "pauseVideo" + '","args":""}', 615// "*" 616// ); 617// } 618// }); 619} 620 621function formatDate(date) { 622 var dateArr = date.split("/"); 623 var day = dateArr[0]; 624 var month = dateArr[1]; 625 var year = dateArr[2]; 626 return day + "-" + month + "-" + year; 627} 628 629function formatDateNew(date) { 630 var dateArr = date.split("-"); 631 var day = dateArr[2]; 632 var month = dateArr[1]; 633 var year = dateArr[0]; 634 var months = [ 635 "January", 636 "February", 637 "March", 638 "April", 639 "May", 640 "June", 641 "July", 642 "August", 643 "September", 644 "October", 645 "November", 646 "December", 647 ]; 648 var days = [ 649 "Sunday", 650 "Monday", 651 "Tuesday", 652 "Wednesday", 653 "Thursday", 654 "Friday", 655 "Saturday", 656 ]; 657 var d = new Date(date); 658 var dayName = days[d.getDay()]; 659 var monthName = months[d.getMonth()]; 660 return dayName + " " + day.replace(/^0+/, '') + " " + monthName + " " + year; 661} 662 663function loadBannerView(bannerData, BannerOffset, divId = "#event-list") { 664 if (typeof BannerOffset !== "undefined") { 665 if ( 666 bannerData != null && 667 bannerData[BannerOffset] != "" && 668 bannerData[BannerOffset] != null && 669 typeof bannerData[BannerOffset] !== "undefined" 670 ) { 671 var bannerDataLoop = bannerData[BannerOffset]; 672 $(divId).append( 673 `<!--Ads sec--><section id="ads-box" class="ads-box"><div class="container-fluid"><a href="` + 674 bannerDataLoop["link"] + 675 `" target="` + 676 bannerDataLoop["target"] + 677 `"><img src="` + 678 bannerDataLoop["image"] + 679 `" alt="` + 680 bannerDataLoop["banner_name"] + 681 `" class="show-desktop"><img src="` + 682 bannerDataLoop["image_mob"] + 683 `" alt="` + 684 bannerDataLoop["banner_name"] + 685 `" class="show-mobile"></a></div></section><!--Ads sec ends-->` 686 ); 687 BannerOffset++; 688 } 689 } 690}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.