//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.TP1.value != 0 && form.TP1SIZE.value == "Null") {
		errors = errors+"- Select a Conclave Extreme Set shirt size\n";
	}
	if (form.TP2.value != 0 && form.TP2SIZE.value == "Null") {
		errors = errors+"- Select a Conclave Enthusiast Set shirt size\n";
	}
	if (form.TP4.value != 0 && form.TP4SIZE.value == "Null") {
		errors = errors+"- Select a Cotton Lover Set shirt size\n";
	}
	if (form.TP5.value != 0 && form.TP5SIZE.value == "Null") {
		errors = errors+"- Select a Fellowship T-shirt size\n";
	}
	if (form.TP6.value != 0 && form.TP6SIZE.value == "Null") {
		errors = errors+"- Select a SR2-3S Polo shirt 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.SHIRT1.value != 0 && form.SHIRTSIZE1.value == "Null") {
		errors = errors+"- Select a Conclave T-shirt size\n";
	}
	if (form.SHIRT2.value != 0 && form.SHIRTSIZE2.value == "Null") {
		errors = errors+"- Select a Section 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.TSHIRT.value != 0 && form.TSHIRTSIZE.value == "Null") {
		errors = errors+"- Select a T-shirt 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('TP1').value == "" || document.getElementById('TP1').value == "0" || isNaN(document.getElementById('TP1').value) == true){
		document.getElementById('TP1').value = 0;
		document.getElementById('TP1SIZE').value = "Null";
	}
	if (document.getElementById('TP2').value == "" || document.getElementById('TP2').value == "0" || isNaN(document.getElementById('TP2').value) == true){
		document.getElementById('TP2').value = 0;
		document.getElementById('TP2SIZE').value = "Null";
	}
	if (document.getElementById('TP3').value == "" || isNaN(document.getElementById('TP3').value) == true){
		document.getElementById('TP3').value = 0;
	}
	if (document.getElementById('TP4').value == "" || document.getElementById('TP4').value == "0" || isNaN(document.getElementById('TP4').value) == true){
		document.getElementById('TP4').value = 0;
		document.getElementById('TP4SIZE').value = "Null";
	}
	if (document.getElementById('TP5').value == "" || document.getElementById('TP5').value == "0" || isNaN(document.getElementById('TP5').value) == true){
		document.getElementById('TP5').value = 0;
		document.getElementById('TP5SIZE').value = "Null";
	}
	if (document.getElementById('TP6').value == "" || document.getElementById('TP6').value == "0" || isNaN(document.getElementById('TP6').value) == true){
		document.getElementById('TP6').value = 0;
		document.getElementById('TP6SIZE').value = "Null";
	}
	if (document.getElementById('TP7').value == "" || isNaN(document.getElementById('TP7').value) == true){
		document.getElementById('TP7').value = 0;
	}
	if (document.getElementById('TP8').value == "" || isNaN(document.getElementById('TP8').value) == true){
		document.getElementById('TP8').value = 0;
	}
	if (document.getElementById('TP9').value == "" || isNaN(document.getElementById('TP9').value) == true){
		document.getElementById('TP9').value = 0;
	}
	if (document.getElementById('TP10').value == "" || isNaN(document.getElementById('TP10').value) == true){
		document.getElementById('TP10').value = 0;
	}
	if (document.getElementById('TP11').value == "" || isNaN(document.getElementById('TP11').value) == true){
		document.getElementById('TP11').value = 0;
	}
	if (document.getElementById('TP12').value == "" || isNaN(document.getElementById('TP12').value) == true){
		document.getElementById('TP12').value = 0;
	}
	if (document.getElementById('TP13').value == "" || isNaN(document.getElementById('TP13').value) == true){
		document.getElementById('TP13').value = 0;
	}
	if (document.getElementById('TP14').value == "" || isNaN(document.getElementById('TP14').value) == true){
		document.getElementById('TP14').value = 0;
	}
	if (document.getElementById('TP15').value == "" || isNaN(document.getElementById('TP15').value) == true){
		document.getElementById('TP15').value = 0;
	}
	if (document.getElementById('TP16').value == "" || isNaN(document.getElementById('TP16').value) == true){
		document.getElementById('TP16').value = 0;
	}
	if (document.getElementById('TP17').value == "" || isNaN(document.getElementById('TP17').value) == true){
		document.getElementById('TP17').value = 0;
	}
	if (document.getElementById('TP18').value == "" || isNaN(document.getElementById('TP18').value) == true){
		document.getElementById('TP18').value = 0;
	}
	if (document.getElementById('TP19').value == "" || isNaN(document.getElementById('TP19').value) == true){
		document.getElementById('TP19').value = 0;
	}
	if (document.getElementById('TP20').value == "" || isNaN(document.getElementById('TP20').value) == true){
		document.getElementById('TP20').value = 0;
	}
	if (document.getElementById('TP21').value == "" || isNaN(document.getElementById('TP21').value) == true){
		document.getElementById('TP21').value = 0;
	}
	if (document.getElementById('TP22').value == "" || isNaN(document.getElementById('TP22').value) == true){
		document.getElementById('TP22').value = 0;
	}
	//Perform Calculations
	var attend = 0;
	var attype = document.getElementById('ATTENDANCE').value;
	var trans = parseFloat(document.getElementById('TRANSPORTATION').value);
	if (attype == "Day"){
		attend = parseFloat(document.getElementById('FEE_VST').value);
	} else if (attype == "Full") {
		attend = parseFloat(document.getElementById('FEE_STD').value);
	} else if (attype == "TP Only") {
		attend = parseFloat('0');
	} else if (attype == "Null") {
		attend = 0;
	}
	var tp1 = (document.getElementById('TP1').value*125);
	var tp2 = (document.getElementById('TP2').value*100);
	var tp3 = (document.getElementById('TP3').value*50);
	var tp4 = (document.getElementById('TP4').value*45);
	var tp5;
	var shirtsize = document.getElementById('TP5SIZE').value;
	if (shirtsize == "S" ||shirtsize == "M" || shirtsize == "L" || shirtsize == "XL"){
		tp5 = (document.getElementById('TP5').value*12); 
	} else if (shirtsize == "2XL" || shirtsize == "3XL"){
		tp5 = (document.getElementById('TP5').value*14);
	} else if (shirtsize == "Null") {
		tp5 = 0;
	}
	var tp6;
	var shirtsize = document.getElementById('TP6SIZE').value;
	if (shirtsize == "S" ||shirtsize == "M" || shirtsize == "L" || shirtsize == "XL"){
		tp6 = (document.getElementById('TP6').value*25); 
	} else if (shirtsize == "2XL" || shirtsize == "3XL" || shirtsize == "4XL"){
		tp6 = (document.getElementById('TP6').value*27);
	} else if (shirtsize == "Null") {
		tp6 = 0;
	}
	var tp7 = (document.getElementById('TP7').value*15);
	var tp8 = (document.getElementById('TP8').value*1);
	var tp9 = (document.getElementById('TP9').value*5);
	var tp10 = (document.getElementById('TP10').value*10);
	var tp11 = (document.getElementById('TP11').value*5);
	var tp12 = (document.getElementById('TP12').value*10);
	var tp13 = (document.getElementById('TP13').value*5);
	var tp14 = (document.getElementById('TP14').value*1);
	var tp15 = (document.getElementById('TP15').value*10);
	var tp16 = (document.getElementById('TP16').value*3);
	var tp17 = (document.getElementById('TP17').value*15);
	var tp18 = (document.getElementById('TP18').value*10);
	var tp19 = (document.getElementById('TP19').value*2);
	var tp20 = (document.getElementById('TP20').value*4);
	var tp21 = (document.getElementById('TP21').value*3);
	var tp22 = (document.getElementById('TP22').value*5);
	var tp23 = (document.getElementById('TP23').value*5);
	var tpost = parseFloat((tp1+tp2+tp3+tp4+tp5+tp6+tp7+tp8+tp9+tp10+tp11+tp12+tp13+tp14+tp15+tp16+tp17+tp18+tp19+tp20+tp21+tp22+tp23));
	document.getElementById('FEEATT').value = attend.toFixed(2);
	document.getElementById('FEETRAN').value = trans.toFixed(2);
	document.getElementById('FEETP').value = tpost.toFixed(2);
	document.getElementById('FEETOTAL').value = parseFloat((attend+trans+tpost)).toFixed(2);
}

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;
	}
}