//######## ein XMLHttpRequest- Object erzeugen
//  speichert eine Instanz von XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

// erzeugt eine XMLHttpRequest-Instanz
function createXmlHttpRequestObject() 
{
  // speichert die Referenz auf das XMLHttpRequest object
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try
  {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // assume IE6 or older
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // try every prog id until one works
 
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // try to create XMLHttpRequest object
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}
//######## Ende ein XMLHttpRequest- Object erzeugen

            // Formularabfrage
            function checkForm()
	    {
		 dropSets();
		 if (document.eingabe.q.value.length > 0)
	         {
                    xmlHttp.open("GET", "ajax/suche.php?str=" + escape (document.eingabe.q.value));
	 	    xmlHttp.send(null);
	 	    xmlHttp.onreadystatechange = getXML;
		 }
	    }

	    // Länder + Kürzel aus DB
            function getXML()
            {
                     if (xmlHttp.readyState == 4)
                     {
                        countries = xmlHttp.responseXML;
                        getCountries (countries);
                     }
            }

            function getCountries (countries)
            {
                     q = new Array();

		     for (i = 0; i < countries.getElementsByTagName('dataset').length; i++)
		     {
                         dataset = countries.getElementsByTagName('dataset')[i];
			 q[i] = dataset.getElementsByTagName('country')[0].firstChild.nodeValue;
                     }

	    	     if (q.length > 0)
		     {
                        doInput (q);
                     }
	    }
	    
	    function doInput(q)
	    {
                document.getElementById('hiddi').style.display = 'block';
		document.getElementById('listing').setAttribute('size', q.length);
		for (i = 0; i < q.length; i++)
		{
                    /******************************************/
                    /* hier müssen beide Variablen deklariert */
                    /* werden, sonst spielt der IE nicht mit. */
                    /* Weiß der Teufel warum                  */
                    /******************************************/

                    var list = document.createElement('option');
		    var eingabe = document.createTextNode(q[i]);
		    list.appendChild (eingabe);
		    document.getElementById('listing').appendChild(list);
                    document.getElementById('listing').
                        childNodes[i].setAttribute('value', q[i]);
		}
            }
	    function dropSets()
	    {
	    	num = document.getElementById('listing').childNodes.length;

		for (i = 0; i < num; i++)
		{
                    wech = document.getElementById('listing').childNodes[0];
		    document.getElementById('listing').removeChild(wech);
	    	}
		document.getElementById('hiddi').style.display = 'none';
	    }

	    // Länderauswahl in Text- und Hiddenfeld eintragen
	    function setCountry (q)
	    {
	    	document.eingabe.q.value = q;
	    	dropSets();
	    }
