var CChangeByIdle = Class.create();
CChangeByIdle.prototype = {
	initialize: function(elem, timeout, callback) {
		this.elem = elem;
		this.timeout = timeout;
		this.callback = callback;
		
		var obj = this,
			eventName = elem.type=='select-one'? 'change' : 'keyup';
		Event.observe(elem, eventName, function(){
			if(obj.timer) window.clearTimeout(obj.timer);
			obj.timer = window.setTimeout( function(obj){
				return function(){
					obj.runCallback();
				}
			}(obj), obj.timeout);
		});
	},//---------------------------------------------------------------------
	
	runCallback: function()
	{
		window.clearTimeout(this.timer);
		this.timer = null;
		this.callback();
	},//---------------------------------------------------------------------
	
	elem: null,		// элемент, для кот-го обрабатывается событие onchange
	timer: null,	// HANDLER таймера
	timeout: 0,		// задерка по кот-й выполняется callback функция
	callback: null
};
/////////////////////////////////////////////////////////////////////////////
