function google_map(gid, address, cb, pp_marker) {
	geocoder = new google.maps.Geocoder();

	geocoder.geocode({ address: address, partialmatch: true }, function(results, status) {
		if(status == google.maps.GeocoderStatus.OK && results.length) {
			if(status != google.maps.GeocoderStatus.ZERO_RESULTS) {				
				var map = new google.maps.Map($(gid), {
					zoom: 9,
					center: results[0].geometry.location,
					mapTypeId: google.maps.MapTypeId.ROADMAP,
					mapTypeControl: false
				});		
				
				var marker = new google.maps.Marker({
					position: results[0].geometry.location, 
					map: map
				});				
				
				if(pp_marker) {
					google.maps.event.addListener(marker, 'click', function() {					
						window.open('http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=' + address, '_' + gid, "height=500,width=700,menubar=no,status=no")
					});					
				}
				
				if(cb && typeof cb == 'function')
					cb(map, marker);
			}
		} else {
			// fail
		}
	});		
}
