// JavaScript Document
function myMM_validateForm(d,validateStr) { //v4.0
  var i;
  var p;
  var q;
  var nm;
  var test;
  var num;
  var min,max;
  var errors='';
  var args=validateStr.split(',');
  var argsLen = args.length;
  for (i=0; i<(argsLen-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i],d);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  return (errors == '');
}


function validateCourseInfo(myForm,maxCourses) {
	var i,argStr,rVal=true;
	for (i=1; (i<=maxCourses) && (rVal==true); i++) {
	  if (eval("myForm.checkCourse" + i + ".checked") == true) {
		argStr = 'subEventID' + i + ',,R,subEventName' + i + ',,R';
		rVal = myMM_validateForm(myForm,argStr);
	  }
	}
	return rVal;
}


function validateFax(myForm) {
	var optArgFax = 'persFaxACode,,RisNum,persFaxPart1,,RisNum,persFaxPart2,,RisNum';
	var tempNum;
	var rVal = true;
	if (myForm.addFax.checked == true) {
	  rVal = myMM_validateForm(myForm,optArgFax);
	  if (rVal == true) {
		tempNum = "(" + myForm.persFaxACode.value + ") " + myForm.persFaxPart1.value + "-" + myForm.persFaxPart2.value;
		if (tempNum.length < 14) {
		  alert('The following error(s) occurred:\n' + '- Fax Number is incomplete.');
		  rVal = false;
		}
		else myForm.persFax.value = tempNum;
	  }
	}
	else myForm.persFax.value = "none";
	return rVal;
}


function validatePhone(myForm) {
	var optArgPhone = 'persPhoneACode,,RisNum,persPhonePart1,,RisNum,persPhonePart2,,RisNum';
	var tempNum;
	var rVal;
	rVal = myMM_validateForm(myForm,optArgPhone);
	if (rVal == true) {
	  tempNum = "(" + myForm.persPhoneACode.value + ") " + myForm.persPhonePart1.value + "-" + myForm.persPhonePart2.value;
	  if (tempNum.length < 14) {
		alert('The following error(s) occurred:\n' + '- Phone Number is incomplete.');
		rVal = false;
	  }
	  else myForm.persPhone.value = tempNum;
	}
	return rVal;
}


function validateStateProv(myForm) {
	var optArgProv = 'persProvince,,R';
	var stateIndex = myForm.selectState.selectedIndex;
	var rVal;
	rVal = (myForm.stateOrProvince[0].checked == true);
	if (rVal == true) {
	  myForm.persCountry.value = 'USA';
	  myForm.StateProvince.value = myForm.selectState.options[stateIndex].value;
	}
	else {
	  rVal = myMM_validateForm(myForm,optArgProv);
	  if (rVal == true) myForm.StateProvince.value = myForm.persProvince.value;
	}
	return rVal;
}


function validatePersInfo(myForm) {
	var reqArgStr1 = 'persFirstName,,R,persLastName,,R,persAddress1,,R,persCity,,R';
	var reqArgStr2 = 'persZIP,,R,persCountry,,R,persEmail,,RisEmail';
	var rVal;
	rVal = myMM_validateForm(myForm,reqArgStr1);
	if (rVal == true) {
	  rVal = validateStateProv(myForm);
	  if (rVal == true) rVal = myMM_validateForm(myForm,reqArgStr2);
	}
	return rVal;
}


function regFormValidate(myForm) {
	if (validatePersInfo(myForm) == false) return false;
	if (validatePhone(myForm) == false) return false;
	if (validateFax(myForm) == false) return false;
	if (validateCourseInfo(myForm,3) == false) return false;
	ldSourceSelected(myForm);
	return true;
}


function regSubmit(myForm) {
	var pcDateObj;
	var currPCTime;
	var currData;
	var visits;
	if (regFormValidate(myForm) == false) return false;
	currData = getFormData(myForm);
	if (chkClean(currData)  == false) {
	  alert(warnAbuse);
	  location.replac(regHome);
	}
	if (confirm(cnfrmSubmit)) {
	  disElement(myForm.success,myForm.selectState,myForm.sourceRef);
	  disElement(myForm.persPhoneACode,myForm.persPhonePart1,myForm.persPhonePart2);
	  disElement(myForm.persFaxACode,myForm.persFaxPart1,myForm.persFaxPart2);
	  pcDateObj = new Date();
	  currPCTime = pcDateObj.getTime();
	  pcDateObj.setTime(currPCTime + parseInt(timeDiff));
	  setFormDate(pcDateObj,myForm);
	  setFormTime(pcDateObj,myForm);
	  myForm.strSrvrDate.value = pcDateObj.toUTCString();
	  setRefNum(myForm);
	  currData = getFormData(myForm);
	  myForm.success.value = defServer + regRes + "?" + currData;
	  enElement(myForm.success,myForm.selectState,myForm.sourceRef);
	  enElement(myForm.persPhoneACode,myForm.persPhonePart1,myForm.persPhonePart2);
	  enElement(myForm.persFaxACode,myForm.persFaxPart1,myForm.persFaxPart2);
	  delete pcDateObj;
	  return true;
	}
	else return false;
}
