/*
 * @version 2008-02-26
 * @author Guido Ueffing, www.babiel.com
 * @abstract    Einlesen von Standortdaten aus XML
 *              Daten, Anzeige der Standorte in einer GoogleMap mit indiv. Icons
*/

// Setze Vars
var side_bar_html   = "";
var gmarkers        = [];
var i               = 0;
var cnt             = 0;

// Individuelle Icons
var gicons                  = [];
gicons["hochhaus"]          = new GIcon(G_DEFAULT_ICON, "http://maps.google.com/mapfiles/kml/pal3/icon21.png"); // hochhaus

gicons["babiel"]			= new GIcon(G_DEFAULT_ICON, "http://www.babiel.com/includes/images/babielMarker.png"); // Blauer Marker

gicons["hbf"]               = new GIcon(G_DEFAULT_ICON, "../../../includes/images/sbahn.gif"); 
gicons["hbf"].iconSize      = new GSize(13, 13);
gicons["hbf"].shadowSize    = new GSize(13, 13);

gicons["ubahn"]             = new GIcon(G_DEFAULT_ICON, "../../../includes/images/ubahn.gif");
gicons["ubahn"].iconSize    = new GSize(12, 12);
gicons["ubahn"].shadowSize  = new GSize(12, 12);

gicons["keineDurchfahrt"]             = new GIcon(G_DEFAULT_ICON, "../../../includes/images/delete.png");
gicons["keineDurchfahrt"].iconSize    = new GSize(16, 16);
gicons["keineDurchfahrt"].shadowSize  = new GSize(16, 16);
                 
      
// Baue Marker & InfoWindow
function createMarker(point,name,html,icontype,zoomStart,zoomEnd,cnt)
{

    // Falls 1. Marker: autom. aufpoppen des InfoWindow
    if (cnt == 1)
    {
        var markery = new GMarker(point,gicons[icontype]);
        if(html!=""){GEvent.addListener(markery, "mouseover", function() {markery.openInfoWindowHtml(html);});}
        map.addOverlay(markery);
        markery.openInfoWindowHtml(html);
    }    
    // uebrige marker... benutze hier den GMarkerManager
    // (erlaubt indiv. ZoomStufen fuer Marker)
    else
    {
        var mm = new GMarkerManager(map);
        // Gebe Standard Marker aus...oder ein Custom Icon
        if(icontype=="standard"){var marker = new GMarker(point);}
        else                    {var marker = new GMarker(point,gicons[icontype]);}    
        
        if(html!="")
        {
            GEvent.addListener(marker, "mouseover", function() {marker.openInfoWindowHtml(html);});
            GEvent.addListener(marker, "mouseout", function() {marker.closeInfoWindow();});
        }
        gmarkers[i] = marker;
        mm.addMarker(marker,zoomStart,zoomEnd);
    }
}


// Zeige Standorte
function getdata (standort)
{
    
    // Das XML File
    var xmlfile = "../../../includes/googleMaps/standorte.xml";
    
    // Auslesen des XML Files
    var request = GXmlHttp.create();
    request.open("GET", xmlfile, true);
    
    // Callback
    request.onreadystatechange = function()
    {
    	// Falls Server geantwortet hat
        if (request.readyState == 4)
    	{
    		// Parse XML Struktur
            var xmlDoc = GXml.parse(request.responseText);
    		
    		// Feststellen, wieviele <marker> es gibt; Durchlaufen der einzelnen marker
    		var markers = xmlDoc.documentElement.getElementsByTagName("marker");
    		var gmarkersA = [];
            
    		for (var i = 0; i < markers.length; i++)
    		{
       			// Hole Bezeichnung des Markers
                var label = markers[i].getAttribute("label");
    			
                // Falls Bez. gleich Standort lautet
    			if (label == standort)
    			{
        			cnt++;
                    
                    // Attribute der Marker auslesen
        			var lat         = parseFloat(markers[i].getAttribute("lat"));
        			var lng         = parseFloat(markers[i].getAttribute("lng"));
        			var point       = new GLatLng(lat,lng);
        			var html        = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
                    var icontype    = markers[i].getAttribute("icontype");
                    var zoomStart   = markers[i].getAttribute("zoomstart");
                    var zoomEnd     = markers[i].getAttribute("zoomend");
                    
                    // Baue Marker
                    createMarker(point,label,html,icontype,zoomStart,zoomEnd,cnt);
                    
    				//map.addOverlay(marker);
    				map.setCenter(point, 15);
                }
                else
                {
                    cnt = 0;
                }
    		}

    	}
    }
    
    request.send(null);
}
