jQuery.fn.timedBind=function(b,c,d){c=c||{};var f={delay:0,buffer:0};c=jQuery.extend(f,c);if(c.delay||c.buffer){c.originalHandler=d}var g=function(a){return function(e){a.call(e.target,e)}};this.each(function(){var a=function(e){if(e.data.delay){setTimeout(g(d),e.data.delay,e)}if(e.data.buffer){if(e.data.lastCalled&&(e.timeStamp-e.data.lastCalled<e.data.buffer)){return}else{d.call(this,e);jQuery(this).bind(b,jQuery.extend(e.data,{lastCalled:new Date().getTime()}),a)}}};jQuery(this).bind(b,c,a)})};