// Validate input for contact form
  function EMKvalidateContact1(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","N") ;
    if (t_or_f) t_or_f = vt(formnum,"EMphone","Y","telephone") ;
    if (t_or_f) t_or_f = vd(formnum,"EMcountry","default","Country") ;
    if (t_or_f) t_or_f = vd(formnum,"EMsource","default","How did you hear about dedupeIT?") ;
   return t_or_f ;
  }
  
  // Validate input for support form
  function EMKvalidateSupport1(formnum) {
    var t_or_f = true ;
    if (t_or_f) t_or_f = ve(formnum,"EMemail","N") ;
    if (t_or_f) t_or_f = vl(formnum,"EMpassword",6,"Password") ;
   return t_or_f ;
  }
  

// Validate input for contact form (no message)
  function EMKvalidateContact2(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","N") ;
    if (t_or_f) t_or_f = vt(formnum,"EMphone","Y","telephone") ;
    if (t_or_f) t_or_f = vd(formnum,"EMcountry","default","Country") ;
    if (t_or_f) t_or_f = vd(formnum,"EMsource","default","How did you hear about dedupeIT?") ;
   return t_or_f ;
  }

// Validate all input for link request form
  function EMKvalidateLink1(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 our website") ;
    return t_or_f ;
  }

// for forms that do not require validating
function EMKnocheck(n){
	return true
}

// 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 telephone/fax number
function vt(formnum,fieldname,needed,inputtext) {
  var minlength = 9 ;
  var valid = true ;
  var vble = eval("document.forms[formnum]."+fieldname+".value")
  if (needed.toUpperCase() == "N" && vble == "") return true ;  // Allow blank telephone/fax number
  if (vble.length < minlength) {

    valid=false ;
    window.alert(inputtext+" number must be at least "+minlength+" characters long") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  if (vble.charAt(0) != "0" && vble.charAt(0) != "+") {
    valid=false ;
    window.alert(inputtext+" number must begin with a '0' (zero) or '+' (plus)") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  return true ;
}

// Validate e-mail address
function ve(formnum,fieldname,needed) {
  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<="9z") || (email>="a" && email<="zz")) {
    val = 0
  }
  else {
    window.alert("Invalid email address : must begin with a letter or number") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  if (email.indexOf("@")<0) {
    window.alert("Invalid email address : must contain a '@' within your email address") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  else {
    e1 = email.indexOf("@") ;
    if (email.indexOf("@",e1+1) > 0 ) {
      window.alert("Invalid email address : must only contain one '@' within your email address") ;
      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 your email address") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  if (email.indexOf(".")<0) {
    window.alert("Must contain a '.' within your email address") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()") ;
    return false ;
  }
  if ((email.indexOf(".")>=0 && email.indexOf(".")<1) || email.lastIndexOf(".")>email.length-3) {
    window.alert("Invalid position for '.' within  your email address") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
    return false ;
  }
  if (email.indexOf("@") > email.lastIndexOf(".")) {
    window.alert("Must contain a '.' after the '@' in  your email address") ;
    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 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 ;
}

// 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,defaultval,inputtext) {
  var valid = true ;
  var vble  = eval("document.forms[formnum]."+fieldname+".value")
//window.alert("Value is >"+vble+"<") ;
  if (vble == defaultval) {
    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 ;
}

// 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 ;
}

// Validate and format postcode
function vp(formnum,fieldname,needed,inputtext) {
  var valid = true ;

  var pcode = eval("document.forms[formnum]."+fieldname+".value")
  pcode = blankout(pcode) ;
  pcode = pcode.toUpperCase() ;
  if (needed.toUpperCase() == "N" && pcode == "") return true ;  // Allow blank postcode
  if (pcode.length<5) {
    window.alert("INVALID POSTCODE : must be at least 5 digits long") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
    return false ;
  }
  if (pcode<"A" || pcode>"Z") {
    window.alert("INVALID POSTCODE : must begin with a letter") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
    return false ;
  }
  var strg1 = pcode.charAt(pcode.length-3) ;
  if (strg1<"0" || strg1>"9") {
    window.alert("INVALID POSTCODE : third character from the end is >"+strg1+"< : must be a number") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
    return false ;
  }
  var strg2 = pcode.charAt(pcode.length-2) ;
  var strg3 = pcode.charAt(pcode.length-1) ;
  if (strg2<"A" || strg2>"Z" || strg3<"A" || strg3>"Z") {
    window.alert("INVALID POSTCODE : must end with two letters") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
    return false ;
  }
  if (pcode.length<5) {
    window.alert("INVALID POSTCODE : must be more than 4 characters long") ;
    val = eval("document.forms[formnum]."+fieldname+".focus()")
    return false ;
  }
  pcode = pcode.substring(0,pcode.length-3) + " " + pcode.substring(pcode.length-3,pcode.length) ;
  var resetpcode = eval("document.forms[formnum]."+fieldname+".value=pcode")
//  document.contact01.pcode.value = pcode ;
//  window.alert("Post Code is ("+pcode+")") ;
  return true ;
}

