128 lines
3.2 KiB
JavaScript
128 lines
3.2 KiB
JavaScript
/** ********************************************** **
|
|
@HOTEL PACK DEMO [usage example]
|
|
pack-hotel-*.html
|
|
*************************************************** **/
|
|
jQuery(document).ready(function() {
|
|
|
|
_init_();
|
|
|
|
});
|
|
|
|
|
|
|
|
/** _init_()
|
|
******************************* **/
|
|
function _init_() {
|
|
|
|
|
|
/* CALCULATE TOTAL BOOKING PRICE
|
|
pack-hotel-booking.html
|
|
*********************************** */
|
|
var _bookingData = []; // set as a default array
|
|
|
|
|
|
|
|
// Get Booking Details in array format
|
|
// Using a function is easier for multiple use
|
|
function _getBookingData() {
|
|
|
|
// room type
|
|
_bookingData[0] = jQuery("ul.booking-option-list>li>label.radio>input:checked").val() || '';
|
|
|
|
// room price
|
|
_bookingData[1] = jQuery("ul.booking-option-list>li>label.radio>input:checked").attr('data-price') || 0;
|
|
|
|
// check in date
|
|
_bookingData[2] = jQuery("input#client_checkin").val() || '';
|
|
|
|
// check out date
|
|
_bookingData[3] = jQuery("input#client_checkout").val() || '';
|
|
|
|
// Total Days [1 by default]
|
|
_bookingData[4] = 1;
|
|
|
|
|
|
|
|
// Calculate checkin-checkout in days when we have both dates (check in/out)
|
|
if(_bookingData[2] != '' && _bookingData[3] != '') {
|
|
|
|
var timeStampA = Date.parse(_bookingData[2]) / 1000, // convert checkin to timestamp
|
|
timeStampB = Date.parse(_bookingData[3]) / 1000, // convert checkout to timestamp
|
|
|
|
oneDay = 24 * 60 * 60 * 1000, // hours * minutes * seconds * milliseconds
|
|
|
|
firstDate = new Date(timeStampA * 1000),
|
|
secondDate = new Date(timeStampB * 1000),
|
|
|
|
diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
|
|
|
|
// now we know in days - minimum 1 day, no matter what!
|
|
_bookingData[4] = diffDays == 0 ? 1 : diffDays;
|
|
|
|
}
|
|
|
|
|
|
|
|
// No. of rooms
|
|
_bookingData[5] = jQuery("select#client_rooms").val() || 1;
|
|
|
|
// Children
|
|
_bookingData[6] = jQuery("select#client_adults").val() || 1;
|
|
|
|
// Children
|
|
_bookingData[7] = jQuery("select#client_children").val() || 0;
|
|
|
|
// return array
|
|
return _bookingData;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Calculate everything
|
|
function _computeBooking() {
|
|
|
|
// Call functions below to get current data
|
|
_bookingData = _getBookingData();
|
|
|
|
// set as a simple variables (easier to understand the code)
|
|
// commented - not used here (uncomment if you want to expand the code)
|
|
//_bookingDataType = _bookingData[0];
|
|
_bookingDataPrice = _bookingData[1];
|
|
|
|
//_bookingDataCheckIn = _bookingData[2];
|
|
//_bookingDataCheckOut = _bookingData[3];
|
|
_bookingDataDays = _bookingData[4];
|
|
|
|
_bookingDataRooms = _bookingData[5];
|
|
//_bookingDataAdults = _bookingData[6];
|
|
//_bookingDataChildren = _bookingData[7];
|
|
|
|
|
|
// Update total payment & nights
|
|
jQuery("#total_payment").html(_bookingDataDays * _bookingDataPrice * _bookingDataRooms);
|
|
jQuery("#total_nights").html(_bookingDataDays);
|
|
|
|
}
|
|
|
|
|
|
|
|
// On change
|
|
jQuery("form#bookingForm input, form#bookingForm select").on("change", function() {
|
|
|
|
_computeBooking();
|
|
|
|
});
|
|
|
|
|
|
|
|
// On load
|
|
_computeBooking();
|
|
|
|
}
|
|
|
|
|
|
|
|
|