
var ezSearchTimer = null;

var ezInitSearchBox = function(){
    ezQuery("#ezsearch-string").attr("autocomplete", "off");
    
    ezQuery("#ezsearch-string").bind("blur", function(event){
        ezQuery("#ezTypeAhead").css("display", "none");
    });
    
    ezQuery("#ezTypeAhead").bind("blur", function(){
        ezQuery("#ezTypeAhead").css("display", "none");
    });
    
    ezQuery("#ezsearch-string").bind("keydown", function(event){
        var selected = ezQuery("#ezTypeAhead a.selected");
        
        // The up/down key events
        if (event.keyCode == 38 || event.keyCode == 40){
           if (selected.length > 0){
                if (event.keyCode == 38) {
                    selected = selected.prev();//up
                }else{
                    selected = selected.next();//down
                }
            }
            
            if (selected.length == 0){
                if (event.keyCode == 38) {
                    selected = ezQuery("#ezTypeAhead a:last-child");
                }else{
                    selected = ezQuery("#ezTypeAhead a:first-child");
                }
            }
            
            if (selected.length == 0) {
                return;
            }
            
            ezQuery("#ezTypeAhead").css("display", "block");
            selected.addClass("selected").siblings().removeClass("selected");
            ezQuery("#ezsearch-string")[0].value = selected[0].text;
            
        // Any other keys pressed
        }else{
            if (ezSearchTimer != null){
                clearTimeout(ezSearchTimer);
            }
            ezSearchTimer = setTimeout(ezGetAutoCompleteData, 300);
        }
    });
};

var ezAutoCompleteDataCallback = function(data, textStatus){
    //var el = ezQuery(".ez-typeAhead-list");
    var el = ezQuery("#ezTypeAhead");
    var list = data.ac.q;
    var content = "";
    
    if (list.length > 0){
        el.css("display", "block");
    }else{
        el.css("display", "none");
    }
    
    for (var i = 0; i < list.length; i+=1){
        var url = ezAutocompleteSearchUrl + "q=" + list[i];
        content += "<a href='' onmousedown='window.location=\""+ url + "\"'>" + list[i] + "</a>"
    }
    
    el.each(function(){
        this.innerHTML = content;
    });
};

var ezGetAutoCompleteData = function(){
    var url = ezAutocompleteServiceUrl + encodeURIComponent(ezQuery("#ezsearch-string")[0].value);
    var script = '<script type="text/javascript" src="'+ url + '"></script>';
    var scriptTag = ezQuery(script);
    ezQuery("body").append(scriptTag);
};

