function submitForm(frm){// requires jquery     var email = $("#email").val();	var myForm = $("#" + frm);	var frmParams = myForm.serialize();		$('#responsemsg').show();	$('#btnSubmit').hide();	$('#processmsg').html(" submitting form...");	$('#holder').html("");		$.ajax({		type: "GET",		url: "include/email.relay.asp", 		dataType: "xml",		data: frmParams,		success: function(xml){					var errCode = $("errorcode", xml).text();			var errMsg = $("errormsg", xml).text();			var doc    = $("blob", xml).text();						if(errCode == 0){								if(doc == "")				{          $('#responsemsg').html(" Thank you for submitting this form. Your details have been received and are being processed.");        }        //$('#responsemsg').append(' [' + errCode + ' ' +  errMsg + ']');        $('#holder').html(doc);			}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;}