function submitForm() {

    // Create new XMLHttpRequest
    bHttp = getXMLHttp();
    if (bHttp == null) {
        // Submit form for normal processing
        getElement("contactForm").submit();
        return;
    }

    // Setup url to be called
    var url="/pages/ajax_actions/contact_us_processing.php";
    var params = "ajax=true";

    params += "&name=" + getElement("name").value;
    params += "&email=" + getElement("email").value;
    params += "&selectCategory=" + getElement("selectCategory").value;
    params += "&message=" + escape(getEditorValue("message"));

    // Define state change handler
    bHttp.onreadystatechange = function() {

            var response,status,errCode;

            if (bHttp.readyState==4 || bHttp.readyState=="complete") { // xmlHTTP request has returned

                if (bHttp.status == 200) {

                    //alert(bHttp.responseText);
                    response = bHttp.responseXML.documentElement;
                    status   = getXMLData(response,'status');
                    getElement("send_message").disabled = false;

                    if (status == "passed") {

                        // Clear out form
                        getElement("name").value            = "";
                        getElement("email").value           = "";
                        getElement("selectCategory").value  = "0";
                        setEditorValue("message","");

                        // Show message
                        getElement("formProcessing").innerHTML = "Message Sent";

                    }//end good brand
                    else {

                        errCode = getXMLData(response,"errCode");

                        switch(errCode) {

                            case "-1":
                                getElement("formProcessing").innerHTML = "Processing Failed";
                                alert("There was an error processing your request. Please try again later.");
                            break;

                            case "1":

                                getElement("formProcessing").innerHTML = "Invalid Name";

                            break;

                            case "2":

                                getElement("formProcessing").innerHTML = "Invalid Email Address";

                            break;


                        }//end switch

                    }//end checking error state

                }// async request has returned completed
            }
    }//end state change handler

    // Set message
    getElement("send_message").disabled           = true;
    getElement("formProcessing").innerHTML        = "Processing...";
    getElement("formProcessing").style.visibility = "visible";

    bHttp.open("POST",url,true);
    bHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
    bHttp.send(params);

    return false;

}


