
function DoOnlineStudentCourtDate(frm){

	if (frm.courtdate.value.replace(/ /g, "") == ""){
		alert("Must supply a Court Date");
		frm.courtdate.focus();
		return false;
	}

	if (frm.courtdate){
		if (!IsDate(frm.courtdate.value)){
			alert("Court Date must be in a valid date format (MM/DD/YYYY)");
			frm.courtdate.focus();
			return false;
		}
	}

	frm.submit();

}

function DoOnlineStudentEnroll(frm){

	if (frm.firstname.value.replace(/ /g, "") == ""){
		alert("Cannot leave First Name blank");
		frm.firstname.focus();
		return false;
	}

	if (frm.lastname.value.replace(/ /g, "") == ""){
		alert("Cannot leave Last Name blank");
		frm.lastname.focus();
		return false;
	}

	if (frm.address.value.replace(/ /g, "") == ""){
		alert("Cannot leave Address blank");
		frm.address.focus();
		return false;
	}

	if (frm.city.value.replace(/ /g, "") == ""){
		alert("Cannot leave City blank");
		frm.city.focus();
		return false;
	}

	if (frm.state.value.replace(/ /g, "") == ""){
		alert("Cannot leave State blank");
		frm.state.focus();
		return false;
	}

	if (frm.zip.value.replace(/ /g, "") == ""){
		alert("Cannot leave Zip blank");
		frm.zip.focus();
		return false;
	}

	if (frm.dateofbirth.value.replace(/ /g, "") == ""){
		alert("Cannot leave Date of Birth blank");
		frm.dateofbirth.focus();
		return false;
	}

	if (frm.phone.value.replace(/ /g, "") == ""){
		alert("Cannot leave Phone blank");
		frm.phone.focus();
		return false;
	}

	if (frm.emailaddress.value.replace(/ /g, "") == ""){
		alert("Cannot leave Email blank");
		frm.emailaddress.focus();
		return false;
	}

	if (!IsEmailAddr(frm.emailaddress.value)){
		alert("Email address must be valid");
		frm.emailaddress.focus();
		return false;
	}

	if (!IsDate(frm.dateofbirth.value)){
		alert("Date of Birth must be in a valid date format (MM/DD/YYYY)");
		frm.dateofbirth.focus();
		return false;
	}

	if (frm.driverlicense.value.replace(/ /g, "") == ""){
		alert("Cannot leave Drivers License blank");
		frm.driverlicense.focus();
		return false;
	}

	if (frm.dlstate.value.replace(/ /g, "") == ""){
		alert("Cannot leave Drivers License State blank");
		frm.dlstate.focus();
		return false;
	}

	if(frm.dlstate.value != 'inter'){
		if(!valid_dl(frm.driverlicense.value,frm.dlstate.value,'','')) {
      			alert("Must enter a valid Drivers License Number for the state you have selected.")
			frm.driverlicense.focus();
			return false;
   		}
	}

	if (frm.reason != null){
		if (frm.reason.value.replace(/ /g, "") == ""){
			alert("Must select a Reason for Attending");
			frm.reason.focus();
			return false;
		}
	}

	if (frm.courtnum.value.replace(/ /g, "") == ""){
		alert("Must select a court");
		frm.courtnum.focus();
		return false;
	}

	if (frm.courtnum.value == "1001" || frm.courtnum.value == "0701" || frm.courtnum.value == "0702" || frm.courtnum.value == "0703" || frm.courtnum.value == "0704" || frm.courtnum.value == "0705" || frm.courtnum.value == "0706" || frm.courtnum.value == "0707" || frm.courtnum.value == "0708" || frm.courtnum.value == "0709" || frm.courtnum.value == "0710" || frm.courtnum.value == "0711" || frm.courtnum.value == "0712" || frm.courtnum.value == "0713" || frm.courtnum.value == "0714" || frm.courtnum.value == "0715" || frm.courtnum.value == "0716" || frm.courtnum.value == "0717" || frm.courtnum.value == "0718" || frm.courtnum.value == "0719" || frm.courtnum.value == "0720" || frm.courtnum.value == "0721" || frm.courtnum.value == "0722" || frm.courtnum.value == "0723" || frm.courtnum.value == "0724"){
		if (frm.complaintno.value.replace(/ /g, "") == ""){
			alert("Issuing Agency Is Required");
			frm.issuingagency.focus();
			return false;
		}
	}

	if (frm.complaintno.value.replace(/ /g, "") == ""){
		alert("Must supply a Complaint Number");
		frm.complaintno.focus();
		return false;
	}

	if (frm.violationdate.value.replace(/ /g, "") == ""){
		alert("Must supply a Violation Date");
		frm.violationdate.focus();
		return false;
	}

	if (!IsDate(frm.violationdate.value)){
		alert("Violation Date must be in a valid date format (MM/DD/YYYY)");
		frm.violationdate.focus();
		return false;
	}

	if (frm.violationcode.value.replace(/ /g, "") == ""){
		alert("Must supply a Violation Code");
		frm.violationcode.focus();
		return false;
	}

	if (frm.sectionno.value.replace(/ /g, "") == ""){
		alert("Must supply a Section Number");
		frm.sectionno.focus();
		return false;
	}

	if (frm.citationtype.value.replace(/ /g, "") == ""){
		alert("Must supply a Citation Type");
		frm.citationtype.focus();
		return false;
	}

	if (!frm.payment[0].checked && !frm.payment[1].checked){
		alert("Must specify how you want to pay for the class");
		frm.payment[0].focus();
		return false;
	}

	frm.submit();

}

function IsEmailAddr(chk){

	if (chk.indexOf("@") < 0){
		return false;
	}

	if (chk.indexOf(".") < 0){
		return false;
	}

	return true;

}

function IsNum(val){
	if (val == ""){
		return true;
	}
	testval = val
	
	while (testval.length > 0){
		tchr = testval.substr(0,1)
		testval = testval.substr(1,testval.length)
		if ((tchr < '0' || tchr > '9') && (tchr != " ")){
			
			return false;
		}
	}
	return true;
}


function IsDate(val){
	if (val == ""){
		return true
	}
	
	mloc = val.indexOf('/')
	if (mloc == 0){
		return false;
	}
	mm = val.substr(0,mloc)
	
	if (mm < 1 || mm > 12){
		return false;
	}
	
	valn = val.substr(mloc + 1,val.length)
	dloc = valn.indexOf('/')
	if (dloc == 0){
		return false;
	}
	dd = valn.substr(0,dloc)
	if (dd < 1 || dd > 31){
		return false;
	}
	if (mm == 2){
		if (dd > 28){
			return false;
		}
	}
		
	yy = valn.substr(dloc + 1,valn.length)
	if (yy.length != 4){
		return false;
	}
	
	if (IsNum(mm) && IsNum(dd) && IsNum(yy)){
		return true;
	}else{
		return false;
	}
}

function preg_match(pattern,value) {
   var r = new RegExp(pattern);
   var result = r.test(value);
   return result;
}

// Validate DL number
function valid_dl(dl_num,st,lname,fname) {
 switch(st) {
  // Alabama (AL) - 7 Num
  case "AL" :
   if(preg_match("^([0-9]{7})$",dl_num)){
      return true;
   }else{
      return false;
   }

  // Alaska (AK) - 1-7 Num (appears to be leading zeros, a 1 digit license is silly, will cap at minimum 4)
  case "AK" :
   if(preg_match("^([0-9]{4,7})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Arizona (AZ) - 1 Alpha/8 Num; or 9 Num (SSN)
  case "AZ" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{8})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Arkansas (AR) - 8 Num; or 9 Num (SSN)
  case "AR" :
   if(preg_match("^([0-9]{8})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // California (CA) - 1 Alpha/7 Num
  case "CA" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{7})$",dl_num)){
    return true;
   }
   if(preg_match("^([a-zA-Z]{2})([0-9]{6})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Colorado (CO) - 1 Alpha/6 Num (not issued since '94); or 9 Num
  case "CO" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{6})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Connecticut (CT) - 9 Num (first 2 digits month of birth, 01-12 if odd year, 13-24 if even year)
  // Note: this is not verified correctly yet, just checked for appearance
  case "CT" :
   if(preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Delaware (DE) - 1-7 Num (appears to be with leading zeros, a 1 digit license is silly, will cap at minimum 4)
  case "DE" :
   if(preg_match("^([0-9]{4,7})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Florida (FL) - 1 Alpha/12 Num
  case "FL" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{12})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Georgia (GA) - 7-9 Num
  case "GA" :
   if(preg_match("^([0-9]{7,9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Hawaii (HI) - "H"8 Num; or 9 Num
  case "HI" :
   if(preg_match("^H([0-9]{8})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Idaho (ID) - 2 Alpha/6 Num/1 Alpha; or 9 Num (SSN)
  case "ID" :
   if(preg_match("^([a-zA-Z]{2})([0-9]{6})([a-zA-Z]{1})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Illinois (IL) - 1 Alpha/11 Num (first letter of last name)
  // Note: this is not verified correctly yet, just checked for appearance
  case "IL" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{11})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Indiana (IN) - 9 Num (SSN); or 10 Num
  case "IN" :
   if(preg_match("^([0-9]{9,10})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // IOWA (IA) - 9 Num (SSN); or 3 Num/2 Alpha/4 Num
  case "IA" :
   if(preg_match("^([0-9]{9})$",dl_num)||preg_match("^([0-9]{3})([a-zA-Z]{2})([0-9]{4})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Kansas (KS) - "K"/8 Num; or 9 Num (SSN)
  // Note: supposedly 1 Alpha/1 Num/1 Alpha/1 Num/1 Alpha/1 Num is valid, but no other reference, ignore
  case "KS" :
   if(preg_match("^K([0-9]{8})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Kentucky (KY) - 1 Alpha/8 Num; or 9 Num (SSN)
  // Note: first alpha appears to always be first character of last name, no reference, do not enforce
  // Note: supposedly 10 Num exists, drop last digit, but no other reference, ignore
  case "KY" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{8})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Louisiana (LA) - 9 Numeric (first 2 digits are always "00")
  case "LA" :
   if(preg_match("^00([0-9]{7})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Maine (ME) - 7 Num; or 7 NUM"X" (if under 21)
  case "ME" :
   if(preg_match("^([0-9]{7})$",dl_num)||preg_match("^([0-9]{7})([xX]{1})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Maryland (MD) - 1 Alpha/12 Num (first alpha is first character of last name)
  // Note: this is not verified correctly yet, just checked for appearance
  case "MD" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{12})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Massachusetts (MA) - 1 Alpha/8 Num; or 9 Num (SSN)
  case "MA" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{8})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Michigan (MI) - 1 Alpha/12 Num (first alpha is first character of last name)
  // Note: this is not verified correctly yet, just checked for appearance
  case "MI" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{12})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // MINNESOTA (MN) - 1 Alpha/12 Num (first alpha is first character of last name)
  // Note: this is not verified correctly yet, just checked for appearance
  case "MN" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{12})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Mississippi (MS) - 9 Num (may be SSN)
  case "MS" :
   if(preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Missouri (MO) - 1 Alpha/5-9 Num; or 9 Num (may be SSN)
  case "MO" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{5,9})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Montana (MT) - 1 Alpha/1 Num/1 Alpha/2 Num/3 Alpha/1 Num; or 9 Num (SSN); or 13 Num
  case "MT" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{1})([a-zA-Z]{1})([0-9]{2})([a-zA-Z]{3})([0-9]{1})$",dl_num)||
      preg_match("^([0-9]{9})$",dl_num)||preg_match("^([0-9]{13})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Nebraska (NE) - 1 Alpha/3-8 Num (alpha is A,B,C,E,G,H, or V)
  case "NE" :
   if(preg_match("^([abceghvABCEGHV]{1})([0-9]{3,8})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Nevada (NV) - 9 Num (SSN); or 10 Num; or 12 Num (last 2 digits are year of birth); or "X"8 Num
  case "NV" :
   if(preg_match("^([0-9]{9,10})$",dl_num)||preg_match("^([0-9]{12})$",dl_num)||preg_match("^X([0-9]{8})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // New Hampshire (NH) - 2 Num/3 Alpha/5 Num
  case "NH" :
   if(preg_match("^([0-9]{2})([a-zA-Z]{3})([0-9]{5})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // New Jersey (NJ) - 1 Alpha/14 Num (first alpha is first character of last name)
  // Note: this is not verified correctly yet, just checked for appearance
  case "NJ" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{14})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // New Mexico (NM) - 9 Num (may be SSN)
  case "NM" :
   if(preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // New York (NY) - 9 Num; or 1 Alpha/18 Num
  case "NY" :
   if(preg_match("^([0-9]{9})$",dl_num)||preg_match("^([a-zA-Z]{1})([0-9]{18})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // North Carolina (NC) - 1-8 Num (appears to be 7 or 8 digits, a 1 digit license is silly, will cap at minimum 4)
  case "NC" :
   if(preg_match("^([0-9]{4,8})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // North Dakota (ND) - 9 Num (may be SSN or non-CDL begining with "9"); or 3 Alpha/6 Num
  case "ND" :
   if(preg_match("^([0-9]{9})$",dl_num)||preg_match("^([a-zA-Z]{3})([0-9]{6})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Ohio (OH) - 9 Num (SSN); or 2 Alpha/6 Num
  case "OH" :
   if(preg_match("^([0-9]{9})$",dl_num)||preg_match("^([a-zA-Z]{2})([0-9]{6})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Oklahoma (OK) - 9 Num (may be SSN)
  case "OK" :
   if(preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Oregon (OR) - 1-7 Num (appears to be 6 or 7 digits, a 1 digit license is silly, will cap at minimum 4)
  case "OR" :
   if(preg_match("^([0-9]{4,7})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Pennsylvania (PA) - 8 Num
  case "PA" :
   if(preg_match("^([0-9]{8})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Rhode Island (RI) - 7 Num; or "V"6 Num (for disabled veterans)
  case "RI" :
   if(preg_match("^([0-9]{7})$",dl_num)||preg_match("^V([0-9]{6})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // South Carolina (SC) - 6-9 Num (appears to be with leading zeros)
  // Note: 2 sources say that can not start with 6,9,09,006, or 009, seems to be right, also 06?
  // Note: this is not verified correctly yet, just checked for appearance
  case "SC" :
   if(preg_match("^([0-9]{6,9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // South Dakota (SD) - 8 Num; or 9 Num (SSN)
  // Note: 1 source 6-9 Num, or 11 Num, or 9 Num, but no other indication found, ignore
  case "SD" :
   if(preg_match("^([0-9]{8})$",dl_num)||preg_match("^([0-9]{9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Tennessee (TN) - 7-9 Num
  case "TN" :
   if(preg_match("^([0-9]{7,9})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Texas (TX) - 8 Num (begins with 0,1, or 2 only)
  case "TX" :
   if(preg_match("^([012]{1})([0-9]{7})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Utah (UT) - 4-10 Num
  case "UT" :
   if(preg_match("^([0-9]{4,10})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Vermont (VT) - 8 Num; or 7 Num"A"
  case "VT" :
   if(preg_match("^([0-9]{8})$",dl_num)||preg_match("^([0-9]{7})A$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Virginia (VA) - 9 Num (SSN); or 1 Alpha/8 Num (first alpha is A,R, or T)
  // Note: one site says T only, several say R and T, another says A,R, and T
  case "VA" :
   if(preg_match("^([0-9]{9})$",dl_num)||preg_match("^([artART]{1})([0-9]{8})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Washington (WA) - 5 Alpha/1 Alpha/1 Alpha/3 Num/2 Alphanum
  // Note: format - 5 chars of last name, 1 char of first name, 1 char of middle name, if not enough chars
  // in name shorten field, i.e. "Smith, John M" is SMITHJM12ABC", "Doe, John" is "DOEJ12ABC"
  // Note: this is not verified correctly yet, just checked for appearance
  case "WA" :
   if(preg_match("^([a-zA-Z*]{3,7})([0-9]{3})([a-zA-Z0-9]{2})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // West Virginia (WV) - 1 Alphnum/6 Num (alphanum must be 0,A,B,C,D,E,F, or S); or "1X"5 Num; or "XX"5 Num
  case "WV" :
   if(preg_match("^([0abcdefsABCDEFS]{1})([0-9]{6})$",dl_num)||preg_match("^([1xX]{1})([xX]{1})([0-9]{5})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Wisconsin (WI) - 1 Alpha/13 Num
  case "WI" :
   if(preg_match("^([a-zA-Z]{1})([0-9]{13})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Wyoming (WY) - 9-10 Num
  case "WY" :
   if(preg_match("^([0-9]{9,10})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // District of Columbia (DC) - 9 Num (SSN); or 7 Num
  case "DC" :
   if(preg_match("^([0-9]{9})$",dl_num)||preg_match("^([0-9]{7})$",dl_num)){
    return true;
   }else{
    return false;
   }

  // Everything else that are valid options, but I don't know how to check
  // Federated States of Micronesia
  case "FM" :
  // Guam
  case "GU" :
  // Marshal Islands
  case "MH" :
  // Northern Mariana Islands
  case "MP" :
  // Palau
  case "PW" :
  // Puerto Rico
  case "PR" :
  // Virgin Islands
  case "VI" :
  // Other...
  case "ZZ" :
   return true;

  // Otherwise, return false
  default :
   return false;
 }
}

if (!window.courseplayer==null){
	window.courseplayer.focus();
}else{
	window.focus;
}
