Advertisement
Guest User

End Date

a guest
Aug 29th, 2019
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 4.87 KB | None | 0 0
  1. $(document).ready(() => {
  2.         $('#list').hide();
  3.         $('#btn-booknow').attr('disabled', true);
  4.         $('#end_date').attr('disabled', true);
  5.     });
  6.  
  7.     // Disabling days
  8.     var dateRange = JSON.parse(document.querySelector('.property-dates').dataset.unavailable);
  9.     var startDate = {};
  10.     var endDate = {};
  11.    
  12.     var unavailDates = function(date) {
  13.         var allDates = [];
  14.         for (let i = 0; i < dateRange.length; i++) {
  15.             for (let j = 0; j < dateRange[i].length; j++) {
  16.                 allDates.push(dateRange[i][j]);
  17.             }
  18.         }
  19.         var dateString = jQuery.datepicker.formatDate('yy-mm-dd', date);
  20.         return [allDates.indexOf(dateString) == -1];
  21.     }
  22.  
  23.     $(function() {
  24.         $("#start_date").datepicker({
  25.             minDate: 0,
  26.             monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
  27.                 "Nov", "Dec"
  28.             ],
  29.             changeMonth: true,
  30.             changeYear: true,
  31.             dateFormat: 'mm/dd/yy',
  32.             beforeShowDay: unavailDates,
  33.             onSelect: function() {
  34.                 var start_date = $('#start_date').datepicker('getDate');
  35.                 var end_date = $('#end_date').datepicker('getDate');
  36.                 var days_count = calcHolidays(start_date, end_date);
  37.                 var price = parseFloat($('#price').text());
  38.                 var total_price = parseFloat(price * days_count);
  39.  
  40.                 $.ajax({
  41.                     url: '',
  42.                     data: '',
  43.                     success: function(data) {
  44.                         if(new Date(start_date).getDay() === new Date(end_date).getDay()) {
  45.                             $('#list').hide();
  46.                             $("#btn-booknow").attr("disabled", true);
  47.                         } else {
  48.                             $("#end_date").attr("disabled", (start_date == null));
  49.  
  50.                             if (end_date == null) {
  51.                                 $('#list').hide();
  52.                                 $("#btn-booknow").attr("disabled", true);
  53.                             } else {
  54.                                 $('#list').show();
  55.                                 $('#totalDays').text(days_count);
  56.                                 $('#totalPrice').text('$ ' + total_price + '.00');
  57.                                 $("#btn-booknow").attr("disabled", false);
  58.                             }
  59.                         }
  60.                     }
  61.                 });
  62.             }
  63.         }); // start date
  64.  
  65.         $("#end_date").datepicker({
  66.             minDate: 0,
  67.             monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
  68.                 "Nov", "Dec"
  69.             ],
  70.             changeMonth: true,
  71.             changeYear: true,
  72.             dateFormat: 'mm/dd/yy',
  73.             beforeShowDay: unavailDates,    
  74.             onSelect: function() {
  75.                 var start_date = $('#start_date').datepicker('getDate');
  76.                 var end_date = $('#end_date').datepicker('getDate');
  77.                 var days_count = calcHolidays(start_date, end_date);
  78.                 var price = parseFloat($('#price').text());
  79.                 var total_price = parseFloat(price * days_count);
  80.  
  81.                 $.ajax({
  82.                     url: '',
  83.                     data: '',
  84.                     success: function(data) {
  85.                         if(new Date(start_date).getDay() === new Date(end_date).getDay()) {
  86.                             $('#list').hide();
  87.                             $("#btn-booknow").attr("disabled", true);
  88.                         } else {
  89.                             $("#end_date").attr("disabled", (start_date == null));
  90.  
  91.                             if (start_date == null) {
  92.                                 $('#list').hide();
  93.                                 $("#btn-booknow").attr("disabled", true);
  94.                             } else {
  95.                                 $('#list').show();
  96.                                 $('#totalDays').text(days_count);
  97.                                 $('#totalPrice').text('$ ' + total_price + '.00');
  98.                                 $("#btn-booknow").attr("disabled", false);
  99.                             }
  100.                         }
  101.                     }
  102.                 });
  103.             }
  104.         }); // end date
  105.     }); // function
  106.  
  107.     // Calculator
  108.     function calcHolidays(dDate1, dDate2) {
  109.         var weeks, dateDiff, weekDay1, weekDay2;
  110.         if (dDate2 < dDate1) return -1;
  111.         weekDay1 = dDate1.getDay(),
  112.             weekDay2 = dDate2.getDay();
  113.         weeks = Math.floor((dDate2.getTime() - dDate1.getTime()) / 604800000);
  114.         if (weekDay1 <= weekDay2)
  115.             dateDiff = (weeks * 7) + (weekDay2 - weekDay1);
  116.         else
  117.             dateDiff = ((weeks + 1) * 7) - (weekDay1 - weekDay2);
  118.         return (dateDiff);
  119.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement