function send ()
{
	if (validate ()) document.forms[0].submit();
	
}

function validate()
{
	var required = new split(",",mandatoryFields);

	var theForm = document.forms[0];
	var empty = plural = error = "";

	
	for (var i = 0; i < theForm.elements.length; i++) {
		for (var j = 0; j < required.length; j++) {
			if (required[j] == theForm.elements[i].name && theForm.elements[i].value == "") {
				empty += " " + theForm.elements[i].name + ",";	// Add name of empty field to string
			}
		}
	}
	if (empty != "") {
		empty = empty.substring(0, empty.length - 1);	// Remove trailing comma
		if (empty.indexOf(",") != -1) {
			empty = empty.substring(0,empty.lastIndexOf(",", empty.length)) + " and" +
				empty.substring(empty.lastIndexOf(",") + 1, empty.length);
			plural = "s";
		}
		error  = "You have not supplied any information in the" + empty + " field" + plural;
		alert(error);
		return false;
	}
	else {
		var validateEmail = false;
		for (var i = 0; i < required.length; i++) {
			if (required[i].toLowerCase() == "email") validateEmail = true;
		}
		if (validateEmail) {
			var to = theForm.email.value;
			var invalid = "<:;&!\"£#$%^&()'[]{}~+=?/,`|\\>";	// invalid email address characters
			for (var i = 0; i < invalid.length; i++) {
				if (to.indexOf(invalid.substring(i,i+1)) >= 0) {
					error = (navigator.appName == "Netscape" && navigator.appVersion.substring(0,1) < "3") ? "" : "contains invalid characters";
				}
			}
			if (to.indexOf("@") == -1 || to.indexOf(".") == -1) error = "is not valid";
		}
		if (error != "") {
			error = "Your email address " + error;
			alert(error);
			return false;
		}
		else
		{
		 //theForm.submit();
		 return true;
		}
	}
}

function split(delim, expr)
{
        this.length = 0;
        if (expr.substring((expr.length - delim.length - 1), delim.length) != delim) expr += delim;

        for (var i = 0; i < expr.length; i++) {
                if (expr.substring(i, i + delim.length) == delim)
                        this[this.length] = "";
                else {
                this[this.length] = expr.substring(i, expr.indexOf(delim, i + delim.length));
                        i = expr.indexOf(delim, i + delim.length) + delim.length - 1;
                }
                this.length++;
        }
        return(this);
}

