var err;

function checkForm(formid)
{
  err = true;

  if (formid.name == 'gedcform')
  {
    if (formid.enquiry.value.length < 1)
    {
      error('You haven\'t made any comment.');
      formid.enquiry.focus();
      formid.enquiry.select();
    }
    else if ((formid.resolution[0].checked == true) || (formid.reply[0].checked == true) || (formid.survey[0].checked == true))
    {
      if (formid.contactname.value.length < 1)
      {
        error('You haven\'t provided a contact name.');
        formid.contactname.focus();
        formid.contactname.select();
      }
      else if ((formid.email_address.value.length < 1) && (formid.phone_number.value.length < 1))
      {
        error('You haven\'t provided any contact details.');
        formid.email_address.focus();
        formid.email_address.select();
      }
    }

    if (err)
    {
/*
      if (formid.email_address.value.length < 5)
      {
        error('The email address you have entered is not a valid email address.');
        formid.email_address.focus();
        formid.email_address.select();
      }
      else 
*/
      if (formid.email_address.value.length > 3)
      {
        if ((formid.email_address.value.indexOf('@') == -1) || (formid.email_address.value.indexOf('.') == -1))
        {
          error('The email address you have entered is not a valid email address.');
          formid.email_address.focus();
          formid.email_address.select();
        }
        else if (stringcontains(formid.email_address.value,'()[]<>;:," ') == true)
        {
          error('The email address you have entered is not a valid email address.');
          formid.email_address.focus();
          formid.email_address.select();
        }
      }
    }
  }
  else if (formid.name == 'mailinglist')
  {
    if (formid.contactname.value.length < 1)
    {
      error('You haven\'t provided a contact name.');
      formid.contactname.focus();
      formid.contactname.select();
    }
    else if (formid.email_address.value.length < 1)
    {
      error('You haven\'t provided an email address.');
      formid.email_address.focus();
      formid.email_address.select();
    }

    if (err && (formid.email_address.value.length > 0))
    {
      if (formid.email_address.value.length < 5)
      {
        error('The email address you have entered is not a valid email address.');
        formid.email_address.focus();
        formid.email_address.select();
      }
      else if ((formid.email_address.value.indexOf('@') == -1) || (formid.email_address.value.indexOf('.') == -1))
      {
        error('The email address you have entered is not a valid email address.');
        formid.email_address.focus();
        formid.email_address.select();
      }
      else if (stringcontains(formid.email_address.value,'()[]<>;:," ') == true)
      {
        error('The email address you have entered is not a valid email address.');
        formid.email_address.focus();
        formid.email_address.select();
      }
    }
  }
  else if (formid.name == 'gerdsform')
  {
    if (formid.enquiry.value.length < 1)
    {
      error('You haven\'t made any comment.');
      formid.enquiry.focus();
      formid.enquiry.select();
    }
    else if (formid.contactname.value.length < 1)
    {
      error('You haven\'t provided a contact name.');
      formid.contactname.focus();
      formid.contactname.select();
    }
    else if (formid.organisation.value.length < 1)
    {
      error('You haven\'t stated which organisation you represent.');
      formid.organisation.focus();
      formid.organisation.select();
    }
    else if ((formid.email_address.value.length < 1) && (formid.phone_number.value.length < 1))
    {
      error('You haven\'t provided any contact details.');
      formid.email_address.focus();
      formid.email_address.select();
    }

    if (err)
    {
      if (formid.email_address.value.length < 5)
      {
        error('The email address you have entered is not a valid email address.');
        formid.email_address.focus();
        formid.email_address.select();
      }
      else if ((formid.email_address.value.indexOf('@') == -1) || (formid.email_address.value.indexOf('.') == -1))
      {
        error('The email address you have entered is not a valid email address.');
        formid.email_address.focus();
        formid.email_address.select();
      }
      else if (stringcontains(formid.email_address.value,'()[]<>;:," ') == true)
      {
        error('The email address you have entered is not a valid email address.');
        formid.email_address.focus();
        formid.email_address.select();
      }
    }
  }

  if (err)
  {
    err = window.confirm('Are you sure you have entered everything correctly?');
  }

  return err;
}

function stringcontains(haystack,needles)
{
  var result;
  result = false;

  for (i=0;i<needles.length;i++)
  {
    if (haystack.indexOf(needles.charAt(i))>0)
    {
      result = true;
    }
  }

  return result;
}

function error(txt)
{
  err = false;
  window.alert(txt);
}
