function validateString(field, msg, min, max) {
if (!min) { min = 1 }
if (!max) { max = 65535 }

if (!field.value || field.value.length < min || field.value.length > max) {
alert(msg);
field.focus();
field.select();
return false;
}
return true;
}

function ETest(email, required) {
	if (required) {
		alert("Required");
	}
	else {alert("bugger");}
}

function isValidEmail(email, required) {
   

    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==undefined) {
        if (required) {
        	alert("Your Email address is required");
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
        	alert("Your Email address is required");
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
    	alert("Email Address Not Valid");
        return false;
    }

    if (email.indexOf("@") < 1) { 
    	alert("Email Address Not Valid");
        return false;
    } 

    else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
    	alert("Email Address Not Valid");
        return false;
    } 
    
    else if (email.indexOf("@") == email.length) {  // @ must not be the last character
    	alert("Email Address Not Valid");
        return false;
    } 
    
    else if (email.indexOf("..") >=0) { // two periods in a row is not valid
    alert("Email Address Not Valid");
	return false;
    } 
    
    else if (email.indexOf(".") == email.length) {  // . must not be the last character
    alert("Email Address Not Valid");
	return false;
    }
    
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

