YAHOO.namespace('Daiwai');
YAHOO.Daiwai.ClubSearch = function (selectCallback, dataSource, clubId) {

    if(!selectCallback) {
        // @todo implement default callback function
        alert("selectCallback === null");
    }

    var dataSource = dataSource ? dataSource : "/index.php?user-searchclub2-json";
    var clubId = clubId ? clubId : "0";

    var itemSelectCallback = selectCallback;
    
    // set up xhr data source
    var oDS = new YAHOO.util.XHRDataSource(dataSource);
    oDS.responseSchema = {
        resultsList: "response",
        fields: [
            {key: "name"},
            {key: "id"},
            {key: "avatar"}
            ]
    };
    
    
    oDS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
    oDS.maxCacheEntries = 100;
    // instantiate AutoComplete
    var oAC = new YAHOO.widget.AutoComplete("club_search_input","club_search_container", oDS);
    oAC.resultTypeList = false;
    oAC.suppressInputUpdate = true;
    oAC.generateRequest = function(sQuery) {
        return "&query=" + sQuery;
    };

    var getImgUrl = function(oClub) {

        return '<img src="' + oClub.avatar + '" width="24" class="user_search_img" />';
    }

    oAC.formatResult = function(oResultItem, sQuery) {
        // This was defined by the schema array of the data source
        var sName = oResultItem.name;
        var sMarkup = getImgUrl(oResultItem) + " " + sName;
        return (sMarkup);
    };
    
    oAC.itemSelectEvent.subscribe(itemSelectCallback);
};
