/*Funktion Marker erstellen Kategorien handeln und Setup Info Window erstellen*/

function createMarker(point,name,fid,category,cicon) {

     var marker = new GMarker(point,gicons[cicon]);
     var myobjstr;

      // === Store the category and name info as a marker properties ===
      marker.mycategory = category;                                 
      marker.myname = name;
      marker.mypid = fid;
      marker.myicon = cicon;

GEvent.addListener(marker, "click", function()
              {
              
              new Ajax.Request('/custom/googlemaps_gc_request.phtml?call=getobj&ModID=9&FID=' + fid, {
		method: 'get', asynchronous: false,
		onSuccess: function(transport) {
			obj = transport.responseText.evalJSON();}
	});

if (obj.Strasse)
             {
               myobjstr = obj.PLZ +" "+obj.Ort+" "+obj.Strasse;
               myobjstr = myobjstr.replace(/\u00df/g, 'ss'); 
             } 
else myobjstr = obj.UserFields.Geokoordinaten;

        if (obj.UserFields.Listenbild)
             {var lb ="<IMG width=125 height=80 alt="+obj.Name+" src="+obj.UserFields.Listenbild+" align=left border=0>";} else lb="";
        
                 var infoTabs = [  
                new GInfoWindowTab("Adresse", '<P align=left>'+lb+'<a href=/index.php?object=tx|231.2381.1|0&ModID=9&FID='+fid+'&La=1&NavID=2084.9&TypSel=1.101>'+obj.Vorname+obj.Name+'</a><br><br>'+obj.Strasse+' '+obj.Hausnr+'<br>'+obj.PLZ+obj.Ort+'</P>')
		// === , ===
                // === new GInfoWindowTab("Route", '<form name="direction" action="/index.php"><input type="hidden" name="ModID" value="9" /><input type="hidden"  name="object"     value="tx|211.288.1" /><input type="hidden" name="mNavID" value="231.300" /><input type="hidden" name="sNavID" value="211.22" /><input type="hidden" name="La" value="1" /><input type="hidden" name="ffmod" value="tx" /><label for="from"><strong>Start:</strong><br /></label><input type="text" name="from" id="from" /><br><label for="to"><strong>Ziel:</strong><br /></label><input type="hidden" name="to" value="'+myobjstr+'"/>'+obj.Strasse+'<br>'+obj.PLZ+'  '+obj.Ort+'<br><input type="submit" value="Route berechnen" /></form>') ===

 ];       
map.setCenter(point);       
marker.openInfoWindowTabsHtml(infoTabs,{maxWidth:300});
          });

gmarkers.push(marker);            
return marker;
}

function show(category) {
        category = category.substring(0,1).toUpperCase() + category.substring(1);        
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].show();
          }
        }
        // document.getElementById(category+"box").checked = true;
      }

function hide(category) {
        category = category.substring(0,1).toUpperCase() + category.substring(1);        
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].hide();
          }
        }
        // == clear the checkbox ==
        // document.getElementById(category+"box").checked = false;
        // == close the info window, in case its open on a marker that we just hid
        map.closeInfoWindow();
      }

// == a checkbox has been clicked ==
function boxclick(box,category) {
        category = category.substring(0,1).toUpperCase() + category.substring(1);        
        if (box.checked) {
          show(category);
        } else {
          hide(category);
        }
       
      }

      function myclick(i) {
        gmarkers[i].show();       
        GEvent.trigger(gmarkers[i],"click");
      }


// == rebuilds the sidebar to match the markers currently displayed ==
function makeSidebar(category) {
        var html = "";
        document.getElementById("info").innerHTML = html;
        category = category.substring(0,1).toUpperCase() + category.substring(1); 
        for (var i=0; i<gmarkers.length; i++) {
                  if (gmarkers[i].mycategory == category) {
                           html += '<div><div style="float:left; width:28px"><img src="'+gmarkers[i].getIcon().image+'" align="top"></div><div style="width:150px"><a href="javascript:myclick(' + i + ')">' + gmarkers[i].myname + '<\/a></div><br clear="all"><hr></div>';
                      }
        }
        document.getElementById("info").innerHTML = html;
if (document.getElementById("info").style.display != 'block') {
        boxhandling('info','block','infoboxminus.png','infoboxplus.png');
              }
}


function hidePolygons (box) {
        for (var i=0; i<polygons.length; i++) {
              polygons[i].hide(); }
        // == clear the checkbox ==
        document.getElementById(box).checked = false;
}

function showPolygons (box) {
        for (var i=0; i<polygons.length; i++) {
              polygons[i].show(); }
        // == clear the checkbox ==
       document.getElementById(box).checked = true;
}

function PolyboxClicked(box) {
        var tmpbox = document.getElementById(box).value
        if (tmpbox == "true")
                   {
                      document.getElementById(box).value="false";
                      hidePolygons(box);
                     }
           else {
                     document.getElementById(box).value="true";
                      showPolygons(box);
                    }
}

//fuer Kategorietree

function hideUnchecked() {

          var uncheckedlist = new Array();
          var unchecked = tree.getAllUnchecked();
          uncheckedlist.length = 0;
          uncheckedlist=unchecked.split(",");

          for(i = 0; i < uncheckedlist.length; i++) {
                                  if (uncheckedlist[i].substring(0,6) != 'unused') { 
                                         hide(uncheckedlist[i]);}
                    }
}
                    

function onNodeSelect(nodeId){
                    hideUnchecked();
                    //return ids of checked items
                    tree.openItem(nodeId);
                    var treelist = new Array();
                    var list=tree.getAllChecked();
                    treelist.length = 0;
                    treelist=list.split(",");

                    for(i = 0; i < treelist.length; i++) {
                                  if (treelist[i].substring(0,6) != 'unused') { 
                                         show(treelist[i]);  }
                    }
}


function onNodeClicked(nodeId) {

        if (nodeId.substring(0,6) != 'unused') {
                  makeSidebar(nodeId);
               }
}

