var map = null;
var icon = null;
var tooltipDiv;
//var loadedProperties;
var bounds;
var freshlySavedProperties = [];

function getMousePosition(e)
{
        var x;
        var y;
        if(!e) window.event;
        if(e.pageX || e.pageY)
        {
                x = e.pageX;
                y = e.pageY;
        }
        else if (e.clientX || e.clientY)
        {
                x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
                y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
        }

        return {x: x, y: y};
}

function getObjectPosition(obj)
{
        if(typeof obj == 'string')
        {
                obj = document.getElementById(obj);
        }
        var left = 0;
        var top  = 0;
        if (obj.offsetParent)
        {
                left = obj.offsetLeft
                top  = obj.offsetTop
                while (obj = obj.offsetParent)
                {
                        left += obj.offsetLeft
                  top  += obj.offsetTop
                }
        }
        return {x: left, y: top};
}

function closeInfoWindow()
{
  if (tooltipDiv)
  {

             tooltipDiv.style.visibility="hidden";
  }
}

//                var baseIcon = new GIcon();
//                baseIcon.shadow = FLGL_BASE + 'img/homeIcon.gif';
//    baseIcon.iconSize = new GSize(34, 35);
////    baseIcon.shadowSize = new GSize(37, 35);
//    baseIcon.iconAnchor = new GPoint(9, 35);
//    baseIcon.infoWindowAnchor = new GPoint(9, 2);
//    baseIcon.infoShadowAnchor = new GPoint(18, 25);
//    icon = new GIcon(baseIcon);
//    icon.image = FLGL_BASE + 'img/homeIcon.gif';

function showGeopoint(longitude, latitude, htmlInfo, moveToPoint, finid)
{
    if(latitude==0 || longitude==0) { return false; }
           var marker = new GMarker(new GLatLng(longitude, latitude));
         if(NO_MARKER_INFO!=1)
         {
        GEvent.addListener(marker, "mouseover", function()
        {
        var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
        var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
        var anchor=marker.getIcon().iconAnchor;
        var width=marker.getIcon().iconSize.width;
        var height=120;
        x=offset.x - point.x - anchor.x;
        y=offset.y - point.y -anchor.y;

          x=x-235;
          y=y+10;

                var s = '<div style="width:236px;height:120px;">';
                s += '<div class="content_tooltip">'+htmlInfo+'</div>';
                s += '</div>';
                tooltipDiv.innerHTML = s;
         var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y));
        pos.apply(tooltipDiv);
             tooltipDiv.style.visibility="visible";
        });
        }

        map.addOverlay(marker);
        bounds.extend(new GLatLng(longitude, latitude));
}

var firstTimeLoaded = true;

function initNXGMap(mapElement)
{
        if (GBrowserIsCompatible())
        {
                map = new GMap2(mapElement);
                map.addControl(new ToggleZoomControl());
                map.addControl(new TextualZoomControl());
                map.addControl(new MapTypeControl());

                map.disableDoubleClickZoom();

       tooltipDiv = document.createElement("div");
      map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltipDiv);
      tooltipDiv.style.visibility="hidden";


                GEvent.addListener(map, "dragstart", function(overlay, point)
                {
                        tooltipDiv.style.visibility="hidden";
                });

/*GEvent.addListener(map,"click",function(overlay,point)
{
alert(point.lat() + '  ' + point.lng());
});*/

                GEvent.addListener(map, "zoomend", function(oldZoom, newZoom)
                {


               tooltipDiv.style.visibility="hidden";

                });
                map.setCenter(new GLatLng(FLGL_MAP_START_POSITION.lat, FLGL_MAP_START_POSITION.lng), 9);
                bounds = new GLatLngBounds();
                initZoomConstrolDiv();

                        }
        else
        {
                alert("Unfortunately, your browser is not compatible to run Google Maps");
        }
}
function initNXGMap2(mapElement)
{
       if (GBrowserIsCompatible()) {
         map = new GMap2(mapElement);
             map.addControl(new GSmallMapControl());
              map.addControl(new GMapTypeControl());
                 bounds = new GLatLngBounds();

              icon = new GIcon();
icon.image = FLGL_BASE+'img/marker/flag_2.gif';
icon.iconSize = new GSize(18, 27);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);
                  tooltipDiv = document.createElement("div");
      map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltipDiv);
      tooltipDiv.style.visibility="hidden";


      }


}
var animationInterval;
var dragMovedWindow;

function SaveProperty(event, finid, photo, price, beds, baths, loc, borough, state)
{
        if(!event)
        {
          event = window.event;
        }
        if(!dragMovedWindow)
        {
                dragMovedWindow = document.createElement('div');
                dragMovedWindow.className = 'savePropertyBox';
                dragMovedWindow.style.position = "absolute";
                dragMovedWindow.style.zIndex = 1000;
                dragMovedWindow.style.display = 'none';

                document.body.appendChild(dragMovedWindow);
        }
        var pos = getMousePosition(event);


        var str = '<div class="ctr" style="position:relative;background:#FFFFFF;border:4px solid #0A7488;font-size:10px;width:168px;height:95px;">'
                        + '<img class="savingPropertyImg" src="'+FLGL_BASE+'img/saving_property.gif"'
                        +        'style="border:0;margin-bottom:2px;" />'
                        + '<img src="'+photo+'"'
                        +        'style="border:1px solid #0A7488;width:62px;height:42px;float:left;margin-right:3px" />'
                        + '<div>Web ID: <span style="color:#F68F29">' + finid + '</span></div>'
                        + '<div style="color:#57A0E3;font-size:11px;font-weight:bold;">$'+price+'</div>'
                        + '<div style="color:black;">Condo<br />'+beds+'  '+baths+' bath</div>'
                        + '<div style="clear:both;color:black;">'+loc+', '+borough+' '+state+'</div>'
                  + '</div>';
        dragMovedWindow.innerHTML = str;

    if(tooltipDiv!==undefined)  tooltipDiv.style.visibility="hidden";
    //   $jquery(dragMovedWindow).show();

    $jquery(dragMovedWindow).css('top', (pos.y-100) + 'px');
    $jquery(dragMovedWindow).css('left', (pos.x-125) + 'px');
      //      $jquery(dragMovedWindow).offset({ top: pos.y-100, left: pos.x-125 });
        $jquery(dragMovedWindow).fadeIn("slow");
      $jquery(dragMovedWindow).corner("round 15px cc:#0A7488");
                        var dropzone = document.getElementById('dropZone');
                var pos2 = getObjectPosition(dropzone);

                dragMovedWindow.id = 'temporary_' + finid;

                var wdwLowerX = false;
                var wdwLowerY = false;

                // Window position is lower than a dropZone
                if(pos.x < pos2.x)
                        wdwLowerX = true;

                // Window position is lower than a dropZone
                if(pos.y < pos2.y)
                        wdwLowerY = true;

                var x, y;

                var dzY, dzX;
                dzY = pos2.y;
                dzX = pos2.x;
                changeDropZone('active');
                // in pixels
                var animStep = 30;
                var pos3 = $jquery(dragMovedWindow).position();
           // alert(dzY+"-"+dzX+"--"+pos3.left+"-"+pos3.top)
    new Effect.Move(dragMovedWindow, {x:dzX,y:dzY,mode:'absolute',delay:1.1,duration:1.7,
    afterFinish:function(){
              $jquery(".savingPropertyImg").attr({src: FLGL_BASE+'img/saved_property.gif' });
                setTimeout(stopAnimation, 1000);
                      freshlySavedProperties.push(finid);
                       $jquery('#innerdropZone').show();
            }
    });
         //      $jquery(dragMovedWindow).delay(800).animate({left: "+="+(dzX-pos3.left)+"px",top: "-="+(pos3.top-dzY)+"px"},2100, function() {
           //    $jquery(".savingPropertyImg").attr({src: FLGL_BASE+'img/saved_property.gif' });
             //   setTimeout(stopAnimation, 1000);
               //       freshlySavedProperties.push(finid);

//  });


}
  function MoveEffect(element){
       new Effect.Move(element, {x:10,y:10,mode:'absolute',duration:1})
   }
function stopAnimation()
{
//        clearInterval(animationInterval);
        $jquery(dragMovedWindow).hide();
        onDrop(dragMovedWindow);


        changeDropZone();
}

function changeDropZone(type)
{
        if(type == 'active')
        {
                $jquery("#dropZone").css( { backgroundColor: "#FD8700" } )

        }
        else
        {
               $jquery("#dropZone").css( { backgroundColor: "#EBEBEB" } )
        }
}

function onDrop(e, finid)
{
        var params = {};

        if(e.id)
        {
                var id = e.id.split('_')[1];
                var params = {id: id};
       $jquery("#savedProperties").load("ajax/favourites.php",{id: id},function() {
  $jquery("#num_favourites").load("ajax/favourites.php",{num_favourites: 1});
});

        }

        if(finid)
        {
                params.remove = finid;
                 $jquery("#savedProperties").load("ajax/favourites.php",{remove: finid},function() {
                           $jquery("#num_favourites").load("ajax/favourites.php",{num_favourites: 1});
                             });

        }




}

function RemoveProperty(finid)
{

       $jquery('#savedProperty'+finid).fadeOut("slow");
    setTimeout(function() {
      onDrop({}, finid);
    }, 1000);
}


var win = false;

function showWindow(finid)
{
        if(!tooltipDiv)
        {
                tooltipDiv = document.createElement('div');
                tooltipDiv.className = "detailsCustomInfoWindow";

                document.body.appendChild(tooltipDiv);
        }
        else
        {
               $jquery(tooltipDiv).hide();
        }


}



function printVersion(finid)
{
        window.open(FLGL_BASE+'printable.php?FINID='+finid, '','scrollbars, resizable,width=600,height=550');
}
function ZoomEnd()
{
            //    alert('start')
                  map.clearOverlays();
                     var coords = map.getBounds();
                  var sw = coords.getSouthWest();
                  var ne = coords.getNorthEast();

                        var swStr = "swLat="+sw.lat()+"&swLng=" + sw.lng();
                        var neStr = "neLat="+ne.lat()+"&neLng=" + ne.lng();
   $jquery('#search-loader').show();
   //alert('ajax/search.php?'+swStr+'&'+neStr)
                       $jquery.getJSON('ajax/get_zoom_homes.php?'+swStr+'&'+neStr, function(json) {
 //    alert(json.totalCount+"gvb");
                      if(json.totalCount > 0)
                                {
                                  bounds = new GLatLngBounds();
                                  for (i=0; i < json.properties.length; i++)
                                  {
                                          showGeopoint(json.properties[i].lng, json.properties[i].lat, json.properties[i].html, 0, json.properties[i].FINID);
                                        zoomToBounds();
                                  }
                                }
                                $jquery('#search-loader').hide();
                       });
                       zoomToBounds()
}
function zoomToBounds()
{
        var zoom = map.getBoundsZoomLevel(bounds);
        if(zoom > 17) zoom = 17;
        map.setCenter(bounds.getCenter(), zoom);
}
