//*============================================================================*
//*  "CFN_Form.js"     Date Created: 23-Oct-2002     Date Updated: 12-Mar-2006
//*
//*  This "javascript" include file does the following:
//*  1)  Performs client-side processing of "CFN_Form.htm".
//*
//*  Changes:
//*  --------------------------------------------------------------------------
//*  12-Mar-2006.0  Changed.
//*  04-Nov-2002.0  Changed.
//*  28-Oct-2002.0  Changed.
//*  23-Oct-2002.0  Created.
//*
//*============================================================================*

function checkForm(form) {
    //*
    //* Check for unprintables; Remove leading and trailing spaces.
    //*
    for (var i=0; i<form.elements.length; i++) {
        if (form.elements[i].type == "text") {
            var beg = 0;
            var end = form.elements[i].value.length;
            var nam = form.elements[i].name;
            var txt = form.elements[i].value;
            var unp = false;
            if (end > 0) {
                for (var j=0; j<end; j++) {
                    var byt = txt.charAt(j);
                    if (byt < " " || byt > "~") unp = true;
                    if (byt != " ") break;
                    beg++;
                }
                if (unp) {
                    alert("Remove unprintable characters from '" + nam + "'!");
                    return false;
                }
                if (beg > 0) form.elements[i].value = txt.substring(beg,end);
            }
                beg = 0;
                end = form.elements[i].value.length;
            var len = end;
                nam = form.elements[i].name;
                txt = form.elements[i].value;
            if (end > 0) {
                for (var k=end-1; k>0; k--) {
                    var byt = txt.charAt(k);
                    if (byt != " ") break;
                    end--;
                }
                if (end < len) form.elements[i].value = txt.substring(beg,end);
            }
            var bad = '<>"^|';
            for (var j=0; j<bad.length; j++) {
                if (txt.indexOf(bad.charAt(j)) >= 0) {
                    alert("Remove '" + bad.charAt(j) + "' character from '" + nam + "'!");
                    return false;
                }
            }
            if (txt.indexOf("  ") > 0) {
                var tx2 = "";
                var spc = 0;
                for (var m=0; m<txt.length; m++) {
                    if (txt.charAt(m) != " ") {
                        spc = 0;
                    } else {
                        spc++;
                    }
                    if (spc < 2) tx2 += txt.charAt(m);
                }
                form.elements[i].value = tx2;
            }
        }
    }
    //*
    //* Validate form fields
    //*
    var er1 = "";
    if (form.Subject.value.length == 0)             er1 += "'Subject' missing.\n";
    if (form.Email.value.length == 0) {             er1 += "'E-mail Address' missing.\n";
    } else if (form.Email.value.length > 0) {
        var rex = /^[\w-\.]+@\w+\.\w+$/i;
        if (!rex.test(form.Email.value))            er1 += "'E-mail Address' invalid.\n";
    }
    if (form.Sender.value.length == 0)              er1 += "'Name' missing.\n";
    var val = form.Company.value;
    if (val.length > 0 && val.length < 3)           er1 += "'Company' too short.\n";
        val = form.Address1.value;
    if (val.length > 0 && val.length < 3)           er1 += "'Address1' too short.\n";
        val = form.Address2.value;
    if (val.length > 0 && val.length < 3)           er1 += "'Address2' too short.\n";
        val = form.City.value;
    if (val.length > 0 && val.length < 3)           er1 += "'City' too short.\n";
    if (val != "" && form.State.selectedIndex == 0) er1 += "'State' not selected.\n";
        val = form.Zip.value;
    if (val.length > 0 && val.length < 5)           er1 += "'Zip Code' too short.\n";
        val = form.Phone.value;
    if (val.length > 0 && val.length < 10)          er1 += "'Phone' too short.\n";
        val = form.Fax.value;
    if (val.length >0 && val.length < 10)           er1 += "'Fax' too short.\n";
        val = form.Comment.value;
    if (form.Comment.value.length == 0) {           er1 += "'Comment' missing.\n";
    } else if (form.Comment.value.length < 3) {     er1 += "'Comment' too short.\n";
    } else if (form.Comment.value.length > 255)     er1 += "'Comment' too long;\n(max=255<" + form.Comment.value.length + ").\n";
    if (er1 != "") {
        er1 = "'Comment Form' errors:\n\n" + er1;
        alert(er1);
        return false;
    }
    return true;
}

//******************************************************************************
//*       This is the intellectual property of McKirahan Web Productions       *
//*       All rights reserved -- 2002.  Contact: webmaster@McKirahan.com       *
//******************************************************************************
