
var current_url = window.location + "";
current_url = current_url.substring(0,current_url.indexOf('=') + 1);

/**
 * QuickSearch object
 *
 */
var QuickSearch = function()
{
	/**
	 * @var _inputTimeout
	 */
	var _inputTimeout;

	/**
	 * Initialisation
	 */
	this.init = function()
	{
		var _self = this;

		// Create dropdown
		$('#searchForm #q').keyup(function(){

			_self.status('input');

			clearTimeout(_inputTimeout);
			 
			_inputTimeout = setTimeout(function(){

				_self.search();

			}, 500);

		});

		// Init table sorter
		this.tableSorter();
	}

	/**
	 * Table Sorter
	 */
	this.tableSorter = function()
	{
		// Create tablesorter
		$(".tablesorter").tablesorter({

			headers: {
				0: { sorter: false},
				5: { sorter: false},
				6: { sorter: false}
			}
		});
	}

	/**
	 * Search
	 */
	this.search = function()
	{
		//Set Search Category
		var _self = this;
		var q = $('#q').val();
		
		if( '' != q )
		{
			this.status('searching');
	
			$('#quick_search_keyword').html(q);
		
			$.getJSON('/post_data/post_data_quicksearch.php', {search_value: q}, function(data){
			
				$('table.tablesorter tbody').html('');
	
				if (data) {
	
					for( var i=0; i < data.length; i++ )
					{
						var product = data[i];
	
						_self.addProduct(product);
					}
					
					//Printing Products Finished:
					//Set Total Results Returned:
					_self.setResultCount(data.length);

					// Table sorter
					//_self.tableSorter();

					//Wait 1 second and start loading photos
					_self.status('images');
					setTimeout(function(){

						_self.loadImages();

					}, 2000);
				}
			});		
		}
		else
		{
			this.status('');
		}
	}

	/**
	 * Add Product
	 */
	this.addProduct = function(product_row)
	{
		var product_str = '';
			  
		product_str += '<tr>';
		product_str += '<td class="pcImage"><img src="/images/products/no_image_loading.png" border="0" hspace="10" vspace="5" class="border_grey" style="min-width:30px;" src_to_load="' + product_row.image + '"/></td>';
		product_str += '<td class="pcName"><b><a href="/' + escape(product_row.name) + '">' + product_row.name + '</a></b><br/>' + product_row.description;
		
		// Check if to Add Smazoo Number 1
		if( '1' == product_row.smazoo_rank && '' != product_row.smazoo_url )
		{
			product_str += '<br/><a href="' + product_row.smazoo_url + '" target="_blank"><img src="http://www.smazoo.com/images/api/rank_best.jpg" class="smazooBestRank" /></a>';
		}
	
		product_str += '</td>';
		product_str += '<td class="pcStock">&nbsp;</td>';
		product_str += '<td class="pcPriceChange text_small">&nbsp;</td>';
		product_str += '<td class="pcPrice"><b>$' + product_row.sellprice +'</b></td>';
		product_str += '<td class="pcInfo"><a href="/' + escape(product_row.name) + '" class="buttonInfo">Info</a></td>';
		product_str += '<td class="pcBuy"><a href="/page_purchase_engine.php?action=add&id=' + product_row.prodid + '" onclick="return purchaseProduct(\'' + product_row.prodid + '\',\'' + product_row.stock + '\');" class="buttonInfo">Add</a></td>';
		product_str += '</tr>';

		$('table.tablesorter tbody').append(product_str); 
	}

	/**
	 * Load Images
	 */
	this.loadImages = function()
	{
		$('table.tablesorter tbody img').each(function(i, val)
		{
			val = $(val);

			if(val.attr('src_to_load') != null)
			{
				val.attr('src', val.attr('src_to_load'));
			}
		});
		
		this.status('complete');
	}

	/**
	 * Status
	 */
	this.status = function( status )
	{
		obj_status = $('#search_status');

		switch (status){
			
			case 'waiting':
			case '':
			
				obj_status.html('Waiting for user input');
				
			break;
	
			case 'input':
			
				obj_status.html('<img src="/images/loading/loadingAnimation.gif" width="16" height="16" align="texttop"/> Reading user Input');
				
			break;
			
			case 'searching':
			
				obj_status.html('<img src="/images/loading/loadingAnimation.gif" width="16" height="16" align="texttop"/> Searching Database');
				
			break;
			
			case 'images':
			
				obj_status.html('<img src="/images/loading/loadingAnimation.gif" width="16" height="16" align="texttop"/> Loading Images');
				
			break;
			
			case 'complete':
			
				obj_status.html('<img src="/images/icons/tick_green_16_16.png" width="16" height="16" align="absmiddle"/> Search Complete');
				
			break;
			
		}
	}

	/**
	 * Set Result Count
	 */
	this.setResultCount = function(count_value)
	{
		$('#quick_search_result_count').html(" - [" + count_value + " results]");
	}

	this.init();
}


$(document).ready(function(){

	var quickSearch = new QuickSearch();

});