//USER Signup
function validateSignup(thisform) {
	errMsg = "";
	with (thisform) {
		errMsg += validateRequired(userCompany,"Company is a required field.\n");
		errMsg += validateRequired(userFirstName,"First Name is a required field.\n");
		errMsg += validateRequired(userLastName,"Last Name is a required field.\n");
		errMsg += validateRequired(userTitle,"Position Title is a required field.\n");
		errMsg += validateRequired(userDept,"Department/Division is a required field.\n");
		errMsg += validateRequired(userPhoneO,"Office Phone is a required field.\n");
		errMsg += validateRequired(userEmail,"Email is a required field.\n");
		errMsg += validateEmail(userEmail,"Email address is not valid.\n");
		errMsg += validateSame(userEmail,userEmail2,"Email addresses do not match.\n");
		errMsg += validateRequired(userName,"User Name is a required field.\n");
		errMsg += validateRequired(userPass,"Password is a required field.\n");
		errMsg += validateSame(userPass,userPass2,"Passwords do not match.\n");
	}
	if (errMsg == "") {
		return true;
	} else {
		errMsg = "The following fields are required to process this form:\n\n" + errMsg;	//header
		errMsg += "\nPlease correct these errors before submitting this form.";		//footer
		alert(errMsg);
		return false;
	}
}

//USER Profile
function validateProfile(thisform) {
	errMsg = "";
	with (thisform) {
		errMsg += validateRequired(userFirstName,"First Name is a required field.\n");
		errMsg += validateRequired(userLastName,"Last Name is a required field.\n");
		errMsg += validateRequired(userTitle,"Position Title is a required field.\n");
		errMsg += validateRequired(userDept,"Department/Division is a required field.\n");
		errMsg += validateRequired(userPhoneO,"Office Phone is a required field.\n");
	}
	if (errMsg == "") {
		return true;
	} else {
		errMsg = "The following fields are required to process this form:\n\n" + errMsg;	//header
		errMsg += "\nPlease correct these errors before submitting this form.";		//footer
		alert(errMsg);
		return false;
	}
}

//USER Profile User
function validateProfileUser(thisform) {
	errMsg = "";
	with (thisform) {
		errMsg += validateRequired(userName,"User Name is a required field.\n");
		errMsg += validateRequired(userPass,"Password is a required field.\n");
		errMsg += validateSame(userPass,userPass2,"Passwords do not match.\n");
		errMsg += validateRequired(userEmail,"Email is a required field.\n");
		errMsg += validateEmail(userEmail,"Email address is not valid.\n");
		errMsg += validateSame(userEmail,userEmail2,"Email addresses do not match.\n");
	}
	if (errMsg == "") {
		return true;
	} else {
		errMsg = "The following fields are required to process this form:\n\n" + errMsg;	//header
		errMsg += "\nPlease correct these errors before submitting this form.";		//footer
		alert(errMsg);
		return false;
	}
}

//ADMIN Company Edit
function validateAdminCompany(thisform) {
	errMsg = "";
	with (thisform) {
		errMsg += validateRequired(compName,"Company Name is a required field.\n");
		errMsg += validateRequired(compURL,"Company URL is a required field.\n");
		errMsg += validateRequired(contactFirstName,"Contact First Name is a required field.\n");
		errMsg += validateRequired(contactLastName,"Contact Last Name is a required field.\n");
		errMsg += validateRequired(contactAddr1,"Contact Address is a required field.\n");
		errMsg += validateRequired(contactCity,"Contact City is a required field.\n");
		errMsg += validateRequired(contactState,"Contact State is a required field.\n");
		errMsg += validateRequired(contactZIP,"Contact ZIP is a required field.\n");
		errMsg += validateRequired(contactPhoneO,"Contact Office Phone is a required field.\n");
		errMsg += validateRequired(contactEmail,"Primary Contact Email is a required field.\n");
		errMsg += validateEmail(contactEmail,"Primary Contact Email address is not valid.\n");
		errMsg += validateEmail(contact1Email,"First Alternate Contact Email address is not valid.\n");
		errMsg += validateEmail(contact2Email,"Second Alternate Contact Email address is not valid.\n");
	}
	if (errMsg == "") {
		return true;
	} else {
		errMsg = "The following fields are required to process this form:\n\n" + errMsg;	//header
		errMsg += "\nPlease correct these errors before submitting this form.";		//footer
		alert(errMsg);
		return false;
	}
}

//ADMIN User Edit/New
function validateAdminUser(thisform) {
	errMsg = "";
	with (thisform) {
		errMsg += validateRequired(userCompany,"Company is a required field.\n");
		errMsg += validateRequired(userFirstName,"First Name is a required field.\n");
		errMsg += validateRequired(userLastName,"Last Name is a required field.\n");
		errMsg += validateRequired(userTitle,"Position Title is a required field.\n");
		errMsg += validateRequired(userDept,"Department/Division is a required field.\n");
		errMsg += validateRequired(userPhoneO,"Office Phone is a required field.\n");
	}
	if (errMsg == "") {
		return true;
	} else {
		errMsg = "The following fields are required to process this form:\n\n" + errMsg;	//header
		errMsg += "\nPlease correct these errors before submitting this form.";		//footer
		alert(errMsg);
		return false;
	}
}

//ADMIN Company New
function validateAdminCompanyNew(thisform) {
	errMsg = "";
	with (thisform) {
		errMsg += validateRequired(compName,"Company Name is a required field.\n");
		errMsg += validateRequired(compURL,"Company URL is a required field.\n");
	}
	if (errMsg == "") {
		return true;
	} else {
		errMsg = "The following fields are required to process this form:\n\n" + errMsg;	//header
		errMsg += "\nPlease correct these errors before submitting this form.";		//footer
		alert(errMsg);
		return false;
	}
}


//Validation Choices
function validateRequired(field,alerttxt) {
	with (field) {
		if (value==null||value=="")
			return alerttxt;
		else
			return "";
	}
}
function validateEmail(field,alerttxt) {
	with (field) {
		apos=field.value.indexOf("@")
		dotpos=field.value.lastIndexOf(".")
		if (value==null||value=="")
			return ""; //allow nothing, use validateRequired on same field to check this
		else if (apos<1||dotpos-apos<2) {
		  return alerttxt;
		} else {
			return "";
		}
	}
}
function validateSame(field1,field2,alerttxt) {
	if (field1.value != field2.value)
		return alerttxt;
	else
		return "";
}

// Search Validation
function validateSearch(thisform) {
	setStartDate(thisform);
	setEndDate(thisform);
	return true;
}
function setStartDate(thisform) {
	// Formatted as m/d/Y (always first day of month)
	if (thisform.startyear.value > 0) {
		date = "";
		if (thisform.startmonth.value == 0) {
			// Same as selecting January
			date = "1/1/";
		} else {
			date = thisform.startmonth.value + "/1/";
		}
		thisform.start.value = date + thisform.startyear.value;
	}
}
function setEndDate(thisform) {
	// Formatted as m/d/Y (always last day of month - except leap Feb)
	if (thisform.endyear.value > 0) {
		date = "";
		month = thisform.endmonth.value;
		switch(month) {
			case 2:
				date = "2/28/";
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				date = month + "/30/";
				break;
			default:
				// Same as selecting December
				month = 12;
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				date = month + "/31/";
				break;
		}
		thisform.end.value = date + thisform.endyear.value;
	}
}
