

var map = null;
var geocoder = null;

function initializeGMap() {

    if ( $("check_map") && GBrowserIsCompatible() ) {
        map = new GMap2( $("check_map") );

        map.enableScrollWheelZoom() ;
        map.addControl(new GSmallMapControl() );
        map.enableContinuousZoom();
        map.enableScrollWheelZoom();
        GEvent.addListener( map, 'click', function( overlay, point ) {
            // Add a click listener
            if (overlay) {
                
            } else if ( point ) {
                addpoint( point ) ;
            }
        });

        geocoder = new GClientGeocoder();

        $('check_map_button').addEvent('click', function(){
            showCheckMap();
        });
        if( $('Coordinate') && $('Coordinate').value ) {
            geocoder.getLatLng( $('Coordinate').value, function(point) {
                map.clearOverlays();
                map.setCenter(point, 15);
                var marker = new GMarker(point,{draggable: true});
                map.addOverlay(marker);
                marker.enableDragging();
                marker.openInfoWindowHtml( '<b>Keresett helyszín:</b> ' + getAddress() + '<br/><br/> <b>A piros találatjelzőt megfoghatja az egérrel és<br/> annak áthelyezésével pontosíthatja a<br/> helyszín koordinátáit!</b><br/><br/>' );
                GEvent.addListener( marker, 'dragend', function() {
                    addpoint( marker.getPoint() );
                    marker.openInfoWindowHtml( '<b>Keresett helyszín:</b> ' + getAddress() + ' ' );
                });
            });
        } else {
            geocoder.getLatLng( 'magyarország', function(point) {
                    map.setCenter(point, 7);
            });
        }
    }

}


function getAddress() {
    return $('postcode').value + ' ' + $('city').value+ ', ' + $('Address').value + ' ' + $('PlaceType').options[$('PlaceType').selectedIndex].text + ' ' + $('AddressNum').value + '';
}



function showCheckMap() {
    if( $('postcode').value && $('city').value && $('Address').value ) {
        showAddress( getAddress() );
    } else {
        alert( 'Hiíányos a cím, kérjük ellenőrizze.' );
    }
}

function addpoint( point ) {
    if( $('Coordinate') ) {
        var c = point.toString().substring( 1 );
        $('Coordinate').value = c.substring( 0, c.length-1 );
    }
}

function showAddress(address) {
    if (geocoder) {
        geocoder.getLatLng( address, function(point) {
            if (!point) {
            
                //alert( '"' + address + '" cím hibás vagy nem található. Kérjük ellenőrizze az irányítószám,város,utca mezőkben kitöltött adatokat! PL: elírt irányítószám, város név egybe vagy különírva, utca vagy köz, stb... Ha a Település nem található és tudja a GPS kordinátáit azt megadhatja a térkép alatti mezőben' );

                showAddress( prompt( '"' + address + '" cím hibás vagy nem található... Kérjük ellenőrizze az irányítószám,város,utca mezőkben kitöltött adatokat!\n\n Amennyiben így sem található a cím, akkor az alábbi mezőbe adja meg az irányítószámot és a város nevét, majd a megjelenő térkép segítségével válassza ki manuálisan a célhelyszínt.', $('city').value ) );

            } else {
                //alert(this->Placemark[0]->Point->coordinates[0]);
                addpoint( point );
                map.clearOverlays();
                map.setCenter(point, 15);
                var marker = new GMarker(point,{draggable: true});
                map.addOverlay(marker);
                marker.enableDragging();
                marker.openInfoWindowHtml( '<b>Keresett helyszín:</b> ' + address + '<br/><br/> <b>A piros találatjelzőt megfoghatja az egérrel és<br/> annak áthelyezésével pontosíthatja a<br/> helyszín koordinátáit!</b><br/><br/>' );
                GEvent.addListener( marker, 'dragend', function() {
                    addpoint( marker.getPoint() );
                    marker.openInfoWindowHtml( '<b>Keresett helyszín:</b> ' + address + '<br/><br/> <b>A piros találatjelzőt megfoghatja az egérrel és<br/> annak áthelyezésével pontosíthatja a<br/> helyszín koordinátáit!</b><br/><br/>' );
                });
            }
        });
    }
}
/*
function showAddress(address) {
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
        if (!point) {
          alert(address + " not found");
        } else {
          map.setCenter(point, 13);
          var marker = new GMarker(point);
          map.addOverlay(marker);
          marker.openInfoWindowHtml(address);
        }
      }
    );
  }
}
*/

function setDirectionState() {

    if( gd.getStatus().code == 200 ) {
        $('Status')
    }else{
        $('Status')
    }

}

function handleErrors(){
   var error = '';
   var cnum = gd.getStatus().code;
   if (cnum == G_GEO_UNKNOWN_ADDRESS)
     error = "Az alábbi címek közül az egyik nem megfelelő. Ez akkor forgul elő, ha a cím viszonylag új és még nincs a redszerben, vagy helytelen.\nHiba kód: " + cnum;
   else if (cnum == G_GEO_SERVER_ERROR)
     error = "Egy geocoding vagy irányok kérés sikeresen nem tudták megmunkálni, de a kudarc pontos okát nem tudják.\n Error code: " + cnum;

   else if (cnum == G_GEO_MISSING_QUERY)
     error = "A HTTP q paraméter volt bármelyik hiányzó vagy nincs érték. Geocoderkérésekért ez azt jelenti, hogy egy üres címet inputként részleteztek. Irányokért kérések, ez azt jelenti, hogy kérdést nem részleteztek az inputban.\n Error code: " + cnum;

   //else if (cnum == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
   //  error = "Az geocode az adott címért vagy az adott irányokhoz vezető útvonalért kérdezz nem tudják visszaküldeni törvényes vagy szerződéses okok miatt.\n Error code: " + cnum;

   else if (cnum == G_GEO_BAD_KEY)
     error = "Az adott kulcs bármelyik érvénytelen vagy nem illeszti össze azt a tartományt, amiért azt odaadták. \n Error code: " + cnum;

   else if (cnum == G_GEO_BAD_REQUEST)
     error = "Egy irányok kérést sikeresen nem elemezhetnének.\n Error code: " + cnum;

   else
    error = "Egy ismeretlen hiba történt.";

    //alert( error );

}
