			function isNumeric(str){
				if(str=="" || isNaN(str)){
					return false;					
				}
				return true;
			}
			
			function isEmailValid(str){
   				if(str.indexOf(".") > 2 && str.indexOf("@") > 0){
	   				return true;
   				}
   				else{
	   				return false;
   				}
			}			
			
			function setDateDropdown(mID,dID,yID) {
				monthField = document.getElementById(mID);
				dayField = document.getElementById(dID);
				yearField = document.getElementById(yID);
				
  				daySelected = dayField.selectedIndex;
  				
  				// remove day options above 29 				
  				for(i=dayField.options.length ; i>=29 ; i--){
	  				// ie
	  				// dayField.options.remove(i);
	  				dayField.options[i] = null;
  				}
  				
  				switch(monthField.options[monthField.selectedIndex].value) {
					case "02":
						yr = yearField.options[yearField.selectedIndex].value;
						if ((yr % 4) == 0) dayField.options[29]=new Option("29");
						if (daySelected > 28){
				  			daySelected = 28;
						}
					  	break;
					case "04":
					case "06":
					case "09":
					case "11":
						dayField.options[29] = new Option("29");
						dayField.options[30] = new Option("30");
						if (daySelected > 30){
				  			daySelected = 30;
						}
						break;	  
					default:
						dayField.options[29] = new Option("29");
						dayField.options[30] = new Option("30");					
						dayField.options[31] = new Option("31");											
						break;
				  }
				  dayField.options[daySelected].selected = true;
			}			
							
			function copyField(toField,fromField,fieldType){
				t = document.getElementById(toField);
				f = document.getElementById(fromField);
				switch(fieldType){
					case "text":
						t.value = f.value;
						break;
					case "select":
						t.selectedIndex = f.selectedIndex;
						break;
				}
			}
			
			function fillChildCompanion(i,oneAdult,autoSelectChildCompanionIsDropDown){
				a = 0;				
				if(!oneAdult){
					companion = document.getElementById("childCompanionIs["+i+"]");
					a = companion.options[companion.selectedIndex].value;
				}
				
				if(autoSelectChildCompanionIsDropDown==1){
					companion = document.getElementById("childCompanionIs["+i+"]");
					if(companion.selectedIndex==0){
						companion.selectedIndex = 1;
						a=0;
					}
					else{
						a = companion.options[companion.selectedIndex].value;
					}
				}					
				
				if(a=="blank"){
					document.getElementById("childCompanionContactNumber["+i+"]").value = "";
					document.getElementById("childCompanionMailingAddress["+i+"]").value = "";
					document.getElementById("childCompanionEmailAddress["+i+"]").value = "";
					document.getElementById("childCompanionFirstName["+i+"]").value = "";
					document.getElementById("childCompanionLastName["+i+"]").value = "";
					document.getElementById("childCompanionMiddleName["+i+"]").value = "";
				}
				else{
					copyField("childCompanionContactNumber["+i+"]","adultContactNumber["+a+"]","text");
					copyField("childCompanionMailingAddress["+i+"]","adultMailingAddress["+a+"]","text");
					copyField("childCompanionEmailAddress["+i+"]","adultEmailAddress["+a+"]","text");
					copyField("childCompanionFirstName["+i+"]","adultFirstName["+a+"]","text");
					copyField("childCompanionLastName["+i+"]","adultLastName["+a+"]","text");
					copyField("childCompanionMiddleName["+i+"]","adultMiddleName["+a+"]","text");					
				}
			}
			
			function ImRegisteringMyself(f){
				blank = false;
				iAm = "";
				switch(f){
					case "dropdown":
						d = document.getElementById("registeringMyselfDropDown");
						dValue = d.options[d.selectedIndex].value;
						if(dValue=="blank"){
							blank = true;
						}
						else{
							iAm = dValue;
						}
						break;
					default:
						c = document.getElementById("registeringMyselfCheckbox");
						if(c.checked){
							iAm = f;	
						}
						else{
							blank = true;
						}
						break;
				}
				
				if(blank){
					document.getElementById("representativeFirstName").value = "";
					document.getElementById("representativeLastName").value = "";
					document.getElementById("representativeMiddleName").value = "";
					document.getElementById("representativeContactNumber").value = "";
					document.getElementById("representativeMailingAddress").value = "";
					document.getElementById("representativeEmailAddress").value = "";	
					return false;
				}
				
				if(iAm==""){
					return false;
				}
				else{
					iAmArray = iAm.split(",");
					delegateType = iAmArray[0];
					i = iAmArray[1];
					
					copyField("representativeFirstName",delegateType+"FirstName["+i+"]","text");
					copyField("representativeLastName",delegateType+"LastName["+i+"]","text");								
					copyField("representativeMiddleName",delegateType+"MiddleName["+i+"]","text");
					copyField("representativeContactNumber",delegateType+"ContactNumber["+i+"]","text");
					copyField("representativeMailingAddress",delegateType+"MailingAddress["+i+"]","text");
					copyField("representativeEmailAddress",delegateType+"EmailAddress["+i+"]","text");
				}
			}
			
			function toggleCountry(){
				doc = document.EN07Registration;
				co = doc.country.options[doc.country.selectedIndex].value;				
				if(co!="0"){
					co_array = co.split(",");
					if(co_array[1]=="1" && co_array[2]=="0"){
						document.getElementById("divSuggestACity").style.display = '';
						document.getElementById("divSuggestAChurch").style.display = '';
					}
					else{
						document.getElementById("divSuggestACity").style.display = 'none';
						document.getElementById("divSuggestAChurch").style.display = 'none';						
					}
				}				
			}
			
			function showCitySuggestions(){
				doc = document.EN07Registration;
				co = doc.country.options[doc.country.selectedIndex].value;
				if(co!="0"){
					co_array = co.split(",");
					if(co_array[1]=="1" && co_array[2]=="0"){
						co = co_array[0];
						tooltip_html = "<iframe id=\'iframeCitySuggestions\' style=\'width:100%; height:70px;\' frameborder=0 scrolling=\'no\' src=\'suggest.php?&fillField=city&suggest=city&co="+co+"\'></iframe>";
						return overlib(tooltip_html, STICKY, NOCLOSE, HEIGHT, 70, WIDTH, 337, BELOW, FIXY, 480);						
					}
					return false;
				}
				return false;
			}
			
			function showChurchSuggestions(){
				doc = document.EN07Registration;
				co = doc.country.options[doc.country.selectedIndex].value;
				ci = doc.city.value;
				
				if(co!="0"){
					co_array = co.split(",");
					if(co_array[1]=="1" && co_array[2]=="0"){
						co = co_array[0];
						tooltip_html = "<iframe id=\'iframeChurchSuggestions\' style=\'width:100%; height:70px;\' frameborder=0 scrolling=\'no\' src=\'suggest.php?&fillField=church&suggest=church&co="+co+"&ci="+escape(ci)+"\'></iframe>";
						return overlib(tooltip_html, STICKY, NOCLOSE, HEIGHT, 70, WIDTH, 337, BELOW, FIXY, 480);						
					}
					return false;
				}				

				else return false;
			}			
			
			function goBackToFirst(){
				doc = document.EN07Registration;
				doc.formAction.value = "";
				doc.submit();
			}
			
			function listenToKeystrokesAndToggleTranslation(nv,i){
				// spacebar
				if(window.event && window.event.keyCode == 40){
					toggleTranslation(nv,i,false);
					return false;
				}												
			}
			
			function toggleTranslation(nv,i,fromLabel){
				if(fromLabel){
					return false;
				}
				
				cN = document.getElementById("adultTranslationNeeded["+i+"]"); // checkbox
				sN = document.getElementById("adultLanguage["+i+"][Needed]"); // dropdown				
				
				cV = document.getElementById("adultTranslationVolunteer["+i+"]"); // checkbox
				sV = document.getElementById("adultLanguage["+i+"][Volunteer]"); // dropdown
				
				switch(nv){
					case "needed":
						if(cN.checked){
							cV.checked = false;
						}
						else{
							cV.checked = true;							
						}
						break;
					case "volunteer":
						if(cV.checked){
							cN.checked = false;
						}
						else{
							cN.checked = true;							
						}
						break;
				}
				
				if(cN.checked){
					sN.disabled = false;
				}
				else{
					sN.selectedIndex = 0;
					sN.disabled = true;
				}
				
				if(cV.checked){
					sV.disabled = false;
				}
				else{
					sV.selectedIndex = 0;
					sV.disabled = true;
				}
			}
			
			function clearErrors(){
				doc = document.EN07Registration;
				
				// country				
				doc.errorCountry.value = "";
				document.getElementById("divErrorCountry").style.display = 'none';				
				
				// city				
				doc.errorCity.value = "";
				document.getElementById("divErrorCity").style.display = 'none';
				
				// church				
				doc.errorChurch.value = "";
				document.getElementById("divErrorChurch").style.display = 'none';
				
				// adults				
				if(doc.hiddenNumberOfAdults.value!="" && doc.hiddenNumberOfAdults.value > 0){
					for(i=0 ; i<doc.hiddenNumberOfAdults.value ; i++){
						// first name
						document.getElementById("errorAdultFirstName["+i+"]").value = "";
						document.getElementById("divErrorAdultFirstName["+i+"]").style.display = 'none';
					
						// last name
						document.getElementById("errorAdultLastName["+i+"]").value = "";
						document.getElementById("divErrorAdultLastName["+i+"]").style.display = 'none';					
					
						// gender
						document.getElementById("errorAdultGender["+i+"]").value = "";
						document.getElementById("divErrorAdultGender["+i+"]").style.display = 'none';
					
						// contact number
						document.getElementById("errorAdultContactNumber["+i+"]").value = "";
						document.getElementById("divErrorAdultContactNumber["+i+"]").style.display = 'none';
						
						// email address
						document.getElementById("errorAdultEmailAddress["+i+"]").value = "";
						document.getElementById("divErrorAdultEmailAddress["+i+"]").style.display = 'none';						
						
						// language
						document.getElementById("errorAdultLanguage["+i+"]").value = "";
						document.getElementById("divErrorAdultLanguage["+i+"]").style.display = 'none';												
					}	
				}
				
				// students				
				if(doc.hiddenNumberOfStudents.value!="" && doc.hiddenNumberOfStudents.value > 0){				
					for(i=0 ; i<doc.hiddenNumberOfStudents.value ; i++){
						// first name
						document.getElementById("errorStudentFirstName["+i+"]").value = "";
						document.getElementById("divErrorStudentFirstName["+i+"]").style.display = 'none';
						
						// last name
						document.getElementById("errorStudentLastName["+i+"]").value = "";
						document.getElementById("divErrorStudentLastName["+i+"]").style.display = 'none';					
						
						// gender
						document.getElementById("errorStudentGender["+i+"]").value = "";
						document.getElementById("divErrorStudentGender["+i+"]").style.display = 'none';
						
						// contact number
						document.getElementById("errorStudentContactNumber["+i+"]").value = "";
						document.getElementById("divErrorStudentContactNumber["+i+"]").style.display = 'none';
						
						// email address
						document.getElementById("errorStudentEmailAddress["+i+"]").value = "";
						document.getElementById("divErrorStudentEmailAddress["+i+"]").style.display = 'none';												
					}
				}
				
				// children				
				if(doc.hiddenNumberOfChildren.value!="" && doc.hiddenNumberOfChildren.value > 0){								
					for(i=0 ; i<doc.hiddenNumberOfChildren.value ; i++){
						// first name
						document.getElementById("errorChildFirstName["+i+"]").value = "";
						document.getElementById("divErrorChildFirstName["+i+"]").style.display = 'none';
					
						// last name
						document.getElementById("errorChildLastName["+i+"]").value = "";
						document.getElementById("divErrorChildLastName["+i+"]").style.display = 'none';					
					
						// gender
						document.getElementById("errorChildGender["+i+"]").value = "";
						document.getElementById("divErrorChildGender["+i+"]").style.display = 'none';
					
						// birthday
						document.getElementById("errorChildBirthday["+i+"]").value = "";
						document.getElementById("divErrorChildBirthday["+i+"]").style.display = 'none';
						
						// companion
						document.getElementById("errorChildCompanion["+i+"]").value = "";
						document.getElementById("divErrorChildCompanion["+i+"]").style.display = 'none';						
						
						// companion relationship
						document.getElementById("errorChildCompanionRelationship["+i+"]").value = "";
						document.getElementById("divErrorChildCompanionRelationship["+i+"]").style.display = 'none';												
					}
				}
				
				// representative first name
				doc.errorRepresentativeFirstName.value = "";
				document.getElementById("divErrorRepresentativeFirstName").style.display = 'none';									
				
				// representative last name
				doc.errorRepresentativeLastName.value = "";
				document.getElementById("divErrorRepresentativeLastName").style.display = 'none';													
				
				// representative contact number
				doc.errorRepresentativeContactNumber.value = "";
				document.getElementById("divErrorRepresentativeContactNumber").style.display = 'none';
				
				// representative mailing address
				doc.errorRepresentativeMailingAddress.value = "";
				document.getElementById("divErrorRepresentativeMailingAddress").style.display = 'none';
				
				// representative email address
				doc.errorRepresentativeEmailAddress.value = "";
				document.getElementById("divErrorRepresentativeEmailAddress").style.display = 'none';
			}
			
			function sendError(inputType,fieldID,errorFieldID,errorDivID,compareValue,errorMessage){
				doc = document.EN07Registration;
				
				errorField = document.getElementById(errorFieldID);
				errorDiv = document.getElementById(errorDivID);
				
				switch(inputType){
					case "select":
						field = document.getElementById(fieldID);
						
						if(field.options[field.selectedIndex].value==compareValue){
							errorField.value = errorMessage;
							errorDiv.style.display = '';
							field.focus();
							return true;
						}
						break;
					case "radio":
						fieldArray = fieldID.split(",");
						unchecked = false;
						for(j=0 ; j<fieldArray.length ; j++){
							field = document.getElementById(fieldArray[j]);
							if(field.checked==true){
								unchecked = true;
							}
						}
						if(unchecked==false){
							errorField.value = errorMessage;
							errorDiv.style.display = '';
							field.focus();
							return true;
						}
						break;
					case "email":
						field = document.getElementById(fieldID);		
						if(field.value!=""){
							if(!isEmailValid(field.value)){
								errorField.value = errorMessage;
								errorDiv.style.display = '';
								field.focus();
								return true;
							}
						}
						break;	
					case "language":
						fieldArray = fieldID.split(",");
						
						c = document.getElementById(fieldArray[0]);
						s = document.getElementById(fieldArray[1]);
						
						if(c.checked && s.selectedIndex==0){
							errorField.value = errorMessage;
							errorDiv.style.display = '';
							s.focus();
							return true;
						}
						break;				
					default:
						field = document.getElementById(fieldID);		
						if(field.value==compareValue){
							errorField.value = errorMessage;
							errorDiv.style.display = '';
							field.focus();
							return true;
						}
						break;
				}
				
				return false;
			}
			
			function goRegister(){
				doc = document.EN07Registration;
				
				clearErrors();
				
				// validate form fields				
				
				if(sendError("select","country","errorCountry","divErrorCountry","0","Country must be selected.")){
					// country				
					return false;
				}
				else if(sendError("text","city","errorCity","divErrorCity","","City must be filled.")){
					// city
					return false;
				}
				else if(sendError("text","church","errorChurch","divErrorChurch","","Church must be filled.")){
					// church
					return false;
				}
				
				// adults				
				if(doc.hiddenNumberOfAdults.value!="" && doc.hiddenNumberOfAdults.value > 0){
					for(i=0 ; i<doc.hiddenNumberOfAdults.value ; i++){
						bracket = "["+i+"]";
						
						
						if(sendError("text","adultFirstName"+bracket,"errorAdultFirstName"+bracket,"divErrorAdultFirstName"+bracket,"","First name must be filled.")){
							// first name				
							return false;
						}						
						else if(sendError("text","adultLastName"+bracket,"errorAdultLastName"+bracket,"divErrorAdultLastName"+bracket,"","Last name must be filled.")){
							// last name				
							return false;
						}	
						else if(sendError("radio","adultGender"+bracket+"[Male],adultGender"+bracket+"[Female]","errorAdultGender"+bracket,"divErrorAdultGender"+bracket,"","Gender must be indicated.")){
							// gender
							return false;
						}	
						else if(sendError("text","adultContactNumber"+bracket,"errorAdultContactNumber"+bracket,"divErrorAdultContactNumber"+bracket,"","Contact number must be filled.")){
							// contact number				
							return false;
						}		
						else if(sendError("email","adultEmailAddress"+bracket,"errorAdultEmailAddress"+bracket,"divErrorAdultEmailAddress"+bracket,"","Email must be valid.")){
							// email				
							return false;
						}	
						else if(sendError("language","adultTranslationNeeded"+bracket+",adultLanguage"+bracket+"[Needed]","errorAdultLanguage"+bracket,"divErrorAdultLanguage"+bracket,"","Please indicate language.")){
							// language translation needed
							return false;
						}					
						else if(sendError("language","adultTranslationVolunteer"+bracket+",adultLanguage"+bracket+"[Volunteer]","errorAdultLanguage"+bracket,"divErrorAdultLanguage"+bracket,"","Please indicate language.")){
							// language translation volunteer
							return false;
						}											
					}
				}
				
				// students
				if(doc.hiddenNumberOfStudents.value!="" && doc.hiddenNumberOfStudents.value > 0){
					for(i=0 ; i<doc.hiddenNumberOfStudents.value ; i++){
						bracket = "["+i+"]";
						
						if(sendError("text","studentFirstName"+bracket,"errorStudentFirstName"+bracket,"divErrorStudentFirstName"+bracket,"","First name must be filled.")){
							// first name				
							return false;
						}						
						else if(sendError("text","studentLastName"+bracket,"errorStudentLastName"+bracket,"divErrorStudentLastName"+bracket,"","Last name must be filled.")){
							// last name				
							return false;
						}	
						else if(sendError("radio","studentGender"+bracket+"[Male],studentGender"+bracket+"[Female]","errorStudentGender"+bracket,"divErrorStudentGender"+bracket,"","Gender must be indicated.")){
							// gender
							return false;
						}	
						else if(sendError("text","studentContactNumber"+bracket,"errorStudentContactNumber"+bracket,"divErrorStudentContactNumber"+bracket,"","Contact number must be filled.")){
							// contact number				
							return false;
						}		
						else if(sendError("email","studentEmailAddress"+bracket,"errorStudentEmailAddress"+bracket,"divErrorStudentEmailAddress"+bracket,"","Email must be valid.")){
							// email				
							return false;
						}												
					}
				}
				
				// children
				if(doc.hiddenNumberOfChildren.value!="" && doc.hiddenNumberOfChildren.value > 0){
					for(i=0 ; i<doc.hiddenNumberOfChildren.value ; i++){
						bracket = "["+i+"]";
						
						if(sendError("text","childFirstName"+bracket,"errorChildFirstName"+bracket,"divErrorChildFirstName"+bracket,"","First name must be filled.")){
							// first name				
							return false;
						}						
						else if(sendError("text","childLastName"+bracket,"errorChildLastName"+bracket,"divErrorChildLastName"+bracket,"","Last name must be filled.")){
							// last name				
							return false;
						}	
						else if(sendError("radio","childGender"+bracket+"[Male],childGender"+bracket+"[Female]","errorChildGender"+bracket,"divErrorChildGender"+bracket,"","Gender must be indicated.")){
							// gender
							return false;
						}	
						else if(sendError("select","childBirthdayMonth"+bracket,"errorChildBirthday"+bracket,"divErrorChildBirthday"+bracket,"","Birthday must be filled.")){
							// birthday (months)
							return false;
						}							
						else if(sendError("select","childBirthdayDay"+bracket,"errorChildBirthday"+bracket,"divErrorChildBirthday"+bracket,"","Birthday must be filled.")){
							// birthday (days)
							return false;
						}													
						else if(sendError("select","childBirthdayYear"+bracket,"errorChildBirthday"+bracket,"divErrorChildBirthday"+bracket,"","Birthday must be filled.")){
							// birthday (years)
							return false;
						}
						else if(sendError("text","childCompanionFirstName"+bracket,"errorChildCompanion"+bracket,"divErrorChildCompanion"+bracket,"","Child's companion must be indicated.")){
							// child companion
							return false;
						}	
						else if(sendError("radio","childCompanionRelationship"+bracket+"[Parent],childCompanionRelationship"+bracket+"[Guardian]","errorChildCompanionRelationship"+bracket,"divErrorChildCompanionRelationship"+bracket,"","Relationship to child must be indicated.")){
							// companion relationship
							return false;
						}																															
					}
				}
				
				if(sendError("text","representativeFirstName","errorRepresentativeFirstName","divErrorRepresentativeFirstName","","First name must be filled.")){
					// first name
					return false;
				}
				else if(sendError("text","representativeLastName","errorRepresentativeLastName","divErrorRepresentativeLastName","","Last name must be filled.")){
					// last name
					return false;
				}
				else if(sendError("text","representativeContactNumber","errorRepresentativeContactNumber","divErrorRepresentativeContactNumber","","Contact number must be filled.")){
					// contact number
					return false;
				}
				else if(sendError("text","representativeMailingAddress","errorRepresentativeMailingAddress","divErrorRepresentativeMailingAddress","","Mailing Address must be filled.")){
					// mailing address
					return false;
				}				
				else if(sendError("text","representativeEmailAddress","errorRepresentativeEmailAddress","divErrorRepresentativeEmailAddress","","Email Address must be filled.")){
					// email address
					return false;
				}
				else if(sendError("email","representativeEmailAddress","errorRepresentativeEmailAddress","divErrorRepresentativeEmailAddress","","Email Address must be valid.")){
					// email address
					return false;
				}				
				
				doc.formAction.value = "confirm";
				doc.submit();					
			}			
			
			function listenToKeystrokes(){
				// enter
				if(window.event && window.event.keyCode == 13){
					goRegister();
					return false;			
				}	
				
				// arrow-down				
				if(window.event && window.event.keyCode == 40){
					// this.blur();
					return false;
				}								
			}						
			
			// index-default
			
			function goGenerateFormsOnEnter(){
				if(window.event && window.event.keyCode == 13){
					goGenerateForms();
					return false;			
				}		
			}			
			
			function goGenerateForms(){
				doc = document.EN07Registration;
				
				errorRow = document.getElementById("trErrorNumberOfDelegates");
				errorField = doc.errorNumberOfDelegates;				
				
				// set rules for how many delegates are allowed to be entered at a time
				if(!isNumeric(doc.numberOfDelegates.value)){
					errorRow.style.display = '';
					errorField.value = "Must be numeric.";					
					return false;					
				}
				else if(doc.numberOfDelegates.value == 0){
					errorRow.style.display = '';					
					errorField.value = "Enter a number.";
					return false;					
				}
				else if(doc.numberOfDelegates.value > maxDelegates){
					errorRow.style.display = '';					
					errorField.value = "You can only register "+maxDelegates+" delegates at a time.";
					return false;					
				}
				
				doc.submit();
			}			
