function testFormMail(form) {
	var ok=true;

	String.prototype.trim = function() {
		return this.replace(/^\s+|\s+$/g,"");
	}

	try {
		for (var i=0; i<form.elements.length; i++) {
			var element=form.elements[i];
			var type=element.className.charAt(0);
			var required=element.className.charAt(1)=='r';

			switch (type) {
				case 't':
					element.value=element.value.trim();
					if (required && element.value=='') {
						element.style.border="1px solid red";
						ok=false;
					} else {
						element.style.border="1px solid #BEBCAF";
					}
					break;
				case 'c':
					if (required) {
						var checkboxes=document.getElementsByName(element.name);
						var checked=false;
						for (var j=0; j<checkboxes.length;j++) {
							if (checkboxes[j].checked) {
								checked=true;
								break;
							}
						}
						if (!checked) {
							element.parentNode.style.color="red";
							ok=false;
						}  else {
							element.parentNode.style.color="";
						}
					}
					break;
				case 'r':
					if (required) {
						var radiobuttons=document.getElementsByName(element.name);
						var checked=false;
						for (var j=0; j<radiobuttons.length;j++) {
							if (radiobuttons[j].checked) {
								checked=true;
								break;
							}
						}
						if (!checked) {
							element.parentNode.style.color="red";
							ok=false;
						}  else {
							element.parentNode.style.color="";
						}
					}
					break;
				case 'e':
					element.value=element.value.trim();
					if (required && /^[^\s]+\@[^\s]+\.[^\s]{2,}$/.test(element.value)==false) {
						element.style.border="1px solid red";
						ok=false;
					} else {
						element.style.border="1px solid #BEBCAF";
					}
					break;
			}
		}
	} catch(ex) {
		ok=false;
	}

	return ok;
}
