function MM_validateForm() { //v4.0

	var i,p,q,nm,test,num,min,max,errors='';
	args=mm_validateform.arguments;
	for (i=0; i<(args.length-2); i+=3)
	{
		test=args[i+2];
		val=MM_findObj(args);
		if (val)
		{
			nm=val.name;
			if ((val=val.value)!="")
			{
				if (test.indexOf('isEmail')!=-1)
				{
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1))
						errors += '- '+nm+' must contain an e-mail address.\n';
				}
				else if (test!='R')
				{
					num = parseFloat(val);
					if (isNaN(val))
						errors+='- '+nm+' must contain a number.\n';
					if (test.indexOf('inRange')!= -1)
					{
						p=test.indexOf(':');
						min=test.substring(8,p);
						max=test.substring(p+1);
						if (num<min || max<num)
							errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
					}
				}
			}
			else if (test.charAt(0) == 'R')
				errors += '- '+nm+' is required.\n';
		}
	}
	
	if (errors)
		alert('The following error(s) occurred:\n'+errors);
		
	document.MM_returnValue = (errors == '');
} 