/**
* $Id: searchBar.js,v 1.12 2009/04/01 09:31:29 eherrera Exp $
* @author Eber Herrera 
*/

function GSI_Widget_SearchBar(){
	
	this.name = 'searchbar';
	this.loadOrder = 1;
		
	var _mthis = this;
	
	var loadSteps = 1;
	
	this.getLoadSteps = function(){
		return loadSteps;
	}
	
	var load = function(){
		var tRes = true;
		try{
			if (typeof GSI=="undefined") return false;
			if ($('#input_search_sku').length !=1) {
				GSI.setError('Widget: '+_this.name+' -> template missing','WARNING');
				tRes = false;
				}
			return tRes;
			}
			catch(e){
			return false;
			}
		return true;
	};
	
	this.loader = function(on){
		if(on){
			$('#search-link-content').hide();
			$('#search-link-loader').show();
		}
		else{
			$('#search-link-loader').hide();
			$('#search-link-content').show();
		}
	};

	this.search = function(sku, callback){
		var searchFeedback = function(){
			_mthis.loader(false);
			if (GSI.se.data['error']) {
				drawError();
				callback();
				return false;
			}
			var tSku = GSI.se.data.response.docs[0]['manufacturer_sku'];
			var tRes = GSI.se.data.response.numFound + " " + GSI.dict.getText('search', 'items_found')+ " " + GSI.dict.getText('JSAPI', 'wait');
			drawResult(tRes);
			callback();
			//document.location.href='/item?sku='+tSku;
			document.location.href='/category?f_default='+sku;
		};
		if (!GSI.functions.isset(callback)) callback=function(){};
		_mthis.loader(true);
		GSI.se.search(searchFeedback, 'f_default='+sku+'&page_size=1');
	};
	
	var drawError = function(){
		drawResult(GSI.se.data['error']);
	};
	
	var drawResult = function(result){
			var hideToolTip = function(){
				$("#search-link-results").slideUp('fast');
			};
		
			$("#search-link-results").html(result).slideDown('fast');
			setTimeout(hideToolTip, 2000);
	};
	
	var onSearchSku = function(aSku){
		var searchFb=function(){};
		_mthis.search(aSku, searchFb);
		return false;
	}; 
	
	this.init = function(){
		if (!load()) {
			GSI.updateProgressBar(_mthis.name +" "+ GSI.dict.getText('JSAPI', 'widget_initiation_error'));
			return false;
			}
			
		$('#input_search_sku').keypress(function( e, keyCode ){
		    keyCode = keyCode || e.keyCode;
			if (keyCode==13) onSearchSku(this.value);
		}); 
		$('#search-link').click(function(){
			onSearchSku($('#input_search_sku').val());
		});
		
		_mthis.loaded=true;
		GSI.updateProgressBar(_mthis.name +" "+ GSI.dict.getText('JSAPI', 'widget_initiated'));
		return true;
	};
}
GSI_Widget_SearchBar.prototype=new GSI_Widget();

var tW = new GSI_Widget_SearchBar();
GSI.widgets.loadWidget(tW);