// Modified validate to strip hints


function Validate(id,confirmemail) {

  var f=document.getElementById(id);
  var Errors=new Array();

  for (var i=0; i<f.length; i++) {
    if(f.elements[i].getAttribute('hint')) {
      if(f.elements[i].value==f.elements[i].getAttribute('hint')) {
        f.elements[i].value='';
      }
    }
    if (f.elements[i].getAttribute('validate')) {
      var Name=f.elements[i].name;
      var Value=f.elements[i].value;
      var Title=f.elements[i].title;
      var Req=f.elements[i].getAttribute('validate');
      if (Req=='required') {
        if (Value.length==0)
          Errors[Errors.length]=""+Title+".";
        else if ((Name=='contact_firstname' && Value=='First Name') || (Name=='contact_surname' && Value=='Surname'))
          Errors[Errors.length]=""+Title+".";
      }
      else if (Req=='email') {
        if (Value.indexOf('@')<1)
          Errors[Errors.length]=""+Title+".";
      }
      else if (Req=='required-checked') {
        if (!f.elements[i].checked)
          Errors[Errors.length]="The "+Title+" checkbox must be checked before proceeding.";
      }
    }
  }
  if(confirmemail && (document.getElementById('email').value != document.getElementById('email_confirm').value)) {
    Errors[Errors.length]="Please ensure both email address fields match";
  }
  if (Errors.length > 0) {
    var Intro='The following errors occurred while trying to submit the form. Please correct them and try again.';
    var Msg='';
    var FE=document.getElementById('FormErrors');
    if (FE) {
      Msg+='<p><strong>'+Intro+'</strong></p>\n<ul>\n';
      for (var i=0; i<Errors.length; i++)
        Msg+='<li>'+Errors[i]+'</li>\n';
      Msg+='</ul>\n';
      document.getElementById('FormErrors').style.display='block';
      document.getElementById('FormErrors').innerHTML=Msg;
      document.location.href="#FormErrors";
    }
    else {
      Msg+=Intro+'\n\n';
      for (var i=0; i<Errors.length; i++)
        Msg+=Errors[i]+'\n';
      alert(Msg);    
    }
    
    for (var i=0; i<f.length; i++) {
      if(f.elements[i].getAttribute('hint')) {
        if(f.elements[i].value=='') {
           f.elements[i].value=f.elements[i].getAttribute('hint');
        }
      }
    }
    
    //showHints();
    if(typeof(window.event)!='undefined')
      window.event.returnValue = false;
      
    return false;
  }
  else
  
  
    return true;
}


function checkDateOK(f,theDate,Errors) {

  // check theDate - if the "No Fixed Date has been set don't have to worry" 

  var fldDay   = document.getElementById(theDate + '_day');
  var fldMonth = document.getElementById(theDate + '_month');
  var fldYear  = document.getElementById(theDate + '_year');

  var fldNotFixed =  document.getElementById(theDate + '_not_fixed'); 

  var dtToday = new Date();
  var todayYear = dtToday.getFullYear();

  // only have to worry if the NO Fixed is NOT checked
  if (!fldNotFixed.checked) { 
    
    // if the NO FIXED is NOT CHECKED --  then we need to check values of date fields

    // if they only type 1 or two digit year then fix
    if (!isNaN(fldYear.value)) {
       if (fldYear.value.length == 1) { fldYear.value = '200' + fldYear.value;}
       if (fldYear.value.length == 2) { fldYear.value = '20'  + fldYear.value;}
       if (fldYear.value.length == 3) { fldYear.value = '2'   + fldYear.value;}
    } 

    if (!isNaN(fldDay.value)) {
      if (fldDay.value < 1)  {Errors[Errors.length]=  "day must be between 1 and 31";}
      if (fldDay.value > 31) {Errors[Errors.length]=  "day must be between 1 and 31";}
    }

    if (!isNaN(fldMonth.value)) {
      if (fldMonth.value < 1)  {Errors[Errors.length]=  "month must be between 1 and 12";}
      if (fldMonth.value > 12) {Errors[Errors.length]=  "month must be between 1 and 12";}
    }

    if (!isNaN(fldYear.value)) {
      if (fldYear.value < todayYear )  {Errors[Errors.length] =  "year must be " + todayYear + " or greater";}

    }


    // if one of the fields is not a number then all failed
    if (isNaN(fldDay.value) || isNaN(fldMonth.value) || isNaN(fldYear.value)) {

      var strDate = fldDay.value + '/' + fldMonth.value + '/' + fldYear.value
      Errors[Errors.length]=  strDate + " is not a valid " + theDate;

    }
 



  }

  return true;

}



