/**
 * This monitors an <input type="text"> field, and triggers a callback after a certain keyboard delay
 *
 * Simply call $(yourinput).delaytrigger(delay, callback);
 * 
 * @param	delay		Delay in milliseconds
 * @param callback	Function to trigger after delay
 */
(function($) {
	$.fn.delaytrigger = function(delay, callback) {
		$.fn.delaytrigger.callback = callback;
		$.fn.delaytrigger.delay = delay;
		
		this.bind("keyup", function(e) {
			//console.log("Got a keyup event");
			
			if(e.keyCode >= 16 && e.keyCode <= 20) {
				//console.log("Just a modifier key, I'm ignoring");
				return;
			}
			
			$.fn.delaytrigger.flag = new Date().getTime();
			setTimeout("$.fn.check('" + $.fn.delaytrigger.flag + "');",delay);
		});
	}
	
	$.fn.check = function(flag) {
		if(flag == $.fn.delaytrigger.flag) {
			//console.log("It's been " + $.fn.delaytrigger.delay + " milliseconds, I'm calling the callback");
			$.fn.delaytrigger.callback.call(this);
		}
	}


})(jQuery);