diff --git includes/kaltura.themeing.inc includes/kaltura.themeing.inc
index 95841ea..f0318e2 100644
--- includes/kaltura.themeing.inc
+++ includes/kaltura.themeing.inc
@@ -19,6 +19,7 @@ $GLOBALS['_kaltura_client_folder'] = drupal_get_path('module', 'kaltura') .'/kal
 function kaltura_replace_tags($content, $is_comment = FALSE, $replace_to_thumb = FALSE) {
   global $user, $multibyte;
   $length = drupal_strlen($content);
+  drupal_add_js(drupal_get_path('module', 'kaltura') . '/js/kaltura_drupal.js');
   // add PHP_EOL before each kaltura widget to ensure correct grep_match results
   $content = str_replace('[kaltura-widget', PHP_EOL .'[kaltura-widget', $content);
   $found = FALSE;
@@ -45,91 +46,15 @@ function kaltura_replace_tags($content, $is_comment = FALSE, $replace_to_thumb =
     }
   }
 
-  foreach ($kaltura_tags as $kaltura_tag) {
+  foreach ($kaltura_tags as $key => $kaltura_tag) {
     $found = TRUE;
     // parse the parameters from the tag
     $params = kaltura_get_params_from_tag($kaltura_tag);
   
     // get the embed options from the params
     $embed_options = kaltura_get_embed_options($params);
-    
-    $wid = $embed_options["wid"];
-    $width = $embed_options["width"];
-    $height = $embed_options["height"];
-    $div_id = "kaltura_wrapper_". $wid;
-    $thumbnail_div_id = "kaltura_thumbnail_". $wid;
-    $player_id = "kaltura_player_". $wid;
-    $partner_config = KalturaHelpers::getServiceConfiguration();
-    $kaltura_server = (variable_get('kaltura_server_url', ''))? variable_get('kaltura_server_url', ''): KalturaSettings_SERVER_URL;
-
-    $kaltura_poweredby = '<div style="width: '. $width .'px;" class="poweredByKaltura"><div><a target="_blank" href="http://drupal.kaltura.org">Video Module</a> by <a target="_blank" href="http://corp.kaltura.com">Kaltura</a></div></div>';
-    if (variable_get('kaltura_display_credits', 1)) {
-      $links = '<a href="http://corp.kaltura.com/download">open source video</a><a href="http://corp.kaltura.com/technology/">video platform</a>';
-    }
-    if ($replace_to_thumb === TRUE) {
-      $html = '<img src="'. $kaltura_server .'/p/'. $partner_config->partnerId .'/sp/'. $partner_config->subPartnerId .'/thumbnail/entry_id/'. $embed_options["media_id"] .'" />';
-      $content = str_replace($kaltura_tag, $html, $content);
-      continue;
-    }
-    
-    $div_id = "kaltura_wrapper_". $embed_options["media_id"];
-    $player_id = ($embed_options['div_id'])? $embed_options['div_id']: "kaltura_player_". $embed_options["media_id"];
-    $align = ($embed_options["align"])? 'text-align:'. $embed_options["align"] .'; ': '';
-    if ($is_comment) {
-      $thumb_div_id = 'kaltura_thumbnail_'. $embed_options["media_id"];
-      $onclick_value = 'kaltura_activate_player(\''. $thumb_div_id .'\',\''. $div_id .'\');';
-      $img_tag = '<img src="'. $kaltura_server .'/p/'. $partner_config->partnerId .'/sp/'. $partner_config->subPartnerId .'/thumbnail/entry_id/'. $embed_options["media_id"] .'/width/'. $width .'/height/'. $height .'/type/2/bgcolor/000000/crop_provider/wordpress_comment_placeholder" />';
-      $comment_div = '<div id="'. $thumb_div_id .'" class="kaltura_hand" onclick="'. $onclick_value .'">';
-      $comment_div .= $img_tag .'</div>';
-    }
-    else {
-      $comment_div = '';
-    }
-    $html = $comment_div .'
-      <div id="'. $div_id .'" class="kaltura_wrapper" style="'. (($comment_div != '')? 'display:none;':'') . $align . $embed_options['custom_style'] .'"'. $embed_options['js_events'] .'>'. $links .'</div>'. $kaltura_poweredby .'
-      <script type="text/javascript">
-              var kaltura_swf = new SWFObject("'. $embed_options["swfUrl"] .'", "'. $player_id .'", "'. $embed_options["width"] .'", "'. $embed_options["height"] .'", "9", "#000000");
-              kaltura_swf.addParam("wmode", "opaque");
-              kaltura_swf.addParam("flashVars", "'. $embed_options["flashVars"] . (($comment_div != '')? '&autoPlay=true': '') .'");
-              kaltura_swf.addParam("allowScriptAccess", "always");
-              kaltura_swf.addParam("allowFullScreen", "TRUE");
-              kaltura_swf.addParam("allowNetworking", "all");
-              kaltura_swf.write("'. $div_id .'");
-      </script>
-    ';
-    
-    // rebuild the html with our new code tag 
-    $content = str_replace($kaltura_tag, $html, $content);
-  }
-  
-  if ($found && $replace_to_thumb === FALSE) {
-    $plugin_url = KalturaHelpers::getKalturaServerUrl();
-    $js = '
-      <script type="text/javascript">
-        function onPlayerAddClick (kshowId,entryId,pd_extraData) {
-          if (kshowId && kshowId != -1) 
-            kalturaInitModalBox("'. url("kaltura/contribution_wizard/") .'" + kshowId);
-          if (entryId && entryId != -1 && "true" == "'. (($embed_options['roughcut'])? 'true': '') .'")
-            kalturaInitModalBox("'. url("kaltura/contribution_wizard/") . (($embed_options['roughcut'])? 'entry-': '') .'" + entryId );
-        }
-  
-        function onPlayerEditClick (kshowId,entryId,pd_extraData) {
-          if (kshowId && kshowId != -1 && "true" == "'. (($embed_options['kshow'])? 'true': '') .'") 
-            kalturaInitModalBox("'. url("kaltura/simple_editor/") .'" + kshowId + "/kshow/user_id@'. $user->uid .'", { width: 890, height: 546 } );
-          if (entryId && entryId != -1 && "true" == "'. (($embed_options['roughcut'])? 'true': '') .'")
-            kalturaInitModalBox("'. url("kaltura/simple_editor/") .'" + entryId + "/entry/user_id@'. $user->uid .'", { width: 890, height: 546 } );
-        }
-  
-        function handleGotoContribWizard (kshowId, pd_extraData) {
-          kalturaInitModalBox("'. url("kaltura/contribution_wizard/") .'" + kshowId);
-        }
-  
-        function handleGotoEditorWindow (kshowId, pd_extraData) {
-          kalturaInitModalBox("'. url("kaltura/simple_editor/") .'" + kshowId, { width: 890, height: 546 } );
-        }
-      </script>';
-  
-    $content .= $js;
+    $embed_options['uid'] = $GLOBALS['user']->uid;
+    drupal_add_js(array('kaltura' =>$embed_options), 'setting');
   }
   
   return $content;
diff --git js/kaltura_drupal.js js/kaltura_drupal.js
new file mode 100644
index 0000000..cb6f60d
--- /dev/null
+++ js/kaltura_drupal.js
@@ -0,0 +1,43 @@
+// $Id: $
+
+function onPlayerAddClick (kshowId,entryId,pd_extraData) {
+  if (kshowId && kshowId != -1) {
+    kalturaInitModalBox("kaltura/contribution_wizard/" + kshowId);
+  }
+  if (entryId && entryId != -1 && Drupal.settings.kaltura.roughcut) {
+    kalturaInitModalBox("kaltura/contribution_wizard/" + (Drupal.settings.kalutra['roughcut'])? 'entry-': '' + entryId );
+  }
+}
+
+function onPlayerEditClick (kshowId,entryId,pd_extraData) {
+  if (kshowId && kshowId != -1 && Drupal.settings.kalutra.kshow) {
+    kalturaInitModalBox("kaltura/simple_editor/" + kshowId + "/kshow/user_id@'. $user->uid .'", { width: 890, height: 546 } );
+  }
+  if (entryId && entryId != -1 && Drupal.settings.kaltura.roughcut) {
+    kalturaInitModalBox("kaltura/simple_editor/" + entryId + "/entry/user_id@'. $user->uid .'", { width: 890, height: 546 } );
+  }
+}
+
+function handleGotoContribWizard (kshowId, pd_extraData) {
+  kalturaInitModalBox("kaltura/contribution_wizard/" + kshowId);
+}
+
+function handleGotoEditorWindow (kshowId, pd_extraData) {
+  kalturaInitModalBox("kaltura/simple_editor/" + kshowId, { width: 890, height: 546 } );
+}
+
+/**
+ * Behavior to find all the kaltura tags and replace them with the player
+ */
+Drupal.behaviors.kalturaPlayer = function (context) {
+  $('div.kaltura-player:not(.kaltura-player-processed').each (function (i) {
+    $(this).replaceWith('<div id="' + Drupal.settings.kaltura.media_id + '" class="kaltura_wrapper"' + Drupal.settings.kaltura.custom_style + Drupal.settings.kaltura.js_events + "></div>");
+    var kaltura_swf = new SWFObject(Drupal.settings.kaltura.swfUrl, "kaltura_player_" + Drupal.settings.kaltura.media_id, Drupal.settings.kaltura.width, Drupal.settings.kaltura.height, '9', '#000000')
+    kaltura_swf.addParam("wmode", "opaque");
+    kaltura_swf.addParam("flashVars", Drupal.settings.kaltura.flashVars);
+    kaltura_swf.addParam("allowScriptAccess", "always");
+    kaltura_swf.addParam("allowFullScreen", "TRUE");
+    kaltura_swf.addParam("allowNetworking", "all");
+    kaltura_swf.write(Drupal.settings.kaltura.media_id);
+  }).addClass('kaltura-player-processed');
+}
\ No newline at end of file
diff --git kaltura.module kaltura.module
index 61a4e39..d96894e 100644
--- kaltura.module
+++ kaltura.module
@@ -214,11 +214,11 @@ function kaltura_nodeapi(&$node, $op, $teaser) {
     case "view":
       break;
     case 'search result':
-      $node->body = kaltura_replace_tags($node->body, FALSE, TRUE);
+      kaltura_replace_tags($node->body, FALSE, TRUE);
       break;
     case "alter":
-      $node->body = kaltura_replace_tags($node->body);
-      $node->teaser = kaltura_replace_tags($node->teaser);
+      kaltura_replace_tags($node->body);
+      kaltura_replace_tags($node->teaser);
       break;
     default:
   }
diff --git plugins/node_kaltura_entry/node_kaltura_entry.module plugins/node_kaltura_entry/node_kaltura_entry.module
index bd9f2eb..4d604f3 100644
--- plugins/node_kaltura_entry/node_kaltura_entry.module
+++ plugins/node_kaltura_entry/node_kaltura_entry.module
@@ -544,8 +544,10 @@ function node_kaltura_entry_view($node, $teaser = FALSE, $page = FALSE) {
   );
   if ($node->kaltura_entryId) {
     $node->content['kaltura_entry'] = array(
+      '#prefix' => '<div class="kaltura-player" style="display:none;">',
       '#value' => theme('node_kaltura_entry_entryId', $node, $teaser),
       '#weight' => 7,
+      '#suffix' => '</div>',
     );
   }
   $node->content['kaltura_thumbnail_url'] = array(
