<!-- <input type="hidden" name="SectionID" value="{sectionDetail.id}"> -->
{end:}
<!-- List of Locations -->
- {foreach:membersList,m}
+ {foreach:membersList,m}
<div class="glmSection startSection">
<div class="glmBlock startBlock">
<div class="glmBlockContentLeft memberDescription">
<!-- <div class="glmBlockHeader">
- <div class="glmBlockName">{*m.name:h*}</div>
+ <div class="glmBlockName">{*m.name:h*}</div>
</div>-->
<div style="clear: both;">
<!--<div class="glmDescr"><span class="glmBold">Address</span>: {m.addr1}{if:m.addr2}, {m.addr2}{end:}, {m.city}</div>
{if:!showTickets}
<!-- <a href="{baseSCRIPT}&Action=Shop_sectionSelect&PerformanceID={p.id}" class="glmNavItem chooser">{term.nav.select}</a> -->
{end:}
-
-
+
+
<!-- For each section for this performance -->
{foreach:p.sections,s}
<p style="clear: both;"> </p> <!-- Please look at spacing here -->
<div class="glmBlock sectionDetail">
- <div class="glmBlockContent">
+ <div class="glmBlockContent">
<div class="glmDescr">
{if:!p.oneSectionOnly}
{s.sectionDetail.name}<br>
<!--<p>{p.descr:h}</p>-->
</div>
</div>
-
+
<!-- For each ticket in this section -->
{foreach:s.ticketsData,x}
- {if:!x.tooLateToBuy}
+ {if:!x.tooLateToBuy}
<div class="glmBlock">
{if:option.ticket_selection.include_options_in_ticket_list}
<div class="glmBlockContentRight">
<div class="glmBlockContent">
<div class="glmTicketsSelectPrompt">Price: </div>
- <div class="glmTicketsSelectValue">
+ <div class="glmTicketsSelectValue">
<div class="glmInput">{x.price}</div>
</div>
</div>
<div id="GLMeventDateSelect_{x.id}" class="glmBlockContent">
<div class="glmTicketsSelectPrompt">Select date: </div>
- <div class="glmTicketsSelectValue">
+ <div class="glmTicketsSelectValue">
<div id="GLMeventDate_{x.id}" class="glmInput">
<input type="hidden" id="GLMeventInvID_{x.id}" name="ticket_inv_array[{x.id}]" value="">
<input type="text" id="GLMeventDateInput_{x.id}" class="glmEventDateInput" name="ticket_date[{x.id}]" value="">
</div>
</div>
<div class="glmBlockContent">
- <div class="glmTicketsSelectPrompt">Quant: </div>
- <div class="glmTicketsSelectValue">
+ <div class="glmTicketsSelectPrompt">Select from available tickets: </div>
+ <div class="glmTicketsSelectValue">
<div id="GLMticketQuantContainer_{x.id}" class="glmInput">(select date)</div>
</div>
</div>
</div> <!-- glmBLockContentRight -->
{end:}
- <div class="glmBlockContentLeft">
+ <div class="glmBlockContentLeft">
{if:option.ticket_selection.include_options_in_ticket_list}
<div class="glmBlockName">{x.title}</div>
{else:}
</div>
</div>
-</div>
+</div>
{end:}
</div><!--/.glmBlock-->
{end:}
{end:}
</div>
-
+
{end:} <!--/performances-->
-
-
-
- </div>
+
+
+
+ </div>
{end:}
</div>
</div>
{startScript:h}
var addButtonPushed = false;
-
+
// Dates for inventory data
var tickets = {ticketsJSON:h};
-
+
var ticketQuantSelection = '\
<select id="glmQuantSelector_[id]" name="quant[[id]]" class="glmTicketQuant">[ticket-quants]</select>\
';
-
+
var ticketTooLate = '\
<p>\
Sorry, too late to select these {term.ticket.plur} on-line.\
</p>\
- ';
-
+ ';
+
+
-
$(document).ready(function(){
-
- // Code to kick off the geolocation-display feature
+
+ // Code to kick off the geolocation-display feature
function doLocationMap(id) {
$("#locationMap_" + id).geolocate({
lat: "#lat_" + id,
{foreach:membersList,m}
doLocationMap({m.id});
{end:}
-
- // DatePicker action
- function avail(date) {
- m = (date.getMonth()+1);
- if (m < 10) {
- m = '0' + m;
- }
- d = date.getDate();
- if (d < 10) {
- d = '0' + d;
- }
- y = date.getFullYear();
- mdy = m + '/' + d + '/' + y;
- if (dates[mdy]) {
- return [true,"","Available"];
- } else {
- return [false,"","Not Available"];
- }
- }
-
+
// for each ticket
$.each(tickets, function(index, ticket) {
// Count the number of dates
dateCount++;
-
+
// If this is the first one, store it in case it's the only one
dateData = date;
-
+
}); // each date
// if there's no date specific tickets
if (!ticket.dateSpecific) {
- // Populate date input field
+ // Populate date input field
$('#GLMeventDateSelect_' + ticket.id).html('<input type="hidden" name="ticket_inv_array[' + ticket.id + ']" value="' + dateData.id + '">');
doQuantSelection(ticket.id, dateData.id, dateData.available, dateData.tooLate);
// if there's only one date, then display that and move on.
} else if (!ticket.dateSpecific || dateCount == 1) {
-
+
// populate date input field
$('#GLMeventDate_' + ticket.id).html('<div class="glmTicketsSelect"><div class="glmTicketsSelectPrompt">Date: </div><div class="glmTicketsSelectValue">' + dateData['date'] + '<input type="hidden" name="ticket_inv_array[' + dateData['date'] + ']" value="' + dateData.id + '"></div></div><div id="GLMticketsSelectionContainer"></div>');
doQuantSelection(ticket.id, dateData.id, dateData.available, dateData.tooLate);
-
+
} else {
-
+
+ function appendToMonth() {
+ if($('#mouseOverMsg').length == 0) {
+ $('.ui-datepicker-header').append('<div id="mouseOverMsg" style="font-size: .6em; text-align: center; padding: 0; margin: 0;">Hover mouse over date to see availability.</div>');
+ }
+ $('#mouseOverMsg').fadeOut('slow').fadeIn('slow').fadeOut('slow').fadeIn('slow').fadeOut('slow').fadeIn('slow');
+ }
+
+ $('#GLMeventDateInput_' + ticket.id).on('click', function(){
+ setTimeout(appendToMonth, 100);
+ })
+
// DatePicker action
function avail(date) {
m = (date.getMonth()+1);
y = date.getFullYear();
mdy = m + '/' + d + '/' + y;
if (inventory[mdy]) {
- return [true,"","Available"];
+ if (inventory[mdy]["available"] != "0") {
+ return [true,"",inventory[mdy]["available"] + " Available"];
+ } else {
+ return [false,"","Not Available"];
+ }
} else {
return [false,"","Not Available"];
}
+ setTimeout(sayit(), 2000);
}
-
+
// Use the date picker to select a date
$('#GLMeventDateInput_' + ticket.id).datepicker({
beforeShowDay: avail,
dateFormat: "mm/dd/yy",
-// *** NEED TO FIX REFERENCE TO "performanceDetail" since that's not available on this page
minDate: "{performanceDetail.start_date.date}",
maxDate: "{performanceDetail.end_date.date}",
onSelect: function(selectedDate, inst) {
$('#GLMeventInvID_' + ticket.id).val(dateData.id);
doQuantSelection(ticket.id, dateData.id, dateData.available, dateData.tooLate);
} // Date Selection
-
}); // Date Picker
-
-
+
}
-
+
}); // each ticket
-
+
function doQuantSelection(id, invId, available, tooLate) {
// Build the ticket quant options
if (tooLate) {
$('#GLMticketQuantContainer_' + id).html(ticketTooLate);
} else {
-
+
// note that the braced lte below is needed to inject a less-than-or-equal-to operator without having flexy chew on it.
for (var i = 1; i {lte:h} (selectMax*1); i++) {
- ticketQuants = ticketQuants.concat('<option value="' + i + '">' + i + '</option>');
+ ticketQuants = ticketQuants.concat('<option value="' + i + '">' + i + '</option>');
}
// Populate the ticket quantity container
setBlocker();
$('#GLMselectForm').submit();
} else {
- alert('Please select a {term.ticket.norm} quantity.')
+ alert('Please select a {term.ticket.norm} quantity.')
return false;
}
-
+
});
-
+
function setBlocker() {
$('#glmReloadBlocker').show();
}
-
+
});
</script>