Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $(document).ready(() => {
- $('#list').hide();
- $('#btn-booknow').attr('disabled', true);
- $('#end_date').attr('disabled', true);
- });
- // Disabling days
- var dateRange = JSON.parse(document.querySelector('.property-dates').dataset.unavailable);
- var startDate = {};
- var endDate = {};
- var unavailDates = function(date) {
- var allDates = [];
- for (let i = 0; i < dateRange.length; i++) {
- for (let j = 0; j < dateRange[i].length; j++) {
- allDates.push(dateRange[i][j]);
- }
- }
- var dateString = jQuery.datepicker.formatDate('yy-mm-dd', date);
- return [allDates.indexOf(dateString) == -1];
- }
- $(function() {
- $("#start_date").datepicker({
- minDate: 0,
- monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
- "Nov", "Dec"
- ],
- changeMonth: true,
- changeYear: true,
- dateFormat: 'mm/dd/yy',
- beforeShowDay: unavailDates,
- onSelect: function() {
- var start_date = $('#start_date').datepicker('getDate');
- var end_date = $('#end_date').datepicker('getDate');
- var days_count = calcHolidays(start_date, end_date);
- var price = parseFloat($('#price').text());
- var total_price = parseFloat(price * days_count);
- $.ajax({
- url: '',
- data: '',
- success: function(data) {
- if(new Date(start_date).getDay() === new Date(end_date).getDay()) {
- $('#list').hide();
- $("#btn-booknow").attr("disabled", true);
- } else {
- $("#end_date").attr("disabled", (start_date == null));
- if (end_date == null) {
- $('#list').hide();
- $("#btn-booknow").attr("disabled", true);
- } else {
- $('#list').show();
- $('#totalDays').text(days_count);
- $('#totalPrice').text('$ ' + total_price + '.00');
- $("#btn-booknow").attr("disabled", false);
- }
- }
- }
- });
- }
- }); // start date
- $("#end_date").datepicker({
- minDate: 0,
- monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
- "Nov", "Dec"
- ],
- changeMonth: true,
- changeYear: true,
- dateFormat: 'mm/dd/yy',
- beforeShowDay: unavailDates,
- onSelect: function() {
- var start_date = $('#start_date').datepicker('getDate');
- var end_date = $('#end_date').datepicker('getDate');
- var days_count = calcHolidays(start_date, end_date);
- var price = parseFloat($('#price').text());
- var total_price = parseFloat(price * days_count);
- $.ajax({
- url: '',
- data: '',
- success: function(data) {
- if(new Date(start_date).getDay() === new Date(end_date).getDay()) {
- $('#list').hide();
- $("#btn-booknow").attr("disabled", true);
- } else {
- $("#end_date").attr("disabled", (start_date == null));
- if (start_date == null) {
- $('#list').hide();
- $("#btn-booknow").attr("disabled", true);
- } else {
- $('#list').show();
- $('#totalDays').text(days_count);
- $('#totalPrice').text('$ ' + total_price + '.00');
- $("#btn-booknow").attr("disabled", false);
- }
- }
- }
- });
- }
- }); // end date
- }); // function
- // Calculator
- function calcHolidays(dDate1, dDate2) {
- var weeks, dateDiff, weekDay1, weekDay2;
- if (dDate2 < dDate1) return -1;
- weekDay1 = dDate1.getDay(),
- weekDay2 = dDate2.getDay();
- weeks = Math.floor((dDate2.getTime() - dDate1.getTime()) / 604800000);
- if (weekDay1 <= weekDay2)
- dateDiff = (weeks * 7) + (weekDay2 - weekDay1);
- else
- dateDiff = ((weeks + 1) * 7) - (weekDay1 - weekDay2);
- return (dateDiff);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement