function checkIll() {
	var illChar = /[~`^*]/;  
	var frm = document.form1
	for (counter=0; counter<frm.length; counter++){
		if ((illChar.test(frm.elements[counter].value))) {
			alert('You have some bad characters in your form.\nPlease do not use any of these characters:\n~`^*";\nPlease review before submitting and correct if needed.');
			return false;
		}
	}
}


function checkCR(evt) {
    var evt  = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if ((evt.keyCode == 13) && (node.type=="text")) {
		return false;
	}
}
document.onkeypress = checkCR;


function checkFields() { 
  var requiredFieldError = false; // Default to pass
  var emailError = false; // Default to pass
  var form = document.forms['form1'];
  var emptyFields = true;

  for(i = 0; i < form.elements.length; i++) {
  	var fld = form.elements[i];
    if(fld.value != "" && fld.value != "Submit") {
	  emptyFields = false;
    }
	if(classMod("check",fld,"requiredField")){
      if(fld.value == "") {
        requiredFieldError = true;
		classMod("add",fld,"failed");
      } else {
		classMod("remove",fld,"failed");
      }
    }
	if(classMod("check",fld,"email") && fld.value != ""){
	  if(!validateEmail(fld)) {
        emailError = true;
		classMod("add",fld,"failed");
      } else {
		classMod("remove",fld,"failed");
      }
	}
  }
  if(emptyFields) alert('Please fill in at least one field.');
  if(requiredFieldError) alert('Please fill in all required fields.');
  if(emailError) alert('Please enter a valid email address.');
  if(emailError || requiredFieldError || emptyFields){
	return false; 
  }
  return true; 
}


function chkNumeric(objName, minNum, maxNum, fldName){
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
 
	for (i = 0; i < objName.value.length && IsNumber == true; i++){ 
		Char = objName.value.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
			objName.select();
			objName.focus();
			alert("Please enter only numbers for the "+fldName+".");
		}
	}
	if(IsNumber){
		var num = parseInt(objName.value);
		if(num < minNum || num > maxNum){
			IsNumber = false;
			objName.select();
			objName.focus();
			alert("Please enter a number between "+minNum+" and "+maxNum+".");
		}
	}
	return IsNumber;
}

/** DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)*/

function validateEmail(fld) {
	var str = fld.value;
	if (str=="" && !classMod("check",fld,"requiredField")){
	   	return true
	}
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false
	}
	if (str.indexOf(" ")!=-1){
		return false
	}
	return true					
}

function classMod(action,obj,c1,c2){
  switch (action){
    case 'swap':
      obj.className=!classMod('check',obj,c1)?obj.className.replace(c2,c1):obj.className.replace(c1,c2);
    break;
    case 'add':
      if(!classMod('check',obj,c1)){obj.className+=obj.className?' '+c1:c1;}
    break;
    case 'remove':
      var rep=obj.className.match(' '+c1)?' '+c1:c1;
      obj.className=obj.className.replace(rep,'');
    break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(obj.className)
    break;
  }
}
