diff --git a/main/admin/add_users_to_usergroup.php b/main/admin/add_users_to_usergroup.php
index d5c98b3c4e..765788dfe1 100644
--- a/main/admin/add_users_to_usergroup.php
+++ b/main/admin/add_users_to_usergroup.php
@@ -13,7 +13,6 @@ $cidReset = true;
 // including some necessary files
 require_once '../inc/global.inc.php';
 require_once '../inc/lib/xajax/xajax.inc.php';
-require_once api_get_path(LIBRARY_PATH).'usergroup.lib.php';
 
 // setting the section (for the tabs)
 $this_section = SECTION_PLATFORM_ADMIN;
@@ -36,7 +35,7 @@ if(isset($_REQUEST['add_type']) && $_REQUEST['add_type']!=''){
 }
 
 $htmlHeadXtra[] = '
-<script type="text/javascript">
+<script>
 function add_user_to_session (code, content) {
 
     document.getElementById("user_to_add").value = "";
@@ -69,17 +68,17 @@ function validate_filter() {
         document.formulaire.submit();
 }
 
-function checked_in_no_group(checked) {    
+function checked_in_no_group(checked) {
     $("#first_letter_user")
     .find("option")
-    .attr("selected", false);    
-        document.formulaire.form_sent.value="2"; 
+    .attr("selected", false);
+        document.formulaire.form_sent.value="2";
     document.formulaire.submit();
 }
 
 function change_select(val) {
     $("#user_with_any_group_id").attr("checked", false);
-    document.formulaire.form_sent.value="2"; 
+    document.formulaire.form_sent.value="2";
     document.formulaire.submit();
 }
 
@@ -105,18 +104,18 @@ $id = intval($_GET['id']);
 $first_letter_user = '';
 
 if ($_POST['form_sent']) {
-    $form_sent              = $_POST['form_sent'];    
+    $form_sent              = $_POST['form_sent'];
     $elements_posted        = $_POST['elements_in_name'];
     $first_letter_user      = $_POST['firstLetterUser'];
-         
+
     if (!is_array($elements_posted)) {
         $elements_posted=array();
     }
     if ($form_sent == 1) {
-        //added a parameter to send emails when registering a user        
+        //added a parameter to send emails when registering a user
         $usergroup->subscribe_users_to_usergroup($id, $elements_posted);
         header('Location: usergroups.php');
-        exit;        
+        exit;
     }
 }
 
@@ -124,7 +123,7 @@ if ($_POST['form_sent']) {
 //Filter by Extra Fields
 $use_extra_fields = false;
 if (is_array($extra_field_list)) {
-    if (is_array($new_field_list) && count($new_field_list)>0 ) {        
+    if (is_array($new_field_list) && count($new_field_list)>0 ) {
         foreach ($new_field_list as $new_field) {
             $varname = 'field_'.$new_field['variable'];
             if (UserManager::is_extra_field_available($new_field['variable'])) {
@@ -149,15 +148,13 @@ if ($use_extra_fields) {
         $final_result = $extra_field_result[0];
     }
 }
-//var_dump($final_result);
 $data       = $usergroup->get($id);
 $list_in    = $usergroup->get_users_by_usergroup($id);
-
 $list_all    = $usergroup->get_users_by_usergroup();
 
 $order = array('lastname');
 if (api_is_western_name_order()) {
-    $order = array('firstname');	
+    $order = array('firstname');
 }
 
 $elements_not_in = $elements_in = array();
@@ -171,26 +168,26 @@ if (!empty($complete_user_list)) {
             }
         }
         if ($item['status'] == 6 ) continue; //avoid anonymous users
-        
-        if (in_array($item['user_id'], $list_in)) {       
+
+        if (in_array($item['user_id'], $list_in)) {
             $person_name = api_get_person_name($item['firstname'], $item['lastname']).' ('.$item['username'].')';
-            $elements_in[$item['user_id']] = $person_name;             
-        }        
+            $elements_in[$item['user_id']] = $person_name;
+        }
     }
 }
-  
+
 $user_with_any_group = isset($_REQUEST['user_with_any_group']) && !empty($_REQUEST['user_with_any_group']) ? true : false;
 
 if ($user_with_any_group) {
     $user_list = UserManager::get_user_list_like(array('lastname' => $first_letter_user), $order, true);
     $new_user_list = array();
-    foreach($user_list as $item) {
+    foreach ($user_list as $item) {
         if (!in_array($item['user_id'], $list_all)) {
             $new_user_list[] = $item;
-        }        
+        }
     }
-    $user_list = $new_user_list;        
-} else {    
+    $user_list = $new_user_list;
+} else {
     $user_list = UserManager::get_user_list_like(array('lastname' => $first_letter_user), $order, true);
 }
 
@@ -203,8 +200,8 @@ if (!empty($user_list)) {
         }
         if ($item['status'] == 6 ) continue; //avoid anonymous users
         $person_name = api_get_person_name($item['firstname'], $item['lastname']).' ('.$item['username'].')';
-        if (in_array($item['user_id'], $list_in)) {                        
-            //$elements_in[$item['user_id']] = $person_name;             
+        if (in_array($item['user_id'], $list_in)) {
+            //$elements_in[$item['user_id']] = $person_name;
         } else {
             $elements_not_in[$item['user_id']] = $person_name;
         }
@@ -222,12 +219,12 @@ if ($add_type == 'multiple') {
 }
 
 echo '<div class="actions">';
-echo '<a href="usergroups.php">'.Display::return_icon('back.png',get_lang('Back'), array(), ICON_SIZE_MEDIUM).'</a>';       
+echo '<a href="usergroups.php">'.Display::return_icon('back.png',get_lang('Back'), array(), ICON_SIZE_MEDIUM).'</a>';
 echo '</div>';
 ?>
 <form name="formulaire" method="post" action="<?php echo api_get_self(); ?>?id=<?php echo $id; if(!empty($_GET['add'])) echo '&add=true' ; ?>" style="margin:0px;">
 <?php
-echo '<legend>'.$data['name'].': '.$tool_name.'</legend>'; 
+echo '<legend>'.$data['name'].': '.$tool_name.'</legend>';
 
 if ($add_type=='multiple') {
     if (is_array($extra_field_list)) {
@@ -287,12 +284,13 @@ if(!empty($errorMsg)) {
 <?php } ?>
 <tr>
   <td align="center">
-  <div id="content_source">      
+  <div id="content_source">
         <?php echo Display::select('elements_not_in_name', $elements_not_in, '',array('style'=>'width:360px', 'multiple'=>'multiple','id'=>'elements_not_in','size'=>'15px'),false); ?>
       <br />
-        <input type="checkbox" <?php if ($user_with_any_group) echo 'checked="checked"';?> onchange="checked_in_no_group(this.checked);" name="user_with_any_group" id="user_with_any_group_id"> 
-        <label for="user_with_any_group_id"><?php echo get_lang('UsersRegisteredInNoGroup'); ?></label>
-        
+        <label class="control-label">
+            <input type="checkbox" <?php if ($user_with_any_group) echo 'checked="checked"';?> onchange="checked_in_no_group(this.checked);" name="user_with_any_group" id="user_with_any_group_id">
+            <?php echo get_lang('UsersRegisteredInAnyGroup'); ?>
+        </label>
   </div>
   </td>
   <td width="10%" valign="middle" align="center">
diff --git a/main/admin/group_add.php b/main/admin/group_add.php
index 1f51450e5e..2a8fa952fa 100644
--- a/main/admin/group_add.php
+++ b/main/admin/group_add.php
@@ -14,7 +14,6 @@ require '../inc/global.inc.php';
 $libpath = api_get_path(LIBRARY_PATH);
 require_once $libpath.'fileManage.lib.php';
 require_once $libpath.'fileUpload.lib.php';
-require_once $libpath.'group_portal_manager.lib.php';
 
 // Section for the tabs
 $this_section = SECTION_PLATFORM_ADMIN;
@@ -22,7 +21,7 @@ $this_section = SECTION_PLATFORM_ADMIN;
 // User permissions
 api_protect_admin_script();
 
-$htmlHeadXtra[] = '<script type="text/javascript">
+$htmlHeadXtra[] = '<script>
 textarea = "";
 num_characters_permited = 255;
 function text_longitud(){
@@ -36,10 +35,6 @@ function text_longitud(){
 </script>';
 
 // Database table definitions
-$table_admin 	= Database :: get_main_table(TABLE_MAIN_ADMIN);
-$table_user 	= Database :: get_main_table(TABLE_MAIN_USER);
-$database 		= Database::get_main_database();
-
 if (!empty($_GET['message'])) {
 	$message = urldecode($_GET['message']);
 }
@@ -49,7 +44,7 @@ $tool_name = get_lang('AddGroups');
 
 // Create the form
 $form = new FormValidator('group_add');
-$form->addElement('header', '', $tool_name);
+$form->addElement('header', $tool_name);
 
 // name
 $form->addElement('text', 'name', get_lang('Name'), array('size'=>60, 'maxlength'=>120));
@@ -108,11 +103,10 @@ if( $form->validate()) {
 		$url 			= $values['url'];
 		$status 		= intval($values['visibility']);
 		$picture 		= $_FILES['picture'];
-    $parent_group_id = intval($values['parent_group']); 
+        $parent_group_id = intval($values['parent_group']);
 
 		$group_id = GroupPortalManager::add($name, $description, $url, $status);
-    GroupPortalManager::set_parent_group($group_id,$parent_group_id);
-
+        GroupPortalManager::set_parent_group($group_id,$parent_group_id);
 
 		if (!empty($picture['name'])) {
 			$picture_uri = GroupPortalManager::update_group_picture($group_id, $_FILES['picture']['name'], $_FILES['picture']['tmp_name']);
@@ -144,7 +138,7 @@ if( $form->validate()) {
 		Security::clear_token();
 		$tok = Security::get_token();
 		header('Location: group_list.php?action=show_message&message='.urlencode(get_lang('GroupAdded')).'&sec_token='.$tok);
-			exit ();
+        exit ();
 	}
 } else {
 	if (isset($_POST['submit'])) {
@@ -164,4 +158,4 @@ if(!empty($message)){
 $form->display();
 
 // Footer
-Display::display_footer();
+Display::display_footer();
\ No newline at end of file
diff --git a/main/admin/usergroups.php b/main/admin/usergroups.php
index 7e0e3f189b..460c8b22ef 100755
--- a/main/admin/usergroups.php
+++ b/main/admin/usergroups.php
@@ -10,7 +10,6 @@ $language_file = array('admin');
 
 $cidReset = true;
 require_once '../inc/global.inc.php';
-require_once api_get_path(LIBRARY_PATH).'usergroup.lib.php';
 
 $this_section = SECTION_PLATFORM_ADMIN;
 api_protect_admin_script();
@@ -24,7 +23,7 @@ if ($action == 'add') {
     $interbreadcrumb[]=array('url' => 'usergroups.php','name' => get_lang('Classes'));
     $interbreadcrumb[]=array('url' => '#','name' => get_lang('Add'));
 } elseif ($action == 'edit') {
-    $interbreadcrumb[]=array('url' => 'usergroups.php','name' => get_lang('Classes'));    
+    $interbreadcrumb[]=array('url' => 'usergroups.php','name' => get_lang('Classes'));
     $interbreadcrumb[]=array('url' => '#','name' => get_lang('Edit'));
 } else {
     $interbreadcrumb[]=array('url' => '#','name' => get_lang('Classes'));
@@ -47,7 +46,7 @@ if (isset($_GET['action']) && $_GET['action'] == 'editnote') {
 
 $url            = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_usergroups';
 
-//The order is important you need to check the the $column variable in the model.ajax.php file 
+//The order is important you need to check the the $column variable in the model.ajax.php file
 $columns        = array(get_lang('Name'), get_lang('Users'), get_lang('Courses'), get_lang('Sessions'), get_lang('Actions'));
 
 //Column config
@@ -58,11 +57,11 @@ $column_model   = array(
                         array('name'=>'courses',    	'index'=>'courses', 	'width'=>'15',  'align'=>'left'),
                         array('name'=>'sessions',    	'index'=>'sessions', 	'width'=>'15',  'align'=>'left'),
                         array('name'=>'actions',        'index'=>'actions',     'width'=>'20',  'align'=>'left','sortable'=>'false','formatter'=>'action_formatter'),
-                       );            
-//Autowidth             
+                       );
+//Autowidth
 $extra_params['autowidth'] = 'true';
-//height auto 
-$extra_params['height'] = 'auto'; 
+//height auto
+$extra_params['height'] = 'auto';
 
 //With this function we can add actions to the jgrid
 $action_links = 'function action_formatter (cellvalue, options, rowObject) {
@@ -70,18 +69,18 @@ $action_links = 'function action_formatter (cellvalue, options, rowObject) {
                     .' <a href="add_users_to_usergroup.php?id=\'+options.rowId+\'"><img src="../img/icons/22/user_to_class.png" title="'.get_lang('SubscribeUsersToClass').'"></a>'
                     .' <a href="add_courses_to_usergroup.php?id=\'+options.rowId+\'"><img src="../img/icons/22/course_to_class.png" title="'.get_lang('SubscribeClassToCourses').'"></a>'
                     .' <a href="add_sessions_to_usergroup.php?id=\'+options.rowId+\'"><img src="../img/icons/22/sessions_to_class.png" title="'.get_lang('SubscribeClassToSessions').'"></a>'
-                    .' <a href="?action=edit&id=\'+options.rowId+\'"><img width="20px" src="../img/edit.png" title="'.get_lang('Edit').'" ></a>'                                       
-                    .' <a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;"  href="?action=delete&id=\'+options.rowId+\'"><img title="'.get_lang('Delete').'" src="../img/delete.png"></a>\'; 
+                    .' <a href="?action=edit&id=\'+options.rowId+\'"><img width="20px" src="../img/edit.png" title="'.get_lang('Edit').'" ></a>'
+                    .' <a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;"  href="?action=delete&id=\'+options.rowId+\'"><img title="'.get_lang('Delete').'" src="../img/delete.png"></a>\';
                  }';
 ?>
 <script>
 $(function() {
-<?php 
+<?php
     // grid definition see the $usergroup>display() function
-    echo Display::grid_js('usergroups',  $url,$columns,$column_model,$extra_params, array(), $action_links,true);       
-?> 
+    echo Display::grid_js('usergroups',  $url,$columns,$column_model,$extra_params, array(), $action_links,true);
+?>
 });
-</script>   
+</script>
 <?php
 // Tool introduction
 Display::display_introduction_section(get_lang('Classes'));
@@ -96,11 +95,11 @@ if (isset($_GET['action']) && $_GET['action'] == 'add') {
 
     $_SESSION['notebook_view'] = 'creation_date';
     //@todo move this in the career.lib.php
-    
+
     // Initiate the object
     $form = new FormValidator('note', 'post', api_get_self().'?action='.Security::remove_XSS($_GET['action']));
     // Settting the form elements
-    $form->addElement('header', '', get_lang('Add'));
+    $form->addElement('header', get_lang('Add'));
     $form->addElement('text', 'name', get_lang('name'), array('size' => '70', 'id' => 'name'));
     //$form->applyFilter('note_title', 'html_filter');
     $form->add_html_editor('description', get_lang('Description'), false, false, array('Width' => '95%', 'Height' => '250'));
@@ -113,10 +112,10 @@ if (isset($_GET['action']) && $_GET['action'] == 'add') {
     if ($form->validate()) {
         $check = Security::check_token('post');
         if ($check) {
-            $values = $form->exportValues();       
-            $res = $usergroup->save($values);            
+            $values = $form->exportValues();
+            $res = $usergroup->save($values);
             if ($res) {
-                Display::display_confirmation_message(get_lang('Added'));
+                Display::display_confirmation_message(get_lang('ItemAdded'));
             }
         }
         Security::clear_token();
@@ -152,7 +151,7 @@ elseif (isset($_GET['action']) && $_GET['action'] == 'edit' && is_numeric($_GET[
     if ($form->validate()) {
         $check = Security::check_token('post');
         if ($check) {
-            $values = $form->exportValues();            
+            $values = $form->exportValues();
             $res = $usergroup->update($values);
             if ($res) {
                 Display::display_confirmation_message(get_lang('Updated'));
@@ -178,7 +177,7 @@ elseif (isset($_GET['action']) && $_GET['action'] == 'delete' && is_numeric($_GE
     }
     $usergroup->display();
 } else {
-    $usergroup->display();   
+    $usergroup->display();
 }
 
 Display :: display_footer();
diff --git a/main/inc/lib/group_portal_manager.lib.php b/main/inc/lib/group_portal_manager.lib.php
index 05784bd6de..36f4c73859 100644
--- a/main/inc/lib/group_portal_manager.lib.php
+++ b/main/inc/lib/group_portal_manager.lib.php
@@ -46,7 +46,7 @@ class GroupPortalManager {
      * @return boolean if success
      */
     public static function add($name, $description, $url, $visibility, $picture='') {
-        $tms	= time();
+        $now	= api_get_utc_datetime();
         $table 	= Database :: get_main_table(TABLE_MAIN_GROUP);
         $sql 	= "INSERT INTO $table
                    SET name 	= '".Database::escape_string($name)."',
@@ -54,9 +54,9 @@ class GroupPortalManager {
                    picture_uri = '".Database::escape_string($picture)."',
                    url 		= '".Database::escape_string($url)."',
                    visibility 	= '".Database::escape_string($visibility)."',
-                   created_on = FROM_UNIXTIME(".$tms."),
-                   updated_on = FROM_UNIXTIME(".$tms.")";
-        $result = Database::query($sql);
+                   created_on = '".$now."',
+                   updated_on = '".$now."'";
+        Database::query($sql);
         $return = Database::insert_id();
         return $return;
     }
@@ -74,14 +74,14 @@ class GroupPortalManager {
     public static function update($group_id, $name, $description, $url, $visibility, $picture_uri) {
         $group_id = intval($group_id);
         $table = Database::get_main_table(TABLE_MAIN_GROUP);
-        $tms = time();
+        $now	= api_get_utc_datetime();
         $sql = "UPDATE $table
                	SET name 	= '".Database::escape_string($name)."',
                 description = '".Database::escape_string($description)."',
                 picture_uri = '".Database::escape_string($picture_uri)."',
                 url 		= '".Database::escape_string($url)."',
                 visibility 	= '".Database::escape_string($visibility)."',
-                updated_on 	= FROM_UNIXTIME(".$tms.")
+                updated_on 	= '".$now."'
                 WHERE id = '$group_id'";
         $result = Database::query($sql);
         return $result;
@@ -120,7 +120,6 @@ class GroupPortalManager {
 	{
 		$table	= Database :: get_main_table(TABLE_MAIN_GROUP);
 		$visibility = intval($visibility);
-		$user_condition = '';
 		$sql = "SELECT name, description, picture_uri FROM $table WHERE visibility = $visibility ";
 		$res = Database::query($sql);
 		$data = array ();
@@ -137,7 +136,7 @@ class GroupPortalManager {
     public static function get_groups_list($without_this_one = NULL ) {
         $where='';
         if ( isset($without_this_one) && (intval($without_this_one) == $without_this_one) ) {
-            $where = "WHERE id <> $without_this_one"; 
+            $where = "WHERE id <> $without_this_one";
         }
         $table	= Database :: get_main_table(TABLE_MAIN_GROUP);
         $sql = "SELECT id, name FROM $table $where order by name";
@@ -162,7 +161,7 @@ class GroupPortalManager {
 		$sql = "SELECT id, name, description, picture_uri, url, visibility  FROM $table WHERE id = $group_id ";
 		$res = Database::query($sql);
 		$item = array();
-		if (Database::num_rows($res)>0) {			
+		if (Database::num_rows($res)>0) {
 			$item = Database::fetch_array($res,'ASSOC');
 		}
 		return $item;
@@ -174,7 +173,7 @@ class GroupPortalManager {
      * @param parent_group, if 0, we delete the parent_group association
      * @param relation_type
      * @return true or false
-     **/ 
+     **/
     public static function set_parent_group($group_id, $parent_group_id, $relation_type = 1){
         $table = Database :: get_main_table(TABLE_MAIN_GROUP_REL_GROUP);
         $group_id = intval($group_id);
@@ -187,7 +186,7 @@ class GroupPortalManager {
             if (Database::num_rows($res)==0) {
                 $sql = "INSERT INTO $table  SET group_id = $parent_group_id, subgroup_id = $group_id, relation_type = $relation_type";
             } else {
-                $sql = "UPDATE $table SET group_id = $parent_group_id, relation_type = $relation_type  WHERE subgroup_id = $group_id"; 
+                $sql = "UPDATE $table SET group_id = $parent_group_id, relation_type = $relation_type  WHERE subgroup_id = $group_id";
             }
         }
         $res = Database::query($sql);
@@ -217,16 +216,16 @@ class GroupPortalManager {
         $t_rel_group = Database :: get_main_table(TABLE_MAIN_GROUP_REL_GROUP);
         $select_part = "SELECT ";
         $cond_part='';
-        for ($i=1; $i <= $level; $i++) { 
+        for ($i=1; $i <= $level; $i++) {
             $g_number=$i;
             $rg_number=$i-1;
-            if ( $i == $level) { 
+            if ( $i == $level) {
                 $select_part .= "g$i.id as id_$i, g$i.name as name_$i ";
             } else {
                 $select_part .="g$i.id as id_$i, g$i.name name_$i, ";
             }
             if ($i == 1) {
-                $cond_part .= "FROM $t_group g1 JOIN $t_rel_group rg0 on g1.id = rg0.subgroup_id and rg0.group_id = $root "; 
+                $cond_part .= "FROM $t_group g1 JOIN $t_rel_group rg0 on g1.id = rg0.subgroup_id and rg0.group_id = $root ";
             } else {
                 $cond_part .= "LEFT JOIN $t_rel_group rg$rg_number on g$rg_number.id = rg$rg_number.group_id ";
                 $cond_part .= "LEFT JOIN $t_group g$g_number on rg$rg_number.subgroup_id = g$g_number.id ";
@@ -236,7 +235,7 @@ class GroupPortalManager {
         $res = Database::query($sql);
         $toreturn = array();
 
-        while ($item = Database::fetch_assoc($res)) { 
+        while ($item = Database::fetch_assoc($res)) {
             foreach ($item as $key => $value ){
                 if ($key == 'id_1') {
                     $toreturn[$value]['name'] = $item['name_1'];
@@ -413,13 +412,13 @@ class GroupPortalManager {
 			$num = 6;
 		} else {
 			$num = intval($num);
-		}		
+		}
 		$where_relation_condition = " WHERE gu.relation_type IN ('".GROUP_USER_PERMISSION_ADMIN."' , '".GROUP_USER_PERMISSION_READER."', '".GROUP_USER_PERMISSION_HRM."') ";
 		$sql = "SELECT DISTINCT count(user_id) as count, g.picture_uri, g.name, g.description, g.id
-					 FROM $tbl_group g INNER JOIN $table_group_rel_user gu ON gu.group_id = g.id 
+					 FROM $tbl_group g INNER JOIN $table_group_rel_user gu ON gu.group_id = g.id
 					 $where_relation_condition
 					 ORDER BY created_on desc LIMIT $num ";
-        
+
 		$result=Database::query($sql);
 		$array = array();
 		while ($row = Database::fetch_array($result, 'ASSOC')) {
@@ -451,17 +450,17 @@ class GroupPortalManager {
 		$table_group_rel_user	= Database::get_main_table(TABLE_MAIN_USER_REL_GROUP);
 		$tbl_user				= Database::get_main_table(TABLE_MAIN_USER);
 		$group_id 				= intval($group_id);
-		
+
 		if (empty($group_id)){
 			return array();
-                }		
+                }
 
-                $limit_text = '';		
+                $limit_text = '';
                 if (isset($from) && isset($limit)) {
                     $from     = intval($from);
-                    $limit    = intval($limit);        
+                    $limit    = intval($limit);
                     $limit_text = "LIMIT $from, $limit";
-               }        
+               }
 
 		if (count($relation_type) == 0) {
 			$where_relation_condition = '';
@@ -476,10 +475,10 @@ class GroupPortalManager {
 				$where_relation_condition = "AND gu.relation_type IN ($relation_type) ";
 		}
 
-		$sql = "SELECT picture_uri as image, u.user_id, u.firstname, u.lastname, relation_type 
+		$sql = "SELECT picture_uri as image, u.user_id, u.firstname, u.lastname, relation_type
     		    FROM $tbl_user u INNER JOIN $table_group_rel_user gu
-    			ON (gu.user_id = u.user_id) 
-    			WHERE gu.group_id= $group_id $where_relation_condition 
+    			ON (gu.user_id = u.user_id)
+    			WHERE gu.group_id= $group_id $where_relation_condition
     			ORDER BY relation_type, firstname $limit_text";
 
 		$result = Database::query($sql);
@@ -489,7 +488,7 @@ class GroupPortalManager {
 				$image_path   = UserManager::get_user_picture_path_by_id($row['user_id'], 'web', false, true);
 				$picture      = UserManager::get_picture_user($row['user_id'], $image_path['file'], $image_conf['height'], $image_conf['size']);
 				$row['image'] = '<img src="'.$picture['file'].'"  '.$picture['style'].'  />';
-			}			
+			}
 			$array[$row['user_id']] = $row;
 		}
 		return $array;
@@ -829,7 +828,7 @@ class GroupPortalManager {
 		$ok = $small->send_image($path.'small_'.$filename)
 				&& $medium->send_image($path.'medium_'.$filename)
 				&& $normal->send_image($path.'big_'.$filename)
-				&& $big->send_image($path.$filename);		
+				&& $big->send_image($path.$filename);
 		return $ok ? $filename : false;
 	}
 
@@ -903,7 +902,7 @@ class GroupPortalManager {
 	 * @param  int size in pixels
 	 * @return obj image object
 	 */
-	public static function resize_picture($file, $max_size_for_picture) {		
+	public static function resize_picture($file, $max_size_for_picture) {
 	 	$temp = new Image($file);
 	 	$picture_infos = api_getimagesize($file);
 		if ($picture_infos['width'] > $max_size_for_picture) {
@@ -1032,7 +1031,7 @@ class GroupPortalManager {
 		//$picture		= GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'],160,GROUP_IMAGE_SIZE_MEDIUM);
 		//$big_image		= GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'],'',GROUP_IMAGE_SIZE_BIG);
 		//$tags			= GroupPortalManager::get_group_tags($group_id, true);
-		
+
 		//$groups_by_user	= GroupPortalManager::get_groups_by_user($user_id, 0);
 
 		//my relation with the group is set here
@@ -1048,12 +1047,12 @@ class GroupPortalManager {
 		</style>';
 
 		//Loading group permission
-		
+
 		$links = '';
 		switch ($my_group_role) {
 			case GROUP_USER_PERMISSION_READER:
 				// I'm just a reader
-				$relation_group_title = get_lang('IAmAReader');				
+				$relation_group_title = get_lang('IAmAReader');
 				$links .=  '<li><a href="group_invitation.php?id='.$group_id.'">'.	Display::return_icon('invitation_friend.png', get_lang('InviteFriends'), array('hspace'=>'6')).'<span class="'.($show=='invite_friends'?'social-menu-text-active':'social-menu-text4').'" >'.get_lang('InviteFriends').'</span></a></li>';
 				$links .=  '<li><a href="groups.php?id='.$group_id.'&action=leave&u='.api_get_user_id().'">'.	Display::return_icon('group_leave.png', get_lang('LeaveGroup'), array('hspace'=>'6')).'<span class="social-menu-text4" >'.get_lang('LeaveGroup').'</span></a></li>';
 				break;
@@ -1101,10 +1100,10 @@ class GroupPortalManager {
 			}
 			$html .= $links;
 			$html .= '</ul>';
-		}		
+		}
         return $html;
 	}
-       
+
     function delete_topic($group_id, $topic_id) {
         $table_message = Database::get_main_table(TABLE_MESSAGE);
         $topic_id = intval($topic_id);
diff --git a/main/inc/lib/usergroup.lib.php b/main/inc/lib/usergroup.lib.php
index 91d4a54584..1bf2fd1aa7 100644
--- a/main/inc/lib/usergroup.lib.php
+++ b/main/inc/lib/usergroup.lib.php
@@ -16,14 +16,20 @@ require_once 'model.lib.php';
 class UserGroup extends Model {
 
     var $columns = array('id', 'name','description');
-    
+
 	public function __construct() {
         $this->table                        =  Database::get_main_table(TABLE_USERGROUP);
         $this->usergroup_rel_user_table     =  Database::get_main_table(TABLE_USERGROUP_REL_USER);
         $this->usergroup_rel_course_table   =  Database::get_main_table(TABLE_USERGROUP_REL_COURSE);
         $this->usergroup_rel_session_table  =  Database::get_main_table(TABLE_USERGROUP_REL_SESSION);
 	}
-    
+
+    public function get_count() {
+        $row = Database::select('count(*) as count', $this->table, array(),'first');
+        return $row['count'];
+    }
+
+
     /**
      * Displays the title + grid
      */
@@ -31,44 +37,44 @@ class UserGroup extends Model {
         // action links
         echo '<div class="actions">';
        	echo  '<a href="../admin/index.php">'.Display::return_icon('back.png', get_lang('BackTo').' '.get_lang('PlatformAdmin'),'','32').'</a>';
-	   //echo '<a href="career_dashboard.php">'.Display::return_icon('back.png',get_lang('Back')).get_lang('Back').'</a>';       
-        echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('new_class.png',get_lang('langAddClasses'),'','32').'</a>';   
-        echo '</div>';   
-        echo Display::grid_html('usergroups');  
-    } 
-    
+	   //echo '<a href="career_dashboard.php">'.Display::return_icon('back.png',get_lang('Back')).get_lang('Back').'</a>';
+        echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('new_class.png',get_lang('langAddClasses'),'','32').'</a>';
+        echo '</div>';
+        echo Display::grid_html('usergroups');
+    }
+
      /**
      * Gets a list of course ids by user group
      * @param   int     user group id
-     * @return  array   
-     */     
-    public function get_courses_by_usergroup($id) {        
+     * @return  array
+     */
+    public function get_courses_by_usergroup($id) {
         $results = Database::select('course_id',$this->usergroup_rel_course_table, array('where'=>array('usergroup_id = ?'=>$id)));
         $array = array();
-        if (!empty($results)) {    
+        if (!empty($results)) {
             foreach($results as $row) {
-                $array[]= $row['course_id'];            
+                $array[]= $row['course_id'];
             }
-        }                       
+        }
         return $array;
-    }    
-    
+    }
+
     /**
      * Gets a list of session ids by user group
      * @param   int     user group id
-     * @return  array   
+     * @return  array
      */
     public function get_sessions_by_usergroup($id) {
         $results = Database::select('session_id',$this->usergroup_rel_session_table, array('where'=>array('usergroup_id = ?'=>$id)));
         $array = array();
-        if (!empty($results)) {    
+        if (!empty($results)) {
             foreach($results as $row) {
-                $array[]= $row['session_id'];            
+                $array[]= $row['session_id'];
             }
-        }                
+        }
         return $array;
-    }      
-    
+    }
+
     /**
      * Gets a list of user ids by user group
      * @param   int     user group id
@@ -82,14 +88,14 @@ class UserGroup extends Model {
         }
         $results = Database::select('user_id', $this->usergroup_rel_user_table, $conditions, true);
         $array = array();
-        if (!empty($results)) {    
+        if (!empty($results)) {
             foreach($results as $row) {
-                $array[]= $row['user_id'];            
+                $array[]= $row['user_id'];
             }
-        }                       
-        return $array; 	
+        }
+        return $array;
     }
-    
+
     /**
      * Gets the usergroup id list by user id
      * @param   int user id
@@ -97,37 +103,37 @@ class UserGroup extends Model {
     public function get_usergroup_by_user($id) {
         $results = Database::select('usergroup_id',$this->usergroup_rel_user_table, array('where'=>array('user_id = ?'=>$id)));
         $array = array();
-        if (!empty($results)) {    
+        if (!empty($results)) {
             foreach($results as $row) {
-                $array[]= $row['usergroup_id'];            
+                $array[]= $row['usergroup_id'];
             }
-        }                       
-        return $array;  
-    }    
-    
-    
+        }
+        return $array;
+    }
+
+
     /**
      * Subscribes sessions to a group  (also adding the members of the group in the session and course)
      * @param   int     usergroup id
      * @param   array   list of session ids
     */
-    function subscribe_sessions_to_usergroup($usergroup_id, $list) {        
+    function subscribe_sessions_to_usergroup($usergroup_id, $list) {
         $current_list = self::get_sessions_by_usergroup($usergroup_id);
         $user_list    = self::get_users_by_usergroup($usergroup_id);
-     
+
         $delete_items = $new_items = array();
-        if (!empty($list)) {                
+        if (!empty($list)) {
             foreach ($list as $session_id) {
                 if (!in_array($session_id, $current_list)) {
                 	$new_items[] = $session_id;
-                }           	
+                }
             }
-        }            
-        if (!empty($current_list)) {  
+        }
+        if (!empty($current_list)) {
             foreach($current_list as $session_id) {
         	   if (!in_array($session_id, $list)) {
                     $delete_items[] = $session_id;
-                }  
+                }
             }
         }
 
@@ -136,7 +142,7 @@ class UserGroup extends Model {
             foreach($delete_items as $session_id) {
                 if (!empty($user_list)) {
                     foreach($user_list as $user_id) {
-                        
+
                         SessionManager::unsubscribe_user_from_session($session_id, $user_id);
                         /*foreach ($course_list as $course_data) {
                             foreach($user_list as $user_id) {
@@ -147,14 +153,14 @@ class UserGroup extends Model {
                 }
                 Database::delete($this->usergroup_rel_session_table, array('usergroup_id = ? AND session_id = ?'=>array($usergroup_id, $session_id)));
             }
-        }     
-        
+        }
+
         //Addding new relationships
         if (!empty($new_items)) {
-            foreach($new_items as $session_id) {                
+            foreach($new_items as $session_id) {
                 $params = array('session_id'=>$session_id, 'usergroup_id'=>$usergroup_id);
-                Database::insert($this->usergroup_rel_session_table, $params); 
-            
+                Database::insert($this->usergroup_rel_session_table, $params);
+
                 if (!empty($user_list)) {
                     SessionManager::suscribe_users_to_session($session_id, $user_list, null, false);
                 }
@@ -168,85 +174,85 @@ class UserGroup extends Model {
             }
         }
     }
-    
+
     /**
      * Subscribes courses to a group (also adding the members of the group in the course)
      * @param   int     usergroup id
      * @param   array   list of course ids
      */
     function subscribe_courses_to_usergroup($usergroup_id, $list) {
-          
+
         $current_list = self::get_courses_by_usergroup($usergroup_id);
         $user_list    = self::get_users_by_usergroup($usergroup_id);
-     
+
         $delete_items = $new_items = array();
-        if (!empty($list)) {                
+        if (!empty($list)) {
             foreach ($list as $id) {
                 if (!in_array($id, $current_list)) {
                     $new_items[] = $id;
-                }               
+                }
             }
         }
-        if (!empty($current_list)) {         
+        if (!empty($current_list)) {
             foreach($current_list as $id) {
                 if (!in_array($id, $list)) {
                     $delete_items[] = $id;
-                }  
+                }
             }
         }
-        
+
         //Deleting items
         if (!empty($delete_items)) {
             foreach($delete_items as $course_id) {
-                $course_info = api_get_course_info_by_id($course_id);     
+                $course_info = api_get_course_info_by_id($course_id);
                 if (!empty($user_list)) {
-                    foreach($user_list as $user_id) {                                   
-                        CourseManager::unsubscribe_user($user_id, $course_info['code']);                    
+                    foreach($user_list as $user_id) {
+                        CourseManager::unsubscribe_user($user_id, $course_info['code']);
                     }
                 }
                 Database::delete($this->usergroup_rel_course_table, array('usergroup_id = ? AND course_id = ?'=>array($usergroup_id, $course_id)));
             }
         }
-        
+
         //Addding new relationships
         if (!empty($new_items)) {
-            foreach($new_items as $course_id) {                
-                $course_info = api_get_course_info_by_id($course_id);    
+            foreach($new_items as $course_id) {
+                $course_info = api_get_course_info_by_id($course_id);
                 if (!empty($user_list)) {
-                    foreach($user_list as $user_id) {         
+                    foreach($user_list as $user_id) {
                         CourseManager::subscribe_user($user_id, $course_info['code']);
                     }
                 }
-                 
+
                 $params = array('course_id'=>$course_id, 'usergroup_id'=>$usergroup_id);
                 Database::insert($this->usergroup_rel_course_table, $params);
             }
         }
-    }   
-    
+    }
+
      /**
      * Subscribes users to a group
      * @param   int     usergroup id
      * @param   array   list of user ids
      */
     function subscribe_users_to_usergroup($usergroup_id, $list) {
-        $current_list    = self::get_users_by_usergroup($usergroup_id);  
+        $current_list    = self::get_users_by_usergroup($usergroup_id);
         $course_list  = self::get_courses_by_usergroup($usergroup_id);
         $session_list = self::get_sessions_by_usergroup($usergroup_id);
-        
+
         $delete_items = $new_items = array();
         if (!empty($list)) {
             foreach ($list as $user_id) {
                 if (!in_array($user_id, $current_list)) {
                 	$new_items[] = $user_id;
-                }           	
+                }
             }
         }
         if (!empty($current_list)) {
             foreach($current_list as $user_id) {
         	   if (!in_array($user_id, $list)) {
                     $delete_items[] = $user_id;
-                }  
+                }
             }
         }
 
@@ -257,7 +263,7 @@ class UserGroup extends Model {
                 if (!empty($course_list)) {
                     foreach($course_list as $course_id) {
                         $course_info = api_get_course_info_by_id($course_id);
-                        CourseManager::unsubscribe_user($user_id, $course_info['code']);                    
+                        CourseManager::unsubscribe_user($user_id, $course_info['code']);
                     }
                 }
                 //Removing sessions