// JavaScript Document
function formValidate(travel_type, form,CC)
{
	var error = "";
	var numErrors = 0;	
	
	switch(travel_type)
	{
		//-------------- CONDO --------------
		case 1:
			if (form.resort_id.value == 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Resort\" is selected.\n"; }
			if (form.supplier_id.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Supplier\" is selected.\n"; }
			if (form.bedroom_type.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". \"Bedroom Type\" is not specified.\n"; }
			if (isBlank(form.max_occ.value))
				{ numErrors++; error += "" + numErrors + ". \"Max. Occupancy\" is not specified.\n"; }
			else if (!isNumeric(form.max_occ.value))
				{ numErrors++; error += "" + numErrors + ". \"Max. Occupancy\" must be a positive number.\n"; }
			if (isBlank(form.priv_occ.value))
				{ numErrors++; error += "" + numErrors + ". \"Privacy Occupancy\" is not specified.\n"; }
			else if (!isNumeric(form.priv_occ.value))
				{ numErrors++; error += "" + numErrors + ". \"Privacy Occupancy\" must be a positive number.\n"; }		

		break;
	
		//-------------- AVAILABILITY --------------
		case 6: 
			if (form.condo_id.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Condo\" is selected.\n"; }
			if (isBlank(form.num_available.value))
				{ numErrors++; error += "" + numErrors + ". \"Units Available\" is blank.\n"; }
			else if (!isNumeric(form.num_available.value))
				{ numErrors++; error += "" + numErrors + ". \"Units Available\" must be a positive number.\n"; }
			if (isBlank(form.on_hold.value))
				{ numErrors++; error += "" + numErrors + ". \"Units On Hold\" is blank.\n"; }
			else if (!isNumeric(form.on_hold.value))
				{ numErrors++; error += "" + numErrors + ". \"Units On Hold\" must be a positive number.\n"; }
			if (isBlank(form.week.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Week\" is blank.\n"; }
			else if(!isDate(form.week.value))
				{ numErrors++; error += "" + numErrors + ". \"Week\" must be a valid date in the format yyyy-mm-dd.\n"; }
			if (isBlank(form.cost.value))
				{ numErrors++; error += "" + numErrors + ". \"Cost\" is blank.\n";	}
			else if (!isNumeric(form.cost.value))
				{ numErrors++; error += "" + numErrors + ". \"Cost\" must be a positive number.\n"; }
		break;   
		
		//-------------- RESORT --------------
		case 7:
			// check for blank fields and PROPER lengths-----------------
			if (isBlank(form.na.value))
				{ numErrors++; error += "" + numErrors + ". \"Resort Name\" is blank.\n"; }
			if (isBlank(form.ci.value))
				{ numErrors++; error += "" + numErrors + ". \"City\" is blank.\n"; }
			if (isBlank(form.co.value))
				{ numErrors++; error += "" + numErrors + ". \"Country\" is blank.\n"; }
	
			// make sure a region and a sub-region are selected
			if (form.ri.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Region\" is selected.\n"; }
			if (form.re.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Sub-Region\" is selected.\n"; }					
		break;
		
		//-------------- SUPPLIER --------------
		case 8:
			if (isBlank(form.name.value))
				{ numErrors++; error += "" + numErrors + ". \"Name\" is blank.\n"; }						
			if (isBlank(form.address.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Address\" is blank.\n"; }
			var phoneOkay = false;
			if (!isBlank(form.phone.value)) 
				{ phoneOkay = true; }	
			var emailOkay = false;
			if (!isBlank(form.email.value)) 
				{ emailOkay = true; }
			if(!phoneOkay && !emailOkay) 
				{ numErrors++; error += "" + numErrors + ". At least one of \"Phone\" or \"E-Mail\" must be filled.\n"; }	
	
		break;
	
		//-------------- CRUISE --------------
		case 2:  

			if (isBlank(form.itinerary.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Itinerary\" is blank.\n"; }
			if (form.cruiseline_id.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Cruise Line\" is selected.\n"; }
			if (form.cruiseship_id.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Ship\" is selected.\n"; }
			if (form.dep.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Departure City\" is selected.\n"; }
			if (form.dest.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Destination\" is selected.\n"; }	
			if (isBlank(form.deal_date.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Deal Date\" is blank.\n"; }
			else if(!isDate(form.deal_date.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Deal Date\" must be a valid date in the format yyyy-mm-dd.\n"; }
			if (isBlank(form.book_date.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Book By\" is blank.\n"; }
			else if(!isDate(form.book_date.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Book By\" must be a valid date in the format yyyy-mm-dd.\n"; }
			if (isBlank(form.duration.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Duration\" is blank.\n";	}
			else if(!isNumeric(form.duration.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Duration\" must be a positive number.\n"; }
			if (isBlank(form.inside.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Inside Price\" is blank.\n"; }
			else if(!isNumeric(form.inside.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Inside Price\" must be a positive number.\n"; }	
			if (isBlank(form.ocean.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Ocean Price\" is blank.\n"; }
			else if(!isNumeric(form.ocean.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Ocean Price\" must be a positive number.\n"; }	
			if (isBlank(form.bal.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Balcony Price\" is blank.\n"; }
			else if(!isNumeric(form.bal.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Balcony Price\" must be a positive number.\n"; }	
			if (isBlank(form.ma.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Markup\" is blank.\n"; }
			else if(!isNumeric(form.ma.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Markup\" must be a positive number.\n"; }	
		break;
		
		//-------------- HOTEL --------------
		case 3:  

			if (isBlank(form.hn.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Hotel Name\" is blank.\n"; }
			if (isBlank(form.dt.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Deal Title\" is blank.\n"; }
			if (form.rt.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Room Type\" is selected.\n"; }
			if (isBlank(form.ci.value)) 
				{ numErrors++; error += "" + numErrors + ". \"City\" is blank.\n"; }
			if (isBlank(form.st.value)) 
				{ numErrors++; error += "" + numErrors + ". \"State\" is blank.\n"; }
			if (isBlank(form.co.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Country\" is blank.\n"; }		
			if (isBlank(form.sd.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Start Date\" is blank.\n"; }
			else if(!isDate(form.sd.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Start Date\" must be a valid date in the format yyyy-mm-dd.\n"; }		
			if (isBlank(form.ed.value)) 
				{ numErrors++; error += "" + numErrors + ". \"End Date\" is blank.\n"; }
			else if(!isDate(form.ed.value)) 
				{ numErrors++; error += "" + numErrors + ". \"End Date\" must be a valid date in the format yyyy-mm-dd.\n"; }
			if (isBlank(form.du.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Duration\" is blank.\n";	}
			else if(!isNumeric(form.du.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Duration\" must be a positive number.\n"; }
			if (isBlank(form.cost.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Cost\" is blank.\n"; }
			else if(!isNumeric(form.cost.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Cost\" must be a positive number.\n"; }	
			if (form.cu.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Currency\" is selected.\n"; }
			if (form.per.selectedIndex < 0) 
				{ numErrors++; error += "" + numErrors + ". No \"Per Type\" is selected.\n"; }
		break;		
		
		//-------------- PACKAGE --------------
		case 4:  
			if(form.dest_code.selectedIndex < 1 || form.dest_code.options[form.dest_code.selectedIndex].value == "")
				{ numErrors++; error += "" + numErrors + ". \"Airport\" hasn't been selected.\n"; }
	
			/*-----------------------------------------------------------------------*/

			//*  Un-Comment the following section to make accommodations required **//**
			if((form.ptype.value == 1 && (isBlank(form.condo_id.value) || !isNumeric(form.condo_id.value)))
			  ||  (form.ptype.value == 2 && (isBlank(form.resort_id.value) || !isNumeric(form.resort_id.value))) )
				{ numErrors++; error += "" + numErrors + ". \"Accomodations\" haven't been selected.\n"; }

			//*  Un-Comment the following section to make days/nights required **//**
			if(isBlank(form.days.value) && isBlank(form.nights.value))
				{ numErrors++; error += "" + numErrors + ". Atleast one of \"Days\" or \"Nights\" must be filled in.\n"; }
			if (!isBlank(form.days.value) && !isNumeric(form.days.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Days\" must be a positive number.\n"; }
			/*-----------------------------------------------------------------------*/

			if (!isBlank(form.nights.value) && !isNumeric(form.nights.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Nights\" must be a positive number.\n"; }
			if (form.totalPackages.defaultValue-0 == 0) 
				{ numErrors++; error += "" + numErrors + ". \"No. Packages\" must be a positive number.\n"; }	
			else {
				nPackages = form.totalPackages.defaultValue-0;
				var pProblems = false;
				for(var p =0; p<nPackages; p++)
				{
					if(typeof form["dep_code"+p+""] == "undefined")
						{ nPackages = (nPackages-1); break; }
					
					if(form["dep_code"+p+""].selectedIndex < 1)
						{ if(!pProblems)  error += "\n     Problems with Package #"+(p+1)+":\n"; numErrors++; error += "" + numErrors + ". \"Departure City\" hasn't been selected.\n"; pProblems = true;}
					if (form["deal_date"+p+""].selectedIndex < 1) 
						{ if(!pProblems)  error += "\n     Problems with Package #"+(p+1)+":\n"; numErrors++; error += "" + numErrors + ". \"Deal Date\" hasn't been selected.\n"; pProblems = true;}

					var airfare = form["airfare"+p+""].value;
					var adjustment = form["adjustment"+p+""].value;
					
					if (form.ptype.value == 1)
					{
						if (isBlank(airfare) || !isNumeric(airfare)) 
							{ if(!pProblems)  error += "\n     Problems with Package #"+(p+1)+":\n"; numErrors++; error += "" + numErrors + ". \"Airfare\" must be a positive number.\n"; pProblems = true;}
						if (isBlank(adjustment) || !isNumeric(adjustment)) 
							{ if(!pProblems)  error += "\n     Problems with Package #"+(p+1)+":\n"; numErrors++; error += "" + numErrors + ". \"Adjustment\" must be filled in with a number (even if it's 0).\n"; pProblems = true;}
					}
					else {
						if ( (isBlank(airfare) || airfare == 0) && (isBlank(adjustment) || adjustment == 0) ) 
							{ if(!pProblems)  error += "\n     Problems with Package #"+(p+1)+":\n"; numErrors++; error += "" + numErrors + ". Atleast one of \"Quad.Occ\" or \"Dbl.Occ\" must be entered.\n"; pProblems = true;}
						else if(!isBlank(airfare) && !isNumeric(airfare))
							{ if(!pProblems)  error += "\n     Problems with Package #"+(p+1)+":\n"; numErrors++; error += "" + numErrors + ". \"Quad.Occ\" must be a positive number.\n"; pProblems = true;}
						else if(!isBlank(adjustment) && !isNumeric(adjustment))
							{ if(!pProblems)  error += "\n     Problems with Package #"+(p+1)+":\n"; numErrors++; error += "" + numErrors + ". \"Dbl.Occ\" must be a positive number.\n"; pProblems = true;}
					}					

					if(form["currency"+p+""].selectedIndex < 0)
						{ if(!pProblems)  error += "\n     Problems with Package #"+(p+1)+":\n"; numErrors++; error += "" + numErrors + ". \"Currency\" hasn't been selected.\n"; pProblems = true;}
				
					if(pProblems)
						break;
				}
				if(!pProblems)
				{
					for(var p=0; p<nPackages; p++)
						for(var p2=p+1; p2<nPackages; p2++)
						{
							if( 
								form["dep_code"+p+""].options[form["dep_code"+p+""].selectedIndex].value == form["dep_code"+p2+""].options[form["dep_code"+p2+""].selectedIndex].value
								&& (
									(form.ptype.value == 1 && form["deal_date"+p+""].options[form["deal_date"+p+""].selectedIndex].value == form["deal_date"+p2+""].options[form["deal_date"+p2+""].selectedIndex].value)
									||
									(form.ptype.value == 2 && form["deal_date"+p+""].value == form["deal_date"+p2+""].value)
								)
							)

							//if( form["deal_date"+p+""].options[form["deal_date"+p+""].selectedIndex].value == form["deal_date"+p2+""].options[form["deal_date"+p2+""].selectedIndex].value 
							//	&& form["dep_code"+p+""].options[form["dep_code"+p+""].selectedIndex].value == form["dep_code"+p2+""].options[form["dep_code"+p2+""].selectedIndex].value )

							{ numErrors++; error += "" + numErrors + ". \"Departure Date #"+(p+1)+"\" is the same as \"Departure Date #"+(p2+1)+"\"\n"; }			
						}
					}
				
							
			}
			break;
		
		//-------------- ORDERS --------------
		case 10:
			var msg = "";

			if(form.status.options) {
				var status = form.status.options[form.status.selectedIndex].value;
				var status_name = form.status.options[form.status.selectedIndex].text;
			}
			var ex = form.exchange_rate.value - 0;
			var currency = form.currency.value;

			if(status == 3) {
				if(form.condo_id.value == "" || !isDate(form.week.value))
					{ numErrors++; error += "" + numErrors + ". No unit selected.\n"; }
								
				if (isBlank(form.price.value))
					{ numErrors++; error += "" + numErrors + ". \"Markup\" is blank.\n"; }
				else if(!isNumeric(form.price.value)) 
					{ numErrors++; error += "" + numErrors + ". \"Markup\" must be a positive number.\n"; }	
					
				if (form.release_date.selectedIndex < 0)
					{ numErrors++; error += "" + numErrors + ". \"Hold Duration\" is not selected.\n"; }
				else if(!isBlank(form.week.value)) {
					var today = new Date();
					var mm = today.getMonth() + 1; if(mm < 10) mm = "" + "0" + mm;
					var dd = today.getDate();      if(dd < 10) dd = "" + "0" + dd;
					var todayStr = "" + today.getYear() + "-" + mm + "-" + dd;

					if(!isBefore(todayStr, form.week.value, true))
						{ numErrors++; error += "" + numErrors + ". \"Check-In\" is not valid (it must occur after today).\n"; }	
					else if(!isBefore(form.release_date.options[form.release_date.selectedIndex].value, form.week.value))
						{ numErrors++; error += "" + numErrors + ". \"Hold Duration\" is not valid (it must expire before the check-in date).\n"; }	
				}
				
				if(numErrors == 0) {
					var cost = form.cost.value - 0;
					var markup = form.price.value - 0;
					var subtotal = cost + markup;
					var total = round(subtotal); // total = round((currency != "USD") ? (subtotal * ex) : (subtotal));
					msg = "Note:  Price is $" +total+ " " +currency+".\n\n";
				}
			}	
					
				
			if(numErrors == 0)
				if(!confirm(msg + "Do you wish to change this order's status to \"" +status_name+ "\"?"))	
					return false;

		break;
		
		case 21:
			selectAll("resorts[]");
			selectAll("resorts_1[]");
			selectAll("resorts_2[]");
			selectAll("resorts_3[]");
			
			if(form.new_account){
				if(form.new_account[1].checked == true){
					if (isBlank(form.gem.value)) 
					{ numErrors++; error += "" + numErrors + ". \"Guest Email\" is blank.\n"; }			
					
					if (isBlank(form.gph.value)) 
					{ numErrors++; error += "" + numErrors + ". \"Guest Phone\" is blank.\n"; }	
					
					if (isBlank(form.gfn.value)) 
					{ numErrors++; error += "" + numErrors + ". \"Guest Firstname\" is blank.\n"; }	
				}
			}
			if (isBlank(form.name.value)) 
				{ numErrors++; error += "" + numErrors + ". \"Name\" is blank.\n"; }			
		
			if((form.region_1.value == 7 || form.region_1.value == 9 || form.region_1.value == 13) && form.subregion_1.value  == 0){
				numErrors++; error += "" + numErrors + ". \"Sub-Region\" must be selected.\n"; 
			}
			if(form.more_1.checked == true){
				if((form.region_2.value == 7 || form.region_2.value == 9 || form.region_2.value == 13) && form.subregion_2.value  == 0){
					numErrors++; error += "" + numErrors + ". \"Sub-Region in the second Travel Planner\" must be selected.\n"; 
				}
			}
			if(form.more_2.checked == true){
				if((form.region_3.value == 7 || form.region_3.value == 9 || form.region_3.value == 13) && form.subregion_3.value  == 0){
					numErrors++; error += "" + numErrors + ". \"Sub-Region in the third Travel Planner\" must be selected.\n"; 
				}
			}
			if(form["resorts_1" + "\[" + "\]"])
				var cntA = form["resorts_1" + "\[" + "\]"].options.length;
			else
				var cntA = 0;
			if(form["resorts_2" + "\[" + "\]"])		
				var cntB = form["resorts_2" + "\[" + "\]"].options.length;
			else
				var cntB = 0;
			if(form["resorts_3" + "\[" + "\]"])
				var cntC = form["resorts_3" + "\[" + "\]"].options.length;
			else
				var cntC = 0;
			
			if ((cntA == 0 && cntB == 0 && cntC == 0 ) && (isBlank(form.region_1.value) && isBlank(form.region_2.value) && isBlank(form.region_3.value))) 
				{ numErrors++; error += "" + numErrors + ". \"Location\" is blank.\n"; }
			if(form.ty.checked){
				if(isBlank(form.cname.value))	{ numErrors++; error += "" + numErrors + ". \"Name as it appears on card\" is blank.\n"; }
				if(form.ctype.selectedIndex < 0)  	{ numErrors++; error += "" + numErrors + ". \"Card Type\" is not selected.\n"; }
				else {
					if(isBlank(form.cno.value))  	{ numErrors++; error += "" + numErrors + ". \""+form.ctype.options[form.ctype.selectedIndex].text+" Card Number\" is blank.\n"; }
					else if (!isValidCreditCardNumber (form.ctype.options[form.ctype.selectedIndex].value, form.cno.value)){ numErrors++; error += "" + numErrors + ". \""+form.ctype.options[form.ctype.selectedIndex].text+" Card Number\" is not valid.\n"; }
				}
				if(isBlank(form.cidno.value))  	{ numErrors++; error += "" + numErrors + ". \"Card Identification Number\" is blank.\n"; }
				var cmo = false;
				if(form.cmo.selectedIndex < 0)  { numErrors++; error += "" + numErrors + ". \"Card Expiry Month\" is not selected.\n"; }
					else cmo = true; 
	
				var cyr = false;
				if(form.cyr.selectedIndex < 0)  { numErrors++; error += "" + numErrors + ". \"Card Expiry Year\" is not selected.\n"; }
					else cyr = true; 
				
				if(cmo && cyr && !isFutureDate(form.cyr.options[form.cyr.selectedIndex].value, form.cmo.options[form.cmo.selectedIndex].value))  	
					{ numErrors++; error += "" + numErrors + ". \"Expiry Date\" is invalid.\n"; }
	
				if(isBlank(form.cfn.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- First Name\" is blank.\n"; }
				if(isBlank(form.cln.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Last Name\" is blank.\n"; }
				if(isBlank(form.ca1.value) && isBlank(form.ca2.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Address\" is blank.\n"; }
				if(isBlank(form.cci.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- City\" is blank.\n"; }
				if(isBlank(form.cst.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Prov/State\" is blank.\n"; }
				if(isBlank(form.cco.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Country\" is blank.\n"; }
				if(isBlank(form.czi.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Postal Code\" is blank.\n"; }
				if(isBlank(form.cph.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Phone\" is blank.\n"; }
				if(isBlank(form.cem.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- E-Mail\" is blank.\n"; }
			}
			break;
		case 37:
				if(form.fn){
					if (isBlank(form.fn.value)) {
						numErrors++; error += "" + numErrors + ". \"First Name\" is blank.\n";	
					}
				}
				if(form.ln){
					if (isBlank(form.ln.value)) {
						numErrors++; error += "" + numErrors + ". \"Last Name\" is blank.\n";	
					}
				}
				if(form.em){
					if (isBlank(form.em.value)) {
						numErrors++; error += "" + numErrors + ". \"E-Mail\" is blank.\n";	
					}
				}
				if(form.ph){
					if (isBlank(form.ph.value)) {
						numErrors++; error += "" + numErrors + ". \"Phone\" is blank.\n";	
					}
				} 
				if(form.a1){
					if (isBlank(form.a1.value)) {
						numErrors++; error += "" + numErrors + ". \"Address\" is blank.\n";	
					}
				}
				if(form.ci){
					if (isBlank(form.ci.value)) {
						numErrors++; error += "" + numErrors + ". \"City\" is blank.\n";	
					}
				}
				if(form.st){
					if (isBlank(form.st.value)) {
						numErrors++; error += "" + numErrors + ". \"State\" is blank.\n";	
					}
				}
				if(form.zi){
					if (isBlank(form.zi.value)) {
						numErrors++; error += "" + numErrors + ". \"Postal Code\" is blank.\n";	
					}
				}
				
				if(form.new_mem){
					if(form.new_mem.selectedIndex < 0)  	{ numErrors++; error += "" + numErrors + ". \"New Membership\" is not selected.\n"; }
				}
				
				if(form.cname){
					if(isBlank(form.cname.value))	{ numErrors++; error += "" + numErrors + ". \"Name as it appears on card\" is blank.\n"; }
					if(form.ctype.selectedIndex < 0)  	{ numErrors++; error += "" + numErrors + ". \"Card Type\" is not selected.\n"; }
					else {
						if(isBlank(form.cno.value))  	{ numErrors++; error += "" + numErrors + ". \""+form.ctype.options[form.ctype.selectedIndex].text+" Card Number\" is blank.\n"; }
						else if (!isValidCreditCardNumber (form.ctype.options[form.ctype.selectedIndex].value, form.cno.value)){ numErrors++; error += "" + numErrors + ". \""+form.ctype.options[form.ctype.selectedIndex].text+" Card Number\" is not valid.\n"; }
					}
					if(isBlank(form.cidno.value))  	{ numErrors++; error += "" + numErrors + ". \"Card Identification Number\" is blank.\n"; }
					var cmo = false;
					if(form.cmo.selectedIndex < 0)  { numErrors++; error += "" + numErrors + ". \"Card Expiry Month\" is not selected.\n"; }
						else cmo = true; 
		
					var cyr = false;
					if(form.cyr.selectedIndex < 0)  { numErrors++; error += "" + numErrors + ". \"Card Expiry Year\" is not selected.\n"; }
						else cyr = true; 
					 
					if(cmo && cyr && !isFutureDate(form.cyr.options[form.cyr.selectedIndex].value, form.cmo.options[form.cmo.selectedIndex].value))  	
						{ numErrors++; error += "" + numErrors + ". \"Expiry Date\" is invalid.\n"; }
		
					if(isBlank(form.cfn.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- First Name\" is blank.\n"; }
					if(isBlank(form.cln.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Last Name\" is blank.\n"; }
					if(isBlank(form.ca1.value) && isBlank(form.ca2.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Address\" is blank.\n"; }
					if(isBlank(form.cci.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- City\" is blank.\n"; }
					if(isBlank(form.cst.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Prov/State\" is blank.\n"; }
					if(isBlank(form.cco.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Country\" is blank.\n"; }
					if(isBlank(form.czi.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Postal Code\" is blank.\n"; }
					if(isBlank(form.cph.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- Phone\" is blank.\n"; }
					if(isBlank(form.cem.value))		{ numErrors++; error += "" + numErrors + ". \"Credit Card -- E-Mail\" is blank.\n"; }
				}
				if(form.terms){
					if(form.terms.checked == false)
						{ numErrors++; error += "" + numErrors + ". Please review and agree to the terms and conditions.\n"; }
						
				}
			break;
			
		case 14:
			selectAll("country[]");
			selectAll("state[]");
			selectAll("city[]");
			selectAll("supplier[]");
			selectAll("resorts[]");	
			selectAll("region[]");
			
			selectAll("country2[]");
			selectAll("state2[]");
			selectAll("city2[]");
			selectAll("hotels[]");	
			selectAll("rating[]");
			selectAll("roomtype[]");
			selectAll("boardtype[]");
			selectAll("map[]");
			
			selectAll("fiona_country[]");
			selectAll("fiona_state[]");
			selectAll("fiona_city[]");
			
			
			if(form.blockType.value == 4){
				if(form["country2[]"].length == 0){
					numErrors++; error += "" + numErrors + ". \"Country\" must be selected.\n"; 
				}
				if(form["state2[]"].length == 0){
					numErrors++; error += "" + numErrors + ". \"Destination\" must be selected.\n"; 
				}			
				/*
				if(isBlank(form.start_date.value)){
					numErrors++; error += "" + numErrors + ". \"Start Date\" is blank.\n"; 
				}
				if(isBlank(form.end_date.value)){
					numErrors++; error += "" + numErrors + ". \"End Date\" is blank.\n"; 
				}
				*/
				if(form.child.value > 0){
					if(isBlank(form.age.value))		{ numErrors++; error += "" + numErrors + ". \"Child Age\" is blank.\n"; }
				}
			}

			if(form.blockType.value <= 0)		{ numErrors++; error += "" + numErrors + ". \"Block Type\" is blank.\n"; }
			
			break;
		case 22:
			selectAll("blocks[]");
			selectAll("map[]");
			selectAll("tours[]");
			selectAll("htypes[]");
			selectAll("hotsheets[]");
			break;
		case 38:
				if(form.agencyID){
					if (isBlank(form.agencyID.value)) {
						numErrors++; error += "" + numErrors + ". \"Agency ID\" is blank.\n";	
					}
				}
				if(form.code){
					if (isBlank(form.code.value)) {
						numErrors++; error += "" + numErrors + ". \"Site Code\" is blank.\n";	
					}
				}
				if(form.profileNO){
					if (isBlank(form.profileNO.value)) {
						numErrors++; error += "" + numErrors + ". \"Agent ID\" is blank.\n";	
					}
				}
				if(form.contractID){
					if (isBlank(form.contractID.value)) {
						numErrors++; error += "" + numErrors + ". \"Contract ID\" is blank.\n";	
					}
				}
				if(form.expiry){
					if (isBlank(form.expiry.value)) {
						numErrors++; error += "" + numErrors + ". \"Expiry Date\" is blank.\n";	
					}
					if(form.expiry.value == '0000-00-00') {
						numErrors++; error += "" + numErrors + ". \"Expiry Date\" is blank.\n";	
					}
				}
				
			break;
		case 24:
			if (isBlank(form.pts.value))
				{ numErrors++; error += "" + numErrors + ". \"Contract Name\" is blank.\n"; }
			if (isBlank(form.max.value))
				{ numErrors++; error += "" + numErrors + ". \"Maximum Number of Members:\" is blank.\n"; }
			if (isBlank(form.stat.value))
				{ numErrors++; error += "" + numErrors + ". \"Contract Status\" is blank.\n"; }
			if (isBlank(form.web.value))
				{ numErrors++; error += "" + numErrors + ". \"Web Site\" is blank.\n"; }
			if (isBlank(form.hp.value))
				{ numErrors++; error += "" + numErrors + ". \"Homepage\" is blank.\n"; }
			if (isBlank(form.fee.value))
				{ numErrors++; error += "" + numErrors + ". \"Signup Fee\" is blank.\n"; }
			if (isBlank(form.freq.value))
				{ numErrors++; error += "" + numErrors + ". \"Renewal Frequency\" is blank.\n"; }
			if (isBlank(form.length.value))
				{ numErrors++; error += "" + numErrors + ". \"Length of Membership\" is blank.\n"; }
			if (isBlank(form.due.value))
				{ numErrors++; error += "" + numErrors + ". \"Membership Dues\" is blank.\n"; }
			if (isBlank(form.commission.value))
				{ numErrors++; error += "" + numErrors + ". \"Commission\" is blank.\n"; }
			if (isBlank(form.duration.value))
				{ numErrors++; error += "" + numErrors + ". \"Paid Up Front\" is blank.\n"; }
			if (isBlank(form.time.value))
				{ numErrors++; error += "" + numErrors + ". \"Paid Up Front\" is blank.\n"; }
			if (isBlank(form.amount.value))
				{ numErrors++; error += "" + numErrors + ". \"Paid Up Front Amount\" is blank.\n"; }
			selectAll("aid[]");			
			break; 
		case 30:
			if (isBlank(form.date.value))
				{ numErrors++; error += "" + numErrors + ". \"Arrival Date\" is blank.\n"; }
			if(isBlank(form["duration"].selectedIndex))
				{ numErrors++; error += "" + numErrors + ". \"Duration of Stay\" is blank.\n"; }
			if(isBlank(form["adult_1"].selectedIndex))
				{ numErrors++; error += "" + numErrors + ". \"Number of Adults\" is blank.\n"; }	
			if(isBlank(form["child_1"].selectedIndex))
				{ numErrors++; error += "" + numErrors + ". \"Number of Children\" is blank.\n"; }	
			
			if(!isBlank(form["dest"].value)){
				var check = false;
				for (i = 0; i < form["place"].length; i++) {
					if (form["place"][i].checked) {
						check = true;
					}				
				}
				if(check == false)
					{ numErrors++; error += "" + numErrors + ". \"Destiantion\" is blank.\n"; }
			}
			else{
				if(form["subregion_id"].selectedIndex == 0)
					{ numErrors++; error += "" + numErrors + ". \"Destiantion\" is blank.\n"; }
			}
			break;
		case 31:
			if(isBlank(form["code"].value))
				{ numErrors++; error += "" + numErrors + ". \"Code\" is blank.\n"; }
			else{
				if(code[form["code"].value] == 1)
				{ 
				    if(code_this == ""){
						numErrors++; error += "" + numErrors + ". \"Code\" is already been used. Please choose a new Code.\n"; 
					}
					else{
						if(form["code"].value != code_this){
							numErrors++; error += "" + numErrors + ". \"Code\" is already been used. Please choose a new Code.\n"; 
						}
					}
				}
			}
			
			selectAll("date_ids[]");
			break;
		
		case 39:
			if(isBlank(form["site_code"].value))
				{ numErrors++; error += "" + numErrors + ". \"Site Code\" is blank.\n"; }
			if(isBlank(form["filename"].value))
				{ numErrors++; error += "" + numErrors + ". \"File\" is blank.\n"; }
			if(numErrors == 0){
				msg = "You are about to insert the Identities:"  + "\n\t";
				msg += "\n\nClick [OK] to proceed or [Cancel] to make a different selection.";
				return confirm(msg);
			}
			break;
	}


	// let user know of all error messages
	if(numErrors > 0) {
		if (numErrors == 1)
			error = "The following error was detected:\n\n" + error + "\nPlease correct this error before proceeding.";
		else
			error = "The following errors were detected:\n\n" + error + "\nPlease correct these errors before proceeding.";
		alert(error);	
		return false;
	}
	else 
		return true;

}

var submitcount=0;
function checkFields() {                       // field validation -

   if (submitcount == 0)
      {
      submitcount++;
      return true;
      }
   else 
      {
      alert("This form has already been submitted.  Please wait!");
      return false;
      }
}
