Index: fckeditor.admin.inc
===================================================================
--- fckeditor.admin.inc	(revision 4462)
+++ fckeditor.admin.inc	(working copy)
@@ -765,12 +765,28 @@
     $filebrowsers['webfm'] = t('Web File Manager');
   }
 
-  $form['fckeditor_upload_settings']['filebrowser'] = array(
+  $form['fckeditor_upload_settings']['link_filebrowser'] = array(
     '#type' => 'select',
-    '#title' => t('File browser type'),
-    '#default_value' => !empty($profile->settings['filebrowser']) ? $profile->settings['filebrowser'] : 'none',
+    '#title' => t('File browser type for Links'),
+    '#default_value' => !empty($profile->settings['link_filebrowser']) ? $profile->settings['link_filebrowser'] : 'none',
     '#options' => $filebrowsers,
-    '#description' => t('Select the file browser that you would like to use to upload files, images and flash movies.'),
+    '#description' => t('Select the file browser that you would like to use to upload files.'),
+  );
+  
+  $form['fckeditor_upload_settings']['image_filebrowser'] = array(
+    '#type' => 'select',
+    '#title' => t('File browser type for Images'),
+    '#default_value' => !empty($profile->settings['image_filebrowser']) ? $profile->settings['image_filebrowser'] : 'none',
+    '#options' => $filebrowsers,
+    '#description' => t('Select the file browser that you would like to use to upload images.'),
+  );
+  
+  $form['fckeditor_upload_settings']['flash_filebrowser'] = array(
+    '#type' => 'select',
+    '#title' => t('File browser type for Flash'),
+    '#default_value' => !empty($profile->settings['flash_filebrowser']) ? $profile->settings['flash_filebrowser'] : 'none',
+    '#options' => array('none' => t('None'), 'builtin' => t('Built-in file browser'), 'imce' => t('IMCE'), 'webfm' => t('Web File Manager')), //ImageBrowser doesn't support Flash files, do don't give the option
+    '#description' => t('Select the file browser that you would like to use to upload flash movies.'),
   );
 
   $form['fckeditor_upload_settings']['quickupload'] = array(
Index: fckeditor.install
===================================================================
--- fckeditor.install	(revision 4462)
+++ fckeditor.install	(working copy)
@@ -401,7 +401,7 @@
   $profiles = fckeditor_profile_load();
 
   foreach ($profiles as $profile) {
-    if ((isset($profile->settings['filebrowser']) && $profile->settings['filebrowser'] == 'builtin') || (isset($profile->settings['quickupload']) && $profile->settings['quickupload'] == 't')) {
+    if ((isset($profile->settings['link_filebrowser']) && $profile->settings['link_filebrowser'] == 'builtin') || (isset($profile->settings['image_filebrowser']) && $profile->settings['image_filebrowser'] == 'builtin') || (isset($profile->settings['flash_filebrowser']) && $profile->settings['flash_filebrowser'] == 'builtin') || (isset($profile->settings['quickupload']) && $profile->settings['quickupload'] == 't')) {
       return $profile->name;
     }
   }
Index: fckeditor.module
===================================================================
--- fckeditor.module	(revision 4462)
+++ fckeditor.module	(working copy)
@@ -660,21 +660,33 @@
 
     // add code for filebrowser for users that have access
     if (user_access('allow fckeditor file uploads')==1) {
-      $filebrowser = !empty($conf['filebrowser']) ? $conf['filebrowser'] : 'none';
-      if ($filebrowser == 'imce' && !module_exists('imce')) {
-        $filebrowser = 'none';
-      }
-      if ($filebrowser == 'ib' && !module_exists('imagebrowser')) {
-        $filebrowser = 'none';
-      }
-      if ($filebrowser == 'webfm' && !module_exists('webfm_popup')) {
-        $filebrowser = 'none';
+      $filebrowser = array();
+      $filebrowser['link'] = !empty($conf['link_filebrowser']) ? $conf['link_filebrowser'] : 'none';
+      $filebrowser['image'] = !empty($conf['image_filebrowser']) ? $conf['image_filebrowser'] : 'none';
+      $filebrowser['flash'] = !empty($conf['flash_filebrowser']) ? $conf['flash_filebrowser'] : 'none';
+      
+      $builtin = false;
+      
+      foreach ($filebrowser as $type => $setting) {
+        if ($setting == 'imce' && !module_exists('imce')) {
+          $filebrowser[$type] = 'none';
+        }
+        if ($setting == 'ib' && !module_exists('imagebrowser')) {
+          $filebrowser[$type] = 'none';
+        }
+        if ($setting == 'webfm' && !module_exists('webfm_popup')) {
+          $filebrowser[$type] = 'none';
+        }
+        if ($setting == 'builtin') {
+          $builtin = true;
+        }
       }
+      
       $quickupload = (!empty($conf['quickupload']) && $conf['quickupload'] == 't');
 
       // load variables used by both quick upload and filebrowser
       // and assure that the $_SESSION variables are loaded
-      if ($quickupload || $filebrowser == 'builtin') {
+      if ($quickupload || $builtin) {
         if (file_exists($editor_local_path ."/editor/filemanager/connectors/php/connector.php")) {
           $connector_path = $editor_path ."/editor/filemanager/connectors/php/connector.php" ;
         }
@@ -718,54 +730,44 @@
         $js .= $js_id .".Config['ImageUpload'] = false;\n";
         $js .= $js_id .".Config['FlashUpload'] = false;\n";
       }
-
-      switch ($filebrowser) {
-        case 'imce':
-          $js .= $js_id .".Config['LinkBrowser']= true;\n";
-          $js .= $js_id .".Config['ImageBrowser']= true;\n";
-          $js .= $js_id .".Config['FlashBrowser']= true;\n";
-          $js .= $js_id .".Config['LinkBrowserURL']= '". $host ."index.php?q=imce&app=FCKEditor|url@txtLnkUrl,txtUrl';\n";
-          $js .= $js_id .".Config['ImageBrowserURL']= '". $host ."index.php?q=imce&app=FCKEditor|url@txtUrl|width@txtWidth|height@txtHeight';\n";
-          $js .= $js_id .".Config['FlashBrowserURL']= '". $host ."index.php?q=imce&app=FCKEditor|url@txtUrl';\n";
-          break;
-
-        case 'webfm':
-          $js .= $js_id .".Config['LinkBrowser']= true;\n";
-          $js .= $js_id .".Config['ImageBrowser']= true;\n";
-          $js .= $js_id .".Config['FlashBrowser']= true;\n";
-          $js .= $js_id .".Config['ImageDlgHideLink']= true;\n";
-          $js .= $js_id .".Config['LinkBrowserURL']= '". $host ."index.php?q=webfm_popup&url=txtUrl';\n";
-          $js .= $js_id .".Config['ImageBrowserURL']= '". $host ."index.php?q=webfm_popup&url=txtUrl';\n";
-          $js .= $js_id .".Config['FlashBrowserURL']= '". $host ."index.php?q=webfm_popup&url=txtUrl';\n";
-          break;
-
-        case 'builtin':
-          $js .= $js_id .".Config['LinkBrowser'] = true;\n";
-          $js .= $js_id .".Config['ImageBrowser'] = true;\n";
-          $js .= $js_id .".Config['FlashBrowser'] = true;\n";
-          $js .= $js_id .".Config['LinkBrowserURL'] = '". $editor_path ."/editor/filemanager/browser/default/browser.html?Connector=". $connector_path ."&ServerPath=". $files_path ."';\n";
-          $js .= $js_id .".Config['ImageBrowserURL'] = '". $editor_path ."/editor/filemanager/browser/default/browser.html?Type=Image&Connector=". $connector_path ."&ServerPath=". $files_path ."';\n";
-          $js .= $js_id .".Config['FlashBrowserURL'] = '". $editor_path ."/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=". $connector_path ."&ServerPath=". $files_path ."';\n";
-          break;
-
-        case 'ib':
-          $js .= $js_id .".Config['ImageBrowser']= true;\n";
-          $js .= $js_id .".Config['LinkBrowser']= true;\n";
-          $js .= $js_id .".Config['FlashBrowser']= false;\n";
-          $js .= $js_id .".Config['ImageBrowserURL']= '". $host ."index.php?q=imagebrowser/view/browser&app=FCKEditor';\n";
-          $js .= $js_id .".Config['LinkBrowserURL']= '". $host ."index.php?q=imagebrowser/view/browser&app=FCKEditor';\n";
-          $js .= $js_id .".Config['ImageBrowserWindowWidth']= '680';";
-          $js .= $js_id .".Config['ImageBrowserWindowHeight'] = '439';";
-          $js .= $js_id .".Config['LinkBrowserWindowWidth']= '680';";
-          $js .= $js_id .".Config['LinkBrowserWindowHeight'] = '439';";
-          break;
-
-        default:
-        case 'none':
-          $js .= $js_id .".Config['LinkBrowser'] = false;\n";
-          $js .= $js_id .".Config['ImageBrowser'] = false;\n";
-          $js .= $js_id .".Config['FlashBrowser'] = false;\n";
-          break;
+      
+      if (isset($filebrowser['link']) && $filebrowser['link'] != 'none') {
+        $js .= $js_id .".Config['LinkBrowser']= true;\n";
+        switch ($filebrowser['link']) {
+          case 'imce' : $js .= $js_id .".Config['LinkBrowserURL']= '". $host ."index.php?q=imce&app=FCKEditor|url@txtLnkUrl,txtUrl';\n";
+          case 'webfm' : $js .= $js_id .".Config['LinkBrowserURL']= '". $host ."index.php?q=webfm_popup&url=txtUrl';\n"; break;
+          case 'ib' : $js .= $js_id .".Config['LinkBrowserURL']= '". $host ."index.php?q=webfm_popup&url=txtUrl';\n"; break;
+          default : $js .= $js_id .".Config['LinkBrowserURL'] = '". $editor_path ."/editor/filemanager/browser/default/browser.html?Connector=". $connector_path ."&ServerPath=". $files_path ."';\n"; break;
+        }
+      }
+      else {
+        $js .= $js_id .".Config['LinkBrowser']= false;\n";
+      }
+      
+    if (isset($filebrowser['image']) && $filebrowser['image'] != 'none') {
+        $js .= $js_id .".Config['ImageBrowser']= true;\n";
+        switch ($filebrowser['image']) {
+          case 'imce' : $js .= $js_id .".Config['ImageBrowserURL']= '". $host ."index.php?q=imce&app=FCKEditor|url@txtUrl|width@txtWidth|height@txtHeight';\n"; break;
+          case 'webfm' : $js .= $js_id .".Config['ImageBrowserURL']= '". $host ."index.php?q=webfm_popup&url=txtUrl';\n"; break;
+          case 'ib' : $js .= $js_id .".Config['ImageBrowserURL']= '". $host ."index.php?q=imagebrowser/view/browser&app=FCKEditor';\n"; break;
+          default : $js .= $js_id .".Config['ImageBrowserURL'] = '". $editor_path ."/editor/filemanager/browser/default/browser.html?Type=Image&Connector=". $connector_path ."&ServerPath=". $files_path ."';\n"; break;
+        }
+      }
+      else {
+        $js .= $js_id .".Config['ImageBrowser']= false;\n";
+      }
+      
+    //ImageBrowser doesn't support Flash, so don't allow it to be set
+    if (isset($filebrowser['flash']) && $filebrowser['flash'] != 'none' && $filebrowser['flash'] != 'ib') {
+        $js .= $js_id .".Config['FlashBrowser']= true;\n";
+        switch ($filebrowser['flash']) {
+          case 'imce' : $js .= $js_id .".Config['FlashBrowserURL']= '". $host ."index.php?q=imce&app=FCKEditor|url@txtUrl';\n"; break;
+          case 'webfm' : $js .= $js_id .".Config['FlashBrowserURL']= '". $host ."index.php?q=webfm_popup&url=txtUrl';\n"; break;
+          default : $js .= $js_id .".Config['FlashBrowserURL'] = '". $editor_path ."/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=". $connector_path ."&ServerPath=". $files_path ."';\n"; break;
+        }
+      }
+      else {
+        $js .= $js_id .".Config['FlashBrowser']= false;\n";
       }
     }
     else {

