addLoadListener(init);

function init()
{
  document.forms[0].onsubmit = validateFields;

  var daytrips = document.getElementById("daytrips");
  daytrips.className = "hidden";

  var privatetouring = document.getElementById("privatetouring");
  privatetouring.className = "hidden";

  var extesc = document.getElementById("extesc");
  extesc.className = "hidden";

  var tripplanning = document.getElementById("tripplanning");
  tripplanning.className = "hidden";

  var airporttransfer = document.getElementById("airporttransfer");
  airporttransfer.className = "hidden";

  var unhide_daytrips = document.getElementById("unhide_daytrips");
  unhide_daytrips.onclick = showOptionaldaytrips;

  var unhide_privatetouring = document.getElementById("unhide_privatetouring");
  unhide_privatetouring.onclick = showOptionalprivatetouring;

  var unhide_extesc = document.getElementById("unhide_extesc");
  unhide_extesc.onclick = showOptionalextesc;

  var unhide_tripplanning = document.getElementById("unhide_tripplanning");
  unhide_tripplanning.onclick = showOptionaltripplanning;

  var unhide_airporttransfer = document.getElementById("unhide_airporttransfer");
  unhide_airporttransfer.onclick = showOptionalairporttransfer;

  var hide_daytrips = document.getElementById("hide_daytrips");
  hide_daytrips.onclick = hideOptionaldaytrips;
  
  var hide_privatetouring = document.getElementById("hide_privatetouring");
  hide_privatetouring.onclick = hideOptionalprivatetouring;
  
  var hide_extesc = document.getElementById("hide_extesc");
  hide_extesc.onclick = hideOptionalextesc;
  
  var hide_tripplanning = document.getElementById("hide_tripplanning");
  hide_tripplanning.onclick = hideOptionaltripplanning;
  
  var hide_airporttransfer = document.getElementById("hide_airporttransfer");
  hide_airporttransfer.onclick = hideOptionalairporttransfer;
  
  return true;
}

function showOptionaldaytrips()
{
  var daytrips = document.getElementById("daytrips");
  daytrips.className = "";

  return true;
}

function showOptionalprivatetouring()
{
  var privatetouring = document.getElementById("privatetouring");
  privatetouring.className = "";

  return true;
}

function showOptionalextesc()
{
  var extesc = document.getElementById("extesc");
  extesc.className = "";

  return true;
}

function showOptionaltripplanning()
{
  var tripplanning = document.getElementById("tripplanning");
  tripplanning.className = "";

  return true;
}

function showOptionalairporttransfer()
{
  var airporttransfer = document.getElementById("airporttransfer");
  airporttransfer.className = "";

  return true;
}

function hideOptionaldaytrips()
{
  var daytrips = document.getElementById("daytrips");
  daytrips.className = "hidden";

  return true;
}

function hideOptionalprivatetouring()
{
  var privatetouring = document.getElementById("privatetouring");
  privatetouring.className = "hidden";

  return true;
}

function hideOptionalextesc()
{
  var extesc = document.getElementById("extesc");
  extesc.className = "hidden";

  return true;
}

function hideOptionaltripplanning()
{
  var tripplanning = document.getElementById("tripplanning");
  tripplanning.className = "hidden";

  return true;
}

function hideOptionalairporttransfer()
{
  var airporttransfer = document.getElementById("airporttransfer");
  airporttransfer.className = "hidden";

  return true;
}

function validateFields()
{
  var elements = document.forms["BookingForm"].elements;
  var emailPattern = /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/;

  for (var i = 0; i < elements.length; i++)
  {
    if (/(^| )checkRequired error( |$)/.test(elements[i].className) && elements[i].value != "")
    {
	elements[i].className = "checkRequired";
    }

	if (/(^| )checkRequired( |$)/.test(elements[i].className) && elements[i].value == "")
    {
	elements[i].className = "checkRequired error";
	elements[i].focus();
	alert("You forgot to fill out this field.");
	return false;
    }

    if (/(^| )checkEmail( |$)/.test(elements[i].className) && !emailPattern.test(elements[i].value))
    {
	elements[i].className = "checkRequired checkEmail error";
	elements[i].focus();
	alert("Please fill in a valid email address.");
	return false;
    }
  }

  var res_termsconditionsGroup = document.forms["BookingForm"]["res_termsconditions"];
  for (var i = 0; i < res_termsconditionsGroup.length; i++)
  {
    if (res_termsconditionsGroup[i].checked == true && res_termsconditionsGroup[i].value == "NO")
    {
      alert("Please check the field that you've read our 'Terms and conditions of service'");
	  return false;
    }
  }

return true;
}

function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
      window.onload = fn;
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}
