// CERT members Script
// Nicola Zordan, 5

// POI: Point Of Interest

var CERTpoiTXTfile='data/CERT poi.txt';
var CERTpoi=[];

var ZonePageFlag;

var POI=null;
var POIUseLatLon=[];
var POIPathPoints=[];
var POIMarkers=[];

var POIname='POI - Useful places';
var POImapPage='MapPOI.htm';
function ShowPOImap(membersIn) {
  var members=membersIn;
  if (members==null) members=CERTpoi;
  var zoneMembers=members;

  ZoneEmails=[];
  ZoneBoundariesArray=[];
  ZoneName=POIname;

  //ZoneMembers=zoneMembers;
  ZoneMembers=MembersDataOnly(zoneMembers);

  ZoneDisasterPlanDate=GetDisasterPlanDate(zoneMembers);
  ZoneTeamLeadersIx=TeamLeadersIx(ZoneMembers);
  ZoneTeamLeadersIx=SortTeamLeadersIx(ZoneTeamLeadersIx,ZoneMembers);
  ZoneMeetingPlaces=MeetingPlaces(zoneMembers);
  ZoneNote=GetZoneNote(zoneMembers);
  ZoneFRS=GetZoneFRS(zoneMembers);
  ZoneURLs=GetZoneURLs(zoneMembers);
  //ZoneMembersInactive=Members4Zone(CERTmembersInactive,zone);
  ZoneMembersInactive=[];

  ZoneColor=GetZoneColor4members(zoneMembers);
  ZoneType=GetZoneType(zoneMembers);

  var xmlTxt=Members2XMLtext(ZoneMembers,ZoneName,ZoneMeetingPlaces);


  var xml=String2XML(xmlTxt);
  TripXMLdocument=xml;

  ZonePageFlag=false;
  window.open(ZoneMapPage);
  //window.open(POImapPage)
};





function POIDescriptionHTML(ix) {
};

function showPOI(ix,poiIn) {
  var poi=poiIn;
  if (poi==null) poi=POI;
  if (poi==null) {
    POI=members2Locations(CERTpoi);
    poi=POI;
  };
  if (ix>=POI.length) return;
  var id,name,address,tel,html,lat,lon, description;
  id=POI[ix][0];
  name=POI[ix][1];
  address=POI[ix][2];
  tel=POI[ix][3];
  lon=POI[ix][4];
  lat=POI[ix][5];
  description=POI[ix][6];
  if (description==null) description="";
  image=POI[ix][12];
  pushpinImage=POI[ix][13];
  if (pushpinImage==null) {
    pushpinImage=PushpinImageDefault;
    if (PushpinStartStop) {
      if (ix==0) pushpinImage=PushpinImageStart;
      if (ix==(POI.length-1)) pushpinImage=PushpinImageStop;
    };
  };

  geocoder.getLatLng(
    address,
    function(point) {
      var where=point;
      if (!point) {
        POIUseLatLon[ix]=false;
 	if (lon==null || lat==null) {
	  lat=0;
	  lon=0;
  	  //-POIPathPoints[ix]='NOPOINT';
          //alert("Google maps API cannot Geolocate: \n"+name+"\n"+address);
          window.status=("Google maps API cannot Geolocate: \n"+name+"\n"+address);
  	  //-ShowLocationsPath(POI.length);
        //showLocation(ix+1);
        //-setTimeout('showLocation('+(ix+1)+')',100);
        setTimeout('showPOI('+(ix+1)+')',10);
           return;
         } else {
	};
 	//where=new GPoint(lat,lon);
	//where=new GPoint(lon,lat);
	where=new GLatLng(lat,lon);
       } else { 
        POIUseLatLon[ix]=true;
	lon=where.x;
    	lat=where.y;
      };

	POI[ix][4]=lon;
	POI[ix][5]=lat;

	POIPathPoints[ix]=where;

        var iconName = "iconHome";
        var markerName = getMarkerIdent( id );
        var thisMarker=null;
        if (pushpinImage==null) {
          thisMarker=new GMarker(where);
         } else {
          var thisIcon=new GIcon(G_DEFAULT_ICON);
          thisIcon.image=pushpinImage;
          thisMarker=new GMarker(where,thisIcon);
          POIMarkers[ix]=new GMarker(where,thisIcon);
        };
        POIMarkers[ix]=thisMarker;



        html="<div>"+POIDescriptionHTML(ix)+"</div>";
	POIMarkers[ix].html=html;
	eval("GEvent.addListener(POIMarkers["+ix+"], 'click', function() { POIMarkers["+ix+"].openInfoWindowHtml(POIMarkers["+ix+"].html); } );" );
        map.addOverlay(POIMarkers[ix]);

	//-ShowLocationsPath(Locations.length);

        setTimeout('showPOI('+(ix+1)+')',10);

    }
  );
}

function ReadPOI (filePOIin,loadInactive) {
        var filePOI=filePOIin;
        if (filePOI==null) filePOI=CERTpoiTXTfile;
        txtPOI=ReadCERTmembersTXT(filePOI);
//alert(filePOI+'\n\n'+txtPOI);
        var poiData=membersData4txt(txtPOI,loadInactive,null,true);
        var poi=poiData[0];
         // GLOBAL
        CERTpoi=poi;
        return poi;
};


//-- Override

function ZonesListHTML(zones) {
  var html='';
  //html=html+'<h2 align="center">Members Zones</h2>';
  html=html+'<h2 align="center">'+ZonesPageMapsListTitle+'</h2>';
  //html=html+'<ol>';
  html=html+'<ul>';
  //html=html+zones.length+' Zones <br/>';
  //html=html+zones.length+' Zones <small><small>('+CERTmembers.length+') members </small></small> <br/>';
  //html=html+zones.length+' Zones ~ '+CERTmembers.length+' members <br/>';
  //html=html+zones.length+' Zones ~ '+(CERTmembers.length-zones.length)+' members <br/>';
  //html=html+zones.length+' Zones ~ '+CERTmembers.length+' records <br/>';
  html=html+CERTzones.length+' Zones ~ '+CERTmembers.length+' records ~ '+CERTpoi.length+' poi<br/>';
  for (var i=0;i<zones.length;i++) {
    html=html+'<li>';
    //html=html+'<a href="MapLocationSelectTxt.htm?Zone='+zones[i]+'">';
    //html=html+'<a href="JavaScript:alert(MembersNamesText(Members4Zone(CERTmembers,\''+zones[i]+'\')));alert(ZoneMembers2XMLtext("'+zones[i]+'",CERTmembers))">';
    //html=html+'<a href="JavaScript:alert(MembersNamesText(Members4Zone(CERTmembers,\''+zones[i]+'\')));">';
    //html=html+'<a href="JavaScript:alert(ZoneMembers2XMLtext(\''+zones[i]+'\',CERTmembers));">';
    html=html+'<a href="JavaScript:ShowZoneMap(\''+zones[i]+'\');">';
    html=html+zones[i];
    html=html+'</a>';

    html=html+' ';
    html=html+'<a href="JavaScript:ShowDisasterPlan(\''+zones[i]+'\');">';
    //-html=html+'<small>(dp)</small>';
    html=html+'</a>';

    html=html+'</li>';
  };
  //html=html+'</ol>';
  html=html+'</ul>';
//alert(html);
  return html;
};


function ReadMembers(fileIn,loadInactive,fileZIn,filePOIin) {
        var file=fileIn;
        if (file==null) file=CERTmembersTXTfile;
        var fileZ=fileZIn;
        if (fileZ==null) fileZ=CERTzonesTXTfile;
	var txt='',txtZ='',txtPOI;

        txtZ=ReadCERTzonesTXT(fileZ);
        var zones=[];
        zones=CERTzones4txt(txtZ,loadInactive);
        var zonesAsMembers=Zones2Members(zones,loadInactive);

        txt=ReadCERTmembersTXT(file);
        var members=[];
        members=CERTmembers4txt(txt,loadInactive,zonesAsMembers);

        var poi=ReadPOI(filePOIin,loadInactive);

        //var allMembers=members.concat(zonesAsMembers);     
        //return allMembers;
        //CERTmembers=members;
        return members;
};




