$(function () { var pickups = null; var timeKey = null; var timeSelected = null; var calendar_rgba = Helpers.convertHex(getComputedStyle(document.documentElement).getPropertyValue('--primary-color-st'), 0.35); document.documentElement.style.setProperty('--box-shadow-color', '0 15px 20px -3px ' + calendar_rgba); $('.calendar__date--avaiable').click(function () { selectDay($(this)); }); function selectDay(element, reset = true) { if (reset) { $(".calendar__date--selected-only").removeClass("calendar__date--selected-only"); $('.ticket-container').remove(); $('.request-quote').remove(); } $(element).addClass('calendar__date--selected-only'); var dateSelected = $(element).attr('date'); timeKey = $(element).attr('timeKey') === undefined ? null : $(element).attr('timeKey'); timeSelected = $(element).attr('timeSelected') === undefined ? null : $(element).attr('timeSelected'); $('.calendar-search-result h4').html(''); $('.calendar-search-result .subtitle').html(''); $('.calendar__dates').append('
Kalender\u0020wird\u0020geladen
'); $.get('/de/calendar/day-detail', { productId: productID, date: dateSelected, timeKey: timeKey }, function (res) { $('.calendar-times-area').remove(); $('.calendar__on-loading').remove(); for (var i = 0; i < res.length; i++) { var price = ""; var explanation = ""; if (res[i].price != null) price = ''; if (res[i].explanation != null) explanation = '

' + res[i].explanation + '

'; var ticketCalendarElement = '
' + '
' + '

' + res[i].descr + '

' + explanation + '
' + '
' + price + '
' + '' + '' + '' + '
' + '
' + '
'; $('.calendar-search-result').append(ticketCalendarElement); } $(".calendar-search-result").find('h4').text('Ausgew\u00E4hltes\u0020Datum: ' + Helpers.convertDateToIta(dateSelected)); if (timeSelected != null) { $(".calendar-search-result").find('h4').append('
Ausgew\u00E4hlte\u0020Zeit: ' + timeSelected); } if (res.times !== undefined && (res.times.morning.length > 0 || res.times.afternoon.length > 0 || res.times.evening.length > 0 || res.times.night.length > 0)) { $('.calendar-search-result').append('
'); $('.calendar-search-result').find('.subtitle').text('W\u00E4hlen\u0020Sie\u0020eine\u0020Zeit\u0020aus'); for (var a = 0; a < res.times.morning.length; a++) { if (a === 0) $('.calendar-times-area').append(""); var timeCalendarElement = ''; $('.calendar-times-area').append(timeCalendarElement); } for (var b = 0; b < res.times.afternoon.length; b++) { if (b === 0) $('.calendar-times-area').append(""); var timeCalendarElement = ''; $('.calendar-times-area').append(timeCalendarElement); } for (var c = 0; c < res.times.evening.length; c++) { if (c === 0) $('.calendar-times-area').append(""); var timeCalendarElement = ''; $('.calendar-times-area').append(timeCalendarElement); } for (var d = 0; d < res.times.night.length; d++) { if (d === 0) $('.calendar-times-area').append(""); var timeCalendarElement = ''; $('.calendar-times-area').append(timeCalendarElement); } $('.calendar-times-button').click(function () { selectDay($(this), false); }); } else { if (res.length > 0) { $('.calendar-search-result').find('.subtitle').text('W\u00E4hlen\u0020Sie\u0020die\u0020Anzahl\u0020der\u0020Tickets\u0020aus\u0020und\u0020klicken\u0020Sie\u0020auf\u0020\u0022Preis\u0020berechnen\u0022,\u0020um\u0020fortzufahren'); if (typeof res[0].is_seated != 'undefined' && res[0].is_seated) { $('.calendar-search-result').find('.subtitle').append('
Indem\u0020Sie\u0020Ihre\u0020Tickets\u0020unten\u0020ausw\u00E4hlen,\u0020wird\u0020Ihnen\u0020der\u0020beste\u0020verf\u00FCgbare\u0020Sitzplatz\u0020zugewiesen'); $('.calendar-search-result').find('.subtitle').append('
Dr\u00FCcken\u0020Sie\u0020hier,\u0020wenn\u0020Sie\u0020Orte\u0020lieber\u0020auf\u0020der\u0020Karte\u0020ausw\u00E4hlen\u0020m\u00F6chten'); } $('.calendar-search-result').append(''); $('.request-quote').click(requestQuote); } else { $(".calendar-search-result").find('h4').html("

F\u00FCr\u0020das\u0020ausgew\u00E4hlte\u0020Datum\u0020sind\u0020keine\u0020Produkte\u0020vorhanden

"); } } $('html,body').animate({ scrollTop: $('.calendar-search-result').offset().top - 30 }, 'slow'); }); } var months = [ "Januar", "Februar", "Marsch", "April", "Kann", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" ]; var today = new Date(); var currentYear = today.getFullYear(); var currentMonth = today.getMonth(); $.each(months, function (i, item) { var selected = currentMonth === i ? 'selected' : ''; $('#calendar__month').append(''); }); for (var a = 0; a < 3; a++) { var selected = a == 0 ? 'selected' : ''; $('#calendar__year').append(''); currentYear++; } currentYear = today.getFullYear(); if (typeof avaiableDays != "undefined") { var firstAvaiableDay = new Date(avaiableDays[0].date); currentYear = firstAvaiableDay.getFullYear(); currentMonth = firstAvaiableDay.getMonth(); var avDayLength = avaiableDays.length; if (new Date(avaiableDays[0].date).getMonth() === new Date(avaiableDays[avDayLength - 1].date).getMonth()) $('.calendar__opts').hide(); $('#calendar__month').val(currentMonth); $('#calendar__year').val(currentYear); renderCalendar(currentMonth, currentYear); } else { renderCalendar(currentMonth, currentYear); } function daysInMonth(month, year) { month++; return new Date(year, month, 0).getDate(); } function renderCalendar(month, year) { month = parseInt(month); year = parseInt(year); $('.calendar__dates').html(''); var startWeek = dayOfWeek(1, month, year); var differece = 7 - startWeek; //Mese precedente if (startWeek != 0) { var lastMonthStartDay = daysInMonth(month - 1, year) - startWeek; for (var a = lastMonthStartDay; a < daysInMonth(month - 1, year); a++) { $('.calendar__dates').append('
' + (lastMonthStartDay + 1) + '
'); lastMonthStartDay++; } } //Mese corrente var closeOnSunday = false; var daysInCurrentMonth = daysInMonth(month, year); for (var b = 0; b < daysInCurrentMonth; b++) { $('.calendar__dates').append('
' + (b + 1) + '
'); } var closingMontDay = dayOfWeek(daysInCurrentMonth, month, year); //Mese successivo if (closingMontDay !== 6) { var succMonthStartDay = 1; for (var c = closingMontDay; c < 6; c++) { $('.calendar__dates').append('
' + succMonthStartDay + '
'); succMonthStartDay++; } } $('.calendar__dates').append('
Kalender\u0020wird\u0020geladen
'); if (typeof avaiableDays != "undefined") { for (var i = 0; i < avaiableDays.length; i++) { if (new Date(avaiableDays[i].date).getMonth() == month) { var elements = $(".calendar__date--close > span:contains(" + (new Date(avaiableDays[i].date).getDate()) + ")"); if (elements.length > 1) { for (var a = 0; a < elements.length; a++) { var text = $(elements[a]).text(); var day = new Date(avaiableDays[i].date).getDate(); if (text == day) { $(elements[a]).parent().removeClass('calendar__date--close'); $(elements[a]).parent().addClass('calendar__date--avaiable'); $(elements[a]).parent().attr('date', Helpers.formatDate(new Date(year, month, (new Date(avaiableDays[i].date).getDate())))); } } } else { $(elements).parent().removeClass('calendar__date--close'); $(elements).parent().addClass('calendar__date--avaiable'); $(elements).parent().attr('date', Helpers.formatDate(new Date(year, month, (new Date(avaiableDays[i].date).getDate())))); } } } $('.calendar__date--avaiable').click(function () { selectDay($(this)); }); $('.calendar__on-loading').remove(); } else { //Carico disponibilità $.get('/de/calendar/available-days', { productId: productID, startDate: Helpers.formatDate(new Date(year, month, 1)), endDate: Helpers.formatDate(new Date(year, month + 1, 0)) }, function (res) { $('.calendar__on-loading').remove(); for (var i = 0; i < res.length; i++) { var elements = $(".calendar__date--close > span:contains(" + (new Date(res[i].date).getDate()) + ")"); if (elements.length > 1) { for (var a = 0; a < elements.length; a++) { var text = $(elements[a]).text(); var day = new Date(res[i].date).getDate(); if (text == day) { $(elements[a]).parent().removeClass('calendar__date--close'); $(elements[a]).parent().addClass('calendar__date--avaiable'); $(elements[a]).parent().attr('date', Helpers.formatDate(new Date(year, month, (new Date(res[i].date).getDate())))); } } } else { $(elements).parent().removeClass('calendar__date--close'); $(elements).parent().addClass('calendar__date--avaiable'); $(elements).parent().attr('date', Helpers.formatDate(new Date(year, month, (new Date(res[i].date).getDate())))); } } $('.calendar__date--avaiable').click(function () { selectDay($(this)); }); }).fail(function () { $('.calendar__on-loading').remove(); $('.calendar__dates').append('
Verf\u00FCgbarkeit\u0020kann\u0020nicht\u0020gepr\u00FCft\u0020werden
'); }); } } function dayOfWeek(day, month, year) { return new Date(year, month, day).getDay() === 0 ? 6 : new Date(year, month, day).getDay() - 1; } function requestQuote() { $('.request-quote').prop('disabled', true); var products = []; $('input[name^=qty]').each( function () { if ($(this).val() > 0) { products.push({ 'id': $(this).attr('data-product-id'), 'qty': $(this).val() }) } } ); $('.calendar-quotation').empty(); $.ajax({ url: '/de/calendar/quote', contentType: "application/json; charset=utf-8", dataType: "json", method: "POST", data: JSON.stringify({ date: $('.calendar__date--selected-only').attr('date').toString(), productId: productID, products: products, lang: "it", timeKey: timeKey }) }).done(function (res) { $('.calendar-quotation').empty(); $('.calendar-quotation').append('

'); $('.calendar-quotation').append(''); var quoteElements = '
'; $(res).each( function (index) { /*var bookingCode = "";*/ var checked = ""; if (index == 0) checked = "checked"; var subDescr = ""; if (typeof this.subDescr != 'undefined' && this.subDescr != null) subDescr = "

" + this.subDescr + "

"; if (this.times.length > 0) { var that = this; $(this.times).each( function (index) { quoteElements += '
' + '' + '' + '
'; } ); } else { quoteElements += '
' + '' + '' + '
'; } } ); quoteElements += '
'; $('.calendar-quotation').find('h4').text('Eine\u0020Auswahl\u0020treffen'); $('.calendar-quotation').find('.subtitle').text('Der\u0020angezeigte\u0020Preis\u0020ist\u0020der\u0020Gesamtpreis\u0020f\u00FCr\u0020die\u0020angeforderten\u0020Tickets'); $('.calendar-quotation').append(quoteElements); $('.request-quote').text('Zitat\u0020\u00E4ndern'); if (typeof avaiableDays != "undefined") { if (pickupType == "M") $('.calendar-quotation').append(''); else if (pickupType == "O") $('.calendar-quotation').append('

- Oder -

'); else $('.calendar-quotation').append(''); } else { if (pickupType == "M") $('.calendar-quotation').append(''); else if (pickupType == "O") $('.calendar-quotation').append('

- Oder -

'); else $('.calendar-quotation').append(''); } $('.get-pickup').click(function () { requestPickups() }); $('.store-cart').click(function () { storeCart() }); $('.store-package').click(function () { storePackage() }); $('html,body').animate({ scrollTop: $('.calendar-quotation').offset().top - 30 }, 'slow'); }).fail(function (res) { nascondiLoader(); var errorMessage = "Unexpected error"; if (res.status == 400) errorMessage = res.responseJSON.error; $.notify({ message: " " + errorMessage, }, { type: 'danger', allow_dismiss: true, delay: 5000 }); }).always(function () { $('.request-quote').prop('disabled', false); }); } function requestPickups() { $('.pickup-quotation').empty(); $.ajax({ url: '/de/calendar/pickups?rateKey=' + $('input[name="quotation"]:checked').val(), contentType: "application/json; charset=utf-8", dataType: "json", method: "GET" }).done(function (res) { $('.pickup-quotation').empty(); $('.pickup-quotation').append('

'); $('.pickup-quotation').append(''); pickups = res; var pickupsElement = ''; $('.pickup-quotation').find('h4').text('W\u00E4hlen\u0020Sie\u0020eine\u0020Abholung\u0020aus'); $('.pickup-quotation').find('.subtitle').text('W\u00E4hlen\u0020Sie\u0020eine\u0020Abholung\u0020und\u0020eine\u0020Uhrzeit\u0020aus'); $('.pickup-quotation').append(pickupsElement); var pickup = res[0]; var pickupinfo = "
"; if (pickup.name != null) pickupinfo += "

Name\u0020der\u0020Abholung: " + pickup.name + ""; if (pickup.description != null) pickupinfo += "

Beschreibung: " + pickup.description + ""; if (pickup.address != null) pickupinfo += "

Adresse: " + pickup.address + ""; if (pickup.city != null) pickupinfo += "

Stadt: " + pickup.city + ""; if (pickup.postcode != null) pickupinfo += "

POSTLEITZAHL: " + pickup.postcode + ""; if (pickup.time != null) pickupinfo += "

Std: " + pickup.time + ""; if (pickup.total != null) pickupinfo += "

Gesamtabholbetrag: " + pickup.total + " €"; pickupinfo += "

"; $('.pickup-select').after(pickupinfo); if (typeof avaiableDays != "undefined") { $('.pickup-quotation').append(''); } else { $('.pickup-quotation').append(''); } $('.pickup-store-cart').click(function () { storeCart(); }); $('.pickup-select').change(function () { showPickInfo($(this).val()); }); $('.pickup-store-package').click(function () { storePackage(); }); $('html,body').animate({ scrollTop: $('.pickup-quotation').offset().top - 30 }, 'slow'); }).fail(function (res) { nascondiLoader(); var errorMessage = "Unexpected error"; if (res.status == 400) errorMessage = res.responseJSON.error; $.notify({ message: " " + errorMessage, }, { type: 'danger', allow_dismiss: true, delay: 5000 }); }).always(function () { //$('.request-quote').prop('disabled', false); }); } function showPickInfo(pickupKey) { $(".pick-up-info").remove(); var pickup = null; $(pickups).each( function (index) { if (pickups[index].pickupKey == pickupKey) pickup = pickups[index]; } ); var pickupinfo = "
"; if (pickup.name != null) pickupinfo += "

Name\u0020der\u0020Abholung: " + pickup.name + ""; if (pickup.description != null) pickupinfo += "

Beschreibung: " + pickup.description + ""; if (pickup.address != null) pickupinfo += "

Adresse: " + pickup.address + ""; if (pickup.city != null) pickupinfo += "

Stadt: " + pickup.city + ""; if (pickup.postcode != null) pickupinfo += "

POSTLEITZAHL: " + pickup.postcode + ""; if (pickup.time != null) pickupinfo += "

Std: " + pickup.time + ""; if (pickup.total != null) pickupinfo += "

Gesamtabholbetrag: " + pickup.total + " €"; pickupinfo += "

"; $('.pickup-select').after(pickupinfo); } $('#calendar__month').on('change', function () { var month = $(this).find(":selected").val(); var year = $('#calendar__year').find(":selected").val(); renderCalendar(month, year); }); $('#calendar__year').on('change', function () { var month = $('#calendar__month').find(":selected").val(); var year = $(this).find(":selected").val(); renderCalendar(month, year); }); });