PageSourceSearch

https://myherbals.ru/components/com_jshopping/js/validateForm.js

js myherbals.ru collected 2026-10-09 22:43:27 UTC 9,165 bytes, 1 lines download raw bytes

1// Class validateForm ver 1.0.2�// [email protected]�/*�  num = number (from 1 digit to 2 digit, when 1 digit - to tochne spivpadinnya)�  nem = not empty�  eq = equal - 2 polya vkazuvaty�  em = email�  nat = natural digit (>0)�  reg = regular expression�  chk - is checkbox checked�  fl  = is float and>0�  fl|em  = (is float and>0) or empty�  notn = not null (for select)�  eqne = value must equal and not empty�  less = length muss less then %s symbols�  more = length muss more then %s symbols�  date = check is date�  date|em = check is date or empty�*/��function validateForm(nameForm, arrayId, arrayType, arrayParams, arrayErrorMessages, typeShowError, backCurrent, backError){�   this.idEl       	  = arrayId;�   this.type       	  = arrayType;�   this.params     	  = arrayParams;�   this.messages   	  = arrayErrorMessages;�   this.errorsMsg  	  = new Array();�   this.errorId    	  = new Array();�   this.current    	  = 0;�   this.end        	  = this.idEl.length;�   this.errorMsg      = '';�   this.typeShowError = typeShowError; 	// 1 = showErrors 2 = highlightFields 3 = 1 + 2�   this.backCurrent   = backCurrent;�   this.backError     = backError;�   this.nameForm	  = nameForm;��   this.addError = function(){�      if (this.getType() == 'eqne' || this.getType() == 'eq') {�        this.errorId[this.errorId.length] = this.getParam();�      }�      this.errorId[this.errorId.length] = this.getId();�      this.errorsMsg[this.errorsMsg.length] = this.getMessage();�   }��   this.parseNumber = function(){�      var reg = /^(\d*),(\d*)$/;�      var pattern = (reg.test(this.getParam())) ?  (new RegExp('^(\\d){' + RegExp.$1 + ',' + RegExp.$2 + '}$')) : (new RegExp('^(\\d){' + this.getParam() + '}$'));�      if (!pattern.test(this.getValue(0))){�         this.addError();�      }�   }��   this.checkNumber = function(pattern){�	  this.parseNumber();�   }��   this.checkFloat = function(){�      var value = parseFloat(this.getValue(0));�      if (isNaN(value) || value <=0) this.addError();�   }��   this.checkRegular = function(){�     var pattern = new RegExp(this.getParam());�     if (!pattern.test(this.getValue(0))) this.addError();�   }��   this.checkFloatOrEmpty = function(){�      var value = parseFloat(this.getValue(0));�      if (!this.checkNotEmptyFunc(this.getValue())) return true; else this.checkFloat();�   }�   �   this.checkFloatOrEmptyOrZero = function(){�       if (this.getValue(0)==0) return true; else this.checkFloatOrEmpty();�   }��   this.checkNotNull = function(){�      if (this.getValue(0) == 0) this.addError();�   }��   this.checkMoreLength = function(){�   	if (this.getValue(0).length<this.getParam()) this.addError();�   }��   this.checkLessLength = function(){�   	if (this.getValue(0).length>this.getParam()) this.addError();�   }��   this.checkEqualNotEmpty = function(notEmpty){�      var element2 = this.getValue(0);�      var element1 = this.getValue(this.getParam());�      if (element1 != element2){�      	 this.addError();�      } else if (notEmpty) {�      	 if (!this.checkNotEmptyFunc(element1)){�            this.addError();�         }�      }�   }��   this.checkNotEmptyFunc = function(value){�      var pattern = /\S/;�      return (value) ? (pattern.test(value)) : (pattern.test(this.getValue(0)));�   }��   this.checkNotEmpty = function(){�    if (!this.checkNotEmptyFunc()){�     	this.addError();�     }�   }��   this.checkMail = function(){�      var pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;�	  if (!pattern.test(this.getValue(0))){�	  	this.addError();�	  }�   }�   �   this.checkZipCode = function(){�      /*var pattern = /^\d{5}$/;*/�      var pattern = /\S/;�      if ( !pattern.test(this.getValue(0)) ){�          this.addError();�      }�   }��   this.checkDate = function(){�      var tempDate = this.getValue(0);�      var pattern = new RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$");�      if (pattern.test(tempDate)){�         var year = RegExp.$1;�         var month = RegExp.$2;�         var day = RegExp.$3;�         if (month < 1 || month > 12){�         	this.addError();�         } else if (year>2099 || year < 1900){�            this.addError();�         } else if (day < 1 || day > 31){�         	this.addError();�         }�      } else {�      	 this.addError();�      }�   }��   this.checkDateOrEmpty = function(){�      if (!this.checkNotEmptyFunc(this.getValue())) return true; else this.checkDate();�   }��   this.naturalNumber = function(){�      var value = parseInt(this.getValue(0));�      if (isNaN(value) || value <=0) this.addError();�   }��   this.checked = function(){�   	 if (!this.$().checked) this.addError();�   }��   this.getType = function(){�   	return this.type[this.current];�   }��   this.getForm = function(){�   	return document.forms[nameForm];�   }��   this.getId = function(){�   	return this.idEl[this.current];�   }��   this.getParam = function(){�   	   return this.params[this.current];�   }��   this.getMessage = function(){�   	   return this.messages[this.current];�   }��   this.getCurrent = function(){�   	   return this.idEl[this.current];�   }���   this.next = function(){�   	   this.current++;�   }��   this.notEnd = function(){�   	   return (this.current < this.end);�   }��   this.$ = function(idElement){�       return (idElement) ? (document.getElementById(idElement)) : (document.getElementById(this.getCurrent()));�   }��   this.getValue = function(idElement){�	   if (!idElement){�	   	  var element = this.$(this.getCurrent());�	   } else {�	      var element = this.$(idElement);�	   }
1�	   switch(element.type){�	   	 case 'select-one':�	       return element.options[element.selectedIndex].value;�	       break;�	     case 'radio':�	     case 'checkbox':�	       return element.checked;�	       break;�	     case 'text':�	     case 'password':�	     case 'textarea':�	       return element.value;�	       break;�	   }�   }��   this.validate = function(){�     while(this.notEnd()){�     	if (this.$(0)){�          switch(this.getType()){�        	  case 'num':�        	    this.checkNumber();�                break;�              case 'nem':�                this.checkNotEmpty();�                break;�              case 'em':�                this.checkMail();�                break;�              case 'nat':�                this.naturalNumber();�                break;�              case 'chk':�                this.checked();�                break;�              case 'fl':�                this.checkFloat();�                break;�              case 'fl|em':�                this.checkFloatOrEmpty();�              break;�              case 'fl|em|0':�                this.checkFloatOrEmptyOrZero();�              break;�              case 'notn':�                this.checkNotNull();�              break;�              case 'eq':�                this.checkEqualNotEmpty(0);�              break;�              case 'eqne':�                this.checkEqualNotEmpty(1);�              break;�              case 'more':�                this.checkMoreLength();�              break;�              case 'less':�                this.checkLessLength();�              break;�              case 'date':�                this.checkDate(this.getParam());�              break;�              case 'reg':�                this.checkRegular();�              break;�              case 'date|em':�                this.checkDateOrEmpty(this.getParam());�              break;�              case 'zip':�                this.checkZipCode();�              break;�                �         }�     	}�     	this.next();�     }��     if (this.errorsMsg.length){�        this.$(this.errorId[0]).focus();�        switch(this.typeShowError){�        	case 1:   this.showErrors();�        	          break;�            case 2:   this.highlightFields();�                      break;�            case 3:   this.showErrors();�            		  this.highlightFields();�            		  break;�        }�        return false;�     } else {�     	return true;�     }�   }���   this.showErrors = function(){�     var countErrors = this.errorsMsg.length;�     for (var i = 0; i < countErrors; i++){�        this.errorMsg += this.errorsMsg[i] + "\n";�     }�     alert (this.errorMsg);�   }��   this.unhighlightFields = function(){�     var form = this.getForm();�     var countElements = form.length;�     for (i = 0; i < countElements; i++){�       	if (form.elements[i].type == 'button' || form.elements[i].type == 'submit' || form.elements[i].type == 'hidden')�       	  continue;�       	else if (form.elements[i].type == 'checkbox')�       	  form.elements[i].parentNode.style.backgroundColor = this.backCurrent;�       	else �       	  form.elements[i].style.backgroundColor = this.backCurrent;�     }�   }��   this.highlightFields = function(){�     this.unhighlightFields()�     var countErrors = this.errorId.length;�     for (var i = 0; i < countErrors; i++){�		 if (this.$(this.errorId[i]).type == 'checkbox'){�			this.$(this.errorId[i]).parentNode.style.backgroundColor = this.backError;�		 } else {�			this.$(this.errorId[i]).style.backgroundColor = this.backError;�		 }�         �     }�   }�}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.