
  var req;

  //////////////////////////////////////////////////////////////////////////
  // ajax_seach                                                           //
  //////////////////////////////////////////////////////////////////////////
  function ajax_seach( xml_page, searchterm ) {

    if ( (window.XMLHttpRequest) || (window.ActiveXObject) ) {

      // Called from searchbox (page element)
      if ( document.getElementById("box_search_matches") ) {
        var ajax_box_search_matches = document.getElementById("box_search_matches");

        if ( searchterm.length > 2 ) {
          xml_page_full = xml_page + '?term=' + searchterm + '&crit=*';
          loadAjaxResult( xml_page_full );
        }
        else {
          ajax_box_search_matches.innerHTML = "";
        }

      }

      // Called from searchpage
      else  {

        var ajax_box_search_matches = document.getElementById("box_search_matches_2");
        //ajax_box_search_matches.innerHTML += 'calling...ok<br>';
        var ajax_form_crit = document.searchform.crit;

        var param_crit = '';
        //ajax_box_search_matches.innerHTML += 'init param... ok<br>';
        if ( ajax_form_crit.length > 0 ) {
          //ajax_box_search_matches.innerHTML += 'length > 0 ... ok<br>';
          for (c=0; c < ajax_form_crit.length; c++) {
            if ( ajax_form_crit[c].checked == true ) {
              if ( param_crit != '' ) { param_crit += ',' };
              param_crit += ajax_form_crit[c].value;
            }
          }
        }
        else {
          //ajax_box_search_matches.innerHTML += 'length = 0 ... ok<br>';
          if ( ajax_form_crit.checked == true ) {
            param_crit += ajax_form_crit.value;
          }
        }

        if ( (searchterm.length > 2) && (param_crit != '') ) {
          xml_page_full = xml_page + '?term=' + searchterm + '&crit=' + param_crit;
          //alert(xml_page_full);
          loadAjaxResult( xml_page_full );
        }
        else {
          if ( param_crit == '' ) {
            ajax_box_search_matches.innerHTML = "Geen criteria geselecteerd...";
          }
          else {
            ajax_box_search_matches.innerHTML = "";
          }
        }

      }

    }

  }
  //////////////////////////////////////////////////////////////////////////



  //////////////////////////////////////////////////////////////////////////
  // loadAjaxResult                                                       //
  //////////////////////////////////////////////////////////////////////////
  function loadAjaxResult( xml_page ) {

  	if (req && (req.readyState == 2 || req.readyState == 3)) {
  	  req.abort();
  	}

  	loadXMLDoc( xml_page );

  }



  //////////////////////////////////////////////////////////////////////////
  // loadXMLDoc                                                           //
  //////////////////////////////////////////////////////////////////////////
  function loadXMLDoc( url ) {

    if (window.XMLHttpRequest) {
    	req = new XMLHttpRequest();
      req.onreadystatechange = processReqChange;
      req.open("GET", url, true);
      req.send(null);
    }
    else if (window.ActiveXObject) {
      req = new ActiveXObject("Microsoft.XMLHTTP");
      req.onreadystatechange = processReqChange;
      req.open("GET", url, true);
      req.send();
    }

  }
  //////////////////////////////////////////////////////////////////////////



  //////////////////////////////////////////////////////////////////////////
  // processReqChange                                                     //
  //////////////////////////////////////////////////////////////////////////
  function processReqChange() {

    if (req.readyState == 4) {
      if (req.status == 200) {
        processResults();
      }
      else {
      	alert("Fout opgetreden tijdens communicatie met server:\n" + req.statusText);
      }
    }

  }



  //////////////////////////////////////////////////////////////////////////
  // processResults                                                       //
  //////////////////////////////////////////////////////////////////////////
  function processResults() {

    var items = req.responseXML.getElementsByTagName("result");
    if ( items.length != 0 ) {
      for (var i = 0; i < items.length; i++) {
    		result_count = items[i].firstChild.data;
      }
    }

    if ( document.getElementById("box_search_matches") ) {
      var ajax_box_search_matches = document.getElementById("box_search_matches");
      ajax_box_search_matches.style.display = 'block';
      doMove( result_count );
    }
    else {
      //ajax_box_search_matches.innerHTML += 'processResults ... ok<br>';
      var ajax_box_search_matches = document.getElementById("box_search_matches_2");
      ajax_box_search_matches.innerHTML = result_count + " pagina's gevonden";
    }

    //alert(ajax_box_search_matches.offsetHeight);
    //ajax_box_search_matches.innerHTML += result_count + " pagina's gevonden";

  }
  //////////////////////////////////////////////////////////////////////////


  function doMove() {

    var ajax_box_search_matches = document.getElementById("box_search_matches");
    var ajax_box_search = document.getElementById("box_search");

    if ( parseInt(ajax_box_search_matches.offsetHeight) < 30 ) {

      ajax_box_search_matches.style.height = ajax_box_search_matches.offsetHeight + 1;
      ajax_box_search.style.height = 100 + ajax_box_search_matches.offsetHeight + 1;
      setTimeout(doMove, 30);             // call doMove() in 20 msec

    }
    else {

      if ( result_count == 1 ) {
        ajax_box_search_matches.innerHTML = result_count + " pagina gevonden";
      }
      else {
        ajax_box_search_matches.innerHTML = result_count + " pagina's gevonden";
      }



    }

  }