
/*
 *  Javascript associated with googlemaps plugin
 */

var maptypes = { map : 'G_MAP_TYPE', hybrid : 'G_HYBRID_TYPE', satellite : 'G_SATELLITE_TYPE' };

function in_array(needle, haystack) {
  for (var i=0; i<haystack.length; i++)
    if (haystack[i] == needle) return true;
  
  return false;
}

function init_googlemaps() {

  // nothing to do?
  if (googlemap.length == 0) return;
  
  // retrieve all google map containers
  var nodes = document.body.getElementsByTagName('div');
  
  var i=0;
  for (var j=0; j<nodes.length; j++) {
    if (nodes[j].className.match(/\bgooglemap\b/)) {
      googlemap[i++].node = nodes[j];
    }
  }
  
  // iterate through all the map containers and set up each map
  for (i=0; i<googlemap.length; i++) {
    googlemap[i].map = new GMap(googlemap[i].node);
    
    with (googlemap[i]) {
      if (controls == 'on') {
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
      }
      map.centerAndZoom(new GPoint(lon, lat), zoom);  
      
      var supported = map.getMapTypes();
      var requested = maptypes[type];
      
      map.setMapType(in_array(requested,supported) ? requested : supported[0]);
    }
  }
}


var googlemap = new Array();
addInitEvent(init_googlemaps);
