
Ext.onReady(function(){

	var searchTask = new Ext.util.DelayedTask();
	
	var sendRequest = function(params, success, failure, callback){
		Ext.Ajax.request({
			 url: '/get_data.php'
			,params: params
			,success: function(response){
				if(Ext.isEmpty(response.responseText)){
					//alert('Пустой ответ сервера: «'+response.responseText+'»');
				}
				if(!Ext.isEmpty(success)) success(response);
			}
			,failure: function(response){
				alert('Ошибка.<br />Проверьте соединение с интернетом.<br />'+response.responseText);
				if(!Ext.isEmpty(failure)) failure(response);
			}
			,callback: function(response){
				if(!Ext.isEmpty(callback)) callback(response);
			}
		});
	}
	
	sResultRepaint = function(item){
		var itemEl = Ext.get(item);
		var xy = itemEl.getXY();
		var w = itemEl.getWidth();
		var h = itemEl.getHeight();
		sResult.setXY([xy[0], xy[1]+h])
		sResult.setWidth(w);
		if(sResult.dom.innerHTML == '')
			sResult.setHeight(0);
		else
			sResult.setHeight(300);
	}
	
	
	
	var search = Ext.get('search');
	if(!Ext.isEmpty(search)){
		//search.focus();
		var sResult = Ext.DomHelper.insertAfter(search, {
			 tag: 'div'
			,id: 'search-result'
			,cls: 'search-result'
		}, true);
		
		search.on('keyup', function(e){
			var item = e.getTarget();
			//e.getKey();
			//sResult.dom.innerHTML = e.getKey();
			if(!Ext.isEmpty(searchTask)) searchTask.cancel();
			if(item.value.length >= 3){
				searchTask.delay(500, function(){
					sendRequest({
							 type: 'search'
							,val: item.value
						}
						,function(response){
							sResult.dom.innerHTML = response.responseText;
							sResultRepaint(item);
						}
					)
				}, this);
			} else {
				sResult.dom.innerHTML = '';
				sResultRepaint(item);
			}
		});
	}
	
});

