// JavaScript Document

// validates that the field value string has one or more characters in it
function isNotEmpty(elem) {
  var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        alert("Please fill in the required field.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
//validates that the entry is a positive or negative number
function isNumber(elem) {
  var str = elem.value;
    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString();
    if (!str.match(re)) {
        alert("Enter only numbers into the field.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    }
    return true;
}
// validates that the entry is 4 characters long
function isLen4(elem) {
  var str = elem.value;
    var re = /\b.{4}\b/;
    if (!str.match(re)) {
        alert("Entry does not contain the required 4 characters.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validates that the entry is 5 characters long
function isLen5(elem) {
  var str = elem.value;
    var re = /\b.{5}\b/;
    if (!str.match(re)) {
        alert("Entry does not contain the required 5 characters.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validates that the entry is 6 characters long
function isLen6(elem) {
  var str = elem.value;
    var re = /\b.{6}\b/;
    if (!str.match(re)) {
        alert("Entry does not contain the required 6 characters.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validates that the entry is 11 characters long
function isLen11(elem) {
  var str = elem.value;
    var re = /\b.{11}\b/;
    if (!str.match(re)) {
        alert("Entry does not contain the required 11 characters.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validates that the entry is formatted as an e-mail address
function isEMailAddr(elem) {
  var str = elem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
        alert("Verify the e-mail address format.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validate that the user made a selection other than default
function isChosen(select) {
    if (select.selectedIndex == 0) {
        alert("Please make a choice from the list.");
        return false;
    } else {
        return true;
    }
}

// validate that the user has checked one of the radio buttons
function isValidRadio(radio) {
    var valid = false;
    for (var i = 0; i < radio.length; i++) {
        if (radio[i].checked) {
            return true;
        }
    }
    alert("Make a choice from the radio buttons.");
    return false;
}

function focusElement(formName, elemName) {
    var elem = document.forms[formName].elements[elemName];
    elem.focus();
    elem.select();
}

// batch validation router
function validateForm(form) {
	if (isNotEmpty(form.OrderQuantity)) {
		if (isNotEmpty(form.CostCode1)) {
			if (isNotEmpty(form.CostCode2)) {
				if (isNotEmpty(form.CostCode3)) {	
					if (isNotEmpty(form.Name)) {
							if (isNotEmpty(form.Email)) {
								if (isLen4(form.CostCode1)) {
									if (isLen4(form.CostCode2)) {
										if (isLen5(form.CostCode3)) {
											if (isNumber(form.CostCode1)) {
												if (isNumber(form.CostCode2)) {
													if (isNumber(form.CostCode3)) {		
														return true;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
return false;
}

// batch validation router
function validateLetter(form) {
	if (isNotEmpty(form.OrderQuantity)) {
		if (isNotEmpty(form.CostCode1)) {
			if (isNotEmpty(form.CostCode2)) {
				if (isNotEmpty(form.CostCode3)) {	
							if (isLen4(form.CostCode1)) {
									if (isLen4(form.CostCode2)) {
										if (isLen5(form.CostCode3)) {
											if (isNumber(form.CostCode1)) {
												if (isNumber(form.CostCode2)) {
													if (isNumber(form.CostCode3)) {		
														return true;
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
return false;
}
