var baseIcon = null;
var map = null;
var point = null;
var bounds = null;
var fsicon = null;
var aicon = 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.setCenter(point, 15);
		
		var baseIcon = new GIcon();
		baseIcon.shadow = "http://www.firstsask.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);
		
		fsicon = new GIcon(baseIcon);
		
		fsicon.image = "http://www.firstsask.ca/common/images/maps/icon.png";
		
		aicon = new GIcon(baseIcon);
		
		aicon.image = "http://www.firstsask.ca/common/images/maps/a-icon.png";
		
		nicon = new GIcon(baseIcon);
		
		nicon.image = "http://www.firstsask.ca/common/images/maps/n-icon.png";
		
		label = 1;
	  	
		addBranchMarkers();
	  	  
	}	


}

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 addClickHandlers() {

	regionButton();
	locationButton();
   
}

function setpage() {

	$("#maplist > li > a").find("+ ul").slideUp(1);

}

function locationButton() {

   $(".cityname > a", this).click(function() {
   
   		//$(".branchname > a").removeClass("selected");
		
		//if ($(this).parent().find("+ .branchdetails").css("display") == "none") {
		
		
			//alert($(this).attr('id').substring(8));
			//$(this).addClass("selected");
			mapPan($(this).attr('id').substring(8));
		
		//}
		
		//$(this).parent().find("+ .branchdetails").toggle();
		
		return false;
 
   });

}


function regionButton() {

   $("#maplist > li > a", this).click(function() {
 
		$(this).find("+ ul").toggle();
		$(this).toggleClass("minus");
		
		return false; 		
 
   });

}

function mapPan(pointid) {
	
	//mybranch = fsbranches[0].places[pointid - 1];
	
	//GEvent.trigger(markers[pointid - 1], "click");
	
	//map.setZoom(12);
	//map.setCenter(new GLatLng(mybranch.posn[0], mybranch.posn[1]));
	
	
	for (var i = 0; i < fscities[0].places.length; i++) {
	
		citiesinfo = fscities[0].places[i];
		
		if (citiesinfo.id == pointid) {
			
			//alert(citiesinfo.id + i);
			
			mycityid = i;
			
		}
		
	}
	
	
	mycity = fscities[0].places[mycityid];
	
	//alert("here:" + mycity.name);
	
	//GEvent.trigger(markers[mycity], "click");
	
	map.setZoom(12);
	map.setCenter(new GLatLng(mycity.posn[0], mycity.posn[1]));

}

function addBranchMarkers() {

	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;
		
		branchicon = fsicon;
		
		if (branchinfo.icon == "2") {
			
			branchicon = aicon;
			
		}else if (branchinfo.icon == "3") {
			
			branchicon = nicon;
			
		}
		
		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));

}

function addCityMarkers(map,cityicon) {
	
	var mgr = new GMarkerManager(map);
	var markers = [];
	
	for (var i = 0; i < fscities[0].places.length; i++) {
	
		cityinfo = fscities[0].places[i];
	
		point = new GLatLng(cityinfo.posn[0], cityinfo.posn[1]);
		bounds.extend(point);
		var clat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) /2;
		var clng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) /2;
		html = cityinfo.name;
		
		markers.push(createMarker(point, cityicon, html));

		map.setCenter(new GLatLng(clat,clng));		
		
	}
	
	mgr.addMarkers(markers, fscities[0].zoom[0], fscities[0].zoom[1]);	
	mgr.refresh();
	
	map.setZoom(map.getBoundsZoomLevel(bounds));

}


$(document).ready(function(){
	
	setpage();
	addClickHandlers();

});