var bus = 50;
var bus2 = 50;
var wintercampcost = 300;
var wintercampmin = 100;
var skitripcost = 70;
var Discount_Member = -25;
var Discount_EarlyBird = -50;
var Discount_Multiple = -50;



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(){
	if(document.regform.Sex[0].checked || document.regform.Sex[1].checked)
		return true;
	
	alert("You must select the gender of you camper to continue.");
	document.regform.Sex[0].focus();
	return false;
}

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){

	// For now simply OK if the user picked a gender
	return genderCheck();
	// The rest is old...

	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(){
	if ((document.regform.Session_1.checked == true)) {
		return true;
	}
	alert("You must check the camp session.");
	document.regform.Session_1.focus();
	return false;
}
function sessionChecked2(){
	if ((document.regform.Session_2.checked == true)) {
		return true;
	}
	alert("You must check the camp session.");
	document.regform.Session_2.focus();
	return false;
}


function YearAtPinewood(){
	var rc = false;
	if ((document.regform.YearAtPinewood.selected == true)) {
		rc = true;
	}
	else {
		alert("Please select the camper\'s year at Camp Pinewood.");
	}
	return rc;
}

function hearaboutus(){
	var rc = false;
	if ((document.regform.hearaboutus.selected == true)) {
		rc = true;
	}
	else {
		alert("Please select how you heard about us.");
	}
	return rc;
}

function ValidateTransportationTo() {
	if(document.regform.trans_to[0].checked == true) {
		return true;
	}
	if(document.regform.trans_to[1].checked == true) {
		var ctl = document.regform.transport_to_bus_location;
		if(ctl.value == 'none') {
			alert("Please select a pickup location when going to camp.");
			document.regform.trans_to[0].focus();
			return false;
		}
		return true;
	}
	alert("Please select a transportation method to camp.");
	document.regform.trans_to[0].focus();
	return false;
}

function ValidateTransportationFrom() {
	if(document.regform.trans_from[0].checked == true) {
		return true;
	}
	if(document.regform.trans_from[1].checked == true) {
		var ctl = document.regform.transport_from_bus_location;
		if(ctl.value == 'none') {
			alert("Please select a pickup location when returning from camp.");
			document.regform.trans_from[0].focus();
			return false;
		}
		return true;
	}
	alert("Please select a transportation method from camp.");
	document.regform.trans_from[0].focus();
	return false;
}

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
			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.addAdultCampers.checked == true){
			var addAdultCampers_total = document.regform.addAdultCampers_count.value *  document.regform.addAdultCampers_cost.value;
			document.regform.addAdultCampers_total.value = addAdultCampers_total;
			total = total + (addAdultCampers_total);
		}
		if(document.regform.addYouthCampers.checked == true){
			var addYouthCampers_total = document.regform.addYouthCampers_count.value *  document.regform.addYouthCampers_cost.value;
			document.regform.addYouthCampers_total.value = addYouthCampers_total;
			total = total + (addYouthCampers_total);
		}
			if(document.regform.addChildrenCampers.checked == true){
			var addChildrenCampers_total = document.regform.addChildrenCampers_count.value *  document.regform.addChildrenCampers_cost.value;
			document.regform.addChildrenCampers_total.value = addChildrenCampers_total;
			total = total + (addChildrenCampers_total);
		}	
		document.regform.camp_total.value = total;
		document.regform.total.value = total;
	}
}



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.Session.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.Drop-offBusLocation) == -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 busstop2() {
	if ((document.regform.trans_from[1].checked == true) || (document.regform.trans_from[1].checked == true)) {
		if (radioChecked(document.regform.Pick-upBusLocation) == -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;
}