////////////////////////////////////////////////////////////////////////////////
// project    : XOS-Shop, open source e-commerce system
//              http://www.xos-shop.com
//
// template   : osc-cb
// version    : 1.0.2 for XOS-Shop version 1.0 rc3
// descrip    : oscommerce default template with css-buttons and tables for layout                                                                 
// filename   : quick_search_suggest.js
// author     : Hanspeter Zeller <hpz@xos-shop.com>
// copyright  : Copyright (c) 2009 Hanspeter Zeller
// license    : Released under the GNU General Public License, see LICENSE.txt
//
// note       : This script is distributed in the hope that it will be useful,
//              but WITHOUT ANY WARRANTY; without even the implied warranty of
//              MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//              GNU General Public License for more details.   
////////////////////////////////////////////////////////////////////////////////
/* $Id: quick_search_suggest.js,v 1.0.2 2009/04/23 09:45:16 hp Exp $ */

function quick_search_suggest(input_id, output_id, url) {

    var input_element = document.getElementById(input_id);  
    var output_element = document.getElementById(output_id);

    String.prototype.trim = function() {
      return this.replace(/^\s+|\s+$/g,"");
    }
    
    request_suggest = function() {
      
      url_data = encodeURI(url + input_element.value.trim());  
      http_request = false; 
      
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
          http_request.overrideMimeType("text/html");
        }
      } else if (window.ActiveXObject) { // IE
        try {
          http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {}
        }
      }

      if (!http_request) {
        alert("Ende : Kann keine XMLHTTP-Instanz erzeugen");
        return false;
      }     
     
      http_request.onreadystatechange = response_processing;
      http_request.open('GET', url_data, true);
      http_request.send(null);
    };
       
    function response_processing() {
      if (http_request.readyState == 4) {
        if (http_request.status == 200) {
          output_element.innerHTML = http_request.responseText;
          output_element.style.visibility = 'visible';
        } else {
          alert("Bei dem Request ist ein Problem aufgetreten.");
        }
      }
    }    

    input_element.onkeyup = function(e) {
      if(input_element.value.trim().length > 2) {
        request_suggest();
      } else {
        output_element.style.visibility = 'hidden'
      }
    }; 
    
    input_element.onblur = function(e) {
      setTimeout(function() {
        output_element.style.visibility = 'hidden';
      }, 500);
    };
    
    input_element.onfocus = function(e) {
      if(input_element.value.trim().length > 2) {
//        request_suggest();
        output_element.style.visibility = 'visible';
      }
    };
};
