
function loadPhotoPointsOverview ( map ) {
    
    //document.getElementById ( 'loadMessage' ).style.display = 'block';
    
    downloadUrl ( "./xml/photoPointsOverview.php5", function ( data ) {
        
            var markers = data.documentElement.getElementsByTagName ( "m" );
                
            for ( var i = 0; i < markers.length; i++ ) {
                var marker = setMarkerXmlOverview ( map, markers[i] );
            }
            
            //document.getElementById ( 'loadMessage' ).style.display = 'none';
            
        }
    );
}


function loadPhotoPointsCategory ( map, category, limit ) {
    
    //document.getElementById ( 'loadMessage' ).style.display = 'block';
    
    downloadUrl ( "./xml/photoPointsCategory.php5?category=" + category + "&limit=" + limit, function ( data ) {
        
            var markers = data.documentElement.getElementsByTagName ( "m" );
                
            for ( var i = 0; i < markers.length; i++ ) {
                var marker = setMarkerXmlCat ( map, markers[i] );
            }
            
            //document.getElementById ( 'loadMessage' ).style.display = 'none';
            
        }
    );
}



function setMarkerXmlOverview ( map, spotsXml ) {

    var latlng = new google.maps.LatLng(parseFloat(spotsXml.getAttribute('a')), parseFloat(spotsXml.getAttribute('n')));
    
    imageSize = new google.maps.Size(12,16);
    originPoint = google.maps.Point(6,16);
    anchorPoint = google.maps.Point(6,16);
    var image = new google.maps.MarkerImage('./bilder/iconMapFoto.gif',imageSize,originPoint,anchorPoint);
    
    
    var marker = new google.maps.Marker({map: map});
    marker.setPosition (latlng);
    marker.setIcon (image);

    var html = '';        

    var fileName = spotsXml.getAttribute ( "o" );

    var anmerkungText = spotsXml.getAttribute ( "t" );

    html = '<a href="./index.php5?category=' + spotsXml.getAttribute ( "i" ) + '#p' + spotsXml.getAttribute ( "b" ) + '"><img height="105" width="140" alt="" src="./bilder/fotos/klein/' + fileName + '" /></a>';
    html += '<br />' + anmerkungText;
    
    marker.infoWindow = new google.maps.InfoWindow ();
    marker.infoWindow.setContent(html);
    
    google.maps.event.addListener(marker, 'click', function(){
        marker.infoWindow.open(map,marker);
    });

}
 

function setMarkerXmlCat ( map, spotsXml ) {

    var latlng = new google.maps.LatLng(parseFloat(spotsXml.getAttribute('a')), parseFloat(spotsXml.getAttribute('n')));
    
    imageSize = new google.maps.Size(12,16);
    originPoint = google.maps.Point(6,16);
    anchorPoint = google.maps.Point(6,16);
    var image = new google.maps.MarkerImage('./bilder/iconMapFoto.gif',imageSize,originPoint,anchorPoint);
    
    
    var marker = new google.maps.Marker({map: map});
    marker.setPosition (latlng);
    marker.setIcon (image);

    var html = '';        

    var fileName = spotsXml.getAttribute ( "o" );

    var anmerkungText = spotsXml.getAttribute ( "t" );

    html = '<a href="#p' + spotsXml.getAttribute("i") + '" onclick="changeImage(' + spotsXml.getAttribute("i") + ', \'' + spotsXml.getAttribute("o") + '\');return true;"><img height="105" width="140" alt="" src="./bilder/fotos/klein/' + fileName + '" /></a>';
    html += '<br />' + anmerkungText;
    
    marker.infoWindow = new google.maps.InfoWindow ();
    marker.infoWindow.setContent(html);
    
    google.maps.event.addListener(marker, 'click', function(){
        marker.infoWindow.open(map,marker);
    });

}
   

/**
* Hilfsfunktionen für Portierung von Maps V2 auf V3
*/
function downloadUrl(url, callback) {
    var status = -1;
    var request = createXmlHttpRequest();
    if (!request) {
        return false;
    }

    request.onreadystatechange = function() {
                                    if (request.readyState == 4) {
                                        try {
                                            status = request.status;
                                        } catch (e) {
                                        }
                                        if (status == 200) {
                                            callback(request.responseXML, request.status);
                                            request.onreadystatechange = function() {};
                                        }
                                    }
    }
    request.open('GET', url, true);
    try {
        request.send(null);
    } catch (e) {
        changeStatus(e);
    }
};

function createXmlHttpRequest() {
    try {
        if (typeof ActiveXObject != 'undefined') {
            return new ActiveXObject('Microsoft.XMLHTTP');
        } else if (window["XMLHttpRequest"]) {
            return new XMLHttpRequest();
        }
    } catch (e) {
        changeStatus(e);
    }
    return false;
};

function xmlParse(str) {
    if (typeof ActiveXObject != 'undefined' && typeof GetObject != 'undefined') {
        var doc = new ActiveXObject('Microsoft.XMLDOM');
        doc.loadXML(str);
        return doc;
    }

    if (typeof DOMParser != 'undefined') {
        return (new DOMParser()).parseFromString(str, 'text/xml');
    }
    
    return createElement('div', null);
}


