I recommend to take a look to Leaflet, which is a really lightweight and simple to use library (http://leaflet.cloudmade.com/)
On the other hand you have OpenLayers which is a really powerful and complete library (http://openlayers.org/).
These can help you with the maps, pins and popups. On the other hand you need to handle your categories, for example, creating some buttons, listening for click events on them and showing/hidding some pins on the map. I'm supposing you have no problem on this second task. Remember great projects like jQuery+jQueryUI or Dojo can help on that part.