// show-events.js
// Copyright Matthew J Heaton 09/04/2011

var bKids=false;
var bPlants=false;
var bBuy=false;
var bWalk=false;
var bTalk=false;
var bMusic=false;
var bDance=false;
var bFood=false;
var bTea=false;
var bDrink=false;
var bTheatre=false;
var bFilm=false;
var bFree=false;
var bTicket=false;

function ShowEvents(szDay)
{
 if (!szDay)
 document.write( SearchOptions() );
 var nOption = 1;
 for ( ; nOption<arrayOptions.length; nOption++)
 {
  var elem = document.getElementsByName(arrayOptions[nOption]);
  if (elem.length) elem[0].checked=true;
  switch(arrayOptions[nOption])
  {
  case "kids": bKids=true; break;
  case "plants": bPlants=true; break;
  case "buy": bBuy=true; break;
  case "walk": bWalk=true; break;
  case "talk": bTalk=true; break;
  case "music": bMusic=true; break;
  case "dance": bDance=true; break;
  case "food": bFood=true; break;
  case "tea": bTea=true; break;
  case "drink": bDrink=true; break;
  case "theatre": bTheatre=true; break;
  case "film": bFilm=true; break;
  case "free": bFree=true; break;
  case "ticket": bTicket=true; break;
  }
 }

 var elem = document.getElementsByName('music');
 if (elem.length) elem[0].checked = bMusic;
 var elem = document.getElementsByName('dance');
 if (elem.length) elem[0].checked = bDance;
 var elem = document.getElementsByName('walk');
 if (elem.length) elem[0].checked = bWalk;
 var elem = document.getElementsByName('talk');
 if (elem.length) elem[0].checked = bTalk;
 var elem = document.getElementsByName('theatre');
 if (elem.length) elem[0].checked = bTheatre;
 var elem = document.getElementsByName('film');
 if (elem.length) elem[0].checked = bFilm;
 var elem = document.getElementsByName('kids');
 if (elem.length) elem[0].checked = bKids;
 var elem = document.getElementsByName('music');
 if (elem.length) elem[0].checked = bMusic;
 var elem = document.getElementsByName('food');
 if (elem.length) elem[0].checked = bFood;
 var elem = document.getElementsByName('tea');
 if (elem.length) elem[0].checked = bTea;
 var elem = document.getElementsByName('drink');
 if (elem.length) elem[0].checked = bDrink;
 var elem = document.getElementsByName('plants');
 if (elem.length) elem[0].checked = bPlants;
 var elem = document.getElementsByName('buy');
 if (elem.length) elem[0].checked = bBuy;
 var elem = document.getElementsByName('free');
 if (elem.length) elem[0].checked = bFree;
 var elem = document.getElementsByName('ticket');
 if (elem.length) elem[0].checked = bTicket;

 
 document.write("<div id='event_list'>");
 document.write( szDay? DayEvents(szDay): SearchEvents() );
 document.write("</div>");

 document.write("<div  class='event_popup' id='event_popup' style='visibility:hidden;position:absolute;left:0;top:0;margin:0 0.4em 0 10em;width:auto'>");
  document.write( EventFull(0) );
 document.write("</div>");
 
 if (szDay)
 {
  var szLinks = "<ul type='square'>";
  var szPreviousDay = PreviousDay(szDay);
  if (szPreviousDay) szLinks += "<li><a href='events.htm?"+escape(szPreviousDay)+"'>Show events for "+szPreviousDay+"</a></li>";
  var szNextDay = NextDay(szDay);
  if (szNextDay) szLinks += "<li><a href='events.htm?"+escape(szNextDay)+"'>Show events for "+szNextDay+"</a></li>";
  szLinks += "<li><a href='events.htm'>Show ALL events</a></li>";
  szLinks += "</ul>";
  document.write(szLinks);
 }
}

function PreviousDay(szDay)
{
 var nEvent = 0;
 for( ; nEvent < FestivalEvents.length; nEvent++)
 {
  var e=FestivalEvents[nEvent];
  if (e.EventDate == szDay)
  {
    if (nEvent==0) return null;
    return FestivalEvents[nEvent-1].EventDate;
  }
 }
 return null;
}

function NextDay(szDay)
{
 var bFound = false;
 var nEvent = 0;
 for( ; nEvent < FestivalEvents.length; nEvent++)
 {
  var e=FestivalEvents[nEvent];
  if (!bFound)
  {
     if (e.EventDate == szDay) bFound=true;
  }
  else
  {
     if (e.EventDate != szDay) return e.EventDate;
  }
 }
 return null;
}

function ReshowEvents()
{
 var list = document.getElementById('event_list');
 list.innerHTML = SearchEvents();
}

function SearchOptions()
{
 var szOptions = "\
  <div class='event_day' style='text-align:center;width:auto;margin:0 2em'>\
 <form style='margin:0'>\
 <input type='checkbox' name='music' value='music' onClick='bMusic=this.checked;ReshowEvents()'>&nbsp;Music &nbsp;\
 <input type='checkbox' name='dance' value='dance' onClick='bDance=this.checked;ReshowEvents()'>&nbsp;Dance &nbsp;\
 <input type='checkbox' name='walk' value='walk' onClick='bWalk=this.checked;ReshowEvents()'>&nbsp;Walk &nbsp;\
 <input type='checkbox' name='talk' value='talk' onClick='bTalk=this.checked;ReshowEvents()'>&nbsp;Talk &nbsp;\
 <input type='checkbox' name='theatre' value='theatre' onClick='bTheatre=this.checked;ReshowEvents()'>&nbsp;Theatre &nbsp;\
 <input type='checkbox' name='film' value='film' onClick='bFilm=this.checked;ReshowEvents()'>&nbsp;Movie &nbsp;\
 <br>\
 <input type='checkbox' name='food' value='food' onClick='bFood=this.checked;ReshowEvents()'>&nbsp;Food&nbsp;available &nbsp;\
 <input type='checkbox' name='tea' value='tea' onClick='bTea=this.checked;ReshowEvents()'>&nbsp;Tea/Coffee&nbsp;available &nbsp;\
 <input type='checkbox' name='drink' value='drink' onClick='bDrink=this.checked;ReshowEvents()'>&nbsp;Alchohol&nbsp;available &nbsp;\
 <br>\
 <input type='checkbox' name='kids' value='kids' onClick='bKids=this.checked;ReshowEvents()'>&nbsp;Suitable&nbsp;for&nbsp;kids &nbsp;\
 <input type='checkbox' name='plants' value='plants' onClick='bPlants=this.checked;ReshowEvents()'>&nbsp;Involving&nbsp;plants &nbsp;\
 <input type='checkbox' name='buy' value='buy' onClick='bBuy=this.checked;ReshowEvents()'>&nbsp;Buy things &nbsp;\
 <br>\
 <input type='checkbox' name='free' value='free' onClick='bFree=this.checked;ReshowEvents()'>&nbsp;Free&nbsp;events &nbsp;\
 <input type='checkbox' name='ticket' value='ticket' onClick='bTicket=this.checked;ReshowEvents()'>&nbsp;Ticketed&nbsp;events &nbsp;\
 </form>\
 </div>\
 <br>\
 ";
 return szOptions;
}

function EventChanges()
{
 var szChanges = "";
 var dateNow = new Date();
 var szDateNow = DateString(dateNow);
 var nEvent=0;
 var nCount = 0;
 for( ; nEvent < FestivalEvents.length; nEvent++)
 {
  var e=FestivalEvents[nEvent];
  if (e.EventChange && CompareDates(e.EventDate+" "+dateNow.getFullYear(), szDateNow)>=0)
  {
   szChanges += "<p>";
   szChanges += "<a href='event.htm?"+nEvent+"="+escape(e.EventName)+"'><b>"+e.EventName+"</b></a>, "+e.EventDate;
   szChanges += "<br>"+e.EventChange;
   szChanges += "</p>";
   nCount++;
  }
 }
 if (nCount==0)
 {
   szChanges += "<p>There are currently no changes for the events from today to the end of the festival.<br>Please check back here for further announcements.</p>";
 }
 return szChanges;
}

function DateString(date)
{
  return date.getDate()+" "+MonthName(date.getMonth())+" "+date.getFullYear();
}

function CompareDates(szDate1, szDate2)
{
 var date1 = Date.parse(szDate1);
 var date2 = Date.parse(szDate2);
 return date1 - date2;
}

function ShowTodayEvents()
{
 var dateNow = new Date();
 var szDateNow = DateString(dateNow);
 if (!FestivalEvents || !FestivalEvents.length)
   return;
 var eFirst = FestivalEvents[0];
 var eLast = FestivalEvents[FestivalEvents.length-1];
 if ( CompareDates(eFirst.EventDate+" "+dateNow.getFullYear(), szDateNow)<=0
     && CompareDates(eLast.EventDate+" "+dateNow.getFullYear(), szDateNow)>=0 )
 {
  var szDate = DayName(dateNow.getDay())+" "+dateNow.getDate()+" "+MonthName(dateNow.getMonth());
  document.write( DayEvents( szDate ) );
  document.write("<div  class='event_popup' id='event_popup' style='visibility:hidden;position:absolute;left:0;top:0;margin:0 0.4em 0 10em;width:auto'>");
  document.write( EventFull(0) );
  document.write("</div>");
  var szNextDay = NextDay(szDate);
  if (szNextDay) document.write( "<p style='margin-bottom:1em'><a href='events.htm?"+escape(szNextDay)+"'><img src='images/festival-logo-160.png' alt='Letchworth Festival' border='0' width='160' height='33' style='vertical-align:middle'>&nbsp;<b>Show events for tomorrow, "+szNextDay+"</b></a></p>");
 }
}

function DayName(nDay)
{
  switch(nDay)
  {
  case 0: return "Sunday";
  case 1: return "Monday";
  case 2: return "Tuesday";
  case 3: return "Wednesday";
  case 4: return "Thursday";
  case 5: return "Friday";
  default: return "Saturday";
  }
}

function MonthName(nMonth)
{
  switch(nMonth)
  {
  case 0: return "January";
  case 1: return "February";
  case 2: return "March";
  case 3: return "April";
  case 4: return "May";
  case 5: return "June";
  case 6: return "July";
  case 7: return "August";
  case 8: return "September";
  case 9: return "October";
  case 10: return "November";
  default: return "December";
  }
}

function SearchEvents()
{
 var szEvents = "";
 var nEvent=0;
 var bDayDivOpen=false;
 var szLastDate=null;
 for( ; nEvent < FestivalEvents.length; nEvent++)
 {
  var e=FestivalEvents[nEvent];
  if ( e.SubEvent ) continue;
  if (!IsCategory(e)) continue;
  if (nEvent && e.EventDate != szLastDate && bDayDivOpen)
  {
    szEvents += "</div>";
    bDayDivOpen = false;
  }
  if (!bDayDivOpen)
  {
   szEvents += "<div class='event_day'>";
   szEvents += "<h3 style='background: rgb(230,250,230);padding:0.2em;text-indent:0.5em;margin:0'>"+e.EventDate+"</h3>";
   bDayDivOpen = true;
  }
  szEvents += "<a href='event.htm?"+nEvent+"="+escape(e.EventName)+"' class='event_summary' name='"+nEvent+"' onmouseover='PopupEvent(this)'>";
  szEvents += EventSummary(e);
  szEvents += "</a>";
  szLastDate = e.EventDate;
 }
 if (bDayDivOpen)
    szEvents += "</div>";
    
 return szEvents;
}

function DayEvents(szDay)
{
 var szEvents = "";
 szEvents += "<div class='event_day'>";
 szEvents += "<h3 style='background: rgb(230,250,230);padding:0.2em;text-indent:0.5em;margin:0'>"+szDay+"</h3>";
 var nEvent=0;
 for( ; nEvent < FestivalEvents.length; nEvent++)
 {
  var e=FestivalEvents[nEvent];
  if (e.EventDate == szDay && !e.SubEvent)
  {
   szEvents += "<a href='event.htm?"+nEvent+"="+escape(e.EventName)+"' class='event_summary' name='"+nEvent+"' onmouseover='PopupEvent(this)'>";
   szEvents += EventSummary(e);
   szEvents += "</a>";
  }
 }
 szEvents += "</div>";
 return szEvents;
}


function IsCategory(e)
{
 if ( !(bKids || bPlants || bBuy || bWalk || bDance || bTalk || bMusic || bFood || bTea || bDrink || bTheatre || bFilm || bFree || bTicket) ) return true;
 if (!e.Category) return false;
 if (bKids && e.Category.search(/kids/i)<0) return false;
 if (bPlants && e.Category.search(/plants/i)<0) return false;
 if (bBuy && e.Category.search(/buy/i)<0) return false;
 if (bWalk && e.Category.search(/walk/i)<0) return false;
 if (bTalk && e.Category.search(/talk/i)<0) return false;
 if (bMusic && e.Category.search(/music/i)<0) return false;
 if (bDance && e.Category.search(/dance/i)<0) return false;
 if (bFood && e.Category.search(/food/i)<0) return false;
 if (bTea && e.Category.search(/tea/i)<0) return false;
 if (bDrink && e.Category.search(/drink/i)<0) return false;
 if (bTheatre && e.Category.search(/theatre/i)<0) return false;
 if (bFilm && e.Category.search(/film/i)<0) return false;
 if (bFree && e.tickets=='yes' && e.TicketPrice!='0.00') return false;
 if (bTicket && !e.tickets) return false;
 return true;
}

function EventSummary(e)
{
 return "<p><b><span style='color:rgb(32,64,160)'>"+e.EventName+"</span>"+(e.GroupName?" : <i>"+e.GroupName+"</i>":"")+"</b>"
       +"<br><b>"+EventTime(e.StartHour,e.EventStart)+"</b> - "+EventTime(e.EndHour,e.EventEnd)+"</p>"
       +"<p>"+SanitizeString(e.EventDescription)+"</p>";
}

function SanitizeString(szString)
{
  return szString?
  	 szString.replace(/\n/g, "<br>")
  	 : "";
}

function PopupEvent(item)
{
 var popup = document.getElementById('event_popup');
 if (popup)
 {
  popup.innerHTML = EventFull(Number(item.name));
  StartMenu(item, 'event_popup');
 }
}

function setHtmlContent(element, text)
{
    while (element.firstChild!==null)
        element.removeChild(element.firstChild); // remove all existing content
    element.appendChild(document.createTextNode(text));
}

function EventTime(nHour, nMinute)
{
  var szTime = "";
  szTime += (nHour>12?nHour-12:nHour) + ":" + (nMinute<10?"0":"") + nMinute + (nHour<12?(nHour==0&&nMinute==0?"midnight":"am"):nHour==12&&nMinute==0?"noon":"pm");
  return szTime;
}

function EventFull(nEvent)
{
 var e = FestivalEvents[nEvent];
 var szEvent = "<a href='event.htm?"+nEvent+"="+escape(e.EventName)+"'><h2 style='margin-top:0'>"+e.EventName+"</h2></a>"+"<p>";
 if (e.Location) szEvent += "Location: <b>"+e.Location+"</b>";
 szEvent += "<br>Time: "+EventTime(e.StartHour,e.EventStart)+" - "+EventTime(e.EndHour,e.EventEnd)+", "+e.EventDate;
 if ( e.EndDate && e.EndDate != e.EventDate )
   szEvent += " - " + e.EndDate;
 szEvent += "</p><p style='background:rgb(255, 255, 240);border:1px solid rgb(128,128,128);padding:0.5em'>"+(e.LongDescription?SanitizeString(e.LongDescription):SanitizeString(e.EventDescription))+"</p>";
 
 if (e.tickets == 'yes')
 {
    szEvent += "<p>Tickets: &pound;"+SanitizeString(e.TicketPrice);
    if (e.TicketPriceChild)
     szEvent += ", Child &pound;"+SanitizeString(e.TicketPriceChild)+" (to age "+(e.ChildAge?e.ChildAge:15)+" years)";
    if (e.TicketPriceConcession)
     szEvent += ", Concessions &pound;"+SanitizeString(e.TicketPriceConcession);
    if (e.TicketsTouristInformation || e.TicketsDavidsBooks || e.TicketsOtherLocation)
     szEvent += "<br>Tickets from: "+(e.TicketsDavidsBooks?"David's Bookshop":"")+(e.TicketsDavidsBooks&&(e.TicketsTouristInformation||e.TicketsOtherLocation)?", or ":"")
             +(e.TicketsTouristInformation?"Tourist Information Centre":"")+(e.TicketsTouristInformation&&e.TicketsOtherLocation?", or ":"")
             +(e.TicketsOtherLocation?e.TicketsOtherLocation:"");
    szEvent += "</p>";
 }
 
 if (e.GroupName) szEvent += "<h4>"+e.GroupName+"</h4>";
 if (e.OrganisationInfo) szEvent += "<p>"+SanitizeString(e.OrganisationInfo)+"</p>";
 
 if (e.PublishableEventPerson || e.PublishableEventPhone || e.PublishableEventEmail || e.Website)
   szEvent += "<p>";
 if (e.PublishableEventPerson || e.PublishableEventPhone || e.PublishableEventEmail)
   szEvent += "Further info: "+
      (e.PublishableEventPerson?e.PublishableEventPerson:"")+
      ((e.PublishableEventPerson && (e.PublishableEventPhone || e.PublishableEventEmail))?", ":"")+
      (e.PublishableEventPhone?e.PublishableEventPhone:"")+
      ((e.PublishableEventPhone && e.PublishableEventEmail)?", ":"")+
      (e.PublishableEventEmail?e.PublishableEventEmail:"");
 if ((e.PublishableEventPerson || e.PublishableEventPhone || e.PublishableEventEmail) && e.Website)
   szEvent += "<br>";
 if (e.Website)
 {
  szEvent += "Web: ";
  var arraySites = e.Website.split(",");
  var nSite = 0;
  for ( ; nSite<arraySites.length; nSite++)
  {
    if (nSite) szEvent += ", ";
    szEvent += "<a href='http://"+arraySites[nSite]+"' target='_new'>"+arraySites[nSite]+"</a>";
  }
 }
 if (e.PublishableEventPerson || e.PublishableEventPhone || e.PublishableEventEmail || e.Website)
   szEvent += "</p>";
 return szEvent;
}

function EventPage(e)
{
 var szEvent = "<h3 style='background: rgb(230,250,230);padding:0.2em;text-indent:0.5em;margin:0'>"+e.EventDate+", "+EventTime(e.StartHour,e.EventStart)+" - "+EventTime(e.EndHour,e.EventEnd);
 if ( e.EndDate && e.EndDate != e.EventDate )
   szEvent += " " + e.EndDate;
 szEvent += "</h3><div style='margin:0 0.5em'>";
 szEvent += "<h2>"+e.EventName+"</h2>"+"<p>";
// szEvent += "<br>Time: "+EventTime(e.StartHour,e.EventStart)+" - "+EventTime(e.EndHour,e.EventEnd)+", "+e.EventDate;
 szEvent += "</p><p>"+(e.LongDescription?SanitizeString(e.LongDescription):SanitizeString(e.EventDescription))+"</p>";

 if (e.Location) szEvent += "<p>Location: <b>"+e.Location+"</b></p>";
 if (e.tickets == 'yes')
 {
    szEvent += "<p>Tickets: &pound;"+SanitizeString(e.TicketPrice);
    if (e.TicketPriceChild)
     szEvent += ", Child &pound;"+SanitizeString(e.TicketPriceChild)+" (to age "+(e.ChildAge?e.ChildAge:15)+" years)";
    if (e.TicketPriceConcession)
     szEvent += ", Concessions &pound;"+SanitizeString(e.TicketPriceConcession);
    if (e.TicketsTouristInformation || e.TicketsDavidsBooks || e.TicketsOtherLocation)
     szEvent += "<br>Tickets from: "+(e.TicketsDavidsBooks?"David's Bookshop":"")+(e.TicketsDavidsBooks&&(e.TicketsTouristInformation||e.TicketsOtherLocation)?", or ":"")
             +(e.TicketsTouristInformation?"Tourist Information Centre":"")+(e.TicketsTouristInformation&&e.TicketsOtherLocation?", or ":"")
             +(e.TicketsOtherLocation?e.TicketsOtherLocation:"");
    szEvent += "</p>";
 }

 if (e.GroupName) szEvent += "<h4>"+e.GroupName+"</h4>";
 if (e.OrganisationInfo) szEvent += "<p>"+SanitizeString(e.OrganisationInfo)+"</p>";

 if (e.PublishableEventPerson || e.PublishableEventPhone || e.PublishableEventEmail || e.Website)
   szEvent += "<p>";
 if (e.PublishableEventPerson || e.PublishableEventPhone || e.PublishableEventEmail)
   szEvent += "Further info: "+
      (e.PublishableEventPerson?e.PublishableEventPerson:"")+
      ((e.PublishableEventPerson && (e.PublishableEventPhone || e.PublishableEventEmail))?", ":"")+
      (e.PublishableEventPhone?e.PublishableEventPhone:"")+
      ((e.PublishableEventPhone && e.PublishableEventEmail)?", ":"")+
      (e.PublishableEventEmail?e.PublishableEventEmail:"");
 if ((e.PublishableEventPerson || e.PublishableEventPhone || e.PublishableEventEmail) && e.Website)
   szEvent += "<br>";
 if (e.Website)
 {
  szEvent += "Web: ";
  var arraySites = e.Website.split(",");
  var nSite = 0;
  for ( ; nSite<arraySites.length; nSite++)
  {
    if (nSite) szEvent += ", ";
    szEvent += "<a href='http://"+arraySites[nSite]+"' target='_new'>"+arraySites[nSite]+"</a>";
  }
 }
 if (e.PublishableEventPerson || e.PublishableEventPhone || e.PublishableEventEmail || e.Website)
   szEvent += "</p>";
 if (e.EventImage)
 {
   szEvent += "<div style='clear:both'>";
   var arrayImages = e.EventImage.split(",");
   var nImage = 0;
   for ( ; nImage<arrayImages.length; nImage++)
   {
     szEvent += "<div style='float:left;background:url(images/events/thumbs/"+arrayImages[nImage]+") no-repeat center ;width:206px;height:206px;border:1px solid rgb("
       +(nImage%3==0?"228,20,33":nImage%3==1?"254,225,37":"81,187,75")+");margin:0px 3px 3px 0px;cursor:pointer' onmousedown='ImageShow(\"images/events/"+arrayImages[nImage]+"\")'></div>";
   }
   szEvent += "</div>";
 }
 szEvent += "<div style='clear:both;height:0px;'></div>";
 if (e.EventVideo)
  szEvent += "<center>"+e.EventVideo+"</center>";
 if (e.LatLong)
  szEvent += "<center><div id='map_elem' style='width:500px;height:400px;margin:0.2em;border: 1px solid rgb(128,128,128)'></div></center>";
 szEvent += "</div>";
 szEvent += "<p style='font-size:70%;text-align:center;margin-top:1em'>Information believed to be correct at time of publishing. Unforeseen circumstances may necessitate changes in events.<br>Personal accident insurance is for individuals to arrange.</p>";
 return szEvent;
}

function ShowMap(e) {
 if (!e.LatLong) return;
 var arrayCoord = e.LatLong.split(',');
 if (arrayCoord.length < 2) return;
 var nCoords = arrayCoord.length>>1;
 var nCentreLat = 0;
 var nCentreLong = 0;
 var nCoord = 0;
 for ( ; nCoord<nCoords; nCoord++)
 {
    nCentreLat += Number(arrayCoord[nCoord<<1]);
    nCentreLong += Number(arrayCoord[(nCoord<<1)+1]);
 }
 nCentreLat /= nCoords;
 nCentreLong /= nCoords;
 var centreLatLong = new google.maps.LatLng(nCentreLat,nCentreLong);
 var mapLatLong = new google.maps.LatLng(arrayCoord[0],arrayCoord[1]);
 var mapOptions = {
      zoom: (arrayCoord.length%2)? Number(arrayCoord[arrayCoord.length-1]): 15,
      center: centreLatLong,
      streetViewControl: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
 }
 var map = new google.maps.Map(document.getElementById('map_elem'), mapOptions);
 var mapMarkerOptions = {
      map: map,
      position: mapLatLong,
      visible: true,
      title: e.EventName
 }
 var marker = new google.maps.Marker( mapMarkerOptions );
 var mapInfoWindowOptions = {
      content: '<b>'+e.EventName+'</b><br>'+e.Location.replace(/\,/g,'<br>'),
      position: mapLatLong
 }
 var infowindow = new google.maps.InfoWindow(mapInfoWindowOptions);
 google.maps.event.addListener( marker, 'click', function() { infowindow.open(map); } );
 for (nCoord=1; nCoord<nCoords; nCoord++)
 {
   mapLatLong = new google.maps.LatLng(arrayCoord[nCoord<<1],arrayCoord[(nCoord<<1)+1]);
   mapMarkerOptions.position = mapLatLong;
   marker = new google.maps.Marker( mapMarkerOptions );
 }
}

