
function userSubmits(){

	// clean up any previous messages
	document.getElementById("warning_text_required").style.color = "black";
	document.getElementById("warning_text_email").style.visibility = "hidden";
	document.getElementById("success_message").style.display = "none";
	document.getElementById("failure_message").style.display = "none";

	// validate
	var validateSuccessful = validate();

	// if valid, submit to server as an AJAX POST
	if (validateSuccessful){
		var request = createRequest();
		var url = '/MicrositeContactUs.bsci';
		var params = '';
		params = params + 'toEmail=' + encodeURIComponent(document.getElementById('toEmail').value);
		params = params + '&subject=' + encodeURIComponent(document.getElementById('subject').value);
		params = params + '&firstname=' + encodeURIComponent(document.getElementById('firstname').value);
		params = params + '&lastname=' + encodeURIComponent(document.getElementById('lastname').value);
		params = params + '&email=' + encodeURIComponent(document.getElementById('email').value);
		params = params + '&hospital=' + encodeURIComponent(document.getElementById('hospital').value);
		params = params + '&accountnumber=' + encodeURIComponent(document.getElementById('accountnumber').value);
		params = params + '&phone=' + encodeURIComponent(document.getElementById('phone').value);
		params = params + '&fax=' + encodeURIComponent(document.getElementById('fax').value);
		params = params + '&street=' + encodeURIComponent(document.getElementById('street').value);
		params = params + '&state=' + encodeURIComponent(document.getElementById('state').value);
		params = params + '&postalcode=' + encodeURIComponent(document.getElementById('postalcode').value);
		params = params + '&country=' + encodeURIComponent(document.getElementById('country').value);
		params = params + '&question=' + encodeURIComponent(document.getElementById('question').value);
		params = params + '&countryName=' + encodeURIComponent(document.getElementById('countryName').value);
		params = params + '&langId=' + encodeURIComponent(document.getElementById('langId').value);
		params = params + '&url=' + location.pathname;
		request.open("POST", url, true);
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", params.length);
		request.setRequestHeader("Connection", "close");
		request.onreadystatechange = function(){processServerResponse(request);};
		request.send(params);
	} 
}

function clearForm(){

	document.getElementById("warning_text_required").style.color = "black";
	document.getElementById("warning_text_email").style.visibility = "hidden";
	document.getElementById("success_message").style.display = "none";
	document.getElementById("failure_message").style.display = "none";
	
	// get each input element and set it back to ''
	
	document.getElementById("firstname").value = "";
	document.getElementById("lastname").value = "";
	document.getElementById("email").value = "";
	document.getElementById("hospital").value = "";
	document.getElementById("accountnumber").value = "";
	document.getElementById("phone").value = "";
	document.getElementById("fax").value = "";
	document.getElementById("street").value = "";
	document.getElementById("state").value = "";
	document.getElementById("postalcode").value = "";
	document.getElementById("country").value = "";
	document.getElementById("question").value = "";
}

function validate(){
	var formIsValid = true;
	var invalid_msg = document.getElementById("issues_message").innerHTML + "\n";   //CHANGED
        var isRequiredText = document.getElementById("required_field").innerHTML;   //CHANGED
	if (document.getElementById("question").value == null || document.getElementById("question").value == ''){
		formIsValid = false;
		invalid_msg = invalid_msg + document.getElementById("inf_question").innerHTML + " " + isRequiredText + "\n";
	}
	if (document.getElementById("firstname").value == null || document.getElementById("firstname").value == ''){
		formIsValid = false;
		invalid_msg = invalid_msg + document.getElementById("inf_firstname").innerHTML + " " + isRequiredText + "\n";
	}
	if (document.getElementById("lastname").value == null || document.getElementById("lastname").value == ''){
		formIsValid = false;
		invalid_msg = invalid_msg + document.getElementById("inf_lastname").innerHTML + " " + isRequiredText + "\n";
	}
	if (document.getElementById("email").value == null || document.getElementById("email").value == ''){
		formIsValid = false;
		invalid_msg = invalid_msg + document.getElementById("inf_email").innerHTML + " " + isRequiredText + "\n";

	} else {
		if (document.getElementById("email").value.match("@") == null){
			formIsValid = false;
			invalid_msg = invalid_msg + document.getElementById("warning_text_email").innerHTML + " " + isRequiredText + "\n";
		}
	}
	if (formIsValid){
		// submit to server as a post
		// set up processServerResposne as the callback
		return true;
	} else {
		alert(invalid_msg);
		return false;
	}
}

function processServerResponse(request){
	// if server response is success, display a success message
	// if server response is failure or anything else, display a failure message
	if (request.readyState == 4){
		if (request.status == 200){
			document.getElementById("warning_text_required").style.color = "black";
			document.getElementById("warning_text_email").style.visibility = "hidden";

			if (request.responseText == 'success'){
				alert(document.getElementById("success_message").innerHTML);
				clearForm();
			} else {
				alert(document.getElementById("failure_message").innerHTML);
			}
		} else {
			document.getElementById("failure_message").style.display = "block";
		}
	}
}

// Standard AJAX create request function
function createRequest(){
	var ajaxRequest; 
	try {
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		try {
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e)	{
			try {
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e)	{
				alert("Your browser does not support Ajax.  Please update your browser");
			}
		}
	}
	return ajaxRequest;
}

