
YAHOO.example.BasicRemote = function() {
	var oDS = new YAHOO.util.XHRDataSource("/");

	// Set the responseType
	oDS.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
	// Define the schema of the delimited results
	oDS.responseSchema = {
		recordDelim: "\n",
		fieldDelim: "\t"
	};
	// Enable caching
	oDS.maxCacheEntries = 10;

	// Instantiate the AutoComplete
	var oAC = new YAHOO.widget.AutoComplete("query", "queryAutocomplete", oDS);

	oAC.maxResultsDisplayed = 20;
	oAC.animVert = false;
	oAC.autoHighlight = false;
	//oAC.typeAhead = true;
	//oAC.animSpeed = 0;
	//oAC.queryDelay = .5;

	oAC.formatResult = function(oResultData, sQuery, sResultMatch) { 
		syntax = oResultData[0];
		keyword = syntax.substring(0, syntax.indexOf("{") );
		if ( keyword == '' ) {
			keyword = syntax;
			arguments = '';
		} else {
			arguments = syntax.substring( syntax.indexOf("{") );
		}
		title = oResultData[1];

		return '<div class="yui-ac-left"><strong>' + keyword + '</strong><em>' + arguments + '</em></div> <div class="yui-ac-right">' +  title + '</div>';
	};

	oAC.generateRequest = function(sQuery) {
        return "http://de.serchilo.net/?action=suggestions_text&query=" + sQuery ;
  };

	oAC.itemSelectEvent.subscribe( function(sType, aArgs) {
   	var myAC = aArgs[0]; // reference back to the AC instance
		var elLI = aArgs[1]; // reference to the selected LI element
		var oData = aArgs[2]; // object literal of selected item's result data
        
		// keyword goes up to first "{"
		myAC.getInputEl().value = oData[0].substring(0, oData[0].indexOf("{") );
		if (oData[0].indexOf("{") > 0) {
       myAC.getInputEl().value = oData[0].substring(0, oData[0].indexOf("{") );
		} else {
       myAC.getInputEl().value = oData[0];
		}
	});
	
	return {
		oDS: oDS,
		oAC: oAC
	};
}();

