//////////////////////////////////////////////////////////
//      ROONSOFT WEBROOMS: INTEGRATION SCRIPT           //
//            Roonsoft Technologies Ltd                 //
//            http://www.roonsoft.co.nz                 //
//           ver: Friday, 3 September 2010              //
//////////////////////////////////////////////////////////
//   NOTE: This script has been dynamically generated,  //
//  using settings for a specific customer. It changes  //
//           frequently and without warning.            //
//                                                      //
//      PLEASE EXTERNALLY REFERENCE THIS FILE!          //
//      -Do not store it on your own web host-          //
//                                                      //
//   Contact Roonsoft Technologies for assistance.      //
//           http://www.roonsoft.co.nz                  //
//////////////////////////////////////////////////////////


var rwrSiteId = 146;
var rwrTargetUrl = 'http://bookings.web-rooms.co.nz/Home.html?pid=146';
var rwrTargetWinName = '_blank';
var rwrInDateIxOffset = 0;
var rwrOutDateIxOffset = 1;
var rwrMaxOutDateIx = 3925;
var maxDaysInAdvance = 365;
var displayType = 1;
var goButtonLabel = 'GO';
var rootDate = new Date();
rootDate.setFullYear(2000,11,31);
var dateToday = new Date();
dateToday.setFullYear(2010,8,3);
var rwrOne_Day_Ms = 1000*60*60*24;



function insertDatePicker(sId)
{
	// adds a date picker using a block element
	// myDatePicker accessible outside of scope by necessity
	
	myDatePicker = new rwr_ResMask(sId,'myDatePicker');	
	
	var sDatePickerHtml = myDatePicker.getHtml();
	
	document.getElementById(sId).innerHTML = sDatePickerHtml;
	
	rwr_dpInit(sId);
	
}

function insertBookingEngine(sId)
{ // creates iframe with booking engine embedded, using a block element
	
	var sHtml = '<iframe id="rwrBookingFrame" src="http://bookings.web-rooms.co.nz/Home.html?pid='+rwrSiteId+'" width="100%" height="2500" frameborder="0">'
	sHtml += 'Your browser must suppport frames to use our online booking system.<br/>';
	sHtml += 'Please contact us directly.';
	sHtml += '</iframe>';
		
	try
	{
		pageTracker._link('http://bookings.web-rooms.co.nz/Home.html?pid='+rwrSiteId);
	}catch(Err){}
		
	document.getElementById(sId).innerHTML = sHtml;
	
	setBookingDates();
	
}



function rwr_dpInit(sIdent)
{
	var oCheckIn = document.getElementById('cid_'+sIdent);
	var oCheckOut = document.getElementById('cod_'+sIdent);
	
	rwr_setDate(oCheckIn,dateToday);
	rwr_setDate(oCheckOut,dateToday);
	rwr_dpEval(oCheckIn);	
	rwr_dpEval(oCheckOut);
	
	rwr_catch = 0;
	
}


function writeDebug(sDebug)
{
	
	try
	{
		document.getElementById('rwr_debug').innerHTML += sDebug + '<br/>';
	}catch(Err){}
		
}

function rwr_dpEval(oControl)
{
		
	
	
	rwr_setDayLabel(oControl);
	
	var sIdent = oControl.id.split('_')[1];
	
	var oCheckIn = document.getElementById('cid_'+sIdent);
	var oCheckOut = document.getElementById('cod_'+sIdent);
	
	var dCheckInDate = rwr_getDate(oCheckIn);
	var dCheckOutDate = rwr_getDate(oCheckOut);
	
	var iCheckInDateIx = dateToIx(dCheckInDate);
	var iCheckOutDateIx = dateToIx(dCheckOutDate);	
		
	var thisDateNextMonth = new Date()
	thisDateNextMonth.setTime(dCheckInDate.getTime());	
	thisDateNextMonth.setMonth(dCheckInDate.getMonth()+1);
	
	if(iCheckInDateIx < dateToIx(dateToday))
	{
		
		rwr_setDate(oCheckIn,thisDateNextMonth);
		return rwr_dpEval(oCheckIn);
	}
	
	
	if(iCheckOutDateIx < dateToIx(dateToday))
	{
		
		rwr_setDate(oCheckOut,thisDateNextMonth);
		
		return rwr_dpEval(oCheckOut);
	}
		
	
	if(iCheckOutDateIx > rwrMaxOutDateIx)
	{
		rwr_setDate(oCheckOut,rwrMaxOutDateIx);
		return rwr_dpEval(oCheckOut);
	}
	
	
	if(iCheckInDateIx >= iCheckOutDateIx)
	{
		
		switch(oControl.id.substr(0,2))
		{
			case 'ci':
				
				rwr_setDate(oCheckOut,ixToDate(iCheckInDateIx));		
				return rwr_dpEval(oCheckOut);
				break;
				
			case 'co':
				
				rwr_setDate(oCheckIn,ixToDate(iCheckOutDateIx-2));
				return rwr_dpEval(oCheckIn);
				break;	
		}
		
	}	
	
	return true;
}


function rwr_dpSubmit(oResMask)
{
	
	
	var sIdent = oResMask._ident;
	
	var oCheckIn = document.getElementById('cid_'+sIdent);
	var oCheckOut = document.getElementById('cod_'+sIdent);
	
	var dCheckInDate = rwr_getDate(oCheckIn);
	var dCheckOutDate = rwr_getDate(oCheckOut);
	
	var sQuery = 'cid='+dCheckInDate.getDate();
	sQuery += '&cimy='+(dCheckInDate.getMonth()+1)+'-'+dCheckInDate.getFullYear();
	
	sQuery += '&cod='+dCheckOutDate.getDate();
	sQuery += '&comy='+(dCheckOutDate.getMonth()+1)+'-'+dCheckOutDate.getFullYear();
	
	if(oResMask._rooms > 0)
	{
		sQuery += '&rooms='+oResMask._rooms;
	}
	
	if(oResMask._targetUri.indexOf('?') > 5)
	{
		sQuery = '&'+sQuery;
	}else{
		sQuery = '?'+sQuery;
	}
	
	var sTargetUrl = oResMask._targetUri + sQuery;
	
	if(oResMask._targetUri.length == 0)
	{
		alert('Please select a property.');
		return false;
	}
	
	switch(oResMask._targetWinName)
	{
		case '_blank':
			window.open(sTargetUrl,'');
			break;	
			
		case '_self':
		case '':
			window.location = sTargetUrl;
			break;
			
		default:
			window.open(sTargetUrl,oResMask._targetWinName);
			break;
	}	
	
	return true;
}

function rwr_setDate(oControl,dNewDate)
{ // sets given date control to the given date, including day label
	
	var oDay,oMonthYear;
	var sIdent = oControl.id.split('_')[1];	
	
	
	switch(oControl.id.substr(0,2))
	{
		case 'ci':
			oDay = document.getElementById('cid_'+sIdent);
			oMonthYear = document.getElementById('cimy_'+sIdent);
			break;
			
		case 'co':
			oDay = document.getElementById('cod_'+sIdent);
			oMonthYear = document.getElementById('comy_'+sIdent);
			break;	
	}
	
	oDay.value = dNewDate.getDate();
	oMonthYear.value = (dNewDate.getMonth()+1)+'-'+dNewDate.getFullYear();
	
	rwr_setDayLabel(oControl);
	
}

function rwr_getDate(oControl)
{ // returns a jsDate object for the given date control
	// if the month evaluated is different from that in the control, reset the control to the new date
	
	var oDay,oMonthYear;
	var sIdent = oControl.id.split('_')[1];
	
	var iDay,iMonth,iYear;
	
	switch(oControl.id.substr(0,2))
	{
		case 'ci':
			oDay = document.getElementById('cid_'+sIdent);
			oMonthYear = document.getElementById('cimy_'+sIdent);
			break;
			
		case 'co':
			oDay = document.getElementById('cod_'+sIdent);
			oMonthYear = document.getElementById('comy_'+sIdent);
			break;	
	}
	
	var dReturn = new Date();
	
	iDay = parseInt(oDay[oDay.selectedIndex].value,10);
	iMonth = parseInt(oMonthYear[oMonthYear.selectedIndex].value.split('-')[0],10);
	iYear = parseInt(oMonthYear[oMonthYear.selectedIndex].value.split('-')[1],10);
	
	dReturn.setFullYear(iYear,
											iMonth-1,
											iDay);
	
	if(iMonth-1 != dReturn.getMonth())
	{
		rwr_setDate(oControl,dReturn);
	}	
											
	return dReturn;
	
}


function rwr_setDayLabel(oControl)
{ // sets the appropriate day label
	
	var sLabelId;	
	var sIdent = oControl.id.split('_')[1];
	var weekdays = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
	
	switch(oControl.id.substr(0,2))
	{
		case 'ci':
			sLabelId = 'checkInDayLabel_'+sIdent;
			break;
			
		case 'co':
			sLabelId = 'checkOutDayLabel_'+sIdent;
			break;	
	}	
	
	var oDayLabel = document.getElementById(sLabelId);
	var dSetDate = rwr_getDate(oControl);
	
	oDayLabel.innerHTML = weekdays[dSetDate.getDay()];
	
	//alert('rwr_setDayLabel');
	
}


function rwr_ResMask(ident,objName)
{
	if(ident == null)
	{
		ident = 'default';
	}
	
	var oResMask = this;
	
	this._ident = ident;
	this._objName = objName;
	this._displayType = displayType;
	this._targetUri = rwrTargetUrl;
	this._targetWinName = rwrTargetWinName;
	this._inDateIxOffset = rwrInDateIxOffset;
	this._outDateIxOffset = rwrOutDateIxOffset;
	this._maxOutDateIx = rwrMaxOutDateIx;
	this._maxDaysInAdvance = maxDaysInAdvance;
	this._goButtonLabel = goButtonLabel;
	this._rooms = '';
	this._checkInDateLabel = 'Check In:';	
	this._checkOutDateLabel = 'Check Out:';
	
	this._checkInDate = new Date();
	
	this._displayType_block = 1;
	this._displayType_wide = 2;
	this._displayType_single = 3;
	
		
	this.getHtml = function()
	{
		var sHtml;		
		var buttonColSpan;
		
		switch(this._displayType)
		{
			case this._displayType_block:
				buttonColSpan = 2;
				break;
				
			case this._displayType_wide:
				buttonColSpan = 4;
				break;
				
			case this._displayType_single:
			
				break;	
		}
		
		var maxDate = new Date();
		
		
		maxDate.setDate(dateToday.getDate()+this._maxDaysInAdvance);
		maxDate.setDate(15);
		
		
		var dDate;
		var monthName = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
		
					
		sHtml = '<div class="rwr_block" id="rwrDatePicker_'+ident+'">';
			
			//sHtml+= '<input type="hidden" id="rooms_'+ident+'" value="'+this._rooms+'"/>';
			
			sHtml+= '<table border="0" cellspacing="0" cellpadding="1" class=""rwr_table"">';
				sHtml += '<tr>';
					sHtml += '<td colspan="2">';
						sHtml += '<div class="rwr_label">'+this._checkInDateLabel+'</div>';
					sHtml += '</td>';
				
				if(this._displayType == this._displayType_block)
				{
					sHtml += '</tr>';				
					sHtml += '<tr>';
				}
				
					sHtml += '<td>';
						sHtml += '<div class="rwr_dayLabel" style="text-align:right;width:35px;" id="checkInDayLabel_'+ident+'"></div>';
					sHtml += '</td>';
					
					sHtml += '<td nowrap>';
						
						sHtml += '<select class="rwr_picker" id="cid_'+ident+'" onchange="return rwr_dpEval(this);">';
							for(var i=1;i<=31;i++)
							{
								sHtml += '<option value="'+i+'">'+i+'</option>';
							}
						sHtml += '</select>';
						sHtml += '<select class="rwr_picker" id="cimy_'+ident+'" onchange="return rwr_dpEval(this);">';
							
							dDate = new Date();
							dDate.setDate(15);
							while(dDate.getTime() < maxDate.getTime())
							{							
								dDate.setDate(15);
								sHtml += '<option value="'+(dDate.getMonth()+1)+'-'+dDate.getFullYear()+'">';
									sHtml += monthName[dDate.getMonth()];
									sHtml += ' ';
									sHtml += dDate.getFullYear();
								sHtml += '</option>';
								dDate.setDate(dDate.getDate()+30);
							}
							
						sHtml += '</select>';
						
					sHtml += '</td>';
				
				switch(this._displayType)	
				{
					case this._displayType_block:
					case this._displayType_wide:
						sHtml += '</tr>';				
						sHtml += '<tr>';
						break;
						
					case this._displayType_single:
						sHtml += '<td>';
							sHtml += '&nbsp;&nbsp;&nbsp;';
						sHtml += '</td>';			
						break;
						
				}
				
					sHtml += '<td colspan="2">';
						sHtml += '<div class="rwr_label">'+this._checkOutDateLabel+'</div>';
					sHtml += '</td>';
				
				if(this._displayType == this._displayType_block)
				{
					sHtml += '</tr>';				
					sHtml += '<tr>';
				}			
				
					sHtml += '<td>';
						sHtml += '<div class="rwr_dayLabel" style="text-align:right;width:35px;" id="checkOutDayLabel_'+ident+'"></div>';
					sHtml += '</td>';
					
					sHtml += '<td nowrap>';
						
						sHtml += '<select class="rwr_picker" id="cod_'+ident+'" onchange="return rwr_dpEval(this);">';
							for(var i=1;i<=31;i++)
							{
								sHtml += '<option value="'+i+'">'+i+'</option>';
							}
						sHtml += '</select>';
						sHtml += '<select class="rwr_picker" id="comy_'+ident+'" onchange="return rwr_dpEval(this);">';
							
							dDate = new Date();
							dDate.setDate(15);
							while(dDate.getTime() < maxDate.getTime())
							{							
								dDate.setDate(15);
								sHtml += '<option value="'+(dDate.getMonth()+1)+'-'+dDate.getFullYear()+'">';
									sHtml += monthName[dDate.getMonth()];
									sHtml += ' ';
									sHtml += dDate.getFullYear();
								sHtml += '</option>';
								dDate.setDate(dDate.getDate()+30);
							}
							
						sHtml += '</select>'
						
					sHtml += '</td>'
				
				if(this._displayType != this._displayType_single)
				{
					sHtml += '</tr>';
					sHtml += '<tr>';					
				}
				 
					sHtml += '<td colspan="'+buttonColSpan+'" align="right">';
						sHtml += '<input class="rwr_button" type="button" id="go_'+ident+'" value="'+this._goButtonLabel+'" onclick="return rwr_dpSubmit('+this._objName+');"/>';
					sHtml += '</td>';
					
				sHtml += '</tr>';
				
			sHtml += '</table>'	
			
		sHtml += '</div><div id="rwr_debug"></div>';
		
		return sHtml;
	};
		
}

function dateToIx(myDate)
{ // returns the ix  represented by the given jsDate
	
		
	var iResult = myDate.getTime() -  rootDate.getTime();
	iResult = Math.ceil(iResult / rwrOne_Day_Ms,0);
//	iResult += 1;
	return iResult;
	
}

function ixToDate(ix)
{ // returns the jsDate represented by the given ix
	
	var dResult = new Date();
	dResult.setTime(rootDate.getTime() + (rwrOne_Day_Ms*ix))
	
	return dResult;
	
}


function setBookingDates()
{	// passes querystring args to rwr iframe						
			
	var bookingFrame = document.getElementById('rwrBookingFrame');
	var dateQuery = window.location.search;
			
	if(dateQuery.length > 0)
	{		
		bookingFrame.src = 'http://bookings.web-rooms.co.nz/Home.html'+dateQuery+'&pid='+rwrSiteId;
	}else{
		bookingFrame.src = 'http://bookings.web-rooms.co.nz/Home.html?pid='+rwrSiteId;
	}
	return true;												
}


function webRoomsDatePicker()
{
	// adds a date picker inline using document.write (deprecated)
	// myDatePicker accessible outside of scope by necessity
	
	var myIdent = 'webRoomsDatePicker';
	
	myDatePicker = new rwr_ResMask(myIdent,'myDatePicker');	
	
	document.write(myDatePicker.getHtml());
	
	rwr_dpInit(myIdent);
	
}

function insertBookingSystem()
{ // creates iframe with booking engine embedded, using document.write (deprecated)
	
	var sHtml = '<iframe id="rwrBookingFrame" src="http://bookings.web-rooms.co.nz/Home.html?pid='+rwrSiteId+'" width="100%" height="2500" frameborder="0">'
	sHtml += 'Your browser must suppport frames to use our online booking system.<br/>';
	sHtml += 'Please contact us directly.';
	sHtml += '</iframe>';
		
	try
	{
		pageTracker._link('http://bookings.web-rooms.co.nz/Home.html?pid='+rwrSiteId);
	}catch(Err){}
		
	document.write(sHtml);
	
	setBookingDates();
	
}

<!--0-->