? asset_bonus/.DS_Store
Index: asset_bonus/asset_bonus.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/asset/asset_bonus/Attic/asset_bonus.module,v
retrieving revision 1.1.2.16
diff -u -p -r1.1.2.16 asset_bonus.module
--- asset_bonus/asset_bonus.module	16 Mar 2008 19:13:14 -0000	1.1.2.16
+++ asset_bonus/asset_bonus.module	27 May 2008 03:16:01 -0000
@@ -261,6 +261,7 @@ function theme_asset_bonus_swfobject($as
   $div_id = 'swfobject-'. $asset->aid;
   $addVariable = '';
   $addParam = '';
+  $func_name = 'asset_swfobject_'. $asset->aid;
   
   // build a list of addVariable statements for each flashVar
   foreach ((array)$options['vars'] as $k => $v) {
@@ -295,15 +296,39 @@ function theme_asset_bonus_swfobject($as
   // We're not using drupal_add_js(drupal_get_path('module','asset_bonus').'/swfobject/swfobject.js') because of caching issues
   $swfobject = base_path() . drupal_get_path('module', 'asset_bonus') .'/swfobject/swfobject.js';
   $output = <<<OUT
-  <script type="text/javascript" src="{$swfobject}"></script>
+  <script type="text/javascript">
+  var asset_scripts = document.getElementsByTagName("script");
+  var asset_swfswitch = false;
+  for (var i = 0; i < asset_scripts.length; i++) {
+    if (asset_scripts[i].src == "$swfobject") {
+      asset_swfswitch = true;
+    }
+  }
+  if (asset_swfswitch == false) {
+    var newjs=document.createElement('script');
+    newjs.type='text/javascript';
+    newjs.src='$swfobject';
+    document.getElementsByTagName('head')[0].appendChild(newjs);
+  }
+  var swfobject_loaded_$func_name = false;
+  function $func_name() {
+    swfobject_loaded_$func_name = ((typeof SWFObject) == "undefined") ? false : true;
+    if (swfobject_loaded_$func_name) {
+      var oSwf = new SWFObject("{$asset->url}","$embed_id","{$options['width']}","{$options['height']}","{$options['version']}","{$options['bgcolor']}");
+      $addVariable
+      $addParam
+      oSwf.write("$div_id");
+      oSwf = null;
+    }
+    else {
+      setTimeout("$func_name()", 10)
+    }
+  }
+  </script>
   <div id="$div_id" class="asset-swfobject">Video placeholder</div>
   <script type="text/javascript" defer="defer">
-    var oSwf = new SWFObject("{$asset->url}","$embed_id","{$options['width']}","{$options['height']}","{$options['version']}","{$options['bgcolor']}");
-    $addVariable
-    $addParam
-    oSwf.write("$div_id");
-    oSwf = null;
-  </script>      
+  $func_name();
+  </script>  
 OUT;
   return $output;
 }
