--- draft.js	2008-11-08 19:14:17.000000000 +0100
+++ ../tmp/draft/draft.js	2008-11-06 21:58:39.000000000 +0100
@@ -20,7 +20,7 @@ if (Drupal.jsEnabled) {
  * Function for setting the timeout to save the draft information
  */
 Drupal.draft.saveTimeout = function() {
-  setTimeout(Drupal.draft.saveForm, Drupal.settings.draft.interval);
+  setTimeout('Drupal.draft.saveForm()', Drupal.settings.draft.interval);
 }
 
 /**
@@ -28,22 +28,19 @@ Drupal.draft.saveTimeout = function() {
  */
 Drupal.draft.saveForm = function() {
   $('#' + Drupal.settings.draft.button_id).attr('disabled', 'disabled');
-  $('#' + Drupal.settings.draft.button_id).addClass('disabled');
-  $('.draft_save').show();
+  $('.draft_save').slideDown();
 
   // Triggering the tinyMCE save piece so it will give us the text into the body portion
   if (typeof tinyMCE == 'object') {
     tinyMCE.triggerSave();
   };
-  
   // adding FCKEditor support
-  if (typeof FCKeditorAPI == 'object') {
-    for( var i = 0 ; i < fckLaunchedJsId.length ; i++ ) { 
-      var fck = FCKeditorAPI.GetInstance( fckLaunchedJsId[i] )
-      fck.UpdateLinkedField();
-    }
-  }
-  
+  if (typeof FCKeditor == 'object' && fckLaunchedTextareaId.length) {
+    for ( var i = 0; i < fckLaunchedTextareaId.length; i++) {
+      var text = FCKeditorAPI.GetInstance( fckLaunchedJsId[i] ).GetXHTML();
+      document.getElementById( fckLaunchedTextareaId[i] ).value = text;
+    };
+  };
   // utilizing the jquery.fields.js plugin here for form hash
   var form_data = $('#' + Drupal.settings.draft.form_id).formHash();
   // removing the tokens we specified in the configuration of the module
@@ -52,15 +49,6 @@ Drupal.draft.saveForm = function() {
     var token = tokens[x];
     delete form_data[token];
   }
-  
-  var saved;
-  for (key in form_data) {
-    saved = form_data[key];
-    delete form_data[key];
-    key = key.replace(/\[/g,'(').replace(/\]/g,')')
-    form_data[key] = saved;
-  }
-  
   form_data['node_type'] = Drupal.settings.draft.node_type;
   // sending the data back to the server for saving the draft format
   $.ajax({
@@ -73,8 +61,7 @@ Drupal.draft.saveForm = function() {
     },
     complete: function() {
       $('#' + Drupal.settings.draft.button_id).removeAttr('disabled');
-      $('#' + Drupal.settings.draft.button_id).removeClass('disabled');
-      setTimeout(function() { $('.draft_save').hide(); }, 1000);
+      setTimeout(function() { $('.draft_save').slideUp(); }, 2000);
     }
   });
 
@@ -89,13 +76,6 @@ Drupal.draft.saveForm = function() {
  * Function re-populates the form with the information
  */
 Drupal.draft.populateForm = function() {
-  for (key in Drupal.settings.draft.form_data) {
-    saved = Drupal.settings.draft.form_data[key];
-    delete Drupal.settings.draft.form_data[key];
-    key = key.replace(/\(/g,'[').replace(/\)/g,']')
-    Drupal.settings.draft.form_data[key] = saved;
-  }
-
   $('#' + Drupal.settings.draft.form_id).formHash(Drupal.settings.draft.form_data);
 
   // for tinyMCE editor
@@ -110,11 +90,12 @@ Drupal.draft.populateForm = function() {
   };
 
   // for FCKEditor
-  if (typeof FCKeditorAPI == 'object') {
-    for( var i = 0 ; i < fckLaunchedJsId.length ; i++ ) {
-      var fck = FCKeditorAPI.GetInstance( fckLaunchedJsId[i] )
-      fck.SetHTML($('#' + fckLaunchedJsId[i]).val());
+  if (typeof FCKeditor == 'object' && fckLaunchedTextareaId.length) {
+    for ( var i = 0; i < fckLaunchedTextareaId.length; i++) {
+      var text = document.getElementById(fckLaunchedTextareaId[i]).value;
+      if (text) {
+        FCKeditorAPI.GetInstance(fckLaunchedJsId[i]).InsertHtml(text);
+      }
     }
   }
-
 }
