// JavaScript Document		

    var reply0 = function(data)
    {
			var form = document.getElementById("App_Engine_Form");
    	//DWRUtil.setValue('d0', DWRUtil.toDescriptiveString(data, 1));
    	var bStatus = DWRUtil.toDescriptiveString(data, 1);
			if (bStatus == "false")
			{
			  alert("We are unable to recognize your Exploritas Program Number, please try again or contact BerkelyCare toll-free at 1-877-846-8806 for assistance.");
			  form['App_Engine_Form:question_1745'].focus();
			  return false;
			}
			else
			{
			  form['App_Engine_Form:question_1744'].focus();
				validateInput();
			}
    }
    
		function validateProgramNumber()
		{
			//alert("Validating the Program Number and Program Code...");
			var form = document.getElementById("App_Engine_Form");
			//alert("The program number is " + form['App_Engine_Form:question_1745'].value);
			AppUtil.getProductCode(form['App_Engine_Form:question_1745'].value, reply0);
		}
	
		function validateInput()
		{
			//alert("Validating input...");
			var dayInMs = 1000 * 60 * 60 * 24;
			var MAX_TRIP_LENGTH = 100 * dayInMs;
			var today = new Date();
			var todayStr = (today.getMonth() + 1) + "/" + today.getDate() + "/" + today.getFullYear();
			//alert("Today is " + today + ", (" + todayStr + ")");
			
			var form = document.getElementById("App_Engine_Form");
			
			// Make the Ajax call to validate the program number and retrieve the product code
			// NO GOOD. CAN'T TEST ON OUTCOME OF AJAX FUNCTION CALL
			//if ( !validateProgramNumber() )
			//{
			//	alert("pgm # bad :-(");
			//	return false;
			//}
			//else
			//{
			//	alert("pgm # good :-)");
			//	return true;
			//}
			
			// If departDate and returnDate both not empty,
			// error if departDate < today,  departDate must be in the future
			// error if returnDate < departDate, 
			// error if returnDate > departDate + 100(MAX_TRIP_LENGTH), max trip length exceeded
			//
			// cj:7/15/08 Return Date removed from page
			if (form["App_Engine_Form:question_1742"].value != "")
					 // && form["App_Engine_Form:question_1743"].value != "")
			{
				var departDate = Date.parse(form["App_Engine_Form:question_1742"].value);
				//var returnDate = Date.parse(form["App_Engine_Form:question_1743"].value);
								
				if ( departDate < Date.parse(todayStr) )
				{
					alert("That date has already passed.  Please enter your Program Start Date.");
					form["App_Engine_Form:question_1742"].focus();
					return false;
				}
				// 7/15/08 Return Date no longer needed
				//else if (returnDate < departDate)
				//{
				//	alert("Your Scheduled Departure Date must be before your Scheduled Return Date.");
				//	form["App_Engine_Form:question_1742"].focus();
				//	return false;
				//}
				//else if (returnDate > (departDate + MAX_TRIP_LENGTH - 1))
				//{
				//	alert("Your trip has exceeded the maximum trip length.  For assistance, please contact " + document.getElementById("site_phone").value);
				//	form["App_Engine_Form:question_1743"].focus();
				//	return false;
				//}
			}
			// cj.8.5.08 Any non-digits in the Program Number must be removed
			var origPgmNum = form["App_Engine_Form:question_1745"].value;
			var scrubbedPgmNum = "";
			for (i=0; i<origPgmNum.length; i++)
			{
				if (isDigit(origPgmNum.charAt(i)))
				{
					scrubbedPgmNum = scrubbedPgmNum + origPgmNum.charAt(i);
				}
			}
			// User sees letters discarded
			form["App_Engine_Form:question_1745"].value = scrubbedPgmNum;
			
			// If numTravelers is not empty
			// error if numTravelers < 1, must be at least 1
			// error if numTravelers > 25, call us
			if (form["App_Engine_Form:question_1744"].value != "")
			{
				if (form["App_Engine_Form:question_1744"].value < 1)
				{
					alert("There must be at least one Traveler");
					form["App_Engine_Form:question_1744"].focus();
					return false;
				}
				else if (form["App_Engine_Form:question_1744"].value > 25)
				{
					alert("Please call us for  parties of this size. " + document.getElementById("site_phone").value);
					form["App_Engine_Form:question_1744"].focus();
					return false;
				}
			}
			
			return true;
		}
