var newwindow


// global storage object for type-ahead info, including reset() method
var typeAheadInfo = {last:0, 
                     accumString:"", 
                     delay:1000,
                     timeout:null, 
                     reset:function() {this.last=0; this.accumString=""}
                    };

// function invoked by select element's onkeydown event handler
function typeAhead() {
   // limit processing to IE event model supporter; don't trap Ctrl+keys
   if (window.event && !window.event.ctrlKey) {
      // timer for current event
      var now = new Date();
      // process for an empty accumString or an event within [delay] ms of last
      if (typeAheadInfo.accumString == "" || now - typeAheadInfo.last < typeAheadInfo.delay) {
         // make shortcut event object reference
         var evt = window.event;
         // get reference to the select element
         var selectElem = evt.srcElement;
         // get typed character ASCII value
         var charCode = evt.keyCode;
         // get the actual character, converted to uppercase
         var newChar =  String.fromCharCode(charCode).toUpperCase();
         // append new character to accumString storage
         typeAheadInfo.accumString += newChar;
         // grab all select element option objects as an array
         var selectOptions = selectElem.options;
         // prepare local variables for use inside loop
         var txt, nearest;
         // look through all options for a match starting with accumString
         for (var i = 0; i < selectOptions.length; i++) {
            // convert each item's text to uppercase to facilitate comparison
            // (use value property if you want match to be for hidden option value)
            txt = selectOptions[i].text.toUpperCase();
            // record nearest lowest index, if applicable
            nearest = (typeAheadInfo.accumString > txt.substr(0, typeAheadInfo.accumString.length)) ? i : nearest;
            // process if accumString is at start of option text
            if (txt.indexOf(typeAheadInfo.accumString) == 0) {
               // stop any previous timeout timer
               clearTimeout(typeAheadInfo.timeout);
               // store current event's time in object 
               typeAheadInfo.last = now;
               // reset typeAhead properties in [delay] ms unless cleared beforehand
               typeAheadInfo.timeout = setTimeout("typeAheadInfo.reset()", typeAheadInfo.delay);
               // visibly select the matching item
               selectElem.selectedIndex = i;
               // prevent default event actions and propagation
               evt.cancelBubble = true;
               evt.returnValue = false;
               // exit function
               return false;   
            }            
         }
         // if a next lowest match exists, select it
         if (nearest != null) {
            selectElem.selectedIndex = nearest;
         }
      } else {
         // not a desired event, so clear timeout
         clearTimeout(typeAheadInfo.timeout);
      }
      // reset global object
      typeAheadInfo.reset();
   }
   return true;
}

function DoQuest(){

	i = 0
	
	allsel = true
	for(var i = 0; i < document.forms[0].numquestions.value; i++){
		if (document.forms[0].elements["secanswer"+i].value == ''){
			allsel = false
		}
	}
	if (!allsel){
		alert("Please provide an answer to each question")
		return false;
	}
	document.forms[0].submit();
	return false;
}

function DoRoleAdd(frm){

	if (frm.rolename.value.replace(/ /g, "") == ""){
		alert("Cannot leave Role Name blank");
		frm.rolename.focus();
		return false;
	}

	
	frm.submit();

}

function DoFeeAdd(frm){

	if (frm.feename.value.replace(/ /g, "") == ""){
		alert("Cannot leave Fee Name blank");
		frm.feename.focus();
		return false;
	}

	if (frm.amount.value.replace(/ /g, "") == ""){
		alert("Cannot leave Amount blank");
		frm.amount.focus();
		return false;
	}

	if (!IsNum(frm.amount.value)){
		alert("Amount must be a valid numeric value");
		frm.amount.focus();
		return false;
	}

	if (frm.applyat.value.replace(/ /g, "") == ""){
		alert("Must specify Apply At");
		frm.applyat.focus();
		return false;
	}

	if (frm.effectivefrom.value.replace(/ /g, "") != ""){
		if (!IsDate(frm.effectivefrom.value)){
			alert("Effective from must be a valid date (mm/dd/yyyy)");
			frm.effectivefrom.focus();
			return false;
		}
	}

	frm.submit();

}

function DoPermissionAdd(frm, ID){

	if (frm.newpermission.value.replace(/ /g, "") == ""){
		alert("Must select a permission");
		frm.newpermission.focus();
		return false;
	}

	frm.action = 'RolesAdmin.asp?Act=AddPerm' + '&RoleID=' + ID
	frm.submit();

}

function DoClientPermissionAdd(frm, ID){

	if (frm.newpermission.value.replace(/ /g, "") == ""){
		alert("Must select a permission");
		frm.newpermission.focus();
		return false;
	}

	frm.action = 'ClientRolesAdmin.asp?Act=AddPerm' + '&ClientID=' + ID
	frm.submit();

}

function DoICourseAdd(frm, ID){

	if (frm.newcourse.value.replace(/ /g, "") == ""){
		alert("Must select a course");
		frm.newcourse.focus();
		return false;
	}

	frm.action = 'InstructorAdmin.asp?Act=AddCourse' + '&InstructorID=' + ID
	frm.submit();

}

function DoInstrCode(frm, ID){

	frm.action = 'InstructorAdmin.asp?Act=UpdInstrCode' + '&InstructorCourseID=' + ID
	frm.submit();

}

function DoICountyAdd(frm, ID){

	if (frm.newcounty.value.replace(/ /g, "") == ""){
		alert("Must select a county");
		frm.newcounty.focus();
		return false;
	}

	frm.action = 'InstructorAdmin.asp?Act=AddCounty' + '&InstructorID=' + ID
	frm.submit();

}

function DoICompanyAdd(frm, ID){

	if (frm.newcompany.value.replace(/ /g, "") == ""){
		alert("Must select an Agency");
		frm.newcounty.focus();
		return false;
	}

	frm.action = 'InstructorAdmin.asp?Act=AddCompany' + '&InstructorID=' + ID
	frm.submit();

}

function DoCDateAdd(frm, ID){

	if (frm.newdate.value.replace(/ /g, "") == ""){
		alert("Must enter a new date");
		frm.newdate.focus();
		return false;
	}

	if (frm.starttime.value.replace(/ /g, "") == ""){
		alert("Must enter a start time");
		frm.starttime.focus();
		return false;
	}

	if (frm.endtime.value.replace(/ /g, "") == ""){
		alert("Must enter an end time");
		frm.endtime.focus();
		return false;
	}

	frm.action = 'ClassAdmin.asp?Act=AddClassDate' + '&ClassID=' + ID
	frm.submit();

}

function DoNWCertPay() {

    if(document.forms[0].CCType.value.replace(/ /g, "") == "") {
        alert("Select a Credit Card Type")
		document.forms[0].CCType.focus();
		return false;
    }
    if(document.forms[0].ccnum.value.replace(/ /g, "") == "") {
        alert("Enter your credit card Number")
		document.forms[0].ccnum.focus();
		return false;
    }

    if(document.forms[0].CCExpMonth.value.replace(/ /g, "") == "") {
        alert("Enter your credit card Expiration Month")
		document.forms[0].CCExpMonth.focus();
		return false;
    }
    
    if(document.forms[0].CCExpYear.value.replace(/ /g, "") == "") {
        alert("Enter your credit card Expiration Year")
		document.forms[0].CCExpYear.focus();
		return false;
    }

    if(document.forms[0].cardsecval.value.replace(/ /g, "") == "") {
        alert("Enter your credit card Security Value")
		document.forms[0].cardsecval.focus();
		return false;
    }

	if(document.forms[0].ccname.value.replace(/ /g, "") == "") {
        alert("Enter the Credit Card holder name")
		document.forms[0].ccname.focus();
		return false;
    }

	if(document.forms[0].billaddr1.value.replace(/ /g, "") == "") {
        alert("Enter billing address")
		document.forms[0].billaddr1.focus();
		return false;
    }

	if(document.forms[0].billcity.value.replace(/ /g, "") == "") {
        alert("Enter billing city")
		document.forms[0].billcity.focus();
		return false;
    }

	if(document.forms[0].billstate.value.replace(/ /g, "") == "") {
        alert("Enter billing state")
		document.forms[0].billstate.focus();
		return false;
    }

	if(document.forms[0].billzip.value.replace(/ /g, "") == "") {
        alert("Enter billing zip")
		document.forms[0].billzip.focus();
		return false;
    }

    document.forms[0].paybut.disabled = true
    document.forms[0].submit();
	return false;
}


function DoAFFSelfRegCourse() {

    if(!document.forms[0].classsel.checked) {
        alert("Must select a class")
		return false;
    }
 
	document.forms[0].submit();
}

function DoCTSIXMLPop(frm) {

    if(!frm.popflag.checked) {
        alert("Must check the identity certification box")
		return false;
    }
 
	frm.submit();
}

function DoAFFStudentEnroll(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.dob.value.replace(/ /g, "") == ""){
		alert("Cannot leave Date of Birth blank");
		frm.dob.focus();
		return false;
	}

	if (!IsDate(frm.dob.value)){
		alert("Date of Birth must be a valid date format (MM/DD/YYYY)");
		frm.dob.focus();
		return false;
	}

	if (frm.phone.value.replace(/ /g, "") == ""){
		alert("Cannot leave Phone blank");
		frm.phone.focus();
		return false;
	}

	if (frm.driverlicense.value.replace(/ /g, "") == ""){
		alert("Cannot leave Drivers License blank");
		frm.driverlicense.focus();
		return false;
	}

	if (frm.reason.value.replace(/ /g, "") == ""){
		alert("Must select a Reason for Attending");
		frm.reason.focus();
		return false;
	}

	if (frm.courtid.value.replace(/ /g, "") == ""){
		alert("Must select a court");
		frm.courtid.focus();
		return false;
	}

	if (frm.dlstate.value.replace(/ /g, "") == ""){
		alert("Must enter your Drivers License issuing state");
		frm.dlstate.focus();
		return false;
	}

	if (frm.dlexpdate.value.replace(/ /g, "") == ""){
		alert("Must enter your Drivers License expiration date");
		frm.dlexpdate.focus();
		return false;
	}

	if (!IsDate(frm.dlexpdate.value)){
		alert("Drivers License expiration date must be a valid date format (MM/DD/YYYY)");
		frm.dlexpdate.focus();
		return false;
	}

	frm.submit();

}

function DoCourseReqOLD(dir, courseid, userid, client, reqid){
	
	url = 'http://training.ntsionline.com/courses/' + dir + '/launcher.asp?Course=' + courseid + '&User=' + userid + '&reqid=' + reqid + '&Client=' + client
	newwindow = window.open(url,"CoursePlayer","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;
}

function DoCourseReq(dir, courseid, userid, client, reqid){
	
	url = dir + '/launcher.asp?Course=' + courseid + '&User=' + userid + '&reqid=' + reqid + '&Client=' + client
	newwindow = window.open(url,"CoursePlayer","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;
}

function DoCourseReqNew(dir, courseid, userid, client, reqid){
	
	url = dir + '/launcher.asp?Course=' + courseid + '&User=' + userid + '&reqid=' + reqid + '&Client=' + client
	newwindow = window.open(url,"CoursePlayer","height=800,width=803,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;
}

function DoCourseReqDebug(dir, courseid, userid, client, reqid){
	
	url = dir + '/launcher.asp?Course=' + courseid + '&User=' + userid + '&reqid=' + reqid + '&Client=' + client
	newwindow = window.open(url,"CoursePlayer","height=800,width=803,status, scrollbars, resizable, toolbar, location, menubar,left=0,top=0",true);
	newwindow.focus();

	return false;
}

function CloseCoursePlayer(){
	
	if (newwindow != null){
		newwindow.close()
	}
	return false;
}

function DoReTakeTest(testresultid, courseid, userid, client, reqid){
	
	url = 'http://training.ntsionline.com/ReTakeTest.asp?TestResultID=' + testresultid +'&Course=' + courseid + '&User=' + userid + '&reqid=' + reqid + '&Client=' + client
	newwindow = window.open(url,"CoursePlayer","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;
}

function DoRetakeMod(dir, courseid, moduleid, client){
	
	url = dir + '/RetakeModule.asp?CourseID=' + courseid + '&ModuleID=' + moduleid + '&Client=' + client
	newwindow = window.open(url,"CoursePlayer","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;
}

function DoRetakeModNew(dir, courseid, moduleid, client){
	
	url = dir + '/RetakeModule.asp?CourseID=' + courseid + '&ModuleID=' + moduleid + '&Client=' + client
	newwindow = window.open(url,"CoursePlayer","height=800,width=803,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;
}

function DoRetakeModOLD(courseid, moduleid, client){
	
	url = 'http://training.ntsionline.com/RetakeModule.asp?CourseID=' + courseid + '&ModuleID=' + moduleid + '&Client=' + client
	newwindow = window.open(url,"CoursePlayer","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;
}

function DoLogin(frm){
	
	if (frm.LoginID.value.replace(/ /g, "") == ""){
		alert("Must enter a LoginID");
		frm.LoginID.focus();
		return false;
	}
	
	if (frm.Password.value.replace(/ /g, "") == ""){
		alert("Must enter a Password");
		frm.Password.focus();
		return false;
	}
	
	frm.submit();

}

function DoNYQuartDownLoad(){
	
	startdate = document.forms[0].strtdate.value
	enddate = document.forms[0].enddate.value
	url = 'AFFNYQuarterlyDownLoad.asp?startdate=' + startdate +'&enddate=' + enddate
	newwindow = window.open(url,"Download","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;

}

function DoCTStudentDownLoad(){
	
	startdate = document.forms[0].strtdate.value
	enddate = document.forms[0].enddate.value
	url = 'AFFCTStudentDownLoad.asp?startdate=' + startdate +'&enddate=' + enddate
	newwindow = window.open(url,"Download","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;

}

function DoNYClassDownLoad(){
	
	startdate = document.forms[0].strtdate.value
	enddate = document.forms[0].enddate.value
	url = 'AFFNYClassDownLoad.asp?startdate=' + startdate +'&enddate=' + enddate
	newwindow = window.open(url,"Download","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;

}

function DoNYStudentDownLoad(){
	
	startdate = document.forms[0].strtdate.value
	enddate = document.forms[0].enddate.value

	for(var i = 0; i < document.forms[0].seltype.length; i++){
		if (document.forms[0].seltype[i].checked){
			seltype = document.forms[0].seltype[i].value
		}
	}

	url = 'AFFNYStudentDownLoad.asp?startdate=' + startdate +'&enddate=' + enddate +'&seltype=' + seltype
	newwindow = window.open(url,"Download","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;

}

function DoTxDownLoad(){
	
	startdate = document.forms[0].strtdate.value
	enddate = document.forms[0].enddate.value
	url = 'AFFTxDownLoad.asp?startdate=' + startdate +'&enddate=' + enddate
	newwindow = window.open(url,"Download","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;

}


function DoTxDownLoadCert(){
	
	startcert = document.forms[0].strtcert.value
	endcert = document.forms[0].endcert.value
	url = 'AFFTxDownLoadbyCert.asp?startcert=' + startcert +'&endcert=' + endcert
	newwindow = window.open(url,"Download","height=550,width=776,scrollbars,status,resizable,left=0,top=0",true);
	newwindow.focus();

	return false;

}


function DoUserAdd(frm){

	if (frm.loginids.value.replace(/ /g, "") == ""){
		alert("Cannot leave LoginID blank");
		frm.loginids.focus();
		return false;
	}

	if (frm.password.value.replace(/ /g, "") == ""){
		alert("Cannot leave Password blank");
		frm.password.focus();
		return false;
	}

	if(frm.password.value != frm.repassword.value) {
        	alert("Password and Re-Enter password do not match, please try again.")
			frm.password.focus();
			return false;
    	}
    
	if (frm.FName.value.replace(/ /g, "") == ""){
		alert("Cannot leave First Name blank");
		frm.FName.focus();
		return false;
	}

	if (frm.LName.value.replace(/ /g, "") == ""){
		alert("Cannot leave Last Name blank");
		frm.LName.focus();
		return false;
	}

	
	if (frm.Admin.value.replace(/ /g, "") == ""){
		alert("Must select an Authorization Level for this user.");
		frm.Admin.focus();
		return false;
	}

	frm.submit();

}

function DoUpdFinal(frm){

	if (frm.finalgrade.value.replace(/ /g, "") == ""){
		alert("Cannot leave Final Grade blank");
		frm.finalgrade.focus();
		return false;
	}

	frm.submit();

}

function DoUpdPswd(frm){

	if (frm.password.value.replace(/ /g, "") == ""){
		alert("Cannot leave Password blank");
		frm.password.focus();
		return false;
	}

	if(frm.password.value != frm.repassword.value) {
        	alert("Password and Re-Enter password do not match, please try again.")
			frm.password.focus();
			return false;
    	}
 
	frm.submit();

}

function DoNoteAdd(frm){

	if (frm.notetext.value.replace(/ /g, "") == ""){
		alert("Must enter the text of your note.");
		frm.notetext.focus();
		return false;
	}

	frm.submit();

}


function DoCompCodeAdd(frm){

	if (frm.fromnumber.value.replace(/ /g, "") == ""){
		alert("Cannot leave From Number blank");
		frm.fromnumber.focus();
		return false;
	}

	if (frm.tonumber.value.replace(/ /g, "") == ""){
		alert("Cannot leave To NUmber blank");
		frm.tonumber.focus();
		return false;
	}

	
	frm.submit();

}

function ProductPurchaseCheck(frm){

	i = 0
	while (i<frm.iscert.length) {
		if (frm.iscert(i).value == "Y"){
			if (frm.qty(i).value.replace(/ /g, "") != ""){
				if (frm.qty(i).value < 5){
					alert("Minimum order for certificates is 5")
					frm.qty(i).focus();
					return false;
				}
			}
		}
		i = i + 1
	}

	frm.submit();
}


function DoFLCertAdd(frm){

	if (frm.numpurch.value.replace(/ /g, "") == ""){
		alert("Cannot leave Number Purchased blank");
		frm.numpurch.focus();
		return false;
	}

	if (frm.numpurch.value < 5){
		alert("Must purchase at least 5 certificates");
		frm.numpurch.focus();
		return false;
	}

	if (frm.course.value.replace(/ /g, "") == ""){
		alert("Must select a course");
		frm.course.focus();
		return false;
	}

	
	frm.submit();

}

function DoClassAdd(frm){

	if (frm.companycode == null){
	}else{
		if (frm.companycode.value.replace(/ /g, "") == ""){
			alert("Must specify an Agency (or agency needs a company code)");
			frm.companycode.focus();
			return false;
		}
	}

	if (frm.locationid.value.replace(/ /g, "") == ""){
		alert("Must specify a Location");
		frm.locationid.focus();
		return false;
	}

	if (frm.instructorid.value.replace(/ /g, "") == ""){
		alert("Must specify an Instructor");
		frm.instructorid.focus();
		return false;
	}

	if (frm.firstdate.value.replace(/ /g, "") == ""){
		alert("Must specify the first date of the class");
		frm.firstdate.focus();
		return false;
	}

	if (frm.enddate.value.replace(/ /g, "") == ""){
		alert("Must specify the end date of the class");
		frm.enddate.focus();
		return false;
	}

	if (!IsDate(frm.firstdate.value)){
		alert("First Date must be a valid date format (MM/DD/YYYY)");
		frm.firstdate.focus();
		return false;
	}

	if (!IsDate(frm.enddate.value)){
		alert("End Date must be a valid date format (MM/DD/YYYY)");
		frm.enddate.focus();
		return false;
	}

	if (frm.classtype == null){
	}else{
		if (frm.classtype.value.replace(/ /g, "") == ""){
			alert("Must specify a class type");
			frm.classtype.focus();
			return false;
		}
	}

	frm.submit();

}

function DoCourtAdd(frm){

	if (frm.courtname.value.replace(/ /g, "") == ""){
		alert("Cannot leave Court Name blank");
		frm.courtname.focus();
		return false;
	}

	frm.submit();

}

function DoAgencyAdd(frm){

	if (frm.agencyname.value.replace(/ /g, "") == ""){
		alert("Cannot leave Agency Name blank");
		frm.agencyname.focus();
		return false;
	}

	frm.submit();

}


function DoInstructorAdd(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;
	}

	frm.submit();

}


function DoStudentEnroll(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 (!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.client.value == "NTSIAFFNY"){
		if(!frm.gender(0).checked && !frm.gender(1).checked){
			alert("Must select a gender");
			return false;
		}

		if (frm.address.value.length > 28){
			alert("Address cannot have more than 28 characters");
			frm.address.focus();
			return false;
		}
		if (frm.address2.value.length > 28){
			alert("Address 2 cannot have more than 28 characters");
			frm.address2.focus();
			return false;
		}
		if (frm.city.value.length > 28){
			alert("City cannot have more than 18 characters");
			frm.city.focus();
			return false;
		}
	}


	if (frm.classid == null){
	}else{
		if (frm.classid.value.replace(/ /g, "") == ""){
			alert("Must select a class");
			frm.classid.focus();
			return false;
		}
	}

	if (frm.courtid){
		if (frm.courtid.value.replace(/ /g, "") == ""){
			alert("Must select a court");
			frm.courtid.focus();
			return false;
		}
	}

	if (frm.citdate){
		if (!IsDate(frm.citdate.value)){
			alert("Citation Date must be in a valid date format (MM/DD/YYYY)");
			frm.citdate.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 (!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.courtid){
		if (frm.courtid.value.replace(/ /g, "") == ""){
			alert("Must select a court");
			frm.courtid.focus();
			return false;
		}
	}

	if (frm.citdate){
		if (!IsDate(frm.citdate.value)){
			alert("Citation Date must be in a valid date format (MM/DD/YYYY)");
			frm.citdate.focus();
			return false;
		}
	}

	frm.submit();

}


function DoStudentReschedule(frm){

	if (frm.classid.value.replace(/ /g, "") == ""){
		alert("Must select a class");
		frm.classid.focus();
		return false;
	}
	
	frm.submit();

}



function DoHistUpd(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;
	}

	frm.submit();

}

function DoUserMod(frm){

	
	if (frm.FName.value.replace(/ /g, "") == ""){
		alert("Cannot leave First Name blank");
		frm.FName.focus();
		return false;
	}

	if (frm.LName.value.replace(/ /g, "") == ""){
		alert("Cannot leave Last Name blank");
		frm.LName.focus();
		return false;
	}

	
	if (frm.Admin.value.replace(/ /g, "") == ""){
		alert("Must select an Authorization Level for this user.");
		frm.Admin.focus();
		return false;
	}

	if(frm.password.value != frm.repassword.value) {
        	alert("Password and Re-Enter password do not match, please try again.")
			frm.password.focus();
			return false;
    	}
    
	frm.submit();

}

function DoUserLookup(frm){

	if (frm.loginids.value.replace(/ /g, "") == "" && frm.FName.value.replace(/ /g, "") == "" && frm.LName.value.replace(/ /g, "") == "" && frm.Email.value.replace(/ /g, "") == "" && frm.CompanyID.value.replace(/ /g, "") == ""){
		alert("Must select at least one search criteria.");
		frm.FName.focus();
		return false;
	}
	

	frm.submit();

}

function DoCompLookup(frm){

	if (frm.salesrep){
		if (frm.companyname.value.replace(/ /g, "") == "" && frm.salesrep.value.replace(/ /g, "") == "" ){
			alert("Must specify a search criteria.");
			frm.companyname.focus();
			return false;
		}
	}else{
		if (frm.companyname.value.replace(/ /g, "") == "" ){
			alert("Must specify companyname.");
			frm.companyname.focus();
			return false;
		}
	}

	frm.submit();

}

function DoCompLookupNY(frm){

	if (frm.companyname.value.replace(/ /g, "") == "" && frm.county.value.replace(/ /g, "") == "" && frm.zip.value.replace(/ /g, "") == ""  && frm.companycode.value.replace(/ /g, "") == ""){
		alert("Must specify at least one search criteria.");
		frm.companyname.focus();
		return false;
	}

	frm.submit();

}

function DoInstrLookup(frm){

	if (frm.rescounty){
		if (frm.rescounty.value.replace(/ /g, "") == "" && frm.workcounty.value.replace(/ /g, "") == "" && frm.FName.value.replace(/ /g, "") == "" && frm.LName.value.replace(/ /g, "") == ""  && frm.ntsinum.value.replace(/ /g, "") == ""){
			alert("Must select at least one search criteria.");
			frm.FName.focus();
			return false;
		}
	}else{
		if (frm.FName.value.replace(/ /g, "") == "" && frm.LName.value.replace(/ /g, "") == "" && frm.ntsinum.value.replace(/ /g, "") == "" ){
			alert("Must select at least one search criteria.");
			frm.FName.focus();
			return false;
		}
	}

	frm.submit();

}


function DoStudentLookup(frm){

	if (frm.classid.value.replace(/ /g, "") == "" && frm.FName.value.replace(/ /g, "") == "" && frm.LName.value.replace(/ /g, "") == "" && frm.drlicno.value.replace(/ /g, "") == "" && frm.frcertno.value.replace(/ /g, "") == ""){
		alert("Must select at least one search criteria.");
		frm.FName.focus();
		return false;
	}
	

	frm.submit();

}

function DoClassLookup(frm){

	if (frm.classnum){
		if (frm.firstdate.value.replace(/ /g, "") == "" && frm.firstadddate.value.replace(/ /g, "") == "" && frm.classnum.value.replace(/ /g, "") == "" ){
			alert("Must select at least one search criteria.");
			frm.firstdate.focus();
			return false;
		}
	}else{
		if (frm.firstdate.value.replace(/ /g, "") == "" && frm.firstadddate.value.replace(/ /g, "") == ""){
			alert("Must select at least one search criteria.");
			frm.firstdate.focus();
			return false;
		}
	}
	

	frm.submit();

}

function DoUpdThruDate(frm, ID){

	numvals = frm.ExpVal.length
	if (numvals == null){
		if (!IsDate(frm.FromVal.value)) {
			alert("Available Date must be a valid date format (MM/DD/YYYY)");
			frm.FromVal.focus();
			return false;
		}
		if (!IsDate(frm.ExpVal.value)) {
			alert("Expiration Date must be a valid date format (MM/DD/YYYY)");
			frm.ExpVal.focus();
			return false;
		}
	}else{
		i = 1
		while (i<=numvals) {
			if (!IsDate(frm.FromVal[i-1].value)) {
				alert("Available Date must be a valid date format (MM/DD/YYYY)");
				frm.FromVal[i-1].focus();
				return false;
			}
			if (!IsDate(frm.ExpVal[i-1].value)) {
				alert("Expiration Date must be a valid date format (MM/DD/YYYY)");
				frm.ExpVal[i-1].focus();
				return false;
			}
			i = i + 1
		}
	}
	frm.action = 'ShowUsers.asp?Act=UpdExp&UserID=' + ID
	frm.submit();

}


function DownloadTests(){

	document.forms[0].action = 'DownLTests2.asp?Act=Download' 
	document.forms[0].submit();

}

function DoNoticeTableAdd(frm){

	if (frm.noticetext.value.replace(/ /g, "") == ""){
		alert("Cannot leave Notice Text blank");
		frm.noticetext.focus();
		return false;
	}

	
	frm.submit();

}

function DoReferralCodeAdd(frm){

	if (frm.referralcode.value.replace(/ /g, "") == ""){
		alert("Cannot leave Referral Code blank");
		frm.referralcode.focus();
		return false;
	}

	if (frm.description.value.replace(/ /g, "") == ""){
		alert("Cannot leave Description blank");
		frm.description.focus();
		return false;
	}

	if (frm.goodstarting.value.replace(/ /g, "") == ""){
		alert("Cannot leave Good Starting blank");
		frm.goodstarting.focus();
		return false;
	}

	if (frm.goodthru.value.replace(/ /g, "") == ""){
		alert("Cannot leave Good Thru blank");
		frm.goodthru.focus();
		return false;
	}
	
	if (!IsDate(frm.goodstarting.value)){
		alert("Good Starting must be a valid date (mm/dd/yyyy)");
		frm.goodstarting.focus();
		return false;
	}

	if (!IsDate(frm.goodthru.value)){
		alert("Good Thru must be a valid date (mm/dd/yyyy)");
		frm.goodthru.focus();
		return false;
	}

	frm.submit();

}

function DoDiscountAdd(frm){

	if (frm.courseid.value.replace(/ /g, "") == ""){
		alert("Must select a Course");
		frm.courseid.focus();
		return false;
	}

	if (frm.price.value.replace(/ /g, "") == ""){
		alert("Cannot leave Price blank");
		frm.price.focus();
		return false;
	}

	frm.submit();

}

function DoLMSCourseAdd(frm){

	if (frm.coursetitle.value.replace(/ /g, "") == ""){
		alert("Cannot leave Course Title blank");
		frm.coursetitle.focus();
		return false;
	}

	frm.submit();

}

function DoModuleAdd(frm){

	if (frm.title.value.replace(/ /g, "") == ""){
		alert("Cannot leave Title blank");
		frm.title.focus();
		return false;
	}

	frm.submit();

}

function DoProductLineAdd(frm){

	if (frm.productline.value.replace(/ /g, "") == ""){
		alert("Cannot leave Product Line blank");
		frm.productline.focus();
		return false;
	}

	if (frm.sequence.value.replace(/ /g, "") == ""){
		alert("Cannot leave Sequence blank");
		frm.sequence.focus();
		return false;
	}

	frm.submit();

}

function DoProductAdd(frm){

	if (frm.product.value.replace(/ /g, "") == ""){
		alert("Cannot leave Product blank");
		frm.product.focus();
		return false;
	}

	if (frm.productprice.value.replace(/ /g, "") == ""){
		alert("Cannot leave Product Price blank");
		frm.productprice.focus();
		return false;
	}

	if (!IsNum(frm.productprice.value)){
		alert("Product Price must be numeric");
		frm.productprice.focus();
		return false;
	}

	if (frm.sequence.value.replace(/ /g, "") == ""){
		alert("Cannot leave Sequence blank");
		frm.sequence.focus();
		return false;
	}

	frm.submit();

}

function DoTestAdd(frm){

	if (frm.testname.value.replace(/ /g, "") == ""){
		alert("Cannot leave Test Name blank");
		frm.testname.focus();
		return false;
	}

	if (frm.passing.value.replace(/ /g, "") == ""){
		alert("Cannot leave Passing Grade Percent blank");
		frm.passing.focus();
		return false;
	}

	if (frm.numtries.value.replace(/ /g, "") == ""){
		alert("Cannot leave Num Tries blank");
		frm.numtries.focus();
		return false;
	}

	frm.submit();

}

function DoTestQuestionAdd(frm, ID){

	if (frm.questionnumber.value.replace(/ /g, "") == ""){
		alert("Must enter a Question Number");
		frm.questionnumber.focus();
		return false;
	}

	if (frm.questiontext.value.replace(/ /g, "") == ""){
		alert("Must enter Question Text");
		frm.questiontext.focus();
		return false;
	}

	frm.submit();

}

function DoAnswerAdd(frm, ID){

	if (frm.answernumber.value.replace(/ /g, "") == ""){
		alert("Must enter a Answer Number");
		frm.answernumber.focus();
		return false;
	}

	if (frm.answertext.value.replace(/ /g, "") == ""){
		alert("Must enter Answer Text");
		frm.answertext.focus();
		return false;
	}

	frm.submit();

}

function DoCourseAdd(frm, ID){

	if (frm.newcourse.value.replace(/ /g, "") == ""){
		alert("Must select a course");
		frm.newcourse.focus();
		return false;
	}

	frm.action = 'ShowUsers.asp?Act=AddCourse&UserID=' + ID
	frm.submit();

}

function NewPortal(){
	window.location.href= "Admin.asp?Client=" + document.getElementById("newportal").value
}

function DoMyStudentAdd(frm, ID){

	if (frm.newstudent.value.replace(/ /g, "") == ""){
		alert("Must select a student");
		frm.newstudent.focus();
		return false;
	}

	frm.action = 'ShowUsers.asp?Act=AddMyStudent&UserID=' + ID
	frm.submit();

}

function DoMyPortalAdd(frm, ID){

	if (frm.newportal.value.replace(/ /g, "") == ""){
		alert("Must select a portal");
		frm.newportalt.focus();
		return false;
	}

	frm.action = 'ShowUsers.asp?Act=AddMyPortal&UserID=' + ID
	frm.submit();

}

function DoLocationAdd(frm, ID){

	if (frm.name.value.replace(/ /g, "") == ""){
		alert("Must specify a Name");
		frm.name.focus();
		return false;
	}

	if (frm.address.value.replace(/ /g, "") == ""){
		alert("Must specify an Address");
		frm.address.focus();
		return false;
	}

	if (frm.city.value.replace(/ /g, "") == ""){
		alert("Must specify a City");
		frm.city.focus();
		return false;
	}

	if (frm.state.value.replace(/ /g, "") == ""){
		alert("Must specify a State");
		frm.state.focus();
		return false;
	}

	if (frm.zip.value.replace(/ /g, "") == ""){
		alert("Must specify a Zip");
		frm.zip.focus();
		return false;
	}else{
		if (!IsNum(frm.zip.value)){
			alert("Zip Code must be numeric");
			frm.zip.focus();
			return false;
		}
	}

	if (frm.maxsize.value.replace(/ /g, "") != ""){
		if (!IsNum(frm.maxsize.value)){
			alert("Max Class Size must be numeric");
			frm.maxsize.focus();
			return false;
		}
	}else{
		frm.maxsize.value = 0
	}
	
	if (frm.locationprice.value.replace(/ /g, "") != ""){
		if (!IsNum(frm.locationprice.value)){
			alert("Location Price must be numeric");
			frm.locationprice.focus();
			return false;
		}
	}else{
		frm.locationprice.value = 0
	}

	if (frm.county){
		if (frm.county.value.replace(/ /g, "") == ""){
			alert("Must specify a County");
			frm.county.focus();
			return false;
		}
	}


	frm.submit();

}

function DoLocationContactAdd(frm, ID){

	if (frm.contactname.value.replace(/ /g, "") == ""){
		alert("Must specify a Name");
		frm.contactname.focus();
		return false;
	}

	if (frm.contactaddress.value.replace(/ /g, "") == ""){
		alert("Must specify an Address");
		frm.contactaddress.focus();
		return false;
	}

	if (frm.contactcity.value.replace(/ /g, "") == ""){
		alert("Must specify a City");
		frm.contactcity.focus();
		return false;
	}

	if (frm.contactstate.value.replace(/ /g, "") == ""){
		alert("Must specify a State");
		frm.contactstate.focus();
		return false;
	}

	if (frm.contactzip.value.replace(/ /g, "") == ""){
		alert("Must specify a Zip");
		frm.contactzip.focus();
		return false;
	}else{
		if (!IsNum(frm.contactzip.value)){
			alert("Zip Code must be numeric");
			frm.contactzip.focus();
			return false;
		}
	}


	frm.submit();

}

function DoCourtContactAdd(frm, ID){

	if (frm.contactname.value.replace(/ /g, "") == ""){
		alert("Must specify a Name");
		frm.contactname.focus();
		return false;
	}

	if (frm.contactaddress.value.replace(/ /g, "") == ""){
		alert("Must specify an Address");
		frm.contactaddress.focus();
		return false;
	}

	if (frm.contactcity.value.replace(/ /g, "") == ""){
		alert("Must specify a City");
		frm.contactcity.focus();
		return false;
	}

	if (frm.contactstate.value.replace(/ /g, "") == ""){
		alert("Must specify a State");
		frm.contactstate.focus();
		return false;
	}

	if (frm.contactzip.value.replace(/ /g, "") == ""){
		alert("Must specify a Zip");
		frm.contactzip.focus();
		return false;
	}else{
		if (!IsNum(frm.contactzip.value)){
			alert("Zip Code must be numeric");
			frm.contactzip.focus();
			return false;
		}
	}


	frm.submit();

}

function DoASHIInstrReq(frm, ID){

	coursesel = false
	if (frm.coursesel[0].checked){
		coursesel = true
	}

	if (frm.coursesel[1].checked){
		coursesel = true
	}
	
	if (!coursesel){
		alert("Must specify a Course Name");
		return false;
	}
	
	if (frm.numstudents.value.replace(/ /g, "") == ""){
		alert("Must specify Number of Students");
		frm.numstudents.focus();
		return false;
	}

	if (!IsNum(frm.numstudents.value)){
		alert("Number of Students must be numeric");
		frm.numstudents.focus();
		return false;
	}

	if (frm.numstudents.value < 15){
		alert("Number of Students must be at least 15");
		frm.numstudents.focus();
		return false;
	}

	if (frm.city.value.replace(/ /g, "") == ""){
		alert("Must specify City");
		frm.city.focus();
		return false;
	}

	if (frm.state.value.replace(/ /g, "") == ""){
		alert("Must specify State");
		frm.state.focus();
		return false;
	}

	if (frm.contactname.value.replace(/ /g, "") == ""){
		alert("Must specify Contact Name");
		frm.contactname.focus();
		return false;
	}

	if (frm.email.value.replace(/ /g, "") == ""){
		alert("Must specify Contact Email");
		frm.email.focus();
		return false;
	}


	if (frm.phone.value.replace(/ /g, "") == ""){
		alert("Must specify Contact Phone");
		frm.phone.focus();
		return false;
	}

	frm.action = 'ASHIInstructorRequest.asp?Act=InstrReq&AgencyCode=' + ID
	frm.submit();

}

function DoCompAdd(frm){

	if (frm.CompanyName.value.replace(/ /g, "") == ""){
		alert("Cannot leave Company Name blank");
		frm.CompanyName.focus();
		return false;
	}

	if (frm.CompanyAddr1.value.replace(/ /g, "") == ""){
		alert("Cannot leave Address blank");
		frm.CompanyAddr1.focus();
		return false;
	}

	if (frm.CompanyCity.value.replace(/ /g, "") == ""){
		alert("Cannot leave City blank");
		frm.CompanyCity.focus();
		return false;
	}

	if (frm.CompanyState.value.replace(/ /g, "") == ""){
		alert("Cannot leave State blank");
		frm.CompanyState.focus();
		return false;
	}

	if (frm.CompanyZip.value.replace(/ /g, "") == ""){
		alert("Cannot leave Zip blank");
		frm.CompanyZip.focus();
		return false;
	}

	//if (frm.companycode == null){
	//}else{
	//	if (frm.companycode.value.replace(/ /g, "") == ""){
	//		alert("Cannot leave Company Code blank");
	//		frm.companycode.focus();
	//		return false;
	//	}
	//}

	frm.submit();

}


function DoRepAdd(frm){

	if (frm.RepName.value.replace(/ /g, "") == ""){
		alert("Cannot leave Sales Rep Name blank");
		frm.RepName.focus();
		return false;
	}

	if (frm.RepEmail.value.replace(/ /g, "") == ""){
		alert("Cannot leave Email Address blank");
		frm.RepEmail.focus();
		return false;
	}

	
	frm.submit();

}

function DoWebsitePageUpd(frm){

	if (frm.pagecontent.value.replace(/ /g, "") == ""){
		alert("Cannot leave Page Content blank");
		frm.pagecontent.focus();
		return false;
	}

	
	frm.submit();

}


function DoWebsiteParmsUpd(frm){

	if (frm.headertext.value.replace(/ /g, "") == ""){
		alert("Cannot leave header text blank");
		frm.headertext.focus();
		return false;
	}

	if (frm.contacttext.value.replace(/ /g, "") == ""){
		alert("Cannot leave contact text blank");
		frm.contacttext.focus();
		return false;
	}

	if (frm.courselength.value.replace(/ /g, "") == ""){
		alert("Cannot course length text blank");
		frm.courselength.focus();
		return false;
	}
		
	if (frm.assistancephone.value.replace(/ /g, "") == ""){
		alert("Cannot assistance phone text blank");
		frm.assistancephone.focus();
		return false;
	}

	if (frm.supportemail.value.replace(/ /g, "") == ""){
		alert("Cannot leave support email blank");
		frm.supportemail.focus();
		return false;
	}

	frm.submit();

}


function DoAffiliateSchoolUpd(frm){

	

	if (frm.schoolname.value.replace(/ /g, "") == ""){
		alert("Cannot leave school name blank");
		frm.schoolname.focus();
		return false;
	}


	if (frm.phone.value.replace(/ /g, "") == ""){
		alert("Cannot leave phone blank");
		frm.phone.focus();
		return false;
	}

	frm.submit();

}


function DoTechSpt(frm){

	if (frm.Email.value.replace(/ /g, "") == ""){
		alert("Cannot leave Email Address blank");
		frm.Email.focus();
		return false;
	}

	if (frm.Problem.value.replace(/ /g, "") == ""){
		alert("Cannot leave Problem Description blank");
		frm.Problem.focus();
		return false;
	}

	
	frm.submit();

}

function DoAddStud(frm){

	if (frm.Email.value.replace(/ /g, "") == ""){
		alert("Cannot leave Email Address blank");
		frm.Email.focus();
		return false;
	}

	if (frm.Course.value.replace(/ /g, "") == ""){
		alert("Must select a course");
		frm.Course.focus();
		return false;
	}

	if (frm.NumAddtl.value.replace(/ /g, "") == ""){
		alert("Must specify the number of students you wish to add");
		frm.NumAddtl.focus();
		return false;
	}
	
	frm.submit();

}


function DoAddCert(frm){

	if (frm.Email.value.replace(/ /g, "") == ""){
		alert("Cannot leave Email Address blank");
		frm.Email.focus();
		return false;
	}

	if (frm.NumAddtl.value.replace(/ /g, "") == ""){
		alert("Must specify the number of certificates you wish to add");
		frm.NumAddtl.focus();
		return false;
	}
	
	frm.submit();

}

function DoMyAcctUpd(frm){

	if (frm.FName.value.replace(/ /g, "") == ""){
		alert("Cannot leave First Name blank");
		frm.FName.focus();
		return false;
	}

	if (frm.LName.value.replace(/ /g, "") == ""){
		alert("Cannot leave Last Name blank");
		frm.LName.focus();
		return false;
	}

	if(frm.password.value != frm.repassword.value) {
        	alert("Password and Re-Enter password do not match, please try again.")
			frm.password.focus();
			return false;
    	}
    
	frm.submit();

}

function DoPasswordUpd(frm){

	if (frm.password.value.replace(/ /g, "") == ""){
		alert("Cannot leave Password blank");
		frm.password.focus();
		return false;
	}

	if(frm.password.value != frm.repassword.value) {
        	alert("Password and Re-Enter password do not match, please try again.")
			frm.password.focus();
			return false;
    	}

	if(frm.password.value == frm.oldpassword.value) {
        	alert("The Password you have selected is the same as your old password, please try again.")
			frm.password.focus();
			return false;
    	}

	frm.submit();

}


function DoCorpInfoUpd(frm){

	if (frm.companyname.value.replace(/ /g, "") == ""){
		alert("Cannot leave Company Name blank");
		frm.companyname.focus();
		return false;
	}

	frm.submit();

}

function DoForgot(frm){
	
	if (frm.LoginID.value.replace(/ /g, "") == ""){
		alert("Must enter a User ID");
		frm.LoginID.focus();
		return false;
	}
	
	if (frm.email.value.replace(/ /g, "") == ""){
		alert("Must enter an email address");
		frm.email.focus();
		return false;
	}

	if (!IsEmailAddr(frm.email.value)){
		alert("Must enter a valid email address (name@domain.extension)");
		frm.email.focus();
		return false;
	}

	frm.submit();

}

function DoBlockAdd(frm){

	if (frm.prefix.value.replace(/ /g, "") == ""){
		alert("Must select a loginid prefix");
		frm.prefix.focus();
		return false;
	}

	if (frm.numslots.value.replace(/ /g, "") == ""){
		alert("Must select the number of slots that you want to define");
		frm.numslots.focus();
		return false;
	}

	if (frm.courseid.value.replace(/ /g, "") == ""){
		alert("Must select a course");
		frm.courseid.focus();
		return false;
	}

	if (frm.thrudate.value.replace(/ /g, "") == ""){
		alert("Must select an expiration date");
		frm.thrudate.focus();
		return false;
	}

	if (!IsDate(frm.thrudate.value)) {
		alert("Expiration Date must be a valid date format (MM/DD/YYYY)");
		frm.thrudate.focus();
		return false;
	}

	if (!IsNum(frm.numslots.value)) {
		alert("Number of Slots must be a valid numeric value.");
		frm.numslots.focus();
		return false;
	}

	frm.submit();

}


function DoCertBlockAdd(frm){

	
	if (frm.numcerts.value.replace(/ /g, "") == ""){
		alert("Must select the number of certificates that you want to define");
		frm.numcerts.focus();
		return false;
	}

	if (!IsNum(frm.numcerts.value)) {
		alert("Number of certs must be a valid numeric value.");
		frm.numcerts.focus();
		return false;
	}

	frm.submit();

}

function DoAdminCertBlockAdd(frm){

	
	if (frm.numpurch.value.replace(/ /g, "") == ""){
		alert("Must select the number of certificates that you want to define");
		frm.numpurch.focus();
		return false;
	}

	if (!IsNum(frm.numpurch.value)) {
		alert("Number of certs must be a valid numeric value.");
		frm.numpurch.focus();
		return false;
	}

	if (frm.affiliateid.value.replace(/ /g, "") == ""){
		alert("Must select the affiliate");
		frm.affiliateid.focus();
		return false;
	}

	if (frm.productid.value.replace(/ /g, "") == ""){
		alert("Must select the Product");
		frm.productid.focus();
		return false;
	}

	frm.submit();

}

function DoCorpUserInfo() {

	alert("1")
	//alert(document.forms(1).fname.value)
}

function DoCorpUserInfo2() {

	alert("1")
	alert(document.forms(1).fname.value)

    if(document.forms(1).courseid.value.replace(/ /g, "") == "") {
        alert("Must select a course")
		document.forms(1).courseid.focus();
		return false;
    }
    if(document.forms(1).fname.value.replace(/ /g, "") == "") {
        alert("First Name must be entered")
		document.forms(1).fname.focus();
		return false;
    }
    if(document.forms[1].lname.value == "") {
        alert("Last Name must be entered")
		document.forms[1].lname.focus();
		return false;
    }
    if(document.forms[1].coname.value == "") {
        alert("Company Name must be entered")
		document.forms[1].coname.focus();
		return false;
    }
    if(document.forms[1].addr1.value == "") {
        alert("Address must be entered")
		document.forms[1].coaddr.focus();
		return false;
    }
    if(document.forms[1].city.value == "") {
        alert("City must be entered")
		document.forms[1].city.focus();
		return false;
    }
    if (document.forms[1].state.value == "Choose a state") {
        alert("State must be entered")
		document.forms[1].state.focus();
		return false;
    }
    if(document.forms[1].zip.value == "") {
        alert("Zip Code must be entered")
		document.forms[1].zip.focus();
		return false;
    }
    
    if(document.forms[1].phone.value == "") {
        alert("Phone must be entered")
		document.forms[1].phone.focus();
		return false;
    }
    if(document.forms[1].email.value == "") {
        alert("Email address must be entered")
		document.forms[1].email.focus();
		return false;
    }
    
    document.forms[1].submit();
	return false;
}

function DoDel(){
	if(!confirm("Are you sure you want to delete this item?")) {
		return false;
	}
}


function OKtoEmailCert(){
	if(!confirm("Are you sure you want to email a certificate to this student?")) {
		return false;
	}
}

function DoQuick(){

	student = false
	if(document.forms[0].studentids.length){
		for(var i = 0; i < document.forms[0].studentids.length; i++){
			if (document.forms[0].studentids[i].checked){
				student = true
			}
		}
	}else{
		if (document.forms[0].studentids.checked){
			student = true
		}
	}
	if(!student) {
        	alert("Must select at least one student to process")
		return false;
    	}

	document.forms[0].submit();

}

function DoProblemLet(){

	student = false
	if(document.forms[1].studentids.length){
	
		for(var i = 0; i < document.forms[1].studentids.length; i++){
			if (document.forms[1].studentids[i].checked){
				student = true
			}
		}
	}else{
		if (document.forms[1].studentids.checked){
			student = true
		}
	}

	if(!student) {
        	alert("Must select at least one student to process")
		return false;
    	}

	document.forms[1].submit();
}

function DoClassConfirmLet(){

	classf = false
	if(document.forms[1].classids.length){
	
		for(var i = 0; i < document.forms[1].classids.length; i++){
			if (document.forms[1].classids[i].checked){
				classf = true
			}
		}
	}else{
		if (document.forms[1].classids.checked){
			classf = true
		}
	}

	if(!classf) {
        	alert("Must select at least one class to process")
		return false;
    	}

	document.forms[1].submit();
}

function DoSelfRegister() {

	course = false
	if (document.forms[0].coursesel.length == null){
		if (document.forms[0].coursesel.checked){
			course = true
		}
	}else{

		for(var i = 0; i < document.forms[0].coursesel.length; i++){
			if (document.forms[0].coursesel[i].checked){
				course = true
			}
		}
	}

    	if(!course) {
        	alert("Select a course")
		return false;
    	}


	if(document.forms[0].fname.value.replace(/ /g, "") == "") {
        alert("Enter First Name")
		document.forms[0].fname.focus();
		return false;
    }
	if(document.forms[0].fname.value == "First") {
        alert("Enter First Name")
		document.forms[0].fname.focus();
		return false;
    }

    if(document.forms[0].lname.value.replace(/ /g, "") == "") {
        alert("Enter Last Name")
		document.forms[0].lname.focus();
		return false;
    }

	if(document.forms[0].lname.value == "Last") {
        alert("Enter Last Name")
		document.forms[0].lname.focus();
		return false;
    }

    if(document.forms[0].loginid.value.replace(/ /g, "") == "") {
        alert("Select a Login ID")
		document.forms[0].loginid.focus();
		return false;
    }
    if(document.forms[0].password.value.replace(/ /g, "") == "") {
        alert("Select a password")
		document.forms[0].password.focus();
		return false;
    }

    if(document.forms[0].password.value != document.forms[0].repassword.value) {
        alert("Password and Re-Enter password do not match, please try again.")
		document.forms[0].password.focus();
		return false;
    }
    
	if(document.forms[0].emailaddr.value == "") {
        alert("Email address must be entered")
		document.forms[0].emailaddr.focus();
		return false;
    }

	if(!IsEmailAddr(document.forms[0].emailaddr.value)) {
        alert("Email address must be a valid format (xxx@yyy.zzz)")
		document.forms[0].emailaddr.focus();
		return false;
    }

	if(document.forms[0].coaddr1.value == "") {
        alert("Enter Address")
		document.forms[0].coaddr1.focus();
		return false;
    }

    if(document.forms[0].cocity.value == "") {
        alert("Enter City")
		document.forms[0].cocity.focus();
		return false;
    }

    if (document.forms[0].costate.value == "Choose a state") {
        alert("Enter State")
		document.forms[0].costate.focus();
		return false;
    }

    if(document.forms[0].cozip.value == "") {
        alert("Enter Zip Code")
		document.forms[0].cozip.focus();
		return false;
    }
	

    document.forms[0].submit();
	return false;
}

function DoASHIRegister() {

    

	if(document.forms[0].coname.value == "") {
        alert("Enter Company Name")
		document.forms[0].coname.focus();
		return false;
    }

	if(document.forms[0].coaddr1.value == "") {
        alert("Enter Address")
		document.forms[0].coaddr1.focus();
		return false;
    }

	

    if(document.forms[0].cocity.value == "") {
        alert("Enter City")
		document.forms[0].cocity.focus();
		return false;
    }

    if (document.forms[0].costate.value == "Choose a state") {
        alert("Enter State")
		document.forms[0].costate.focus();
		return false;
    }

    if(document.forms[0].cozip.value == "") {
        alert("Enter Zip Code")
		document.forms[0].cozip.focus();
		return false;
    }
	
	if(document.forms[0].cophone.value == "") {
        alert("Enter Phone")
		document.forms[0].cophone.focus();
		return false;
    }

	if(document.forms[0].emailaddr.value == "") {
        alert("Email address must be entered")
		document.forms[0].emailaddr.focus();
		return false;
    }

	if(!IsEmailAddr(document.forms[0].emailaddr.value)) {
        alert("Email address must be a valid format (xxx@yyy.zzz)")
		document.forms[0].emailaddr.focus();
		return false;
    }


	if(document.forms[0].ownersname.value == "") {
        alert("Enter Owner Name")
		document.forms[0].ownersname.focus();
		return false;
    }

	if(document.forms[0].managername.value == "") {
        alert("Enter Manager Name")
		document.forms[0].managername.focus();
		return false;
    }

    document.forms[0].submit();
	return false;
}

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;
	}
	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;
}
