// JavaScript Document
var catagory ;
var input_Index ;
var output_Index ;
var points_Array  = new Array ;       // array of unsorted interest points
var catagory_Array = new Array ;         // sorted array of all catagory names
var selected_points = new Array ;
var map ;
var maplistdata ;
var NPzoom = 11 ;
var InfoNum = -1 ;
//var InfoText = "this is some text" ;
var baseIcon ;
function initialize_fwnp_map () {
//alert ("jhfjh") ;
create_Points(points_Array) ;
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
map.setCenter(new GLatLng(points_Array[0].lat , points_Array[0].lng), NPzoom);
baseIcon = new GIcon();
baseIcon.shadow = "/images/pinshadow.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
 catagory = points_Array[0].catagory ;
  catagory_Array.length = 0 ;
  for (input_Index = 1 ; input_Index < points_Array.length ; input_Index++ )
  {
     var output_Count = catagory_Array.length ;
     for ( output_Index = 0 ; output_Index < output_Count ; output_Index++ )
     {
	      if (catagory_Array[output_Index] == points_Array[input_Index].catagory) break ;
     }
     if (output_Index == output_Count) catagory_Array[output_Index] = points_Array[input_Index].catagory ;
  }
 catagory_Array.sort () ;
 for (counter= catagory_Array.length ; counter >= 1; counter--) {
	 catagory_Array[counter] = catagory_Array[counter-1] ;
 }
 catagory_Array[0] = catagory ;
 display_catagory_table () ;
}

// Creates a marker at the given point with the given number label
function createMarker(point,input_Index,output_Index) {
var number = String.fromCharCode("0".charCodeAt(0) + output_Index);
maplistdata += '<tr height="36"><td align="center" valign="middle"><A href="#top" onclick="return Point_Click(' + input_Index + ')" class="MapDiv"><IMG src="/images/pin' + number + '.gif" border="0"></a></td><td align="left" valign="middle" width="100%"><A href="#top" onclick="return Point_Click(' + input_Index + ')">' + points_Array[input_Index].name + '</a></td></tr>' ;
  var icon = new GIcon(baseIcon);
  icon.image = '/images/pin' + number + '.png' ;
  var marker = new GMarker(point,icon);

GEvent.addListener(marker, "click", function() {
//    marker.openInfoWindowHtml("abcd" + InfoText + "uhuh");
Point_Click(input_Index) ;
return false ;
});
  return marker;
}

function Info_Click (num) {
	var newWindow = window.open("","myNewWindow","width=250,height=150") ;
//alert (newWindow) ;
	newWindow.document.open() ;
newWindow.focus() ;
newWindow.document.write ("<h4>" + points_Array[num].name + "</h4><p>" + points_Array[num].description + "</p>");
    newWindow.document.close() ;
return false;
}

function Point_Click (num) {
handle = map.getInfoWindow() ;
if (handle.isHidden()) {
					   InfoNum = -1 ;
}
if (InfoNum == num) {
	map.closeInfoWindow() ;
	InfoNum = -1 ;
}
else {
var point = new GLatLng(points_Array[num].lat , points_Array[num].lng);
// var wide = new map.maxWidth (20) ;
 var InfoText = '<p style="PointsOfInterest">' + points_Array[num].name + '<br></p><A href="#top" onclick="return Info_Click(' + num + ')">click here for more information</a> ' ;
 map.openInfoWindowHtml(point,InfoText);
  InfoNum = num ;
}
return false;
}

function display_catagory_table () {
map.clearOverlays() ;
maplistdata = "" ;
var letter ;
InfoNum = -1 ;
maplistdata = '<form name = "mapform" action="" method="get"><table width="100%" class="MapListTable"><tr valign="top"><td align="center" colspan="2" class="PointsOfInterest">Points of Interest</td></tr><tr valign="center" height="54"><td align="center" colspan="2">Catagory&nbsp;&nbsp;<select name="catagory_list_box" size="1" onchange="change_catagory()"></select></td></tr>' ;
var point = new GLatLng(points_Array[0].lat , points_Array[0].lng);
map.setCenter(point, NPzoom);
if (catagory == points_Array[0].catagory) {
maplistdata += '<tr valign="top"><td colspan="2">Please select a catagory of interest from the above list<br><br></td></tr>' ;
map.addOverlay(createMarker(point,0,0));
}
else {
//alert (catagory) ;
map.addOverlay(createMarker(point,0,0));
	output_Index = 1 ;
    for (input_Index = 1 ; input_Index < points_Array.length ; input_Index++ )
       {
       if (points_Array[input_Index].catagory == catagory) {
          point = new GLatLng(points_Array[input_Index].lat , points_Array[input_Index].lng);
          map.addOverlay(createMarker(point,input_Index,output_Index));
          output_Index++ ;
	  }
    }
}
maplistdata += '<tr><td colspan="2" class="NewsDescription" ><br><br>We are constantly updating our points of interests, so please return to check for additions</td></tr>' ;
document.getElementById("interestpoints").innerHTML =  maplistdata + '</table></form>' ;
   for (input_Index = 0 ; input_Index < catagory_Array.length ; input_Index++ )
  {
	   var new_Option = new Option(catagory_Array[input_Index],catagory_Array[input_Index]) ;
     document.mapform.catagory_list_box.options[input_Index] = new_Option ;
  }
document.mapform.catagory_list_box.value = catagory ;
}


function change_catagory()
{

catagory = document.mapform.catagory_list_box.value ;
display_catagory_table () ;
}


function create_Point( catagory, name, description, photo,comment,lat,lng)
/*****************************************************************
	Function to create an interest point object
						14/07/2005 11:35
*****************************************************************/
{
  this.index = 0 ;                     // gets overwritten with its array index number
  this.catagory = catagory ;
  this.name = name ;
  this.description = description ;
  this.photo = photo ;
  this.lat = lat ;
  this.lng = lng ;
}  // create_Point

function create_Points( array_Name )
/*****************************************************************
	Function to create an array of Interest Point objects
															30/03/2006 10:19
*****************************************************************/
{
   array_Name[0] = new create_Point ("North Preserve","North Preserve","description of FallingWaters North Preserve","photo.jpg","I like this place",26.303255,-81.804607) ;
   array_Name[1] = new create_Point ("Beaches","Barefoot Beach","description of Barefoot beach","photo.jpg","I like this beach",26.311112,-81.837158) ;
   array_Name[2] = new create_Point ("Beaches","Vanderbilt Beach","description of Vanderbilt beach","photo.jpg","good atmosphere just before sundown",26.253904,-81.823329) ;
   array_Name[3] = new create_Point ("Beaches","Lovers Key","description of Lovers key","photo.jpg","good place to spend the day",26.390178,-81.880245) ;
   array_Name[4] = new create_Point ("Shopping Malls","Edison Mall","description of Edison mall","photo.jpg","",26.602073,-81.86913) ;
   array_Name[5] = new create_Point ("Shopping Malls","Coastland Center","description of the Coastland Center","photo.jpg","I spent all my money here, good shops",26.169613,-81.795659) ;
   array_Name[6] = new create_Point ("Restaurants","Macdonalds","description of Macdonalds","photo.jpg","I like this food",26.330653,-81.805916) ;
      for (array_Index = 0 ; array_Index < array_Name.length ; array_Index++ ) array_Name[array_Index].index = array_Index ;
 
 }  // create_Points


