//Check that all input fields have text. Ignore the fields named in the ignorearray
function doSubmit(form, ignore, fieldNames) {
	var fieldname, type, msg, textexp;
	if (!fieldNames) fieldNames = new Array();
	var country, state1, state2, state1_fid, state2_fid;
	var billCountry, billState1, billState2, billState1_fid, billState2_fid;
	
	if (typeof(ignore) == 'string') {
		ignore = ignore.split(',');	
	} else if (ignore == null) ignore = new Array();

	for (var i = 0; i < form.elements.length; i++) {
		var skip = false;
		var e = form.elements[i];
		if (e.style.display == 'none') continue;
		if (e.disabled) continue;
		if (e.type == "hidden") continue;
			
		fieldname = e.name;
		alert (fieldname);		

		for(var j = 0; j < ignore.length; j++) {
			if (ignore[j] == fieldname) {
				skip = true;
				break;
			}
		}
		if (skip) continue;
		
		if (e.getAttribute("displayName")) {
			displayName = e.getAttribute("displayName");
		} else if (fieldNames[fieldname]) {
			displayName = fieldNames[fieldname];
		} else {
			displayName = fieldname;	
		}


		switch (fieldname) {
			case 'Username':
				testexp = new RegExp("^.+\\@.+\\..+$");
				msg = "Your username must be a valid email address.";
				break;
			case 'Country':
				country = e.value;
				testexp = new RegExp("\\w+");
				msg = "Please select a value for the following field: " + displayName + ".";
				break;
			case 'State':
				state1 = e.value;
				state1_fid = i;
				break;
			case 'State2':
				testexp = new RegExp("\\w+");
                                msg = "Please complete the following field: " + displayName + ".";
				break;
                        case 'billCountry':
                                billCountry = e.value;
                                testexp = new RegExp("\\w+");
				msg = "Please select a value for the following field: " + displayName + ".";
                                break;
                        case 'billState1':
                                billState1 = e.value;
                                billState1_fid = i;
                                break;
                        case 'billState2':
                                testexp = new RegExp("\\w+");
                                msg = "Please complete the following field: " + displayName + ".";
                                break;
			case 'ConfirmPassword':
				msg = "The passwords you entered do not match.";
				testexp = new RegExp("^"+form.password.value+"$");
				break;
			case 'Password':
				//username and password must have alphanumeric chars only
				testexp = new RegExp("^[a-zA-Z0-9\\_]+$");
				msg = "Please complete the following field: "+displayName+".\n(Note: Password must contain only letters and numbers.)";
				break;
			case 'Phone':
			case 'Fax':
				testexp = new RegExp("\\d+");
				msg = "Please enter a valid phone number.";
				break;
			case 'Email':
				testexp = new RegExp("^.+\\@.+\\..+$");
				msg = "Please enter a valid email address.";
				break;
			default:
				testexp = new RegExp("\\w+");
				msg = "Please complete the following field: "+displayName+".";
		}

		if ((fieldname == 'State') || (fieldname == 'billState1')) continue;
		
		// AT LEAST ONE CHECKBOX FOR EACH NAME MUST BE FILLED
		if ((e.type == "checkbox") || (e.type == "radio")) {		
			var checkE = form.elements[form.elements[i].name];
			var ok = false;
			if (checkE.length > 1) {
				for (var j = 0; j < checkE.length; j++) {
					if (checkE[j].checked) {	
						ok = true;
						break;
					}
				}
			} else {
				if (checkE.checked) ok = true;
			}
			if (!ok) {			
				alert(msg);
				form.elements[i].focus();
				return false;
			}
		} else {
			if (!(testexp.test(e.value))) {
				alert(msg);
				form.elements[i].focus();
				return false;
			}	
		}
	}

	// DPV: Now check the state values
	if (((country == "United States") || (country == "Canada")) && (state1 == "")) {
		alert("Please select a value for the following field: State/Province.");
		form.element[state1_fid].focus();
		return false;
	}

        if (((billCountry == "United States") || (billCountry == "Canada")) && (billState1 == "")) {
                alert("Please select a value for the following field: Billing State/Province.");
                form.element[billState1_fid].focus();
                return false;
	}

		
	return true;	
}

