It looks as if you are calling your resize too early. try doing this instead:
$("#map").slideToggle('slow', function() {
google.maps.event.trigger(map, 'resize');
});
This will make the resize function be called after the slide toggle has finished.
If the above doesn't work, a workaround would be to enclose the map div inside another div with overflow hidden and then slide toggle the parent div instead of the map div