
var	arrowHandled = false;
var getUserTextEntered = null;
YAHOO.example.BasicRemote = function() { 

  // Use an XHRDataSource 
  var oDS = new YAHOO.util.XHRDataSource("/suggest"); 
  oDS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
  oDS.maxCacheEntries = 0; 
   
  oDS.responseSchema = {
      resultsList : "Response",
      fields : [
          { key: "name" }
      ]
  };
   
// Instantiate the AutoComplete 
var oAC = new YAHOO.widget.AutoComplete("searchInput", "autocompleteContainer", oDS); 

oAC.typeAhead = true;
oAC.applyLocalFilter = false;
oAC.autoHighlight = false;
oAC.queryDelay = 0.3;
oAC.useShadow = false;
oAC.minQueryLength=1;
oAC.alwaysShowContainer=false;
oAC.maxResultsDisplayed=10;
oAC.useIFrame = false;
oAC.allowBrowserAutocomplete = false;
        
oAC.handleResponse = function( sQuery , oResponse , oPayload ) {
   if((this instanceof YAHOO.widget.AutoComplete) && this._sName) {
    this._populateList(sQuery, oResponse, oPayload);
    }
  };
         
	oAC.formatResult = function(oResultData, sQuery, sResultMatch) {
	var sKey = sResultMatch,
	fname = oResultData[0],
	query = sQuery.toLowerCase(),
	displayfname;
	var leftSpaceRemoved = ltrim(query);
	fnameMatchIndex = fname.toLowerCase().indexOf(leftSpaceRemoved);

    if(fnameMatchIndex > -1) { 
        displayfname = highlightMatch(fname, leftSpaceRemoved, fnameMatchIndex); 	            
    } 
    else { 
        displayfname = fname; 
    } 
 return (displayfname)
};

//remove any leading white space
 function ltrim(str){
      return str.replace(/^\s+/, '');      
  }


// Helper function for the formatter 
var highlightMatch = function(full, snippet, matchindex) {	    	    	    
return full.substring(0, matchindex) +  
        "<span class='match'>" +  
        full.substr(matchindex, snippet.length) +  
       "</span>" + 
       full.substring(matchindex + snippet.length); 
}; 


YAHOO.util.Event.addListener("searchInput", "keyup", function(pEvent) {
var oEvent = (window.event) ? event : pEvent;
getUserTextEntered = $jq(this).val();
	if(oEvent.keyCode == 13) {
		element = document.getElementById("autocompleteContainer");
		element.style.display="none";
		document.searchBox.submit();
	}
});

var itemSelectHandler = function(sType, aArgs) {
	element = document.getElementById("autocompleteContainer");
	element.style.display="none";
	document.searchBox.submit();
	$jq('#omnitureTypeaheadUsed').data('flgTypeaheadUsed', 'YES');
	setOmnitureClick();
};
oAC.itemSelectEvent.subscribe(itemSelectHandler);

var itemArrowToHandler = function() {
	$jq('#omnitureTypeaheadUsed').data('flgTypeaheadUsed', 'YES');
	setOmnitureClick();
	arrowHandled = true;
};
oAC.itemArrowToEvent.subscribe(itemArrowToHandler);

function setOmnitureClick() {
	s.prop21 = $jq('#omnitureTypeaheadUsed').data('flgTypeaheadUsed');
	s.prop2 = getUserTextEntered;
	if(arrowHandled == false){
		s.t();
	}
}

oAC.generateRequest = function(sQuery) {	
	var salesearchcheck = YAHOO.util.Dom.get('SALESEARCH');

  if (salesearchcheck != null)
  {
    return "?query=" + sQuery + "&saletree=true";
  }
  else
  {
    return "?query=" + sQuery ;
  }
};
	     
  return {
      oDS: oDS, 
      oAC: oAC 
  }; 
}(); 
 	

