// ===============================================================================================
// class: EG_BookingEngine()
// ---------------------------
//
// Main class for the booking engine. Recommended to use strict mode on the HTML page that
// contains the calendar script
// ===============================================================================================
function EG_BookingEngine(){
// ----------------------------------------------------------------------------------------------------
// function: render()
// ----------------------------------------------------------------------------------------------------
this.render = function(){
var output = ' '
+ ''
+ '
'
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ '
'
+ ''
+ '
'
+ '
Book your low-cost place to stay in Barcelona here '
+ ''
+ ''
+ '
'
+ '
Arrival Date: '
+ '
'
+ '
'
+ '
'
+ ''
+ '
'
+ '
Departure Date: '
+ '
'
+ '
'
+ '
'
+ ''
+ '
'
+ 'Guests: '
+ ''
+ '1 '
+ '2 '
+ '3 '
+ '4 '
+ '5 '
+ '6 '
+ '7 '
+ '8 '
+ '9 '
+ '10 '
+ '11 '
+ '12 '
+ '13 '
+ '14 '
+ '15 '
+ '16 '
+ '17 '
+ '18 '
+ '19 '
+ '20 '
+ ' '
+ '
'
+ '
'
+ ''
+ '
'
+ ''
+ ''
;
document.writeln(output);
}
}
// --------------------------------------------------------------------------------------------------
// function: setFocus()
// --------------------------------------------------------------------------------------------------
function setFocus(dateField){
document.getElementById(dateField).focus();
}
function affiliateCalendar(dateField, arrivalDate, departureDate, siteRoot, dateFormat,thisField){
displayCalendarV2(document.getElementById(dateField), arrivalDate, departureDate, siteRoot, dateFormat, thisField);
}
var be = new EG_BookingEngine();
be.render();
// --------------------------------------------------------------------------------------------------
// function: validateForm()
//
// --------------------------------------------------------------------------------------------------
function validateForm(myForm)
{
var booking_err1 = '';
var booking_err2 = '';
var booking_err3 = '';
var booking_err4 = '';
var booking_err5 = '';
// PREPARE ARRIVAL
el = myForm.elements['egarrival_day'];
if( el != null ){
myForm.elements['ARRIVAL'].value = el.options[el.selectedIndex].value;
el = myForm.egarrival_yearmonth;
myForm.elements['ARRIVAL'].value += "/" + el.options[el.selectedIndex].value;
}
// PREPARE DEPARTURE
el = myForm.elements['egdeparture_day'];
if( el != null ){
myForm.elements['DEPARTURE'].value = el.options[el.selectedIndex].value;
el = myForm.egdeparture_yearmonth;
myForm.elements['DEPARTURE'].value += "/" + el.options[el.selectedIndex].value;
}
// START VALIDATION
var re = /^(\d+)\/(\d+)\/(\d+)$/;
var dt_arr, dt_dep;
var dt_today = new Date();
var dt_nextyr = new Date(dt_today - 0 + (1000*60*60*24*365));
if (!myForm.ARRIVAL.value.match(/^\d+\/\d+\/\d+$/)) {
alert(booking_err1);
return false;
}
if (!myForm.DEPARTURE.value.match(/^\d+\/\d+\/\d+$/)) {
alert(booking_err2);
return false;
}
match = re.exec(myForm.ARRIVAL.value);
dt_arr = new Date(match[3],match[2]-1,match[1]);
match = re.exec(myForm.DEPARTURE.value);
dt_dep = new Date(match[3],match[2]-1,match[1]);
num_nights = (dt_dep-dt_arr)/1000/60/60/24;
if (dt_arr <= dt_today) {
alert(booking_err3);
return false;
}
if (dt_arr > dt_nextyr) {
alert(booking_err4);
return false;
}
if (dt_dep <= dt_arr) {
alert(booking_err5);
return false;
}
return true;
}
// --------------------------------------------------------------------------------------------------
// function: submitForm()
//
// --------------------------------------------------------------------------------------------------
function submitForm() {
var ret = false;
if (validateForm(frm)) {
displayWindow = window.open('', "bookingWin", "scrollbars=1,menubar=0,toolbar=0,location=0,status=0,width=700,height=500");
if( displayWindow ){
ret = true;
}
else{
alert("WARNING! Your browser blocks popups.");
}
}
return ret;
}
function open_eg_booking(obj){
var engine_div = null;
while( obj.parentNode != null ){
if( obj.id.toLowerCase().indexOf("eap_be") > -1 ) {
engine_div = obj;
break;
};
obj = obj.parentNode;
}
if( engine_div == null ){
alert("open_eg_booking() fails");
return;
}
var qstring = "?";
var affiliate = "28";
// get input controls
var inp_list = engine_div.getElementsByTagName("input");
for( i = 0; i < inp_list.length; i++){
if( inp_list[i].type.toLowerCase() != 'button' ){
qstring += inp_list[i].name + '=' + inp_list[i].value.toLowerCase() + "&";
}
}
// get
var sel_list = engine_div.getElementsByTagName("select");
for( i = 0; i < sel_list.length; i++){
qstring += sel_list[i].name + '=' + sel_list[i].value.toLowerCase() + "&";
}
qstring = qstring.substr(0,qstring.length - 1);
window.open('http://www.barcelona30.com/affiliate/28/eap_offer_create.php' + qstring, "bookingWin", "scrollbars=1,menubar=0,toolbar=0,location=0,status=0,width=700,height=640");
}
var minDate = new Date(2008,09-1,07);
var maxDate = new Date(2009,09-1,07);
startDate = new Date(1970,0,01);
endDate = new Date(1970,0,01);
languageCode = 'EN';
var booking_err1 = 'The number of people staying must match with the number and type of rooms selected. Single room is for 1 person, Double is for 2, Triple is for 3 persons. Please choose a combination that matches the number of persons.';
var booking_err2 = 'Please select an arrival date from tomorrow onwards.';
var booking_err3 = 'Please select an arrival date from within 1 years time.';
var booking_err4 = 'Please enter the number of nights you wish to stay.';
var booking_err5 = 'Please select arrival date (dd/mm/yyyy)';
var monthArray = new Array();
var monthArrayShort = new Array();
var dayArray = new Array();
var weekString = 'Week';var todayString = '';var closeString = 'close'; monthArray[0] = "January";
monthArrayShort[0] = "Jan";
monthArray[1] = "February";
monthArrayShort[1] = "Feb";
monthArray[2] = "March";
monthArrayShort[2] = "Mar";
monthArray[3] = "April";
monthArrayShort[3] = "Apr";
monthArray[4] = "May";
monthArrayShort[4] = "May";
monthArray[5] = "June";
monthArrayShort[5] = "Jun";
monthArray[6] = "July";
monthArrayShort[6] = "Jul";
monthArray[7] = "August";
monthArrayShort[7] = "Aug";
monthArray[8] = "September";
monthArrayShort[8] = "Sep";
monthArray[9] = "October";
monthArrayShort[9] = "Oct";
monthArray[10] = "November";
monthArrayShort[10] = "Nov";
monthArray[11] = "December";
monthArrayShort[11] = "Dec";
dayArray[0] = "M";
dayArray[1] = "T";
dayArray[2] = "W";
dayArray[3] = "T";
dayArray[4] = "F";
dayArray[5] = "S";
dayArray[6] = "S";