﻿var inProgress = false;
var idArray;
var mgr;

function pageLoad()
{
  idArray = new Array();
  
  if (GBrowserIsCompatible()) {
    var lat = parseFloat($get('C_mapLatitude').value);
    var lng = parseFloat($get('C_mapLongitude').value);
    var zoom = parseInt($get('C_mapZoomLevel').value);
    var mapType = parseInt($get('C_mapMapType').value);
    
    mapdiv = document.getElementById("map");
    map = new google.maps.Map2(mapdiv);
    map.setUIToDefault();

/*
    map.addControl(new GLargeMapControl());
    map.addControl(new GScaleControl());
    map.addControl(new TextualZoomControl());
    
    map.enableContinuousZoom();
    map.enableScrollWheelZoom();
     */
    var start = new GLatLng(lat, lng);
    switch (mapType)
    {
      case 2:
        map.setCenter(start, zoom, G_SATELLITE_MAP);
        break;
      case 3:
        map.setCenter(start, zoom, G_HYBRID_MAP);
        break;
      default:
        map.setCenter(start, zoom, G_NORMAL_MAP);
        break;
    }
              
    mgr = new GMarkerManager(map);

 //   GEvent.addDomListener(mapdiv, "DOMMouseScroll", map.wheelZoom); // Firefox 
  //  GEvent.addDomListener(mapdiv, "mousewheel", map.wheelZoom); // IE 
   
    GEvent.addListener(map, "mousemove", function(point) { 
      showLatLng(point);
    }); 

    GEvent.addListener(map, "zoomend", function(oldLevel, newLevel) {
      showZoom();
    });

    GEvent.addListener(map, "moveend", 
      function() 
      { 
        if (map.getZoom() >= 12)
        {
          if (!inProgress)
          {
            inProgress = true;
            var b = map.getBounds();
            var sw = b.getSouthWest();
            var ne = b.getNorthEast();
            Animare.IttVoltam.Web.WebService.Command.GetPlaceList(sw.lat(), sw.lng(), ne.lat(), ne.lng(), OnSucceeded, OnFailed);
          }
        }
        else
        {
          var info = $get("places");
          info.innerHTML = "";
        }
      }
    ); 

     GEvent.addListener(map,"click", 
      function(overlay, latlng) 
      {
        if (overlay == null) 
        {
          if (map.getZoom() < 12)
          {
            alert("Egy helyszín kiválasztása előtt nagyítsd fel a térképet minimum 12-es szintre!");
          }
          else
          {
            alert("Úgy tudsz kiválasztani egy helyszínt, hogy az adott helyet jelölő kis piros körre kattintasz!");
          }
        }
          /*
          var tileCoordinate = new GPoint();
          var tilePoint = new GPoint();
          var currentProjection = G_NORMAL_MAP.getProjection();
          tilePoint = currentProjection.fromLatLngToPixel(latlng, map.getZoom());
          tileCoordinate.x = Math.floor(tilePoint.x / 256);
          tileCoordinate.y = Math.floor(tilePoint.y / 256);
          var myHtml = "Latitude: " + latlng.lat() 
          + "<br/>Longitude: " + latlng.lng() + 
            "<br/>The Tile Coordinate is:<br/> x: " + tileCoordinate.x 
            + " (" + tilePoint.x +
            ")<br/> y: " + tileCoordinate.y 
            +" (" +tilePoint.y+ ")<br/> at zoom level " + map.getZoom();	
        
            
          map.openInfoWindow(latlng, myHtml);
          */
        }
    );
    
   /*     
    var myCopyright = new GCopyrightCollection("© ");
    myCopyright.addCopyright(new GCopyright('Demo', new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)), 0,'©2007 Google'));

    var tilelayer = new GTileLayer(myCopyright);
    tilelayer.getTileUrl = function() { return "http://i.ittvoltam.hu/c/{Z}/{X}_{Y}.png"; };
    tilelayer.isPng = function() { return true;};
    tilelayer.getOpacity = function() { return 1.0; }

    var myTileLayer = new GTileLayerOverlay(tilelayer);
    map.addOverlay(myTileLayer);
*/    
    
    var tileLayerOverlay = new GTileLayerOverlay(
      new GTileLayer(null, null, null, {
//        tileUrlTemplate: 'http://localhost/0/{Z}/{X}/{Y}.png', 
        tileUrlTemplate: 'http://i.ittvoltam.hu/c/{Z}/{X}/{Y}.png', 
        isPng:true,
        opacity:1.0
      })
    );
    map.addOverlay(tileLayerOverlay);
   
    
    showLatLng(map.getCenter());
    showZoom();
  }
}
    
function pageUnload()
{
  GUnload();
}


function OnSucceeded(ro)
{
  var info = $get("places");
  info.innerHTML = ro.content;
  
  var xml = GXml.parse(ro.content2); 
  if (xml.documentElement)
  {
    var points = xml.documentElement.getElementsByTagName("point"); 
    var point;
    var item, id;
    var markers = [];
    
    for (var i = 0; i < points.length; i++) 
    { 
      item = points[i];
      id = parseInt(item.getAttribute("id"));
      if (Array.indexOf(idArray, id) < 0)
      {
        Array.add(idArray, id);
        point = new GLatLng(parseFloat(item.getAttribute("lat")), parseFloat(item.getAttribute("lng"))); 
        markers.push(createMarker(point, item));
      }
    }
    if (markers.length > 0)
    {
      mgr.addMarkers(markers, 12);  
      mgr.refresh();
    }  
  }  
  
  /*
  var a2 = new AjaxControlToolkit.Animation.ColorAnimation(info, 0.3, 25, "style", "backgroundColor", "#FFFFFF", "#FFCC00");
  var a3 = new AjaxControlToolkit.Animation.ColorAnimation(info, 1.0, 25, "style", "backgroundColor", "#FFCC00", "#FFFFFF");
  AjaxControlToolkit.Animation.SequenceAnimation.play(info, null, 30, [a2, a3], 1); 
  */
  inProgress = false;
}

function createMarker(point, item) 
{  
  var icon = new GIcon();
  icon.image = 'http://i.ittvoltam.hu/icon/ka.png';
  icon.iconSize = new GSize(13, 13);
  icon.iconAnchor = new GPoint(6, 6);
  icon.infoWindowAnchor = new GPoint(6, 6);
  
  var marker = new GMarker(point, icon);  
  GEvent.addListener(marker, "click", function() 
  {
    window.open('http://www.ittvoltam.hu/ittvoltam.aspx?id=' + item.getAttribute("guid"), "_blank");  
  });
  return marker;
}

function OnFailed(error)
{
  Animare.IttVoltam.Web.WebService.Command.Error(
    error.get_exceptionType(),
    error.get_message(),
    error.get_statusCode(),
    error.get_stackTrace(),
    error.get_timedOut()
  );
}


if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();








