title: Google maps v3 API markers dissapears when closing its InfoWindow (InfoBubble)
body: <p>I am pretty new to JavaScript and the google maps API. I cannot figure out what is wrong.</p>
  
  <p>The InfoWindow is actually a class I found "InfoBubble". 
  <a href="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/examples/example.html/" rel="nofollow">http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/examples/example.html/</a></p>
  
  <p><strong>Here is the situation:</strong></p>
  
  <pre><code>1. I create my map and add a 'click' event. The event creates Markers. 
  2. I create one global infoWindow.
  3. I click the map, a Marker appears.
  4. I click the map, a Marker appears.
  5. I click the map, a Marker appears. Step 3-5 can be repeated lots and lots.
  6. I click marker number X 
    6.1. An infoWindow pops up.
  7. I click marker number Y 
    7.1. The infoWindow is closed. (.close())
    7.2. Its content and position is changed
    7.3. It is opened on the new position (.open(map,marker))
    7.4. Also Marker number X is removed.
  </code></pre>
  
  <p><strong>Try it yourself:</strong> <a href="http://dl.dropbox.com/u/6084360/test/index.html" rel="nofollow">http://dl.dropbox.com/u/6084360/test/index.html</a></p>
  
  <p>Why is step 7.4. happening? After it has happened I can click markers however I feel like without anything disappearing. <strong>WHY?</strong></p>
  
  <p>I have tried debugging somewhat via Google Chrome but after I do step <strong>7.3</strong> it takes me into some minified code and I get lost.</p>
  
  <p>Here is the line which removes the marker. I have no idea why it removes it or how to know where to start.</p>
  
  <pre><code>R.addDomListenerOnce=function(a,b,c,d){var e=R[yc](a,b,function(){e[wb]();return c[Cc](this,arguments)},d);return e};R.R=function(a,b,c,d){c=cf(c,d);return R[yc](a,b,c)};function cf(a,b){return function(c){return b[oc](a,c,this)}}R.bind=function(a,b,c,d){return R[G](a,b,P(c,d))};R.addListenerOnce=function(a,b,c){var d=R[G](a,b,function(){d[wb]();return c[Cc](this,arguments)});return d};R.forward=function(a,b,c){return R[G](a,b,df(b,c))};R.ua=function(a,b,c,d){return R[yc](a,b,df(b,c,!d))};
  </code></pre>
  
  <p>My code: 
  </p>
  
  <pre><code>    var times = 0;
      var treasureLocation = new google.maps.LatLng(62.05350309096103, 15.373047874999997);
      var map, infoBubble = null;
  
      function initialize() 
      {   
          // Create the actual map.
          map = new google.maps.Map(document.getElementById("map_canvas"), 
              {
                zoom:         4,
                center:       new google.maps.LatLng(62.05350309096103, 15.373047874999997),
                mapTypeId:    google.maps.MapTypeId.ROADMAP
              }
          );
  
          infoBubble = new InfoBubble({
              disableAutoPan: true
          });
  
          // Add an eventlistener to the map.
          google.maps.event.addListener
          (
              map, 
              'click', 
              function(ev)
              {
                  addMarker(ev);
              }
          );              
      }
  
      function addMarker(ev)
      {
          // Get the distance.
          var distance = getDistance( ev.latLng , treasureLocation );
  
          // Skriv ut vart man klickade.
          document.getElementById("click_info").innerHTML = "Du klickade " + distance + " ifrån skatten, försök igen!";
  
          // Create a marker
          var marker = new google.maps.Marker({
              position:   ev.latLng,
              map:        map,
              clickable:  true,
              title:      "Härifån är det bara " + distance + " till skatten!",
              icon:       "shovel.png"
          });
  
          // Hook the click on the created marker to show the created popup
          google.maps.event.addListener
          (
              marker,
              'click',
              function(ev)
              {
                  if( infoBubble != null ){infoBubble.close();}
                  infoBubble.setContent(marker.title);
                  infoBubble.setPosition(marker.position);
                  infoBubble.open(map, marker);
              }
          );
  
      }
  </code></pre>