  
    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;
        }
    }
    
    var defaultLblColor = "", defaultTextBoxBorderColor = "";
    function validator(objLabel, objField, reqType)
    {
        var objNameID = objField.id;
        var arrFldnameParts = objNameID.split("_");
        if (objLabel) 
        {
            if (objLabel.style.color)
                if (trim(defaultLblColor)=="") defaultLblColor = objLabel.style.color;
            else
                if (trim(defaultLblColor)=="") defaultLblColor = "#000000";
        }
        
        if (objField)
        {
            if (objField.style.border)
            {
                if (trim(defaultTextBoxBorderColor)=="") defaultTextBoxBorderColor = objField.style.border;
                if (trim(defaultTextBoxBorderColor)=="") defaultTextBoxBorderColor = "solid 1px #999999";
            }
            else
                if (trim(defaultTextBoxBorderColor)=="") defaultTextBoxBorderColor = "solid 1px #999999";
        }
        
        switch (trim(arrFldnameParts[1]).toLowerCase())
        {
            case "text":
                if (objLabel) 
                {
                    if (objLabel.className)
                    {
                        objLabel.style.color = "";
                        objLabel.className = objLabel.className;
                    }
                    else
                        objLabel.style.color = defaultLblColor;
                }
                
                if (objField) 
                {
                    if (objField.className)
                    {
                        objField.style.borderColor = "";
                        objField.className = objField.className;
                        if (objField.className.search(/RO/gi)>=0) objField.style.border = "1px solid #FFFFFF";
                    }
                    else
                        objField.style.border = defaultTextBoxBorderColor;
                }
                
                if ((trim(objField.value) == "") && (reqType == "req"))
                {
                    if (objFirstFieldReq == "") objFirstFieldReq = objField;
                    if (objLabel) objLabel.style.color = "#FF0000";
                    if (objField) objField.style.borderColor = "#FF0000";
                    getErrMsg("text");
                }
                break;
            case "select":
                if (objLabel) 
                {
                    if (objLabel.className)
                    {
                        objLabel.style.color = "";
                        objLabel.className = objLabel.className;
                    }
                    else
                        objLabel.style.color = defaultLblColor;
                }
                
                if (objField) 
                {
                    if (objField.className)
                    {
                        objField.style.borderColor = "";
                        objField.className = objField.className;
                        if (objField.className.search(/RO/gi)>=0) objField.style.border = "1px solid #FFFFFF";
                    }
                    else
                        objField.style.border = defaultTextBoxBorderColor;
                }
                
                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";
                            if (objField) objField.style.borderColor = "#FF0000";
                            getErrMsg("select");
                        }
                    }
                    else
                    {
                        if (objFirstFieldReq == "") objFirstFieldReq = objField;
                        if (objLabel) objLabel.style.color = "#FF0000";
                        if (objField) objField.style.borderColor = "#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]);
                var depTextbox = "", objDepTextbox = "";
                for (var z=1; z <= iTotRadioGrp; z++)
                {
                    curRadioObj = document.getElementById(curRadioObjNameRoot + "_" + z + "-" + iTotRadioGrp);
                    if (curRadioObj.checked)
                    {
                        blnChecked = true;
                        switch (curRadioObj.value.toLowerCase())
                        {
                            case "other":
                                depTextbox = curRadioObjNameRoot.replace(/radio/gi, "radio-moreinfo");
                                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.borderColor = "#FF0000";
                                        getErrMsg("radio-moreinfo");
                                    }
                                    else
                                    {
                                        if (objLabel) 
                                        {
                                            if (objLabel.className)
                                            {
                                                objLabel.style.color = "";
                                                objLabel.className = objLabel.className;
                                            }
                                            else
                                                objLabel.style.color = defaultLblColor;
                                        }
                                        
                                        if (objField) 
                                        {  
                                            if (objField.className)
                                            {
                                                objField.style.borderColor = "";
                                                objField.className = objField.className;
                                                if (objField.className.search(/RO/gi)>=0) objField.style.border = "1px solid #FFFFFF";
                                            }
                                            else
                                                objField.style.border = defaultTextBoxBorderColor;
                                        }
                                    }
                                }
                                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) 
                    {
                        if (objLabel.className)
                        {
                            objLabel.style.color = "";
                            objLabel.className = objLabel.className;
                        }
                        else
                            objLabel.style.color = defaultLblColor;
                    }
                }
                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]);
                var depTextbox = "", objDepTextbox = "";
                for (var z=1; z <= iTotRadioGrp; z++)
                {
                    curChkObj = document.getElementById(curChkObjNameRoot + "_" + z + "-" + iTotRadioGrp);
                    if (curChkObj.checked) 
                    {
                        blnChecked = true;
                        switch (curChkObj.value.toLowerCase())
                        {
                            case "other":
                                depTextbox = curChkObjNameRoot.replace(/checkbox/gi, "checkbox-moreinfo");
                                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.borderColor = "#FF0000";
                                        getErrMsg("checkbox-moreinfo");
                                    }
                                    else
                                    {
                                        if (objLabel) 
                                        {
                                            if (objLabel.className)
                                            {
                                                objLabel.style.color = "";
                                                objLabel.className = objLabel.className;
                                            }
                                            else
                                                objLabel.style.color = defaultLblColor;
                                        }
                                        
                                        if (objField) 
                                        {
                                            if (objField.className)
                                            {
                                                objField.style.borderColor = "";
                                                objField.className = objField.className;
                                                if (objField.className.search(/RO/gi)>=0) objField.style.border = "1px solid #FFFFFF";
                                            }
                                            else
                                                objField.style.border = defaultTextBoxBorderColor;
                                        }
                                    }
                                }
                                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) 
                        {
                            if (objLabel.className)
                            {
                                objLabel.style.color = "";
                                objLabel.className = objLabel.className;
                            }
                            else
                                objLabel.style.color = defaultLblColor;
                        }
                    }
                }
                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) 
                {
                    if (objLabel.className)
                    {
                        objLabel.style.color = "";
                        objLabel.className = objLabel.className;
                    }
                    else
                        objLabel.style.color = defaultLblColor;
                }
                
                if (objField) 
                {
                    if (objField.className)
                    {
                        objField.style.borderColor = "";
                        objField.className = objField.className;
                        if (objField.className.search(/RO/gi)>=0) objField.style.border = "1px solid #FFFFFF";
                    }
                    else
                        objField.style.border = defaultTextBoxBorderColor;
                }
                
                if (!blnEmailValid)
                {
                    if (objFirstFieldReq == "") objFirstFieldReq = objField;
                    if (objLabel) objLabel.style.color = "#FF0000";
                    if (objField) objField.style.borderColor = "#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) 
                {
                    if (objLabel.className)
                    {
                        objLabel.style.color = "";
                        objLabel.className = objLabel.className;
                    }
                    else
                        objLabel.style.color = defaultLblColor;
                }
                
                if (objField) 
                {
                    if (objField.className)
                    {
                        objField.style.borderColor = "";
                        objField.className = objField.className;
                        if (objField.className.search(/RO/gi)>=0) objField.style.border = "1px solid #FFFFFF";
                    }
                    else
                        objField.style.border = defaultTextBoxBorderColor;
                }
                                        
                if (!blnEmailValid)
                {
                    if (objFirstFieldReq == "") objFirstFieldReq = objField;
                    if (objLabel) objLabel.style.color = "#FF0000";
                    if (objField) objField.style.borderColor = "#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";
                        if (objField) objField.style.borderColor = "#FF0000";
                        getErrMsg("emailconfirm");
                    }
                }
                break;
            case "password":
                if (objLabel) 
                {
                    if (objLabel.className)
                    {
                        objLabel.style.color = "";
                        objLabel.className = objLabel.className;
                    }
                    else
                        objLabel.style.color = defaultLblColor;
                }
                
                if (objField) 
                {
                    if (objField.className)
                    {
                        objField.style.borderColor = "";
                        objField.className = objField.className;
                        if (objField.className.search(/RO/gi)>=0) objField.style.border = "1px solid #FFFFFF";
                    }
                    else
                        objField.style.border = defaultTextBoxBorderColor;
                }
                
                if ((trim(objField.value) == "") && (reqType == "req"))
                {
                    if (objFirstFieldReq == "") objFirstFieldReq = objField;
                    if (objLabel) objLabel.style.color = "#FF0000";
                    if (objField) objField.style.borderColor = "#FF0000";
                    getErrMsg("text");
                }
                break;
            case "passwordconfirm":
                if (objLabel) 
                {
                    if (objLabel.className)
                    {
                        objLabel.style.color = "";
                        objLabel.className = objLabel.className;
                    }
                    else
                        objLabel.style.color = defaultLblColor;
                }
                
                if (objField) 
                {
                    if (objField.className)
                    {
                        objField.style.borderColor = "";
                        objField.className = objField.className;
                        if (objField.className.search(/RO/gi)>=0) objField.style.border = "1px solid #FFFFFF";
                    }
                    else
                        objField.style.border = defaultTextBoxBorderColor;
                }
                
                if ((trim(objField.value) == "") && (reqType == "req"))
                {
                    if (objFirstFieldReq == "") objFirstFieldReq = objField;
                    if (objLabel) objLabel.style.color = "#FF0000";
                    if (objField) objField.style.borderColor = "#FF0000";
                    getErrMsg("text");
                }
                else
                {
                    var objPassword = document.getElementById(objNameID.replace(/passwordconfirm/gi, "password"));
                    if (objPassword.value.toLowerCase() != objField.value.toLowerCase())
                    {
                        if (objFirstFieldReq == "") objFirstFieldReq = objField;
                        if (objLabel) objLabel.style.color = "#FF0000";
                        if (objField) objField.style.borderColor = "#FF0000";
                        getErrMsg("passwordconfirm");
                    }
                }
                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 = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                break;
            case "select":
                if (trim(objErrMsg.innerHTML) == "") objErrMsg.innerHTML = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                break;
            case "radio":
                if (trim(objErrMsg.innerHTML) == "")
                { 
                    objErrMsg.innerHTML = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                    objErrMsg.innerHTML += "<DIV STYLE=\"font-weight:bold;\">Required radio fields must have at least one choice selected.</DIV>";
                }
                break;
            case "radio-moreinfo":
                if (trim(objErrMsg.innerHTML) == "")
                { 
                    objErrMsg.innerHTML = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                    objErrMsg.innerHTML += "<DIV STYLE=\"font-weight:bold;\">Please provide more information for the Other field.</DIV>";
                }
                break;
            case "checkbox":
                if (trim(objErrMsg.innerHTML) == "")
                { 
                    objErrMsg.innerHTML = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                    objErrMsg.innerHTML += "<DIV STYLE=\"font-weight:bold;\">Required checkbox fields must have at least one choice selected.</DIV>";
                }
                break;
            case "checkbox-moreinfo":
                if (trim(objErrMsg.innerHTML) == "")
                { 
                    objErrMsg.innerHTML = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                    objErrMsg.innerHTML += "<DIV STYLE=\"font-weight:bold;\">Please provide more information for the Other field.</DIV>";
                }
                break;
            case "email":
                if (trim(objErrMsg.innerHTML) == "")
                { 
                    objErrMsg.innerHTML = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                    objErrMsg.innerHTML += "<DIV STYLE=\"font-weight:bold;\">Email is not valid.</DIV>";
                }
                break;
            case "emailconfirm":
                if (trim(objErrMsg.innerHTML) == "")
                {
                    objErrMsg.innerHTML = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                    objErrMsg.innerHTML += "<DIV STYLE=\"font-weight:bold;\">Email Confirm field does not match with Email.</DIV>";
                }
                break;
            case "passwordconfirm":
                if (trim(objErrMsg.innerHTML) == "")
                {
                    objErrMsg.innerHTML = "<DIV STYLE=\"font-weight:bold;\">All fields colored in RED are required entry.</DIV>";
                    objErrMsg.innerHTML += "<DIV STYLE=\"font-weight:bold;\">Password Confirm field does not match with Password.</DIV>";
                }
                break;
            default:
                break;
        }
        objErrMsg.style.display = "block";
    }
    
    function clearAllFields(objStart, iCount)
    {
        var objChild = "", objLabel = "";
        var curRadioObj = "", curRadioObjNameRoot = "";
        var arrTmp = "", arrRadRoot = "", iTotRadioGrp = "";
        var depTextbox = "", objDepTextbox = "";
        var curChkObj = "", curChkObjNameRoot = "";
        var objStateContainer = "";
        
        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))
                                {
                                    if (objFirstField == "") objFirstField = objChild;
                                    objLabel = document.getElementById(objChild.id.replace(/fld/gi, "lbl"));
                                    
                                    if (objLabel) 
                                    {
                                        if (objLabel.style.color)
                                            defaultLblColor = objLabel.style.color;
                                        else
                                            defaultLblColor = "#000000";

                                        if (objLabel.className)
                                        {
                                            objLabel.style.color = "";
                                            objLabel.className = objLabel.className;
                                        }
                                        else
                                            objLabel.style.color = defaultLblColor;
                                    }
                                    
                                    if (objChild)
                                    {
                                        if (objChild.style.border)
                                            defaultTextBoxBorderColor = objChild.style.border;
                                        else
                                            defaultTextBoxBorderColor = "solid 1px #999999";
    
                                        if (objChild.className)
                                        {
                                            objChild.style.borderColor = "";
                                            objChild.className = objChild.className;
                                            if (objChild.className.search(/RO/gi)>=0) objChild.style.border = "1px solid #FFFFFF";
                                        }
                                        else
                                            objChild.style.border = defaultTextBoxBorderColor;
                                        objChild.value = "";
                                    }
                                }
                                break;
                            case "password":
                                if (objFirstField == "") objFirstField = objChild;
                                objLabel = document.getElementById(objChild.id.replace(/fld/gi, "lbl"));
                                
                                if (objLabel) 
                                {
                                    if (objLabel.style.color)
                                        defaultLblColor = objLabel.style.color;
                                    else
                                        defaultLblColor = "#000000";
                                        
                                    if (objLabel.className)
                                    {
                                        objLabel.style.color = "";
                                        objLabel.className = objLabel.className;
                                    }
                                    else
                                        objLabel.style.color = defaultLblColor;
                                }
                                
                                if (objChild)
                                {
                                    if (objChild.style.border)
                                        defaultTextBoxBorderColor = objChild.style.border;
                                    else
                                        defaultTextBoxBorderColor = "solid 1px #999999";
                                        
                                    if (objChild.className)
                                    {
                                        objChild.style.borderColor = "";
                                        objChild.className = objChild.className;
                                        if (objChild.className.search(/RO/gi)>=0) objChild.style.border = "1px solid #FFFFFF";
                                    }
                                    else
                                        objChild.style.border = defaultTextBoxBorderColor;
                                    objChild.value = "";
                                }
                                break;
                            case "radio":
                                curRadioObj = "";
                                curRadioObjNameRoot = "";
                                arrTmp = objChild.id.split("-");
                                arrRadRoot = arrTmp[0].split("_");
                                for (var x=0; x<=arrRadRoot.length-2; x++)
                                {
                                    if (x>0) curRadioObjNameRoot += "_";
                                    curRadioObjNameRoot += arrRadRoot[x]
                                }
                               
                                iTotRadioGrp = parseInt(arrTmp[1]);
                                defaultTextBoxBorderColor = "";
                                for (var z=1; z <= iTotRadioGrp; z++)
                                {
                                    curRadioObj = document.getElementById(curRadioObjNameRoot + "_" + z + "-" + iTotRadioGrp);
                                    switch (curRadioObj.value.toLowerCase())
                                    {
                                        case "other":
                                            depTextbox =curRadioObjNameRoot.replace(/radio/gi, "radio-moreinfo");
                                            objDepTextbox = document.getElementById(depTextbox);
                                            if (objDepTextbox)
                                            {
                                                objDepTextbox.value = "";
                                                if (objDepTextbox.style.border)
                                                    defaultTextBoxBorderColor = objDepTextbox.style.border;
                                                else
                                                    defaultTextBoxBorderColor = "solid 1px #999999";

                                                if (objDepTextbox.className)
                                                {
                                                    objDepTextbox.style.borderColor = "";
                                                    objDepTextbox.className = objDepTextbox.className;
                                                    if (objDepTextbox.className.search(/RO/gi)>=0) objDepTextbox.style.border = "1px solid #FFFFFF";
                                                }
                                                else
                                                    objDepTextbox.style.border = defaultTextBoxBorderColor;    
                                            }
                                            break;
                                        default:
                                            break;
                                    }
                                    curRadioObj.checked = false;
                                }
                                if (objFirstField == "") objFirstField = objChild;
                                objLabel = document.getElementById(curRadioObjNameRoot.replace(/fld/gi, "lbl"));
                                if (objLabel) 
                                {
                                    if (objLabel.style.color)
                                        defaultLblColor = objLabel.style.color;
                                    else
                                        defaultLblColor = "#000000";

                                    if (objLabel.className)
                                    {
                                        objLabel.style.color = "";
                                        objLabel.className = objLabel.className;
                                    }
                                    else
                                        objLabel.style.color = defaultLblColor;
                                } 
                                break;
                            case "checkbox":
                                curChkObj = "";
                                curChkObjNameRoot = "";
                                arrTmp = objChild.id.split("-");
                                arrRadRoot = arrTmp[0].split("_");
                                for (var x=0; x<=arrRadRoot.length-2; x++)
                                {
                                    if (x>0) curChkObjNameRoot += "_";
                                    curChkObjNameRoot += arrRadRoot[x]
                                }
                               
                                iTotRadioGrp = parseInt(arrTmp[1]);
                                defaultTextBoxBorderColor = "";
                                for (var z=1; z <= iTotRadioGrp; z++)
                                {
                                    curChkObj = document.getElementById(curChkObjNameRoot + "_" + z + "-" + iTotRadioGrp);
                                    switch (curChkObj.value.toLowerCase())
                                    {
                                        case "other":
                                            depTextbox = curChkObjNameRoot.replace(/checkbox/gi, "checkbox-moreinfo");
                                            objDepTextbox = document.getElementById(depTextbox);
                                            if (objDepTextbox)
                                            {
                                                objDepTextbox.value = "";
                                                if (objDepTextbox.style.border)
                                                    defaultTextBoxBorderColor = objDepTextbox.style.border;
                                                else
                                                    defaultTextBoxBorderColor = "solid 1px #999999";
                                                    
                                                if (objDepTextbox.className)
                                                {
                                                    objDepTextbox.style.borderColor = "";
                                                    objDepTextbox.className = objDepTextbox.className;
                                                    if (objDepTextbox.className.search(/RO/gi)>=0) objDepTextbox.style.border = "1px solid #FFFFFF";
                                                }
                                                else
                                                    objDepTextbox.style.border = defaultTextBoxBorderColor;   
                                            }
                                            break;
                                        default:
                                            break;
                                    }
                                    curChkObj.checked = false;
                                }
                                if (objFirstField == "") objFirstField = objChild;
                                objLabel = document.getElementById(curChkObjNameRoot.replace(/fld/gi, "lbl"));
                                if (objLabel) 
                                {
                                    if (objLabel.style.color)
                                        defaultLblColor = objLabel.style.color;
                                    else
                                        defaultLblColor = "#000000";

                                    if (objLabel.className)
                                    {
                                        objLabel.style.color = "";
                                        objLabel.className = objLabel.className;
                                    }
                                    else
                                        objLabel.style.color = defaultLblColor;
                                }
                                break;
                            case "button":
                                break;
                            default:
                                break;
                        }
                        break;
                    case "textarea":
                        if (objFirstField == "") objFirstField = objChild;
                        objLabel = document.getElementById(objChild.id.replace(/fld/gi, "lbl"));
                        if (objLabel) 
                        {
                            if (objLabel.style.color)
                                defaultLblColor = objLabel.style.color;
                            else
                                defaultLblColor = "#000000";
                                
                            if (objLabel.className)
                            {
                                objLabel.style.color = "";
                                objLabel.className = objLabel.className;
                            }
                            else
                                objLabel.style.color = defaultLblColor;
                        }
                        
                        if (objChild)
                        {
                            if (objChild.style.border)
                                defaultTextBoxBorderColor = objChild.style.border;
                            else
                                defaultTextBoxBorderColor = "solid 1px #999999";
                                
                            if (objChild.className)
                            {
                                objChild.style.borderColor = "";
                                objChild.className = objChild.className;
                                if (objChild.className.search(/RO/gi)>=0) objChild.style.border = "1px solid #FFFFFF";
                            }
                            else
                                objChild.style.border = defaultTextBoxBorderColor;   
                            objChild.value = "";
                        }
                        break; 
                    case "select":
                        if (objFirstField == "") objFirstField = objChild;
                        objLabel = document.getElementById(objChild.id.replace(/fld/gi, "lbl"));
                        if (objLabel) 
                        {
                            if (objLabel.style.color)
                                defaultLblColor = objLabel.style.color;
                            else
                                defaultLblColor = "#000000";
                                
                            if (objLabel.className)
                            {
                                objLabel.style.color = "";
                                objLabel.className = objLabel.className;
                            }
                            else
                                objLabel.style.color = defaultLblColor;
                        }
                        
                        if (objChild)
                        {
                            if (objChild.style.border)
                                defaultTextBoxBorderColor = objChild.style.border;
                            else
                                defaultTextBoxBorderColor = "solid 1px #999999";
                                
                            if (objChild.className)
                            {
                                objChild.style.borderColor = "";
                                objChild.className = objChild.className;
                                if (objChild.className.search(/RO/gi)>=0)objChild.style.border = "1px solid #FFFFFF";
                            }
                            else
                                objChild.style.border = defaultTextBoxBorderColor;

                            if (objChild.id.toLowerCase().search(/country/gi) >= 0)
                                objChild.value = "United States";
                            else
                            {
                                if (objChild.id.toLowerCase().search(/state/gi) >= 0)
                                {
                                    if (objChild.parentNode)
                                    {
                                        //alert(objChild.parentNode.tagName);
                                        objStateContainer = objChild.parentNode;
                                        objStateContainer.style.display = "block";
                                    }
                                }
                                objChild.selectedIndex = 0;
                            }
                        }
                        break;
                    default:
                        break;
                }
            }
            if (objChild.childNodes.length > 0) clearAllFields(objChild, iCount+1);
        }
        
        if ((iCount == 0) && (objFirstField)) 
        {
            objErrMsg = document.getElementById("errArea");
            objErrMsg.innerHTML = "";
            objErrMsg.style.display = "none";
            objFirstField.focus();
            objFirstField = "";
        }
    }
    
	function validateEmail(valEmail)
	{
		var blnValid = true, curExtVal = "";
		if ((valEmail.search(/\@/gi)) && (valEmail.search(/ /gi)<0))
		{
			var arrEmail = valEmail.split("@");
			if (arrEmail.length == 2)
			{
				var leftPartEmail = arrEmail[0];
				if (leftPartEmail.search(/\./gi)>=0)
				{
					var arrLeftPartEmail = leftPartEmail.split(".");
					for (var i=0; i<=arrLeftPartEmail-1; i++)
					{
						if (trim(arrLeftPartEmail[i])=="") blnValid = false;
					}
				}
				
				var rightPartEmail = trim(arrEmail[1]);
				if (rightPartEmail.search(/\./gi)>=0)
				{
					var arrRightPartEmail = rightPartEmail.split(".");
					for (var i=0; i<=arrRightPartEmail.length-1; i++)
					{
						if (trim(arrRightPartEmail[i])=="") blnValid = false;
					}
					
					if (blnValid)
					{
						var maxArrayVal = arrRightPartEmail.length;
						var lastExt = trim(arrRightPartEmail[maxArrayVal-1]);
						if (maxArrayVal >=  2)
						{	
							for (x=1; x<=arrRightPartEmail.length-1; x++)
							{
								curExtVal = trim(arrRightPartEmail[x]);
								if ((curExtVal.length<2) || (curExtVal.length>3)) blnValid = false;
							}
						}
					}
				}
				else
					blnValid = false;
			}
			else
				blnValid = false;
		}
		else
			blnValid = false;
			
		return blnValid;
	}
	
	function hideState(nameCountryObj, stateObjContainerName)
	{
	    var objCountry = document.getElementById(nameCountryObj);
	    var objStateContainer = document.getElementById(stateObjContainerName);
	    
	    if (objCountry.options[objCountry.selectedIndex].value.toLowerCase() != "united states")
	        objStateContainer.style.display = "none";
	    else
	        objStateContainer.style.display = "block";
	}
	
    function chkProcess(curObj)
    {
        var curChkObj = "", curChkObjNameRoot = "", objChkAgainst = "";
        var arrTmp = curObj.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.value.toLowerCase() == "none") 
            {
                objChkAgainst = curChkObj;
                break;
            }
        }
        
        if ((objChkAgainst.checked) && (curObj != objChkAgainst))
            objChkAgainst.checked = false;
        else if ((objChkAgainst.checked) && (curObj == objChkAgainst))
        {
            for (var z=1; z <= iTotRadioGrp; z++)
            {
                curChkObj = document.getElementById(curChkObjNameRoot + "_" + z + "-" + iTotRadioGrp);
                if (curChkObj.value.toLowerCase() != "none") curChkObj.checked = false;
            } 
        }
            
    }