LibManager.require('dom'); atComResOn = "false"; concertEventType = ""; redirecting = false; function getUrlParam(name) { name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(window.location.href); if (results == null) { return "" } else { return results[1] } } function getSiteRoot() { var url = ""; if (/\/travelagent\//.test(document.location)) { url = '/travelagent' } return url } function checkAtComResOn(eventId, eventDate) { var url = getSiteRoot() + '/admin/CanMakeAtComResBooking/' + eventDate.toString("dd-MM-yyyy") + '/true'; var isAtComResDate = $j.ajax({ url: url, async: false }).responseText.toLowerCase(); if (isAtComResDate != atComResOn) { redirecting = true; document.location.replace(getSiteRoot() + '/events/event-' + eventId.value + '.htm?calStart=' + eventDate.toString("dd-MMM-yyyy")) } } function zeroPad(num, count) { var numZeropad = num + ''; while (numZeropad.length < count) { numZeropad = "0" + numZeropad } return numZeropad } function initCalendar() { var els = document.getElementsByClassName(null, 'fullDateButton'); for (var i = 0; i < els.length; i++) { $(els[i]).hide() } var els = document.getElementsByClassName(null, 'highlight'); for (var i = 0; i < els.length; i++) { Event.observe(els[i], 'click', setCalDate) } Event.observe($('eventDetails'), 'submit', checkTheForm); initPackages(); activeEl = ''; activePackages = new Array } function initPackages() { var rows = $('packages').getElementsByTagName('tr'); for (var i = 0; i < rows.length; i++) { if (rows[i].className.match(/package/)) { $(rows[i]).hide() } } $('packageInstructions').innerHTML = 'Select your preferred event date from the calendar on the left.<br />Packages available for that event date will then be displayed here.' } function setCalDate(e) { if (activeEl != '') $(activeEl).removeClassName('selected'); if (activePackages != '') { for (var i = 0; i < activePackages.length; i++) { $(activePackages[i]).hide() } } $('packageInstructions').hide(); var targ = Event.element(e); activeEl = targ; $(targ).addClassName('selected'); children = targ.childNodes; children[0].checked = true; dates = children[0].value.split(/\-/); var selectedDate = new Date(dates[1] + "/" + parseInt(dates[0]) + "/" + dates[2]); showPackages(selectedDate) } function showPackages(selectedDate) { checkAtComResOn($('eventId'), selectedDate); if (!redirecting) { activePackages = document.getElementsByClassName($('packages'), 'package' + children[0].value); for (var i = 0; i < activePackages.length; i++) { $(activePackages[i]).show() } } } function checkTheForm(e) { var theForm = $('eventDetails'); var error = false; var errorStr = ''; var dateCheck = false; var packageMatch = false; var selectedDate = ''; var dates = $j("input[name=stayDetails.startDate]"); if (!dates.length) { if (dates.checked == true) { dateCheck = true; selectedDate = dates } } else { for (var i = 0; i < dates.length; i++) { if (dates[i].checked == true) { dateCheck = true; selectedDate = dates[i]; break } } } if (dateCheck) { var packages = document.getElementsByClassName($('packages'), 'package' + selectedDate.value); for (var i = 0; i < packages.length; i++) { var input = packages[i].getElementsByTagName('input'); if (input[0].checked == true) { packageMatch = true; break } } } if (!dateCheck) errorStr = 'Please select your preferred event date. \n Then select a package'; else if (!packageMatch) errorStr = 'Please select a package for your chosen event date'; if (errorStr != '') { alert(errorStr); Event.stop(e) } } Event.observe(window, 'load', initCalendar);