// JavaScript for newuser.htm

// $Header$

function checkuserid() {
	var userid = unescape(querySt("userid"));
	if (isEmailAddress(userid)) {
		document.getElementById("EmailField").value = userid;
	} 
}

var registerisvalid = false;

function checkregister() {
    if (!validate(document.getElementById("EmailField"))) {
        document.getElementById("EmailField").focus();
        document.getElementById("EmailField").style.borderColor="#f00";
        document.getElementById("PasswordField").style.borderColor="#666666";
        document.getElementById("PasswordField1").style.borderColor="#666666";

    } else if (document.getElementById("PasswordField").value == "") {
        alert("Please enter a password.");
        document.getElementById("PasswordField").focus();
        document.getElementById("EmailField").style.borderColor="#666666";
        document.getElementById("PasswordField").style.borderColor="#f00";
        document.getElementById("PasswordField1").style.borderColor="#666666";

    } else if (document.getElementById("PasswordField1").value == "") {
        alert("Please confirm the password.");
        document.getElementById("PasswordField1").focus();
        document.getElementById("EmailField").style.borderColor="#666666";
        document.getElementById("PasswordField").style.borderColor="#666666";
        document.getElementById("PasswordField1").style.borderColor="#f00";

    } else if (document.getElementById("PasswordField1").value != 
               document.getElementById("PasswordField").value) {
        alert("The two passwords are not the same.");
        document.getElementById("PasswordField").value = "";
        document.getElementById("PasswordField1").value = "";
        document.getElementById("PasswordField").focus();
        document.getElementById("EmailField").style.borderColor="#666666";
        document.getElementById("PasswordField").style.borderColor="#f00";
        document.getElementById("PasswordField1").style.borderColor="#f00";

    } else if (checkvalidregister()) {
        return true;
    } else {
        document.getElementById("EmailField").focus();
    }
    return false;
}

// invoked by register;
// loads XML document
function checkvalidregister() {
    try {
        registerisvalid = false;
        doregister();
        registerisvalid;
    } catch(e) {
        var msg = (typeof e == "string") ? e: ((e.message) ? e.message: "Unknown Error");
        alert("Unable to contact server:\n" + msg);
    }
    return (false);
}

// do check register AJAX

function doregister() {
	revealAction("action2");
	
    // create XML document with default header and root node
    initRequest();

    // create a deskid node if needed and set content
    if (havedeskid) {
        newRequestValueNode(RequestRoot, "deskid", deskid);
    }

    // create a request node
    r_node = newRequestNode(RequestRoot, "request")

    // create a function node and set content
    newRequestValueNode(r_node, "function", "register");

    // create a email node and set content
    newRequestValueNode(r_node, "email", document.getElementById("EmailField").value);

    // create a password node and set content
    newRequestValueNode(r_node, "password", document.getElementById("PasswordField").value);

    // create a from node and set content
    newRequestValueNode(r_node, "from", registerfrom);

    // create a subject node and set content
    newRequestValueNode(r_node, "subject", registersubject);

    // create a message node and set content
    newRequestValueNode(r_node, "message", registerbody);

    // create a location node
    newRequestValueNode(r_node, "location", document.location);

    // do all the data fields
    makeColumnField("=First Name", "FirstNameField");
    makeColumnField("=Last Name", "LastNameField");
    makeColumnField("=MI", "MIField");
    makeColumnField("=Title", "TitleField");
    makeColumnField("=Company", "CompanyField");
    makeColumnField("=Job Title", "JobTitleField");
    makeColumnField("=Business Phone", "BusinessPhoneField");
    makeColumnField("=Home Phone", "HomePhoneField");
    makeColumnField("=Mobile", "MobileField");
    makeColumnField("=Pager", "PagerField");
    makeColumnField("=Fax", "FaxField");
    makeColumnField("=Other Phone", "OtherPhoneField");
    makeColumnField("=Office", "OfficeField");
    makeColumnField("=Street1", "Street1Field");
    makeColumnField("=Street2", "Street2Field");
    makeColumnField("=City", "CityField");
    makeColumnField("=State Prov", "StateProvField");
    makeColumnField("=Postal Code", "PostalCodeField");
    makeColumnField("=Country", "CountryField");

    // submit
    submitRequest(checkdone, doactionHide);
    return false;
}

function doactionHide(errormessage) {
    hideAction("action2");
}

function checkdone() {
	hideAction("action2");
	
    var reqtxt;
    try {
        reqtxt = req.responseText;
    } catch(e) {
        reqtxt = "This browser does not return the XML as a string.  Check the trace.file.";
    }
    var results = req.responseXML.getElementsByTagName("response");
    if (results.length == 1) {
        if (getElementTextNS("", "valid", results[0], 0).sameText("true")) {
            registerisvalid = true;
            alert("A confirmation email will be sent to " + 
                document.getElementById("EmailField").value + ".");
            document.getElementById("loginform").submit();
            return false;
        } else if (getElementTextNS("", "valid", results[0], 0).sameText("moderated")) {
            registerisvalid = true;
            alert("Thank you.  Your registration will be reviewed.");
            document.getElementById("loginform").submit();
            return false;
        } else {
            alert("Registration Error:\n" + getElementTextNS("", "message", results[0], 0));
        }
    } else {
        if (results.length == 1) {
            handleError(results[0]);
        } else {
            alert("Unable to get response from server\n\nServer returned:\n" + reqtxt);
        }
    }
    registerisvalid = false;
    return false;
}

// End JavaScript for newuser.htm
