//Login Form Validation
function loginValid(form){
	errors = "";
	if (form.email.value == "") {
		errors = errors+"- E-mail Address is required\n"
	}
	if (form.password.value == "") {
		errors = errors+"- Password is required\n";
	}
	if (errors == ""){
		return true;
	} else {
		errors = "The system could not log you in because of the following reasons.\nPlease make corrections and try again.\n\n"+errors;
		window.alert(errors);	
		return false;
	}
}
//Password Change Form Validation
function changePassValid(form){
	errors = "";
	if (!/^[A-Za-z\S]{6,12}$/.test(form.password.value)) {
		errors = errors+"You password must use 6-12 letters, numbers, or special characters.\nPlease try again.\n";
		window.alert(errors);
		return false;	
	} else {
		if (form.password.value != form.password2.value) {
			errors = "Passwords do not match.\nPlease try again.\n"
			window.alert(errors);
			return false;
		} else {
			if(form.password.value == "") {
				errors = errors+" - Password is required\n";
			}
			if(form.password2.value == "") {
				errors = errors+" - Confirmation Password is required\n";
			}
			if (errors == "") {
				return true;
			} else {
				errors = "Your request could not be processed for the following reasons.\nPlease make corrections and try again.\n\n"+errors;
				window.alert(errors);	
				return false;
			}	
		}
	}
}
//Forgotten Password Form Validation
function forgotPassValid(form){
	errors = "";
	if (form.username.value == "") {
		errors = "Username is required to process your request.\nPlease try again.\n"
		window.alert(errors);
		return false;
	} else {
		return true;
	}
}
//New Account Registration Form Validation
function accountRegValid(form){
	errors = "";
	if (form.FIRSTNAME.value == "") {
		errors = errors+"- First Name is required\n";
	}
	if (form.LASTNAME.value == "") {
		errors = errors+"- Last Name is required\n";
	}
	if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.EMAIL.value)) {
		errors = errors+"- Please enter a valid Email Address\n";
	}
	if (form.EMAIL.value != form.EMAIL2.value) {
		errors = errors+"- Email Addresses do not match\n";	
	}
	if (form.AGE.value == "") {
		errors = errors+"- Birthday is required\n";
	}
	if (form.COUNCIL.value == "") {
		errors = errors+"- Council is required\n";
	}
	if (!/^[A-Za-z0-9S]{1,25}$/.test(form.USERNAME.value)) {
		errors = errors+"- Username does not meet requirements\n";
	}
	if (!/^[A-Za-z0-9S]{6,12}$/.test(form.PASSWORD.value)) {
		errors = errors+"- Password does not meet requirements\n";
	}
	if (form.PASSWORD.value != form.PASSWORD2.value ) {
		errors = errors+"- Passwords do not match\n";
	}
	if (errors == ""){
		return true;
	} else {
		errors = "Your account could not be created for the following reasons.\nPlease make corrections and try again.\n\n"+errors;
		window.alert(errors);	
		return false;
	}
}
//Triggers age calculation
function getage (form) {
	var userage=0;
	var m = form.MONTH.value;
	var d = form.DAY.value;
	var y = form.YEAR.value;
	if (m != "" ) {
		if (d != "") {
			if (y != ""){
				userage = calcage(m,d,y);
				form.AGE.value = userage;
			}
		}
	}
		
}
//Calculates age based on supplied bithdate
function calcage(m,d,y) {
	var currentTime = new Date();
	var userage = currentTime.getFullYear() - y;
	if ((currentTime.getMonth()+1) <= m) {
		if(currentTime.getDate() < d) {
			userage = userage - 1;	
		}
	}
	return userage;
}
function displaymessage(msg){
	var message = "";
	if (msg == "notavail") {
		message = "This feature is not available at this time.\n\nPlease try back later.";
		window.alert(message);
	} else if (msg == "leavesite") {
		message = "You are about to navigate away from this site.\n\nAre you sure you want to do this?";
		window.confirm(message);
	} else if (msg == "closed") {
		message = "Online Conclave registration has ended.\n\nIf you still wish to attend, you must register as a walk-on at the event.";
		window.alert(message);
	} else if (msg == "tradingpost") {
		message = "Select this option only if you do not plan on attending Conclave.\n\nIf you plan on attending, return to your Account Dashboard and use the regular registration form.";
		window.alert(message);
	}
}

function eventValidation(form){
	errors = "";
	
	if (form.FIRSTNAME.value == "") {
		errors = errors+"- First Name is required\n";
	}
	if (form.LASTNAME.value == "") {
		errors = errors+"- Last Name is required\n";
	}
	if (form.GENDER.value == "Null") {
		errors = errors+"- Gender is required\n";
	}
	if (!/^(\d{4})[.-](\d{1,2})[.-](\d{1,2})$/.test(form.BIRTHDATE.value)) {
		errors = errors+"- Enter a valid Birthdate\n";
	}
	if (form.ADDRESS.value == "Null") {
		errors = errors+"- Address is required\n";
	}
	if (form.CITY.value == "") {
		errors = errors+"- City is required\n";
	}
	if (form.STATE.value == "Null") {
		errors = errors+"- State is required\n";
	}
	if (!/(^\d{5}$)|(^\d{5}-\d{4}$)/.test(form.ZIP.value)) {
		errors = errors+"- Enter a valid Zip Code\n";
	}
	if (!/^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/.test(form.PHONE.value)) {
		errors = errors+"- Enter a valid Phone Number\n"
	}
	if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.EMAIL.value)) {
		errors = errors+"- Enter a valid Email Address\n";
	}
	if (form.COUNCIL.value == "") {
		errors = errors+"- Council is required\n";
	}
	if (form.OAHONOR.value == "Null") {
		errors = errors+"- OA Honor is required\n";
	}
	if (form.ATTENDANCE.value == "Null") {
		errors = errors+"- Attendance is required\n";
	}
	if (form.FIRSTTIME.value == "Null") {
		errors = errors+"- First time attendee is required\n";
	}
	if (form.NAMETAG.value == "") {
		errors = errors+"- Name for nametag is required\n";
	}
	if (form.SHIRT.value != 0 && form.SHIRTSIZE.value == "Null") {
		errors = errors+"- Select a T-shirt size\n";
	}
	if (form.HOODIE.value != 0 && form.HOODIESIZE.value == "Null") {
		errors = errors+"- Select a Hoodie size\n";
	}
	if (errors == ""){
		calcTotal();
		return true;
	} else {
		errors = "Your registration could not be completed for the following reasons.\nPlease make corrections and try again.\n\n"+errors;
		window.alert(errors);	
		return false;
	}
}

function tpOnlyValidation(form){
	errors = "";
	
	if (form.FIRSTNAME.value == "") {
		errors = errors+"- First Name is required\n";
	}
	if (form.LASTNAME.value == "") {
		errors = errors+"- Last Name is required\n";
	}
	if (form.ADDRESS.value == "Null") {
		errors = errors+"- Address is required\n";
	}
	if (form.CITY.value == "") {
		errors = errors+"- City is required\n";
	}
	if (form.STATE.value == "Null") {
		errors = errors+"- State is required\n";
	}
	if (!/(^\d{5}$)|(^\d{5}-\d{4}$)/.test(form.ZIP.value)) {
		errors = errors+"- Enter a valid Zip Code\n";
	}
	if (!/^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/.test(form.PHONE.value)) {
		errors = errors+"- Enter a valid Phone Number\n"
	}
	if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.EMAIL.value)) {
		errors = errors+"- Enter a valid Email Address\n";
	}
	if (form.COUNCIL.value == "") {
		errors = errors+"- Council is required\n";
	}
	if (form.OAHONOR.value == "Null") {
		errors = errors+"- OA Honor is required\n";
	}
	if (form.SHIRT.value != 0 && form.SHIRTSIZE.value == "Null") {
		errors = errors+"- Select a T-shirt size\n";
	}
	if (form.HOODIE.value != 0 && form.HOODIESIZE.value == "Null") {
		errors = errors+"- Select a Hoodie size\n";
	}
	if (errors == ""){
		calcTpTotal();
		return true;
	} else {
		errors = "Your registration could not be completed for the following reasons.\nPlease make corrections and try again.\n\n"+errors;
		window.alert(errors);	
		return false;
	}
}

function eventBulkValidation(form){
	errors = "";
	
	if (form.FIRSTNAME.value == "") {
		errors = errors+"- First Name is required\n";
	}
	if (form.LASTNAME.value == "") {
		errors = errors+"- Last Name is required\n";
	}
	if (form.GENDER.value == "Null") {
		errors = errors+"- Gender is required\n";
	}
	if (!/^(\d{4})[.-](\d{1,2})[.-](\d{1,2})$/.test(form.BIRTHDATE.value)) {
		errors = errors+"- Enter a valid Birthdate\n";
	}
	if (form.COUNCIL.value == "") {
		errors = errors+"- Council is required\n";
	}
	if (form.OAHONOR.value == "Null") {
		errors = errors+"- OA Honor is required\n";
	}
	if (form.ATTENDANCE.value == "Null") {
		errors = errors+"- Attendance is required\n";
	}
	if (form.SHIRT.value != 0 && form.SHIRTSIZE.value == "Null") {
		errors = errors+"- Select a T-shirt size\n";
	}
	if (form.HOODIE.value != 0 && form.HOODIESIZE.value == "Null") {
		errors = errors+"- Select a Hoodie size\n";
	}
	if (errors == ""){
		calcTotal();
		return true;
	} else {
		errors = "Your registration could not be completed for the following reasons.\nPlease make corrections and try again.\n\n"+errors;
		window.alert(errors);	
		return false;
	}
}

function calcTotal(){
	//Zero-fill any blank trading post qty
	if (document.getElementById('SHIRT').value == "" || document.getElementById('SHIRT').value == "0"){
		document.getElementById('SHIRT').value = 0;
		document.getElementById('SHIRTSIZE').value = "Null";
	}
	if (document.getElementById('HOODIE').value == "" || document.getElementById('HOODIE').value == "0"){
		document.getElementById('HOODIE').value = 0;
		document.getElementById('HOODIESIZE').value = "Null";
	}
	if (document.getElementById('HATPIN').value == ""){
		document.getElementById('HATPIN').value = 0;
	}
	if (document.getElementById('HAT').value == ""){
		document.getElementById('HAT').value = 0;
	}
	if (document.getElementById('CONPATCH').value == ""){
		document.getElementById('CONPATCH').value = 0;
	}
	if (document.getElementById('BAKPATCH').value == ""){
		document.getElementById('BAKPATCH').value = 0;
	}
	//Perform Calculations
	var attend = 0;
	var attype = document.getElementById('ATTENDANCE').value;
	var trans = parseInt(document.getElementById('TRANSPORTATION').value);
	if (attype == "None"){
		document.getElementById('TRANSPORTATION').value = 0;
		attend = parseInt(document.getElementById('FEE_VST').value);
	} else if (attype == "Full") {
		var lfee = document.getElementById('LFEE').value;
		document.getElementById('TRANSPORTATION').value = lfee; 
		attend = parseInt(document.getElementById('FEE_STD').value);
	} else if (attype == "Null") {
		attend = 0;
	}
	var trans = parseInt(document.getElementById('TRANSPORTATION').value);
	var shirt;
	var shirtsize = document.getElementById('SHIRTSIZE').value;
	if (shirtsize == "M" || shirtsize == "L" || shirtsize == "XL"){
		shirt = (document.getElementById('SHIRT').value*12); 
	} else if (shirtsize == "2XL" || shirtsize == "3XL"){
		shirt = (document.getElementById('SHIRT').value*14); 
	} else if (shirtsize == "Null") {
		shirt = 0;
	}
	var hoodie;
	var hoodiesize = document.getElementById('HOODIESIZE').value;
	if (hoodiesize == "M" || hoodiesize == "L" || hoodiesize == "XL"){
		hoodie = (document.getElementById('HOODIE').value*20); 
	} else if (hoodiesize == "2XL" || hoodiesize == "3XL"){
		hoodie = (document.getElementById('HOODIE').value*23); 
	} else if (hoodiesize == "Null") {
		hoodie = 0;
	}
	var hatpin = (document.getElementById('HATPIN').value*4);
	var cap = (document.getElementById('HAT').value*12);
	var conp = (document.getElementById('CONPATCH').value*5);
	var bakp = (document.getElementById('BAKPATCH').value*10);
	var tpost = (shirt+hoodie+hatpin+cap+conp+bakp);
	document.getElementById('FEEATT').value = attend;
	document.getElementById('FEETRAN').value = trans;
	document.getElementById('FEETP').value = tpost;
	document.getElementById('FEETOTAL').value = (attend+trans+tpost);
}

function calcTpTotal(){
	//Zero-fill any blank trading post qty
	if (document.getElementById('SHIRT').value == "" || document.getElementById('SHIRT').value == "0"){
		document.getElementById('SHIRT').value = 0;
		document.getElementById('SHIRTSIZE').value = "Null";
	}
	if (document.getElementById('HOODIE').value == "" || document.getElementById('HOODIE').value == "0"){
		document.getElementById('HOODIE').value = 0;
		document.getElementById('HOODIESIZE').value = "Null";
	}
	if (document.getElementById('HATPIN').value == ""){
		document.getElementById('HATPIN').value = 0;
	}
	if (document.getElementById('HAT').value == ""){
		document.getElementById('HAT').value = 0;
	}
	if (document.getElementById('CONPATCH').value == ""){
		document.getElementById('CONPATCH').value = 0;
	}
	if (document.getElementById('BAKPATCH').value == ""){
		document.getElementById('BAKPATCH').value = 0;
	}
	//Perform Calculations
	var shirt;
	var shirtsize = document.getElementById('SHIRTSIZE').value;
	if (shirtsize == "M" || shirtsize == "L" || shirtsize == "XL"){
		shirt = (document.getElementById('SHIRT').value*12); 
	} else if (shirtsize == "2XL" || shirtsize == "3XL"){
		shirt = (document.getElementById('SHIRT').value*14); 
	} else if (shirtsize == "Null") {
		shirt = 0;
	}
	var hoodie;
	var hoodiesize = document.getElementById('HOODIESIZE').value;
	if (hoodiesize == "M" || hoodiesize == "L" || hoodiesize == "XL"){
		hoodie = (document.getElementById('HOODIE').value*20); 
	} else if (hoodiesize == "2XL" || hoodiesize == "3XL"){
		hoodie = (document.getElementById('HOODIE').value*23); 
	} else if (hoodiesize == "Null") {
		hoodie = 0;
	}
	var hatpin = (document.getElementById('HATPIN').value*4);
	var cap = (document.getElementById('HAT').value*12);
	var conp = (document.getElementById('CONPATCH').value*5);
	var bakp = (document.getElementById('BAKPATCH').value*10);
	var tpost = (shirt+hoodie+hatpin+cap+conp+bakp);
	document.getElementById('FEETOTAL').value = tpost;
}

//Recieve Confirmation before Cancelling Registration
function verifyCancel(){
	confirmString = "Are your sure you want to Cancel your Conclave Registration?";
	var answer = window.confirm(confirmString);
	if (answer == true)	{
		return true;
	} else {
		return false;
	}
}