﻿//GLOBAL VARIABLES
this._editItem;
this._applicationName = "http://www.gustamap.com";
var map;
//GLOBAL VARIABLES

var iconBlue = new GIcon(); 
iconBlue.image = 'images/icons/pin.png';
//iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconBlue.iconSize = new GSize(42, 59);
iconBlue.shadowSize = new GSize(22, 20);
iconBlue.iconAnchor = new GPoint(5, 58);
iconBlue.infoWindowAnchor = new GPoint(5, 1);

var iconOver = new GIcon();
iconOver.image = 'images/icons/pin2.png';
//iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconOver.iconSize = new GSize(42, 59);
iconOver.shadowSize = new GSize(22, 20);
iconOver.iconAnchor = new GPoint(5, 58);
iconOver.infoWindowAnchor = new GPoint(5, 1);


function LoadMap( container,lat,lng,zoom ) {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById(container));
        map.setCenter(new GLatLng(lat, lng,true), zoom);
        
        map.addControl(new GSmallMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GMapTypeControl());
      }
}

function LoadSmallMap(container,lat,lng,zoom, callback)
{
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById(container));
        map.setCenter(new GLatLng(lat, lng,true), zoom);
        
        map.addControl(new GSmallMapControl());

        if (!callback)
            return;
        GEvent.addListener(map, "click", function(a,latlng,b) {
        if(this._editItem)
            {
                map.removeOverlay(this._editItem);
            }
            
            this._editItem = new GMarker( latlng ,{ draggable:false}); 
            map.addOverlay(this._editItem);
            callback(latlng.lat(),latlng.lng());
         });
      }
}

function LoadSmallMap_Profile(container,lat,lng,zoom)
{
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById(container));
        map.setCenter(new GLatLng(lat, lng,true), zoom);
        
        map.addControl(new GSmallMapControl());
        
        GEvent.addListener(map, "click", function(a,latlng,b) {
        if(this._editItem)
            {
                map.removeOverlay(this._editItem);
            }
            
            this._editItem = new GMarker( latlng ,{ draggable:false}); 
            map.addOverlay(this._editItem);
            document.getElementById('ctl00_ContentPlaceHolder1_vwLogin_cuwUserProfile_CreateUserStepContainer_hfdLat').value = latlng.lat();
            document.getElementById('ctl00_ContentPlaceHolder1_vwLogin_cuwUserProfile_CreateUserStepContainer_hfdLng').value = latlng.lng();
            
         });
      }
}

function LoadSmallMap_UpdateProfile(container,lat,lng,zoom)
{
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById(container));
        map.setCenter(new GLatLng(lat, lng,true), zoom);
        
        map.addControl(new GSmallMapControl());
        
        GEvent.addListener(map, "click", function(a,latlng,b) {
        if(this._editItem)
            {
                map.removeOverlay(this._editItem);
            }
            
            this._editItem = new GMarker( latlng ,{ draggable:false}); 
            map.addOverlay(this._editItem);
            document.getElementById('ctl00_ContentPlaceHolder1_hfdLat').value = latlng.lat();
            document.getElementById('ctl00_ContentPlaceHolder1_hfdLng').value = latlng.lng();
            document.getElementById('ctl00_ContentPlaceHolder1_hfdZoom').value = map.getZoom();

            
         });
      }
  }

  function AddMarkerWithZoom(lat, lng,zoom) {
      var marker = new GMarker(new GLatLng(lat, lng, true), { icon: eval("iconBlue"), draggable: false });
      map.addOverlay(marker);
      map.setCenter(new GLatLng(lat, lng, true), zoom);

  }

function AddMarker(lat,lng)
{
    var marker = new GMarker( new GLatLng( lat,lng,true) ,{icon:eval("iconBlue"), draggable:false});
    map.addOverlay(marker);
    map.setCenter(new GLatLng(lat, lng,true), 13);
    
}

function RemoveMarker( marker )
{
    map.removeOverlay(marker);
}

function GetMarkers()
{
    PageMethods.GetMarkers( OnCallComplete, OnCallError );
}

function OnCallComplete(result, userContext, methodName) {
    GMarker.prototype.Url = "";
    var i;
    for(i=0; i<result.length; i++)
    {
        var marker = new GMarker( new GLatLng( result[i].Lat,result[i].Lng) ,{icon:eval("iconBlue"),title:result[i].Title, draggable:false});
        marker.Url = result[i].Url;
//        GEvent.addListener(marker,"mouseover",function() {_isOnMarker = true; _editItem = this;});
//        GEvent.addListener(marker,"mouseout",function() {_isOnMarker = false;_editItem = this;});
        GEvent.addListener(marker,"click",function( ) {  Marker_OnClick( this );  });
        map.addOverlay(marker);
    }
}
function OnCallError(error, userContext, methodName) {
    if(error !== null) {
        alert(error.get_message());
    }
}

function Marker_OnClick( marker )
{
    _editItem = marker; 
    marker.openInfoWindow( ' <table> <tr><td><iframe src="'+this._applicationName+'/LandmarkInfo.aspx?url='+marker.Url+'" width="450px" height="200px" scrolling="No" frameborder="0"></iframe></td><td width="10px"></td></tr></table> ' );
}

this.RemoveMarker = RemoveMarker;
