rem: if (this.icon) { if (event.error && ! this.icon.visible()) { new Effect.Appear(this.icon); } else if (! event.error && this.icon.visible()) { this.icon.hide(); } }  
add: if (! this.icon) return;  if (event.error && ! this.icon.visible()) { new Effect.Appear(this.icon); } else if (! event.error && this.icon.visible()) { this.icon.hide(); } 
context:   validateInput : function(event) {    // Clear out old decorations.  It's easier to remove the decorations    // and then re-add them if the field is in error than it is to    // toggle them on or off at the end.             event.field.removeClassName("t-error");             if (this.label)    	this.label.removeClassName("t-error");          	var value = $F(event.field);  	var isBlank = (value == '');  	 	    event.error = false;  	   	 	  	this.validators.each(function(tuple) {  	  	  var acceptBlank = tuple[0];  	  var validator = tuple[1];  	    	  if (acceptBlank || !isBlank) {  	       	    validator(value, event);  	      	    // event.error is set by Tapestry.FormEvent.recordError().   	      	    if (event.error) throw $break;  	  }  	  	});  	  	if (event.error) {  	  event.field.addClassName("t-error");  	  	  if (this.label)  	    this.label.addClassName("t-error");  	}  	  	if (this.icon) {  	  if (event.error && ! this.icon.visible()) {  	    new Effect.Appear(this.icon);	  }	  else if (! event.error && this.icon.visible()) {		this.icon.hide();      }  	}  	  }
meta: 3915	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/3915/3708d3d7d4f1f3668f54533bf3e6ab479d5dfbe1/tapestry.js/clean/tapestry-core/src/main/resources/org/apache/tapestry/tapestry.js