// JavaScript Document
var name;
var Email;
var Telephone;
var NRooms;
var arrivalDate;
var departureDate;
var Comments;
		
var arrivalDate_btn;
var departureDate_btn;
var targetDateElement;

var newdiv;

var MousePosy = 0;
var MousePosx = 0;
var monthOffset = 0;

var posArray = new Array;

var now = new Date();
var todayDay;
var todayMonth;
var todayYear;


var day;
var month;
var year;
var dayOfWeek;
var NameOfMonth;
var daysInMonth;

var newTable;

function loadReservationForm ()
{
	reservationForm = document.getElementById ("reservationForm");
	if (reservationForm != null)
	{
		name = document.getElementById ("name");
		Email = document.getElementById ("Email");
		Telephone = document.getElementById ("Telephone");
		NRooms = document.getElementById ("NRooms");
		arrivalDate = document.getElementById ("arrivalDate");
		departureDate = document.getElementById ("departureDate");
		Comments = document.getElementById ("Comments");
		
		arrivalDate_btn = document.getElementById ("arrivalDate_btn");
		departureDate_btn = document.getElementById ("departureDate_btn");
		
		todayDay = now.getDate();
		todayMonth = now.getMonth() + monthOffset;
		todayYear = now.getFullYear();


		AddBTNListeners ();

	}
}
function AddBTNListeners ()
{
	var elm = arrivalDate_btn;
	var evType = "mousedown";
	var fn = updateArrivalDate;
	var useCapture = false;
	addEvent (elm, evType,fn,useCapture)
	
	var elm = departureDate_btn;
	var evType = "mousedown";
	var fn = updateDepartureDate;
	var useCapture = false;
	addEvent (elm, evType,fn,useCapture)

}
function RemoveBTNListeners ()
{
	var elm = arrivalDate_btn;
	var evType = "mousedown";
	var fn = updateArrivalDate;
	var useCapture = false;
	removeEvent (elm, evType,fn,useCapture)
	
	var elm = departureDate_btn;
	var evType = "mousedown";
	var fn = updateDepartureDate;
	var useCapture = false;
	removeEvent (elm, evType,fn,useCapture)

}
function updateArrivalDate (e)
{
	
	targetDateElement = arrivalDate_btn;
	RemoveBTNListeners ();
	CreateDiv (e);
}
function updateDepartureDate (e)
{
	targetDateElement = departureDate_btn;
	RemoveBTNListeners ();
	CreateDiv (e);
}
function CreateDiv(e) {
	//alert ("create element");
	newdiv = document.createElement('div');
	var divIdName = "calendar";
	newdiv.setAttribute('id',divIdName);
	newdiv.className = "calendarClass";
	reservationForm.appendChild(newdiv);
	
	
	if (posArray["x"] > 0)
	{
	}
	else
	{
		posArray = detCalendarPos(e);
	}
	posx = posArray["x"];
	posy = posArray["y"];
		
		
	newdiv.style.left = posx + 'px';
	newdiv.style.top = posy + 'px';

	createCalendar ();
	//var elm = newdiv;
	//var evType = "mousedown";
	//var fn = removeElement;
	//var useCapture = false;
	//addEvent (elm, evType,fn,useCapture);
}
function removeElement ()
{
	reservationForm.removeChild(newdiv);
	monthOffset + 0;
	AddBTNListeners ();
}
function detCalendarPos(e)
{
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.layerX || e.layerY) 	{
		posx = e.layerX;
		posy = e.layerY;
	}
	else if (e.offsetX || e.offsetY) 	{
		posx = e.offsetX;
		posy = e.offsetY;
	}
	var posArray = new Array;
	posArray["x"] = posx;
	posArray["y"] = posy;
	
	return (posArray);
}
function PlaceDateValue (DayNumber)
{
	
	var currentMonth = month + 1;
	if (DayNumber < 10)
	{
		DayNumber = "0" + DayNumber;
	}
	if (currentMonth < 10)
	{
		currentMonth = "0" + currentMonth;
	}
	if (targetDateElement.id == "arrivalDate_btn")
	{
		arrivalDate.value = DayNumber + "/" +  currentMonth + "/" +  year;
	}
	else if (targetDateElement.id == "departureDate_btn")
	{
		departureDate.value = DayNumber + "/" +  currentMonth + "/" +  year;

	}

}
function validateReservationsForm ()
{
	var errorMessage = "";
	//return (true);
	//alert (arrivalDate.value.substring(6,10));
	//VERIFICAMOS QUE NO SEAN NULOS LOS CAMPOS
		if (name.value == "")
		{
			errorMessage = "Please insert your name";
			name.focus();
			alert (errorMessage);
			return false;
		}
		else if (Email.value == "")
		{
			errorMessage = "Please insert your Email";
			Email.focus();
			alert (errorMessage);
			return false;
		}
		else if (Telephone.value == "")
		{
			errorMessage = "Please insert your Telephone";
			Telephone.focus();
			alert (errorMessage);
			return false;
		}
		else if (NRooms.value == "")
		{
			errorMessage = "Please select a number of rooms";
			NRooms.focus();
			alert (errorMessage);
			return false;
		}
		else if (arrivalDate.value == "dd/mm/yyyy")
		{
			errorMessage = "Please select an arrival date";
			arrivalDate.focus();
			alert (errorMessage);
			return false;
		}
		else if (departureDate.value == "dd/mm/yyyy")
		{
			errorMessage = "Please select a departure date";
			departureDate.focus();
			alert (errorMessage);
			return false;
		}
	//VERIFICAMOS LOS VALORES INTRODUCIDOS
		else if ((Email.value.indexOf("@") < 0)||(Email.value.indexOf(".") < 0))
		{
			errorMessage = "The email you entered is not valid, please check the email";
			Email.focus();
			alert (errorMessage);
			return false;
		}

		else if ((!(Number(arrivalDate.value.substring(0,2))>0))||(!(Number(arrivalDate.value.substring(3,5))>0))||(!(Number(arrivalDate.value.substring(6,10))>0)))
		{
			errorMessage = "Please insert a valid arrival date ";
			departureDate.focus();
			alert (errorMessage);
			return false;
		}
		else if ((!(Number(departureDate.value.substring(0,2))>0))||(!(Number(departureDate.value.substring(3,5))>0))||(!(Number(departureDate.value.substring(6,10))>0)))
		{
			errorMessage = "Please insert a valid arrival date ";
			departureDate.focus();
			alert (errorMessage);
			return false;
		}
		else 
		{
			var ArrivalString = arrivalDate.value.substring(6,10) + arrivalDate.value.substring(3,5) + arrivalDate.value.substring(0,2);
			var DepartureString = departureDate.value.substring(6,10) + departureDate.value.substring(3,5) + departureDate.value.substring(0,2);
			//alert (ArrivalString);
			if (ArrivalString >= DepartureString)
			{
				errorMessage = "";
				errorMessage = "The departure date must come after de arrival date ";
				departureDate.focus();
				alert (errorMessage);
				return false;
			}
		}
		
	return true;
}



