// Global Variables
var map;
var mgr;
var house = new Array();
var marker = new Array();
var position = 0;
var infoMessageFirstLoad = false;
var point;

function prevP(number) {
  position--;
  if(position<0)
    position = house[number].length - 1;
  popup(number);
}

function nextP(number) {
  position++;
  if(position>=house[number].length)
    position = 0;
  popup(number);
}

function popup(number) {
  marker[number].openInfoWindowHtml(infoMessage(number));
}

function infoMessage(number) {
  var message = "";
  var numHouses = house[number].length;
  if(infoMessageFirstLoad) {
    infoMessageFirstLoad = false;
    position = 0;
  }
  if(numHouses==1) {
    position = 0;
  }
  else {
    var currentHouse = position + 1;
    //if(currentHouse<=1)
    //  message += "PREV - <a href=\"javascript:nextP("+number+")\"><b>NEXT</b></a> | House "+currentHouse+" of "+numHouses+"<br><br>";
	//else if(currentHouse>=numHouses)
    //  message += "<a href=\"javascript:prevP("+number+")\"><b>PREV</b></a> - NEXT</a> | House "+currentHouse+" of "+numHouses+"<br><br>";
	//else
    //  message += "<a href=\"javascript:prevP("+number+")\"><b>PREV</b></a> - <a href=\"javascript:nextP("+number+")\"><b>NEXT</b></a> | House "+currentHouse+" of "+numHouses+"<br><br>";
  }
  message += house[number][position];


  // map zoom nice display
  //if(map.getZoom()<=2)
    //message += "<br>Zoom Out - <a href=\"javascript:zoomOnPoint(+1,"+number+")\"><b>Zoom In</b></a>";
  //else if(map.getZoom()>=17)
    //message += "<br><a href=\"javascript:zoomOnPoint(-1,"+number+")\"><b>Zoom Out</b></a> - Zoom In";
  //else
    //message += "<br><a href=\"javascript:zoomOnPoint(-1,"+number+")\"><b>Zoom Out</b></a> - <a href=\"javascript:zoomOnPoint(+1,"+number+")\"><b>Zoom In</b></a>";

  return message;
}

function zoomOnPoint(a,number) {
  var newZoom = map.getZoom() + a;
  if(newZoom<=2)
    newZoom = 2;
  if(newZoom>=17)
    newZoom = 17;
  map.setZoom(newZoom);
  map.panTo(map.getCenter(), newZoom);
  popup(number);
}

// Creates a marker at the given point with the given number label
function createMarker(point, number) {
	// icons dont work the best
	var icon = new GIcon();
	icon.image = "http://www.magnoliabyowner.com/map/mm_20_blue.png";
	icon.iconSize = new GSize(12, 20);
	icon.iconAnchor = new GPoint(10, 30);
	icon.infoWindowAnchor = new GPoint(5, 1);
	var marker = new GMarker(point,icon);
	//var marker = new GMarker(point);

	GEvent.addListener(marker, "click", 
		function() {
			infoMessageFirstLoad = true;
			marker.openInfoWindowHtml(infoMessage(number));
			map.panTo(point, map.getZoom());
		}
	);
	return marker;
}//create marker



function loadMarkers() {
	for (var i in zoomLayer) {
		var layer = zoomLayer[i];
		var markers = [];
		for (var j in layer["places"]) {
			var place = layer["places"][j];
			var ptyId = place["ptyId"];
			// get position from generatedMarkers.js
			var posn = new GLatLng(place["posn"][0], place["posn"][1]);
			marker[ptyId] = createMarker(posn, ptyId)
			markers.push(marker[ptyId]);
		}
		mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
	}
}

function loadMap() {
  if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(32.7, -90.2), 7);

		//zoom on left
		map.addControl(new GLargeMapControl());
		//map/satellite/hybrid on the top
		map.addControl(new GMapTypeControl());

		infoMessages();

		mgr = new GMarkerManager(map);
		loadMarkers();
		mgr.refresh();

  }//if compatable
}//function load
