YAHOO.namespace('com.metrojobb');

YAHOO.com.metrojobb.AutoComplete = function(autoComUrl) {
    var myQuery = document.getElementById("inputQuery");
    var region = document.getElementById("region");

    // Use an XHRDataSource
    var data = new YAHOO.util.XHRDataSource(autoComUrl);

    // Set the responseType
    data.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
    // Define the schema of the delimited results
    data.responseSchema = {
        recordDelim : ";",
        fieldDelim : ","
    };

    // Enable caching
    data.maxCacheEntries = 20;

    // Instantiate the AutoComplete
    var autoComplete = new YAHOO.widget.AutoComplete(myQuery, "result", data);
    autoComplete.animVert = false;
    autoComplete.autoHighlight = false;
    autoComplete.minQueryLength = 1;
    autoComplete.typeAheadDelay = 0.2;

    autoComplete.generateRequest = function(sQuery) {
        var level;
        if (region.options[region.selectedIndex].className.match(/country/)) {
            level = 1;
        } else {
            level = 2;
        }
        if (region.value == "" || isNaN(parseInt(region.value))) {
            return "?prefix=" + escape(sQuery) + "&r=-1&l=" + level;
        } else {
            return "?prefix=" + escape(sQuery) + "&r=" + region.value + "&l="
                    + level;
        }
    };

    return {
        data : data,
        autoComplete : autoComplete
    };
};
