jQuery.fn.extend({delayedObserver:function(a,b){$this=$(this);if(typeof window.delayedObserverStack=="undefined"){window.delayedObserverStack=[]}if(typeof window.delayedObserverCallback=="undefined"){window.delayedObserverCallback=function(c){observed=window.delayedObserverStack[c];if(observed.timer){clearTimeout(observed.timer)}observed.timer=setTimeout(function(){observed.timer=null;observed.callback(observed.obj.val(),observed.obj)},observed.delay*1000);observed.oldVal=observed.obj.val()}}window.delayedObserverStack.push({obj:$this,timer:null,delay:a,oldVal:$this.val(),callback:b});stackPos=window.delayedObserverStack.length-1;$this.keyup(function(){observed=window.delayedObserverStack[stackPos];if(observed.obj.val()==observed.obj.oldVal){return}else{window.delayedObserverCallback(stackPos)}})}});