//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.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.FLEECE.value != 0 && form.FLEECESIZE.value == "Null") {
		errors = errors+"- Select a Fleece size\n";
	}
	if (form.MICROFLEECE.value != 0 && form.MICROFLEECESIZE.value == "Null") {
		errors = errors+"- Select an Olympic Micro Fleece 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.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.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.FLEECE.value != 0 && form.FLEECESIZE.value == "Null") {
		errors = errors+"- Select a Fleece size\n";
	}
	if (form.MICROFLEECE.value != 0 && form.MICROFLEECESIZE.value == "Null") {
		errors = errors+"- Select an Olympic Micro Fleece size\n";
	}
	if (errors == ""){
		calcTotal();
		return true;
	} else {
		errors = "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('SHIRT1').value == "" || document.getElementById('SHIRT1').value == "0" || isNaN(document.getElementById('SHIRT1').value) == true){
		document.getElementById('SHIRT1').value = 0;
		document.getElementById('SHIRTSIZE1').value = "Null";
	}
	if (document.getElementById('SHIRT2').value == "" || document.getElementById('SHIRT2').value == "0" || isNaN(document.getElementById('SHIRT2').value) == true){
		document.getElementById('SHIRT2').value = 0;
		document.getElementById('SHIRTSIZE2').value = "Null";
	}
	if (document.getElementById('FLEECE').value == "" || document.getElementById('FLEECE').value == "0" || isNaN(document.getElementById('FLEECE').value) == true){
		document.getElementById('FLEECE').value = 0;
		document.getElementById('FLEECESIZE').value = "Null";
	}
	if (document.getElementById('MICROFLEECE').value == "" || document.getElementById('MICROFLEECE').value == "0" || isNaN(document.getElementById('MICROFLEECE').value) == true){
		document.getElementById('MICROFLEECE').value = 0;
		document.getElementById('MICROFLEECESIZE').value = "Null";
	}
	if (document.getElementById('COLLPATCH').value == "" || isNaN(document.getElementById('COLLPATCH').value) == true){
		document.getElementById('COLLPATCH').value = 0;
	}
	if (document.getElementById('CONPATCH').value == "" || isNaN(document.getElementById('CONPATCH').value) == true){
		document.getElementById('CONPATCH').value = 0;
	}
	if (document.getElementById('SECPATCH').value == "" || isNaN(document.getElementById('SECPATCH').value) == true){
		document.getElementById('SECPATCH').value = 0;
	}
	if (document.getElementById('CHENCONPATCH').value == "" || isNaN(document.getElementById('CHENCONPATCH').value) == true){
		document.getElementById('CHENCONPATCH').value = 0;
	}
	if (document.getElementById('CHENSECPATCH').value == "" || isNaN(document.getElementById('CHENSECPATCH').value) == true){
		document.getElementById('CHENSECPATCH').value = 0;
	}
	if (document.getElementById('SECJACKET').value == "" || isNaN(document.getElementById('SECJACKET').value) == true){
		document.getElementById('SECJACKET').value = 0;
	}
	if (document.getElementById('NECKERCHIEF').value == "" || isNaN(document.getElementById('NECKERCHIEF').value) == true){
		document.getElementById('NECKERCHIEF').value = 0;
	}
	if (document.getElementById('CONHAT').value == "" || isNaN(document.getElementById('CONHAT').value) == true){
		document.getElementById('CONHAT').value = 0;
	}
	if (document.getElementById('CONBELTBUCKLE').value == "" || isNaN(document.getElementById('CONBELTBUCKLE').value) == true){
		document.getElementById('CONBELTBUCKLE').value = 0;
	}
	if (document.getElementById('SECBELTBUCKLE').value == "" || isNaN(document.getElementById('SECBELTBUCKLE').value) == true){
		document.getElementById('SECBELTBUCKLE').value = 0;
	}
	if (document.getElementById('CONBOLO').value == "" || isNaN(document.getElementById('CONBOLO').value) == true){
		document.getElementById('CONBOLO').value = 0;
	}
	if (document.getElementById('SECBOLO').value == "" || isNaN(document.getElementById('SECBOLO').value) == true){
		document.getElementById('SECBOLO').value = 0;
	}
	if (document.getElementById('CONWALKING').value == "" || isNaN(document.getElementById('CONWALKING').value) == true){
		document.getElementById('CONWALKING').value = 0;
	}
	if (document.getElementById('SECWALKING').value == "" || isNaN(document.getElementById('SECWALKING').value) == true){
		document.getElementById('SECWALKING').value = 0;
	}
	if (document.getElementById('SECBEANIE').value == "" || isNaN(document.getElementById('SECBEANIE').value) == true){
		document.getElementById('SECBEANIE').value = 0;
	}
	if (document.getElementById('BLUEDUFFLE').value == "" || isNaN(document.getElementById('BLUEDUFFLE').value) == true){
		document.getElementById('BLUEDUFFLE').value = 0;
	}
	if (document.getElementById('SPORTDUFFEL').value == "" || isNaN(document.getElementById('SPORTDUFFEL').value) == true){
		document.getElementById('SPORTDUFFEL').value = 0;
	}
	
	//Perform Calculations
	var attend = 0;
	var trans = parseInt(document.getElementById('TRANSPORTATION').value);
	var attype = document.getElementById('ATTENDANCE').value;
	if (attype == "Day"){
		attend = parseInt(document.getElementById('FEE_VST').value);
	} else if (attype == "Full") {
		attend = parseInt(document.getElementById('FEE_STD').value);
	} else if (attype == "Null") {
		attend = 0;
	}
	var tp1;
	var shirtsize = document.getElementById('SHIRTSIZE1').value;
	if (shirtsize == "S" ||shirtsize == "M" || shirtsize == "L" || shirtsize == "XL"){
		tp1 = (document.getElementById('SHIRT1').value*15.00); 
	} else if (shirtsize == "2XL" || shirtsize == "3XL" || shirtsize == "4XL"){
		tp1 = (document.getElementById('SHIRT1').value*16.00);
	} else if (shirtsize == "Null") {
		tp1 = 0;
	}
	var tp2;
	var shirtsize = document.getElementById('SHIRTSIZE2').value;
	if (shirtsize == "S" ||shirtsize == "M" || shirtsize == "L" || shirtsize == "XL"){
		tp2 = (document.getElementById('SHIRT2').value*15.00); 
	} else if (shirtsize == "2XL" ||shirtsize == "3XL" || shirtsize == "4XL"){
		tp2 = (document.getElementById('SHIRT2').value*16.00);
	} else if (shirtsize == "Null") {
		tp2 = 0;
	}
	var tp3;
	var shirtsize = document.getElementById('FLEECESIZE').value;
	if (shirtsize == "S" ||shirtsize == "M" || shirtsize == "L" || shirtsize == "XL"){
		tp3 = (document.getElementById('FLEECE').value*40.00); 
	} else if (shirtsize == "2XL" ||shirtsize == "3XL" || shirtsize == "4XL"){
		tp3 = (document.getElementById('FLEECE').value*42.00);
	} else if (shirtsize == "Null") {
		tp3 = 0;
	}
	var tp4;
	var shirtsize = document.getElementById('MICROFLEECESIZE').value;
	if (shirtsize == "S" ||shirtsize == "M" || shirtsize == "L" || shirtsize == "XL"){
		tp4 = (document.getElementById('MICROFLEECE').value*42.00); 
	} else if (shirtsize == "2XL" ||shirtsize == "3XL" || shirtsize == "4XL"){
		tp4 = (document.getElementById('MICROFLEECE').value*44.00);
	} else if (shirtsize == "Null") {
		tp4 = 0;
	}
	var tp5 = (document.getElementById('COLLPATCH').value*20);
	var tp6 = (document.getElementById('CONPATCH').value*4);
	var tp7 = (document.getElementById('SECPATCH').value*4);
	var tp8 = (document.getElementById('CHENCONPATCH').value*20);
	var tp9 = (document.getElementById('CHENSECPATCH').value*20);
	var tp10 = (document.getElementById('SECJACKET').value*12);
	var tp11 = (document.getElementById('CONHAT').value*18);
	var tp12 = (document.getElementById('CONBELTBUCKLE').value*13);
	var tp13 = (document.getElementById('SECBELTBUCKLE').value*13);
	var tp14 = (document.getElementById('CONBOLO').value*9);
	var tp15 = (document.getElementById('SECBOLO').value*9);
	var tp16 = (document.getElementById('CONWALKING').value*6);
	var tp17 = (document.getElementById('SECWALKING').value*6);
	var tp18 = (document.getElementById('SECBEANIE').value*14);
	var tp19 = (document.getElementById('BLUEDUFFLE').value*26);
	var tp20 = (document.getElementById('SPORTDUFFEL').value*31);
	var tp21 = (document.getElementById('NECKERCHIEF').value*20);
	var tpost = parseFloat((tp1+tp2+tp3+tp4+tp5+tp6+tp7+tp8+tp9+tp10+tp11+tp12+tp13+tp14+tp15+tp16+tp17+tp18+tp19+tp20+tp21));
	document.getElementById('FEEATT').value = attend;
	document.getElementById('FEETRAN').value = trans;
	document.getElementById('FEEEVENT').value = parseFloat((attend+trans)).toFixed(2);
	document.getElementById('FEETP').value = tpost.toFixed(2);
	document.getElementById('FEETOTAL').value = parseFloat((attend+trans+tpost)).toFixed(2);
}


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