var pinDataArray = new Array();
var map;
		
function isBrowserIsCompatible() {
  try {    
    return GBrowserIsCompatible();    
  } catch (e) {  
    // no gmap file available
    return false;
  }
}      
		
function OnPageLoad(){  
  if (isBrowserIsCompatible()) {		
    try {
      var mapDiv = document.getElementById("myMap");      
      map = new GMap2(mapDiv);
    } catch (e) {
      alert("Please update your browser! The map functionality is not available!");
      return;
    }
                
    SetMapView();
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());              
	                
    SetPushpins();       
  }	                
}

		
function OnPageUnload() {		   
  try {      	
    GUnload();
  } catch (e) {
  
  } 	
}
		         
function PinData() {
	this.title = "";
	this.description = "";
	this.iconURL = "";
	this.refURL="";
	this.latitude = 0;
	this.longitude = 0;
	try {
	  this.tinyIcon = new GIcon();
	} catch (e) {
  
    }
	return this;
}

function SetPushpins() {	
	if (pinDataArray.length == 0) {		
		return;
	}	
	for (var i = 0; i < pinDataArray.length; i++) {
		var data = pinDataArray[i];
		var pin = createMarker(data, i);
		map.addOverlay(pin);
	}	
}

function createMarker(data, number) {	
	data.tinyIcon.iconSize = new GSize(17, 20);
	data.tinyIcon.shadowSize = new GSize(28, 20);
	data.tinyIcon.iconAnchor = new GPoint(6, 20);
	data.tinyIcon.infoWindowAnchor = new GPoint(5, 1);
	var markerOptions = { icon:data.tinyIcon };	
	var point = new GLatLng(data.latitude, data.longitude);
	var marker = new GMarker(point, markerOptions);
	//var message = "<a href='"+data.refURL+"'><b>" + data.title + "</b></a><br/><img src='"+data.iconURL+"'/><br/>" + data.description; 
	var message = "<b>" + data.title + "</b>";
	marker.value = number;
	//GEvent.addListener(marker, "click", function() {	    
	//    map.openInfoWindowHtml(point, message);  
	//});
	return marker;
}

function SetMapView() {	
	if(pinDataArray.length==0) {
		return;
	}
	
	var minLat;
	var maxLat;	
	var minLong;
	var maxLong;
	
	for (var i = 0; i < pinDataArray.length; i++) {
		var data = pinDataArray[i];
		if(i==0) {
			minLat = data.latitude;
			maxLat = data.latitude;
			minLong = data.longitude;
			maxLong = data.longitude;
		} else {
			if(data.latitude<minLat) {
				minLat = data.latitude; 
			}
			if(data.latitude>maxLat) {
				maxLat = data.latitude; 
			}
			if(data.longitude<minLong){
				minLong = data.longitude; 
			}
			if(data.longitude>maxLong){
				maxLong = data.longitude; 
			}
		}
	}
	
	var locationSW = new GLatLng(minLat, minLong);	
	var locationNE = new GLatLng(maxLat, maxLong);	
	
	var bounds = new GLatLngBounds();
	bounds.extend(locationSW);
	bounds.extend(locationNE);
	map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	
}
