var baseIcon = null;
var map = null;
var point = null;
var bounds = null;
var icon = null;
var marker = null;
var markers = [];

function mapload() {
	
      if (GBrowserIsCompatible()) {
	  	
		bounds = new GLatLngBounds();
        map = new GMap2(document.getElementById("map"));
		var point = new GLatLng(52.131420, -106.645940);
		
		map.addControl(new GMapTypeControl());
		map.addControl(new GSmallZoomControl());
		map.addControl(new GScaleControl());
		
        map.setCenter(point, 15);
		
		var baseIcon = new GIcon();
		baseIcon.shadow = "http://www.affinitycu.ca/common/images/maps/icon_shadow.png";
		baseIcon.iconSize = new GSize(32, 32);
		baseIcon.shadowSize = new GSize(32, 32);
		baseIcon.iconAnchor = new GPoint(15, 32);
		baseIcon.infoWindowAnchor = new GPoint(10, 2);
		
		var icon = new GIcon(baseIcon);
		
		icon.image = "http://www.affinitycu.ca/common/images/maps/a-icon.png";
		
		label = 1;  
	  	
		addBranchMarkers(icon);
	  	  
	}	


}

function createMarker(point, icon, html) {
	
  var marker = new GMarker(point, icon);
  
  if (html != null) {
  
	  GEvent.addListener(marker, "click", function() {
	    marker.openInfoWindowHtml(html);
	  });
  
  }
  return marker;
}


function addMapClickHandlers() {

	regionButton();
	locationButton();
   
}

function setpage() {

	$("#maplist > li > a").find("+ ul").slideUp(1);

}

function locationButton() {

   $(".branchname a").click(function() {
	   
   		$(".branchname > a").removeClass("selected");
		
		if ($(this).parent().find("+ .branchdetails").css("display") == "none") {
		
			$(this).addClass("selected");
			mapPan($(this).attr('id').substring(8));
		
		}
		
		$(this).parent().find("+ .branchdetails").toggle();
		
		return false;
 
   });

}


function regionButton() {

   $("#maplist li a").click(function() {
 
	   //console.log('clicked');
		$(this).find("+ ul").toggle();
		$(this).toggleClass("minus");
		
		return false; 		
 
   });

}

function mapPan(pointid) {
	
	for (i = 0; fsbranches[0].places.length > i; i++) {
		
		if (fsbranches[0].places[i].id == pointid) {
			
			var mybranch = fsbranches[0].places[i];
			var mybranchid = fsbranches[0].places[i].id;
			var mybranchy = fsbranches[0].places[i].posn[0];
			var mybranchx = fsbranches[0].places[i].posn[1];
			var mybranchhtml = fsbranches[0].places[i].html;
			
		}
		
	}
	
	for(i = 0; markers.length > i; i++) {
		
		mylatlng = markers[i].getLatLng();
		
		myx = mylatlng.x;
		myy = mylatlng.y;
		
		if ((myx == mybranchx) && (myy = mybranchy)) {
			
			markerid = i;
			
		}
		
	}
	
	GEvent.trigger(markers[markerid], "click");
	
	map.setZoom(12);
	map.setCenter(new GLatLng(mybranch.posn[0], mybranch.posn[1]));

}

function addBranchMarkers(branchicon) {

	var mgr = new GMarkerManager(map);
	
	for (var i = 0; i < fsbranches[0].places.length; i++) {
	
		branchinfo = fsbranches[0].places[i];
	
		point = new GLatLng(branchinfo.posn[0], branchinfo.posn[1]);
		bounds.extend(point);
		var clat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) /2;
		var clng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) /2;
		html = branchinfo.html;
		
		markers.push(createMarker(point, branchicon, html));
		
		map.setCenter(new GLatLng(clat,clng));
		
	}
	
	mgr.addMarkers(markers, fsbranches[0].zoom[0], fsbranches[0].zoom[1]);	
	mgr.refresh();
	
	map.setZoom(map.getBoundsZoomLevel(bounds));

}

$(document).ready(function(){
	
	setpage();
	addMapClickHandlers();

});
