function validateNumericField(field) {

	var valid = ".0123456789"
	var ok = "yes";
	var temp;
	for (var i = 0; i < field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
		//alert("Invalid entry! Only numbers are accepted!");
		field.focus();
		field.select();
		return false;
	}
	return true;
}

function validateCharField(field) {
	var valid = "abcdefghijklmnopqrstuvwxyz0123456789"
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
		//alert("Invalid entry! Only characters and numbers are accepted!");
		field.focus();
		field.select();
		return -1;
	}
	return 1;
}



function validateZIP(field) {

	var valid = "0123456789-";
	var hyphencount = 0;

	if (field.length !=5 && field.length !=10) {

		alert("Please enter your 5 digit or 5 digit+4 zip code.");
		return false;
	}

	for (var i=0; i < field.length; i++) {
	temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;

		if (valid.indexOf(temp) == "-1") {

			alert("Invalid characters in your zip code.  Please reenter.");

			return false;
		}
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
			alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");

			return false;
   		}
	}
	return true;
}


//********** Validate Phone *************************//

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}



function checkInternationalPhone(strPhone){

	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";

	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";

	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;

	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function validatePhone(field) {


	if ((field.value==null)||(field.value=="")){
		alert("Please Enter your Phone Number")

		return false
	}
	if (checkInternationalPhone(field.value)==false){
		alert("Please Enter a Valid Phone Number")
		field.value=""
		//field.focus()
		return false
	}
	return true
 }

//****************************************************

function isEmpty(field)
{
	if (field.value.length ==0 || field.value == null)
	{
		return true;
	}
	else
	{
		return false;
	}

}


function validEmail(email)
{
	// function to validate email address.
	invalidChars = " /:,;";

	//if (email == "")
		//return false;
	if (email != "" || email != null) {

	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) > -1)
			return false;
	}

	atPos = email.indexOf("@",1);
	if (atPos == -1)
		return false;

	if (email.indexOf("@",atPos+1) > -1)
		return false;

	periodPos = email.indexOf(".",atPos);
	if (periodPos == -1)
		return false;

	if (periodPos+3 > email.length)
		return false;

	return true;
	}
}

//1) Enter name of mandatory fields
//var fieldRequired = Array("FirstName", "LastName");
//2) Enter field description to appear in the dialog box
//var fieldDescription = Array("First Name", "Last Name");

function formCheck(formobj, fieldRequired, fieldDescription){

	//3) Enter dialog message
	var alertMsg = "Please complete the following fields:\n";

	var cursorpos = false;
	var filled    = true;

	var l_Msg = alertMsg.length;

	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			filled  = true;

			switch(obj.type){
				case "select-one":
					if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].value == ""){
						filled = false;
						alertMsg += " - " + fieldDescription[i] + "\n";
					}
					break;
				case "select-multiple":
					if (obj.selectedIndex == -1){
						filled = false;
						alertMsg += " - " + fieldDescription[i] + "\n";
					}
					break;
				case "text":
				case "textarea":
					var str1 = "";
				        str1 = obj.value;
                                        str1 = str1.replace( /^\s*/, "" );
                			str1 = str1.replace( /\s*$/, "" );
					if (str1 == "" || str1 == null){
					filled = false;
					alertMsg += " - " + fieldDescription[i] + "\n";
					}
					break;
				default:
					{

						if (obj.value == "" || obj.value == null){
						 	filled = false;
							alertMsg += " - " + fieldDescription[i] + "\n";
						}
					}
			}
			if(!cursorpos && !filled){
				cursorpos = true;
				obj.focus();
			}
		}
	}
	if (alertMsg.length == l_Msg){
		return true;
	}
	else{
		alert(alertMsg);
		return false;
	}
}

function submitMain(button)
{
	frmObj = window.document.forms[4];

	if (button.id == "btnLiterature")
		{
			frmObj = window.document.forms[4];
			var items = 0;
			var fieldRequired;
			var fieldDescription;


			fieldRequired = Array("prefix","first_name","last_name","company","address","city","state","zip");
			fieldDescription = Array("Prefix", "First Name", "Last Name", "Company", "Address", "City", "State", "Zip");

			var strArrayField = new Array()
			//strArrayField = frmObj.txtRequiredField.value.split(",");
			//alert ("required field: " + strArrayField.length);
			//var strArrayDesc = frmObj.txtRequiredFieldDesc.value.split(",");
			//alert ("required fieldDesc: " + strArrayDesc.length);

			//fieldRequired = Array(strArrayField);
			//fieldDescription = Array(strArrayDesc);

			if (formCheck(frmObj, fieldRequired, fieldDescription))
			//if (formCheck(frmObj, strArrayField, strArrayDesc))
			{


				if (!isEmpty(frmObj.zip)) {

					//validateZIP(frmObj.zip.value)
					if (!validateZIP(frmObj.zip.value)) {
						frmObj.zip.focus();
						return false;
					}

				}

				if (! validEmail(frmObj.email.value) && !isEmpty(frmObj.email) )
				//if (! validEmail(frmObj.email.value))
				{
					alert("Email Address is invalid.");
					frmObj.email.focus();
					return false;
				}


				if (frmObj.item_requested1.checked == true) {

					//alert("Item 1 is checked");
					items++

				}

				if (frmObj.item_requested2.checked == true) {

					//alert("Item 2 is checked");
					items++

				}

				if (frmObj.item_requested6.checked == true) {

					//alert("Item 3 is checked");
					items++

				}

				if (frmObj.item_requested4.checked == true) {

					//alert("Item 4 is checked");
					items++

				}

				if (frmObj.item_requested5.checked == true) {

					//alert("Item 4 is checked");
					items++

				}

				if (items == 0) {

					alert("Please request at least one item.");
					return false;
				}


				if  (frmObj.in_hospital_trial.checked == true && isEmpty(frmObj.phone)) {

					if (! validatePhone(frmObj.phone)) {
						frmObj.phone.focus();
						return false;
					}
				}

				if  (frmObj.in_hospital_trial.checked == true && !validatePhone(frmObj.phone)) {

					//if (! validatePhone(frmObj.phone)) {
						frmObj.phone.focus();
						return false;
					//}
				}

				frmObj.method = "post";

				frmObj.action = "http://www.dupont.com/cgi-bin/e-merge.pl/tyvek/medfab/literature.tmpl&display=/tyvek/medfab/medfab_lit_resp.html";
				frmObj.submit();
				return true;
			}
			else
			{
				return false;

			}

			}


	}
	//  End -->
