//this is primary function that is called -
//from an onclick event in a link:

function gload( lat, lon, gheight, gwidth, gcontrol, gcontrol_pos, gtype, gselect, gzoom )
{
	if( mapload( lat, lon, gheight, gwidth, gcontrol, gcontrol_pos, gtype, gselect, gzoom ) )
	{ 
	  	//if so, then make the thickbox call:
	   	// opens the map_window div into thickbox
	    tb_show('', '#TB_inline?height=gheight&width=gwidth&inlineId=test_map', true );
	}
}

function mapload( lat, lon, gheight, gwidth, gcontrol, gcontrol_pos, gtype, gselect, gzoom ) 
{
	//if (GBrowserIsCompatible()) 
	//{
		 //this is the construct you need to use to get the map to display correctly:
		 var map = new GMap2(document.getElementById( "test_map" ),
		    {size: new GSize(gwidth,gheight)});  //this is where the height and width are set.
                 //map.removeMapType(G_HYBRID_MAP);

		switch( gcontrol_pos ) 
		{
		    case G_ANCHOR_TOP_RIGHT:  
						var control_pos = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
		    break;

		    case G_ANCHOR_TOP_LEFT:  
						var control_pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,10));            
		    break;

		    case G_ANCHOR_BOTTOM_RIGHT:   
						var control_pos = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));
		    break;

				case G_ANCHOR_BOTTOM_LEFT:  
						var control_pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(10,10));
		    break;

		    default: 
						var control_pos = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
		    
		    break;
		}

		if( gselect == 1 )
		{
			var mapControl = new GMapTypeControl();
		 	map.addControl( mapControl );
		}

		switch( gcontrol ) 
		{
		    case GLargeMapControl3D:  
						map.addControl(new GLargeMapControl3D(), control_pos );
		    
		    break;
		    case GLargeMapControl:  
						map.addControl(new GLargeMapControl(), control_pos );
		    
		    break;
		    case GSmallMapControl:   
						map.addControl(new GSmallMapControl(), control_pos );
		    
		    break;
		    default: 
						map.addControl(new GSmallMapControl(), control_pos );
		    
		    break;
		}

		switch( gtype ) 
		{
			case G_NORMAL_MAP:  
						map.addMapType( G_NORMAL_MAP );
						map.setCenter(new GLatLng(lat,lon),gzoom,G_NORMAL_MAP);      
			break;
			case G_SATELLITE_MAP:  
						map.addMapType( G_SATELLITE_MAP );
						map.setCenter(new GLatLng(lat,lon),gzoom,G_SATELLITE_MAP);        
			break;
			case G_HYBRID_MAP:   
						map.addMapType( G_HYBRID_MAP );	  
						map.setCenter(new GLatLng(lat,lon),gzoom,G_HYBRID_MAP);      
			break;
				case G_PHYSICAL_MAP:   
						map.addMapType( G_PHYSICAL_MAP );  
						map.setCenter(new GLatLng(lat,lon),gzoom,G_PHYSICAL_MAP);      
			break;

			default: 
						map.addMapType( G_NORMAL_MAP );
						map.setCenter(new GLatLng(lat,lon),gzoom,G_NORMAL_MAP);
			break;
		}

		 // Add marker
		 var point = new GLatLng(lat,lon);
		 map.addOverlay(new GMarker(point));
		 return true;
	//}
}

