// JavaScript Document

function set_reg_option(form) {
	if (form.num_reg.options[form.num_reg.selectedIndex].value == 1) {
       form.reg_option_rad[1].checked = true;
       form.reg_option.value = 'Single';
       
    } else {
       form.reg_option_rad[0].checked = true;
       form.reg_option.value = 'Family';
    }
}
       
function toggle_church(form) {
   if (form.church.options[form.church.selectedIndex].value == "Other") {
       form.otherchurch.disabled = false;
       form.otherchurch.focus();
   } else { 
       form.otherchurch.value    = "";
       form.otherchurch.disabled = true;
   }
}

function toggle_province(form) {
   if (form.province.options[form.province.selectedIndex].value == "Other") {
       form.otherprov.disabled = false;
       form.otherprov.focus();
   } else { 
       form.otherprov.value    = "";
       form.otherprov.disabled = true;
   }
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

/*  Hide or show form elements based on options selected  */

	
function hideShow(id,sw,nav) {
	
	var navID = 'nav-'+nav;

	if ( sw==1 ) {
		document.getElementById(id).style.display				= 'none';
		document.getElementById(navID).style.background			= '#E8EBF0';
		document.getElementById(navID).style.borderBottomColor	= '#ccc';
		document.getElementById(navID).style.fontWeight			= 'normal';
		document.getElementById(navID).style.color				= '#666';
	} else {
		document.getElementById(id).style.display				= 'block';
		document.getElementById(navID).style.background			= '#fff';
		document.getElementById(navID).style.borderBottomColor	= '#fff';
		document.getElementById(navID).style.fontWeight			= 'bold';
		document.getElementById(navID).style.color				= '#f00';
		document.forms['form1'].active_tab.value				= nav;
	}
	
	/*  Enable the buttons only when on the last tab  */
	
	if ( id == "tab_meals" && sw == 0 ) {
		document.forms['form1'].register.disabled = false;
	} else {
		document.forms['form1'].register.disabled = true;	
	}
}

// from http://www.web-source.net/web_development/currency_formatting.htm

function CurrencyFormatted(amount) {
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	var q ;
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	
	if (amount < 10) {
		q = '    $';
	} else {
		if (amount < 100) {
			q = '  $';
		} else {
			q = '$';
		}
	}
			
	s = q + minus + s;
	return s;
}

function set_initial_tabs() {

	hideShow('tab_reg',0,1);
	hideShow('tab_accom',1,2);
	hideShow('tab_meals',1,3);
	document.form1.given.focus();
		
}

function check_tab1(form) {

  var fnderror = false ;
  var errline  = '';
  
  if (form.given.value <= " ") {
     if (errline != "") errline += "\n";
     errline += "You must specify your given name(s).";
     fnderror = true;
     form.given.focus();
  }
  
  if (form.surname.value <= " ") {
     if (errline != "") errline += "\n"; else form.surname.focus();
     errline += "You must specify your surname.";
     fnderror = true;
  }
  
//
// Name must be letters, no special characters
//

  validalpha		="#  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'-.&";
  validalphanumeric	="#  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.,-";

  for (var i=0; i < form.given.value.length; i++) {
     
     var check = validalpha.indexOf(form.given.value.charAt(i));
     if (check <= 0) {
        if (errline != "") errline += "\n"; else form.given.focus();
        var column = 1 * i + 1;
        errline += "Given name must be comprised of only alphabetic characters.  Error is at position " + column;
        fnderror = true;
        break;
    }
  }
  
  for (var i=0; i < form.surname.value.length; i++) {
     
     var check = validalpha.indexOf(form.surname.value.charAt(i));
     if (check <= 0) {
        if (errline != "") errline += "\n"; else form.surname.focus();
        var column = 1 * i + 1;
        errline += "Surname must be comprised of only alphabetic characters.  Error is at position " + column;
        fnderror = true;
        break;
    }
  }
  
  if (form.address.value.length > 0) {
  	for (var i=0; i < form.address.value.length; i++) {
  	   
  	   var check = validalphanumeric.indexOf(form.address.value.charAt(i));
  	   if (check <= 0) {
  	      if (errline != "") errline += "\n"; else form.address.focus();
  	      var column = 1 * i + 1;
  	      errline += "If entered, address must be comprised of only alphanumeric characters.  Error is at position " + column;
  	      fnderror = true;
  	      break;
  	  }
  	}
  }
  
  if (form.city.value.length > 0) {
  	for (var i=0; i < form.city.value.length; i++) {
  	   
  	   var check = validalpha.indexOf(form.city.value.charAt(i));
  	   if (check <= 0) {
  	      if (errline != "") errline += "\n"; else form.city.focus();
  	      var column = 1 * i + 1;
  	      errline += "If entered, city must be comprised of only alphabetic characters.  Error is at position " + column;
  	      fnderror = true;
  	      break;
  	  }
  	}
  }
  
  if (form.province.options[form.province.selectedIndex].value == "Other") {
       
      if (form.otherprov.value <= " ") {
         if (errline != "") errline += "\n"; else form.otherprov.focus();
         errline += "Enter state/territory or select from list provided"
         fnderror = true;
      }

      //
      // Must be letters, no special characters
      //

      for (var i=0; i < document.form1.otherprov.value.length; i++) {
         
         var check = validalpha.indexOf(document.form1.otherprov.value.charAt(i));
         if (check <= 0) {
            if (errline != "") errline += "\n"; else form.otherprov.focus();
            var column = 1 * i + 1;  // would parseInt() work here?
            errline += "State/territory must be comprised of only alphabetic characters.  Error is at position " + column;
            fnderror = true;
            break;
        }
      } 
  }
  
  postal_reg = /^(\d{5}(( |-)\d{4})?)|([A-Za-z]\d[A-Za-z]\d[A-Za-z]\d)$/;
  if ( form.postal.value > ' ' && !postal_reg.test(form.postal.value)) {
     if (errline != "") errline += "\n"; else form.postal.focus();
     errline += "Format of postal code must be ANANAN or NNNNN"
     fnderror = true;
  }
  
  if (form.email.value <= " ") {
     if (errline != "") errline += "\n"; else form.email.focus();
     errline += "You must specify an email address";
     fnderror = true;
  } else {
     var found_at  = false;
     var found_dot = false;
     
     for (var i=0; i < form.email.value.length; i++) {
        if (form.email.value.charAt(i) == "@")             found_at  = true;
        if (found_at && form.email.value.charAt(i) == ".") found_dot = true;
     }
     
     if (!(found_at && found_dot)) {
         if (errline != "") errline += "\n"; else form.email.focus();
         errline += "Invalid email address, must contain @ and at least one period";
         fnderror = true;
     
    } else {
    	if (form.email.value != form.confirm_email.value) {
    		if (errline != "") errline += "\n"; else form.confirm_email.focus();
         	errline += "Confirm email entry differs from email entry";
         	fnderror = true;
        }
    }
  }
  
  /*
     Ah, yes, regular expressions...
     \d{3} # area code
   [-\s.]? # separator is either a dash, a space, or a period.
     \d{3} # 3-digit prefix
   [-\s.]  # another separator
     \d{4} # 4-digit line number
  */

  phone_reg =/\d{3}[-\s.]?\d{3}[-\s.]\d{4}/;
  if (!phone_reg.test(form.home_phone.value)) {
     if (errline != "") errline += "\n"; else form.home_phone.focus();
     errline += "Format of phone number must be 999-999-9999"
     fnderror = true;
  }

//
// A home church must be selected from dropdown box, otherwise something entered in "other"
//

  if (form.church.options[0].selected) {
     if (errline != "") errline += "\n"; else form.church.focus();
     errline += "You must select a home church, or select 'Other' to enter in next field."
     fnderror = true;
  }
  
  if (form.church.options[form.church.selectedIndex].value == "Other") {
       
      if (form.otherchurch.value <= " ") {
         if (errline != "") errline += "\n"; else form.otherchurch.focus();
         errline += "Enter home church or select from list provided"
         fnderror = true;
      }

      //
      // Must be letters, no special characters
      //

      for (var i=0; i < document.form1.otherchurch.value.length; i++) {
         
         var check = validalpha.indexOf(document.form1.otherchurch.value.charAt(i));
         if (check <= 0) {
            if (errline != "") errline += "\n"; else form.otherchurch.focus();
            var column = 1 * i + 1;  // would parseInt() work here?
            errline += "Church name must be comprised of only alphabetic characters.  Error is at position " + column;
            fnderror = true;
            break;
        }
      } 
  }
    
  var kids		= new Array();
  kids[0]		= form.child_name1.value;
  kids[1]		= form.child_name2.value;
  kids[2]		= form.child_name3.value;
  kids[3]		= form.child_name4.value;
  kids[4]		= form.child_name5.value;
  kids[5]		= form.child_name6.value;
  kids[6]		= form.child_name7.value;
  kids[7]		= form.child_name8.value;
  kids[8]		= form.child_name9.value;
  kids[9]		= form.child_name10.value;
  kids[10]		= form.child_name11.value;
  kids[11]		= form.child_name12.value;
  
  var ages		= new Array();
  ages[0]		=	form.child_age1.value;
  ages[1]		=	form.child_age2.value;
  ages[2]		=	form.child_age3.value;
  ages[3]		=	form.child_age4.value;
  ages[4]		=	form.child_age5.value;
  ages[5]		=	form.child_age6.value;
  ages[6]		=	form.child_age7.value;
  ages[7]		=	form.child_age8.value;
  ages[8]		=	form.child_age9.value;
  ages[9]		=	form.child_age10.value;
  ages[10]		=	form.child_age11.value;
  ages[11]		=	form.child_age12.value;
  
  form.found_nursery_age.value = 0;
  
  for (var s=0; s < 11; s++ ) {
  	
  	if ( kids[s].length > 0 && kids[s] > ' ' ) {
  		for (var i=0; i < kids[s].length; i++) {
      	 
      		 var check = validalpha.indexOf(kids[s].charAt(i));
  		     if (check <= 0) {
      		    if (errline != "") errline += "\n"; else form.child_name1.focus();
  		        errline += "Children's names must be comprised of only alphabetic characters.  Error is on child " + eval(s+1);
      		    fnderror = true;
      	    	break;
      		}
      	}
 
 		//alert('age is **' + ages[s] + '**');
    	if ( ages[s] != '' && ages[s] != ' ' && ages[s] >= 0 && ages[s] <= 19) {
    		if ( ages[s] <= 3 ) form.found_nursery_age.value = 1;
    	} else {
    		if (errline != "") errline += "\n"; else form.child_age1.focus();
  		   	errline += "Children's ages must be between 0 and 19.  Error is on child " + eval(s+1) + ". Remove older children's names.";
      		fnderror = true;
  		}
  	}
  }
 
  if (fnderror) {
     alert("Please fix the following errors:\n\n" + errline);
     return (false) ;
  } else {
  	  set_reg_option(form);
   	  return (true);
  }  

}

function check_tab2(form) {

  var fnderror = false ;
  var errline  = '';
  
  if (form.nights_staying.options[form.nights_staying.selectedIndex].text != "0 - Off Site" &&
     (form.unserviced.checked == false &&
	  form.serviced.checked == false &&
	  form.campmotel.checked == false &&
	  form.campcottage1.checked == false &&
	  form.campcottage2.checked == false &&
	  form.campcottage3.checked == false &&
	  form.camptrailer.checked == false &&
	  form.privatecottage.checked == false &&
	  form.shared.checked == false )) {
		if (errline != "") errline += "\n";
	    errline += "You've indicated that you're staying on-site, please check all accommodation options that apply";
    	fnderror = true;
  }  
  
  if (form.nights_staying.options[form.nights_staying.selectedIndex].text == "0 - Off Site" &&
     (form.unserviced.checked == true ||
	  form.serviced.checked == true ||
	  form.campmotel.checked == true ||
	  form.campcottage1.checked == true ||
	  form.campcottage2.checked == true ||
	  form.campcottage3.checked == true ||
	  form.camptrailer.checked == true ||
	  form.privatecottage.checked == true ||
	  form.shared.checked == true )) {
		if (errline != "") errline += "\n";
	    errline += "You've on-site accommodations, please select the number of nights you're staying";
    	fnderror = true;
  }  
	  	
  if ( ( form.campcottage1.checked == true || form.campcottage2.checked == true || form.campcottage3.checked == true || form.camptrailer.checked == true ) 
  		&& form.campcottage_addr.value <= ' ' ) {
  	if (errline != "") errline += "\n";
	errline += "Please enter the camp cottage/trailer address reserved via " + registrar_short;
    fnderror = true;
  }  
	
	// Camp Trailers have various fees per night, must be entered 
		  	
  if ( form.camptrailer.checked == true && ( isNaN(parseInt(form.camptrailerpernight.value)) || parseInt(form.camptrailerpernight.value) < 30 || parseInt(form.camptrailerpernight.value) > 150 ) ) {
  	if (errline != "") errline += "\n";
	errline += "Please enter a valid camp trailer / night fee";
    fnderror = true;
  }  
  
  if ( form.privatecottage.checked == true && form.privatecottage_addr.value <= ' ' ) {
  	if (errline != "") errline += "\n";
	errline += "Please enter the private cottage address reserved by contacting owner";
    fnderror = true;
  }
  
  if ( form.shared.checked == true && form.shared_with.value <= ' ' ) {
  	if (errline != "") errline += "\n";
	errline += "Please enter the name of the person you are sharing accommodations with";
    fnderror = true;
  }  
  
  if (form.shared_with.value.length > 0) {
  	for (var i=0; i < form.shared_with.value.length; i++) {
  	   
  	   var check = validalpha.indexOf(form.shared_with.value.charAt(i));
  	   if (check <= 0) {
  	      if (errline != "") errline += "\n"; else form.shared_with.focus();
  	      var column = 1 * i + 1;
  	      errline += "'Sharing with' name must be only alphabetic characters.  Error is at position " + column;
  	      fnderror = true;
  	      break;
  	  }
  	}
  }
  
  if (fnderror) {
     alert("Please fix the following errors:\n\n" + errline);
     return(false) ;
  }   
  
  if ( ( form.nursery.options[form.nursery.selectedIndex].text == 'Fri' && getCheckedValue(form.nursery_time) == 'PM' ) ||  
  	   ( form.nursery.options[form.nursery.selectedIndex].text == 'Sat' && getCheckedValue(form.nursery_time) == 'AM' ) ) {
	if (errline != "") errline += "\n";
	errline += "Nursery help is not required Sat AM or Fri PM, please select another day/time";
    fnderror = true;
  }  
  
  if ( ( form.speaker_meal_day.options[form.speaker_meal_day.selectedIndex].text == 'Fri' && getCheckedValue(form.speaker_meal_time) == 'Supper' ) ||  
  	   ( form.speaker_meal_day.options[form.speaker_meal_day.selectedIndex].text == 'Fri' && getCheckedValue(form.speaker_meal_time) == 'Lunch' ) ||  
  	   ( form.speaker_meal_day.options[form.speaker_meal_day.selectedIndex].text == 'Sat' && getCheckedValue(form.speaker_meal_time) == 'Lunch' ) ) {
	if (errline != "") errline += "\n";
	errline += "Speaker meals are not required Sat Lunch or Fri Lunch/Supper, please select another day/time";
    fnderror = true;
  } 
  	   	
  /*	If we've found a nursery age child, prompt again for nursery but it's not a fatal error  */
  
  if ( form.found_nursery_age.value == 1 && form.nursery.selectedIndex == 0 ) {
  	var answer = confirm("Since you have nursery age children, your help in the nursery is appreciated.  Click OK to select day/time");
  	if (answer) {
  		form.nursery.focus();
  		return (false);
  	}
  }  
  
  if (fnderror) {
     alert("Please fix the following errors:\n\n" + errline);
     return (false) ;
  }
     
  return (true);	

}

function check_meals(f) {
	
  // slashes are quoting reg exp string
  
  var meals_reg = /^(\d*)$/;		
  if ( f.length > 0 && !meals_reg.test(f)) {
  	return false;
  } else {
  	f = parseInt(f);
  	//alert("changed meal to int " + eval(22+f));
  	return true;
  }
}


function meals_nan(f) {
	
  // slashes are quoting reg exp string
  
  if ( isNaN(parseInt(f)) ) {
	return 0;
  }
  
  return parseInt(f);
}

function check_tab3(form,done) {
	
	var fnderror 	= false ;
    var errline  	= '';
    var meal_error	= false;
	
	//  Meal data

	if ( !check_meals(form.all_adult.value) )   meal_error = 1;		
	if ( !check_meals(form.all_adult_b.value) ) meal_error = 1;		
	if ( !check_meals(form.all_adult_l.value) ) meal_error = 1;		
	if ( !check_meals(form.all_adult_s.value) ) meal_error = 1;
	if ( !check_meals(form.sat_adult_s.value) ) meal_error = 1;	
	if ( !check_meals(form.sun_adult_b.value) ) meal_error = 1;		
	if ( !check_meals(form.sun_adult_l.value) ) meal_error = 1;		
	if ( !check_meals(form.sun_adult_s.value) ) meal_error = 1;
	if ( !check_meals(form.mon_adult_b.value) ) meal_error = 1;	
	if ( !check_meals(form.mon_adult_l.value) ) meal_error = 1;		
	if ( !check_meals(form.mon_adult_s.value) ) meal_error = 1;		
	if ( !check_meals(form.tue_adult_b.value) ) meal_error = 1;	
	if ( !check_meals(form.tue_adult_l.value) ) meal_error = 1;		
	if ( !check_meals(form.tue_adult_s.value) ) meal_error = 1;		
	if ( !check_meals(form.wed_adult_b.value) ) meal_error = 1;	
	if ( !check_meals(form.wed_adult_l.value) ) meal_error = 1;		
	if ( !check_meals(form.wed_adult_s.value) ) meal_error = 1;
	if ( !check_meals(form.thu_adult_b.value) ) meal_error = 1;	
	if ( !check_meals(form.thu_adult_l.value) ) meal_error = 1;		
	if ( !check_meals(form.thu_adult_s.value) ) meal_error = 1;
	if ( !check_meals(form.fri_adult_b.value) ) meal_error = 1;	
	if ( !check_meals(form.fri_adult_l.value) ) meal_error = 1;
	
	if ( !check_meals(form.all_child.value) )   meal_error = 1;		
	if ( !check_meals(form.all_child_b.value) ) meal_error = 1;		
	if ( !check_meals(form.all_child_l.value) ) meal_error = 1;		
	if ( !check_meals(form.all_child_s.value) ) meal_error = 1;
	if ( !check_meals(form.sat_child_s.value) ) meal_error = 1;	
	if ( !check_meals(form.sun_child_b.value) ) meal_error = 1;		
	if ( !check_meals(form.sun_child_l.value) ) meal_error = 1;		
	if ( !check_meals(form.sun_child_s.value) ) meal_error = 1;
	if ( !check_meals(form.mon_child_b.value) ) meal_error = 1;	
	if ( !check_meals(form.mon_child_l.value) ) meal_error = 1;		
	if ( !check_meals(form.mon_child_s.value) ) meal_error = 1;		
	if ( !check_meals(form.tue_child_b.value) ) meal_error = 1;	
	if ( !check_meals(form.tue_child_l.value) ) meal_error = 1;		
	if ( !check_meals(form.tue_child_s.value) ) meal_error = 1;		
	if ( !check_meals(form.wed_child_b.value) ) meal_error = 1;	
	if ( !check_meals(form.wed_child_l.value) ) meal_error = 1;		
	if ( !check_meals(form.wed_child_s.value) ) meal_error = 1;
	if ( !check_meals(form.thu_child_b.value) ) meal_error = 1;	
	if ( !check_meals(form.thu_child_l.value) ) meal_error = 1;		
	if ( !check_meals(form.thu_child_s.value) ) meal_error = 1;
	if ( !check_meals(form.fri_child_b.value) ) meal_error = 1;	
	if ( !check_meals(form.fri_child_l.value) ) meal_error = 1;

	if ( !check_meals(form.all_infant.value) )   meal_error = 1;		
	if ( !check_meals(form.all_infant_b.value) ) meal_error = 1;		
	if ( !check_meals(form.all_infant_l.value) ) meal_error = 1;		
	if ( !check_meals(form.all_infant_s.value) ) meal_error = 1;
	if ( !check_meals(form.sat_infant_s.value) ) meal_error = 1;	
	if ( !check_meals(form.sun_infant_b.value) ) meal_error = 1;		
	if ( !check_meals(form.sun_infant_l.value) ) meal_error = 1;		
	if ( !check_meals(form.sun_infant_s.value) ) meal_error = 1;
	if ( !check_meals(form.mon_infant_b.value) ) meal_error = 1;	
	if ( !check_meals(form.mon_infant_l.value) ) meal_error = 1;		
	if ( !check_meals(form.mon_infant_s.value) ) meal_error = 1;		
	if ( !check_meals(form.tue_infant_b.value) ) meal_error = 1;	
	if ( !check_meals(form.tue_infant_l.value) ) meal_error = 1;		
	if ( !check_meals(form.tue_infant_s.value) ) meal_error = 1;		
	if ( !check_meals(form.wed_infant_b.value) ) meal_error = 1;	
	if ( !check_meals(form.wed_infant_l.value) ) meal_error = 1;		
	if ( !check_meals(form.wed_infant_s.value) ) meal_error = 1;
	if ( !check_meals(form.thu_infant_b.value) ) meal_error = 1;	
	if ( !check_meals(form.thu_infant_l.value) ) meal_error = 1;		
	if ( !check_meals(form.thu_infant_s.value) ) meal_error = 1;
	if ( !check_meals(form.fri_infant_b.value) ) meal_error = 1;	
	if ( !check_meals(form.fri_infant_l.value) ) meal_error = 1;
	
	if (meal_error) {
		if (errline != "") errline += "\n";
		errline += "Meal entries must be numeric integers only";
    	fnderror = true;
  	}  
		 
  	if (fnderror) {
    	alert("Please fix the following errors:\n\n" + errline);
     	return(false) ;
  	}  
	  
	//  If we're navigating away from this tab, bail after we do the edit checks, not updating yet

  	if (!done) return(true);
  	
// ********************************************************************************
// Added 2009-05-28:
// Before we depart, ensure they haven't skipped the accommodations on tab2, it's
// possible by completely filling in tab1, then clicking the "Meals" tab
// ********************************************************************************

	if (!check_tab2(form) ) {
		alert ("It appears the Accommodations/Ministry section was skipped, click OK to complete");
		nav_bar_click(form,2);
		return(true);
	}
  	
// ********************************************************************************
// Have them verify their data:
// ********************************************************************************

	var conf_msg = "";
	
   conf_msg += "  Name: " + form.given.value + " " + form.surname.value ;
   if (form.address.value > " ") {
   		conf_msg += "\n  Address: " + form.address.value;
   		conf_msg += "\n   		 " + form.city.value ;
   		if (form.province.options[form.province.selectedIndex].value == "Other") {
      		conf_msg += " " + form.otherprov.value;
   		} else {
      		conf_msg += " " + form.province.options[form.province.selectedIndex].text;
   		}
   		conf_msg += "\n   		 " + form.postal.value ;
   }
   if (form.church.options[form.church.selectedIndex].value == "Other") {
      conf_msg += "\n  Home Church: " + form.otherchurch.value;
   } else {
      conf_msg += "\n  Home Church: " + form.church.options[form.church.selectedIndex].text;
   }
   
   conf_msg += "\n  Home Phone: " + form.home_phone.value;	
   conf_msg += "\n  Email: " + form.email.value;
   conf_msg += "\n  Number Registering: " + form.num_reg.value;
   
   
  var kids	= new Array();
  kids[0]	= form.child_name1.value;
  kids[1]	= form.child_name2.value;
  kids[2]	= form.child_name3.value;
  kids[3]	= form.child_name4.value;
  kids[4]	= form.child_name5.value;
  kids[5]	= form.child_name6.value;
  kids[6]	= form.child_name7.value;
  kids[7]	= form.child_name8.value;
  kids[8]	= form.child_name9.value;
  kids[9]	= form.child_name10.value;
  kids[10]	= form.child_name11.value;
  kids[11]	= form.child_name12.value;
  
  var ages	= new Array();
  ages[0]	=	form.child_age1.value;
  ages[1]	=	form.child_age2.value;
  ages[2]	=	form.child_age3.value;
  ages[3]	=	form.child_age4.value;
  ages[4]	=	form.child_age5.value;
  ages[5]	=	form.child_age6.value;
  ages[6]	=	form.child_age7.value;
  ages[7]	=	form.child_age8.value;
  ages[8]	=	form.child_age9.value;
  ages[9]	=	form.child_age10.value;
  ages[10]	=	form.child_age11.value;
  ages[11]	=	form.child_age12.value;
   
  for (var s=0; s < 11; s++ ) {
  	if ( kids[s].length > 0 ) {
  		conf_msg += "\n  Children: " + kids[s] + ', ' + ages[s];
  	}
  }
 
  if (form.nights_staying.options[form.nights_staying.selectedIndex].text == "0 - Off Site") {
  		conf_msg += "\n  Staying off site";
  } else {
  		conf_msg += "\n  Staying on-site for " + form.nights_staying.options[form.nights_staying.selectedIndex].text + " nights";
  }
  
  if (form.shared.checked == true) {
  		conf_msg += "\n  Sharing accommodations with " + form.shared_with.value;
  }

  		
  if (form.unserviced.checked == true) 		conf_msg += "\n  Unserviced campsite";
  if (form.serviced.checked == true) 		conf_msg += "\n  Serviced campsite";
  if (form.campmotel.checked == true) 		conf_msg += "\n  Camp motel";
  if (form.campcottage1.checked == true) 	conf_msg += "\n  1BR camp cottage - "+ form.campcottage_addr.value;
  if (form.campcottage2.checked == true) 	conf_msg += "\n  2BR camp cottage - "+ form.campcottage_addr.value;
  if (form.campcottage3.checked == true) 	conf_msg += "\n  3BR camp cottage - "+ form.campcottage_addr.value;
  if (form.camptrailer.checked == true) 	conf_msg += "\n  Camp trailer - "+ form.campcottage_addr.value + " $" + form.camptrailerpernight.value + "/night"
  if (form.privatecottage.checked == true) 	conf_msg += "\n  Private cottage - "+ form.privatecottage_addr.value;
  
  if (form.nursery.selectedIndex > 0) {
  	conf_msg += "\n  Nursery - Adult - " + form.nursery.options[form.nursery.selectedIndex].text + " " + getCheckedValue(form.nursery_time);
  }
  if (form.nursery_youth.selectedIndex > 0) {
  	conf_msg += "\n  Nursery - Youth - " + form.nursery_youth.options[form.nursery_youth.selectedIndex].text + " PM";
  }
  
  if (form.help_4_5.checked == true || form.teach_4_5.checked == true ) {
  	conf_msg += "\n  Children's 4-5 Class ";
  	if (form.help_4_5.checked == true) conf_msg += " - Help";
  	if (form.teach_4_5.checked == true) conf_msg += " - Teach";
  }
  if (form.help_6_7.checked == true || form.teach_6_7.checked == true ) {
  	conf_msg += "\n  Children's 6-7 Class ";
  	if (form.help_6_7.checked == true) conf_msg += " - Help";
  	if (form.teach_6_7.checked == true) conf_msg += " - Teach";
  }
  if (form.help_8_12.checked == true || form.teach_8_12.checked == true ) {
  	conf_msg += "\n  Children's 8-12 Class ";
  	if (form.help_8_12.checked == true) conf_msg += " - Help";
  	if (form.teach_8_12.checked == true) conf_msg += " - Teach";
  }
  
  if (form.speaker_meal_day.selectedIndex > 0) {
  	conf_msg += "\n  Speaker Meal - " + form.speaker_meal_day.options[form.speaker_meal_day.selectedIndex].text + " " + getCheckedValue(form.speaker_meal_time);
  }	
  
  // Meals
  
  found_meals = 0;
  
  // all meals
  
  if (form.all_adult.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_adult.value + " adult meal packages";
  }
  if (form.all_child.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_child.value + " child meal packages";
  }
  if (form.all_infant.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_infant.value + " infant meal packages";
  }
  
  // adult packages
  
  if (form.all_adult_b.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_adult_b.value + " adult bkfst packages";
  }
  if (form.all_adult_l.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_adult_l.value + " adult lunch packages";
  }
  if (form.all_adult_s.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_adult_s.value + " adult supper packages";
  }
  
  // child packages
  
  if (form.all_child_b.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_child_b.value + " child bkfst packages";
  }
  if (form.all_child_l.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_child_l.value + " child lunch packages";
  }
  if (form.all_child_s.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_child_s.value + " child supper packages";
  }
  
  // infant packages
  
  if (form.all_infant_b.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_infant_b.value + " infant bkfst packages";
  }
  if (form.all_infant_l.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_infant_l.value + " infant lunch packages";
  }
  if (form.all_infant_s.value > 0) {
  	if (found_meals == 0) { conf_msg += "\n  "; found_meals = 1; } else { conf_msg += ", "; }
  	conf_msg += form.all_infant_s.value + " infant supper packages";
  }
  
  // individual meals
  
  var ind_adult_b = eval(meals_nan(form.sun_adult_b.value) + meals_nan(form.mon_adult_b.value) + meals_nan(form.tue_adult_b.value) + meals_nan(form.wed_adult_b.value) + meals_nan(form.thu_adult_b.value) + meals_nan(form.fri_adult_b.value));
  var ind_adult_l = eval(meals_nan(form.sun_adult_l.value) + meals_nan(form.mon_adult_l.value) + meals_nan(form.tue_adult_l.value) + meals_nan(form.wed_adult_l.value) + meals_nan(form.thu_adult_l.value) + meals_nan(form.fri_adult_l.value));
  var ind_adult_s = eval(meals_nan(form.sat_adult_s.value) + meals_nan(form.sun_adult_s.value) + meals_nan(form.mon_adult_s.value) + meals_nan(form.tue_adult_s.value) + meals_nan(form.wed_adult_s.value) + meals_nan(form.thu_adult_s.value));
  var ind_child_b = eval(meals_nan(form.sun_child_b.value) + meals_nan(form.mon_child_b.value) + meals_nan(form.tue_child_b.value) + meals_nan(form.wed_child_b.value) + meals_nan(form.thu_child_b.value) + meals_nan(form.fri_child_b.value));
  var ind_child_l = eval(meals_nan(form.sun_child_l.value) + meals_nan(form.mon_child_l.value) + meals_nan(form.tue_child_l.value) + meals_nan(form.wed_child_l.value) + meals_nan(form.thu_child_l.value) + meals_nan(form.fri_child_l.value));
  var ind_child_s = eval(meals_nan(form.sat_child_s.value) + meals_nan(form.sun_child_s.value) + meals_nan(form.mon_child_s.value) + meals_nan(form.tue_child_s.value) + meals_nan(form.wed_child_s.value) + meals_nan(form.thu_child_s.value));
  var ind_infant_b = eval(meals_nan(form.sun_infant_b.value) + meals_nan(form.mon_infant_b.value) + meals_nan(form.tue_infant_b.value) + meals_nan(form.wed_infant_b.value) + meals_nan(form.thu_infant_b.value) + meals_nan(form.fri_infant_b.value));
  var ind_infant_l = eval(meals_nan(form.sun_infant_l.value) + meals_nan(form.mon_infant_l.value) + meals_nan(form.tue_infant_l.value) + meals_nan(form.wed_infant_l.value) + meals_nan(form.thu_infant_l.value) + meals_nan(form.fri_infant_l.value));
  var ind_infant_s = eval(meals_nan(form.sat_infant_s.value) + meals_nan(form.sun_infant_s.value) + meals_nan(form.mon_infant_s.value) + meals_nan(form.tue_infant_s.value) + meals_nan(form.wed_infant_s.value) + meals_nan(form.thu_infant_s.value) );
  
  if (ind_adult_b > 0 || ind_adult_l > 0 || ind_adult_s > 0 ) {
  	conf_msg += "\n  Individual adult meals:";
  	if (ind_adult_b > 0) conf_msg += " " + ind_adult_b + " bkfst ";
  	if (ind_adult_l > 0) conf_msg += " " + ind_adult_l + " lunch";
  	if (ind_adult_s > 0) conf_msg += " " + ind_adult_s + " supper";
  }
  if (ind_child_b > 0 || ind_child_l > 0 || ind_child_s > 0 ) {
  	conf_msg += "\n  Individual child meals: ";
  	if (ind_child_b > 0) conf_msg += " " + ind_child_b + " bkfst ";
  	if (ind_child_l > 0) conf_msg += " " + ind_child_l + " lunch";
  	if (ind_child_s > 0) conf_msg += " " + ind_child_s + " supper";
  }
  if (ind_infant_b > 0 || ind_infant_l > 0 || ind_infant_s > 0 ) {
  	conf_msg += "\n  Individual infant meals: ";
  	if (ind_infant_b > 0) conf_msg += " " + ind_infant_b + " bkfst ";
  	if (ind_infant_l > 0) conf_msg += " " + ind_infant_l + " lunch";
  	if (ind_infant_s > 0) conf_msg += " " + ind_infant_s + " supper";
  }

   form.conf_msg1.value = conf_msg;
   
   conf_msg  = "Please verify the following and click OK to register, Cancel to correct entry:\n\n" + conf_msg;
   if (!confirm(conf_msg)) {
      return (false);
   }

  //  Calculate Fees
  	    
  var fee_msg		= "";
  var fee      		= 0;
  var reg_fee		= 0;
  var accum_fees	= 0;
  
  if (form.num_reg.value > 1) {
  	reg_fee = family_fee;
  } else {
  	reg_fee = single_fee;
  }
  accum_fees += reg_fee;
  fee_msg 	 += CurrencyFormatted(reg_fee) + " - Registration";
  
  // Facility Fees
  
  fee = eval(form.num_reg.value * facility_fee_cost);
  fee_msg += "\n" + CurrencyFormatted(fee) +  " - Facility Fees (" + CurrencyFormatted(facility_fee_cost) + "/person )";
  accum_fees += fee;
  
  //  Accommodations
  
  var nights = form.nights_staying.options[form.nights_staying.selectedIndex].value;
  
  if (form.unserviced.checked == true) {
  	fee = eval(unserviced_cost * nights);	
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - Unserviced campsite";
    accum_fees += fee; 
  }
  if (form.serviced.checked == true) {
  	fee = eval(serviced_cost * nights);	
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - Serviced campsite";
    accum_fees += fee; 
  }
  if (form.campmotel.checked == true) {
  	fee = eval(campmotel_cost * nights * (1+campmotel_tax));	
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - Camp Motel";
    accum_fees += fee; 
  }
  if (form.campcottage1.checked == true) {
  	fee = eval(campcottage1_cost * nights * (1+campcottage1_tax));	
  	fee_msg += "\n" +  CurrencyFormatted(fee) + " - 1BR Camp Cottage - " + form.campcottage_addr.value;
    accum_fees += fee; 
  }
  if (form.campcottage2.checked == true) {
  	fee = eval(campcottage2_cost * nights * (1+campcottage2_tax));	
  	fee_msg += "\n" +  CurrencyFormatted(fee) + " - 2BR Camp Cottage - " + form.campcottage_addr.value;
    accum_fees += fee; 
  }
  if (form.campcottage3.checked == true) {
  	fee = eval(campcottage3_cost * nights * (1+campcottage3_tax));	
  	fee_msg += "\n" +  CurrencyFormatted(fee) + " - 3BR Camp Cottage - " + form.campcottage_addr.value;
    accum_fees += fee; 
  }
  if (form.camptrailer.checked == true) {
  	fee = eval(form.camptrailerpernight.value * nights * (1+camptrailer_tax));	
  	fee_msg += "\n" +  CurrencyFormatted(fee) + " - Camp Trailer - " + form.campcottage_addr.value;
    accum_fees += fee; 
  }
  if (form.privatecottage.checked == true) {
  	fee_msg += "\nTBD - Private Cottage - " + form.privatecottage_addr.value;
  }
  
  //  Meals
  
  var meal_fee = 0;
	 
  if (form.all_adult.value > 0) {
  	fee = all_adult_cost * form.all_adult.value * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + form.all_adult.value + " All Adult Meal Packages ";
    accum_fees += fee; 
    meal_fee   += fee;
  }
  	
  if (form.all_child.value > 0) {
  	fee = all_child_cost * form.all_child.value * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + form.all_child.value + " All Child Meal Packages ";
    accum_fees += fee;
    meal_fee   += fee; 
  }
  
  // adult packages
  
  if (form.all_adult_b.value > 0) {
  	fee = all_adult_b_cost * form.all_adult_b.value * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + form.all_adult_b.value + " All Adult Bkfst Packages  ";
    accum_fees += fee;
    meal_fee   += fee; 
  }
  if (form.all_adult_l.value > 0) {
  	fee = all_adult_l_cost * form.all_adult_l.value * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + form.all_adult_l.value + " All Adult Lunch Packages";
    accum_fees += fee;
    meal_fee   += fee; 
  }
  if (form.all_adult_s.value > 0) {
  	fee = all_adult_s_cost * form.all_adult_s.value * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + form.all_adult_s.value + " All Adult Supper Packages";
    accum_fees += fee; 
    meal_fee   += fee;
  }
  
  // child packages
  
  if (form.all_child_b.value > 0) {
  	fee = all_child_b_cost * form.all_child_b.value * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + form.all_child_b.value + " All Child Bkfst Packages";
    accum_fees += fee;
    meal_fee   += fee; 
  }
  if (form.all_child_l.value > 0) {
  	fee = all_child_l_cost * form.all_child_l.value * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + form.all_child_l.value + " All Child Lunch Packages";
    accum_fees += fee;
    meal_fee   += fee; 
  }
  if (form.all_child_s.value > 0) {
  	fee = all_child_s_cost * form.all_child_s.value * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + form.all_child_s.value + " All Child Supper Packages";
    accum_fees += fee; 
    meal_fee   += fee;
  }
   
  // Individual meals - already summed
  
  // adult meals
  
  if (ind_adult_b > 0) {
  	fee = ind_adult_b_cost * ind_adult_b * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + ind_adult_b + " Adult Bkfst Meals";
    accum_fees += fee; 
    meal_fee   += fee;
  }
  if (ind_adult_l > 0) {
  	fee = ind_adult_l_cost * ind_adult_l * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + ind_adult_l + " Adult Lunch Meals";
    accum_fees += fee; 
    meal_fee   += fee;
  }
  if (ind_adult_s > 0) {
  	fee = ind_adult_s_cost * ind_adult_s * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + ind_adult_s + " Adult Supper Meals";
    accum_fees += fee; 
    meal_fee   += fee;
  }
  
  // child meals
  
  if (ind_child_b > 0) {
  	fee = ind_child_b_cost * ind_child_b * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + ind_child_b + " Child Bkfst Meals";
    accum_fees += fee; 
    meal_fee   += fee;
  }
  if (ind_child_l > 0) {
  	fee = ind_child_l_cost * ind_child_l * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + ind_child_l + " Child Lunch Meals";
    accum_fees += fee;
    meal_fee   += fee; 
  }
  if (ind_child_s > 0) {
  	fee = ind_child_s_cost * ind_child_s * ( 1 + meal_tax );
  	fee_msg += "\n" + CurrencyFormatted(fee) + " - " + ind_child_s + " Child Supper Meals";
    accum_fees += fee;
    meal_fee   += fee; 
  }

  if (form.privatecottage.checked == true) {
  	fee_msg += "\n\nTotal Fees (except private cottage)                       " + CurrencyFormatted(accum_fees);
  } else {
   	fee_msg += "\n\nTotal Fees                                                " + CurrencyFormatted(accum_fees);
  }
  
  fee_msg += "\n\nRegistration Fee of" + CurrencyFormatted(reg_fee) + " to be remitted immediately.";
  if (meal_fee > 0 ) fee_msg += "\nMeal Costs of " + CurrencyFormatted(meal_fee) + " to be remitted by " + registration_date + ".";
  fee_msg += "\n\nPay via online banking Interac Email Money Transfer or \ncheque payable to 'CCFC'\n\nBalance due on arrival.";

  form.conf_msg2.value = fee_msg; 
  var fee_msg  		= "Summary of registration fees ( incl applicable tax ):\n\n" + fee_msg;
  
  if (confirm(fee_msg)) {
   	form.submit();
   	return (true);
  } else {
    return (false);
  }
   
}

function nav_bar_nav(form,to) {
	
	//alert('in nav_bar_nav, going to **' + to + '**');
	
	switch(parseInt(to)) {
		case 2:
			//alert('in nav_bar_nav2');
			hideShow('tab_reg',1,1);
			hideShow('tab_accom',0,2);
			hideShow('tab_meals',1,3);
			break;
		case 3:
			//alert('in nav_bar_nav3');
			hideShow('tab_reg',1,1);
			hideShow('tab_accom',1,2);
			hideShow('tab_meals',0,3);
			break;
		default:
			//alert('in nav_bar_nav default');
			hideShow('tab_reg',0,1);
			hideShow('tab_accom',1,2);
			hideShow('tab_meals',1,3);
			break;
	}
}

function tab_1_edit(form,to) {
	
	//alert('in tab_1_edit, going to ' + to);
	
	var tab_1_check = check_tab1(form);
	
	//alert('in tab_1_edit, tab_1_check is ' + tab_1_check );
	
	if (tab_1_check) nav_bar_nav(form,to);
	
}

function tab_2_edit(form,to) {
	
	//alert('in tab_2_edit, going to ' + to);
	var tab_2_check = check_tab2(form);
	
	//alert('in tab_2_edit, tab_1_check is ' + tab_2_check );
	
	if (tab_2_check) nav_bar_nav(form,to);
	
}

function tab_3_edit(form,to) {
	
	var tab_3_check = check_tab3(form,0);
	
	if (tab_3_check) nav_bar_nav(form,to);
	
}

function nav_bar_click(form,to) {
	
	//alert('in nav_bar_click, active_tab is ' + parseInt(form.active_tab.value) + ', going to tab ' + to);
	
	switch(parseInt(form.active_tab.value)) {
		case 1:
			tab_1_edit(form,to);
			break;
		case 2:
			tab_2_edit(form,to);
			break;
		default:
			//alert ('in nav_bar_click, fell into default with ' + form.active_tab_value);
			tab_3_edit(form,to);
			break;
	}
}			

