// Validate all input for main form
  function validate1(formnum) {
    var t_or_f = true ;
    if (t_or_f) t_or_f = vl(formnum,"EMname",4,"Your name") ;
    if (t_or_f) t_or_f = vl(formnum,"jobtitle",4,"Your job title") ;
    if (t_or_f) t_or_f = vl(formnum,"EMcompany",4,"Your company's name") ;
    if (t_or_f) t_or_f = ve(formnum,"EMemail","N","Your E-Mail Address") ;
    if (t_or_f) t_or_f = vl(formnum,"EMphone",9,"Your telephone number") ;
    if (t_or_f) t_or_f = vr(formnum,"subject",4,"the subject") ;
    if (t_or_f) t_or_f = vl(formnum,"message",10,"Your message") ;
    if (t_or_f) t_or_f = vd(formnum,"EMsource","default","How did you hear about our website") ;
    return t_or_f ;
  }

// Validate all input for user details
  function validate2(formnum) {
    var t_or_f = true ;
    if (t_or_f) t_or_f = vl(formnum,"EMname",4,"Your name") ;
    if (t_or_f) t_or_f = vl(formnum,"EMcompany",4,"Your company's name") ;
    if (t_or_f) t_or_f = ve(formnum,"EMemail","Y","Your E-Mail Address") ;
    if (t_or_f) t_or_f = vd(formnum,"EMsource","default","How did you hear about our website") ;
    return t_or_f ;
  }

// Validate all input for distributor form
  function validate4(formnum) {
    var t_or_f = true ;
    if (t_or_f) t_or_f = vl(formnum,"EMname",4,"Your name") ;
    if (t_or_f) t_or_f = vl(formnum,"jobtitle",4,"Your job title") ;
    if (t_or_f) t_or_f = vl(formnum,"EMcompany",4,"Your company's name") ;
    if (t_or_f) t_or_f = ve(formnum,"EMemail","Y","Your E-Mail Address") ;
    if (t_or_f) t_or_f = vl(formnum,"EMphone",9,"Your telephone number") ;
    if (t_or_f) t_or_f = vl(formnum,"message",10,"Your message") ;
    if (t_or_f) t_or_f = vd(formnum,"EMsource","default","How did you hear about our website") ;
    return t_or_f ;
  }

// validate link request form
function EMlinkRequest(formnum) {
    var t_or_f = true ;
    if (t_or_f) t_or_f = vl(formnum,"EMname",6,"Your name") ;
    if (t_or_f) t_or_f = vl(formnum,"EMcompany",3,"Your company name") ;
    if (t_or_f) t_or_f = ve(formnum,"EMemail","Y") ;
    if (t_or_f) t_or_f = vx(formnum,"siteURL","Y","website URL") ;
    if (t_or_f) t_or_f = vl(formnum,"siteURL",16,"Your website URL") ;
    if (t_or_f) t_or_f = vx(formnum,"linkURL","Y","link page URL") ;
    if (t_or_f) t_or_f = vl(formnum,"linkURL",16,"Your link page URL") ;
    if (t_or_f) t_or_f = vl(formnum,"title",3,"Your link title") ;
    if (t_or_f) t_or_f = vm(formnum,"title",50,"Your link title") ;
    if (t_or_f) t_or_f = vl(formnum,"description",10,"Your link description") ;
    if (t_or_f) t_or_f = vm(formnum,"description",200,"Your link description") ;
    if (t_or_f) t_or_f = vd(formnum,"EMsource","default","How did you hear about us")
    return t_or_f ;
}


// Remove all blanks from a string
function blankout(strname) {
  var i = 1 ;
  do {
    if (strname.charAt(i)==" " ) {
      strname = strname.substring(0,i) + strname.substring(i+1,strname.length) ;
      i-- ;
    }
    i++ ;
  }
  while (i<strname.length) ;
  return strname ;
}

// Validate e-mail address
function ve(formnum,fieldname,needed,inputtext) {
  var val 	= eval("document.forms[formnum]."+fieldname+".value")
  var newVal	= val.replace(/,/g,".")
  var val	= eval("document.forms[formnum]."+fieldname+".value='" + newVal +"'")
  var email = eval("document.forms[formnum]."+fieldname+".value")
  email = blankout(email) ;
  email = email.toLowerCase() ;
//window.alert("E-Mail is ("+email+")") ;
  if (needed.toUpperCase() == "N" && email == "") return true ;  // Allow blank e-mail address
  if ((email>="0" && email<="9") || (email>="a" && email<="z")) {
    val = 0
  }
  else {
    window.alert(inputtext+" must begin with a letter or number") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  if (email.indexOf("@")<0) {
    window.alert("Must contain a '@' within "+inputtext) ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  else {
    e1 = email.indexOf("@") ;
    if (email.indexOf("@",e1+1) > 0 ) {
      window.alert("Must only contain one '@' within "+inputtext) ;
      val = eval("document.forms[formnum]."+fieldname+".focus()") ;
      return false ;
    }
  }
  if ((email.indexOf("@")>=0 && email.indexOf("@")<2) || email.indexOf("@")>email.length-3) {
    window.alert("Invalid position for '@' within "+inputtext) ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  if (email.indexOf(".")<0) {
    window.alert("Must contain a '.' within "+inputtext) ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  if ((email.indexOf(".")>=0 && email.indexOf(".")<1) || email.indexOf(".")>email.length-3) {
    window.alert("Invalid position for '.' within "+inputtext) ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
    return false ;
  }
  if (email.indexOf("@") > email.lastIndexOf(".")) {
    window.alert("Must contain a '.' after the '@' in "+inputtext) ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
    return false ;
  }
  return true ;
}

// Ensure string has minimum length
function vl(formnum,fieldname,minlength,inputtext) {
  var valid = true ;
  var vble = eval("document.forms[formnum]."+fieldname+".value")
//window.alert("Value is >"+vble+"<   Length is >"+vble.length+"<") ;

  if (vble.length < minlength) {
    valid=false ;
    var char1 = (minlength == 1) ? " character" : " characters" ;
    window.alert(inputtext+" must be at least "+minlength+char1+" long") ;
  }
  if (!valid) val = eval("document.forms[formnum]."+fieldname+".focus()") ;
  return valid ;
}

// Ensure variable has minimum value
function vv(formnum,fieldname,minvalue,inputtext) {
  var valid = true ;
  var vble  = eval("document.forms[formnum]."+fieldname+".value")

//window.alert("Value is >"+vble+"<") ;
  if (vble < minvalue) {
    valid=false ;
    window.alert(inputtext+" must be at least "+minvalue) ;
  }
  if (!valid) val = eval("document.forms[formnum]."+fieldname+".focus()") ;
  return valid ;
}

// Validate drop-down list
function vd(formnum,fieldname,minvalue,inputtext) {
  var valid = true ;
  var vble  = eval("document.forms[formnum]."+fieldname+".value")
//window.alert("Value is >"+vble+"<") ;
  if (vble == "default") {
    valid=false ;
    window.alert("Please choose an option from the "+inputtext+" list") ;
  }
  return valid ;
}
  
// Validate radio buttons
function vr(formnum,fieldname,buttons,inputtext) {
  var check = false ;
//window.alert("Validating buttons") ;
  for (var i=0 ; i<buttons ; i++) {
    var vble  = eval("document.forms[formnum]."+fieldname+"["+i+"].checked") ;
    if (vble) check = true ;
//window.alert("Value is >"+vble+"<") ;
  }
  if (!check) window.alert("Please check one of the "+inputtext+" buttons") ;
  valid=check
  return valid ;
}

// Validate checkboxes
function vc(formnum,fieldname,totboxes,minboxes,maxboxes,inputtext) {
  var check = 0 ;
//window.alert("Validating boxes") ;
  for (var i=0 ; i<totboxes ; i++) {
    var vble  = eval("document.forms[formnum]."+fieldname+"["+i+"].checked") ;
    if (vble) check++ ;
//window.alert("Value is >"+vble+"<") ;
  }
  if (check<minboxes) window.alert("Please check at least "+minboxes+" of the "+inputtext+" boxes") ;
  if (check>maxboxes) window.alert("Please check no more than "+maxboxes+" of the "+inputtext+" boxes") ;
  valid = (check<minboxes || check>maxboxes) ? false : true ;
  return valid ;
}

function vDate(formnum,fieldname,inputtext){
	var DateValue = eval("document.forms["+formnum+"]."+fieldname+".value")
	var inputDate = DateValue
	var checkstr = "0123456789";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	   err = 0;
	   //DateValue = DateField.value;
	   /* Delete all chars except 0..9 */
	   for (i = 0; i < DateValue.length; i++) {
		  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
		     DateTemp = DateTemp + DateValue.substr(i,1);
		  }
	   }
	   DateValue = DateTemp;
	   /* Always change date to 8 digits - string*/
	   /* if year is entered as 2-digit / always assume 20xx */
	   if (DateValue.length == 6) {
	      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
	   if (DateValue.length != 8) {
	      err = 19;}
	   /* year is wrong if year = 0000 */
	   year = DateValue.substr(4,4);
	   if (year == 0) {
	      err = 20;
	   }
	   /* Validation of month*/
	   month = DateValue.substr(2,2);
	   if ((month < 1) || (month > 12)) {
	      err = 21;
	   }
	   /* Validation of day*/
	   day = DateValue.substr(0,2);
	   if (day < 1) {
	     err = 22;
	   }
	   /* Validation leap-year / february / day */
	   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
	      leap = 1;
	   }
	   if ((month == 2) && (leap == 1) && (day > 29)) {
	      err = 23;
	   }
	   if ((month == 2) && (leap != 1) && (day > 28)) {
	      err = 24;
	   }
	   /* Validation of other months */
	   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
	      err = 25;
	   }
	   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
	      err = 26;
	   }
	   /* if 00 ist entered, no error, deleting the entry */
	   if ((day == 0) && (month == 0) && (year == 00)) {
	      err = 99; day = ""; month = ""; year = ""; seperator = "";
	   }
	   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	   if (err == 0) {
		return true;
	   }
	   /* Error-message if err != 0 */
		   else {
		      alert("The " + inputtext + " date is incorrect\nFormat must be dd/mm/yy or dd/mm/yyyy");
	     	return false;
	   }
}

// Confirm Web Site address begins with 'www.' or 'http://www.'
function vx(formnum,fieldname,needed,inputtext) {
  var valid = true ;

  var vble = eval("document.forms[formnum]."+fieldname+".value")
  vble = blankout(vble) ;
  vble = vble.toLowerCase() ;
  if (needed.toUpperCase() == "N" && vble == "") return true ;  // Allow blank web site address

  var valid = (vble.substring(0,4)  == "www.") ? true : false ;
  var valid = (vble.substring(0,11) == "http://www.") ? true : valid ;
  if (!valid) {
    window.alert("please enter a valid "+inputtext) ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
  }
  return valid ;
}

// Ensure string does not exceed maximum length
function vm(formnum,fieldname,maxlength,inputtext) {
  var valid = true ;
  var vble = eval("document.forms[formnum]."+fieldname+".value")
//window.alert("Value is >"+vble+"<   Length is >"+vble.length+"<") ;

  if (vble.length > maxlength) {
    valid=false ;
    var char1 = (maxlength == 1) ? " character" : " characters" ;
    window.alert(inputtext+" must be at no more than "+maxlength+char1+" long") ;
  }
  if (!valid) val = eval("document.forms[formnum]."+fieldname+".focus()") ;
  return valid ;
}
