
function VerifyFields(thisform) {
        for (var j=0; j<(thisform.elements.length); j++)
        {
				/* begin Check for Required */
                indx = thisform.elements[j].name.indexOf('_required');
                if (indx != -1)
                {
                        fieldname=thisform.elements[j].name.substring(0,indx);

						var fieldtype = thisform.elements[fieldname].type;
						
						//alert(fieldname+'\n'+fieldtype);

						if (fieldtype == 'text'||fieldtype == 'textarea'||fieldtype == 'password'){

							if (thisform.elements[fieldname].value.length == 0)
	                                {
	                                alert(thisform.elements[j].value);
	                                j = (thisform.elements.length);
	                                return false;
	                                }
						} else if (fieldtype == 'select-one'){
							if(thisform.elements[fieldname].options[thisform.elements[fieldname].selectedIndex].value==""){
	                                alert(thisform.elements[j].value);
	                                j = (thisform.elements.length);
	                                return false;
							}
						} else if (fieldtype == 'select-multiple'){
							if(thisform.elements[fieldname].selectedIndex==-1){
	                                alert(thisform.elements[j].value);
	                                j = (thisform.elements.length);
	                                return false;
							}
						} else {
							var rdochk = "no"
							for (var x=0; x<thisform.elements[fieldname].length; x++){
								if (thisform.elements[fieldname][x].checked){
									rdochk = "yes"
								}
							}
							if(rdochk == "no"){
	                                alert(thisform.elements[j].value);
	                                j = (thisform.elements.length);
	                                return false;
							}

						}
                }
				/* end Check for Required */

			  /* begin Check for Email */
			  indx4 = thisform.elements[j].name.indexOf('_isEmail');
			  if (indx4 != -1){
				  fieldname=thisform.elements[j].name.substring(0,indx4);
				  var inputStr = thisform.elements[fieldname].value;
				  if (inputStr.length>0){
					  var regmtch = new RegExp(/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/);
					  if (!inputStr.match(regmtch)){
							alert(thisform.elements[j].value);
							thisform.elements[fieldname].select();
							return false;
					  }
				  }
			  }
			  /* end Check for Email */

			  /* begin Check for Float */
			  indx4 = thisform.elements[j].name.indexOf('_isFloat');
			  if (indx4 != -1){
				  fieldname=thisform.elements[j].name.substring(0,indx4);
				  var imputStr = thisform.elements[fieldname].value;
				  if (imputStr.length>0){
					  var dots=0;
					  for (var k = 0; k < imputStr.length; k++) {
						var onechar = imputStr.charAt(k);
						if ((onechar >= "0" && onechar <= "9") || onechar==".") {
							if(onechar==".") dots++;
							if (dots > 1){
								alert(thisform.elements[j].value);
								return false;
							}
						} else {
							alert(thisform.elements[j].value);
							return false;
						}
					  }
				  }
			  }
			  /* end Check for Float */

				/* begin Check for Date */
				indx2 = thisform.elements[j].name.indexOf('_isDate');
                if (indx2 != -1)
                        {
                        fieldname2=thisform.elements[j].name.substring(0,indx2);
                        var dateStr= thisform.elements[fieldname2].value
						
						if (dateStr.length>0){

							var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
	
							var matchArray = dateStr.match(datePat); // is the format ok?/
							if (matchArray == null) {
							alert(thisform.elements[j].value)
							return false;
							}
							month = matchArray[1]; // parse date into variables
							day = matchArray[3];
							year = matchArray[4];
	
							if ((month==4 || month==6 || month==9 || month==11) && day==31) {
							//alert("The month "+month+" does not have 31 days!")
							alert(thisform.elements[j].value);
							return false
							}
								if (month == 2) { // check for february 29th
								var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
								if (day>29 || (day==29 && !isleap)) {
								alert(thisform.elements[j].value);
								return false;
								   }
	
							}
	
							if (month>12 || day>31) {
							alert(thisform.elements[j].value);
							return false;
							}
						}
				}
				/* end Check for Date */

				/* begin Check for Time */
				indx2 = thisform.elements[j].name.indexOf('_isTime');
                if (indx2 != -1)
                        {
                        fieldname2=thisform.elements[j].name.substring(0,indx2);
                        var dateStr= thisform.elements[fieldname2].value;
						if (dateStr.length>0){

							var datePat = /^(\d{1,2})(:)(\d{1,2})\2(\d{2})$/;
	
							var matchArray = dateStr.match(datePat); // is the format ok?/
							if (matchArray == null) {
							alert(thisform.elements[j].value)
							return false;
							}
							hour = matchArray[1]; // parse date into variables
							minute = matchArray[3];
							second = matchArray[4];
	
							if (hour<0 || hour>23 || minute<0 || minute>59 || second<0 || second>59) {
							//alert("The hour "+hour+" does not have 31 minutes!")
							alert(thisform.elements[j].value);
							return false
							}
						}
				}
				/* end Check for Time */

				/* begin Check for Integer */
				  indx4 = thisform.elements[j].name.indexOf('_isInteger');
				  if (indx4 != -1){
					  fieldname=thisform.elements[j].name.substring(0,indx4);
					  var inputStr = thisform.elements[fieldname].value;
					  if (inputStr.length>0){
						  var regmtch = new RegExp(/^-{0,1}\d+$/);
						  if (!inputStr.match(regmtch)){
								alert(thisform.elements[j].value);
								thisform.elements[fieldname].select();
								return false;
						  }
					  }
				  }
				/* end Check for Integer */

				/* begin Check for Length */
				indx5 = thisform.elements[j].name.indexOf('_maxLength');
               if (indx5 != -1){
						  var fieldname5=thisform.elements[j].name.substring(0,indx5);
						  var maxlen=parseInt(thisform.elements[j].name.substring(indx5+10,thisform.elements[j].name.length));
						  var inputStr = thisform.elements[fieldname5].value
						  if (inputStr.length>maxlen) {
                              alert(thisform.elements[j].value);
                              j = (thisform.elements.length);
                             return false;
							}
						}
				/* end Check for Length */

				/* begin Check for MinLength */
				indx5 = thisform.elements[j].name.indexOf('_minLength');
               if (indx5 != -1){
						  var fieldname5=thisform.elements[j].name.substring(0,indx5);
						  var maxlen=parseInt(thisform.elements[j].name.substring(indx5+10,thisform.elements[j].name.length));
						  var inputStr = thisform.elements[fieldname5].value
						  if (inputStr.length>0){
							  if (inputStr.length<maxlen) {
								  alert(thisform.elements[j].value);
								  j = (thisform.elements.length);
								 return false;
								}
						  }
						}
				/* end Check for MinLength */
				
				/* begin check password match */
				indx = thisform.elements[j].name.indexOf('_ckpwd');
				if (indx != -1){
					var fieldname1=thisform.elements[j].name.substring(0,indx);
					var fieldname2=thisform.elements[j].name.substring(0,indx)+'2';
					if (thisform.elements[fieldname1].value != thisform.elements[fieldname2].value){
						alert(thisform.elements[j].value);
                        j = (thisform.elements.length);
                        return false;
					}
				}
				/* end check password match */
				
				/* begin check time */
				indx = thisform.elements[j].name.indexOf('_isTime');
				if (indx != -1){
					var fieldname=thisform.elements[j].name.substring(0,indx);
					var vTime=thisform.elements[fieldname].value;
					var pass='Y';
					if (vTime.length>0){
						if (vTime.length<7||vTime.length>8){
							pass='N';
							//alert('err1');
						} else {
							var firstcolon=vTime.indexOf(':',0);
							//alert(firstcolon);
							if (firstcolon<=0||firstcolon>2){
								pass='N';
								//alert('err2');
							} else {
								var secondcolon=vTime.indexOf(':',firstcolon+1);
								//alert(firstcolon);
								if (secondcolon<4||secondcolon>5){
									pass='N';
									//alert('err3');
								} else {
									for (var k = 0; k < vTime.length; k++) {
										var onechar = vTime.charAt(k)	;
										if ((onechar >= "0" && onechar <= "9") || onechar==":") {
										} else {
											pass='N';
										//alert('err4');
										}
									}
									if(pass='Y'){
										var Hours=vTime.substring(0,firstcolon);
										var Minutes=vTime.substring(firstcolon+1,secondcolon);
										var Seconds=vTime.substring(secondcolon+1,vTime.length);
										//alert('(1)\nHours: '+Hours+'\nMinutes: '+Minutes+'\nSeconds: '+Seconds);
										
										if(Minutes.length<2||Seconds.length<2||Minutes.length>2||Seconds.length>2){
											pass='N';
										} else {
											var Min=parseInt(Minutes,10);
											var Sec=parseInt(Seconds,10);
											
											if(Min>59||Sec>59){
												pass='N';
											}
										}
									}
								}
							}
						}
											
						if (pass=='N'){
							alert(thisform.elements[j].value);
							j = (thisform.elements.length);
							return false;
						}
					}
				}
				/* end check time */

			  /* begin Check for AllowedChars */
			  indx4 = thisform.elements[j].name.indexOf('_isAllowed');
			  if (indx4 != -1){
				  fieldname=thisform.elements[j].name.substring(0,indx4);
				  var imputStr = thisform.elements[fieldname].value;
				  for (var k = 0; k < imputStr.length; k++) {
			        var onechar = imputStr.charAt(k);
			        var allowcharsfield = fieldname+'_allowedChars';
			        var allowed = thisform.elements[allowcharsfield].value;
					if (allowed.indexOf(onechar)==-1) {
						alert(thisform.elements[j].value);
					   	return false;
					}
				  }
			  }
			  /* end Check for AllowedChars */

		}
		return true;
}
function maskPhone(f){
	var raw = getPhone(f.value);
	if (raw.length>0){
		tel='(';
		var val = raw.split('');
		for(var i=0;i<val.length;i++){
		if(i==2){val[i]=val[i]+')'}
		if(i==5){val[i]=val[i]+'-'}
		tel=tel+val[i];
		}
		f.value=tel;
	}
} 
function getPhone(val){
	var patt1=new RegExp("[0-9]");
	var phone='';
	var ix;
	for (var j=0;j<13;j++){
		ix = val.charAt(j);
		if (patt1.test(ix)){
			phone+=ix;
		}
	}
	return phone;
}
