// JavaScript Document
// generiere die Ausgabedaten im HTML-Format
function handleServerResponse() 
{
  var xmlResponse = xmlHttp.responseXML;
  
  // Fehlerbehandlung bei schlechtem XML
  if (!xmlResponse || !xmlResponse.documentElement)
    throw("Invalid XML structure:\n" + xmlHttp.responseText);
    
  var rootNodeName = xmlResponse.documentElement.nodeName;
  if (rootNodeName == "parsererror")
    throw("Invalid XML structure:\n" + xmlHttp.responseText);
    
  xmlRoot = xmlResponse.documentElement;
  
  // parse XML Tags
  // Headlines
  distanceHeader = xmlRoot.getElementsByTagName("distanceheader");
  plzHeader = xmlRoot.getElementsByTagName("plzheader");
  cityHeader = xmlRoot.getElementsByTagName("cityheader");
  nameHeader = xmlRoot.getElementsByTagName("nameheader");
  telefonHeader = xmlRoot.getElementsByTagName("telefonheader");
  
  // XML-Daten
  idArray = xmlRoot.getElementsByTagName("id");
  latitudeArray = xmlRoot.getElementsByTagName("latitude");
  longitudeArray = xmlRoot.getElementsByTagName("longitude");
  idArray = xmlRoot.getElementsByTagName("id");
  distanceArray = xmlRoot.getElementsByTagName("distance");
  telefonArray = xmlRoot.getElementsByTagName("telefon");
  plzArray = xmlRoot.getElementsByTagName("plz");
  ortArray = xmlRoot.getElementsByTagName("ort");
  firmaArray = xmlRoot.getElementsByTagName("firma");
  iconArray = xmlRoot.getElementsByTagName("icon");
  
  
  // schreibe Array html  
  var html = "";
  
  // Setze den Tableheader zusammen
  html += "<thead><tr>";
  html += "<th>"+distanceHeader.item(0).firstChild.data+"</th>";
  html += "<th>"+plzHeader.item(0).firstChild.data+"</th>";
  html += "<th>"+cityHeader.item(0).firstChild.data+"</th>";
  html += "<th>"+nameHeader.item(0).firstChild.data+"</th>";
  html += "<th>"+telefonHeader.item(0).firstChild.data+"</th>";
  html += "<th>&nbsp;</th>";
  html += "</tr></thead>";
  
  // wenn das Array leer ist, dann gebe eine Ausnahme an die Funktion 
  // handleRequestStateChange weiter
  if(distanceArray.length == 0) {
    html = "Bitte ändern Sie Ihre Angaben!";
    map.setCenter(new GLatLng(48.662758,10.825879),8);
    alert("Kein Händler gefunden");
  }
    
  for (var i=0; i<distanceArray.length; i++)
  {
    // gebe farbige Tabellenzeilen abwechselnd aus
    if (i%2==0) {
      var bgColor = " class='bgGrey'";
      var color = "#eeeeee";
    }
    else {
      var bgColor = " class='bgNone'";
      var color = "#ffffff";
    }
    
    // erzeuge die einzelnen Tabellenzellen
    html += "<tbody><tr id=tr_"+i+" style=\"background:"+color+"\" onclick=\"map.setCenter(new GLatLng("+latitudeArray.item(i).firstChild.data+","+longitudeArray.item(i).firstChild.data+"),8); \" onmouseover=\"getElementById('tr_"+i+"').style.background='#ccc';\" onmouseout=\"getElementById('tr_"+i+"').style.background='"+color+"'\">";
    html += "<td>"+distanceArray.item(i).firstChild.data+"</td>";
    html += "<td>"+plzArray.item(i).firstChild.data+"</td>";
    html += "<td>"+ortArray.item(i).firstChild.data+"</td>";
    html += "<td>"+firmaArray.item(i).firstChild.data+"</td>";
    html += "<td>"+telefonArray.item(i).firstChild.data+"</td>";
    html += "<td>"+iconArray.item(i).firstChild.data+"</td>";
    html += "</tr></tbody>";
  }  
  myDiv = document.getElementById("myDivElement");
  myDiv.innerHTML = "<table cellpadding=3 cellspacing=0 id=myTable width=100%>"+html+"</table>";
}
