var inp = document.getElementById('categoryfinderfield');
if (inp) {
    inp.setAttribute("autocomplete", "off");
}

var cat_finder_timer;
var last_val = '';
/* when the input recives focus, we attach the event */
tm_handler = function() {
//    console.log("callback called");
    var val = document.getElementById("categoryfinderfield").value;
    if (val != "" && val != last_val) {
        last_val = val;
//        console.log("getting results for ", val);
        get('searchcat.html', {'query': val}, function(res) { 
//            console.log(" Got response back");
            var val = document.getElementById("categoryfinderfield").value;

            var res_box = document.getElementById('categoryfinderresults');
            res_box.innerHTML = res.responseText 
                + '<p><a href= "http://katalog.abcsok.no/index.html?q=' + val + '">G&aring; til katalogs&oslash;k </a>'
                + '<span class="sep">|</span>'
                + '<a href="#" id="closefinderresults"> Lukk</a></p>'
            
            res_box.style.display = 'block';
            var closer = document.getElementById('closefinderresults');
            if (closer) {
                connect(closer, "onclick", function(e) {
                    stopEvent(e);
    
                    var res_box = document.getElementById('categoryfinderresults');
                    res_box.style.display = 'none';                
                });
            }
            var input = document.getElementById("tipscategoryfield");
            if(input) {
                /* We are on the tips-page, lets find all a elements in our list */
                var links = res_box.getElementsByTagName('a');
                for (var i = 0; i < links.length; i++) {
                    var a = links[i];
                    connect(a, "onclick", function(e) {
                        stopEvent(e);
                        
                        /* find value and update the form parent input */
                        
                        var parent_val = this.obj.parentNode.getElementsByTagName('input')[0].value;
                        log(parent_val);
                        
                        var d = document.getElementById('currentcategory');
                        d.getElementsByTagName('input')[0].value = parent_val;
                        /* copy the a node (this.obj) into the other place */
                        d.removeChild(d.getElementsByTagName("span")[0]);
                        d.appendChild(this.obj.cloneNode(true));
                        /* hide box as well */
                        setTimeout(function() {
                            var res_box = document.getElementById('categoryfinderresults');
                            res_box.style.display = 'none';                
                        }, 100);
                        
                        return false;
                    });
                }
            }
        }, function(err) { log(err); });
    } else if (val == "" && last_val != "") {
        /* Hide the popup, if visible */
        var res_box = document.getElementById('categoryfinderresults');
        res_box.style.display = 'none';
        last_val = "";
    }
};
connect('categoryfinderfield', "onkeypress", function(e) {
//    console.log("onkeypress fired", cat_finder_timer);
//     console.log(e.charCode || e.keyCode);
    if((e.charCode || e.keyCode) == 13) { stopEvent(e); }
    if(cat_finder_timer) {
        clearTimeout(cat_finder_timer);        
    }
//    console.log("  old timeout cleared, setting new");
    cat_finder_timer = setTimeout(tm_handler, 200);
//    console.log("     new timeout", cat_finder_timer);
});
