var availStartDate;
var startId;
var adults = 0;
var children = 0;
var infants = 0;
var numpets = 0;
var shortBreakAllowed = "false";
var SBproceed = "";
var firstLoad = true;
var globalcaldate = "";



//--------------------------------------------------
//
// Availability chart
//
//--------------------------------------------------

function getAvailabilityCalendar(caldate, propref, style)
{
	if(!style) {
		style = "normal";
	}
	
	// Load up the global
	if(firstLoad)
	{
		globalcaldate = caldate;
		firstLoad = false;
	}
	
	xmlHttp=GetXmlHttpObject()
	
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request")
		return
	}
	
	if(style != "normal")
	{
		var url="/includes/getSmallAvailabilityCalendar.php"
		url = url + "?caldate=" + caldate
		url = url + "&propref=" + propref
		url = url + "&style=" + style
	}
	else
	{
		var url="/includes/getAvailabilityCalendar.php"
		url = url + "?caldate=" + caldate
		url = url + "&propref=" + propref
		url = url + "&style=" + style
	}
	
	xmlHttp.onreadystatechange=stateAvail
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
}

function stateAvail() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("availability_main").innerHTML=xmlHttp.responseText;
		
		
		// Check to see if its the first load and automatically click if there is a date which is
		// greater than today.  This can only happen if the date is a session variable.
		var today = new Date();
		var calTmp = globalcaldate.split("-");
		var calDay = new Date (calTmp[2],(calTmp[1]-1),calTmp[0]);
		
		if(calDay > today)
		{
			var id = calDay.getDate()+"-"+(calDay.getMonth())+"-"+calDay.getFullYear();
			clickSeven(id);
			firstLoad = false;
		}
	} 
}


function getPrice(startDate, endDate, propRef, people)
{ 
	xmlHttp=GetXmlHttpObject();
	
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	
	if(people == 0) {
		people = 100;
	}
	
	var url="/includes/getPrice.php";
	url=url+"?startDate="+startDate;
	url=url+"&endDate="+endDate;
	url=url+"&propRef="+propRef;
	url=url+"&people="+people;
	url = url + "&rand=" + Math.floor(Math.random()*10000000)
	
	//alert(url);
	
	xmlHttp.onreadystatechange = statePriceChanged;
	
	xmlHttp.open("GET",url,true);
	
	xmlHttp.send(null);
}

function statePriceChanged() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		if(xmlHttp.responseText == "Unavailable")
		{
			document.getElementById("holiday_price").innerHTML = xmlHttp.responseText; 
		}
		else
		{
			document.getElementById("holiday_price").innerHTML = "&pound;" + xmlHttp.responseText;
		}
	}
}

function getAdults()
{
	if(document.getElementById('adults').value != "")
	{
		return document.getElementById('adults').value;
	}
	else
	{
		return 0;
	}
}

function getChildren()
{
	if(document.getElementById('children').value != "")
	{
		return document.getElementById('children').value;
	}
	else
	{
		return 0;
	}
}

function getInfants()
{
	if(document.getElementById('infants').value != "")
	{
		return document.getElementById('infants').value;
	}
	else
	{
		return 0;
	}
}

function changeHolLength()
{
	var len = document.getElementById("holLength").value;
	clearHighlights();
	var one_day=1000*60*60*24;
	var endDate;
	var tempDay;
	
	adults = getAdults();
	children = getChildren();
	infants = getInfants();
	var numpeople = parseInt(adults) + parseInt(children) + parseInt(infants);
	
	numpeople = ((numpeople == 0) ? parseInt(document.getElementById("maxpeople").value) : numpeople);
	
	for(var i=0; i<=len; i++)
	{
		try
		{
			tempDay = new Date ((availStartDate.getFullYear()),(availStartDate.getMonth()),availStartDate.getDate()+i);
			var id = tempDay.getDate()+"-"+(tempDay.getMonth())+"-"+tempDay.getFullYear();
			endDate = new Date(tempDay.getFullYear(),tempDay.getMonth(),tempDay.getDate());
		}
		catch(e)
		{
		
		}
		
		
		try
		{	
			if(i < len)
			{
				if(document.getElementById(id).getAttribute("name") == "avaTd" || document.getElementById(id).getAttribute("name") == "cdAvaTd")
				{
					if(i == 0)
					{
						highlightById(id, false, false);
					}
					else if(i == len)
					{
						highlightById(id, false, false);
					}
					else
					{
						highlightById(id, false, false);
					}
				}
				else
				{
					break;
				}
			}
			else
			{
				break;
			}
		}
		catch(err)
		{
		
		}
	}
	
	try
	{
	
		var thisDayTemp = availStartDate.getDate()+"-"+(availStartDate.getMonth()+1)+"-"+availStartDate.getFullYear();
		var endDayTemp = endDate.getDate()+"-"+(endDate.getMonth()+1)+"-"+endDate.getFullYear();
		tempDayEnd = new Date(tempDay.getFullYear(),tempDay.getMonth(),tempDay.getDate());
	
		document.getElementById('startdate').innerHTML = (availStartDate.getDate())+"/"+(availStartDate.getMonth()+1)+"/"+availStartDate.getFullYear();
		document.getElementById('todate').innerHTML = (tempDayEnd.getDate())+"/"+(tempDayEnd.getMonth()+1)+"/"+tempDayEnd.getFullYear();
		
		document.getElementById('startdatehid').value = thisDayTemp;
		document.getElementById('todatehid').value = endDayTemp;
		
		
		getPrice(thisDayTemp, endDayTemp, document.getElementById('property').value, numpeople);
	}
	catch(err)
	{
	
	}
}

function clickSeven(id)
{
	var arrTmp = id.split("-");
	var one_day=1000*60*60*24;
	var len = document.getElementById("holLength").value;
	var thisDay = new Date (arrTmp[2],arrTmp[1],arrTmp[0]);
	availStartDate = thisDay;
	startId = id;
	var thisDayPlus = new Date (thisDay.getTime() + (one_day*len));
	var endDate;
	var tempDay;
	var tempDayEnd;
	adults = getAdults();
	children = getChildren();
	infants = getInfants();
	var numpeople = parseInt(adults) + parseInt(children) + parseInt(infants);
	
	numpeople = ((numpeople == 0) ? parseInt(document.getElementById("maxpeople").value) : numpeople);
		
	clearHighlights();

	for(var i=0; i<=len; i++)
	{
		tempDay = new Date ((availStartDate.getFullYear()),(availStartDate.getMonth()),availStartDate.getDate()+i);
		var id = tempDay.getDate()+"-"+(tempDay.getMonth())+"-"+tempDay.getFullYear();
		endDate = new Date(tempDay.getFullYear(),tempDay.getMonth(),tempDay.getDate());
		
		try
		{
			if(i < len)
			{
				if(document.getElementById(id).getAttribute("name") == "avaTd" || document.getElementById(id).getAttribute("name") == "cdAvaTd")
				{
					if(i == 0)
					{
						highlightById(id, false, false);
					}
					else if(i == len)
					{
						highlightById(id, false, false);
					}
					else
					{
						highlightById(id, false, false);
					}
				}
				else
				{
					break;
				}
			}
			else
			{
				break;
			}
		}
		catch(err)
		{
			//alert(err);
		}
	}
	
	var thisDayTemp = thisDay.getDate()+"-"+(thisDay.getMonth()+1)+"-"+thisDay.getFullYear();
	var endDayTemp = endDate.getDate()+"-"+(endDate.getMonth()+1)+"-"+endDate.getFullYear();
	tempDayEnd = new Date(tempDay.getFullYear(),tempDay.getMonth(),tempDay.getDate());
	
	document.getElementById('startdate').innerHTML = (availStartDate.getDate())+"/"+(availStartDate.getMonth()+1)+"/"+availStartDate.getFullYear();
	document.getElementById('todate').innerHTML = (tempDayEnd.getDate())+"/"+(tempDayEnd.getMonth()+1)+"/"+tempDayEnd.getFullYear();
		
	document.getElementById('startdatehid').value = thisDayTemp;
	document.getElementById('todatehid').value = endDayTemp;
	
	getPrice(thisDayTemp, endDayTemp, document.getElementById('property').value, numpeople);
}

function clearHighlights()
{
	var e = getElementsByName_iefix("td","avaTd");
	for(var i=0;i<e.length;i++)
	{
		e[i].className = "avaTd";
	}
	
	var e = getElementsByName_iefix("td","cdAvaTd");
	for(var i=0;i<e.length;i++)
	{
		e[i].className = "cdAvaTd";
	}
	
	var e = getElementsByName_iefix("td","notAvaTd");
	for(var i=0;i<e.length;i++)
	{
		e[i].className = "notAvaTd";
	}
}

function getElementsByName_iefix(tag, name)
{
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     var iarr = 0;
     var i = 0;
     for(i = 0,iarr = 0; i < elem.length; i++) {
          if(elem[i].getAttribute("name") == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}

function highlightdate(objID)
{
    var objDay=document.getElementById(objID);
    if (!objDay)
    {
 	  return false;
    }
    objDay.style.display = strDisplay;
    return true;
}

function setStyle(objId, style, value) {
    document.getElementById(objId).style[style] = value;
} 

function changeStyleById(id, onof){
	if (document.getElementById)
    {
		var nodeObj = document.getElementById(id)
		if (!nodeObj)
		{
		} else {
			if (onof==true)
			{
			   nodeObj.style.fontWeight = 'bolder';
			   nodeObj.style.color = 'red';
			} else {
			   nodeObj.style.fontWeight = 'normal';
			   nodeObj.style.color = '#007328';
			}
		}
    }
}

function highlightById(id, start, end)
{
	if(start)
	{
		style2.className = "avaHighLightStart";
	}
	else if(end)
	{
		style2.className = "avaHighLightEnd";
	}
	else
	{
		if (document.getElementById)
		{
			var style2 = document.getElementById(id);
		}
		else if (document.all)
		{
			var style2 = document.all[id];
		}
		else if (document.layers)
		{
			var style2 = document.layers[id];
		}
		
		style2.className = "avaHighLight";
	}
	
}

//--------------------------------------------------
//
// Contact form validation
//
//--------------------------------------------------

function sendMe()
{
	var name = document.getElementById("name").value;
	var email = document.getElementById("email").value;
	var message = document.getElementById("message").value;
	var errors = "";
	
	// Disable elements
	document.emailform.name.disabled=true;
	document.emailform.email.disabled=true;
	document.emailform.message.disabled=true;
	
	xmlHttp=GetXmlHttpObject()
	
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request")
		return
	}
	
	if(name == "")
	{
		errors = errors + "Your Name is missing<br />";
	}
	
	if(email == "")
	{
		errors = errors + "Your email is missing<br />";
	}
	else
	{
		if(eCheck(email) == false)
		{
			errors = errors + "Email Address was invalid<br />";
		}
	}
	
	if(message == "")
	{
		errors = errors + "Your message is missing<br />";
	}
			
	if(errors == "")
	{
		var url="/includes/email.php"
		url = url + "?name=" + name
		url = url + "&email=" + email
		url = url + "&message=" + message		
		xmlHttp.onreadystatechange=stateSent
		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
	}
	else
	{
		document.getElementById("res").innerHTML = "Sorry it was not possible to send this email because:<br /><br />" + errors; 
	}	
		
	document.emailform.name.disabled=false;
	document.emailform.email.disabled=false;
	document.emailform.message.disabled=false;
	document.getElementById("res").style.display = "block";
}

function stateSent()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		if(xmlHttp.responseText == "true")
		{
			document.getElementById("res").innerHTML = "Thank you, your email was sent successfully.";
		}
		else
		{
			document.getElementById("res").innerHTML = "Sorry there were problems sending your email.";
		}
	}
}


function checkParty()
{
	var adults = document.getElementById("adults").value;
	var children = document.getElementById("children").value;
	var maxpeople = document.getElementById("maxpeople").value;
	var people = 0;
	
	try
	{	
		people = parseInt(adults) + parseInt(children);
		
		if(adults == 0)
		{
			return 3;
		}
		
		if(people > 0)
		{
			if(maxpeople >= people)
			{
				return 1;
			}
			else
			{
				return 0;
			}
		}
		else
		{
			return 2;
		}
	}
	catch(e)
	{
		return 0;
	}
}

function CheckAvailForm()
{
	if(document.getElementById("startdate").value == "")
	{
		alert('Please select the dates of the holiday by clicking on the calendars above.');
		return false;
	}
	
	if(document.getElementById("holLength").value < 7)
	{
		//alert('If you wish to book a short break please call us and we will be happy to help.');
		//return false;
	}
	
	//alert(document.getElementById("startdatehid").value);
	
	if(document.getElementById("startdatehid").value == "")
	{
		alert('Please click on the calendar to select your holiday dates.');
		return false;
	}
	
	if(document.getElementById("holiday_price").innerHTML == "Unavailable")
	{
		alert('Sorry, the property is not available for those dates.');
		return false;
	}
	
	var people = checkParty();
	
	if(people == 0)
	{
		alert('The number in your party exceeds the amount allowed on the property.');
		return false;
	}
	else if(people == 2)
	{
		alert('Please select how many people are coming to the property.');
		return false;
	}
	else if(people == 3)
	{
		alert('Please select how many adults are coming to the property.');
		return false;
	}
	
	try
	{
		if(document.getElementById("pets").value == "yes")
		{
			if(document.getElementById("numpets").value != "")
			{
				if(parseInt(document.getElementById("numpets").value) > parseInt(document.getElementById("numberofpets").value))
				{
					alert('This property unfortunately accept that many pets.');
					return false;
				}
			}
			else
			{
				alert('Please state how many pets you are bringing.');
				return false;
			}
		}	
	}
	catch(e)
	{
	
	}
	
	try
	{
		var datediff = 0;
		var fromdateTmp = document.getElementById("startdatehid").value.split("-");
		var todateTmp = document.getElementById("todatehid").value.split("-");
		var fromdate = new Date (fromdateTmp[2],fromdateTmp[1]-1,fromdateTmp[0]);
		var todate = new Date (todateTmp[2],todateTmp[1]-1,todateTmp[0]);
		
		var dayskey = new Array(7);
		dayskey[0] = "Sunday";
		dayskey[1] = "Monday";
		dayskey[2] = "Tuesday";
		dayskey[3] = "Wednesday";
		dayskey[4] = "Thursday";
		dayskey[5] = "Friday";
		dayskey[6] = "Saturday";
		
		//alert(fromdate + " " + todate);
		
		if(fromdate < todate)
		{
			var diff = ((todate - fromdate)/(24*60*60*1000));
			
			if(diff < 7) 
			{
				//alert(ShortBreaksAllowed(fromdate, todate));
			
				var SBret = ShortBreaksAllowed(fromdate, todate)
				if(SBret != "")
				{
					alert(SBret);
					return false;
				}
			}
			
			//if((document.getElementById("changeoverday").value != dayskey[fromdate.getDay()]) || (diff % 7 != 0))
			//if((diff % 7 != 0))
			//{
				var SBret = ShortBreaksAllowed(fromdate, todate);
				if(SBret != "")
				{
					alert(SBret);
					return false;
				}
			//}
		}
	}
	catch(e)
	{
		alert(e + 'An error occurred taking your booking, please call us and we will be happy to help.');
		return false;
	}
	
	//document.availform.submit();
}
	


function ShortBreaksAllowed(fromdate, todate)
{
	xmlHttp=GetXmlHttpObject();
	
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request")
		return
	}
	
	var propref = document.getElementById("property").value;
	
	var url="/includes/shortBreakCheck.php";
	url = url + "?startdate=" + fromdate.getDate()+"-"+(fromdate.getMonth()+1)+"-"+fromdate.getFullYear();
	url = url + "&todate=" + todate.getDate()+"-"+(todate.getMonth()+1)+"-"+todate.getFullYear();
	url = url + "&propref=" + propref;
	url = url + "&rand=" + Math.floor(Math.random()*10000000);
	
	//alert(url);
	xmlHttp.open("GET",url,false);
	xmlHttp.send(null);
	
	return xmlHttp.responseText;
	
}

function changeHolPets()
{
	document.getElementById("pets").value = document.getElementById("holPets").value;
}