
//////////////////////////////////////////////////////////
// 		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 											= 'reefresorttaupo.web-rooms.co.nz';
var onlineBookingsURL 					= 'http://www.accommodationtaupo.com/reservation.html';
var targetWindow 								= '_self';
var defaultDaysInAdvanceCheckIn = 1;
var defaultDaysUntilCheckOut 		= 1;
var maxDaysInAdvance 						= 365;
var maxDaysStayLength						= 14
var displayType									= 3
function webRoomsDatePicker()
{
	
	createDatePickers();
	
	var myCheckInDate = new Date()
	var myCheckOutDate = new Date()
			
	myCheckInDate.setDate(myCheckInDate.getDate()+defaultDaysInAdvanceCheckIn)
	myCheckOutDate.setDate(myCheckInDate.getDate()+defaultDaysUntilCheckOut)
	
	setCheckDate(document.forms.datePickNavForm.cid,document.forms.datePickNavForm.cimy,myCheckInDate)
	setCheckDate(document.forms.datePickNavForm.cod,document.forms.datePickNavForm.comy,myCheckOutDate)
		
	changedayName(document.getElementById('checkInDayLabel'),document.datePickNavForm.cid[document.datePickNavForm.cid.selectedIndex].value,document.datePickNavForm.cimy[document.datePickNavForm.cimy.selectedIndex].value)
	changedayName(document.getElementById('checkOutDayLabel'),document.datePickNavForm.cod[document.datePickNavForm.cod.selectedIndex].value,document.datePickNavForm.comy[document.datePickNavForm.comy.selectedIndex].value)

}


function validatePickers()
{

	var success = true;
	var errMsg = 'Please check the following and try again:\n\n'
	
	var myCheckInDate = getCheckDate(document.forms.datePickNavForm.cid,document.forms.datePickNavForm.cimy)
	var myCheckOutDate = getCheckDate(document.forms.datePickNavForm.cod,document.forms.datePickNavForm.comy)
	
	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)	
	}
	
	return success
	
}

function createDatePickers()
{
	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 = ''
	
	pickerHTML += '<div class="rwr_block">'
	
		pickerHTML += '<form name="datePickNavForm" action="'+onlineBookingsURL+'" target="'+targetWindow+'" onsubmit="return validatePickers();">'
			
			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"></div>'
					pickerHTML += '</td>'
					pickerHTML += '<td nowrap>'
						pickerHTML += '<select class="rwr_picker" name="cid" onchange="return changedayName(document.getElementById(\'checkInDayLabel\'),document.datePickNavForm.cid[document.datePickNavForm.cid.selectedIndex].value,document.datePickNavForm.cimy[document.datePickNavForm.cimy.selectedIndex].value);">'
							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\'),document.datePickNavForm.cid[document.datePickNavForm.cid.selectedIndex].value,document.datePickNavForm.cimy[document.datePickNavForm.cimy.selectedIndex].value);">'
							
							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"></div>'
					pickerHTML += '</td>'
					pickerHTML += '<td nowrap>'
						pickerHTML += '<select class="rwr_picker" name="cod" onchange="return changedayName(document.getElementById(\'checkOutDayLabel\'),document.datePickNavForm.cod[document.datePickNavForm.cod.selectedIndex].value,document.datePickNavForm.comy[document.datePickNavForm.comy.selectedIndex].value);">'
							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\'),document.datePickNavForm.cod[document.datePickNavForm.cod.selectedIndex].value,document.datePickNavForm.comy[document.datePickNavForm.comy.selectedIndex].value);">'
							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 += '<td align="right" colspan="4">'
						pickerHTML += '<input class="rwr_button" type="submit" name="go" value="GO">'
					pickerHTML += '</td>'
				pickerHTML += '</tr>'
			pickerHTML += '</table>'
		pickerHTML += '</form>'
	
	pickerHTML += '</div>'
	
	document.write(pickerHTML)
	
}

function changedayName(dayLabelElement,dayVal,monthYearVal)
{
		
	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 = document.forms.datePickNavForm;
			
			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'),myForm.cod[myForm.cod.selectedIndex].value,myForm.comy[myForm.comy.selectedIndex].value)
				}
			}
		}
	}
}

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()
{
	
	document.write('<iframe id="bookingFrame" src="http://'+siteID+'/Home.html" width="100%" height="600" 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();

}

