(function ($) 
	{

	AjaxSolr.AutocompleteWidget = AjaxSolr.AbstractFacetWidget.extend({

	init: function () {
		var self = this;
		$(this.target).find('input').bind('keydown', function(e) {
			if (self.requestSent === false && e.which == 13) {
				var value = $(this).val();
				console.log(selt);
				if (value && self.add(value)) {
					self.manager.doRequest(0);
				}
			}
		}); 
		
	},

	afterRequest: function () 
		{		
		$(this.target).find('input').val('');						//Törli az input mezőt
		
		var self = this;
		//var response = this.manager.response;						//Ha azt akarjuk, hogy a manager response -ban keressen
		//ez a callback függvény, ami feldolgozza a response-t és egy tömbbe rakja a megformázott találatokat
		/*var callback = function (response) 
			{
			var list = [];
			var out = [];
			out['nev'] = 'Név'; 
			out['megye'] = 'Megye'; 
			out['varos'] = 'Város'; 
			out['kategoria'] ='Kategória'; 
			out['cim'] = 'Cím';

		for (var i = 0; i < self.fields.length; i++) 
			{
			var field = self.fields[i];
			for (var facet in response.facet_counts.facet_fields[field]) 
				{
				list.push(
					{
		            field: field,
				    value: facet,
		            text: facet + ' (' + response.facet_counts.facet_fields[field][facet] + ') - ' + out[field]
					});
				}
			}*/

//callback kezdete
		var callback = function (response) 
			{
			var list = [];
			for (var i = 0; i < self.fields.length; i++) 
				{
				var field = self.fields[i];
				for (var facet in response.facet_counts.facet_fields[field]) 
					{
					list.push(
						{
			            field: field,
					    value: facet,
			            text: facet + ' (' + response.facet_counts.facet_fields[field][facet] + ')'
						});
					}
				}
	
//sima local autocomplete! Itt lehetne megadni a jquery autocomplete listáját 
	      self.requestSent = false;
		  $(self.target).find('input').unautocomplete().autocomplete(list, 
		  {        
			formatItem: function(facet) 
				{
				return facet.text;
				}
				
			}).result(function(e, facet) {
        self.requestSent = true;		
        if (self.manager.store.addByValue('fq', facet.field + ':' + facet.value)) 
			{
			self.manager.store.addByValue('fq', facet.field + ':' + facet.value)
			self.manager.doRequest(0);			
			}
      
	  }).bind('keydown', function(e) {
        if (self.requestSent === false && e.which == 13) {
          var value = $(this).val();
          if (value && self.add(value)) {
            self.manager.doRequest(0);
          }
        }		
      });
    } 

// callback vége

	//Összegyűjti a fieldeket, amiket az inicializálásnál adtunk meg és összeállítja a kereső url-t
    var params = [ 'q=*:*&facet=true&facet.limit=-1&facet.mincount=1&json.nl=map' ];
    for (var i = 0; i < this.fields.length; i++) {
      params.push('facet.field=' + this.fields[i]);
    }
	//kereső url-t kiegészíti a host-tal, elküldi és meghaívja a feldolgozó callback függvényt
    jQuery.getJSON(this.manager.solrUrl + 'select?' + params.join('&') + '&wt=json&json.wrf=?', {}, callback);
  }
});

})(jQuery);
