<!--
// ---------------------------------------------------------
// Author:			Massimo Mirabito Max (TRW/CISSS)
//					Silver Wang (TRW/CISSS)
// Organization:	HHS/CDC 
// Date:			08/07/2001
// 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.
//				    7/11/02 - EFH0	Added min/max validation for item_no 997225.
//				    7/29/02 - EFH0  Commented out min/max validation for item_no 997225.
// ---------------------------------------------------------

function IsFormValid(form) 
{
// ---------------------------------------------------------
// Set order header attributes
// ---------------------------------------------------------
form.FormName				= "STDOrderForm";

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 	= true;
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 		= false;
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 		= false;
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 		= false;
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		= false;
form.D_Profession.displayname	= "Profession";
form.D_Profession.message 		= "Profession is a required entry.";

form.D_Employer.required		= false;
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_995737") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_H0034") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996723") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_998270") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1 05/08/03
		if (s == "T_item_997547") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
	    if (s == "T_item_997873") SetItemMinMaxQuatity(form.elements[i], 1, 1);
		
		//JIG1 08/12/2005
		if (s == "T_item_997996") SetItemMinMaxQuatity(form.elements[i], 1, 3);
		if (s == "T_item_997926") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997927") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997928") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997929") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997930") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997931") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997932") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997933") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997934") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997935") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997936") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997937") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997946") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997942") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997943") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997938") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997939") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997944") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997945") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997940") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_997941") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		
		
		
		
		
		
		if (s == "T_item_996824") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996623") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996719") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996717") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996279") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_996667") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_995559") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		if (s == "T_item_6584") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		if (s == "T_item_s9999") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		//SHW3  10/29/01
		if (s == "T_item_997068") SetItemMinMaxQuatity(form.elements[i], 1, 100000);

		//SHW3  01/10/02
		if (s == "T_item_997071") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//SHW3  02/07/02
		if (s == "T_item_997145") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//SHW3  02/13/02
		if (s == "T_item_997151") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		if (s == "T_item_997912") SetItemMinMaxQuatity(form.elements[i], 1, 3);
		if (s == "T_item_997873") SetItemMinMaxQuatity(form.elements[i], 1, 1);
		
		//JIG1 3/19/2008
		if (s == "T_item_999221") SetItemMinMaxQuatity(form.elements[i], 1, 2);
		
		
		//JIG1 1/25/2005
		if (s == "T_item_998120") SetItemMinMaxQuatity(form.elements[i], 1, 5);
			
		//EFH0	7/11/02, 7/29/02
		if (s == "T_item_997225") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
	
		//SHW3	10/16/02
		if (s == "T_item_997367") SetItemMinMaxQuatity(form.elements[i], 1, 100000);
		
		//JIG1	2/10/09
		if (s == "T_item_999463") SetItemMinMaxQuatity(form.elements[i], 1, 1);
		
		//JIG1	5/1/09
		if (s == "T_item_999465") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		
		//JIG1	6/1/09
		if (s == "T_item_999464") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		
		//JIG1	3/03/09
		if (s == "T_item_999466") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		
		//JIG1	12/02/02
		if (s == "T_item_997969") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_998273") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		if (s == "T_item_997378") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        if (s == "T_item_997398") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        if (s == "T_item_996718") SetItemMinMaxQuatity(form.elements[i], 1, 20);
        if (s == "T_item_998472") SetItemMinMaxQuatity(form.elements[i], 1, 20);
        
        //JIG1	01/03/07
        if (s == "T_item_998643") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        
        //JIG1	03/23/06
        if (s == "T_item_997378") SetItemMinMaxQuatity(form.elements[i], 1, 20);
        
         //JIG1	03/19/09
        if (s == "T_item_999782") SetItemMinMaxQuatity(form.elements[i], 1, 25);
        if (s == "T_item_999783") SetItemMinMaxQuatity(form.elements[i], 1, 1);
        
        //JIG1	12/05/06
        if (s == "T_item_997912") SetItemMinMaxQuatity(form.elements[i], 1, 3);
        if (s == "T_item_996321") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_996349") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        if (s == "T_item_998362") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        if (s == "T_item_998363") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        
        //JIG1	10/15/07
        if (s == "T_item_998364") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        
        //JIG1	9/26/08
        if (s == "T_item_999427") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        if (s == "T_item_999428") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        
        //JIG1	11/15/07
        if (s == "T_item_999036") SetItemMinMaxQuatity(form.elements[i], 1, 50);
		        
        
        //JIG1	09/08/06
        if (s == "T_item_998563") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        
        //JIG1	09/17/07 
        if (s == "T_item_996349") SetItemMinMaxQuatity(form.elements[i], 1, 25);
        if (s == "T_item_997912") SetItemMinMaxQuatity(form.elements[i], 1, 100000);

		//JIG1 03/25/03
		if (s == "T_item_997500") SetItemMinMaxQuatity(form.elements[i], 1, 5);
		
		//JIG1 04/05/06
		if (s == "T_item_997398") SetItemMinMaxQuatity(form.elements[i], 1, 5);

		//SHW3 01/09/2003
		
		if (s == "T_item_996349") SetItemMinMaxQuatity(form.elements[i], 1, 10000);
		
		//JIG1 02/01/06
		if (s == "T_item_998362") SetItemMinMaxQuatity(form.elements[i], 1, 100);
		if (s == "T_item_999364") SetItemMinMaxQuatity(form.elements[i], 1, 50);
		if (s == "T_item_998363") SetItemMinMaxQuatity(form.elements[i], 1, 10);
		if (s == "T_item_998373") SetItemMinMaxQuatity(form.elements[i], 1, 100);
        if (s == "T_item_998374") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        if (s == "T_item_998372") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        if (s == "T_item_998440") SetItemMinMaxQuatity(form.elements[i], 1, 1);
        if (s == "T_item_998441") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        if (s == "T_item_998442") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        if (s == "T_item_998443") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        if (s == "T_item_998444") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        if (s == "T_item_998445") SetItemMinMaxQuatity(form.elements[i], 1, 50);
        
        
        //JIG1 02/25/08
        if (s == "T_item_998859") SetItemMinMaxQuatity(form.elements[i], 1, 20);
        if (s == "T_item_998860") SetItemMinMaxQuatity(form.elements[i], 1, 20);
        
        //JIG1 01/10/08
        if (s == "T_item_998858") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        
        //JIG1 01/10/08
        if (s == "T_item_998857") SetItemMinMaxQuatity(form.elements[i], 1, 5);
        if (s == "T_item_998822") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_998823") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_998824") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_998825") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_998826") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_998827") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_998828") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_998829") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        
        //JIG1 04/29/2008
        if (s == "T_item_999082") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_999083") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_999084") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_999085") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_999086") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_999087") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_999088") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        if (s == "T_item_999089") SetItemMinMaxQuatity(form.elements[i], 1, 10);
        
        //JIG1 11/07/06        
        if (s == "T_item_998554") SetItemMinMaxQuatity(form.elements[i], 1, 50);   
        if (s == "T_item_998553") SetItemMinMaxQuatity(form.elements[i], 1, 1);   
        
        //JIG1 3/25/09        
        if (s == "T_item_998445") SetItemMinMaxQuatity(form.elements[i], 1, 5);   
        
        //JIG1 7/02/09        
        if (s == "T_item_999897") SetItemMinMaxQuatity(form.elements[i], 1, 10);   
	 
	}
}
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);
}
//-->
