

function validate() 
{
    document.getElementById('lblError').innerHTML = '';
    document.getElementById('lblError').disabled = false; 
    if (document.getElementById('cboHomePort').options[document.getElementById('cboHomePort').selectedIndex].text == "Select") 
    {
        document.getElementById('lblError').innerHTML = 'Please select an outward journey port.';
        document.getElementById('cboHomePort').focus();
        return false;
    }
    if (document.getElementById('_eo_dtDepartDate_h').value == '0001-01-01' || document.getElementById('_eo_dtDepartDate_h').value == '') 
    {
        document.getElementById('lblError').innerHTML = 'Please select an outward journey departure date.';
        document.getElementById('dtDepartDate').focus();
        return false;
    }
    if (document.getElementById('cboHomeDepTime').options[document.getElementById('cboHomeDepTime').selectedIndex].text == "Select") 
    {
        document.getElementById('lblError').innerHTML = 'Please select an outward journey departure time.';
        document.getElementById('cboHomeDepTime').focus();
        return false;
    }
    if (parseInt(document.getElementById('cboAdults').value) 
        + parseInt(document.getElementById('cboStudents').value)
        + parseInt(document.getElementById('cboChildren').value)
        + parseInt(document.getElementById('cboInfants').value)
        + parseInt(document.getElementById('cboDogs').value) < 1)
    {
        document.getElementById('lblError').innerHTML = 'At least one Adult, Student or Child must travel.';
        document.getElementById('cboAdults').focus();
        return false;
    }

    if ((parseInt(document.getElementById('cboAdults').value) 
        + parseInt(document.getElementById('cboStudents').value)
        + parseInt(document.getElementById('cboChildren').value)
        + parseInt(document.getElementById('cboInfants').value)
        + parseInt(document.getElementById('cboDogs').value)) > 20) {
        document.getElementById('lblError').innerHTML = 'A maximum of 20 passengers can be booked online, please call <br />01481 724059 or email <a href=\"mailto:bookings@sarkshippingcompany.com\">bookings@sarkshippingcompany.com</a><br /> to make your booking.';
        document.getElementById('cboAdults').focus();
        return false;
    }
    if (document.getElementById('cboInfants').value > 0) 
    {
       if (parseInt(document.getElementById('cboAdults').value) +
           parseInt(document.getElementById('cboStudents').value) < 1) 
         {
           document.getElementById('lblError').innerHTML = 'Infants must be accompanied by an adult or student.';
           document.getElementById('cboAdults').focus();
           return false;
         }
    }
    if (document.getElementById('cboDogs').value > 0) {
         if (parseInt(document.getElementById('cboAdults').value) +
             parseInt(document.getElementById('cboStudents').value) < 1) {
             document.getElementById('lblError').innerHTML = 'Dogs must be accompanied by an adult or student.';
             document.getElementById('cboAdults').focus();
             return false;
         }
    }
    if (parseInt(document.getElementById('cboAdults').value)
        + parseInt(document.getElementById('cboStudents').value)
        + parseInt(document.getElementById('cboChildren').value) < 1) {
        document.getElementById('lblError').innerHTML = 'At least one Adult, Student or Child must travel.'
        document.getElementById('cboAdults').focus();
    }



    if (document.getElementById('optReturn').checked == true) 
    {
       if (document.getElementById('cboReturnPort').options[document.getElementById('cboReturnPort').selectedIndex].text == "Select") 
        {
           document.getElementById('lblError').innerHTML = 'Please select a return journey port.';
           document.getElementById('cboReturnPort').focus();
           return false;
        }
        if (document.getElementById('_eo_dtReturnDate_h').value == '0001-01-01' || document.getElementById('_eo_dtReturnDate_h').value == '') 
        {
            document.getElementById('lblError').innerHTML = 'Please select a return journey date.';
            document.getElementById('dtReturnDate').focus();
            return false;
        }
        if (document.getElementById('cboReturnTime').options[document.getElementById('cboReturnTime').selectedIndex].text == "Select") {
            document.getElementById('lblError').innerHTML = 'Please select a return journey time.';
            document.getElementById('cboReturnTime').focus();
            return false;
        }

        if (parseInt(document.getElementById('cboAdultsrtn').value)
        + parseInt(document.getElementById('cboStudentsrtn').value)
        + parseInt(document.getElementById('cboChildrenrtn').value)
        + parseInt(document.getElementById('cboInfantsrtn').value)
        + parseInt(document.getElementById('cboDogsrtn').value) < 1) {
            document.getElementById('lblError').innerHTML = 'At least one Adult, Student or Child must travel (return).';
            document.getElementById('cboAdultsrtn').focus();
            return false;
        }

        if ((parseInt(document.getElementById('cboAdultsrtn').value)
        + parseInt(document.getElementById('cboStudentsrtn').value)
        + parseInt(document.getElementById('cboChildrenrtn').value)
        + parseInt(document.getElementById('cboInfantsrtn').value)
        + parseInt(document.getElementById('cboDogsrtn').value)) > 20) {
            document.getElementById('lblError').innerHTML = 'A maximum of 20 passengers can be booked online, please call <br />01481 724059 or email <a href=\"mailto:bookings@sarkshippingcompany.com\">bookings@sarkshippingcompany.com</a><br /> to make your booking.';
            document.getElementById('cboAdultsrtn').focus();
            return false;
        }
        if (document.getElementById('cboInfantsrtn').value > 0) {
            if (parseInt(document.getElementById('cboAdultsrtn').value) +
                parseInt(document.getElementById('cboStudentsrtn').value) < 1) {
                document.getElementById('lblError').innerHTML = 'Infants must be accompanied by an adult or student.';
                document.getElementById('cboAdultsrtn').focus();
                return false;
            }
        }
        if (document.getElementById('cboDogsrtn').value > 0) {
            if (parseInt(document.getElementById('cboAdultsrtn').value) +
                parseInt(document.getElementById('cboStudentsrtn').value) < 1) {
                document.getElementById('lblError').innerHTML = 'Dogs must be accompanied by an adult or student.';
                document.getElementById('cboAdultsrtn').focus();
                return false;
            }
        }
        if (parseInt(document.getElementById('cboAdultsrtn').value)
          + parseInt(document.getElementById('cboStudentsrtn').value)
          + parseInt(document.getElementById('cboChildrenrtn').value) < 1) {
            document.getElementById('lblError').innerHTML = 'At least one Adult, Student or Child must travel (Return).'
            document.getElementById('cboAdultsrtn').focus();
        }
               
       var Dep = eo_GetObject('dtDepartDate').getSelectedDate();
       var Ret = eo_GetObject('dtReturnDate').getSelectedDate();
       var DepTime = document.getElementById('cboHomeDepTime').options[document.getElementById('cboHomeDepTime').selectedIndex].text
       var DepTimeArr = DepTime.split(":");
       var RetTime = document.getElementById('cboReturnTime').options[document.getElementById('cboReturnTime').selectedIndex].text
       var RetTimeArr = RetTime.split(":");
       var DepDate = new Date(Dep.getFullYear(), Dep.getMonth(), Dep.getDate()).setHours(DepTimeArr[0], DepTimeArr[1]);
       var RetDate = new Date(Ret.getFullYear(), Ret.getMonth(), Ret.getDate()).setHours(RetTimeArr[0], RetTimeArr[1]);
       if (DepDate >= RetDate) 
       {
           document.getElementById('lblError').innerHTML = 'The return journey must be after the outward journey';
           document.getElementById('cboHomeDepTime').focus();
           return false;
       }   
    }

    return true;
}


function cboHomePort_Change() 
{
   document.getElementById('lblError').innerHTML = '';
   SetReturnPort();
   GetOutboundTimes();
}


function GetOutboundTimes() 
{
   document.getElementById('lblError').innerHTML = '';
   var xDate;
   var displayDate;
   if (eo_GetObject('dtDepartDate').getSelectedDate() == undefined)
   {
       xDate = "";
       displayDate = "      /      /      ";
   }
   else
   {
      var Dep = eo_GetObject('dtDepartDate').getSelectedDate()
      xDate = Dep.getFullYear() + '-' + (Dep.getMonth()+1) + '-' + Dep.getDate();
      displayDate = Dep.getDate() + ' / ' + (Dep.getMonth() + 1) + ' / ' + Dep.getFullYear() + '  ';
   }
   if(xDate == undefined)
   {
      xDate = "";
      displayDate = "      /      /      ";
   }
   var con = document.getElementById('cboHomePort');
   document.getElementById('Iframe1').src='Default_Loader.aspx?ACTION=GetOutboundTimes&FROM=' + con.value + '&Date=' + xDate;
   document.getElementById('dtDepartDate_Display').value = displayDate;
}

function GetReturnTimes() 
{

   if (document.getElementById('optReturn').checked == false) {
       document.getElementById('dtReturnDate_Display').value = "      /      /      ";
       return;
   }

   document.getElementById('lblError').innerHTML = '';
   var xDate;
   var displayDate;
   if (eo_GetObject('dtReturnDate').getSelectedDate() == undefined)
   {
       xDate = "";
       displayDate = "      /      /      ";
   }
   else
   {
      var Ret = eo_GetObject('dtReturnDate').getSelectedDate()
      xDate = Ret.getFullYear() + '-' + (Ret.getMonth() + 1) + '-' + Ret.getDate();
      displayDate = Ret.getDate() + ' / ' + (Ret.getMonth()+1) + ' / ' +  Ret.getFullYear() + '  ';
   }
   if(xDate == undefined)
   {
      xDate = "";
      displayDate = "      /      /      ";
   }
   var con = document.getElementById('cboReturnPort');
   document.getElementById('Iframe1').src='Default_Loader.aspx?ACTION=GetReturnTimes&FROM=' + con.value + '&Date=' + xDate;
   document.getElementById('dtReturnDate_Display').value = displayDate;
}




function optReturn_Click()
{
   document.getElementById('cboAdultsrtn').value = document.getElementById('cboAdults').value;
   document.getElementById('cboStudentsrtn').value = document.getElementById('cboStudents').value;
   document.getElementById('cboChildrenrtn').value = document.getElementById('cboChildren').value;
   document.getElementById('cboInfantsrtn').value = document.getElementById('cboInfants').value;
   document.getElementById('cboDogsrtn').value = document.getElementById('cboDogs').value;
   document.getElementById('cboReturnPort').disabled = false;
   document.getElementById('cboReturnTime').disabled = false;
   document.getElementById('cboAdultsrtn').disabled = false;
   document.getElementById('cboStudentsrtn').disabled = false;
   document.getElementById('cboChildrenrtn').disabled = false
   document.getElementById('cboInfantsrtn').disabled = false;
   document.getElementById('cboDogsrtn').disabled = false;
   document.getElementById('dtReturnDate_Display').disabled = false;
   document.getElementById('dtReturnDate_Display').value = "      /      /      ";
   SetReturnPort();
   validate();
}


function optSingle_Click() 
{
   document.getElementById('cboReturnPort').selectedIndex = 0;
   document.getElementById('cboReturnPort').value = "";
   document.getElementById('cboReturnTime').value = "";
   document.getElementById('cboAdultsrtn').value = 0;
   document.getElementById('cboStudentsrtn').value = 0;
   document.getElementById('cboChildrenrtn').value = 0;
   document.getElementById('cboInfantsrtn').value = 0;
   document.getElementById('cboDogsrtn').value = 0;
   document.getElementById('cboReturnPort').disabled = true;
   document.getElementById('cboReturnTime').disabled = true;
   document.getElementById('cboAdultsrtn').disabled = true;
   document.getElementById('cboStudentsrtn').disabled = true;
   document.getElementById('cboChildrenrtn').disabled = true
   document.getElementById('cboInfantsrtn').disabled = true;
   document.getElementById('cboDogsrtn').disabled = true;
   document.getElementById('dtReturnDate_Display').value = "      /      /      ";
   document.getElementById('dtReturnDate_Display').disabled = true;
   document.getElementById('lblNoReturnSailings').innerHTML = '';
   validate();
}



function cboReturnPort_Change()
{
  if (document.getElementById('cboReturnPort').value == document.getElementById('cboHomePort').value)
  {
     alert('The return port can not be the same as the departure port.');
     document.getElementById('cboReturnPort').value = '';
    return;
  }
  if (document.getElementById('cboReturnPort') != 'Select')
  {
     GetReturnTimes();
  }
}


function SetReturnPort()
{
  if (document.getElementById('optReturn').checked == true) 
  {   
     document.getElementById('cboReturnPort').disabled = false;
     if (document.getElementById('cboHomePort').value == 'Guernsey')
     {
        document.getElementById('cboReturnPort').value = 'Sark';
     }
     if (document.getElementById('cboHomePort').value == 'Sark')
     {
        document.getElementById('cboReturnPort').value = 'Guernsey';
     }
     if (document.getElementById('cboHomePort').value == 'Select')
     {
        document.getElementById('cboReturnPort').value = '';
     }
  }
}

function cboHomeDepTime_Change() {

  if (document.getElementById('cboHomeDepTime').options[document.getElementById('cboHomeDepTime').selectedIndex].text == "Select") 
  {
     document.getElementById('lblError').innerHTML = 'You must select an outgoing departure time.';
     document.getElementById('cboHomeDepTime').focus();
  }
  else 
  {
      document.getElementById('lblError').innerHTML = '';
      document.getElementById('cboAdults').focus();
  }     
  document.getElementById('hid_HomeDepTime_Text').value = document.getElementById('cboHomeDepTime').options[document.getElementById('cboHomeDepTime').selectedIndex].text;
  document.getElementById('hid_HomeDepTime_Value').value = document.getElementById('cboHomeDepTime').options[document.getElementById('cboHomeDepTime').selectedIndex].value;
}

function cboReturnTime_Change() {
    document.getElementById('hid_ReturnTime_Text').value = document.getElementById('cboReturnTime').options[document.getElementById('cboReturnTime').selectedIndex].text;
    document.getElementById('hid_ReturnTime_Value').value = document.getElementById('cboReturnTime').options[document.getElementById('cboReturnTime').selectedIndex].value;
    if (document.getElementById('cboReturnTime').options[document.getElementById('cboReturnTime').selectedIndex].text == 'Select') {
        document.getElementById('lblError').innerHTML = 'Please select a return time.';
    }
    else {
        document.getElementById('lblError').innerHTML = '';
        document.getElementById('cboAdultsrtn').focus();
    }
}

function Single_To_Return(Caller) 
{
  if (document.getElementById('optReturn').checked == true)
  {
      document.getElementById(Caller.id + 'rtn').value = Caller.value;
  }
  validate();
}

