var aSelectedDatesArray = new Array();
//var gUserID = document.getElementById("userid").value;
var gUserID = "";


function click_checkAvail()
{
	document.getElementById("txtDebug").value =  "in check avail";
	document.getElementById("fbookingreq").src = 'availloader.aspx';
	//gUserID = Request.QueryString("id");
	gUserID = document.getElementById("userid").value;
	if(createDateString().length>0)
	{
		var iRooms = document.getElementById("ddRooms").value;
		var url="ajaxengine.aspx?action=checkavail&userid=" + gUserID + "&rooms=" + iRooms + "&dates=" + createDateString();	
		document.getElementById("txtDebug").value = url;
		runPage(url);
	}
	else
	{
		alert("Select the date(s) of your stay");
	}
}

function click_reset()
{
	document.getElementById("bookingrequest").style.display = 'none';
	document.getElementById("fbookingreq").src = 'availloader.aspx';
	document.getElementById("result").innerHTML="";
	resetCal();
}

function constructBookingRequestURL()
{
	var iRooms = document.getElementById("ddRooms").value;
	//var iRooms = 1;
	var url = "bookingreq.aspx?userid=" + gUserID + "&rooms=" + iRooms + "&dates=" + createDateString();
	return url;
	alert(url);
}

function selectDate(obj)
{
	if(obj.className == 'unselected')
	{
		obj.className = 'selected';
		addSelectedDate(obj.id);
	}
	else
	{
		obj.className = 'unselected'; 
		removeSelectedDate(obj.id);
	}
}

function addSelectedDate(date)
{
	var iSlot = aSelectedDatesArray.length;
	aSelectedDatesArray[iSlot] = date;

}

function removeSelectedDate(date)
{
	var iArrayLength = aSelectedDatesArray.length;
	for (var i=0; i < aSelectedDatesArray.length; i++) 
	{
		if(aSelectedDatesArray[i]==date)
			delete aSelectedDatesArray[i];
	}
}

function test()
{
	var checkin = "11/17/2008";
	var iDuration = 2;
	var theDate = new Date(checkin);
	var theDay;
	var theMonth;
	var dateString = "";

	for (var i=0; i < iDuration; i++) 
	{
		theDate.setDate(theDate.getDate() + i);

		theDay = theDate.getDate();
		theMonth = theDate.getMonth();
		theMonth++;
		theYear = theDate.getFullYear();

		dateString += theMonth + "/" + theDay + "/" + theYear + ",";
	}

	alert(dateString);
}

function createDateString()
{
	
	var sDateString = "";
	var sCheckin = document.getElementById("txtCheckin").value;
	
	//If the date field is empty then jump out...
	if(sCheckin.length==0)
		return "";

	var checkinDate = new Date(sCheckin);
	var theDate = new Date();
	
	theDate = checkinDate;

	var iDuration = document.getElementById("ddDuration").value;
	var theDay;
	var theMonth;
	var theYear;

	//Get the 1st date
	theDay = checkinDate.getDate();
	theMonth = checkinDate.getMonth();
	theMonth++;
	theYear = checkinDate.getFullYear();
	sDateString += theMonth + "/" + theDay + "/" + theYear;
	

	for (var i=1; i < iDuration; i++) 
	{
		sDateString += ",";
		checkinDate.setDate(checkinDate.getDate() + 1);
		//theDate = checkinDate;
		theDay = checkinDate.getDate();
		theMonth = checkinDate.getMonth();
		theMonth++;
		theYear = checkinDate.getFullYear();

		sDateString += theMonth + "/" + theDay + "/" + theYear;
	}

	return sDateString;


/*
cseNewDate.setDate(cseNewDate.getDate() + 7);

	for (var i=0; i < iDuration; i++) 
	{
		if(aSelectedDatesArray[i]!=null)
		{
			sDateString+= aSelectedDatesArray[i];
			sDateString+= ",";
		}
	}
	var newStr = sDateString.substring(0, sDateString.length-1);  
	
	
	newStr = document.getElementById("txtCheckin").value;
	return newStr;
*/

}


function createAffiliateDateString()
{
	var sDateString = "";
	var sCheckin = document.getElementById("txtCheckin").value;
	
	//If the date field is empty then jump out...
	if(sCheckin.length==0)
		return "";

	var checkinDate = new Date(sCheckin);
	var theDate = new Date();
	
	theDate = checkinDate;

	var iDuration = document.getElementById("ddDuration").value;
	var theDay;
	var theMonth;
	var theYear;

	//Get the 1st date ONLY
	theDay = checkinDate.getDate();
	theMonth = checkinDate.getMonth();
	theMonth++;
	theYear = checkinDate.getFullYear();
	sDateString += theYear + "-" + padDate(theMonth.toString()) + "-" + padDate(theDay.toString());

	return sDateString;
}

function padDate(d)
{
	if(d.length==1)
		d='0'+d;
	return d;
}








//AJAX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
return xmlHttp;
}
function runPage(url)
{ 
	//sAction = getAction(url);
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
	  alert ("Your browser does not support AJAX!");
	  return;
	}
	url=url+"&sid="+Math.random();	
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged() 
{ 
	if (xmlHttp.readyState==1)
	{ 
		document.getElementById("bookingrequest").style.display = 'none';
		document.getElementById("result").innerHTML="<br><img src='loading.gif>";
	}

	if (xmlHttp.readyState==4)
	{ 
		//document.getElementById("result").innerHTML=xmlHttp.responseText;	
		
		if(xmlHttp.responseText=="false")
		{
			document.getElementById("result").innerHTML="<p class='heading'>Sorry we don't have availability for your selected date(s)</p>";
			//document.getElementById("fbookingreq").src = constructBookingRequestURL();
			url='alternativebnb.aspx?userid=100&checkin=' + createAffiliateDateString() + '&n=' + document.getElementById("ddDuration").value;
			url=url+"&sid="+Math.random();
			document.getElementById("fbookingreq").src = url;
			document.getElementById("bookingrequest").style.display = 'block'; 
		}
		else
		{
			if(xmlHttp.responseText.search("Server Error")>0)
			{
				document.getElementById("result").innerHTML=xmlHttp.responseText;
			}
			else
			{
				var aWeekday=new Array(7);
				aWeekday[0]="Sunday";
				aWeekday[1]="Monday";
				aWeekday[2]="Tuesday";
				aWeekday[3]="Wednesday";
				aWeekday[4]="Thursday";
				aWeekday[5]="Friday";
				aWeekday[6]="Saturday";
				
				var aMonth=new Array(11);
				aMonth[0]="January";
				aMonth[1]="February";
				aMonth[2]="March";
				aMonth[3]="April";
				aMonth[4]="May";
				aMonth[5]="June";
				aMonth[6]="July";
				aMonth[7]="August";
				aMonth[8]="September";
				aMonth[9]="October";
				aMonth[10]="November";
				aMonth[11]="December";


				var checkinDate = new Date(document.getElementById("txtCheckin").value);
				var sWeekday = aWeekday[checkinDate.getDay()];
				var sDay = checkinDate.getDate();
				var sMonth = aMonth[checkinDate.getMonth()];
				var sYear = checkinDate.getFullYear();

				var sFormattedDate = sWeekday + " " + sDay + " " + sMonth + " " + sYear;

				document.getElementById("result").innerHTML="<p class='heading'>We have availability - Book Now <br>" + sFormattedDate + " for " + document.getElementById("ddDuration").value + " night(s)</p>";
				document.getElementById("fbookingreq").src = constructBookingRequestURL();
				document.getElementById("bookingrequest").style.display = 'block'; 
			}
		}
	}
}

function resetCal() 
{
   cells=document.getElementById('tblcal').getElementsByTagName("TD");
   for (var i=0; i<cells.length; i++)  
	{
	   if(cells[i].className=='selected')
			cells[i].className='unselected';

		aSelectedDatesArray = new Array();
	}
}

function checkIfPopping()
{
	if(document.getElementById("txtForename").value=='$$$')
	{
		pop();
	}
}


//debug functions
function pop()
{
	document.getElementById("txtForename").value="block";
	document.getElementById("txtSurname").value="block";
	document.getElementById("txtEmail").value="block@block.co.uk";
	document.getElementById("txtTel").value="0";
	document.getElementById("txtETA").value="block";
	document.getElementById("txtSpecReq").value=Date();
}
