﻿var horsecamp = 100;
var bus = 65;
var bus2 = 30;
var wintercampcost = 300;
var wintercampmin = 100;
var skitripcost = 70;


var sessionStatus = new Array;
sessionStatus[0] = [2,2];
sessionStatus[1] = [2,2];
sessionStatus[2] = [2,2];
sessionStatus[3] = [2,2];
sessionStatus[4] = [2,2];
sessionStatus[5] = [2,2];


var family_sessionStatus = new Array;
family_sessionStatus[0] = 2;//'first session
family_sessionStatus[1] = 2;//'second session
family_sessionStatus[2] = 2;//'third session

var bd_clear = true;
var statFlag = new Array;
statFlag[0] = '<span style="color:red;font-weight:bold;"> Full</span>';
statFlag[1] = '<span style="color:#ff9933;font-weight:bold;"> Limited</span>';
statFlag[2] = '<span style="color:green;font-weight:bold;"> Available</span>';



var gender = null;
var oldgender = null;

function setGender(val){
	oldgender = gender;
	gender = val;
	return;
}
function checkGender(){
	if (oldgender != null) {
	// reset sessions to unchecked
		for (var i=1;i<7;i++){
			eval("document.regform.Period_" + i + ".checked = false");
		}
		alert("Because you changed the gender selection of your camper,\n please re-select your sessions.");
	}
	return;
}
function genderCheck(){
	var rc = false;
//	alert("gender = " + gender);
	if (gender == null) {
		alert("You must select the gender of you camper to continue.");
		document.regform.Sex[0].focus();
		rc =  false;
	}
	else {
		rc = true;
	}
	return rc;
}
function sessStatusWait(){
	var pname = "";
	for (var sess = 1; sess < 7; sess++) {
		pname = "Period_" + sess + "_wl";
		if (sessionStatus[sess-1][gender] < 1){
			if (document.all) {
				eval("document.all." + pname + ".style.display = ''");
			}
			else if (document.getElementById) {
				eval("document.getElementById(\"" + pname + "\").style.display = ''");
			}
		}
		else {
			if (document.all) {
				eval("document.all." + pname + ".style.display = 'none'");
			}
			else if (document.getElementById) {
				eval("document.getElementById(\"" + pname + "\").style.display = 'none'");
			}
		}
	}
}
function sessStatus(session){
	var rc = false;
	rc = "<br>Girls: " + statFlag[sessionStatus[session][0]] + ", Boys: " + statFlag[sessionStatus[session][1]];
	return rc;
}

function family_sessStatus(session){
	var rc = false;
	rc = "Cabins: " + statFlag[family_sessionStatus[session-1]];
	return rc;
}






function checkSession(obj,session){
	var rc = false;
	if (genderCheck() == true) {
		if (sessionStatus[session-1][gender]  > 0 ){
			rc = true;
		}
		else {
			if (confirm("This session is full.\nClick 'OK' to add your camper to the waiting list for this session. When openings are available, campers from the waiting list will be called on a \"first come, first serve\" basis.\n\nClick 'Cancel' if you do not want to be on the waiting list.")) {
				//change name of field to name_waitlist
				var pname = obj.name;
				obj.name = pname + "_wl";
				obj.checked = true;
				rc = true;
			}
			else {
				obj.checked = false;
				rc = false;
			}
		}
	}
	else {
		obj.checked = false;
	}
	return rc;
}

function checkSession2(session){
	var rc = false;

		if (family_sessionStatus[session-1] > 0 ){
			rc = true;
		}
		else {
			alert("This session is full.\nClick 'OK' to add your family to the waiting list for this session. When openings are available, campers from the waiting list will be called on a \"first come, first serve\" basis.\n\nClick 'Cancel' if you do not want to be on the waiting list.");
			rc = false;
		}

	return rc;
}



function sessionChecked(){
	var rc = false;
	if ((document.regform.Period_1.checked == true) || (document.regform.Period_2.checked == true) ||(document.regform.Period_3.checked == true) ||
		(document.regform.Period_4.checked == true) || (document.regform.Period_5.checked == true) || (document.regform.Period_6.checked == true) ) {
		rc = true;
	}
	else {
		alert("You must select a session!");
	}
	return rc;
}

function addSession(obj) {
	var period = obj.name;
//	alert(period);
	var periodcost = eval("document.regform." + period + "_cost.value");
	if (obj.checked == true) {
		eval("document.regform." + period + "_total.value = Number(document.regform." + period + "_cost.value);");// update period total
		eval("document.regform.camp_total.value = Number(document.regform.camp_total.value) + Number(document.regform." + period + "_cost.value);");// update camp total
		eval("document.regform.total.value = Number(document.regform.total.value) + Number(document.regform." + period + "_total.value);");// update total
		document.regform.sessionCount.value++;
		document.regform.minimum.value = document.regform.sessionCount.value * 100;
	}
	else {
		if (eval("document.regform." + period + "_total.value != 0")) {// subtract period total from totals if it was updated before
			eval("document.regform.camp_total.value = Number(document.regform.camp_total.value) - Number(document.regform." + period + "_total.value);");// update period total
			eval("document.regform.total.value = Number(document.regform.total.value) - Number(document.regform." + period + "_total.value);");// update camp total
			eval("document.regform." + period + "_total.value = 0");// update total
			// reset horse camp
			eval("document.regform." + period + "_horse[0].checked = false;");
			eval("document.regform." + period + "_horse[1].checked = true;");
			document.regform.sessionCount.value--;
			document.regform.minimum.value = document.regform.sessionCount.value * 100;
		}
	}
}


function addSession2(session) {
	var total = 0;
	
	//alert(checkSession2(session));
	if(checkSession2(session)>0){
		if(document.regform.familyOne.checked == true){
			var familyOne_total = document.regform.familyOne_count.value * document.regform.familyOne_cost.value;
			document.regform.familyOne_total.value = familyOne_total;
			total = total + (familyOne_total);
		}
		
		if(document.regform.familyThree.checked == true){
			var familyThree_total = document.regform.familyThree_count.value * document.regform.familyThree_cost.value;
			document.regform.familyThree_total.value = familyThree_total;
			total = total + (familyThree_total);
			
		}
		if(document.regform.familyFour.checked == true){
			var familyFour_total = document.regform.familyFour_count.value *  document.regform.familyFour_cost.value;
			document.regform.familyFour_total.value = familyFour_total;
			total = total + (familyFour_total);
		}
			
		if(document.regform.addCampers.checked == true){
			var addCampers_total = document.regform.addCampers_count.value *  document.regform.addCampers_cost.value;
			document.regform.addCampers_total.value = addCampers_total;
			total = total + (addCampers_total);
		}	
		document.regform.camp_total.value = total;
		document.regform.total.value = total;
	}
}







function addSkiTrip(obj) {
	var trip = obj.name;
//	alert(period);
	if (obj.checked == true) {
		document.regform.total.value = Number(document.regform.total.value) + skitripcost;// update camp total
	}
	else {
		document.regform.total.value = Number(document.regform.total.value) - skitripcost;// update camp total
	}
}

function Riding(obj) {
	var period = eval("document.regform." + obj.name.split("_").slice(0,2).join("_"));
	if (period.checked == true) {
		if (obj.value == "yes") {
//			alert("document.regform." + period.name + "_horsecamp.value: "+eval("document.regform." + period.name + "_horsecamp.value") + "," + eval("document.regform." + period.name + "_horsecamp.value == 0"));
			if  (eval("document.regform." + period.name + "_horsecamp.value == 0")) {
//				alert("document.regform." + period.name + "_total.value" + "+" + horsecamp);
				eval("document.regform." + period.name + "_total.value = Number(document.regform." + period.name + "_total.value) + horsecamp;");// update period total
				document.regform.camp_total.value = Number(document.regform.camp_total.value) + horsecamp;// update camp total
				document.regform.total.value = Number(document.regform.total.value) + horsecamp; // update total
				eval("document.regform." + period.name + "_horsecamp.value = 1");
			}
		}
		else {
			if (eval("document.regform." + period.name + "_total.value == Number(document.regform." + period.name + "_cost.value) + horsecamp")) {
				eval("document.regform." + period.name + "_total.value = Number(document.regform." + period.name + "_total.value) - horsecamp;");// update period total
				document.regform.camp_total.value = Number(document.regform.camp_total.value) - horsecamp;// update camp total
				document.regform.total.value = Number(document.regform.total.value) - horsecamp; // update total
				eval("document.regform." + period.name + "_horsecamp.value = 0");
			}
		}
		return true;
	}
	else {
		alert("You must select the period before selecting horseback riding camp.");
		eval("document.regform." + obj.name + "[1].checked = true;");
		return false;
	}
}
function addAdventure(obj) {
	var adventure = obj.name;
	var adventurecost = eval("document.regform." + adventure + "_cost.value");
	if (obj.checked == true) {
		eval("document.regform." + adventure + "_total.value = Number(document.regform." + adventure + "_cost.value);");// update period total
		eval("document.regform.adventure_total.value = Number(document.regform.adventure_total.value) + Number(document.regform." + adventure + "_cost.value);");// update adventure total
		eval("document.regform.total.value = Number(document.regform.total.value) + Number(document.regform." + adventure + "_total.value);");// update total
	}
	else {
		if (eval("document.regform." + adventure + "_total.value != 0")) {// subtract period total from totals if it was updated before
			eval("document.regform.adventure_total.value = Number(document.regform.adventure_total.value) - Number(document.regform." + adventure + "_total.value);");// update period total
			eval("document.regform.total.value = Number(document.regform.total.value) - Number(document.regform." + adventure + "_total.value);");// update camp total
			eval("document.regform." + adventure + "_total.value = 0");// update total
		}
	}
}
function TransTo(obj) {
	
	if (obj.value == "Bus") {
		if (document.regform.trans_to_db.value == "drive") {
			if (document.regform.trans_from_db.value == "bus") {
				document.regform.trans_total.value = Number(document.regform.trans_total.value) + bus2;
				document.regform.total.value = Number(document.regform.total.value) + bus2;
			}
			else {
				document.regform.trans_total.value = Number(document.regform.trans_total.value) + bus;
				document.regform.total.value = Number(document.regform.total.value) + bus;
			}
			document.regform.trans_to_db.value = "bus";
		}
	}
	else {
		if (document.regform.trans_to_db.value == "bus") {
			if (document.regform.trans_from_db.value == "bus") {
				document.regform.trans_total.value = Number(document.regform.trans_total.value) - bus2;
				document.regform.total.value = Number(document.regform.total.value) - bus2;
			}
			else {
				document.regform.trans_total.value = Number(document.regform.trans_total.value) - bus;
				document.regform.total.value = Number(document.regform.total.value) - bus;
			}
			document.regform.trans_to_db.value = "drive";
		}
	}
	
}
function TransFrom(obj) {
	if (obj.value == "Bus") {
		if (document.regform.trans_from_db.value == "drive") {
			if (document.regform.trans_to_db.value == "bus") {
				document.regform.trans_total.value = Number(document.regform.trans_total.value) + bus2;
				document.regform.total.value = Number(document.regform.total.value) + bus2;
			}
			else {
				document.regform.trans_total.value = Number(document.regform.trans_total.value) + bus;
				document.regform.total.value = Number(document.regform.total.value) + bus;
			}
			document.regform.trans_from_db.value = "bus";
		}
	}
	else {
		if (document.regform.trans_from_db.value == "bus") {
			if (document.regform.trans_to_db.value == "bus") {
				document.regform.trans_total.value = Number(document.regform.trans_total.value) - bus2;
				document.regform.total.value = Number(document.regform.total.value) - bus2;
			}
			else {
				document.regform.trans_total.value = Number(document.regform.trans_total.value) - bus;
				document.regform.total.value = Number(document.regform.total.value) - bus;
			}
			document.regform.trans_from_db.value = "drive";
		}
	}
}
var trips = new Array;
trips["Drive_or_Bus_To"] = [0,0];
trips["Drive_or_Bus_From"] = [1,0];

function PickSession() {
	if ((!document.regform.Period_1.checked) &&
		(!document.regform.Period_2.checked) &&
		(!document.regform.Period_3.checked) &&
		(!document.regform.Period_4.checked) &&
		(!document.regform.Period_5.checked) &&
		(!document.regform.Period_6.checked)) {
			alert("You must select a session to attend.");
			return false;
	}
	return true;
	/* insert check for adventure trips here.*/
}
function BusTrans(obj) {
	var thisTrip = obj.name;
	var myform = obj.form;
	if ((obj.checked) && (obj.value == "Bus")) {
		trips[thisTrip][1] = 1;
	} 
	else {
		trips[thisTrip][1] = 0;
	}
	var rt = 0;
	for (var trip in trips){
		rt = rt + trips[trip][1];
	}
	
	if (rt == 0) {
		myform.Bus_fare[1].checked = false;
		myform.Bus_fare[0].checked = false;
	}
	else if (rt == 1) {
		document.regform.Bus_fare[1].checked = true;
	}
	else {
		document.regform.Bus_fare[0].checked = true;
	}
}
function busstop() {
	if ((document.regform.trans_from[1].checked == true) || (document.regform.trans_to[1].checked == true)) {
		if (radioChecked(document.regform.bus_stop) == -1) {
			alert("You must select bus service to camp, from camp, or a round trip, AND a bus pick_up/drop-off point.");
			return false;
		}
	}
	return true;
}
function formProc(thisform) {
	/*alert("Now at formProc, onsubmit is "+ onsubmit(thisform) + "...");*/
	if (onsubmit(thisform)) { 
		/* check for Release checked */
	//	alert("Now at Release_Accepted, Release_Accepted is "+ document.regform.Release_Accepted.checked + "...");
		if (document.regform.Release_Accepted.checked) {
			/* check for guardian email addresses */
	//		alert("Now at email, email is "+ ((document.regform.mother_email.value != "") || (document.regform.father_email.value != "")) + "...");
			if ((document.regform.mother_email.value != "") || (document.regform.father_email.value != "")) {
				/* check for session picked */
	//			alert("Now at PickSession, PickSession is "+ PickSession() + "...");
				if (PickSession()) {
	//				alert("Now at busstop, busstop is "+ busstop() + "...");
					if (busstop()) {
						return true;
					}
				}
			}
			else {
				alert("Please enter an email address for either or both guardians.");
			}
		}
		else {
			alert("You must accept the Release by checking the \"I (We) Agree and submit registration\" box to submit your registration.");
			document.regform.Release_Accepted.focus();
		}
	}
	return false;
}
function formProcWinter(thisform) {
	if (onsubmit(thisform)) { 
		/* check for Release checked */
		if (document.regform.Release_Accepted.checked) {
			/* check for guardian email addresses */
			if ((document.regform.mother_email.value != "") || (document.regform.father_email.value != "")) {
				/* check for session picked */
				if (busstop()) {
					return true;
				}
			}
			else {
				alert("Please enter an email address for either or both guardians.");
			}
		}
		else {
			alert("You must accept the Release by checking the \"I (We) Agree and submit registration\" box to submit your registration.");
			document.regform.Release_Accepted.focus();
		}
	}
	return false;
}
function depositVal(obj) {
	if (valid(obj,'Numbers only, with a minimum deposit of $100 per session.','^[0-9]{3,5}$')) {
		if ((obj.value > (100 * document.regform.sessionCount.value)) || (obj.value == (100 * document.regform.sessionCount.value))) {
			return true;
		}
		else {
			alert("Your minimum payment must be at least $" + (100 * document.regform.sessionCount.value));
			document.regform.minimum.value = 100 * document.regform.sessionCount.value;
		}
	}
	return false;
}
function formReset() {
	gender = null;
	oldgender = null;
}
function radioChecked(radioObj) { /* if multiple items checked, returns the last one.*/
	var checkedIdx = -1;
	for (var idx = 0; idx < radioObj.length; idx++) {
		if (radioObj[idx].checked){
			checkedIdx = idx;
		}
	}
	return checkedIdx;
}