var url = "/cgi-bin/autocomplete/suggest.cgi?";

function autocomplete (sender, ev) {

   // Przetwarzanie jedynie nacini klawiszy alfanumerycznych.
   if (( ev.keyCode >= 48 && ev.keyCode <= 57 ) 
      ||  ( ev.keyCode >= 65 && ev.keyCode <= 90 )) {

      // Przygotowanie dania do serwera.
      var httpreq = getHTTPObject();
      var parms = "val=" + sender.value;
      httpreq.open("GET", url + parms, true);

      // Funkcja odpowiadajca.
      httpreq.onreadystatechange = function () {
         if (httpreq.readyState == 4) {
            var suggestion = httpreq.responseText;
            var txtAuto = document.getElementById ('txtAuto');

            if ((suggestion) && (txtAuto.value == original_text)) {
               // Przegldarki Firefox i Opera.
               if (document.getSelection) {
                  var initial_len = txtAuto.value.length;
                  txtAuto.value += suggestion;
                  txtAuto.selectionStart = initial_len;
                  txtAuto.selectionEnd = txtAuto.value.length; 
               }
               // Internet Explorer.
               else if (document.selection) {
                  var sel = document.selection.createRange ();
                  sel.text = suggestion;
                  sel.move ("character", -suggestion.length); 
                  sel.findText (suggestion);
                  sel.select ();
               }
            }
         }
      }
      httpreq.send (null);
   }
}
