function load() {
	if (document.getElementById("searchBox")) {
		document.getElementById("searchBox").focus();
		if (getCookie('searchTerm')) {
			document.getElementById("searchBox").value = getCookie('searchTerm');;
			performSearch();
		}
	}
	if (GBrowserIsCompatible()) {
		myMap = new GMap2(document.getElementById("map"));
		icon= new Array()
		icon[0] = createIcon(0);
		icon[1] = createIcon(1);

		arenaNum = 49; // default arena (St Anselme)
		if (getCookie('arenaNum')) {
		  arenaNum = parseInt(getCookie('arenaNum'));}

		myZoom = 14; // default zoom level
		if (getCookie('myZoom')) {
			myZoom = parseInt(getCookie('myZoom'));}
		
		myMapType = "m"; // default map type
		if (getCookie('mapType')) {
			myMapType = getCookie('mapType');}

		changeMapLocation(arenaNum);
		changeMapType(myMapType);

		displayMessages();
		GEvent.addListener(myMap, "moveend", function() {
			myZoom = myMap.getZoom()
			setCookie('myZoom', myZoom, 7);
			displayMessages();
		});
	}
}

function createIcon(iconNum) {
	myIcon = new GIcon();
	myIcon.image = "images/arrow"+iconNum+".png";
	myIcon.shadow = "images/arrowshad"+iconNum+".png";
	myIcon.iconSize = new GSize(26, 60);
	myIcon.shadowSize = new GSize(100, 60);
	myIcon.iconAnchor = new GPoint(13, 60);
	myIcon.infoWindowAnchor = new GPoint(13,60);
	return myIcon;
}

function openBubble(marker, arenaNum) {
	var arenaString = "<A  onClick=\"this.blur();\" href=\"javascript: openArenaInGoogleMaps(" + arenaNum + ");\">" + myArenas[arenaNum].name +"</A>"
	bubbleStr="<div class=\"mapBubbleTitle\">" + arenaString + "</div>";
	bubbleStr=bubbleStr + "<div class=\"mapBubbleStyle\">" + myArenas[arenaNum].address + "</div>";
	bubbleStr=bubbleStr + "<div class=\"mapBubblefooter\">LAT/LONG: " + myArenas[arenaNum].lat + "," + myArenas[arenaNum].lng + "<br>LAT/LONG: " + toDegSecs(myArenas[arenaNum].lat)+ "," + toDegSecs(myArenas[arenaNum].lng) + "</div>";
	
	function toDegSecs(decCoord) {
		if (decCoord > 0) {mySign = ""} else {mySign="-"};
		var a = Math.abs(decCoord);
		myDegs = Math.floor (a);
		myRemainder = a-myDegs;
		myMins = Math.floor(myRemainder*60);
		myRemainder = myRemainder*60 - myMins;
		mySecs = Math.floor(myRemainder*60);
		myRemainder = myRemainder*60 - mySecs;
		myRemainder = myRemainder + 0.005;
		myRemainderString = (myRemainder + "000000").substring(1,4);
		return mySign + myDegs+"&deg; "+myMins+"' "+mySecs+myRemainderString+"&quot;";
	}
	marker.openInfoWindowHtml(bubbleStr);
}

function openArenaInGoogleMaps(arenaNum) {
	var myMapType = myMap.getCurrentMapType().getName().substr(0,1).toLowerCase();
	if (myMapType == "s") {myMapType = "k"}
	location.href="http://maps.google.com/maps?q=" + myArenas[arenaNum].lat + "," + myArenas[arenaNum].lng + "+(" + myArenas[arenaNum].name + ")&t=" + myMapType + "&z=" + myMap.getZoom() + "&iwloc=A&hl=en" 
}

function displayMessages() {
	bounds = myMap.getBounds();
	southWest = bounds.getSouthWest();
	northEast = bounds.getNorthEast();

	var p1 = "<span style=\"color: #a8a8a8; padding-right: 2px; line-height: 11px;\">zoom level: <span style=\"font-size: 10px; color: #808080;\">" + myMap.getZoom() + "</span></span><br><span style=\"font-size: 10px; color: #a8a8a8; padding-right: 2px; line-height: 12px;\">N,E: ";
	var p2 = "<span style=\"color: #808080;\">"+paddedNum(northEast.lat())+"</span>,<span style=\"font-size: 10px; color: #808080;\">"+paddedNum(northEast.lng());
	var p3 = "</span></span>";
	document.getElementById("mbox1").innerHTML = p1+p2+p3;

	p1 = "<table align=\"center\" width=338 border=0 cellpadding=0 cellspacing=0><tr><td width= 12 valign=\"top\" align=\"left\"><img src=\"images/controls/tabarrbot.gif\" width=\"12\" height=\"11\" hspace=\"0\" vspace=\"0\" border=\"0\" alt=\"\"></td><td width=160 valign=\"top\" align=\"left\"><img src=\"images/spacer.gif\" width=\"160\" height=\"2\" hspace=\"0\" vspace=\"0\" border=\"0\" alt=\"\"><br>";
	p2 = "<span style=\"font-size: 10px; color: #a8a8a8; line-height: 12px;\">&nbsp;S,W: <span style=\"font-size: 10px; color: #787878;\">"+paddedNum(southWest.lat())+"</span>,<span style=\"font-size: 10px; color: #787878;\">"+paddedNum(southWest.lng())+"</span></span>";
	p3 = "</td><td width=152 valign=\"top\" align=\"right\"><img src=\"images/spacer.gif\" width=\"152\" height=\"2\" hspace=\"0\" vspace=\"0\" border=\"0\" alt=\"\"><br>";
	p4 = "<span style=\"font-size: 10px; color: #a8a8a8; line-height: 12px;\">zoom level: <span style=\"font-size: 10px; color: #787878;\">" + myMap.getZoom() + "</span></span>";
	p5 = "</td><td width= 12 valign=\"top\" align=\"left\"><img src=\"images/spacer.gif\" width=\"12\"  height=\"19\" hspace=\"0\" vspace=\"0\" border=\"0\" alt=\"\"></td></tr></table>";
	document.getElementById("mbox2").innerHTML = p1+p2+p3+p4+p5;
}

function paddedNum(myNum) {
	var a = Math.floor(Math.abs(myNum));
	var b = ("0"+(Math.round((Math.abs(myNum)-a)*1000000)+1000000)).substr(2);
	var c = a+"."+b
	if (myNum < 0) {c="-"+c};
	return c;
}

function changeMapType(myMapType) {
	if (myMapType == "k") {
		mapType = G_SATELLITE_MAP;
	} else {
		if (myMapType == "h") {
			mapType = G_HYBRID_MAP;
		} else {
			mapType = G_NORMAL_MAP;
		}
	}
	myMap.setMapType(mapType);
	
	if (myMapType == "m") {
		document.getElementById("map").style.borderColor = '#b0b0b0';
	} else {
		document.getElementById("map").style.borderColor = '#606060';
	}
	setCookie('mapType', myMapType, 7);

	if (getCookie('arenaNum')) {arenaNum = parseInt(getCookie('arenaNum'));}
	myCenterPoint = new GLatLng(myArenas[arenaNum].lat,myArenas[arenaNum].lng);
	createMarker(arenaNum,myCenterPoint);
}

function changeMapLocation(arenaNum) {
	document.getElementById("searchBox").focus();
	myCenterPoint = new GLatLng(myArenas[arenaNum].lat,myArenas[arenaNum].lng);
	myMap.setCenter(myCenterPoint,myZoom);
	setCookie('arenaNum', arenaNum, 7);
	setCookie('myZoom', myMap.getZoom(), 7);
	createMarker(arenaNum,myCenterPoint);
}

function createMarker(arenaNum,myCenterPoint) {
	myMap.clearOverlays();

	if (myMap.getCurrentMapType().getName().substr(0,1).toLowerCase()=="m") {iconNum=0} else {iconNum=1};
	var marker = (new GMarker(myCenterPoint,icon[iconNum]));

	myMap.addOverlay(marker);
	GEvent.addListener(marker, "click", function() {
		openBubble(marker, arenaNum);
	});
	openBubble(marker, arenaNum);
}

function gotoSaved(){
	arenaNum = 17; // default arena (St Anselme)
	if (getCookie('arenaNum')) {
		arenaNum = parseInt(getCookie('arenaNum'));}
	changeMapLocation(arenaNum);
}

function getCookie(name){
  var cname = name + "=";
  var dc = document.cookie;
  if (dc.length > 0) {
    begin = dc.indexOf(cname);
    if (begin != -1) {
      begin += cname.length;
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end));
    }
  }
  return null;
}

function setCookie(cookieName,cookieValue,nDays) {
	var today = new Date();
	var expire = new Date();
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
}
