// form validation
function validateThisForm(whichForm,whichFormFields){
	var thisForm=document.forms[whichForm];
	var theseFormFields=new Array();
	var theseFormFields=whichFormFields.split(",");
	var submitForm=true;
	var focusField="";

	for (i=0; i < theseFormFields.length; i++) {
		var thisFormField=theseFormFields[i];
		var thisFormFieldHidden=thisFormField + '_hidden';
		var thisFormFieldElement=thisForm[thisFormField];
		var thisFormFieldHiddenElement=document.getElementById(thisFormFieldHidden);
		var thisFormFieldStyle=thisFormFieldHiddenElement.style;

		if((thisFormFieldElement.type == 'text' || thisFormFieldElement.type == 'password' || thisFormFieldElement.type == 'textarea' || thisFormFieldElement.type == 'file') && thisFormFieldElement.value == '') {
			thisFormFieldStyle.visibility='visible';
			thisFormFieldStyle.display='block';
			submitForm=false;
		}
		else if(thisFormFieldElement.type == 'select-one' && (thisFormFieldElement.selectedIndex == 0 || thisFormFieldElement.selectedIndex == -1)) {
			thisFormFieldStyle.visibility='visible';
			thisFormFieldStyle.display='block';
			submitForm=false;
		}
		else if(thisFormFieldElement.type == 'select-multiple' && thisFormFieldElement.selectedIndex == -1) {
			thisFormFieldStyle.visibility='visible';
			thisFormFieldStyle.display='block';
			submitForm=false;
		}
		else if(thisFormFieldElement.type == 'radio' && !thisFormFieldElement.checked) {
			thisFormFieldStyle.visibility='visible';
			thisFormFieldStyle.display='block';
			submitForm=false;
		}
		/* else if(thisFormFieldElement.type == 'password' && !validatePassword(thisFormFieldElement)) {
			thisFormFieldStyle.visibility='visible';
			thisFormFieldStyle.display='block';
			submitForm=false;
		} */
		else {
			thisFormFieldStyle.visibility='hidden';
			thisFormFieldStyle.display='none';
		}
		if(focusField == '' && thisFormFieldStyle.visibility == 'visible') {
			focusField=thisFormFieldElement;
		}
	}

	switch (whichForm) {
		case 'adminLoginForm':
			if(thisForm['adminEmail'].value && !validateEmail(thisForm['adminEmail'])) {
				document.getElementById('adminEmail_hidden').innerHTML='<span class="required">Please enter a valid email address.</span>';
				document.getElementById('adminEmail_hidden').style.visibility='visible';
				document.getElementById('adminEmail_hidden').style.display='block';
				submitForm=false;
			}
			break;
		case 'userLoginForm':
			if(thisForm['userEmail'].value == '' || !validateEmail(thisForm['userEmail'])) {
				if(thisForm['userEmail'].value && !validateEmail(thisForm['userEmail'])) {
					document.getElementById('userEmail_hidden').innerHTML='<span class="required">Please enter a valid email address.</span>';
				}
				document.getElementById('userEmail_hidden').style.visibility='visible';
				document.getElementById('userEmail_hidden').style.display='block';

				if(thisForm['userPass'].value == '') {
					document.getElementById('userPass_hidden').style.visibility='visible';
					document.getElementById('userPass_hidden').style.display='block';
				}
				else {
					document.getElementById('userPass_hidden').style.visibility='hidden';
					document.getElementById('userPass_hidden').style.display='none';
				}
				submitForm=false;
			}

			else if(thisForm['userEmail'].value) {
				document.getElementById('userPass_hidden').style.visibility='hidden';
				document.getElementById('userPass_hidden').style.display='none';
				submitForm=true;
			}
			break;
		case 'personalInfoForm':
			var personalFocus="";
			if(thisForm['affiliationID'].value == 1) {
				if(thisForm['serviceID'].selectedIndex == 0) {
					document.getElementById('serviceID1_hidden').style.visibility='visible';
					document.getElementById('serviceID1_hidden').style.display='block';
					personalFocus=thisForm['serviceID'];
					submitForm=false;
				}
				if(thisForm['rankID'].selectedIndex == 0) {
					document.getElementById('rankID1_hidden').style.visibility='visible';
					document.getElementById('rankID1_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['rankID'];
					}
					submitForm=false;
				}
				if(thisForm['organizationName'].value == '') {
					document.getElementById('organizationName1_hidden').style.visibility='visible';
					document.getElementById('organizationName1_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['organizationName'];
					}
					submitForm=false;
				}
			}
			else if(thisForm['affiliationID'].value == 2) {
				if(!thisForm['grade'][0].checked && !thisForm['grade'][1].checked) {
					document.getElementById('grade2_hidden').style.visibility='visible';
					document.getElementById('grade2_hidden').style.display='block';
					personalFocus=thisForm['grade'][0];
					submitForm=false;
				}
				if(!thisForm['DOD'][0].checked && !thisForm['DOD'][1].checked) {
					document.getElementById('DOD2_hidden').style.visibility='visible';
					document.getElementById('DOD2_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['DOD'][0];
					}
					submitForm=false;
				}
				else if(thisForm['DOD'][0].checked && thisForm['serviceID'].selectedIndex == 0) {
					document.getElementById('serviceID2_hidden').style.visibility='visible';
					document.getElementById('serviceID2_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['serviceID'];
					}
					submitForm=false;
				}
				else if(thisForm['DOD'][1].checked && thisForm['agencyID'].selectedIndex == 0) {
					document.getElementById('agencyID2_hidden').style.visibility='visible';
					document.getElementById('agencyID2_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['agencyID'];
					}
					submitForm=false;
				}
				if(thisForm['organizationName'].value == '') {
					document.getElementById('organizationName2_hidden').style.visibility='visible';
					document.getElementById('organizationName2_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['organizationName'];
					}
					submitForm=false;
				}
			}
			else if(thisForm['affiliationID'].value == 3) {
				if(!thisForm['DOD'][0].checked && !thisForm['DOD'][1].checked) {
					document.getElementById('DOD3_hidden').style.visibility='visible';
					document.getElementById('DOD3_hidden').style.display='block';
					personalFocus=thisForm['DOD'][0];
					submitForm=false;
				}
				else if(thisForm['DOD'][0].checked && thisForm['serviceID'].selectedIndex == 0) {
					document.getElementById('serviceID3_hidden').style.visibility='visible';
					document.getElementById('serviceID3_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['serviceID'];
					}
					submitForm=false;
				}
				else if(thisForm['DOD'][1].checked && thisForm['agencyID'].selectedIndex == 0) {
					document.getElementById('agencyID3_hidden').style.visibility='visible';
					document.getElementById('agencyID3_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['agencyID'];
					}
					submitForm=false;
				}
				if(thisForm['companyName'].value == '') {
					document.getElementById('companyName3_hidden').style.visibility='visible';
					document.getElementById('companyName3_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['companyName'];
					}
					submitForm=false;
				}
				/* if(thisForm['DOD'][0].checked && thisForm['organizationName'].value == '') {
					document.getElementById('organizationName3_hidden').style.visibility='visible';
					document.getElementById('organizationName3_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['organizationName'];
					}
					submitForm=false;
				} */
				if(!thisForm['exhibitorYes'].checked && !thisForm['exhibitorNo'].checked) {
					document.getElementById('exhibitor3_hidden').style.visibility='visible';
					document.getElementById('exhibitor3_hidden').style.display='block';
					if(personalFocus == '') {
						personalFocus=thisForm['exhibitorYes'];
					}
					submitForm=false;
				}
				else if(thisForm['exhibitorNo'].checked) {
					if(thisForm['organizationName'].value == '') {
						document.getElementById('organizationName3_hidden').style.visibility='visible';
						document.getElementById('organizationName3_hidden').style.display='block';
						if(personalFocus == '') {
							personalFocus=thisForm['organizationName'];
						}
						submitForm=false;
					}
					if(thisForm['sponsorPOC'].value == '') {
						document.getElementById('sponsorPOC3_hidden').style.visibility='visible';
						document.getElementById('sponsorPOC3_hidden').style.display='block';
						if(personalFocus == '') {
							personalFocus=thisForm['sponsorPOC'];
						}
						submitForm=false;
					}
					if(thisForm['sponsorPOCEmail'].value == '') {
						document.getElementById('sponsorPOCEmail3_hidden').style.visibility='visible';
						document.getElementById('sponsorPOCEmail3_hidden').style.display='block';
						if(personalFocus == '') {
							personalFocus=thisForm['sponsorPOCEmail'];
						}
						submitForm=false;
					}
					if(thisForm['sponsorPOCPhone'].value == '') {
						document.getElementById('sponsorPOCPhone3_hidden').style.visibility='visible';
						document.getElementById('sponsorPOCPhone3_hidden').style.display='block';
						if(personalFocus == '') {
							personalFocus=thisForm['sponsorPOCPhone'];
						}
						submitForm=false;
					}
				}
			}
			else if(thisForm['affiliationID'].value != 'NULL') {
				if(thisForm['organizationName'].value == '') {
					document.getElementById('organizationName4_hidden').style.visibility='visible';
					document.getElementById('organizationName4_hidden').style.display='block';
					personalFocus=thisForm['organizationName'];
					submitForm=false;
				}
			}
			if(personalFocus != '') {
				focusField=personalFocus;
			}
			break;
	}

	if(focusField != '') {
		focusField.focus();
	}
	return submitForm;
}

// email validation
function validateEmail(field) {
	var result=true;
	var fieldValue=field.value;
	reEmail=new RegExp(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/);

	if(!reEmail.test(fieldValue)) {
		result=false;
	}

	return result;
}

// zip code validation
function validateZip(field) {
	var result=true;
	var fieldValue=field.value;
	reZip=new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);

	if(!reZip.test(fieldValue)) {
		result=false;
	}

	return result;
}

function checkRadioGroup(radioGroup) {
	var radioGroupLength=radioGroup.length;
	var lastChar=radioGroup.charAt(radioGroupLength - 1);
	/* If an all day event */
	if(lastChar == 5) {
		var radioGroupDay=radioGroup.substring(0, radioGroupLength - 1);
		var radioGroup1=radioGroupDay + '1';
		var radioGroup2=radioGroupDay + '2';
		var radioGroup1Type=document.regEventForm[radioGroup1];
		var radioGroup2Type=document.regEventForm[radioGroup2];
		if (typeof radioGroup1Type != "undefined") {
			var radioGroup1Length=eval('document.regEventForm.' + radioGroup1 + '.length') - 1;
			var radioGroup1FormField=eval('document.regEventForm.' + radioGroup1 + '[' + radioGroup1Length + ']');
			/* Check the morning "Register for no sessions in this group" radio button */
			radioGroup1FormField.checked=true;
		}
		if (typeof radioGroup2Type != "undefined") {
			var radioGroup2Length=eval('document.regEventForm.' + radioGroup2 + '.length') - 1;
			var radioGroup2FormField=eval('document.regEventForm.' + radioGroup2 + '[' + radioGroup2Length + ']');
			/* Check the afternoon "Register for no sessions in this group" radio button */
			radioGroup2FormField.checked=true;
		}
	}
	/* If a morning or afternoon event */
	else if(lastChar == 1 || lastChar == 2) {
		var radioGroupDay=radioGroup.substring(0, radioGroupLength - 1);
		var radioGroup5=radioGroupDay + '5';
		var radioGroup5Length=eval('document.regEventForm.' + radioGroup5 + '.length') - 1;
		var radioGroup5FormField=eval('document.regEventForm.' + radioGroup5 + '[' + radioGroup5Length + ']');
		/* Check the all day "Register for no sessions in this group" radio button */
		radioGroup5FormField.checked=true;
	}
}

function isdefined(variable) {
	return (typeof(window[variable]) === "undefined")?  false: true;
}
