/******************************/
function gmap3(map_params,pin_params) {
	
	var bubble_arr = pin_params[0];
	var lat_arr = pin_params[1];
	var lon_arr = pin_params[2];
	var marker_arr = new Array();
	var map;
	
	this.setup = setup;
	this.map_setup = map_setup;
	this.add_all_pins = add_all_pins;
	this.create_marker = create_marker;
	this.add_bubble = add_bubble;
	this.add_pin = add_pin;
	this.popup = popup;
	
	/*******************************/
		function setup(){
			map = map_setup();
			add_all_pins();	
		}
	/******************************/
		function map_setup(){
			
			var name = map_params[0];
			var lat = map_params[1];
			var lon = map_params[2];
			var zoom = map_params[3];
			var map = new GMap2(document.getElementById(name));
			var mapTypeControl = new GMapTypeControl();
			var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(5,5));
			var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5,5));		
			map.addControl(mapTypeControl, topRight);
			GEvent.addListener(map, "dblclick", function() {
				  map.removeControl(mapTypeControl);
				  map.addControl(new GMapTypeControl(), topRight);
			});
			map.addControl(new GSmallMapControl());
			map.setCenter(new GLatLng(lat,lon), zoom);
			return map;
		}
	/******************************/
		function add_all_pins(){
			for(var i=0 ; i<bubble_arr.length ; i++){
				marker_arr[i] = create_marker(lat_arr[i],lon_arr[i]);
				add_bubble(marker_arr[i],bubble_arr[i]);
				add_pin(map,marker_arr[i]);
			}
		}
	/******************************/
		function add_bubble(mark,bub){
			GEvent.addListener(mark, "click", function() {
				mark.openInfoWindow(bub);
			});		
		}
	/******************************/
		function add_pin(map,mark){
			map.addOverlay(mark);		
		}
	/******************************/
		function popup(i){
				 marker_arr[i].openInfoWindow(bubble_arr[i]);
		}
}
/******************************/
function create_marker(lat,lon){
	
	var baseIcon = new GIcon();
	baseIcon.image = "http://www.google.com/mapfiles/marker.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.infoShadowAnchor = new GPoint(10, 0);
	baseIcon.infoWindowAnchor = new GPoint(10, 0);

	var point = new GLatLng(lat,lon);
	marker = new GMarker(point,baseIcon);
	return marker;
}

