var SubmitCount=0;

function validateEnquiry(pType) {
  if (document.enquiry_form.FirstName.value.length==0) {
    alert("Please enter your first name");
    document.enquiry_form.FirstName.focus();
    return false;
  }
  if (document.enquiry_form.LastName.value.length==0) {
    alert('Please enter your last name');
    document.enquiry_form.LastName.focus();
    return false;
  }
  if (document.enquiry_form.Email.value.length==0) {
    alert('Please enter your email address');
    document.enquiry_form.Email.focus();
    return false;
  }
  //remove whitespace
  document.enquiry_form.Email.value = trim(document.enquiry_form.Email.value);
  if (!(validEmail(document.enquiry_form.Email.value))) { 
    alert('Please enter a valid email address');
    document.enquiry_form.Email.select();
    return false; 
  }
  if (!(checkEmailTypos(document.enquiry_form.Email.value))) { 
    document.enquiry_form.Email.select();
    return false; 
  }
  if (document.enquiry_form.Address.value.length>300) {
    alert('Address too long. Please reduce from ' + document.enquiry_form.Address.value.length + ' to 300 characters');
    document.enquiry_form.Address.focus();
    return false;
  }
  if (pType=='Enquiry') {
    if (document.enquiry_form.Address.value.length == 0 && document.enquiry_form.ContactMethod.value == 'p') {
      alert("Please enter your address");
      document.enquiry_form.Address.focus();
      return false;
    }
    if (document.enquiry_form.Postcode.value.length==0 && document.enquiry_form.PostcodeReqd.value=='1') {
      alert('Please enter your postcode.\nYour privacy is important to us! We will not be posting anything to you.\nWe only ask for it to help us track bookings internally.\nThanks for helping us!');
      document.enquiry_form.Postcode.focus();
      return false;
    }
    if (document.enquiry_form.Postcode.value.length == 0 && document.enquiry_form.ContactMethod.value == 'p') {
      alert('Please enter your postcode');
      document.enquiry_form.Postcode.focus();
      return false;
    }
    if (document.enquiry_form.Telephone.value.length==0 && document.enquiry_form.TelephoneReqd.value=='1') {
      alert('Please specify your telephone number including all dialing codes');
      document.enquiry_form.Telephone.focus();
      return false;
    }
    if (document.enquiry_form.Telephone.value.length == 0 && document.enquiry_form.ContactMethod.value == 't') {
      alert('Please enter your telephone number including all dialing codes');
      document.enquiry_form.Telephone.focus();
      return false;
    }
    if (document.enquiry_form.MembershipBasis.value=='3') {
      if (document.enquiry_form.FlightOption.value=='1' || document.enquiry_form.FlightOption.value=='3') {
        if (document.enquiry_form.DepartureAirport.value.length == 0) {
          alert('Please enter your departure airport(s)');
          document.enquiry_form.DepartureAirport.focus();
          return false;
        }
      }
      if (document.enquiry_form.Dates.value.length==0) {
        alert('Please specify the dates that you are interested in');
        document.enquiry_form.Dates.focus();
        return false;
      }
      if (document.enquiry_form.Duration.value.length==0) {
        alert('Please specify the number of nights required');
        document.enquiry_form.Duration.focus();
        return false;
      }
      if (document.enquiry_form.Adults.value.length==0) {
        alert('Please specify the number of adults in your party');
        document.enquiry_form.Adults.focus();
        return false;
      }
      if (document.enquiry_form.RoomType.value.length==0) {
        alert('Please specify your room type preference');
        document.enquiry_form.RoomType.focus();
        return false;
      }
      if (document.enquiry_form.BoardBasis.value.length==0) {
        alert('Please specify the board basis you require');
        document.enquiry_form.BoardBasis.focus();
        return false;
      }
      if (document.enquiry_form.Budget.value.length==0 && document.enquiry_form.BudgetReqd.value=='1') {
        alert('Please specify your budget');
        document.enquiry_form.Budget.focus();
        return false;
      }
      if (document.enquiry_form.Method.value=='HD') {
        alert('The confirmation email will NOT be sent to the traveller with this helpdesk enquiry');
        document.enquiry_form.ConfirmationEmail.value='no';
      }
    }
    else {
      if (document.enquiry_form.RoomType.value.length==0 && document.enquiry_form.RoomTypeReqd.value=='1') {
        alert('Please specify your room type preference');
        document.enquiry_form.RoomType.focus();
        return false;
      }
      if (document.enquiry_form.Dates.value.length==0 && document.enquiry_form.DatesReqd.value=='1') {
        alert('Please specify the dates that you are interested in');
        document.enquiry_form.Dates.focus();
        return false;
      }
      if (document.enquiry_form.Budget.value.length==0 && document.enquiry_form.BudgetReqd.value=='1') {
        alert('Please specify your budget');
        document.enquiry_form.Budget.focus();
        return false;
      }
      //if (document.enquiry_form.Method.value=='HD') {
      //  if (!window.confirm('Would you like to send the confirmation email to the traveller with this enquiry?')) {
      //    document.enquiry_form.ConfirmationEmail.value='no';
      //  }
      //}
    }
    if (document.enquiry_form.LeadCategory.value.length == 0) {
      alert('Please select your level of interest to help our partner manage enquiries efficiently');
      return false;
    }
    if (document.enquiry_form.chkVoucher.checked && document.enquiry_form.VoucherCode.value.length == 0) {
      alert('Please specify your voucher code');
      document.enquiry_form.VoucherCode.focus();
      return false;
    }
  }

  if (SubmitCount==0) {
    SubmitCount++; 
    return true;
  }
  else  {
    alert('Already submitted');
    return false;
  }
}

function checkCookie() {
  if(getCookieKeyValue('Enquiry','Email').length > 0) { 
    if (document.enquiry_form.Source.value != "basket") { document.enquiry_form.chkRemember.checked = true; }
    document.enquiry_form.Email.value = getCookieKeyValue('Enquiry','Email');
    document.enquiry_form.FirstName.value = getCookieKeyValue('Enquiry','FirstName');
    document.enquiry_form.LastName.value = getCookieKeyValue('Enquiry','LastName');
    document.enquiry_form.Telephone.value = getCookieKeyValue('Enquiry','Telephone');
    document.enquiry_form.Address.value = getCookieKeyValue('Enquiry','Address');
    document.enquiry_form.Postcode.value = getCookieKeyValue('Enquiry','Postcode');
  }
}

function setRequiredFields() {
  switch(document.enquiry_form.ContactMethod.value)  {
    case 'p':
      document.getElementById('lblTelephone').innerHTML = '(optional)';
      document.getElementById('lblAddress').innerHTML = '&nbsp;';
      document.getElementById('lblPostcode').innerHTML = '&nbsp;';
      break;
    case 't':
      document.getElementById('lblTelephone').innerHTML = '&nbsp;';
      document.getElementById('lblAddress').innerHTML = '(optional)';
      document.getElementById('lblPostcode').innerHTML = '(optional)';
      break;
    default:
      document.getElementById('lblTelephone').innerHTML = '(optional)';
      document.getElementById('lblAddress').innerHTML = '(optional)';
      document.getElementById('lblPostcode').innerHTML = '(optional)';
      break;
  }  
  if (document.enquiry_form.PostcodeReqd.value == '1') {
    document.getElementById('lblPostcode').innerHTML = '&nbsp;';
  }
}

function showAirport() {
  switch(document.enquiry_form.FlightOption.value)  {
    case '2':
      document.getElementById('divDepartureAirport').style.display = 'none';
      break;
    default:
      document.getElementById('divDepartureAirport').style.display = 'block';
      break;
  }  
}

function voucher() {
  if (document.enquiry_form.chkVoucher.checked) { 
    document.getElementById('VoucherCode').style.visibility = 'visible'; 
    document.getElementById('VoucherCode').focus(); 
  }
  else { 
    document.getElementById('VoucherCode').style.visibility = 'hidden'; 
  }
}

function getCookieKeyValue(pCollection,pKey) {
  //get cookie
  var vCookie = document.cookie;
  var vCookieArray = vCookie.split(';');
  var vCookieValue = '';
  for (var i=0; i<vCookieArray.length; i++) {
    if(vCookieArray[i].indexOf(pCollection + '=') > -1) {
      var vStart = vCookieArray[i].indexOf(pCollection + '=') + (pCollection + '=').length;
      var vCookieValue = vCookieArray[i].substring(vStart,vCookieArray[i].length);
    }  
  } 
  //get key value
  var vKeyArray = unescape(vCookieValue).split('&');
  var vKeyValue = '';
  for (var i=0; i<vKeyArray.length; i++) {
    if(vKeyArray[i].indexOf(pKey + '=') > -1) {
      var vStart = vKeyArray[i].indexOf(pKey + '=') + (pKey + '=').length;
      var vKeyValue = vKeyArray[i].substring(vStart,vKeyArray[i].length);
    }  
  } 
  return unescape(vKeyValue);
}

function addToBasket(vProductID, vMethod) {
  var vBasketStart;
  var vBasketEnd;
  var vBasket;
  var vDays = 365;
  var vDate = new Date();
  vDate.setTime(vDate.getTime()+(vDays*24*60*60*1000));
  var vExpires = "; expires="+vDate.toGMTString();
  var vPosition=0;
  var vProductCount=0;
  var vBasketSize=10;
  var vNavigate=0;
  vBasketStart=document.cookie.indexOf("Basket=");
  if (vBasketStart==-1)	{
    document.cookie="Basket=%2C" + vProductID + "%2C" + vExpires +"; path=/";
    vNavigate=1;
  }
  else {	
	  vBasketEnd=document.cookie.indexOf(";",vBasketStart)
	  if (vBasketEnd==-1) {
	    vBasketEnd=document.cookie.length
    }
    vBasket=document.cookie.substr(vBasketStart,vBasketEnd-vBasketStart)
    do {
      vProductCount +=1;
      vPosition =vBasket.indexOf("%2C", vPosition+4);
    }
    while(vPosition != -1)	
    if (vProductCount-2 == vBasketSize) {
	    window.alert("Your basket is full - " + vBasketSize + " holidays permitted");
    }
    else {
	    if (vBasket.indexOf("%2C" + vProductID + "%2C") == -1)	{
	      document.cookie=vBasket + vProductID + "%2C" + vExpires +"; path=/";
        vNavigate=1;
	    }
	    else { window.alert("This holiday is already in your basket!"); }
    }
  }
  if(vNavigate==1) {window.location="/basket/basket.asp?method=" + vMethod;}
}

function removeFromBasket(vProductID,vMethod) {
  if (window.confirm("Remove item from your basket - are you sure?")) { 
    var vBasketStart;
    var vBasketEnd;
    var vBasket;
    var vProductStart;
    var vDays = 365;
    var vDate = new Date();
    vDate.setTime(vDate.getTime()+(vDays*24*60*60*1000));
    var vExpires = "; expires="+vDate.toGMTString();

    vBasketStart=document.cookie.indexOf("Basket=");
    vBasketEnd=document.cookie.indexOf(";",vBasketStart)
    if (vBasketEnd==-1)	{
	    vBasketEnd=document.cookie.length
    }
    vBasket=document.cookie.substr(vBasketStart,vBasketEnd-vBasketStart)
    vProductStart=vBasket.indexOf("%2C" + vProductID + "%2C") 
    if (vProductStart!=-1) { 
      vBasket=vBasket.substr(0,vProductStart) + vBasket.substr(vProductStart+vProductID.length+3)
      document.cookie=vBasket + vExpires +"; path=/";
    }
    window.location="/basket/basket.asp?Method=" + vMethod;
  }
}

function removeAll() {
  if (window.confirm("Remove all items from your basket - are you sure?")) { 
    var vBasket;
    var vDays = 365;
    var vDate = new Date();
    vDate.setTime(vDate.getTime()+(vDays*24*60*60*1000));
    var vExpires = "; expires="+vDate.toGMTString();
    vBasket="Basket=";
    document.cookie=vBasket + vExpires +"; path=/";
    window.location="/basket/basket.asp";
  }
}

function copyEnquiry() {
  var vEnquiry=document.getElementById(document.enquiry_form.FirstEnquiryID.value).value;
  if (vEnquiry.length>0) {
    for(i=0; i<document.forms[0].elements.length; i++){
      if (document.forms[0].elements[i].type=='textarea') {
        if (document.forms[0].elements[i].name!='Address') { document.forms[0].elements[i].value=vEnquiry; }
      }
    }
  }
}
