/**
 * Class for creating quick search listing.
 * @class This is the Quick Search class.  
 *
 * @param {Array} conf
 *
 * @param {String} conf.id The id search input element
 * @param {String} conf.container The container of quick search result 
 * @param {String} conf.minLength The min length of query string
 * @param {String} conf.url The URL to script
 * @param {String} conf.limit The number listings to display in the result box
 *
 */
esyndicat.search = function(conf)
{
	var obj = (-1 != conf.id.indexOf('#')) ? $(conf.id) : $('#' + conf.id);
	var objCon = (-1 != conf.container.indexOf('#')) ? $(conf.container) : $('#' + conf.container);
	var minLength = conf.minLingth ? conf.minLingth : 4;
	var url = conf.url ? conf.url : 'get-search.php';
	var searchFields = conf.searchFields ? conf.searchFields : 'domain,title,description,zip,tipologiazienda';
	var limit = conf.limit ? conf.limit : 5;

	var containerHidden = false;	
	var timeOutHandler = null;

	this.init = function()
	{
		obj.keydown(function()
		{
			if(obj.val().length >= minLength)
			{
				var qUrl = url;

				qUrl += '?q=' + obj.val();
				qUrl += '&fields=' + searchFields;
				qUrl += '&limit=' + limit;

				$.getJSON(qUrl, function(listings)
				{
					printElement(listings);

					esyndicat.display(objCon, 'show');
				});
			}
			else
			{
				esyndicat.display(objCon, 'hide');
			}
		});

		objCon.mouseout(function()
		{
			containerHidden = true;
			timeOutHandler = setTimeout(hide, 3000);
		});

		objCon.mouseover(function()
		{
			clearTimeout(timeOutHandler);
			esyndicat.display(objCon, 'show');
		});
	};

	var hide = function()
	{
		if(containerHidden)
		{
			esyndicat.display(objCon, 'hide');
			containerHidden = false;
		}
	};

	var printElement = function(listings)
	{
		var html = '';

		objCon.empty();

		for(var i = 0; i < listings.length; i++)
		{
  var url = esyndicat.conf.base + esyndicat.conf.dir + listings[i].url +'-l'+ listings[i].id +'.html';
			html += '<div align="left" style="underline:none; background-color:#ffffff;" class="quickSearchItem">';
                        html += '<a href="'+ url +'"><img style="margin-right:3px;border:#808080 1px solid" width="30" height="25"  align="left" src="http://open.thumbshots.org/image.pxf?url='+ listings[i].domain +'"</a>';
                        html += '<a href="'+ url +'"><font color="#0084ff">'+ listings[i].title.toUpperCase() +' : </font></a>';
			html += '<a href="'+ url +'"><font color="#494949">'+ listings[i].description +'</font></a>';
			
                        html += '</div>';
            
		}

		objCon.append(html);
	};
}
