function wstxSubmitForm(submitBtn)
{
	if (!submitBtn || !submitBtn.form)
		return;

	submitBtn.disabled = true;

	var msg = "Please enter a value for each of the following required fields:  \n";
	var captchaMsg = "Security code must be exactly 5 digits.";
	
	var captchaInputField = null;
	var firstMissingFld = null;	

	for (var i = 0; i < submitBtn.form.length; i++)
	{
		var elm = submitBtn.form.elements[i];
		
		var required = elm.getAttribute("required");
		if (!required || (required.toLowerCase() != "true"))
			continue;
		
		if(submitBtn.form.action.toLowerCase().indexOf("formmailer.aspx") != -1 && elm.id.toLowerCase().indexOf("_captchainput") != -1)
			continue;	

		if(elm.id.toLowerCase().indexOf("_captchainput") != -1)
			captchaInputField = elm;
		
		var hasValue = true;
		switch (elm.type.toLowerCase())
		{
			case "text":
			case "textarea":
				if (_trim(elm.value).length == 0)
					hasValue = false;
				break;
			case "select-one":
			case "select-multiple":
				if (elm.selectedIndex < 0)
					hasValue = false;
				break;
		}

		if (!hasValue)
		{
			if(elm.id.toLowerCase().indexOf("_captchainput") != -1)
				msg += ('\n    ' + 'Security code');
			else
				msg += ('\n    ' + elm.name);
				
			if (!firstMissingFld)
				firstMissingFld = elm;
		}
	}
	
	
	if (!firstMissingFld)
	{
	
		if(captchaInputField && (_trim(captchaInputField.value).length != 5 || !isNumeric(_trim(captchaInputField.value))))
		{
			alert(captchaMsg);
			firstMissingFld = captchaInputField;			
			_select(captchaInputField);
			submitBtn.disabled = false;	
		}
		else
			submitBtn.form.submit();
	}
	else
	{
		alert(msg);
		_select(firstMissingFld);
		submitBtn.disabled = false;
	}

	return !firstMissingFld;

	function _trim(str) { return str.replace(/^\s*|\s*$/g, ''); }

	function _select(elm)
	{
		elm.focus();
		if (elm.type=="text" || elm.type=="textarea")
			elm.select();
	}
	
	function isNumeric(input)
	{	
		var regexp = /^[0-9]+$/;
		if(regexp.test(input))
		{
			return true;
		}
	
		return false;
	}
}
