// JavaScript Document
function MM_findObj(n, d) { //v4.01
  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() { //v4.0
  var i,p,q,j,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-3); i+=4) { 
	test=args[i+2]; 
	nm=args[i+3];
 	radioChecked=false;
	if (test == 'D') { //radio button
		val = document.getElementsByName(args[i]);
		for (j = 0; j < val.length; j++) {
			if (val[j].checked) {
				radioChecked=true;	
			}
		}
		if (radioChecked==false) {
			errors+= '- '+nm+' \n';
		}
	} else if (test.charAt(0) == 'A') { //(date) else if (test.charAt(1) == 'R')
				date = val;
				p = new RegExp("(20)\d\d[-](0[1-9]|1[012])[-]((0[1-9]|[12][0-9]|3[01])");
				result = p.exec(date);
				alert(result);
				if (result == null) {
					errors+= '- '+nm+' is invalid\n';
				}
	} else {
		val=MM_findObj(args[i]);
		if (val) { //else if (test.charAt(1) == 'D') 
			if ((val=val.value)!="") {
				if (test.indexOf('isEmail')!=-1) { 
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain a valid email address\n';
				} else if (test!='R') { 
				
					if (test.indexOf('isAlphaBet') != -1){
						 var regex=/^[a-zA-Z\s]+$/; //Match for upper- or lowercase letters
						   if ( regex.test(val) == false) {
							 errors+='- '+nm+' must contain only alphabet\n';
						   }	
					} else {

						num = parseFloat(val);
						if (isNaN(val)) {
						errors+='- '+nm+' must contain a number\n';
						}	//if (isNaN(val)) 
						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';
							} //if (num<min || max<num)
						} //if (test.indexOf('inRange') != -1)  
						
					}
				} //} else if (test!='R')  
			} else if (test.charAt(0) == 'R') { 
						errors+= '- '+nm+' \n';		
			}
		}
	} //if (val) 

  } //for (i=0; i<(args.length-3); i+=4) 

  if (errors) alert('Please fill all required fields.\n'+errors);
  document.MM_returnValue = (errors == '');
}