var objFirstField = "", objFirstFieldReq = ""; function validateAllFields(objStart, iCount) { if (iCount == 0) { var objErrMsg = document.getElementById("errArea"); objErrMsg.innerHTML = ""; objErrMsg.style.display = "none"; } var objChild = "", objLabel = ""; if (objStart == "") objStart = document.body; for (var i=0; i<=objStart.childNodes.length-1; i++) { objChild = objStart.childNodes[i]; if (objChild.tagName) { switch (objChild.tagName.toLowerCase()) { case "input": switch(objChild.type.toLowerCase()) { case "text": if ((objChild.id.search(/radio-moreinfo/gi) < 0) && (objChild.id.search(/checkbox-moreinfo/gi) < 0)) { objLabel = document.getElementById(objChild.id.replace(/fld/gi, "lbl")); if (objChild.id.search(/req/gi) >= 0) validator(objLabel, objChild, "req"); else if (objChild.id.search(/min/gi) >= 0) validator(objLabel, objChild, "min"); } break; case "password": objLabel = document.getElementById(objChild.id.replace(/fld/gi, "lbl")); if (objChild.id.search(/req/gi) >= 0) validator(objLabel, objChild, "req"); else if (objChild.id.search(/min/gi) >= 0) validator(objLabel, objChild, "min"); break; case "radio": if (objChild.id.search(/req/gi) >= 0) validator("", objChild, "req"); case "checkbox": if (objChild.id.search(/req/gi) >= 0) validator("", objChild, "req"); break; case "button": break; default: break; } break; case "textarea": objLabel = document.getElementById(objChild.id.replace(/fld/gi, "lbl")); if (objChild.id.search(/req/gi) >= 0) validator(objLabel, objChild, "req"); else if (objChild.id.search(/min/gi) >= 0) validator(objLabel, objChild, "min"); break; case "select": objLabel = document.getElementById(objChild.id.replace(/fld/gi, "lbl")); if (objChild.id.search(/req/gi) >= 0) validator(objLabel, objChild, "req"); else if (objChild.id.search(/min/gi) >= 0) validator(objLabel, objChild, "min"); break; default: break; } } if (objChild.childNodes.length > 0) validateAllFields(objChild, iCount+1); } if (iCount == 0) { if (objFirstFieldReq) { objFirstFieldReq.focus(); objFirstFieldReq = ""; return false; } else return true; } } function validator(objLabel, objField, reqType) { var objNameID = objField.id; var arrFldnameParts = objNameID.split("_"); switch (trim(arrFldnameParts[1]).toLowerCase()) { case "text": if (objLabel) objLabel.style.color = "#000000"; objField.style.border = "solid 1px #999999"; if ((trim(objField.value) == "") && (reqType == "req")) { if (objFirstFieldReq == "") objFirstFieldReq = objField; if (objLabel) objLabel.style.color = "#FF0000"; objField.style.border = "1px solid #FF0000"; getErrMsg("text"); } break; case "select": if (objLabel) objLabel.style.color = "#000000"; objField.style.border = "solid 1px #999999"; if ((trim(objField.options[objField.selectedIndex].value) == "") && (reqType == "req")) { if (objField.id.toLowerCase().search(/state/gi) >= 0) { var objCountry = document.getElementById(objField.id.replace(/State/gi, "Country")); if (objCountry.options[objCountry.selectedIndex].value.toLowerCase() == "united states") { if (objFirstFieldReq == "") objFirstFieldReq = objField; if (objLabel) objLabel.style.color = "#FF0000"; objField.style.border = "1px solid #FF0000"; getErrMsg("select"); } } else { if (objFirstFieldReq == "") objFirstFieldReq = objField; if (objLabel) objLabel.style.color = "#FF0000"; objField.style.border = "1px solid #FF0000"; getErrMsg("select"); } } break; case "radio": var curRadioObj = "", curRadioObjNameRoot = "", blnChecked = false; var arrTmp = objField.id.split("-"); var arrRadRoot = arrTmp[0].split("_"); for (var x=0; x<=arrRadRoot.length-2; x++) { if (x>0) curRadioObjNameRoot += "_"; curRadioObjNameRoot += arrRadRoot[x] } var iTotRadioGrp = parseInt(arrTmp[1]); for (var z=1; z <= iTotRadioGrp; z++) { curRadioObj = document.getElementById(curRadioObjNameRoot + "_" + z + "-" + iTotRadioGrp); if (curRadioObj.checked) { blnChecked = true; switch (curRadioObj.value.toLowerCase()) { case "other": var depTextbox = curRadioObjNameRoot.replace(/radio/gi, "radio-moreinfo"); var objDepTextbox = document.getElementById(depTextbox); if (objDepTextbox) { objLabel = document.getElementById(curRadioObjNameRoot.replace(/fld/gi, "lbl")); if (trim(objDepTextbox.value) == "") { blnSpecialErr = true; if (objFirstFieldReq == "") objFirstFieldReq = objDepTextbox; if (objLabel) objLabel.style.color = "#FF0000"; objDepTextbox.style.border = "1px solid #FF0000"; getErrMsg("radio-moreinfo"); } else { if (objLabel) objLabel.style.color = "#000000"; objDepTextbox.style.border = "1px solid #999999"; } } break; default: break; } } } objLabel = document.getElementById(curRadioObjNameRoot.replace(/fld/gi, "lbl")); if (!blnChecked) { if (objFirstFieldReq == "") objFirstFieldReq = objField; if (objLabel) objLabel.style.color = "#FF0000"; getErrMsg("radio"); } else if (objLabel) objLabel.style.color = "#000000"; break; case "checkbox": var curChkObj = "", curChkObjNameRoot = "", blnChecked = false, blnSpecialErr = false; var arrTmp = objField.id.split("-"); var arrRadRoot = arrTmp[0].split("_"); for (var x=0; x<=arrRadRoot.length-2; x++) { if (x>0) curChkObjNameRoot += "_"; curChkObjNameRoot += arrRadRoot[x] } var iTotRadioGrp = parseInt(arrTmp[1]); for (var z=1; z <= iTotRadioGrp; z++) { curChkObj = document.getElementById(curChkObjNameRoot + "_" + z + "-" + iTotRadioGrp); if (curChkObj.checked) { blnChecked = true; switch (curChkObj.value.toLowerCase()) { case "other": var depTextbox = curChkObjNameRoot.replace(/checkbox/gi, "checkbox-moreinfo"); var objDepTextbox = document.getElementById(depTextbox); if (objDepTextbox) { objLabel = document.getElementById(curChkObjNameRoot.replace(/fld/gi, "lbl")); if (trim(objDepTextbox.value) == "") { blnSpecialErr = true; if (objFirstFieldReq == "") objFirstFieldReq = objDepTextbox; if (objLabel) objLabel.style.color = "#FF0000"; objDepTextbox.style.border = "1px solid #FF0000"; getErrMsg("checkbox-moreinfo"); } else { if (objLabel) objLabel.style.color = "#000000"; objDepTextbox.style.border = "1px solid #999999"; } } break; default: break; } } } if (!blnSpecialErr) { objLabel = document.getElementById(curChkObjNameRoot.replace(/fld/gi, "lbl")); if (!blnChecked) { if (objFirstFieldReq == "") objFirstFieldReq = objField; if (objLabel) objLabel.style.color = "#FF0000"; getErrMsg("checkbox"); } else if (objLabel) objLabel.style.color = "#000000"; } break; case "email": var blnEmailValid = false; if ((trim(objField.value) == "") && (reqType == "req")) getErrMsg("text"); else { if ((trim(objField.value) != "") && ((reqType == "min") || (reqType == "req"))) { var blnEmailValid = validateEmail(trim(objField.value)); if (!blnEmailValid) getErrMsg("email"); } else blnEmailValid = true; } if (objLabel) objLabel.style.color = "#000000"; objField.style.border = "solid 1px #999999"; if (!blnEmailValid) { if (objFirstFieldReq == "") objFirstFieldReq = objField; if (objLabel) objLabel.style.color = "#FF0000"; objField.style.border = "1px solid #FF0000"; } break; case "emailconfirm": var blnEmailValid = false; if (trim(objField.value) == "") getErrMsg("text"); else { var blnEmailValid = validateEmail(trim(objField.value)); if (!blnEmailValid) getErrMsg("email"); } if (objLabel) objLabel.style.color = "#000000"; objField.style.border = "solid 1px #999999"; if (!blnEmailValid) { if (objFirstFieldReq == "") objFirstFieldReq = objField; if (objLabel) objLabel.style.color = "#FF0000"; objField.style.border = "1px solid #FF0000"; } else { var objEmail = document.getElementById(objNameID.replace(/emailconfirm/gi, "email")); if (objEmail.value.toLowerCase() != objField.value.toLowerCase()) { if (objFirstFieldReq == "") objFirstFieldReq = objField; if (objLabel) objLabel.style.color = "#FF0000"; objField.style.border = "1px solid #FF0000"; getErrMsg("emailconfirm"); } } break; default: break; } } function getErrMsg(dataType) { var objErrMsg = document.getElementById("errArea"); objErrMsg.style.color = "#FF0000"; switch (dataType) { case "text": if (trim(objErrMsg.innerHTML) == "") objErrMsg.innerHTML = "