var arrivalDate;
var departureDate;
var currentTime = new Date();
var currentYear = currentTime.getYear();
var currentMonth = currentTime.getMonth() + 1;
var currentDay = currentTime.getDate();
if (currentMonth < 10)
  currentMonth = "0" + currentMonth;
if(currentDay < 10)
  currentDay = "0" + currentDay;
var currentDate = currentYear.toString() + currentMonth + currentDay;


function validate_form(thisform)
{
  with (thisform)
  {
    if (validate_required(name,"Please enter your name")==false)
    {
  	  name.focus();
  	  name.style.background = "red";
  	  return false;
  	}
  	else
  	  name.style.background = "white";
//--  	  
  	if (validate_required(surname,"Please enter your Surname")==false)
      {
  	  surname.focus();
  	  surname.style.background = "red";
  	  return false;
  	}
  	else
  	  surname.style.background = "white";
//--  	  
  	if (validate_email(eMail,"Not a valid e-mail address!")==false)
      {
        eMail.focus();
  	  eMail.style.background = "red";
  	  return false;
      }
  	else
  	  eMail.style.background = "white";
//--	  
  	if (validate_contactNr(contactNr,"Please enter your contact number")==false)
      {
  	  contactNr.focus();
  	  contactNr.style.background = "red";
  	  return false;
  	}
  	else
  	  contactNr.style.background = "white";
//--	 
  	if(validate_AllowedVisitors()==false)
  	{
  	  document.bookingForm.numberOfVisitors.focus();
  	  document.bookingForm.numberOfVisitors.style.backround = "red";
  	  alert("Number of visitors may not exceed the amount of beds available in your Casa selection");
  	  return false;
  	}
//--	 
  	if(numberOfVisitors.value==0)
  	{
  	  numberOfVisitors.focus();
  	  numberOfVisitors.style.backround = "red";
  	  alert("Number of visitors may not be 0!\nPlease indicate how many of which Casa's you want to book.\n The system will then calculate how many people your selection sleeps.\n Supply the correct number of visitors. ");
  	  return false;
  	}
//--  	  
  	if (validate_required(homeTown,"Please enter your Home Town")==false)
      {
  	  homeTown.focus();
  	  homeTown.style.background = "red";
  	  return false;
  	}
  	else
  	  homeTown.style.background = "white";
//--
  	if (validate_ArrivalDepartureDate()==false)
      {
  	  ArrivalDate.focus();
  	  return false;
  	}
  	else
  	{
      //debugger;
      document.bookingForm.numberOfVisitors.disabled = false;
      document.bookingForm.numberOfAllowedVisitors.disabled = false;
      Thank_You.value = "Human";
  	  window.location = "http://www.seralodge.com/BookingDone.php";
  	}
    
  }
}

function validate_email(field,alerttxt)
{
  with (field)
  {
    apos = value.indexOf("@");
    dotpos = value.lastIndexOf(".");
    if (apos < 1 || dotpos - apos < 2) 
    {
	  alert(alerttxt);
	  return false;
	}
  }
}

function validate_required(field,alerttxt)
{
   with (field)
  {
    if (value==null || value=="")
    {
	  alert(alerttxt);
	  return false;
	}
  }
}

function validate_AllowedVisitors()
{
  _2BedCasa = 2;
  _4BedCasa = 4;
  _4BedSeraCasa = 4;
  _6BedKingfishCasa = 6;
  
  var numberOfTurtle2Bed   = document.bookingForm.numberOfTurtle2Bed.value;
  var numberOfTurtle4Bed   = document.bookingForm.numberOfTurtle4Bed.value;
  var numberOfSera4Bed     = document.bookingForm.numberOfSera4Bed.value;
  var numberOfKingfish6Bed = document.bookingForm.numberOfKingfish6Bed.value;
  
//  var numberOfVisitors         = document.bookingForm.numberOfVisitors.value;
  var numberOfVisitorsChildren = document.bookingForm.numberOfVisitorsChildren.value;
  var numberOfVisitorsAdults   = document.bookingForm.numberOfVisitorsAdults.value;

  if(numberOfTurtle2Bed > 3)
  {
    document.bookingForm.numberOfTurtle2Bed.value = 3;
    numberOfTurtle2Bed = document.bookingForm.numberOfTurtle2Bed.value;
  }
  if(numberOfTurtle4Bed > 2)
  {
    document.bookingForm.numberOfTurtle4Bed.value = 2;
    numberOfTurtle4Bed = document.bookingForm.numberOfTurtle4Bed.value;
  }
  if(numberOfSera4Bed > 1)
  {
    document.bookingForm.numberOfSera4Bed.value = 1;
    numberOfSera4Bed = document.bookingForm.numberOfSera4Bed.value;
  }
  if(numberOfKingfish6Bed > 1)
  {
    document.bookingForm.numberOfKingfish6Bed.value = 1;
    numberOfKingfish6Bed = document.bookingForm.numberOfKingfish6Bed.value;
  }
 
  numberOfAllowedVisitors = numberOfTurtle2Bed*_2BedCasa + numberOfTurtle4Bed*_4BedCasa + numberOfSera4Bed*_4BedSeraCasa + numberOfKingfish6Bed*_6BedKingfishCasa;

  document.bookingForm.numberOfAllowedVisitors.value = numberOfAllowedVisitors;
  
  var numberOfVisitors = 1*numberOfVisitorsChildren + 1*numberOfVisitorsAdults
  document.bookingForm.numberOfVisitors.value = numberOfVisitors;

  if(numberOfVisitorsAdults > numberOfAllowedVisitors)
  {
    document.bookingForm.numberOfVisitorsAdults.value = numberOfAllowedVisitors;
    document.bookingForm.numberOfVisitors.value = numberOfAllowedVisitors;
    document.bookingForm.numberOfVisitorsChildren.value = 0;
	  return false;
  }
  
  if(numberOfVisitors > numberOfAllowedVisitors)
  {
    document.bookingForm.numberOfVisitors.value = numberOfAllowedVisitors;
    document.bookingForm.numberOfVisitorsAdults.value = 1*numberOfVisitorsAdults;
    document.bookingForm.numberOfVisitorsChildren.value = numberOfAllowedVisitors - 1*numberOfVisitorsAdults;
	  return false;
  }
}


function validate_contactNr(field,alerttxt)
{
  var stripped = field.value.replace(/[\(\)\.\-\ ]/g, '');
  with (field)
  {
    if (value==null || value=="")
    {
	  alert("Please enter a value in Contact Number");
	  return false;
	}
	else if(isNaN(parseInt(stripped)))
	{
	  alert("Please enter only numeric values in Contact Number");
	  return false;
	}
	else if (!(stripped.length >= 10))
	{
	  alert("Contact Number not long enough. Enter you correct Contact Number");
	  return false;
	}
  }
}

function validate_accomodationType(field,alerttxt)
{
   with (field)
  {
    if (value==false)
    {
	  alert(alerttxt);
	  return false;
	}
  }
}

function validate_ArrivalDepartureDate()
{
  arrivalDate = document.bookingForm.ArrivalDate.value;
  var arrivalYear = arrivalDate.substring(0,4);
  var arrivalMonth = arrivalDate.substring(5,7);
  var arrivalDay = arrivalDate.substring(8,10);
  arrivalDate = arrivalYear + arrivalMonth + arrivalDay;

  if(arrivalDate <= currentDate)
  {
    alert("Arrival date is empty, in the past or today. Please choose a valid Arrival Date");
	return false;
  }
  
  departureDate = document.bookingForm.DepartureDate.value;
  var departureYear = departureDate.substring(0,4);
  var departureMonth = departureDate.substring(5,7);
  var departureDay = departureDate.substring(8,10);
  departureDate = departureYear + departureMonth + departureDay;

  if(departureDate <= arrivalDate)
  {
    alert("Departure date cannot be empty, the same, or before your arrival date. Please choose a valid Departure Date");
	return false;
  }
  else
    return true;
}

