function validateForm(){
	var theFrm = document.forms[0];
	var theElements = theFrm.elements
	var theStr = ""
	var validForm = true
	var validEmail = true
	var newLine = "<br>"; //"\r"; // "\n" 
	var HTML = true;
	var x = "";
	var xNum = -1;

	//-------------------  Validate form (START) -----------------------------//
	
	var notValid = ""
	for (i=0; i<theElements.length; i++ ){
		theName = theElements[i].name;
		theSub = theName.substr(0, theName.length -1)
		if (theName.charAt(theName.length-1) == "*"){
			switch (theElements[i].type)
			{
				case "radio" : 
					radName = theElements[i].name;
					radChecked = false;
					for (j=0; j<theElements.length; j++ ){
						if (theElements[j].name == radName && theElements[j].checked){
							radChecked = true;
						}
					}
					if (!radChecked) {
						if (notValid.indexOf(theSub) == -1){
							notValid += "\n"+ theSub;
						}
						validForm = false;
					}
					break; 
				case "checkbox" : 
					if (!theElements[i].checked){
						notValid += "\n"+ theSub;
						validForm = false;
					}
					break; 
				case "text" :
					email = /^[email][e\-mail]/i
					if (theElements[i].value == "") {
						notValid += "\n"+ theSub;
						validForm = false;
					} else if (email.test(theElements[i].name)){
						x = theElements[i].value;
						xNum = i
						var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
						if (!filter.test(x)){
							validEmail = false;
							validForm = false;
						} 
					}
					break; 
				case "select-one" : 
					if (theElements[i].value == "") {
						notValid += "\n"+ theSub;
						validForm = false; 
					}
					break; 
				case "select-multiple" : 
					multiChecked = false;
					for(j=0; j<theElements[i].length; j++ ) {
						if (theElements[i][j].selected){
							multiChecked = true;
						}
					}
					if (!multiChecked) {
						notValid += "\n"+ theSub;
						validForm = false;
					}
					break; 
			}
		}
	}
	//-------------------  Validate form (END) -----------------------------//


	//-------------------  Construct Email Body (START) -----------------------------//
	if (!HTML){
		if (validForm) {
			for (i=0; i<theElements.length; i++ ){
				if (theElements[i].type == "radio"){
					if (theElements[i].checked) {
						theStr += theElements[i].name + " - " + theElements[i].value + newLine
					}
				} else if (theElements[i].type == "checkbox") {
					if (theElements[i].checked) {
						theStr += theElements[i].name + " - " + theElements[i].value + newLine
					}
				} else if (theElements[i].type == "text") {
					theStr += theElements[i].name + " - " + theElements[i].value + newLine
				} else if (theElements[i].type == "select-one") {
					theStr += theElements[i].name + " - " + theElements[i].value + newLine
				} else if (theElements[i].type == "select-multiple") {
					theStr += "\n" + theElements[i].name + newLine
					for(j=0; j<theElements[i].length; j++ ) {
						if (theElements[i][j].selected){
							theStr += "   " + theElements[i][j].value + newLine
						}
					}
					theStr += "\n"
				}/* else if (theElements[i].type != "submit"){
					theStr += theElements[i].name + " - " + theElements[i].type + newLine
				}*/
			}
		}
	} else {
		HTMLstart = "<table border='1' cellspacing='0' cellpadding='3' bordercolor='#CCCCCC'>"
		ls = "<tr><td><div align='right'><strong>"
		lm = "</strong></div></td><td>&nbsp;</td><td>"
		le = "</td></tr>"
		if (validForm) {
			theStr += HTMLstart;
			for (i=0; i<theElements.length; i++ ){
			 	if(i == xNum) {
					theElements[i].value = "<a href='mailto:"+x+"'>"+x+"</a>"
				}
				if (theElements[i].type == "radio"){
					if (theElements[i].checked) {
						theStr += ls+ theElements[i].name + lm + theElements[i].value + le
					}
				} else if (theElements[i].type == "checkbox") {
					if (theElements[i].checked) {
						theStr += ls+ theElements[i].name + lm + theElements[i].value + le
					}
				} else if (theElements[i].type == "text") {
					if (theElements[i].value != "") {
						theStr += ls+ theElements[i].name + lm + theElements[i].value + le
					}
				} else if (theElements[i].type == "select-one") {
					if (theElements[i].value != "") {
						theStr += ls+ theElements[i].name + lm + theElements[i].value + le
					}
				} else if (theElements[i].type == "select-multiple") {
					theTmpStr = "";
					theFirst = true;
					theCount = 0;
					for(j=0; j<theElements[i].length; j++ ) {
						if (theElements[i][j].selected){
							theCount ++;
							if (theFirst){
								theTmpStr +=  theElements[i][j].value + le
								theFirst = false;
							} else {
								theTmpStr +=  "<tr><td>&nbsp;</td><td>" + theElements[i][j].value + le
							}
						}
					}
					if (!theFirst) {
						theTmpStr = "<tr><td rowspan="+theCount+"><div align='right'><strong>" + theElements[i].name + lm + theTmpStr
						theStr += theTmpStr;//ls + "&nbsp;" + lm + "&nbsp;" + le 
					}
				}/* else if (theElements[i].type != "submit"){
					theStr += theElements[i].name + " - " + theElements[i].type + newLine
				}*/
			 	if(i == xNum) {
					theElements[i].value = x
				}
			}
		}
	}
	//-------------------  Construct Email Body (END) -----------------------------//
	//alert(theStr);


	//-------------------  Respond or send mail (START) -----------------------------//
	if (!validForm) {
		if (!validEmail) {
			alert("The email address entered is not a valid address.\nPlease complete all required fields labeled *\n"+notValid);
		} else {
			alert("Please complete all required fields labeled *\n"+notValid);
		}
	} else {
		theFrm.action = "/cms/asp/sendMail.asp";
		theFrm.emailBody.value = escape(theStr+"</table>");
		theFrm.submit();
	}


	//-------------------  Respond or send mail (START) -----------------------------//


	/*var requiredArray = ["Email","name","Company","Address","Postcode","Country","Phone","Fax_number"];
	var messageArray = ["Email","name","Company","Position","Address","Postcode","Country","Phone","Fax_number","question"]
	var checkArray = ["catalogue","Callback","visit","forward","PETA_disc"];
	
	
"Email","name","Company","Position","Address","Postcode","Country","Phone","Fax_number"
"catalogue","Callback","visit","forward","PETA_disc","privacy"
	
	var validForm = true;
	var productInfo = false;
	//document.write(theFrm.bonds[0].value);
	var str = "";
	var theCheck = "";
	var theCheckStr = "";
	var interestedIn = "";
	var newLine = "\r"; // "\n" "<br>"
	if (theFrm.privacy.checked){   ////////////////////////////////  <<-----------  add the required check boxes here
		productInfo = true;
		for(h=0; h<checkArray.length; h++) {
		theCheck = eval("theFrm."+checkArray[h]+".checked")
		theCheckStr = eval("theFrm."+checkArray[h]+".value")
		theCheckStr = theCheckStr.replace(/_/g, " ");
			if (theCheck == true){
				interestedIn += theCheckStr + newLine;
			}
		}
	}
	for(i=0; i<requiredArray.length; i++) {
		str = eval("theFrm."+requiredArray[i]+".value")
		if (str == "" || String(str) == "undefined"){
			if (String(str) == "undefined"){
				radioChecked = false;
				for (j=0; j<2; j++){
					radio = eval("theFrm."+requiredArray[i]);
					if (radio[j].checked){
						radioChecked = true;
					}
				}
				if (!radioChecked){
					validForm = false;
				}
			} else {
				validForm = false;
			}
			//str += eval("theFrm."+requiredArray[i]+".value")+" hello ";
		}
	}
	//document.write(str)//eval("theFrm."+requiredArray[i]+".value")+" hello "+i);
	//document.write("Hello");
	var tempStr = "";
	var tmpName = "";
	var tmpValue = "";
	if (validForm == true && productInfo == true) {
		for(i=0; i<messageArray.length; i++) {
			tmpValue = eval("theFrm."+String(messageArray[i])+".value");
			if (tmpValue != ""){
				if (String(tmpValue) == "undefined"){
					radio = eval("theFrm."+messageArray[i]);
					tmpName = String(messageArray[i]);
					tmpName = tmpName.replace(/_/g, " ");
					for (j=0; j<2; j++){
						if (radio[j].checked){
							radValue = radio[j].value;
							tempStr += tmpName + ": " + radValue + newLine;
						}
					}				
				} else {
					tmpName = String(messageArray[i]);
					tmpName = tmpName.replace(/_/g, " ");
					tempStr += tmpName + ": " + tmpValue + newLine;
				}
			}
		}
		tempStr = tempStr + newLine + interestedIn
		document.contactFrm.emailBody.value = escape(tempStr);
		//document.write(document.contactFrm.emailBody.value);
		//document.contactFrm.submit();
		//alert("submitted");
		document.write(tempStr);
	} else if (validForm == false) {
		alert("Please complete all required fields marked *");
	} else if (productInfo == false) {
		alert("Please confirm that you have read our privacy policy.");
	}*/
}