﻿/******************************************
 * Autocompleter created by Exi (http://www.technobase.fm/member/1)
 * please find some information about on
 * http://blog.rarecore.eu/autocompleter-using-xajax.html
 ******************************************/

var rc_autocompleter_date = 0;
var rc_autocompleter_refresh = 0;
var rc_autocompleter_delay_stamp = 0;
var rc_active;

function rc_autocompleter_click(t, r, d, js) {
    //document.getElementById(t).value = r;
    cadenaArray = new Array();
    cadenaArray = js.split("#");
  //alert(cadenaArray[0]+"<-->"+cadenaArray[1]);
    var f="changeSearch('"+cadenaArray[0]+"','"+cadenaArray[1]+"','"+cadenaArray[2]+"','"+cadenaArray[3]+"')";
    //eval(alert(js));
    //eval(alert(f));
    eval(f);
    rc_autocompleter_blur2(d);
}

function rc_autocompleter_focus(d) {
    document.getElementById(d).style.visibility = 'visible';
}

function rc_autocompleter_blur(d) {
    window.setTimeout('rc_autocompleter_blur2(\'' + d + '\')', 300);
}

function rc_autocompleter_blur2(d) {
    document.getElementById(d).style.visibility = 'hidden';
    inicia_autocompleter();
}

function rc_autocompleter_call() {
    var now = new Date().getTime() / 1000;
    var s = parseInt(now);

    rc_autocompleter_date = now;
}

function rc_autocompleter_return(d, t, v, i) {
    if(t >= rc_autocompleter_refresh) {
        rc_autocompleter_refresh = t;
        document.getElementById(d).style.visibility = v;
        document.getElementById(d).innerHTML = i;
    }
}

function rc_autocompleter_move(id1, id2, keyc) {
    var child = document.getElementById(id2).childNodes[0].childNodes;
    var idx = -1;
    for(var i=0; i < child.length; i++) {
        if(child[i].className == 'li_hover') {
            idx = i;
        }

        child[i].className = '';
    }

    // return
    if(keyc == 13) {
        var text = '';

        if(child[idx].innerText) {
            text = child[idx].innerText;
        } else {
            text = child[idx].textContent;
        }
        //var js=child[idx].onclick;
        var js=child[idx].id;
        rc_autocompleter_click(id1, text, id2, js);

    } else {
        // up
        if(keyc == 40) {
            if(idx == (child.length - 1)) {
                idx = 0;
            } else {
                idx++;
            }

        // down
        } else if(keyc == 38) {
            idx--;

            if(idx < 0) {
                idx = (child.length - 1);
            }
        }

        child[idx].className = 'li_hover';
    }
}

function rc_microtime () {
    return new Date().getTime();
}

function rc_autocompleter(e, id1, id2) {
    if(!e) e = window.event;
    var keyc = e.keyCode || e.which;
    if(keyc == 38 || keyc == 40 || keyc == 13) {
        rc_autocompleter_move(id1, id2, keyc);

    } else {
        rc_autocompleter_delay_stamp = rc_microtime();
        rc_active = window.setTimeout('rc_autocompleter_delay(\'' + rc_autocompleter_delay_stamp + '\')', 100);
    }
}