<!--
// ---------------------------------------------------------
// Author:			Massimo Mirabito Max (TRW/CISSS)
//					Jerrie Givens (EDS/CISSS)
// Organization:	HHS/CDC 
// Date:			6/30/1998
// Date Revised:	1/05/2000
// Description:		JavaScript Client-side form validation set-up codecode
// History:			6/30/1998	Coded the HTML page for TB validation
//					1/5/2000	Modified Client-side valiadtion by generalizinf the 
//								validation so that NIP and TB can used the same
//								rules
//					5/15/2000	Added formname attridute to the the form so that
//								specific sections of shared code between NIP and TB
//								can be used.
// ---------------------------------------------------------

function IsFormValid(form) 
{
// ---------------------------------------------------------
// Set order header attributes
// ---------------------------------------------------------
form.FormName				= "TBOrderForm";

form.T_first.required 		= true;
form.T_first.displayname 	= "First Name";
form.T_first.limit	 		= 30;
form.T_first.message 		= "First Name is required.";

form.T_last.required 		= true;
form.T_last.displayname 	= "Last Name";
form.T_last.limit	 		= 30;
form.T_last.message 		= "Last Name is a required entry.";

form.T_Add1.required 		= true;
form.T_Add1.requiredeval	= "((form.T_Add1.value == '') && (form.T_Add2.value == '') && (form.T_Add3.value == ''))";
form.T_Add1.displayname 	= "Address";
form.T_Add1.limit	 		= 30;
form.T_Add1.message 		= "Address is a required entry.";

form.T_Add2.required 		= true;
form.T_Add2.requiredeval	= "((form.T_Add1.value == '') && (form.T_Add2.value == '') && (form.T_Add3.value == ''))";
form.T_Add2.displayname 	= "Address";
form.T_Add2.limit	 		= 30;
form.T_Add2.message 		= "Address is a required entry.";

form.T_Add3.required 		= true;
form.T_Add3.requiredeval	= "((form.T_Add1.value == '') && (form.T_Add2.value == '') && (form.T_Add3.value == ''))";
form.T_Add3.displayname 	= "Address";
form.T_Add3.limit	 		= 30;
form.T_Add3.message 		= "Address is a required entry.";

form.T_City.required 		= true;
form.T_City.displayname 	= "City";
form.T_City.limit	 		= 30;
form.T_City.message 		= "City is a required entry.";

form.D_state.required 		= true;
form.D_state.requiredeval	= "(form.T_Country.value == 'USA')";
form.D_state.displayname 	= "State";
form.D_state.message 		= "State is a required entry.";

form.T_Zip.required 	= false;
form.T_Zip.displayname 	= "Zip Code";
form.T_Zip.limit	 		= 10;
form.T_Zip.message 		= "Zip Code is a required entry.";
/*form.T_Zip.format		= true;
form.T_Zip.formatstyle	= "#####-####;#####";
*/
form.T_Country.required 	= true;
form.T_Country.displayname	= "Country";
form.T_Country.limit	 	= 15;
form.T_Country.message 		= "Country is a required entry.";

form.T_phone1.required 		= true;
form.T_phone1.requiredeval	= "((form.T_Country.value == 'USA') || (form.T_Country.value == 'usa')) && ((form.T_phone1.value == ''))";
form.T_phone1.displayname 	= "Telephone Area Code";
form.T_phone1.message 		= "Telephone is required when shipping in the USA.";
form.T_phone1.format		= true;
form.T_phone1.formatstyle	= "###";

form.T_phone2.required 		= true;
form.T_phone2.requiredeval	= "((form.T_Country.value == 'USA') || (form.T_Country.value == 'usa')) && ((form.T_phone2.value == ''))";
form.T_phone2.displayname 	= "Telephone Prefix";
form.T_phone2.message 		= "Telephone is required when shipping in the USA.";
form.T_phone2.format		= true;
form.T_phone2.formatstyle	= "###";

form.T_phone3.required 		= true;
form.T_phone3.requiredeval	= "((form.T_Country.value == 'USA') || (form.T_Country.value == 'usa')) && ((form.T_phone3.value == ''))";
form.T_phone3.displayname 	= "Telephone Sufix";
form.T_phone3.message 		= "Telephone is required when shipping in the USA.";
form.T_phone3.format		= true;
form.T_phone3.formatstyle	= "####";

form.D_Profession.required		= true;
form.D_Profession.displayname	= "Profession";
form.D_Profession.message 		= "Profession is a required entry.";

form.D_Employer.required		= true;
form.D_Employer.displayname	= "Employer";
form.D_Employer.message 		= "Employer is a required entry.";

form.T_date1.format			= true;
form.T_date1.formatstyle	= "##";
form.T_date1.displayname 	= "Month is Required";

form.T_date2.format			= true;
form.T_date2.formatstyle	= "##";
form.T_date2.displayname 	= "Day is Required";

form.T_date3.format			= true;
form.T_date3.formatstyle	= "####";
form.T_date3.displayname 	= "Year is Required";

form.S_Comments.constraint			= true;
form.S_Comments.constrainteval	= "( (form.S_Comments.value).length -1 > 250)";
form.S_Comments.constraintmessage	= "You can only enter 250 charcters for the Comment field";

// ---------------------------------------------------------
// set up line item attributes 
// ---------------------------------------------------------
var s;
var bOK=true;
var FirstPublication = null;
for (var i = 0; i < form.length; i++) {
	s = form.elements[i].name;
	if (s.indexOf("T_item", 0) != -1) {										// if the filed name contains 'T_item' then
		if (FirstPublication == null) FirstPublication = form.elements[i];	// Crete a pointer to the first publication entry on the from
																			// This is used at a later point to get focus on the form if no
																			// quantities are selected
		form.elements[i].numeric 				= true;						// this is a publication field which requires
		form.elements[i].range 					= true;						// numeric and range validation. Therefore,
		form.elements[i].displayname			= s.substring(7);
		form.elements[i].constraint			= true;
		form.elements[i].constrainteval		= "( ((form.T_Country.value).toLowerCase() != 'usa') && " +
											  "((form.T_Country.value).toLowerCase() != 'puerto rico') && " +
											  "((form.T_Country.value).toLowerCase() != 'guam') && " +											  
											  "((form.T_Country.value).toLowerCase() != 'virgin isls.') && " +
											  "((form.T_Country.value).toLowerCase() != 'marshall isls.') && " +
											  "((form.T_Country.value).toLowerCase() != 'micronesia') && " +
											  "((form.T_Country.value).toLowerCase() != 'mariana isls.') && " +  
											  "((form.T_Country.value).toLowerCase() != 'rep. of palau') && " +
											  "((form.T_Country.value).toLowerCase() != 'samoa')) " +
											  " && (form." + form.elements[i].name + ".value > '10')";
		form.elements[i].constraintmessage	= "You can only order up to 10 quantities of each publication when ordering outside of the USA.";


		if (s == "T_item_6529")	SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5763") SetItemMinMaxQuatity(form.elements[i], 1, 100);
		if (s == "T_item_998049") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		
		//ZGZ5 8/3/2009
		if (s == "T_item_211024") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		
		//ZGZ5 7/27/2009
		if (s == "T_item_999609") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999610") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999611") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999607") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999608") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999605") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999606") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		
		
		//JIG1 12/05/2005
		if (s == "T_item_998212") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
				
		//JIG1 5/30/2006 
		if (s == "T_item_998215") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998214") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 3/04/2008
		if (s == "T_item_999183") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999184") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		
		//JIG1 9/19/2008
		if (s == "T_item_999369") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999365") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999373") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999366") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999368") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999367") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999370") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999362") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999372") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999360") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999371") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_999363") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
				
		//JIG1 5/04/2006
		if (s == "T_item_998225") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998224") SetItemMinMaxQuatity(form.elements[i], 1, 1);
		if (s == "T_item_998369") SetItemMinMaxQuatity(form.elements[i], 1, 1);
		
		//JIG1 3/25/2009
		if (s == "T_item_999271") SetItemMinMaxQuatity(form.elements[i], 1, 1);
		
 		if (s == "T_item_995497") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
 		if (s == "T_item_998830") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6186") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6406") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6552") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5564") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5457") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		//if (s == "T_item_996583") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997925") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
	
	    //JIG1 09/21/2008
		if (s == "T_item_998802") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 12/01/2006
		if (s == "T_item_998688") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 11/16/2007
		if (s == "T_item_999038") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 12/18/2008
		if (s == "T_item_999561") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 08/21/2007
		if (s == "T_item_998645")	SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998644")	SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		
		//JIG1 12/05/2005
		if (s == "T_item_998213") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		if (s == "T_item_6553") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6514") SetItemMinMaxQuatity(form.elements[i], 1, 100);
		if (s == "T_item_996206") SetItemMinMaxQuatity(form.elements[i], 1, 1);		
		if (s == "T_item_996352") SetItemMinMaxQuatity(form.elements[i], 1, 100000);		
		if (s == "T_item_996158") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996420") SetItemMinMaxQuatity(form.elements[i], 1, 100000);		
		if (s == "T_item_996469") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 12/05/2005
		if (s == "T_item_998218") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998219") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998220") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998221") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998222") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998223") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		
		if (s == "T_item_6469") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		if (s == "T_item_6474") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6475") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5743") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5772") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5738") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5745") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5981") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5982") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5983") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5984") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5985") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_5856") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 08/11/2005
		if (s == "T_item_998160") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998326") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 07/24/2006
		if (s == "T_item_998605") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		if (s == "T_item_998458") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998451") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		if (s == "T_item_6410")	SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6330") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6224") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 02/23/2009
		if (s == "T_item_999761") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 05/10/2005
		if (s == "T_item_6225") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		if (s == "T_item_6223")	SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6148") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_995791") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_3327") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6574") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_995775") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_995879") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996144") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996422") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996423") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996725") SetItemMinMaxQuatity(form.elements[i], 1, 100000);		
		if (s == "T_item_6453") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6225") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6575") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6617") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6573") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_995412") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996893") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		//SHW3 09/20/01
		if (s == "T_item_996352") SetItemMinMaxQuatity(form.elements[i], 1, 100000);

		//SHW3 01/02/02
		if (s == "T_item_996879") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 12/05/08
		if (s == "T_item_999671") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
	
		//SHW3 03/05/02
		if (s == "T_item_997047") SetItemMinMaxQuatity(form.elements[i], 1, 50);
	
		//JIG1 03/27/09
		if (s == "T_item_999760") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
	
		//SHW3 05/09/02
		if (s == "T_item_997185") SetItemMinMaxQuatity(form.elements[i], 1, 10000);
	 
	    //JIG1 09/27/02
		if (s == "T_item_997314") SetItemMinMaxQuatity(form.elements[i], 1, 10000);
		
		//JIG1 09/27/02
		if (s == "T_item_997347") SetItemMinMaxQuatity(form.elements[i], 1, 10000);
		
		//JIG1 01/08/04
		if (s == "T_item_997679") SetItemMinMaxQuatity(form.elements[i], 1, 10000);
	    if (s == "T_item_997789") SetItemMinMaxQuatity(form.elements[i], 1, 1);

		
		//JIG1 02/04/03
		if (s == "T_item_997466") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997389") SetItemMinMaxQuatity(form.elements[i], 1, 10000);
	 
		//JIG1 06/28/03
		if (s == "T_item_997490") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
	 
	}
}
bOK = ValidateForm(form);
// ---------------------------------------------------------
// enforce business rules: at least one QTY and if email 
// address is enterd it must have '@' sign
// ---------------------------------------------------------
if (bOK) {
	var c = 0;
	// ---------------------------------------------------------
	// Validate the required date
	// ---------------------------------------------------------
	if ((form.T_date1.value != "") && (form.T_date2.value != "") && (form.T_date3.value != "")) {
		form.T_DateRequired.value = form.T_date1.value + "/" + form.T_date2.value + "/" + form.T_date3.value;
		if (!IsDate(form.T_DateRequired, DateInfo)) {
			if (DateInfo.ErrorType == "month") {
				alert("Invalid Date.\n'" + form.T_date1.displayname + "' is an invalid.");
				form.T_date1.select();
				form.T_date1.focus();
				return false;
			}
			else {
				if (DateInfo.ErrorType == "day") {
					alert("Invalid Date.\n'" + form.T_date2.displayname + "' is an invalid.");
					form.T_date2.select();
					form.T_date2.focus();

					return false;
				}
			}

		}
	}
	// ---------------------------------------------------------
	// At least one item must be selected with a quantity > 0
	// ---------------------------------------------------------
	for (var i = 0; i < form.length; i++) {
		s = form.elements[i].name;
		if (s.indexOf("T_item", 0) != -1)  {
			if (IsNumeric(form.elements[i]) && !IsBlank(form.elements[i])) 
				c = c + parseInt(form.elements[i].value);
		}
	}
	if (c == 0) {
		alert("You have selected no Publications.\nPlease select at least one publication to submit the order.");
		FirstPublication.focus();		// got  to the first element of the form
		return (false);
	}
	// ---------------------------------------------------------
	// validate the email address
	// ---------------------------------------------------------
	if ((form.T_email.value != "" && form.T_email.value != null)) {
		s = form.T_email.value;
		if (s.indexOf("@", 0) == -1) {
			alert("Your E-mail address is invalid. please re-type it in the the following format:'name@domain'");
			return (false);
		}
	}
	// ---------------------------------------------------------
	// Concatenate the phone number parts
	// ---------------------------------------------------------
	form.T_Telephone.value = "";
	if ((form.T_phone1.value != "") && (form.T_phone2.value != "") && (form.T_phone3.value != ""))
		form.T_Telephone.value = "(" + form.T_phone1.value + ")" + form.T_phone2.value + "-" + form.T_phone3.value;

}
if (form.C_savecookie.checked)
	SetCookieInfo(form);

return (bOK);
}
//-->
