// JavaScript Document
		function MM_findObj(n, d) {
			var p,i,x;  
			if(!d) { 
				d=document;
			}
			if((p=n.indexOf('?'))>0&&parent.frames.length) {
				d=parent.frames[n.substring(p+1)].document; 
				n=n.substring(0,p);
			}
			if(!(x=d[n])&&d.all) { 
				x=d.all[n];
			} 
			for (i=0;!x&&i<d.forms.length;i++) {
				x=d.forms[i][n];
			}
			for(i=0;!x&&d.layers&&i<d.layers.length;i++) { 
				x=MM_findObj(n,d.layers[i].document);
			}
			if(!x && d.getElementById) {
				x=d.getElementById(n); 
			}
			return x;
		}
		
		function MM_validateForm() {
			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[i]);
				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 be a valid e-mail address.\n';
							}
						} else if (test!='R') { 
							num = parseFloat(val);
							if (isNaN(val)) {
								errors+='- '+nm+' must be 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 be from a range: from '+min+' to '+max+'.\n';
								}
							} 
						} 
					} 
					else if (test.charAt(0) == 'R') { 
						errors += '- '+nm+' is a required field.\n'; 
					}
				}
			} 
			if (errors) {
				alert('Error. One or more fields are filled in incorrectly.');
			}
		  
			document.MM_returnValue = (errors === '');
		}
