var PastEventColor = "#FF0000";
var FutureEventColor = "#0000FF";

var event_focus_handlers = new Array(showZipCodeLayer);
var event_blur_handlers = new Array(hideZipCodeLayer);

var zipcode_focus_handlers = new Array();
var zipcode_blur_handlers = new Array();

function showZipCodeLayer(dynMarker, gmap)
{
  var event_id = dynMarker.eventId;

  var randNum = Math.floor(Math.random() * 10);

  if(randNum == 0 && dynMarker.zipcodes != null)
  {
    dynMarker.zipcodes.destroy();
    dynMarker.zipcodes = null;
  }

  // Dynamically loads zipcode information
  if(dynMarker.zipcodes == null)
  {
    GDownloadUrl('/javascript/zipcodes/' + event_id, function(data)
    {
        var node = GXml.parse(data);
        var zipcodeNode = node.getElementsByTagName("zipcode");
        var zipcodes = new DataLayer(gmap);

        for(var i=0; i < zipcodeNode.length; ++i)
        {
            var zip = zipcodeNode[i].getElementsByTagName("zip")[0].firstChild.nodeValue;
            var lat = zipcodeNode[i].getElementsByTagName("lat")[0].firstChild.nodeValue;
            var lng = zipcodeNode[i].getElementsByTagName("lng")[0].firstChild.nodeValue;

            if(lat == 0 && lng == 0)
              continue;

            var zipcode = new DynamicMarker(new GLatLng(lat, lng), zipcodeIcon, zipcodeActivatedIcon, zipcode_focus_handlers, zipcode_blur_handlers);
            zipcode.zipcode = zip;
            zipcode.eventId = event_id;

            /*
            zipcode.rsvps = new Array();

            var rsvpNode = zipcodeNode[i].getElementsByTagName("rsvp");

            for(var k=0; k < rsvpNode.length; ++k)
            {
              rsvp = new Object();
              rsvp.user_id = rsvpNode[k].getElementsByTagName("userid")[0].firstChild.nodeValue;
              rsvp.username = rsvpNode[k].getElementsByTagName("username")[0].firstChild.nodeValue;
              zipcode.rsvps.push(rsvp);
            }
            */

            zipcodes.add(zipcode);
        }
        dynMarker.zipcodes = zipcodes;
        zipcodes.show();
    });
  }
  else
  {
     //dynMarker.zipcodes.disable();
     dynMarker.zipcodes._map = gmap;
     dynMarker.zipcodes.enable();
  }
}

function hideZipCodeLayer(dynMarker, gmap)
{
  if(dynMarker.zipcodes != null)
    dynMarker.zipcodes.disable();
}
