function submitForm(frm){
// requires jquery 

	var myForm = $("#" + frm);
	var frmParams = myForm.serialize();
	
	$('#workinprogress').show();
	$('#btnSubmit').hide();
	$('#processmsg').html(" submitting form...");
	
	$.ajax({
		type: "POST",
		url: "include/email.relay.asp", 
		dataType: "xml",
		data: frmParams,
		success: function(xml){
		
			var errCode = $("errorcode", xml).text();
			var errMsg = $("errormsg", xml).text();
			
			if(errCode == 0){
				$('#responsemsg').html(" Thank you for submitting this form. Your details have been received and are being processed.");
				//$('#responsemsg').append(' [' + errCode + ' ' +  errMsg + ']');
				$('#hideText').fadeOut("slow");

			}else{
				$('#responsemsg').html(" We have been unable to process your details at this time. Please try again later.");
				$('#responsemsg').append(' [' + errCode + ' ' +  errMsg + ']');
				
			}
			
			$('#workinprogress').hide();
			$('#btnSubmit').show();
			//myForm[0].reset();

		}
	});

}


var W3CDOM = (document.getElementsByTagName && document.createElement);
// Requires jquery.js
function validate(frm, fields)
{
	var DoValidate = true
	if (DoValidate){
		validForm = true;
		firstError = null;
		errorstring = '';
		var x = $(":input", "#"+frm);
		var m = '';
		
		// loop through everything and check it
		for (var i=0;i<x.length;i++)
		{
			m += x[i].name  + '\n' ;
			// Test the pipe separated list of fields submitted..
			var reg = new RegExp(fields, 'i' );
			if (reg.test(x[i].name)){
				var ereg = /email/ig;
				if (ereg.test(x[i].name)){
					var vreg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
					if (vreg.test(x[i].value) == false){
						writeError(x[i],'Invalid email address. ');
					}
				}else{
					if (!x[i].value){
						writeError(x[i],'You need to enter something in this field. ');
					}
				}	
			}	
		}
		//alert(m);
		// set more general tests
		if (!W3CDOM){
			alert(errorstring);
		}
		if (firstError){
			firstError.focus();
		// finish
		}
		if (validForm){
			
			var msg = 'Validform=true:';
			var xreg = /error/i;
			var z = $(":input", "#"+frm);
			for (var i=0;i<z.length;i++){
				if(xreg.test(z[i].className)){
					msg += z[i].name + '/' + z[i].className + '\n' ;
					z[i].className = z[i].className.substring(0,z[i].className.lastIndexOf(' '));
					var n = z[i].parentNode;
					n.removeChild(n.lastChild);
				}
			}
			//alert(msg);
			
			return true;

		}else{
			//alert('There are errors on the page ' );
			//alert('form failed to make it');
						
			return false;
		}
	}else{
		//document.frmEdit.submit();
	}
}

function writeError(obj,message)
{
	validForm = false;
	if (obj.hasError) return;
	if (W3CDOM)
	{
		obj.className += ' error';
		obj.onchange = removeError;
		var sp = document.createElement('span');
		sp.className = 'error';
		//sp.id = 'error';
		sp.appendChild(document.createTextNode(message));
		obj.parentNode.appendChild(sp);
		obj.hasError = sp;
	}
	else
	{
		errorstring += obj.name + ': ' + message + '\n';
		obj.hasError = true;
	}
	if (!firstError)
		firstError = obj;
}

function removeError()
{
	this.className = this.className.substring(0,this.className.lastIndexOf(' '));
	this.parentNode.removeChild(this.hasError);
	this.hasError = null;
	this.onchange = null;
}
