
var Observer=new Class({Implements:[Options,Events],options:{periodical:false,delay:1000},initialize:function(el,_2,_3){this.setOptions(_3);this.addEvent("onFired",_2);this.element=$(el)||$$(el);this.value=this.element.get("value");if(this.options.periodical){this.timer=this.changed.periodical(this.options.periodical,this);}else{this.element.addEvent("keyup",this.changed.bind(this));}},changed:function(){var _4=this.element.get("value");if($equals(this.value,_4)){return;}
this.clear();this.value=_4;this.timeout=this.onFired.delay(this.options.delay,this);},setValue:function(_5){this.value=_5;this.element.set("value",_5);return this.clear();},onFired:function(){this.fireEvent("onFired",[this.value,this.element]);},clear:function(){$clear(this.timeout||null);return this;}});var $equals=function(_6,_7){return(_6==_7||JSON.encode(_6)==JSON.encode(_7));};