
var map;
maps = new Array();
points=new Array();
currentMarker=null;

gmap=function(canvas) {
    if(maps[canvas]==undefined) {
      if (GBrowserIsCompatible()) {
        maps[canvas] = new GMap2($(canvas));
        maps[canvas].setCenter(new GLatLng(48.856667,2.350987), 5);
        //maps[canvas].enableScrollWheelZoom();
        maps[canvas].enableContinuousZoom();
        maps[canvas].enableDoubleClickZoom();
        maps[canvas].addControl(new GSmallMapControl());
      }
      map = maps[canvas];
      GEvent.addListener(map,'zoomend',function() {
       updateMarkers();
    });
    GEvent.addListener(map,'moveend',function() {
      updateMarkers();
    });
    };
}

updateMarkers=function() {
  if(!map.getInfoWindow().isHidden()) return;
  map.clearOverlays();//remove the existing points
  var bounds = map.getBounds();//create the boundary for the data
  var southWest = bounds.getSouthWest();
  var northEast = bounds.getNorthEast();
  var getVars = 'ne=' + northEast.toUrlValue() + '&sw=' + southWest.toUrlValue()
  searchPosts(getVars);
}

function isEnterKey(evnt) {
    var myKeyCode = window.event ? evnt.keyCode : evnt.which;
    if (myKeyCode == 13) {
        return true;
    }
    return false;
}


searchPlace=function() {
    $('spin').style.visibility='visible';
    var script = document.createElement('script');
    script.setAttribute('id', 'search');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', 'http://geocoding.blogspirit.net/ws/search.php?callback=displayMarker&format=json&q='+$('location').value);
    document.documentElement.firstChild.appendChild(script);
}


displayMarker=function(json) {
    defaultZoom = 9;
    $('spin').hide();
    map.clearOverlays();
    if(json.values==1) {
        point = new GLatLng(json['points'][0]['lat'], json['points'][0]['long']);
        map.setCenter(point, defaultZoom);
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var getVars = 'ne=' + northEast.toUrlValue(6) + '&sw=' + southWest.toUrlValue(6);
        searchPosts(getVars);
    }
    return;
    for(var i=0 ; i < json.values ; i++) {
      points[i] = new GLatLng(json['points'][i]['lat'], json['points'][i]['long'] );
      var marker = createMarker(points[i], json['points'][i]['address']);
      map.addOverlay(marker);
   };
   $('choice_locations').innerHTML=json.html;
   var bounds = new GLatLngBounds();
   for (var i = 0; i < points.length; i++) {
     bounds.extend(points[i]);
   }
   if(points.length==1) {
     map.setCenter(points[0],map.getBoundsZoomLevel(bounds)); //defaultZoom);
    } else {
      map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
   }
}

function createMarker(point, legende) {
  var marker = new GMarker(point,{draggable:false});
  GEvent.addListener(marker, 'click', function() {
      currentMarker=marker;
      displayContent(legende);
  });
  return marker;
}

function _e(func,pos) {
    map.clearOverlays();
    map.setCenter(points[0],defaultZoom);
    var bounds = map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    var getVars = 'ne=' + northEast.toUrlValue() + '&sw=' + southWest.toUrlValue();
    searchPosts(getVars);
}

searchPosts=function(vars) {
    //$('spin').style.visibility='visible';
    var script = document.createElement('script');
    script.setAttribute('id', 'search');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', registry.admin_url+'geomaps/bounds.php?callback=displaypostsMarker&format=json&'+vars);
    document.documentElement.firstChild.appendChild(script);
}

displayContent=function(vars) {
    //$('spin').style.visibility='visible';
    var script = document.createElement('script');
    script.setAttribute('id', 'search');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', registry.bcm_url+'portalfeeds/infowindow.php?callback=infowindow&format=json&'+vars+'&language='+registry.language);
    document.documentElement.firstChild.appendChild(script);
}

infowindow=function(json) {
      tabs=new Array();
      for(var i=0,max=json.length;i<max;i++) {
        tabs[i]=new GInfoWindowTab(json[i].label,json[i].html);
      }
    currentMarker.openInfoWindowTabsHtml(tabs);/* ,{maxContent:json[0].html} */
}

displaypostsMarker=function(json) {
  if(json) {
      for(var i=0;i < json.markers.length;i++) {
       points[i] = new GLatLng(json.markers[i]['lat'], json.markers[i]['lng'] );
       params='&';
       if(json.markers[i]['post_id']) params+="post_id="+json.markers[i]['post_id']+'&';
       if(json.markers[i]['media_id']) params+="media_id="+json.markers[i]['media_id'];
       var marker = createMarker(points[i],params);
       map.addOverlay(marker);
      };
  }
}

window.onload=function() {if($('map_canvas')) gmap('map_canvas');updateMarkers();}
window.onunload=function() {if(typeof(GUnload)=='function') GUnload();}