<!--
// Function to validate form data before processing
function validateForm()
{
    var msg = "";
    var error = false;

    var req_fields = new String("<name><company><address1><city><state><zip><phone><email>");
    var missing_fields = new Array()

    var sform = document.forms[0];

    for (var i = 0; i < sform.elements.length; i++)
    {
        var field_name = new String(sform.elements[i].name);
	if (field_name == "name")
	{
	    if (!checkStringLength(sform.elements[i].value, 2, 100))
	        missing_fields.push("Name");
	}
	else if (field_name == "company")
	{
	    if (!checkStringLength(sform.elements[i].value, 2, 100))
	        missing_fields.push("Company");
	}
	else if (field_name == "address1")
	{
	    if (!checkStringLength(sform.elements[i].value, 5, 50))
	        missing_fields.push("Address");
	}
	else if (field_name == "city")
	{
	    if (!checkStringLength(sform.elements[i].value, 2, 50))
	        missing_fields.push("City");
	}
	else if (field_name == "state")
	{
	    if (!checkState(sform.elements[i].value))
	        missing_fields.push("State");
	}
	else if (field_name == "zip")
	{
	    if (!checkZip(sform.elements[i].value))
	        missing_fields.push("Zip");
	}
	else if (field_name == "phone")
	{
	    if (!checkPhone(sform.elements[i].value))
	        missing_fields.push("Phone");
	}
	else if (field_name == "email")
	{
	    if (!checkEmail(sform.elements[i].value))
	        missing_fields.push("Email");
	}

    }

    if (missing_fields.length > 0)
    {
        var msg = "The ";
	for (var x = 0; x < missing_fields.length; x++)
	{
	    if (x > 0 && x < (missing_fields.length - 1))
	        msg += ", ";
	    else if (x > 0 && missing_fields.length == 2)
	        msg += " and ";
	    else if (x > 0 && x == missing_fields.length - 1)
	        msg += ", and ";
	    msg += missing_fields[x];
	}
	if (missing_fields.length > 1)
	{
	    msg += " fields are required.\n";
   	    msg += "Please enter valid information into each.";
	}
	else
	{
	    msg += " field is required.\n";
	    msg += "Please enter valid information.";
	}

        window.alert(msg);
    }
    else
        sform.submit()
    
}

function checkStringLength(str, minLen, maxLen)
{
    if (str != null)
    {
        var temp = new String(str);
	if (temp.length >= minLen && temp.length <= maxLen)
	    return true;
	else
	    return false;
    }
    else
        return false;	    
}
function checkState(str)
{
    var valid = false;
    if (str != null)
    {
        var state = new String(str).toUpperCase();

	var valid_states = new Array("AA","AE","AP","AL","AK","AR","AS","AZ","CA","CO","CT","DC","DE","FL","FM","GA","GU","HI","IA","ID","IL","IN",
                                     "KS","KY","LA","MA","MD","ME","MH","MI","MN","MO","MP","MS","MT","NC","ND","NE","NH","NJ","NM","NV",
				     "NY","OH","OK","OR","PA","PR","PW","RI","SC","SD","TN","TX","UT","VA","VI","VT","WA","WV","WY");
        for (var i = 0; i < valid_states.length; i++)
	{
	    if (state == valid_states[i])
	    {
	        valid = true;
		break;
	    }
        }
    }

    return valid;
}
function checkZip(str)
{
   var valid = false;
    if (str != null)
    {
        var zip = new String(str);
	zip = stripFormat(zip);
	if (!isNaN(zip) &&
	    (checkStringLength(zip, 5, 5) ||
	    checkStringLength(zip, 9, 9)))
	{
	    valid = true;
	}
    }

    return valid;
}
function checkPhone(str)
{
    var valid = false;
    if (str != null)
    {
        var phone = stripFormat(str);
	if (!isNaN(phone) && checkStringLength(phone, 7, 30))
	{
	    valid = true;
	}
    }
    return valid;
}
function checkEmail(str)
{
  var valid = true;
  if (str != null)
  {
    var valid_domain_characters = new String("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-.abcdefghijklmnopqrstuvwxyz");
    var valid_domain_suffixes = new Array(".net",".int",".org",".com",".edu",".gov",".mil",
                                                   ".arpa",".nato",".web",".rec",".nom",".firm",".info",".shop",".arts",
                                                   ".ad",".ae",".af",".ag",".ai",".al",".am",".an",".ao",".aq",".ar",".as",".at",".au",".aw",".az",
                                                   ".ba",".bb",".bd",".be",".bf",".bg",".bh",".bi",".bj",".bm",".bn",".bo",".br",".bs",".bt",".bv",
                                                   ".bw",".by",".bz",
                                                   ".ca",".cc",".cd",".cf",".cg",".ch",".ci",".ck",".cl",".cm",".cn",".co",".cr",".cs",".cu",".cv",
                                                   ".cx",".cy",".cz",
                                                   ".de",".dj",".dk",".dm",".do",".dz",
                                                   ".ec",".ee",".eg",".eh",".er",".es",".et",
                                                   ".fi",".fj",".fk",".fm",".fo",".fr",".fx",
                                                   ".ga",".gb",".gd",".ge",".gf",".gh",".gi",".gl",".gm",".gn",".gp",".gq",".gr",".gs",".gt",".gu",
                                                   ".gw",".gy",
                                                   ".hk",".hm",".hn",".hr",".ht",".hu",
                                                   ".id",".ie",".il",".in",".io",".iq",".ir",".is",".it",
                                                   ".jm",".jo",".jp",
                                                   ".ke",".kg",".kh",".ki",".km",".kn",".kp",".kr",".kw",".ky",".kz",
                                                   ".la",".lb",".lc",".li",".lk",".lr",".ls",".lt",".lu",".lv",".ly",
                                                   ".ma",".mc",".md",".mg",".mh",".mk",".ml",".mm",".mn",".mo",".mp",".mq",".mr",".ms",".mt",".mu",
                                                   ".mv",".mw",".mx",".my",".mz",
                                                   ".na",".nc",".ne",".nf",".ng",".ni",".nl",".no",".np",".nr",".nt",".nu",".nz",
                                                   ".om",
                                                   ".pa",".pe",".pf",".pg",".ph",".pk",".pl",".pm",".pn",".pr",".pt",".pw",".py",
                                                   ".qa",
                                                   ".re",".ro",".ru",".rw",
                                                   ".sa",".sb",".sc",".sd",".se",".sg",".sh",".si",".sj",".sk",".sl",".sm",".sn",".so",".sr",".st",
                                                   ".su",".sv",".sy",".sz",
                                                   ".tc",".td",".tf",".tg",".th",".tj",".tk",".tm",".tn",".to",".tp",".tr",".tt",".tv",".tw",".tz",
                                                   ".ua",".ug",".uk",".um",".us",".uy",".uz",
                                                   ".va",".vc",".ve",".vg",".vi",".vn",".vu",
                                                   ".wf",".ws",
                                                   ".ye",".yt",".yu",
                                                   ".za",".zm",".zr",".zw");
    var email = new String(str);

    if (email.indexOf(" ") != -1) valid = false;

    var at_index = (email.indexOf("@") + email.lastIndexOf("@"))/2;
    var name = email.substring(0, at_index);
    var domain = email.substring(at_index + 1, email.lastIndexOf("."));
    var suffix = email.substring(email.lastIndexOf("."));
    var valid_domain = false;

    if (at_index < 1 || name.length < 1) valid = false;
    if (domain.length < 2) valid = false;
    for (var i = 0; i < domain.length; i++)
    {
        if (valid_domain_characters.indexOf(domain.charAt(i)) == -1)
            valid = false;
    }

    for (var d = 0; d < valid_domain_suffixes.length; d++)
    {
        if (suffix == valid_domain_suffixes[d])
            valid_domain = true;
    }

    if (!valid_domain) valid = false; 
  }

  return valid;
}
function stripFormat(str)
{
    var result = "";
    var format_chars = new Array("-","(",")",".","","[","]","{","}","e","x","t","E","X","T"," ");
    if (str != null)
    {
        var temp = new String(str);
        for (var i = 0; i < temp.length; i++)
        {
	    var append = true;
	    for (var c = 0; c < format_chars.length; c++)
	    {
	        if (temp.charAt(i) == format_chars[c])
		{
		    append = false;
		    break;
		}
	    }

	    if (append)
	        result += temp.charAt(i);
        }
    }

    return result;
}

// -->
