///////////////////////////////////////////////////////////
// AutoComplete
var oAC;
var noSelection = true;
YAHOO.example.BasicRemote = function() {
    // Use an XHRDataSource
    var oDS = new YAHOO.util.XHRDataSource("/assets/ysearch_cities.php");
    // Set the responseType
    oDS.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
    // Define the schema of the delimited results
    oDS.responseSchema = {
        recordDelim: "\n",
        fieldDelim: "\t",
		fields : ["name", "hotels", "id"]
    };
    // Enable caching
    oDS.maxCacheEntries = 5;

	// Instantiate the AutoComplete
    oAC = new YAHOO.widget.AutoComplete("static_search_text", "search_text_container", oDS);
    oAC.resultTypeList = false; 
	//oAC.forceSelection = true;
	oAC.formatResult = function(oResultData, sQuery, sResultMatch) { 
        return (sResultMatch + "<span style='font-size:9px; color:gray; font-style:italicl;'>&nbsp;" + oResultData.hotels + " hotels</span>"); 
    };
	// Define an event handler to populate a hidden form field
    // when an item gets selected
    var myHiddenField = YAHOO.util.Dom.get("static_search_city_id");
    var myHandler = 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
        
        // update hidden form field with the selected item's ID
        myHiddenField.value = oData.id;
		noSelection = false;
    };

    oAC.itemSelectEvent.subscribe(myHandler);
	oAC.textboxChangeEvent.subscribe(function() {
			if(!oAC.isContainerOpen() && noSelection) {
				setTimeout(function() { oAC.getInputEl().focus(); oAC.sendQuery(oAC.getInputEl().value);},10);
			} 
		}
	);

	oAC.unmatchedItemSelectEvent.subscribe(function() {
			noSelection = true; 
		}
	);

    return {
        oDS: oDS,
        oAC: oAC
    };
}();
