/**
 * LiveSearch (requires the dimensions plug-in)
 *
 * Applies "live search" to input-fields
 *
 * Usage: jQuery('#q').liveSearch({ajaxURL: '/ajax/search/?q='});
 *
 * @class liveSearch
 * @param {Object} conf, custom config-object
 *
 * Copyright (c) 2008 Andreas Lagerkvist (andreaslagerkvist.com)
 * Released under a GNU General Public License v3 (http://creativecommons.org/licenses/by/3.0/)
 */
// Hide all search-results if you click outside them

$(document.body).click(function(event) {
/*
	if(!$(event.target).parents('div.live-search-results').length) {
		jQuery('div.live-search-results').slideUp(300);
	} */
});
jQuery.fn.liveSearch = function(conf) {
	var config = jQuery.extend({
		ajaxURL: '/mod/search-results.php?q='
	}, conf);

	return this.each(function() {
		var input		= jQuery(this);
		var tmpOffset	= input.offset();
		var inputDim	= {
			left:	tmpOffset.left,
			top:	tmpOffset.top,
			width:	input.outerWidth(),
			height:	input.outerHeight()
		};



		//var results			= jQuery('<div class="live-search-results">Loading...</div>').appendTo(document.body);
		
		var $results = jQuery("#live-search-results");
				
		//var resultsStuff		= parseInt(results.css('paddingLeft'), 10) + parseInt(results.css('paddingRight'), 10) + parseInt(results.css('borderLeftWidth'), 10) + parseInt(results.css('borderRightWidth'), 10);
		//inputDim.topNHeight	= inputDim.top + inputDim.height;
		//inputDim.widthNStuff	= inputDim.width - resultsStuff;
		/*
		$results.css({
			position:	'absolute',
			left:		inputDim.left +'px',
			top:		inputDim.topNHeight +'px'
		});
		*/

		input.keyup(function() {
			if(this.value != this.lastValue && jQuery("#searchauto").val().length > 1) {

				hideInit();
				input.addClass('ajax-loading');
				var q = this.value.trim().toLowerCase();
				var qbld = q.split( ' ' );
				var qbuild = '';
				for ( xx=0; xx < qbld.length; xx++ )
				{
					var putin = qbld[xx].replace( /[^a-zA-Z 0-9]+/g, '' );
					qbuild += putin + ',';
				}
				qbuild += this.form.per_page.value + ',' + this.form.sort_by.value;
				//alert( 'run it' + qbuild );


				q = qbuild;
				if(this.timer) {
					clearTimeout(this.timer);
				}

				this.timer = setTimeout(function() {
					//alert( 'honcho3' + config.ajaxURL +q );
					$results.html("Loading...");
					
					jQuery.get(config.ajaxURL +q, function(data) {
						input.removeClass('ajax-loading');

						if(data.length) {
							$results.html(data);
							execJSInDiv( 'changeCounters' );
						}
						else {
							//results.slideUp(300);
						}
					});
				}, 200);

				this.lastValue = this.value;
			}
		});
	});
};

