Index: branches/XPressMU/xpressme_integration_kit/blocks/block_common.php
===================================================================
--- branches/XPressMU/xpressme_integration_kit/blocks/block_common.php	(revision 425)
+++ branches/XPressMU/xpressme_integration_kit/blocks/block_common.php	(revision 451)
@@ -18,6 +18,6 @@
 endif;
 
-if(!function_exists("dropdown_cats_options")):
-function dropdown_cats_options($sort_column = 'ID', $sort_order = 'asc', $selected=array()) 
+if(!function_exists("categorie_select")):
+function categorie_select($option_name = '',$value='',$row_num=0 ,$sort_column = 'ID', $sort_order = 'asc')
 {
     $mydirpath = dirname(dirname(__FILE__));
@@ -30,6 +30,8 @@
 	$xoopsDB =& Database::getInstance();
 	$myts =& MyTextSanitizer::getInstance();
-    $selected = is_array($selected)?$selected:array($selected);
+    $selected = explode(',' , $value);
+	$isAll = (count($selected)==0||empty($selected[0]))?true:false;
     $sort_column = 'cat_'.$sort_column;
+    if (empty($row_num)) $size = ''; else $size = 'size="' . $row_num . '"';
 	include $mydirpath.'/wp-includes/version.php';
 	if ($wp_db_version < 6124) {
@@ -53,21 +55,95 @@
     }
 	$res =  $xoopsDB->query($query, 0, 0);
+	$option = "\t<option value=\"0\" ";
+	if ($isAll) $option .= " selected=\"selected\"";
+	$option .= ">"._MB_XP2_ALL ."</option>\n";
+
     if ($res !== false){
  		while($row = $xoopsDB->fetchArray($res)){
             $cat_name = $row['cat_name'];
             $cat_ID = $row['cat_ID'];
-            echo "\t<option value=\"".$cat_ID."\"";
+            $option .= "\t<option value=\"".$cat_ID."\"";
             if (in_array($cat_ID, $selected))
-                echo ' selected="selected"';
-            echo '>';
-            echo $myts->htmlspecialchars($cat_name);
-            echo "</option>\n";
+                $option .= ' selected="selected"';
+            $option .= '>';
+            $option .= $myts->htmlspecialchars($cat_name);
+            $option .= "</option>\n";
         }
     }
-    return;
+    $output = _MB_XP2_CATS_SELECT ."<br />\n";
+    $output .= 	"<input type='hidden' name='$option_name' value='$value' />\n";
+    $output .= '&nbsp;&nbsp;<select name="categorie" '.$size.' multiple="multiple" onclick="CatSelect()">' ."\n";
+    $output .= $option;
+    $output .= '</select><br />';
+    $output .= '
+<script type="text/javascript">
+    function CatSelect(){
+        var idx=new Array();
+        var sel=document.forms["blockform"].elements["categorie"].options;
+        for(var i=0, n=0; i<sel.length; i++){
+            if(sel[i].selected){ idx[n++]=sel[i].value; }
+        }
+        if(idx.length>0){
+        	document.forms["blockform"].elements["' .$option_name . '"].value = idx;
+		}
+    }
+</script>
+';
+    
+    return $output;
+
+}
+endif;
+
+if(!function_exists("comment_type_select")):
+function comment_type_select($option_name = '',$value='')
+{
+    $selected = explode(',' , $value);
+	$isAll = (count($selected)==0||empty($selected[0]))?true:false;
+
+    $option = "<option value=\"0\" ";
+    if ($isAll) $form .= " selected=\"selected\"";
+    $option .= ">"._MB_XP2_ALL ."</option>";
+
+    $option .= "<option value=\"1\" ";
+    if (in_array(1, $selected))
+		$option .= " selected=\"selected\"";
+    $option .= ">"._MB_XP2_COMMENT ."</option>";
+
+    $option .= "<option value=\"2\" ";
+    if (in_array(2, $selected))
+		$option .= " selected=\"selected\"";
+    $option .= ">"._MB_XP2_TRUCKBACK ."</option>";
+
+    $option .= "<option value=\"3\" ";
+    if (in_array(3, $selected))
+		$option .= " selected=\"selected\"";
+    $option .= ">"._MB_XP2_PINGBACK ."</option>";
+
+    $output = _MB_XP2_COM_TYPE . "<br />\n";
+    $output .= 	"<input type='hidden' name='$option_name' value='$value' />\n";
+    $output .= '&nbsp;&nbsp;<select name="com_type" multiple="multiple" onclick="ComTypeSelect()">' ."\n";
+    $output .= $option;
+    $output .= '</select><br />';
+    $output .= '
+<script type="text/javascript">
+    function ComTypeSelect(){
+        var idx=new Array();
+        var sel=document.forms["blockform"].elements["com_type"].options;
+        for(var i=0, n=0; i<sel.length; i++){
+            if(sel[i].selected){ idx[n++]=sel[i].value; }
+        }
+        if(idx.length>0){
+        	document.forms["blockform"].elements["' .$option_name . '"].value = idx;
+		}
+    }
+</script>
+';
+    
+    return $output;
+
 }
 endif;
 
 
-
 ?>
Index: branches/XPressMU/xpressme_integration_kit/blocks/popular_posts_block.php
===================================================================
--- branches/XPressMU/xpressme_integration_kit/blocks/popular_posts_block.php	(revision 425)
+++ branches/XPressMU/xpressme_integration_kit/blocks/popular_posts_block.php	(revision 451)
@@ -23,5 +23,5 @@
 		$time_format = empty( $options[5] ) ? '' : $options[5] ;
 		$tag_select = $options[6] ;
-		$selected = array_slice($options, 7); // get allowed cats
+		$cat_select = empty( $options[7] ) ? '0' : $options[7] ;
 
 		$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
@@ -44,17 +44,5 @@
 		}
 
-	    $form .= _MB_XP2_CATS_SELECT ."<br />\n";
-	    $isAll = (count($selected)==0||empty($selected[0]))?true:false;
-	    $form .= "&nbsp;&nbsp;<select name=\"options[]\" multiple=\"multiple\">";
-	    $form .= "<option value=\"0\" ";
-	    if ($isAll) $form .= " selected=\"selected\"";
-	    $form .= ">"._MB_XP2_ALL ."</option>";
-		ob_start();
-		dropdown_cats_options('ID','asc',$selected);
-		$list_str = ob_get_contents();
-		ob_end_clean();
-	    $form .= $list_str. "</select><br />";
-//	    $form .="<br /><input type='text' size='60' name='options[5]' value='".htmlspecialchars($this_template,ENT_QUOTES)."' />";
-
+		$form .= categorie_select('options[7]' , $cat_select);
 		return $form;
 	}
Index: branches/XPressMU/xpressme_integration_kit/blocks/recent_comments_block.php
===================================================================
--- branches/XPressMU/xpressme_integration_kit/blocks/recent_comments_block.php	(revision 425)
+++ branches/XPressMU/xpressme_integration_kit/blocks/recent_comments_block.php	(revision 451)
@@ -23,5 +23,5 @@
 		$date_format = empty( $options[4] ) ? '' : $options[4] ;
 		$time_format = empty( $options[5] ) ? '' : $options[5] ;
-	    $selected = array_slice($options,6); // get allowed cats
+		$com_select = empty( $options[6] ) ? '0' : $options[6] ;
 
 		$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
@@ -37,27 +37,5 @@
 		$form .= _MB_XP2_TIME_FORMAT .": <input type='text' name='options[5]' value='" . $time_format . "' /><br />\n";
 	    $form .= "<br />\n";
-	    $form .= _MB_XP2_COM_TYPE . "<br />\n";
-	    $isAll = (count($selected)==0||empty($selected[0]))?true:false;
-	    $form .= "&nbsp;&nbsp;<select name=\"options[]\" multiple=\"multiple\">";
-		    $form .= "<option value=\"0\" ";
-		    if ($isAll) $form .= " selected=\"selected\"";
-		    $form .= ">"._MB_XP2_ALL ."</option>";
-
-		    $form .= "<option value=\"1\" ";
-		    if (in_array(1, $selected))
-				$form .= " selected=\"selected\"";
-		    $form .= ">"._MB_XP2_COMMENT ."</option>";
-
-		    $form .= "<option value=\"2\" ";
-		    if (in_array(2, $selected))
-				$form .= " selected=\"selected\"";
-		    $form .= ">"._MB_XP2_TRUCKBACK ."</option>";
-
-		    $form .= "<option value=\"3\" ";
-		    if (in_array(3, $selected))
-				$form .= " selected=\"selected\"";
-		    $form .= ">"._MB_XP2_PINGBACK ."</option>";
-		$form .= "</select><br />";
-		//	    $form .="<br /><input type='text' size='60' name='options[5]' id='this_template' value='".htmlspecialchars($this_template,ENT_QUOTES)."' />";
+	    $form .= comment_type_select('options[6]' , $com_select);
 
 
Index: branches/XPressMU/xpressme_integration_kit/blocks/recent_posts_content_block.php
===================================================================
--- branches/XPressMU/xpressme_integration_kit/blocks/recent_posts_content_block.php	(revision 425)
+++ branches/XPressMU/xpressme_integration_kit/blocks/recent_posts_content_block.php	(revision 451)
@@ -19,13 +19,13 @@
 		$mydirname = empty( $options[0] ) ? 'xpress' : $options[0] ;
 		$this_template = empty( $options[1] ) ? 'db:'.$mydirname.'_recent_posts_content_block.html' : trim( $options[1] );
-		$day_select = ($options[2])?intval($options[2]):0;
-		$day_size = ($options[3])?intval($options[3]):0;
-		$disp_count =  ($options[4])?intval($options[4]):10;
-		$excerpt = empty( $options[5] ) ? false : true ;
-		$excerpt_size =  ($options[6])?intval($options[6]):100;
-		$date_format = empty( $options[7] ) ? '' : $options[7] ;
-		$time_format = empty( $options[8] ) ? '' : $options[8] ;
-		$tag_select = $options[9] ;
-	    $selected = array_slice($options,10); // get allowed cats
+		$disp_count =  ($options[2])?intval($options[2]):10;
+		$excerpt = empty( $options[3] ) ? false : true ;
+		$excerpt_size =  ($options[4])?intval($options[4]):100;
+		$date_format = empty( $options[5] ) ? '' : $options[5] ;
+		$time_format = empty( $options[6] ) ? '' : $options[6] ;
+		$tag_select = $options[7] ;
+		$cat_select = empty( $options[8] ) ? '0' : $options[8] ;
+		$day_select = ($options[9])?intval($options[9]):0;
+		$day_size = ($options[10])?intval($options[10]):0;
 
 		$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
@@ -35,53 +35,41 @@
 		$form  = "MyDirectory <input type='text' name='options[0]' value='" . $mydirname . "' /><br />\n";
 	    $form .= "<input type='hidden' name='options[1]' id='this_template' value='".htmlspecialchars($this_template,ENT_QUOTES)."' /><br />";
-		$form .= "<br />";
-		$form .= _MB_XP2_DAY_SELECT . ':' . _MB_XP2_DAY_BETWEEN . '<select name="options[2]">';
+		$form .= _MB_XP2_COUNT .": <input type='text' name='options[2]' value='" . $disp_count . "' /><br />\n";
+		$form .= yes_no_radio_option('options[3]', _MB_XP2_P_EXCERPT , $excerpt) . "<br />\n";
+		$form .= _MB_XP2_P_EXCERPT_SIZE .": <input type='text' name='options[4]' value='" . $excerpt_size . "' /><br />\n";
+		$form .= _MB_XP2_DATE_FORMAT .": <input type='text' name='options[5]' value='" . $date_format . "' /><br />\n";
+		$form .= _MB_XP2_TIME_FORMAT .": <input type='text' name='options[6]' value='" . $time_format . "' /><br />\n";
+		
+		include $mydirpath .'/wp-includes/version.php' ;
+		if (wp_version_compare($wp_version, '>=','2.3')){
+			$form .= "<br />\n";
+			$form .= _MB_XP2_TAGS_SELECT .": <input type='text' name='options[7]' value='" . $tag_select . "' /><br />\n";
+		} else {
+			$form .= "<input type='hidden' name='options[7]' value='' /><br />\n";
+		}
+		
+	    $form .= categorie_select('options[8]' , $cat_select);
+	    
+	    $form .= "<br />";
+		$form .= _MB_XP2_DAY_SELECT . ':' . _MB_XP2_DAY_BETWEEN . '<select name="options[9]">';
 		switch ($day_select){
 		case 1:
 			$form .= '<option value="0">' . _MB_XP2_NONE . '</option>';
 			$form .= '<option value="1" selected>'. _MB_XP2_TODAY . '</option>';
-			$form .= '<option value="2">' . _MB_XP2_LASTES . '</option>';
+			$form .= '<option value="2">' . _MB_XP2_LATEST . '</option>';
 			break;
 		case 2:
 			$form .= '<option value="0">' . _MB_XP2_NONE . '</option>';
 			$form .= '<option value="1">'. _MB_XP2_TODAY . '</option>';
-			$form .= '<option value="2" selected>' . _MB_XP2_LASTES . '</option>';
+			$form .= '<option value="2" selected>' . _MB_XP2_LATEST . '</option>';
 			break;
 		default :
 			$form .= '<option value="0" selected>' . _MB_XP2_NONE . '</option>';
 			$form .= '<option value="1">'. _MB_XP2_TODAY . '</option>';
-			$form .= '<option value="2">' . _MB_XP2_LASTES . '</option>';
+			$form .= '<option value="2">' . _MB_XP2_LATEST . '</option>';
 		}
 		$form .= '</select>';
 		
-		$form .= ' ' . _MB_XP2_DAYS_AND . " <input type='text' size='2' name='options[3]' value='" . $day_size . "' />" . _MB_XP2_DAYS_AGO . "<br />\n";
-
-		$form .= _MB_XP2_COUNT .": <input type='text' name='options[4]' value='" . $disp_count . "' /><br />\n";
-		$form .= yes_no_radio_option('options[5]', _MB_XP2_P_EXCERPT , $excerpt) . "<br />\n";
-		$form .= _MB_XP2_P_EXCERPT_SIZE .": <input type='text' name='options[6]' value='" . $excerpt_size . "' /><br />\n";
-		$form .= _MB_XP2_DATE_FORMAT .": <input type='text' name='options[7]' value='" . $date_format . "' /><br />\n";
-		$form .= _MB_XP2_TIME_FORMAT .": <input type='text' name='options[8]' value='" . $time_format . "' /><br />\n";
-		
-		include $mydirpath .'/wp-includes/version.php' ;
-		if (wp_version_compare($wp_version, '>=','2.3')){
-			$form .= "<br />\n";
-			$form .= _MB_XP2_TAGS_SELECT .": <input type='text' name='options[9]' value='" . $tag_select . "' /><br />\n";
-		} else {
-			$form .= "<input type='hidden' name='options[9]' value='' /><br />\n";
-		}
-		
-	    $form .= _MB_XP2_CATS_SELECT ."<br />\n";
-	    $isAll = (count($selected)==0||empty($selected[0]))?true:false;
-	    $form .= "&nbsp;&nbsp;<select name=\"options[]\" multiple=\"multiple\">\n";
-	    $form .= "\t<option value=\"0\" ";
-	    if ($isAll) $form .= " selected=\"selected\"";
-	    $form .= ">"._MB_XP2_ALL ."</option>\n";
-		ob_start();
-		dropdown_cats_options('ID','asc',$selected);
-		$list_str = ob_get_contents();
-		ob_end_clean();
-	    $form .= $list_str. "</select><br />\n";
-	    
-//	    $form .="<br /><input type='text' size='60' name='options[11]' id='this_template' value='".htmlspecialchars($this_template,ENT_QUOTES)."' />";
+		$form .= ' ' . _MB_XP2_DAYS_AND . " <input type='text' size='2' name='options[10]' value='" . $day_size . "' />" . _MB_XP2_DAYS_AGO . "<br />\n";
 
 		return $form;
Index: branches/XPressMU/xpressme_integration_kit/blocks/recent_posts_list_block.php
===================================================================
--- branches/XPressMU/xpressme_integration_kit/blocks/recent_posts_list_block.php	(revision 425)
+++ branches/XPressMU/xpressme_integration_kit/blocks/recent_posts_list_block.php	(revision 451)
@@ -24,5 +24,5 @@
 		$time_format = empty( $options[6] ) ? '' : $options[6] ;
 		$tag_select = $options[7] ;
-		$selected = array_slice($options,8); // get allowed cats
+		$cat_select = empty( $options[8] ) ? '0' : $options[8] ;
 
 		$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
@@ -47,17 +47,5 @@
 		}
 
-	    $form .= _MB_XP2_CATS_SELECT ."<br />\n";
-	    $isAll = (count($selected)==0||empty($selected[0]))?true:false;
-	    $form .= "&nbsp;&nbsp;<select name=\"options[]\" multiple=\"multiple\">\n";
-	    $form .= "\t<option value=\"0\" ";
-	    if ($isAll) $form .= " selected=\"selected\"";
-	    $form .= ">"._MB_XP2_ALL ."</option>\n";
-		ob_start();
-		dropdown_cats_options('ID','asc',$selected);
-		$list_str = ob_get_contents();
-		ob_end_clean();
-	    $form .= $list_str. "</select><br />\n";
-	    
-//	    $form .="<br /><input type='text' size='60' name='options[5]' value='".htmlspecialchars($this_template,ENT_QUOTES)."' />";
+	    $form .= categorie_select('options[8]' , $cat_select);
 
 		return $form;
Index: branches/XPressMU/xpressme_integration_kit/blocks/widget_block.php
===================================================================
--- branches/XPressMU/xpressme_integration_kit/blocks/widget_block.php	(revision 425)
+++ branches/XPressMU/xpressme_integration_kit/blocks/widget_block.php	(revision 451)
@@ -20,5 +20,7 @@
 		$this_template = empty( $options[1] ) ? 'db:'.$mydirname.'_widget_block.html' : trim( $options[1] );
 		$title_show = empty( $options[2] ) ? false : true ;
-    	$selected = array_slice($options,3); // get allowed cats
+		$widget_select = empty( $options[3] ) ? '' : $options[3] ;
+
+		$selected = explode(',' , $widget_select);
 
 		if ($mydirname == 'wordpress'){
@@ -48,5 +50,7 @@
 		$form .= "<br />";
 		$form .= _MB_XP2_SELECT_WIDGET .":<br />\n";
-		$select = "&nbsp;&nbsp;&nbsp;<select name='options[]' multiple=\"multiple\">\n";
+    	$form .= "<input type='hidden' name='options[3]' value='$widget_select' />\n";
+
+		$select = "&nbsp;&nbsp;&nbsp;<select name='widget_sel' multiple=\"multiple\" onclick=\"WidgetSelect()\">\n";
 		$found = false;
 		foreach ( (array) $sidebars_widgets as $index => $sidebar ){
@@ -67,4 +71,19 @@
 
 		$select .=  "</select><br/>\n";
+    $select .= '
+<script type="text/javascript">
+    function WidgetSelect(){
+        var idx=new Array();
+        var sel=document.forms["blockform"].elements["widget_sel"].options;
+        for(var i=0, n=0; i<sel.length; i++){
+            if(sel[i].selected){ idx[n++]=sel[i].value; }
+        }
+        if(idx.length>0){
+        	document.forms["blockform"].elements["options[3]"].value = idx;
+		}
+    }
+</script>
+';
+		
 		if ($found){
 			$form = $form . $select;
