﻿//////////////////////////////////////////////////////////
// 		DATE PICKER FOR RHS WEB ROOMS SITE INTEGRATION  	//
// 							Welman Technologies Ltd							  	//
// 							http://www.welman.co.nz							  	//
//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////
// NOTE: 		This script has been dynamically generated,	//
// using settings for the specific customer property.		//
//																											//
// Do not store this script on your own web server.			//
//																											//
// If you have specific requirements for your date 			//
// picker, please contact Welman Technologies for 			//
// assistance. http://www.welman.co.nz									//
//////////////////////////////////////////////////////////



var siteID 											= 'qualityandcomforthotelswellington.web-rooms.co.nz';
var onlineBookingsURL 					= 'http://www.hotelwellington.co.nz/Reservations.html';
var targetWindow 								= '_self';
var defaultDaysInAdvanceCheckIn = 0;
var defaultDaysUntilCheckOut 		= 1;
var maxDaysInAdvance 						= 365;
var maxDaysStayLength						= 14
var displayType									= 1
var goButtonLabel								= '';
var showTab											= '';

var hotelId_abelTasman					= 72254
var hotelId_centralCity					= 11014


function webRoomsDatePicker(propertyId)
{

	createDatePickers(propertyId);
	
	var myCheckInDate = new Date()
	var myCheckOutDate = new Date()
	
	var myForm = eval('document.forms.datePickNavForm_'+propertyId)
			
	myCheckInDate.setDate(myCheckInDate.getDate()+defaultDaysInAdvanceCheckIn)
	myCheckOutDate.setDate(myCheckInDate.getDate()+defaultDaysUntilCheckOut)
	
	setCheckDate(myForm.cid,myForm.cimy,myCheckInDate)
	setCheckDate(myForm.cod,myForm.comy,myCheckOutDate)
		
	changedayName(document.getElementById('checkInDayLabel_'+propertyId),myForm.cid[myForm.cid.selectedIndex].value,myForm.cimy[myForm.cimy.selectedIndex].value,propertyId)
	changedayName(document.getElementById('checkOutDayLabel_'+propertyId),myForm.cod[myForm.cod.selectedIndex].value,myForm.comy[myForm.comy.selectedIndex].value,propertyId)

}


function validatePickers(propertyId)
{
	
	var myForm = eval('document.forms.datePickNavForm_'+propertyId)
	
	var success = true;
	var errMsg = 'Please check the following and try again:\n\n'
	
	var myCheckInDate = getCheckDate(myForm.cid,myForm.cimy)
	var myCheckOutDate = getCheckDate(myForm.cod,myForm.comy)
	
	if(showTab != '')
	{
		myForm.cat.value = showTab;
	}
	
	if(!myCheckInDate)
	{
		errMsg += '- Invalid Check In Date\n'
		success = false;
	}
	
	if(!myCheckOutDate)
	{
		errMsg += '- Invalid Check Out Date\n'
		success = false;
	}
	
	if(success)
	{
		if(myCheckInDate.getTime() > myCheckOutDate.getTime())
		{
			errMsg += '- Check In date must be before Check Out date\n'
			success = false;
		}
		
		if(myCheckInDate.getTime() == myCheckOutDate.getTime())
		{
			errMsg += '- Please choose at least one night\n'
			success = false;
		}
		
		if((myCheckOutDate.getTime() - myCheckInDate.getTime()) > (maxDaysStayLength*86400000))
		{
			errMsg += '- The maximum stay is '+maxDaysStayLength+' day'
			if(maxDaysStayLength!=1)
			{
				errMsg += 's'
			}
			errMsg += '\n'
			success = false;
		}
		
		maxDaysStayLength
				
	}
	
	if(!success)
	{
		alert(errMsg)	
	}else{
		
		// set the dates for the URL
		myForm.datein.value = (myCheckInDate.getMonth()+1)
		myForm.datein.value += '/'+myCheckInDate.getDate()
		myForm.datein.value += '/'+myCheckInDate.getFullYear()
		
		myForm.dateout.value = (myCheckOutDate.getMonth()+1)
		myForm.dateout.value += '/'+myCheckOutDate.getDate()
		myForm.dateout.value += '/'+myCheckOutDate.getFullYear()
				
	}
	
	return success
	
}

function createDatePickers(myHotelId)
{
	var dateToday = new Date()
		
	var workingDate
	var maxDate = new Date()
	var monthName = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')
	
	maxDate.setDate(dateToday.getDate()+maxDaysInAdvance)
	maxDate.setDate(15)
	var dateDiv = document.getElementById('datePicker');
	var pickerHTML = ''
	
	var sBookingUrl = 'http://abeltasmanhotelwellington.web-rooms.co.nz/Home.html';
	sBookingUrl = 'http://www.primehotels.co.nz/abel_booking.html'
	if (myHotelId != 72254)
	{
		sBookingUrl = 'http://centralcityhotelwellington.web-rooms.co.nz/Home.html';
		sBookingUrl = 'http://www.primehotels.co.nz/central_booking.html'
	}
	
	// sBookingUrl = 'https://booking.ihotelier.com/istay/istay.jsp'
	// ?hotelid=72254&languageid=11&datein=09/11/2009&dateout=09/12/2009
	
	pickerHTML += '<div class="rwr_block">'
	
		pickerHTML += '<form name="datePickNavForm_'+myHotelId+'" target="'+targetWindow+'" action="'+sBookingUrl+'" onsubmit="return validatePickers('+myHotelId+');">'
			
			pickerHTML += '<input type="hidden" name="hotelid" value="'+myHotelId+'">';
			pickerHTML += '<input type="hidden" name="languageid" value="11">';
			pickerHTML += '<input type="hidden" name="datein" value="">';
			pickerHTML += '<input type="hidden" name="dateout" value="">';
			
			pickerHTML += '<table border="0" cellspacing="0" cellpadding="1">'
				pickerHTML += '<tr>'
					pickerHTML += '<td colspan="2">'
						pickerHTML += '<div class="rwr_label">Check In:</div>'
					pickerHTML += '</td>'
					if(displayType == 1)
					{
						pickerHTML += '</tr>'
						pickerHTML += '<tr>'
					}
					pickerHTML += '<td>'
						pickerHTML += '<div class="rwr_dayLabel" style="text-align:right;width:35px;" id="checkInDayLabel_'+myHotelId+'"></div>'
					pickerHTML += '</td>'
					pickerHTML += '<td nowrap>'
						pickerHTML += '<select class="rwr_picker" name="cid" onchange="return changedayName(document.getElementById(\'checkInDayLabel_'+myHotelId+'\'),document.datePickNavForm_'+myHotelId+'.cid[document.datePickNavForm_'+myHotelId+'.cid.selectedIndex].value,document.datePickNavForm_'+myHotelId+'.cimy[document.datePickNavForm_'+myHotelId+'.cimy.selectedIndex].value,'+myHotelId+');">'
							for(var i=1;i<=31;i++)
							{
								pickerHTML += '<option value="'+i+'">'+i+'</option>'
							}
						pickerHTML += '</select>'
						pickerHTML += '<select class="rwr_picker" name="cimy" onchange="return changedayName(document.getElementById(\'checkInDayLabel_'+myHotelId+'\'),document.datePickNavForm_'+myHotelId+'.cid[document.datePickNavForm_'+myHotelId+'.cid.selectedIndex].value,document.datePickNavForm_'+myHotelId+'.cimy[document.datePickNavForm_'+myHotelId+'.cimy.selectedIndex].value,'+myHotelId+');">'
							
							workingDate = new Date()
							workingDate.setDate(15)
							while(workingDate.getTime() < maxDate.getTime())
							{
								workingDate.setDate(15)
								pickerHTML += '<option value="'+(workingDate.getMonth()+1)+'-'+workingDate.getFullYear()+'">'
									pickerHTML += monthName[workingDate.getMonth()]
									pickerHTML += ' '
									pickerHTML += workingDate.getFullYear()
								pickerHTML += '</option>'
								workingDate.setDate(workingDate.getDate()+30)
							}
							
						pickerHTML += '</select>'
					pickerHTML += '</td>'
					if(displayType == 1 || displayType == 2)
					{
						pickerHTML += '</tr>'			
						pickerHTML += '<tr>'
					}
					pickerHTML += '<td colspan="2">'
						pickerHTML += '<div class="rwr_label">'
						if(displayType == 3)
						{
							pickerHTML += '&nbsp;&nbsp;&nbsp;';
						}					
						pickerHTML += 'Check Out:</div>'
					pickerHTML += '</td>'
					if(displayType == 1)
					{
						pickerHTML += '</tr>'
						pickerHTML += '<tr>'
					}
					pickerHTML += '<td>'
						pickerHTML += '<div class="rwr_dayLabel" style="text-align:right;width:35px;" id="checkOutDayLabel_'+myHotelId+'"></div>'
					pickerHTML += '</td>'
					pickerHTML += '<td nowrap>'
						pickerHTML += '<select class="rwr_picker" name="cod" onchange="return changedayName(document.getElementById(\'checkOutDayLabel_'+myHotelId+'\'),document.datePickNavForm_'+myHotelId+'.cod[document.datePickNavForm_'+myHotelId+'.cod.selectedIndex].value,document.datePickNavForm_'+myHotelId+'.comy[document.datePickNavForm_'+myHotelId+'.comy.selectedIndex].value,'+myHotelId+');">'
							for(var i=1;i<=31;i++)
							{
								pickerHTML += '<option value="'+i+'">'+i+'</option>'
							}
						pickerHTML += '</select>'
						pickerHTML += '<select class="rwr_picker" name="comy"  onchange="return changedayName(document.getElementById(\'checkOutDayLabel_'+myHotelId+'\'),document.datePickNavForm_'+myHotelId+'.cod[document.datePickNavForm_'+myHotelId+'.cod.selectedIndex].value,document.datePickNavForm_'+myHotelId+'.comy[document.datePickNavForm_'+myHotelId+'.comy.selectedIndex].value,'+myHotelId+');">'
							workingDate = new Date()
							if(workingDate.getDate() == 31)
							{
								workingDate.setDate(workingDate.getDate()-1)
							}
							workingDate.setDate(15)
													
							while(workingDate.getTime() <= maxDate.getTime())
							{							
								workingDate.setDate(15);
								pickerHTML += '<option value="'+(workingDate.getMonth()+1)+'-'+workingDate.getFullYear()+'">'
									pickerHTML += monthName[workingDate.getMonth()]
									pickerHTML += ' '
									pickerHTML += workingDate.getFullYear()
								pickerHTML += '</option>'
								workingDate.setDate(workingDate.getDate()+30)
							}						
							
							
						pickerHTML += '</select>'
					pickerHTML += '</td>'
				
					if(displayType == 1 || displayType == 2)
					{
						pickerHTML += '</tr>'
						pickerHTML += '<tr>'
					}
					
					pickerHTML += '<input type="hidden" name="cat" value="">'
					
					pickerHTML += '<td align="right" colspan="4">'
						pickerHTML += '<input class="rwr_button" type="submit" name="go" value="'+goButtonLabel+'" id="goButton_'+myHotelId+'">'
					pickerHTML += '</td>'
				pickerHTML += '</tr>'
			pickerHTML += '</table>'
		pickerHTML += '</form>'
	
	pickerHTML += '</div>'
	
	document.write(pickerHTML)
	
}

function changedayName(dayLabelElement,dayVal,monthYearVal,myHotelId)
{
		
	var theYear = parseInt(monthYearVal.substr(monthYearVal.indexOf('-')+1,4),10);
	var theMonth = parseInt(monthYearVal.substr(0,monthYearVal.indexOf('-')+1),10);
	var theDay = parseInt(dayVal,10);
	var weekdays = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat')
	var jsDate = new Date()
	jsDate.setFullYear(theYear);
	jsDate.setMonth(theMonth-1);
	jsDate.setDate(theDay);
	jsDate.setMonth(theMonth-1);
	jsDate.setDate(theDay);
	jsDate.setHours(11);
	jsDate.setMinutes(00);
	jsDate.setSeconds(00);
	jsDate.setMilliseconds(000);
	
	if(jsDate.getDate() != theDay)
	{
		dayLabelElement.innerHTML = 'XXX&nbsp;';
	} else {
		dayLabelElement.innerHTML = weekdays[jsDate.getDay()]+'&nbsp;';
		if(dayLabelElement.id.indexOf('checkIn') ==0 )
		{
			
			myForm = eval('document.forms.datePickNavForm_'+myHotelId);
			
			var jsOutDate = getCheckDate(myForm.cod,myForm.comy);
						
			if(jsOutDate)
			{
				if((jsOutDate.getTime() - jsDate.getTime()) < 86400000)
				{
					setCheckDate(myForm.cod,myForm.comy,new Date(jsDate.getTime() + 86400000))
					changedayName(document.getElementById('checkOutDayLabel_'+myHotelId),myForm.cod[myForm.cod.selectedIndex].value,myForm.comy[myForm.comy.selectedIndex].value,myHotelId)
				}
			}
		}
	}
}

function getCheckDate(dayControl,monthControl)
{
	var myDate = new Date();
		
	var getTheMonth = monthControl[monthControl.selectedIndex].value.split('-')[0]-1;
	var getTheYear = monthControl[monthControl.selectedIndex].value.split('-')[1];
	var getTheDay = dayControl[dayControl.selectedIndex].value;
	
	myDate.setFullYear(getTheYear);
	myDate.setMonth(getTheMonth);
	myDate.setDate(getTheDay);
	myDate.setMonth(getTheMonth);
	myDate.setDate(getTheDay);
	myDate.setHours(11);
	myDate.setMinutes(00);
	myDate.setSeconds(00);
	myDate.setMilliseconds(000);
	
	if(myDate.getDate() != getTheDay)
	{
		return false
	}
		return myDate;
	}

function setCheckDate(dayControl,monthControl,whatDate)
{
	
	dayControl.value = whatDate.getDate();
	var newMonthYearVal = whatDate.getMonth()+1;
	newMonthYearVal = newMonthYearVal.toString();
	newMonthYearVal = newMonthYearVal+'-'+whatDate.getFullYear();	
	monthControl.value = newMonthYearVal;

}

function setBookingDates()
{												
	var bookingFrame = document.getElementById('bookingFrame');
	var dateQuery = window.location.search;
	if(dateQuery.length > 0)
	{
		bookingFrame.src = 'http://'+siteID+'/home.html'+dateQuery
	}
	return true;												
}


function insertBookingSystem(useHotelId)
{
	
	switch(useHotelId)
	{
		case hotelId_abelTasman:
			siteID = 'abeltasmanhotelwellington.web-rooms.co.nz';
			break;
			
		case 	hotelId_centralCity:
			siteID = 'centralcityhotelwellington.web-rooms.co.nz';
			break;
	}
	
	document.write('<iframe id="bookingFrame" src="http://'+siteID+'/Home.html" width="100%" height="2000" frameborder="0">');
	document.write('Your browser must suppport frames to use our online booking system.');
	document.write('Please contact us directly.');
	document.write('</iframe>');
	
	setBookingDates();

}


