
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;

						if (fieldtype == 'text'||fieldtype == 'textarea'||fieldtype == 'password'){

							if (thisform.elements[fieldname].value.length == 0)
	                                {
	                                alert(thisform.elements[j].value);
	                                j = (thisform.elements.length);
									thisform.elements[fieldname].select();
	                                return false;
	                                }
						} else if (fieldtype == 'select-one' ){

							if(thisform.elements[fieldname].options[thisform.elements[fieldname].selectedIndex].value==""){
	                                alert(thisform.elements[j].value);
									thisform.elements[fieldname].focus();
	                                j = (thisform.elements.length);
	                                return false;
							}
						} else if (fieldtype == 'select-multiple' ){
							var selections=0;
							for (var k=0;k<thisform.elements[fieldname].options.length; k++){
								//alert(thisform.elements[fieldname].options[k].text);
								if (thisform.elements[fieldname].options[k].selected)
									selections++;
							} 
							if(selections==0){
	                                alert(thisform.elements[j].value);
									thisform.elements[fieldname].focus();
	                                j = (thisform.elements.length);
	                                return false;
							}	                           
						} else if (fieldtype == 'checkbox'){
							if (!thisform.elements[fieldname].checked){
								alert(thisform.elements[j].value);
								j = (thisform.elements.length);
								thisform.elements[fieldname].focus();
								return false;
							}
						} else /*if (fieldtype == 'radio')*/ {
							//alert (fieldtype);
							var rdochk = "no"
							//alert (fieldname);
							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 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;
				  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);
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
							return false;
						}
					} else {
						alert(thisform.elements[j].value);
						thisform.elements[fieldname].select();
						j = (thisform.elements.length);
					   	return false;
					}
				  }
			  }
			  /* end Check for Float */
			  
			  

				/* begin Check for Date */
				indx2 = thisform.elements[j].name.indexOf('_isDate');
                if (indx2 != -1)
                        {
                        fieldname=thisform.elements[j].name.substring(0,indx2);
                        var dateStr= thisform.elements[fieldname].value

						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);
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
							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);
						thisform.elements[fieldname].select();
						j = (thisform.elements.length);
						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);
								thisform.elements[fieldname].select();
								j = (thisform.elements.length);
								return false;
							   }

                        }

						if (month>12 || day>31) {
							alert(thisform.elements[j].value);
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
							return false;
						}
				}
				/* end Check for Date */

				/* begin Check for Time */
				indx2 = thisform.elements[j].name.indexOf('_isTime');
                if (indx2 != -1)
                        {
                        fieldname=thisform.elements[j].name.substring(0,indx2);
                        var dateStr= thisform.elements[fieldname].value

						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);
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
							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);
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
							return false
						}
				}
				/* end Check for Time */
				
				/* begin Check for ShortTime */
				indx2 = thisform.elements[j].name.indexOf('_isShortTime');
                if (indx2 != -1)
                        {
                        fieldname=thisform.elements[j].name.substring(0,indx2);
                        var dateStr= thisform.elements[fieldname].value

						var datePat = /^(\d{1,2})(:)(\d{1,2})$/;

						var matchArray = dateStr.match(datePat); // is the format ok?/
						if (matchArray == null) {
							alert(thisform.elements[j].value);
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
							return false;
						}
						hour = matchArray[1]; // parse date into variables
						minute = matchArray[3];

						if (hour<0 || hour>23 || minute<0 || minute>59 ) {
						//alert("The hour "+hour+" does not have 31 minutes!")
							alert(thisform.elements[j].value);
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
							return false
						}
				}
				/* end Check for Time */

				/* begin Check for Integer */
				indx3 = thisform.elements[j].name.indexOf('_isInteger');
               if (indx3 != -1){
					onedecimal=false
						  var fieldname=thisform.elements[j].name.substring(0,indx3);
						  imputStr = thisform.elements[fieldname].value
						  for (var i = 0; i < imputStr.length; i++) {
					        var onechar = imputStr.charAt(i)
							/*if (onechar =="." && !onedecimal) {
								onedecimal = true
								continue
							}*/
							if (onechar < "0" || onechar > "9") {
                                alert(thisform.elements[j].value);
								thisform.elements[fieldname].select();
                              	j = (thisform.elements.length);
                             return false;
							}
						}
                }
				/* end Check for Integer */

				/* begin Check for MAX Length */
				indx5 = thisform.elements[j].name.indexOf('_maxLength');
               if (indx5 != -1){
						  var fieldname=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[fieldname].value
						  if (inputStr.length>maxlen) {
                              alert(thisform.elements[j].value);
							  thisform.elements[fieldname].focus();
                              j = (thisform.elements.length);
                             return false;
							}
						}
				/* end Check for MAX Length */

				/* begin Check for MIN Length */
				indx5 = thisform.elements[j].name.indexOf('_minLength');
               if (indx5 != -1){
						  var fieldname=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[fieldname].value
						  if (inputStr.length<maxlen) {
                              alert(thisform.elements[j].value);
							  thisform.elements[fieldname].select();
                              j = (thisform.elements.length);
                             return false;
							}
						}
				/* end Check for MIN Length */
				
				/* 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);
						thisform.elements[fieldname2].select();
                        j = (thisform.elements.length);
                        return false;
					}
				}
				/* end check password match */
				
				/* begin Check for Email */
				indx2 = thisform.elements[j].name.indexOf('_isEmail');
                if (indx2 != -1)
                        {
                        fieldname=thisform.elements[j].name.substring(0,indx2);
                        var emailStr= thisform.elements[fieldname].value

						var emailPat = /\S+@\S+\.\S{2,3}/;

						var matchArray = emailStr.match(emailPat); // is the format ok?/
						if (matchArray == null) {
							alert(thisform.elements[j].value)
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
						return false;
						}
				}
				/* end Check for Email */
				
				/* begin Check for alphanumeric */
				indx2 = thisform.elements[j].name.indexOf('_isAlnum');
                if (indx2 != -1)
                        {
                        fieldname=thisform.elements[j].name.substring(0,indx2);
                        var emailStr= thisform.elements[fieldname].value

						var emailPat = /\W/;

						var matchArray = emailPat.exec(emailStr); // is the format ok?/
						if (!matchArray) {
							null;
						} else {
							alert(thisform.elements[j].value)
							thisform.elements[fieldname].select();
							j = (thisform.elements.length);
							return false;
						}
				}
				/* end Check for alphanumeric */

				/* check for range of selections for multiple select object*/
                indx = thisform.elements[j].name.indexOf('_selectMIN');
                if (indx != -1)
                {
						var verifier=thisform.elements[j].name;
						
                        fieldname=verifier.substring(0,indx);
							// _selectMIN1MAX3
							
						var indx2=verifier.indexOf('MAX',indx);
						
						if (indx2 != -1 ){
						
							var minSel=parseInt(verifier.substring(indx+10,indx2-indx+10));
							var maxSel=parseInt(verifier.substring(indx2+3,verifier.length));
							
							if (!isNaN(minSel) && !isNaN(maxSel))
							{
								//alert('field: '+verifier+'\nmin: '+minSel+'\nmax: '+maxSel);
								
								var fieldtype = thisform.elements[fieldname].type;
		
								if (fieldtype == 'select-multiple' ){
									var selections=0;
									for (var k=0;k<thisform.elements[fieldname].options.length; k++){
										//alert(thisform.elements[fieldname].options[k].text);
										if (thisform.elements[fieldname].options[k].selected)
											selections++;
									} 
									if(selections<minSel || selections>maxSel){
											alert(thisform.elements[j].value);
											j = (thisform.elements.length);
											thisform.elements[fieldname].focus();
											return false;
									}	                           
								}
							}
						}
                }
				/* end check for range of selections for multiple select object*/
				
				/* begin Check for numeric by RANGE */
				indx = thisform.elements[j].name.indexOf('_isNumRangeMIN');
               if (indx != -1){
					onedecimal=false
						var verifier=thisform.elements[j].name;						
                        var fieldname=verifier.substring(0,indx);
						//alert(fieldname);
							// _isIntMIN							
						var indx2=verifier.indexOf('MAX',indx);
						
						if (indx2 != -1 ){
						
							var minSel=parseFloat(verifier.substring(indx+14,indx2-indx+14));
							var maxSel=parseFloat(verifier.substring(indx2+3,verifier.length));
							
							if (!isNaN(minSel) && !isNaN(maxSel))
							{
							  imputStr = thisform.elements[fieldname].value;
							  var testVal=parseFloat(imputStr)	;
							  if (isNaN(testVal)){
									alert(thisform.elements[j].value);
									thisform.elements[fieldname].select();
									j = (thisform.elements.length);
								 	return false;
							  }
							  
							  if (parseFloat(imputStr)<minSel || parseFloat(imputStr)>maxSel){
									alert(thisform.elements[j].value);
									thisform.elements[fieldname].select();
									j = (thisform.elements.length);
								 	return false;
							  }
							  
							}
						}
                }
				/* end Check for Integer by RANGE */

		}
}
