// SEARCH FORM    - Struts Validator Generated code for Search and Find a QL
		    var bCancel = false; 

		    function validateSearchForm(form) {                                                                   
	        if (bCancel) 
		      return true; 
		        else 
		       return validateRequired(form) && validateMask(form,'search'); 
		   } 

		    function validateFindaqlForm(form) {                                                                   
	        if (bCancel) 
		      return true; 
		        else 
		       return validateMask(form,'findql'); 
		   } 

		   function validateSpecialsForm(form) {                                                                   
	        if (bCancel) 
		      return true; 
		        else 
		       return validateMask(form,'specials'); 
		   } 

		    function required () { 
		     this.aa = new Array("keywords", "Keywords is required for the search. ", new Function ("varName", "this.mask=/^[a-zA-Z\\\\ \\\\.]{0,80}$/;  return this[varName];"));
		    } 

		    function searchmask () { 
		     this.aa = new Array("keywords", "Search keywords is invalid, it should consists of alphabetical characters. Please re-enter -- Thank you", new Function ("varName", "this.mask=/^[a-zA-Z\\\\ \\\\.]{0,80}$/;  return this[varName];"));
		    } 

            function matchPattern(value, mask) {
               return mask.exec(value);
            }

		    function findqlmask () { 
		     this.aa = new Array("city", "The city name is invalid, it should consists of alphabetical characters. Please re-enter -- Thank you", new Function ("varName", "this.mask=/^[a-zA-Z\\\\ \\\\.]{0,40}$/;  return this[varName];"));
		     this.ab = new Array("zipcode", "The zip code is invalid, it should be five digits. Please re-enter -- Thank you", new Function ("varName", "this.mask=/^\\d{5}$/;  return this[varName];"));
		     this.ac = new Array("state", "The state code is invalid, state code shouuld be two characters.", new Function ("varName", "this.mask=/^[A-Z]{0,2}$/;  return this[varName];"));
		    } 

		    function specialsmask () { 
		     this.aa = new Array("zipcode", "The zip code is invalid, it should be five digits. Please re-enter -- Thank you", new Function ("varName", "this.mask=/^\\d{5}$/;  return this[varName];"));
		    } 

			function validateRequired(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRequired = new required();
                for (x in oRequired) {
                	var field = form[oRequired[x][0]];
                	
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'file' ||
                        field.type == 'select-one' ||
                        field.type == 'radio' ||
                        field.type == 'password') {
                        var value = '';
						// get field's value
						if (field.type == "select-one") {
							var si = field.selectedIndex;
							if (si >= 0) {
								value = field.options[si].value;
							}
						} else {
							value = field.value;
						}
                        
                        if (trim(value).length == 0) {
                        
	                        if (i == 0) {
	                            focusField = field;
	                        }
	                        fields[i++] = oRequired[x][1];
	                        isValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return isValid;
            }
            
            // Trim whitespace from left and right sides of s.
            function trim(s) {
                return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
            }
            
			function validateMask(form,formname) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                
				if(formname=='findql')   //validation mask for find a ql form
	                oMasked = new findqlmask();
	            else if(formname=='search') //validation mask for search form
					oMasked = new searchmask();
				else if(formname=='specials')
					oMasked = new specialsmask(); //validation mask for specials form

                for (x in oMasked) {
                    var field = form[oMasked[x][0]];
                    
                    if ((field.type == 'text' || 
                         field.type == 'textarea') && 
                         (field.value.length > 0)) {
                        if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oMasked[x][1];
                            isValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return isValid;
            }
