

    var checkObjects = new Array();



    var errors = "";

    var RequiredMsg = "";

    var returnVal = false;

    var ZipcodeMsg = "";

    var EmailMsg = "";

    var NumMsg = "";

    var MoneyMsg = "";

    var PhnMsg = "";

    var ShipRateMsg = "";

    var PwdMsg = "";

    var StateMsg = "";

    var SSNMsg = "";

    var DateMsg = "";

    var CCMsg = "";



    var arrStates = new Array('AL', 'AK', 'AS', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FM', 'FL', 'GA', 'GU', 'HI',

                              'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MH', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO',

                              'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'MP', 'OH', 'OK', 'OR', 'PW', 'PA',

                              'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VI', 'VA', 'WA', 'WV', 'WI', 'WY');



    function define(n, type, HTMLname)

        {

        if (document.editform != null)

            {

            eval("V_" + n + " = new formResult(document.editform[n], type, HTMLname);");



            checkObjects[eval(checkObjects.length)] = eval("V_" + n);

            }

        }



    function formResult(form, type, HTMLname)

        {

        this.form = form;

        this.type = type;

        this.HTMLname = HTMLname;

        }



    function validate()

        {

        if (checkObjects.length > 0)

            {

            errorObject = "";



            for (i = 0; i < checkObjects.length; i++)

                {

                validateObject = new Object();



                validateObject.form = checkObjects[i].form;

                validateObject.HTMLname = checkObjects[i].HTMLname;



				if (checkObjects[i].form.name.substring(0, 3) == "cbo")

					{

					validateObject.val = checkObjects[i].form[checkObjects[i].form.selectedIndex].value;



					validateObject.len = checkObjects[i].form[checkObjects[i].form.selectedIndex].length;

					}



				else

					{

					validateObject.val = checkObjects[i].form.value;



					validateObject.len = checkObjects[i].form.value.length;

					}



                validateObject.type = checkObjects[i].type;



                if (validateObject.type.indexOf("IsRequired") >= 0)

                    {

                    if (isWhitespace(validateObject.val))

                        {

                        errors += validateObject.HTMLname + "\n";



                        RequiredMsg += validateObject.HTMLname + "\n";

                        }



                    validateObject.type = validateObject.type.substring(0, validateObject.type.indexOf("IsRequired"));

                    }



                if (validateObject.type == "IsNumeric")

                    {

                    if (validateObject.len <= 0 || isNaN(validateObject.val))

                        {

                        errors += validateObject.HTMLname + "\n";



                        NumMsg += validateObject.HTMLname + "\n";

                        }

                    }



                if (validateObject.type == "IsDate")

                    {

						var dt = validateObject.val;

						dt = new Date(dt);



						if (isNaN(dt))

						{

							errors += validateObject.HTMLname + "\n";



							DateMsg += validateObject.HTMLname + "\n";

						}

                    }

                    

                if (validateObject.type == "IsSSN")

                    {

                    var bGood = true;



                    if (validateObject.len != 11)

                        bGood = false;



                    else

                        {

                        if (validateObject.val.charAt(3) != " " && validateObject.val.charAt(3) != "-")

                            bGood = false;



                        if (validateObject.val.charAt(6) != " " && validateObject.val.charAt(6) != "-")

                            bGood = false;



                        if (bGood)

                            {

                            var s = "";



                            for (var j = 0; j < validateObject.val.len; ++j)

                                if (!isNan(validateObject.val.charAt(j)))

                                    s += validateObject.val.charAt(j);



                            if (isNaN(s))

                                bGood = false;

                            }

                        }



                    if (bGood == false)

                        {

                        errors += validateObject.HTMLname + "\n";



                        SSNMsg += validateObject.HTMLname + "\n";

                        }

                    }



                else if (validateObject.type == "IsEmail")

                    {

                    if (isWhitespace(validateObject.val) != true)

                        {

                        if ((validateObject.val.indexOf(

                                 "@") == -1) || (validateObject.val.charAt(

                                                     0) == ".") || (validateObject.val.charAt(

                                                                        0) == "@") || (validateObject.len < 6)

                            || (validateObject.val.indexOf(

                                    ".") == -1) || (validateObject.val.charAt(

                                                        validateObject.val.indexOf(

                                                            "@") + 1) == ".") || (validateObject.val.charAt(

                                                                                      validateObject.val.indexOf("@") - 1)

                                                                                     == "."))

                            {

                            errors += validateObject.HTMLname + "\n";



                            EmailMsg += validateObject.HTMLname + "\n";

                            }

                        }

                    }



                else if (validateObject.type == "IsState")

                    {

                    if (isWhitespace(validateObject.val) != true)

                        {

                        var bFound = false;



                        for (ind = 0; ind < arrStates.length; ind++)

                            if (validateObject.val == arrStates[ind])

                                {

                                bFound = true;



                                break;

                                }



                        if (bFound == false)

                            {

                            errors += validateObject.HTMLname + "\n";



                            StateMsg += validateObject.HTMLname + "\n";

                            }

                        }

                    }



                else if (validateObject.type == "IsZipCode")

                    {

                    if (validateObject.len < 4 || validateObject.len > 10)

                        {

                        errors += validateObject.HTMLname + "\n";



                        ZipcodeMsg += validateObject.HTMLname + "\n";

                        }



                    if (ZipcodeMsg == "")

                        {

                        for (var j = 0; j < validateObject.len; j++)

                            {

                            if ((validateObject.val.charAt(

                                     j) < '0' || validateObject.val.charAt(j) > '9') && validateObject.val.charAt(

                                                                                            j) != '-')

                                {

                                errors += validateObject.HTMLname + "\n";



                                ZipcodeMsg += validateObject.HTMLname + "\n";

                                j = validateObject.len;

                                }

                            }

                        }

                    }



                else if (validateObject.type == "IsPhoneNumber")

                    {

                    var strField = new String(validateObject.val);



                    var numPass = true;

                    var k = 0;



                    for (k = 0; k < strField.length; k++)

                        {

                        if ((strField.charAt(

                                 k) < '0' || strField.charAt(

                                                 k) > '9') && (strField.charAt(

                                                                   k) != '-') && (strField.charAt(

                                                                                      k) != '(' && (strField.charAt(

                                                                                                        k) != ')'

                                                                                                       && (strField.charAt(

                                                                                                               k)

                                                                                                              != ' '))))

                            {

                            errors += validateObject.HTMLname + "\n";



                            PhnMsg += validateObject.HTMLname + "\n";

                            k = strField.length;

                            }

                        }

                    }



                else if (validateObject.type == "IsCreditCard")

                    {

                    var white_space = " -";



                    var strCC = "";

                    var check_char;



                    if (validateObject.val.length == 0)

                        return true;



                    for (var i = 0; i < validateObject.val.length; i++)

                        {

                        check_char = white_space.indexOf(validateObject.val.charAt(i))



                        if (check_char < 0)

                            strCC += validateObject.val.substring(i, (i + 1));

                        }



                    if (strCC.length == 0 || isNaN(strCC))

                        {

                        errors += validateObject.HTMLname + "\n";



                        CCMsg += validateObject.HTMLname + "\n";

                        }



                    else

                        {

                        var doubledigit = strCC.length % 2 == 1 ? false : true;



                        var checkdigit = 0;

                        var tempdigit;



                        for (var i = 0; i < strCC.length; i++)

                            {

                            tempdigit = eval(strCC.charAt(i))



                            if (doubledigit)

                                {

                                tempdigit *= 2;



                                checkdigit += (tempdigit % 10);



                                if ((tempdigit / 10) >= 1.0)

                                    {

                                    checkdigit++;

                                    }



                                doubledigit = false;

                                }



                            else

                                {

                                checkdigit += tempdigit;



                                doubledigit = true;

                                }

                            }



                        if ((checkdigit % 10) != 0)

                            {

                            errors += validateObject.HTMLname + "\n";



                            CCMsg += validateObject.HTMLname + "\n";

                            }

                        }

                    }



                else if (validateObject.type == "IsCurrency")

                    {

                    var moneyPass = true;



                    var dotFound = false;

                    var dotFoundAt = -1;

                    var strField = new String(validateObject.val);



                    var k = 0;



                    for (k = 0; k < strField.length; k++)

                        {

                        var x = strField.charAt(k);



                        if (x == ".")

                            {

                            dotFound = true;



                            if (dotFoundAt < 0)

                                {

                                dotFoundAt = k;

                                }

                            }



                        if (((x < '0') || (x > '9')) && (x != '.'))

                            {

                            errors += validateObject.HTMLname + "\n";



                            MoneyMsg += validateObject.HTMLname + "\n";

                            k = strField.length;

                            }



                        if ((x == '.') && (dotFoundAt != k))

                            {

                            errors += validateObject.HTMLname + "\n";



                            MoneyMsg += validateObject.HTMLname + "\n";

                            k = strField.length;

                            }

                        }

                    }



                else if (validateObject.type == "IsPassword")

                    {

                    var strField = new String(validateObject.val);



                    var pwdPass = true;



                    if (isWhitespace(strField))

                        {

                        errors += validateObject.HTMLname + "\n";



                        PwdMsg += validateObject.HTMLname + "\n";

                        }



                    else if (strField.length < 4)

                        {

                        errors += validateObject.HTMLname + "\n";



                        PwdMsg += validateObject.HTMLname + "\n";

                        }

                    }

                }



            if (errors)

                {

                var errMsg = "";



                if (RequiredMsg != "")

                    errMsg = errMsg + "The Following fields are Required: \r\n\r\n" + RequiredMsg + "\r\n\r\n";



                if (ZipcodeMsg != "")

                    errMsg = errMsg + "The Following fields must be valid Zipcodes: \r\n\r\n" + ZipcodeMsg + "\r\n\r\n";



                if (EmailMsg != "")

                    errMsg = errMsg + "The Following fields must be valid Emails: \r\n\r\n" + EmailMsg + "\r\n\r\n";



                if (NumMsg != "")

                    errMsg = errMsg + "The Following fields must be Numbers: \r\n\r\n" + NumMsg + "\r\n\r\n";



                if (MoneyMsg != "")

                    errMsg = errMsg + "The Following fields must be currency: \r\n\r\n" + MoneyMsg + "\r\n\r\n";



                if (PhnMsg != "")

                    errMsg = errMsg + "The Following fields must be Phone Numbers : \r\n\r\n" + PhnMsg + "\r\n\r\n";



                if (PwdMsg != "")

                    errMsg = errMsg

                                 + "The Following fields must be valid Passwords \r\n should be at least 4 characters long\r\n Cannot be 'password': \r\n\r\n" + PwdMsg

                                 + "\r\n\r\n";



                if (StateMsg != "")

                    errMsg = errMsg + "The Following fields must be State Names : \r\n\r\n" + StateMsg + "\r\n\r\n";



                if (SSNMsg != "")

                    errMsg = errMsg + "The Following fields must be Social Security Numbers : \r\n\r\n" + SSNMsg

                                 + "\r\n\r\n";



                if (DateMsg != "")

                    errMsg = errMsg + "The Following fields must be valid dates : \r\n\r\n" + DateMsg + "\r\n\r\n";



                if (CCMsg != "")

                    errMsg = errMsg + "The Following fields must be valid Credit Card Numbers : \r\n\r\n" + CCMsg

                                 + "\r\n\r\n";



                alert(errMsg);

                errors = "";

                RequiredMsg = "";

                ZipcodeMsg = "";

                EmailMsg = "";

                NumMsg = "";

                MoneyMsg = "";

                PhnMsg = "";

                PwdMsg = "";

                StateMsg = "";

                SSNMsg = "";

                DateMsg = "";

                CCMsg = "";

                errMsg = "";

                returnVal = false;

                }



            else

                returnVal = true;



            return returnVal;

            }

        }



    var whitespace = " \t\n\r";



    function isEmpty(s)

        {

        return ((s == null) || (s.length == 0))

        }



    function isWhitespace(s)

        {

        var i;



        if (isEmpty(s))

            return true;



        for (i = 0; i < s.length; i++)

            {

            var c = s.charAt(i);



            if (whitespace.indexOf(c) == -1)

                return false;

            }



        return true;

        }



    function ForceEntry(objField, FieldName)

        {

        var strField = new String(objField.value);



        if (isWhitespace(strField))

            {

            alert("Please enter information for " + FieldName + ".");



            objField.focus();

            return false;

            }



        return true;

        }


