? gmap.patch
? thirdparty/extinfowindow
Index: gmap.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/gmap/gmap.module,v
retrieving revision 1.104.2.5
diff -u -p -r1.104.2.5 gmap.module
--- gmap.module	8 Apr 2010 13:40:19 -0000	1.104.2.5
+++ gmap.module	18 Apr 2010 20:39:08 -0000
@@ -273,6 +273,21 @@ function _gmap_doheader() {
     return;
   }
   $gmap_path = drupal_get_path('module', 'gmap');
+  
+  //ExtInfoWindow
+  if(variable_get('gmap_extinfowindow_active', FALSE)){
+    
+    drupal_add_js(array('gmap' => array('extinfowindow' => variable_get('gmap_extinfowindow_active', FALSE))), 'setting');
+    
+    //add the extinfowindow js
+    drupal_add_js($gmap_path . '/thirdparty/extinfowindow/extinfowindow.js');
+    
+    //find the active theme
+    $theme = variable_get('gmap_extinfowindow_theme','dark');
+    //add the theme css
+    drupal_add_css($gmap_path . '/thirdparty/extinfowindow/themes/' . $theme . '/' . $theme .'.css');
+  }
+  
   drupal_add_css($gmap_path . '/gmap.css');
   drupal_add_js($gmap_path . '/js/gmap.js');
   $mm = variable_get('gmap_mm_type', 'gmap');
@@ -1246,3 +1261,23 @@ function gmap_views_plugins() {
     ),
   );
 }
+
+
+/**
+ * Get the themes for ExtInfoWindow
+ *
+ * @return
+ * An array with themes for ExtInfoWindow.
+ */
+function gmap_extinfowindow_themes(){
+  
+  $path = drupal_get_path('module','gmap') . '/';    
+  $themes = file_scan_directory($path . 'thirdparty/extinfowindow/themes','.css');
+    
+  $ext_themes = array();    
+  foreach($themes as $theme){
+      $ext_themes[$theme->name] = $theme->name; 
+  }  
+        
+  return $ext_themes;
+}
\ No newline at end of file
Index: gmap_settings_ui.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/gmap/gmap_settings_ui.inc,v
retrieving revision 1.12.2.3
diff -u -p -r1.12.2.3 gmap_settings_ui.inc
--- gmap_settings_ui.inc	8 Apr 2010 13:40:19 -0000	1.12.2.3
+++ gmap_settings_ui.inc	18 Apr 2010 20:39:11 -0000
@@ -581,6 +581,30 @@ function gmap_admin_settings(&$form_stat
     '#size' => 4,
     '#maxlength' => 4,
   );
+  
+  //Arshad Chummun - ExtInfoWindow Settings  
+  $form['gmap_extinfowindow'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('ExtInfoWindow'),
+    '#description' => t('ExtInfoWindow enables you to theme the pop info window'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  
+  $form['gmap_extinfowindow']['gmap_extinfowindow_active'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Enable GMap Ext Window'),
+    '#default_value' => variable_get('gmap_extinfowindow_active', FALSE),
+    '#description'   => t('Enable/disable the GMap Ext Info Window'),
+  );
+    
+  $form['gmap_extinfowindow']['gmap_extinfowindow_theme'] = array(
+    '#type'           => 'select',
+    '#title'          => t('Theme'),
+    '#default_value'  => variable_get('gmap_extinfowindow_theme', 'dark'),
+    '#options'        => gmap_extinfowindow_themes(),
+    '#description'    => t('The theme to use for the ext window inplementation.')
+  );
 
   // @@@ Convert to element level validation.
   $form['#validate'][] = 'gmap_admin_settings_validate';
Index: js/marker.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/gmap/js/marker.js,v
retrieving revision 1.4.2.1
diff -u -p -r1.4.2.1 marker.js
--- js/marker.js	8 Apr 2010 13:40:19 -0000	1.4.2.1
+++ js/marker.js	18 Apr 2010 20:39:11 -0000
@@ -61,7 +61,18 @@ Drupal.gmap.addHandler('gmap', function 
   obj.bind('clickmarker', function (marker) {
     // Local/stored content
     if (marker.text) {
-      marker.marker.openInfoWindowHtml(marker.text);
+      //ExtInfoWindow Implementation
+      if(Drupal.settings.gmap.extinfowindow){
+          marker.marker.openExtInfoWindow(
+            obj.map,
+            "opacity_window",
+            marker.text,
+            {beakOffset: 2}
+          );
+        }
+      else{
+        marker.marker.openInfoWindowHtml(marker.text);
+      }
     }
     // AJAX content
     if (marker.rmt) {
@@ -79,7 +90,18 @@ Drupal.gmap.addHandler('gmap', function 
       //  marker.marker.openInfoWindowHtml(Drupal.settings.loadingImage);
       //}
       $.get(uri, {}, function (data) {
-        marker.marker.openInfoWindowHtml(data);
+        //ExtInfoWindow Implementation
+        if(Drupal.settings.gmap.extinfowindow){
+          marker.marker.openExtInfoWindow(
+            obj.map,
+            "opacity_window",
+            data,
+            {beakOffset: 2}
+          );
+        }
+        else{
+          marker.marker.openInfoWindowHtml(data);
+        }
       });
     }
     // Tabbed content
