/*************************************************************************
 * Functions to configure for bmw finder
 *
 * @package BMW Finder
 * @author  Alexander Pisculla <api@active-value.de>
 *          Andreas Percher <anderas.percher@automedia.de>
 * @version 2.0, 2007-06-18
 */

  // get the HTML Code for Info Popup
  function getInfoHTML(placemark,cpoint)  {
    //alert("mapconfigure.getInfoHTML(placemark,cpoint)");
    // extract data from placemark
    var cmd = "";
    var name =     getPlacemarkStringValue(placemark,"name");
    var anschrift1=getPlacemarkStringValue(placemark,"anschrift1");
    var anschrift2=getPlacemarkStringValue(placemark,"anschrift2");
    var strasse =  getPlacemarkStringValue(placemark,"strasse");
    var plz =      getPlacemarkStringValue(placemark,"plz");
    var ort =      getPlacemarkStringValue(placemark,"ort");
    var tel =      getPlacemarkStringValue(placemark,"tel");
    var fax =      getPlacemarkStringValue(placemark,"fax");
    var id =       getPlacemarkStringValue(placemark,"id");
    var cp2home =  getPlacemarkStringValue(placemark,"cp2home");
    var homepage = getPlacemarkStringValue(placemark,"homepage");
    var foto =     getPlacemarkStringValue(placemark,"foto");
    var bmw1 =     getPlacemarkIntValue(placemark,"L1er");
    var bmw3 =     getPlacemarkIntValue(placemark,"L3er");
    var bmw5 =     getPlacemarkIntValue(placemark,"L5er");
    var bmw6 =     getPlacemarkIntValue(placemark,"L6er");
    var bmw7 =     getPlacemarkIntValue(placemark,"L7er");
    var bmwm =     getPlacemarkIntValue(placemark,"LM");
    var bmwx3 =    getPlacemarkIntValue(placemark,"LX3");
    var bmwx5 =    getPlacemarkIntValue(placemark,"LX5");
    var bmwz =     getPlacemarkIntValue(placemark,"LZ");

    var status =    getPlacemarkIntValue(placemark,"status");
    var show   =    getPlacemarkIntValue(placemark,"show");
    var hasCp2 =    getPlacemarkIntValue(placemark,"cp2");

    var infopopHTML  = '';

    var bShowFz = show>2
               && ( bmw1>0 || bmw3>0 || bmw5>0 || bmw6>0 || bmw7>0
                 || bmwm>0 || bmwx3>0 || bmwx5>0 || bmwz>0);

    // alert("Show "+show+"\r\nhasCp2 "+hasCp2+"\r\nName "+name+","+plz+" "+ort);

    // Wenn wir Fahrzeuge suchen, werden alle,
    // die  keine passenden Fahrzeuge haben ausgegrayed.

    // (03.07.2007 AP)
    // Wenn wir Fahrzeuge suchen dann alle ausgrayen,
    // die nichts passendes haben
    var carcnt = getPlacemarkIntValue(placemark,"carcnt");

    if (carSearchLevel>0 && carcnt<1)
      show=0;

    if (show>1) { // (AP) nur wenn show !)
      // build HTML
      infopopHTML += '<div class="infopop">\n';
      infopopHTML += ' <a name="infopopanker"></a>\n';
      infopopHTML += ' <div class="info">\n';

      if (foto!=null && foto!="" && bShowFz)
        infopopHTML += '  <img '
                   + ' src="'+foto+'"'
                   + 'onerror=\'this.src="media/img/platzhalter-haendlerliste.jpg"\' '
                   + 'width="125" height="68" alt="" title="" /><br />\n';

      infopopHTML += '  <p><strong>'+name+'</strong></p>\n';
      infopopHTML += '  <p>' + "\n";

      if (anschrift1!=null && anschrift1.isNotEmpty())
        infopopHTML += '   '+anschrift1+'<br />' + "\n";
      if (anschrift2!=null && anschrift2.isNotEmpty())
        infopopHTML += '   '+anschrift2+'<br />' + "\n";

      infopopHTML += '   '+strasse+'<br />' + "\n";

      infopopHTML += '   '+plz+' '+ort+'<br />' + "\n";
      infopopHTML += '   <br />' + "\n";
      infopopHTML += '   Tel.: '+tel+'<br />' + "\n";
      infopopHTML += '   <br />' + "\n";
      //infopopHTML += '   <br />' + "\n";
      //infopopHTML += '   <br />' + "\n";
      //infopopHTML += '   <ul class="detaillinks">' + "\n";

      infopopHTML += '    <a class="blocklink" href="javascript://" onclick="zoom('+cpoint.lat()+','+cpoint.lng()+');">Zoom</a><br/>' + "\n";

      // nie anzeigen !
      if (false && homepage!=null) {
        infopopHTML += '<a class="blocklink" href="'+homepage
                    +'" onclick("urchinTracker(\'/fremdseite?'
                    + homepage
                    +'\')") target="_blank">Homepage</a><br/>' + "\n";
      }
      if (hasCp2>0) {
        infopopHTML += '<a class="blocklink" href="'+cp2home
                    +'" onclick("urchinTracker(\'/cp2home?'
                    + cp2home
                    +'\')") target="_blank">alle Fahrzeuge anzeigen</a><br/>' + "\n";
      }

      // infopopHTML += '   </ul>' + "\n";
      infopopHTML += '  </p>' + "\n";
      infopopHTML += ' </div>' + "\n";

      if (bShowFz) {
        if (carSearchLevel>0)
          infopopHTML += ' F&uuml;r Sie gefunden:\n';
        else
          infopopHTML += ' Unsere aktuelle Auswahl:\n';

        infopopHTML += ' <ul class="linkblock">' + "\n";
        textBmw = '';
        cmd = '  <li><a class="blocklink" href="#" onclick="updateSideblock('+id;
        if (bmw1 > 0)
          textBmw += cmd+',\'1er\',0);">BMW 1er: '+bmw1+'<\/a><\/li>' + "\n";
        if (bmw3 > 0)
          textBmw += cmd+',\'3er\',0);">BMW 3er: '+bmw3+'<\/a><\/li>' + "\n";
        if (bmw5 > 0)
          textBmw += cmd+',\'5er\',0);">BMW 5er: '+bmw5+'<\/a><\/li>' + "\n";
        if (bmw6 > 0)
          textBmw += cmd+',\'6er\',0);">BMW 6er: '+bmw6+'<\/a><\/li>' + "\n";
        if (bmw7 > 0)
          textBmw += cmd+',\'7er\',0);">BMW 7er: '+bmw7+'<\/a><\/li>' + "\n";
        if (bmwm > 0)
          textBmw += cmd+',\'M\',0);">BMW M: '+bmwm+'<\/a><\/li>' + "\n";
        if (bmwx3 > 0)
          textBmw += cmd+',\'X3\',0);">BMW X3: '+bmwx3+'<\/a><\/li>' + "\n";
        if (bmwx5 > 0)
          textBmw += cmd+',\'X5\',0);">BMW X5: '+bmwx5+'<\/a><\/li>' + "\n";
        if (bmwz > 0)
          textBmw += cmd+',\'Z\',0);">BMW Z: '+bmwz+'<\/a><\/li>' + "\n";
        infopopHTML += textBmw;
        infopopHTML += ' </ul>' + "\n";
      } else {
        if (foto!=null && foto!="")
          infopopHTML += '<br/> <br/><img '
                     + ' src="'+foto+'"'
                     + 'onerror=\'this.src="media/img/platzhalter-haendlerliste.jpg"\' '
                     + 'width="125" height="68" alt="" title="" /><br />\n';
      }
      infopopHTML += ' <div class="clear">&nbsp;</div>' + "\n";
      infopopHTML += '</div>' + "\n";
    } else {
      // Level-1-Kunden wurden zuvor nur grau angezeigt.
      // nun werden diese auch angezeigt und "Bubbeln" auch
      // aber Bild, EMail, Telefonnummer und URL werden nicht angezeigt
      infopopHTML += '<div class="infopopklein">\n';
      infopopHTML += '  <p><strong>'+name+'</strong><br/>\n';
      if (anschrift1!=null && anschrift1.isNotEmpty())
        infopopHTML += '   '+anschrift1+'<br />' + "\n";
      if (anschrift2!=null && anschrift2.isNotEmpty())
        infopopHTML += '   '+anschrift2+'<br />' + "\n";
      infopopHTML += '   '+strasse+'<br />' + "\n";
      infopopHTML += '   '+plz+' '+ort+'<br />' + "\n";
      infopopHTML += '  </p>' + "\n";
      infopopHTML += ' </div>' + "\n";
    }
    // alert(infopopHTML);
    return infopopHTML;
  }

  // 18.06.2007 AP
  // Firmenliste löschen
  function clearFirmenliste() {
    var tabelle = document.getElementById("haendlerliste");
    if (tabelle) {
       while(tabelle.rows.length>0)
         tabelle.deleteRow(0);
/*
      alert(tabelle.tBodies.length+" Elemente");
      for (i=tabelle.tBodies.length-1;i>=0;i--) {
        tabelle.deleteRow(0);
        alert(tabelle.tBodies.length+" Elemente ("+i+")");
      }
*/
    }
    document.getElementById("anzhaendler").innerHTML="0";
  }
  // 18.06.2007 AP
  // Firmenliste aufbauen
  function addFirmenliste(placemark) {
    // extract data from placemark
    var id =       getPlacemarkStringValue(placemark,"id");
    var hdlrnr =   getPlacemarkStringValue(placemark,"hdlrnr");
    var name =     getPlacemarkStringValue(placemark,"name");
    var anschrift1=getPlacemarkStringValue(placemark,"anschrift1");
    var anschrift2=getPlacemarkStringValue(placemark,"anschrift2");
    var strasse =  getPlacemarkStringValue(placemark,"strasse");
    var plz =      getPlacemarkStringValue(placemark,"plz");
    var ort =      getPlacemarkStringValue(placemark,"ort");
    var tel =      getPlacemarkStringValue(placemark,"tel");
    var fax =      getPlacemarkStringValue(placemark,"fax");
    var cp2home =  getPlacemarkStringValue(placemark,"cp2home");
    var homepage = getPlacemarkStringValue(placemark,"homepage");
    var foto =     getPlacemarkStringValue(placemark,"foto");
    var keinfoto = getPlacemarkStringValue(placemark,"keinfoto");
    var bmw1 =     getPlacemarkIntValue(placemark,"L1er");
    var bmw3 =     getPlacemarkIntValue(placemark,"L3er");
    var bmw5 =     getPlacemarkIntValue(placemark,"L5er");
    var bmw6 =     getPlacemarkIntValue(placemark,"L6er");
    var bmw7 =     getPlacemarkIntValue(placemark,"L71er");
    var bmwm =     getPlacemarkIntValue(placemark,"LM");
    var bmwx3=     getPlacemarkIntValue(placemark,"LX3");
    var bmwx5=     getPlacemarkIntValue(placemark,"LX5");
    var bmwz =     getPlacemarkIntValue(placemark,"LZ");

    var status =    getPlacemarkIntValue(placemark,"status");
    var show   =    getPlacemarkIntValue(placemark,"show");
    var hasCp2 =    getPlacemarkIntValue(placemark,"cp2");

    var hasnw =     getPlacemarkIntValue(placemark,"hasnw");
    var hasvfw =    getPlacemarkIntValue(placemark,"hasvfw");
    var hasgw =     getPlacemarkIntValue(placemark,"hasgw");
    var hasservice =getPlacemarkIntValue(placemark,"hasservice");
    var hasersatz = getPlacemarkIntValue(placemark,"hasersatz");

    var trenner = "";

    if (anschrift1!=null)
      name += '<br />\n'+anschrift1;
    if (anschrift2!=null)
      name += '<br />\n'+anschrift2;


    var tabelle = document.getElementById("haendlerliste");
    if (tabelle && show>1) {
      var tr = document.createElement('tr');
      // td1.setAttribute("class","haendlerliste");
      var td1 = document.createElement('td');
      td1.setAttribute("class","bild");

      var temp =  "media/img/platzhalter-haendlerliste.jpg"

      if (foto!=null && foto!="")
        temp = foto+"\" "
             + "onerror=\"this.src='media/img/platzhalter-haendlerliste.jpg'";

      td1.innerHTML="<img src=\""+ temp + "\" "
                   +"width=\"100\" height=\"51\" alt=\""+keinfoto+"\"/>";

      var td2 = document.createElement('td');
      td2.innerHTML = name;

      var td3 = document.createElement('td');
      temp = strasse+"<br/>"+plz+" "+ort+"<br />Tel.: "+tel;
      // nie anzeigen !!
      if (false && homepage!=null)
        temp += "<br/><a class=\"blocklink\" href=\""+homepage
             +"\" target=\"haendler_"+hdlrnr+"\">Homepage</a>";
      td3.innerHTML = temp;

      var td4 = document.createElement('td');
      temp="";
      if (hasnw==1) {
        temp+=trenner+"BMW Neuwagen";
        trenner="<br/>";
      }
      // if (hasvfw==1) {
      //  temp+=trenner+"BMW Vorführwagen";
      //  trenner="<br/>";
      // }
      if (hasgw==1) {
        temp+=trenner+"Gebrauchtwagen";
        trenner="<br/>";
      }
      if (hasservice==1) {
        temp+=trenner+"BMW Service";
        trenner="<br/>";
      }
      if (hasersatz==1) {
        temp+=trenner+"BMW Ersatzteile";
        trenner="<br/>";
      }
      if (trenner=="")
        temp+="&nbsp;";
      td4.innerHTML=temp;

      var td5 = document.createElement('td');
      temp="&nbsp;"
      if (hasCp2>0)
        temp = "<a class=\"blocklink\" href=\""+cp2home+"\" target=\"cp2_"
             + hdlrnr+"\">Fahrzeuge anzeigen</a>";
      td5.innerHTML = temp;

      tr.appendChild(td1);
      tr.appendChild(td2);
      tr.appendChild(td3);
      tr.appendChild(td4);
      tr.appendChild(td5);
      tabelle.tBodies[tabelle.tBodies.length-1].appendChild(tr);

      var anzFeld = document.getElementById("anzhaendler");
      if (anzFeld) {
        var anz = parseInt(anzFeld.innerHTML);
        anz++;
        document.getElementById("anzhaendler").innerHTML=""+anz;
      }
    }
  }


  // AP
  function getPlacemarkIntValue(placemark,label) {
    var tags = placemark.getElementsByTagName(label);
    if ( tags!=null
      && tags[0]!=null
      && tags[0].childNodes!=null
      && tags[0].childNodes[0]!=null
      && tags[0].childNodes[0].nodeValue!=null)
      return parseInt(tags[0].childNodes[0].nodeValue);
    return 0;
  }
  function getPlacemarkStringValue(placemark,label) {
    var tags = placemark.getElementsByTagName(label);
    if ( tags!=null
      && tags[0]!=null
      && tags[0].childNodes!=null
      && tags[0].childNodes[0]!=null
      && tags[0].childNodes[0].nodeValue!=null)
      return tags[0].childNodes[0].nodeValue;
    return null;
  }


  // update sideblock with content (via ajax)
  // (AP 23.01.2007) Blättern ermöglicht
  function updateSideblock(haendlerid,modell,offset)   {
    var request = GXmlHttp.create();
    urlParameters = getUrlParameters();
    if (offset==null) offset=0;
    request.open('GET', 'getdetails.jsp?id='+haendlerid+'&modell='+modell+'&offs='+offset+urlParameters, true);
    request.onreadystatechange = function()
    {
      if (request.readyState == 4)  {
         var response = request.responseText;
         document.getElementById("info").innerHTML = response;
      }
    }
    request.send(null);
    return false;
  }

  // build fetiching url for dealer data
  function getUrlParameters()
  {
    var urlParams = '';
    // attach search values

    if (document.sucheauto!=null) {
      if (document.sucheauto.modellreihe!=null)  {
        modell = document.sucheauto.modellreihe.value;
        if (modell.length > 0) urlParams += "&modell="+modell;
      }
      if (document.sucheauto.aufbau!=null) {
        aufbau = document.sucheauto.aufbau.value;
        if (aufbau.length > 0) urlParams += "&aufbau="+aufbau;
      }
      if (document.sucheauto.erstzulassung!=null) {
        erstzulassung = document.sucheauto.erstzulassung.value;
        if (erstzulassung.length > 0) urlParams += "&erstzulassung="+erstzulassung;
      }
      if (document.sucheauto.laufleistung!=null) {
        laufleistung = document.sucheauto.laufleistung.value;
        if (laufleistung.length > 0) urlParams += "&laufleistung="+laufleistung;
      }
      if (document.sucheauto.preis!=null) {
        preis = document.sucheauto.preis.value;
        if (preis.length > 0) urlParams += "&preis="+preis;
      }
      if (document.sucheauto.mwst!=null) {
        preis = document.sucheauto.mwst.checked;
        if (preis) urlParams += "&mwst=auswb";
      }
    }
    // alert(urlParams);
    return urlParams;
  }
