// Function - Get Google Maps
function getGoogleMaps(element, nr, ityp, kf) {
    
    // Default
    var hidval      = document.getElementById("hid_"+nr)
    var vals        = hidval.value.split("#");
    var street      = vals[0];
    var street2     = vals[1];
    var town        = vals[2];
    var land        = vals[3];
    var img         = vals[4];
    var img_th      = vals[5];
    var skizze      = vals[6];
    var skizze_th   = vals[7];
    var details     = vals[8];
    var gmlat       = vals[9];
    var gmlng       = vals[10];
    
    // Vals
    var loc                     = street+" "+town+" "+land;
    var dimg                    = "";
    var dtext                   = "";
    if( img_th != "" )          dimg  += '<p><b>Foto:</b><br /><a class="gml" href="'+img+'" title="'+street+' '+street2+'" target="_blank" rel="lightbox[]" ><img src="'+img_th+'" height="50" border="0" alt="img" /></a></p>';
    if( skizze_th != "" )       dimg  += '<p><b>Skizze:</b><br /><a class="gml" href="'+skizze+'" title="'+street+' '+street2+'" target="_blank" rel="lightbox[]" ><img src="'+skizze_th+'" height="50" border="0" alt="skizze" /></a></p>';
    if( street != "" )          dtext += '<p><b>Standort:</b><br />'+street+'</p>';
    if( street2 != "" )         dtext += '<p><b>Kreuzung:</b><br />'+street2+'</p>';
    if( details != "" )         dtext += '<p><b>Details:</b><br />'+details+'</p>';

    // Var - HTML
    html = '<div class="gmdetails"><div class="gmdleft">'+dimg+'</div><div class="gmdright">'+dtext+'</div></div><div class="clear"></div>';

    // Load - Class
    geocoder = new GClientGeocoder();
    
    // Set - Geocode per Function Parameter
    geocoder.getLatLng(loc, function(pointer){
    
        if( gmlat != "" && gmlng != "" ) {
            var pointer = new GLatLng(gmlat, gmlng);
        }
         
        // If - is Location Real
        if(!pointer){
            alert(loc+" wurde nicht gefunden");
        }else{
        
            // Div Popup
            /*
            var ankpos                  = document.getElementById("ank_"+nr);
            var divpopup                = document.getElementById("googlemaps");
            divpopup.style.left         = (getLeft(ankpos)-200)+"px";
            divpopup.style.top          = (getTop(ankpos)-300)+"px";
            if( divpopup && divpopup.style.display != "block" ) {
                divpopup.style.display  = "block";
                hideFlash();
            }
            */
        
            // Load - Class
            var map         = new GMap2(document.getElementById("map"));
            
            // Set - Class Settings
            //map.addControl(new GLargeMapControl());
            map.addControl(new GMapTypeControl());
            map.addControl(new GSmallZoomControl());
            
            // Set - Map Fix Point per Location Parameter
            map.setCenter(pointer, 16, G_NORMAL_MAP);
            //map.getSize();
            
            if( ityp != "" ) {
                var icon = new GIcon();
                if( ityp == 1)      icon.image              = "http://www.addmission.de/upload/gmicon_addwall.png";
                else if( ityp == 2) icon.image              = "http://www.addmission.de/upload/gmicon_addboard.png";
                else if( ityp == 4) icon.image              = "http://www.addmission.de/upload/gmicon_addframe.png";
                icon.iconSize           = new GSize(35, 35);
                icon.iconAnchor         = new GPoint(16, 35);
    
                if (kf == '1') {
                    var addParam = '&kf=1';
                    icon.image = "http://www.addmission.de/upload/gmicon_addwall_kf.png";
                } else {
                    var addParam = '';
                }
                
                // Set - Marker per Geocode
                var marker = new GMarker(pointer, icon);
            } else {
                // Set - Marker per Geocode
                var marker = new GMarker(pointer);            
            }
            map.addOverlay(marker);
            //marker.openInfoWindowHtml(html);
            
        }
    });
}

// Function - Get Google Maps
function getGoogleMapOverview(ele, ityp) {

    // Load - Class
    var map         = new GMap2(document.getElementById("map"));
    
    // Set - Class Settings
    //map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GSmallZoomControl());
    
    // Set - Map Fix Point per Location Parameter
    map.getSize();
    
    var icon = new GIcon();
    if( ityp == 1)      icon.image              = "http://www.addmission.de/upload/gmicon_addwall.png";
    else if( ityp == 2) icon.image              = "http://www.addmission.de/upload/gmicon_addboard.png";
    else if( ityp == 4) icon.image              = "http://www.addmission.de/upload/gmicon_addframe.png";
    icon.iconSize           = new GSize(20, 20);
    icon.iconAnchor         = new GPoint(16, 35);
    
    geocoder = new GClientGeocoder();
    
    // Check List
    for(i = 0; i < ele['object'].length; i++) {
    
        geocoder.getLatLng(ele['object'][i], function(pointer){
        
            //if( pointer ) {
                
                // Set - Marker per Geocode
                var marker = new GMarker(pointer, icon);
                map.setCenter(pointer, 11, G_NORMAL_MAP);
                map.addOverlay(marker);
                //map.openInfoWindowHtml(pointer, objinfo);
            //}
        });

    }
}

// Function - Get Google Maps per Xml
function getGoogleMapsPerXml(ityp, loc, kf) {

    // Load - Class
    var map         = new GMap2(document.getElementById("map"));
    
    // Set - Control
    map.addControl(new GMapTypeControl());
    map.addControl(new GSmallZoomControl());
    
    // Set - Icons
    var icon                = new GIcon();
    if( ityp == 1)          icon.image = "http://www.addmission.de/upload/gmicon_addwall.png";
    else if( ityp == 2)     icon.image = "http://www.addmission.de/upload/gmicon_addboard.png";
    else if( ityp == 4)     icon.image = "http://www.addmission.de/upload/gmicon_addframe.png";
    icon.iconSize           = new GSize(20, 20);
    icon.shadowSize         = new GSize(22, 20);
    icon.iconAnchor         = new GPoint(16, 35);
    icon.infoWindowAnchor   = new GPoint(5, 1);
    
    // Set - mobj
    var mobj                = new Array();
    
    if (kf == '1') {
        var addParam = '&kf=1';
        icon.image = "http://www.addmission.de/upload/gmicon_addwall_kf.png";
    } else {
        var addParam = '&kf=0';
    }


    GDownloadUrl("front_content.php?idcat=96&loc="+loc+"&typ="+ityp+addParam, function(data) {

       
        // Parse Data
        var minLng = 0;
        var maxLng = 0;
        var minLat = 0;
        var maxLat = 0;
        var xml = GXml.parse(data);
        geocoder = new GClientGeocoder(); 
        var markers     = xml.documentElement.getElementsByTagName("marker"); 
        for( var i = 0; i < markers.length; i++ ) {

            // Vars
            var mobj         = new Array();
            mobj['name']     = markers[i].getAttribute("name");
            mobj['address']  = markers[i].getAttribute("address");
            mobj['lat']      = markers[i].getAttribute("lat");
            mobj['lng']      = markers[i].getAttribute("lng");

            // Get - Pointer
            if( mobj['lat'] != "" && mobj['lat'] != null && mobj['lng'] != "" && mobj['lng'] != null ) {
 
                // Vars
                if( minLng == 0 ) minLng = mobj['lng'];
                if( mobj['lng'] > maxLng ) maxLng = mobj['lng'];
                if( minLat == 0 ) minLat = mobj['lat'];
                if( mobj['lat'] > maxLat ) maxLat = mobj['lat'];

                // Get - Lat / Lng
                var pointer = new GLatLng(parseFloat(mobj['lat']), parseFloat(mobj['lng']));

                // Get - Marker
                //var marker = new GMarker(pointer, icon);
                var marker = createMarker(pointer, mobj, icon);
            
                // Add Overlay
                map.addOverlay(marker);
            }
        }

        

        // Vars
        resLng1 = (maxLng - minLng);
        resLng2 = (resLng1 / 2);
        resLng3 = eval(minLng+' + '+resLng2);

        // Vars
        resLat1 = (maxLat - minLat);
        resLat2 = (resLat1 / 2);
        resLat3 = eval(minLat+' + '+resLat2);

        //alert(minLng+' -> '+maxLng+' = '+parseFloat(resLng3));
        //alert(minLat+' -> '+maxLat+' = '+parseFloat(resLat3));

        // Set - Center
        map.setCenter(new GLatLng(parseFloat(resLat3), parseFloat(resLng3)), 11, G_NORMAL_MAP); 
    });  

}

// Function - Create Marter
function createMarker(pointer, mobj, icon) {

    var marker = new GMarker(pointer, icon);
    
    var html = "<b>" + mobj['name'] + "</b> <br/>" + mobj['address'];
    GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
    });
    
    return marker;
}




function sleep(ms){
    var zeit=(new Date()).getTime();
    var stoppZeit=zeit+ms;
    while((new Date()).getTime()<stoppZeit){};
} 

function getLeft(l) {
  if (l.offsetParent) return (l.offsetLeft + getLeft(l.offsetParent));
  else return (l.offsetLeft);
}

function getTop(l) {
  if (l.offsetParent) return (l.offsetTop + getTop(l.offsetParent));
  else return (l.offsetTop);
}


// Function Google Maps - Close
function gmclose(id) {
    var element  = document.getElementById(id);  
    element.style.display = "none";
    showFlash();
} 


// Function - Get Google Maps - Positions
function getGeoCode(street, town, land) {

    // Vals
    var loc = street+" "+town+" "+land;

    // Load - Class
    geocoder = new GClientGeocoder();
    
    // Set - Geocode per Function Parameter
    geocoder.getLatLng(loc, function(pointer){
    
        // If - is Location Real
        if(!pointer){
            alert(loc+" wurde nicht gefunden");
        }else{
        
            fctOnload(pointer);
        }
    });
}

function fctOnload(point) {
        
    //Überprüfung, ob der Browser Google Maps-fähig ist
    if (GBrowserIsCompatible()) {
    
        //Ein neues Google Maps-Objekt wird erstellt
        var map = new GMap2(document.getElementById("googlemap"));
        
        //myMapControl = new GLargeMapControl();
        //map.addControl(myMapControl);
        //map.enableScrollWheelZoom();
        map.addControl(new GMapTypeControl());
        map.addControl(new GSmallZoomControl());
        
        //Die Karte wird bei diesem Punkt zentriert
        map.setCenter(point, 16, G_NORMAL_MAP);
        
        marker = new GMarker(point, {draggable:true});
        map.addOverlay(marker);
        
        GEvent.addListener(map, "click", function(overlay, latlng) {
        
            if (latlng) {
        
                //Wenn Marker schon gesetzt, dann den alten löschen
                if (typeof marker != "undefined")
            
                marker.hide();
                
                marker = new GMarker(latlng, {draggable:true});
                GEvent.addListener(marker, "click");
                map.addOverlay(marker);
                
                document.getElementById("ad_gmlat").value = latlng.lat();
                document.getElementById("ad_gmlng").value = latlng.lng();
                
                //Position beim Verschieben in die input-Felder schreiben
                GEvent.addListener(marker, "dragend", function(){
                    latlng = marker.getLatLng();
                    document.getElementById("ad_gmlat").value = latlng.lat();
                    document.getElementById("ad_gmlng").value = latlng.lng();
                });
            }
        });
    }
}

function setStdIframe() {

    var std_iframe = document.getElementById("std_infos");
    
    if( std_iframe.style.display == 'none' ) {
        std_iframe.contentWindow.location.reload();
        std_iframe.style.display = 'block';
    } else {
        std_iframe.style.display = 'none';
    }
}



/* No in use */
/*
function googleMapsLoad() {

    // If - Browser Compatible
    if (GBrowserIsCompatible()) {
    
        // Load - Class
        var map = new GMap2(document.getElementById("map"));
        
        // Set - Class Settings
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        //map.enableScrollWheelZoom();
        
        // Set - Mappoint per Adress
        var loc     = 'Eisenbahnstraße Leipzig Deutschland';
        getGeocodePerAddress(map, loc, 14);
    }
}
*/
