Juan Carlos Raña 15 years ago
parent
commit
68cd2045d5
86 changed files with 7292 additions and 696 deletions
  1. 5 1
      main/css/blue_lagoon/default.css
  2. 410 0
      main/css/chamilo/course.css
  3. 3235 0
      main/css/chamilo/default.css
  4. 1072 0
      main/css/chamilo/frames.css
  5. BIN
      main/css/chamilo/images/2leftarrow.gif
  6. BIN
      main/css/chamilo/images/2rightarrow.gif
  7. BIN
      main/css/chamilo/images/TGSS_header.jpg
  8. BIN
      main/css/chamilo/images/bar_1.gif
  9. BIN
      main/css/chamilo/images/bar_1m.gif
  10. BIN
      main/css/chamilo/images/bar_1r.gif
  11. BIN
      main/css/chamilo/images/bar_1u.gif
  12. BIN
      main/css/chamilo/images/bg-boton.png
  13. BIN
      main/css/chamilo/images/bg-footer.gif
  14. BIN
      main/css/chamilo/images/bg-header1.gif
  15. BIN
      main/css/chamilo/images/bg-header4.png
  16. BIN
      main/css/chamilo/images/bg-main.png
  17. BIN
      main/css/chamilo/images/bg-menu.png
  18. BIN
      main/css/chamilo/images/bgmenusup.png
  19. BIN
      main/css/chamilo/images/bullet.gif
  20. BIN
      main/css/chamilo/images/button_accept.gif
  21. BIN
      main/css/chamilo/images/button_add.gif
  22. BIN
      main/css/chamilo/images/button_back.gif
  23. BIN
      main/css/chamilo/images/button_back.jpg
  24. BIN
      main/css/chamilo/images/button_delete.gif
  25. BIN
      main/css/chamilo/images/button_login.gif
  26. BIN
      main/css/chamilo/images/button_minus.gif
  27. BIN
      main/css/chamilo/images/button_next.gif
  28. BIN
      main/css/chamilo/images/button_plus.gif
  29. BIN
      main/css/chamilo/images/button_refresh.gif
  30. BIN
      main/css/chamilo/images/button_search.gif
  31. BIN
      main/css/chamilo/images/button_upload.gif
  32. BIN
      main/css/chamilo/images/fondoFooter.jpg
  33. BIN
      main/css/chamilo/images/fondoHeader2.jpg
  34. BIN
      main/css/chamilo/images/fondoHeader3.jpg
  35. BIN
      main/css/chamilo/images/fondoNav.jpg
  36. BIN
      main/css/chamilo/images/footer.jpg
  37. BIN
      main/css/chamilo/images/loading.gif
  38. BIN
      main/css/chamilo/images/logo-institucion.png
  39. BIN
      main/css/chamilo/images/logoMouse.jpg
  40. BIN
      main/css/chamilo/images/portal.png
  41. BIN
      main/css/chamilo/images/refresh.png
  42. BIN
      main/css/chamilo/images/salir.gif
  43. BIN
      main/css/chamilo/images/shadow.gif
  44. BIN
      main/css/chamilo/images/systemenouvelles.jpg
  45. BIN
      main/css/chamilo/images/tab.png
  46. BIN
      main/css/chamilo/images/tab_center.gif
  47. BIN
      main/css/chamilo/images/tab_left-hover.gif
  48. BIN
      main/css/chamilo/images/tab_left.gif
  49. BIN
      main/css/chamilo/images/tab_right-hover.gif
  50. BIN
      main/css/chamilo/images/tab_right.gif
  51. BIN
      main/css/chamilo/images/tab_right.jpg
  52. BIN
      main/css/chamilo/images/tab_rigth.gif
  53. 96 0
      main/css/chamilo/jquery.tabs.css
  54. 217 0
      main/css/chamilo/learnpath.css
  55. 917 0
      main/css/chamilo/print.css
  56. 169 0
      main/css/chamilo/scorm.css
  57. 82 0
      main/css/chamilo/scormfs.css
  58. 1 1
      main/document/headerpage.php
  59. 90 16
      main/document/showinframes.php
  60. 22 44
      main/exercice/exercice_submit.php
  61. 2 2
      main/forum/forumfunction.inc.php
  62. 35 23
      main/inc/lib/events.lib.inc.php
  63. 26 12
      main/inc/lib/fckeditor/editor/plugins/glossary/fck_glossary_automatic.js
  64. 15 4
      main/inc/lib/fckeditor/editor/plugins/glossary/fck_glossary_manual.js
  65. 2 1
      main/inc/lib/fckeditor/fcktemplates.xml.php
  66. 181 6
      main/inc/lib/group_portal_manager.lib.php
  67. 270 0
      main/inc/lib/javascript/jquery.frameready.js
  68. 59 54
      main/inc/lib/javascript/jquery.highlight.js
  69. 86 77
      main/inc/lib/message.lib.php
  70. 2 1
      main/inc/lib/sortabletable.class.php
  71. 39 56
      main/inc/lib/tracking.lib.php
  72. 3 1
      main/messages/outbox.php
  73. 11 2
      main/messages/view_message.php
  74. 16 142
      main/mySpace/index.php
  75. 8 4
      main/newscorm/lp_stats.php
  76. 51 18
      main/newscorm/lp_view.php
  77. 38 6
      main/newscorm/scorm_api.php
  78. 15 2
      main/social/group_edit.php
  79. 29 31
      main/social/group_invitation.php
  80. 49 26
      main/social/group_members.php
  81. 25 149
      main/social/groups.php
  82. 2 1
      main/social/invitations.php
  83. 2 2
      main/social/message_for_group_form.inc.php
  84. 3 1
      main/social/search.php
  85. 6 12
      main/tracking/courseLog.php
  86. 1 1
      user_portal.php

+ 5 - 1
main/css/blue_lagoon/default.css

@@ -2623,6 +2623,9 @@ input.arrowl {
 
 
 
+
+
+
 /* UI improvements for 1.8.6.2 this should be move to the chamilo theme and reproduce in all CSS*/
 
 
@@ -2758,7 +2761,8 @@ a.unread {
 }
 
 .message-group-content {
-	line-height:150%
+	line-height:150%;
+	margin: 5px 0px 8px 0px;
 }
 
 .view-message-content {

+ 410 - 0
main/css/chamilo/course.css

@@ -0,0 +1,410 @@
+/*
+==============================================================================
+	GLOBAL STYLES
+==============================================================================
+*/
+.dokeos_course {
+	width:95%;
+	margin:1em auto;
+	text-align:center;
+}
+/*
+------------------------------------------------------------------------------
+	Introductory title
+------------------------------------------------------------------------------
+*/ 
+
+#box_title1, #footer1 {
+	border:1px solid #4171b5;
+	padding:1em;
+	width:99%;
+	margin:1em auto;
+}
+#box_title1 h1 {
+	font:bold 2.5em Arial, sans-serif, sans;
+}
+#box_title h2 {
+	font:bold 2em Arial, sans-serif, sans;
+}
+#content1 {
+	width:99%;
+	clear:both;
+	text-align:justify;
+}
+#content1 img.icon {
+	float:left;
+	margin:0 1em 1em 1em;
+	display:block;
+	vertical-align:top;
+}
+#email1 {
+	float:right;
+	clear:right;
+	text-align:right;
+}
+#email1, .manager1 {
+	width:50%;
+}
+#footer1 {
+	font-weight:bold;
+	height: 1em;
+	line-height: 1em;
+}
+#manager1 {
+	float:left;
+	clear:left;
+	text-align:left;
+}
+/*
+------------------------------------------------------------------------------
+	Explanation
+------------------------------------------------------------------------------
+*/
+
+#content2 {
+	position:absolute;
+	top:2em;
+	left:18em;
+	text-align:justify;
+	margin-right:2em;
+}
+#content2 h1 {
+	padding:.5em;
+	font:bold 2em Arial, sans-serif, sans;
+}
+#content2 h2 {
+	font:normal 1.1em Arial, sans-serif, sans;
+	margin:.2em 0 3em .5em;
+}
+#content2 p {
+	margin:.5em;
+}
+#explanation {
+	text-align:center;
+	margin: 1em auto;
+	width:auto;
+	border:1px solid #4171b5;
+}
+#list2 {
+	width:10em;
+	border:1px solid #4171b5;
+	margin:2em auto;
+}
+#list2 p {
+	text-align:left;
+	margin-left:.2em;
+}
+#list2 li {
+	margin:0 0 0 2em;
+	padding:0;
+	text-indent:.5em;
+	text-align:left;
+	list-style-position:inside;
+}
+#list2 ul {
+	margin:0 0 .5em 0;
+	padding:0;
+	text-align:left;
+	list-style-position:inside;
+}
+#main2 {
+	border:1px solid #4171b5;
+}
+#nav2 {
+	position:absolute;
+	left:2em;
+	top:3em;
+	width:15em;
+}
+.template2 {
+	position:relative;
+}
+/*
+------------------------------------------------------------------------------
+	Course objetives
+------------------------------------------------------------------------------
+*/
+#box_title3, #content3 {
+	border:1px solid #4171b5;
+	padding:1em;
+	width:99%;
+	margin:1em auto;
+}
+#box_title3 h1 {
+	font:bold 3.5em Arial, sans-serif, sans;
+}
+#content3 {
+	position:relative;
+	padding-bottom:50px;
+	text-align:left;
+}
+#content3 #primary {
+	font-weight:bold;
+	font-size:2em;
+	margin:0;
+	padding:0;
+}
+#content3 #primary li, #content3 #secondary li {
+	margin:0 0 0 1em;
+	padding:0;
+}
+#content3 #primary .secondary {
+	font-weight:normal;
+	font-size:.8em;
+	margin:0 0 0 2em;
+	padding:0;
+}
+#footer3 {
+	position:absolute;
+	bottom:0;
+	right:0;
+}
+/*
+==============================================================================
+	Styles for corporative version
+==============================================================================
+*/
+#corp {
+	font:normal .85em Lucida Grande, Arial, sans-serif, sans;
+}
+#corp a {
+	text-decoration: none;
+	font: bold 100% Arial, sans-serif, sans;
+	color: #4170b4;
+}
+#corp a:hover, #corp a:focus {
+	color: #111;
+}
+/*
+------------------------------------------------------------------------------
+	Introductory title
+------------------------------------------------------------------------------
+*/ 
+
+#corp #box_title1 {
+	background:transparent url("images/alert.jpg") no-repeat top center;
+	border:none;
+	padding-top:10px;
+}
+#corp #box_title1 #bottom {
+	background:transparent url("images/alert.jpg") no-repeat top center;
+	height:40px;
+	width:100%;
+}
+#corp #footer1 {
+	border: 1px solid #ddd;
+	background:#eee url("images/headertables.jpg") repeat-x top center;
+	line-height:.8em;
+	height:.8em;
+	padding:.5em;
+}
+/*
+------------------------------------------------------------------------------
+	Explanation
+------------------------------------------------------------------------------
+*/ 
+#corp #explanation {
+	background:transparent url("images/alert.jpg") no-repeat top center;
+	border:none;
+	padding-top:10px;
+}
+#corp #explanation #bottom {
+	background:transparent url("images/alert.jpg") no-repeat top center;
+	height:40px;
+	margin-top:-15px;
+	width:100%;
+}
+#corp #list2, #corp #main2 {
+	border:1px solid #aaa;
+}
+#corp #content2 #main2 h2 {
+	font:bold 1.1em Arial, sans-serif, sans;
+	margin:.2em 0 3em .5em;
+}
+/*
+------------------------------------------------------------------------------
+	Course objetives
+------------------------------------------------------------------------------
+*/
+#corp #box_title3 {
+	background:transparent url("images/alert.jpg") no-repeat top center;
+	border:none;
+	padding-top:10px;
+}
+#corp #box_title3 #bottom {
+	background:transparent url("images/alert.jpg") no-repeat top center;
+	height:40px;
+	width:100%;
+}
+#corp #content3 {
+	border:1px solid #bbb;
+}
+/*
+==============================================================================
+	Styles for academic version
+==============================================================================
+*/
+#academic {
+	font-family:normal .85em trebuchet, verdana, Arial, sans-serif, sans;
+	color: #000915;
+}
+#academic a {
+	text-decoration: none;
+	font: bold 100% Arial, sans-serif, sans;
+	color: #4171b5;
+}
+#academic a:hover, a:focus {
+	color: #000915;
+}
+/*
+------------------------------------------------------------------------------
+	Introductory title
+------------------------------------------------------------------------------
+*/ 
+#academic #box_title1 {
+	background:transparent url("images/alert_academic.jpg") no-repeat top center;
+	border:none;
+	padding-top:10px;
+	color: #00122B;
+}
+#academic #box_title1 #bottom {
+	background:transparent url("images/alert_academic.jpg") no-repeat top center;
+	height:40px;
+	width:100%;
+}
+#academic #footer1 {
+	background: #8cafe1 url('images/crystal3.png') repeat-x;
+}
+#academic #footer1 a {
+	color:#fff;
+}
+#academic #footer1 a:hover, #academic #footer1 a:focus {
+	color: #000915;
+}
+/*
+------------------------------------------------------------------------------
+	Explanation
+------------------------------------------------------------------------------
+*/
+#academic #explanation {
+	background:transparent url("images/alert_academic.jpg") no-repeat top center;
+	border:none;
+	padding-top:10px;
+	color: #00122B;
+}
+#academic #explanation #bottom {
+	background:transparent url("images/alert_academic.jpg") no-repeat top center;
+	height:40px;
+	width:100%;
+}
+#academic #list2, #academic #main2 {
+	border: 1px solid #0049AF;
+}
+#academic #nav2 img {
+	margin-bottom:3em;
+}
+#academic #nav2 .logo {
+	margin-left:-1.2em;
+}
+#academic #nav2 {
+	top:5em;
+}
+/*
+------------------------------------------------------------------------------
+	Course objetives
+------------------------------------------------------------------------------
+*/
+#academic #box_title3 {
+	border: 1px solid #0049AF;
+	background: #b0c8eb url('images/crystal3.png') repeat-x;
+	color: #00122B;
+}
+#academic #content3 {
+	border: 1px solid #0049AF;
+}
+/*
+==============================================================================
+	Styles for baby version
+==============================================================================
+*/
+#baby {
+	font:normal .85em 'Lucida Grande', verdana, Arial, sans-serif, sans;
+	color: #000;
+}
+#baby a {
+	text-decoration: none;
+	font: bold 100% Arial, sans-serif, sans;
+	color: #9a0;
+}
+#baby a:hover, a:focus {
+	color: #470;
+}
+/*
+------------------------------------------------------------------------------
+	Introductory title
+------------------------------------------------------------------------------
+*/
+
+#baby #box_title1 {
+	background:transparent url("images/alert_baby.jpg") no-repeat top center;
+	border:none;
+	padding-top:10px;
+	color: #00122B;
+}
+#baby #box_title1 #bottom {
+	background:transparent url("images/alert_baby.jpg") no-repeat top center;
+	height:40px;
+	width:100%;
+}
+#baby #footer1 {
+	background-color:transparent;
+	border: 1px solid #BFAF00;
+	padding: .2em;
+	color: #3F3A00;
+}
+/*
+------------------------------------------------------------------------------
+	Explanation
+------------------------------------------------------------------------------
+*/
+#baby #explanation {
+	background:transparent url("images/alert_baby.jpg") no-repeat top center;
+	border:none;
+	padding-top:10px;
+	color: #3F3A00;
+}
+#baby #explanation #bottom {
+	background:transparent url("images/alert_baby.jpg") no-repeat top center;
+	height:40px;
+	width:100%;
+}
+#baby #list2, #baby #main2 {
+	border: 1px solid #BFAF00;
+}
+#baby #nav2 {
+	top:0;
+}
+#baby #content2 #main2 h2 {
+	font:bold 1.1em Arial, sans-serif, sans;
+	margin:.2em 0 3em .5em;
+}
+/*
+------------------------------------------------------------------------------
+	Course objetives
+------------------------------------------------------------------------------
+*/
+
+#baby #box_title3 {
+	background:transparent url("images/alert_baby.jpg") no-repeat top center;
+	border:none;
+	padding-top:10px;
+	color: #3F3A00;
+}
+#baby #box_title3 #bottom {
+	background:transparent url("images/alert_baby.jpg") no-repeat top center;
+	height:40px;
+	width:100%;
+}
+#baby #content3 {
+	border: 1px solid #BFAF00;
+}

+ 3235 - 0
main/css/chamilo/default.css

@@ -0,0 +1,3235 @@
+/*****************************************************
+ *  MAIN  - PUBLIC ADMIN CSS		                 *                   
+ *****************************************************/
+ 
+/* the sticky effect */
+html {
+	height: 100%;
+}
+
+body {
+	/* hack ignored by non-IE to enable ie to support :hover on button */
+    behavior:url("/main/css/csshover3.htc");
+	font-family:Tahoma, Geneva, sans-serif;
+	font-size: 12px;
+	color: #000;
+	margin: 0;
+	padding: 0;
+	background-color: #fff;	
+	height: 100%; /* stick */
+}
+
+#wrapper{
+	min-height: 100%;
+	height: auto !important;
+	height: 100%;
+	margin: 0 auto -8em;
+}
+
+input[type="text"]:focus, input[type="password"]:focus, textarea:focus {
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+#outerframe {
+	position: relative;  /* do not remove, fixes a bug in IE */
+	background-color: #fff;
+	background-repeat:no-repeat;
+}
+/* Hides from IE5-mac \*/
+* html #outerframe {
+	height: 1%;
+}
+/* End hide from IE5-mac */
+
+#main {
+	-moz-border-image:url(images/bg-main.png) 5 5 5 5;
+	-webkit-border-image:url(images/bg-main.png) 5 5 5 5;
+	-o-border-image:url(images/bg-main.png) 5 5 5 5;
+	-xv-border-image:url(images/bg-main.png) 5 5 5 5;
+	border:5px solid #f6f6f6;
+	position: relative; /* to avoid the IE peekabo bug*/
+	margin: 0px auto;
+	width: 90%;
+	min-height: 320px;
+	padding-top:10px;
+	padding-bottom:10px;
+	padding-left:10px;
+	padding-right:10px;
+	overflow:hidden;
+
+}
+.item {
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+
+
+/* for content section in main index.php file */
+/*
+|----------------------------------------------------------------------------
+| modified: to fit img and blocks in home page
+|----------------------------------------------------------------------------
+|
+*/
+.maincontent {
+	float: left;
+	width: 68%;
+	padding: 0 20px 0 20px;
+	min-height: 333px;
+	margin-top:30px;
+	margin-bottom:30px;
+}
+/*
+.maincontent td {
+	float: left;
+	width: 100%;
+	padding: 4px;
+}
+*/
+
+#center {
+	margin: 0 190px 0 0;
+	padding: 10px 0 40px 0;
+	min-height: 300px;
+	background-color: #fff;
+}
+.invisible {
+	color: #999;
+}
+.invisible a:link, .invisible a:visited {
+	color: #999;
+}
+a.invisible:link, a.invisible:visited {
+	color: #999;
+}
+.clear {
+	clear: both;
+	line-height: 0px;
+	height: 0;
+}
+input.link_alike {
+	background-color: #FFFFFF;
+	border-width: 0px;
+	color: #4171b5;
+	font-weight: bold;
+	text-align: left;
+	padding: 0px;
+	margin: 0px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+input.link_alike:hover {
+	background-color: #FFFFFF;
+	border-width: 0px;
+	color: #f3840d;
+	font-weight: bold;
+	text-align: left;
+	padding: 0px;
+	margin: 0px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+/*****************************************************
+ *  REDEFINED HTML TAGS                              *
+ *****************************************************/
+img {
+	border: none;
+}
+p, blockquote, ol, ul {
+	font-size: 12px;
+	
+}
+
+h1 {
+	font-size: 21px;
+}
+h2 {
+	font-size: 18px;
+}
+h3 {
+	font-size: 15px;
+	margin-top:0px;
+	padding-top:0px;
+}
+h4 {
+	font-size: 12px;
+}
+h5, h6 {
+	font-family: verdana, arial, helvetica, sans-serif;
+}
+/* the following for regular <a> elements */
+a:link {
+	font-family:Tahoma, Geneva, sans-serif;
+	text-decoration: none;
+	color :#3757f7
+}
+a:visited {
+	font-family:Tahoma, Geneva, sans-serif;
+	text-decoration: none;
+	color : #3757f7;
+}
+a:hover {
+	font-family:Tahoma, Geneva, sans-serif;
+	text-decoration: none;
+	color: #f3840d;
+}
+a:active {
+	font-family:Tahoma, Geneva, sans-serif;
+	text-decoration: none;
+	color : #3757f7;
+	
+}
+select, textarea {
+	color : #000;
+	border: 1px solid #000;
+}
+input.checkbox {
+	border-width: 0;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+select, input[type=checkbox], input[type=radio], input[type=button], input[type=submit] {
+	cursor:	pointer;
+	font-size: 12px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+input[text] {
+	font-size: 12px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+/* user_portal course status icon */
+.coursestatusicons {
+	border: 0px solid #000;
+	float: left;
+	padding-right: 5px;
+	width: auto;
+}
+/* user_portal course list */
+.courses {
+	list-style-type: none;
+	margin-bottom: 5px;
+	height: 30px;	
+}
+/* user_portal session list */
+.session_course_item .courses {
+	margin-bottom: 5px;
+	height:35px;
+}
+.session_course_item {
+	/* padding: 0px; */
+	margin: 0px;
+}
+
+/*****************************************************
+ *  HEADER STYLES                                    *
+ *****************************************************/
+#header {
+	width: 100%;
+	padding: 0;
+	margin: 0;
+}
+/********************************************************
+ *  HEADER 1: Title, portal, organisation, course title	*
+ ********************************************************/
+#header1 {
+	font-size:12px;
+	font-family:Tahoma, Geneva, sans-serif;
+	padding:4px;
+	color:#666666;
+	height:53px;
+	background-image:url(images/bg-header1.gif);
+	Background-repeat:repeat-x;
+}
+#logoMinisterio {
+	position: relative;
+	float:right;
+	width:99px;
+	height:34px;
+	margin-bottom: 0px;
+	margin-top: 40px;
+	margin-right: 5px;
+	padding: 0px 0px 0px 0px;
+	background: transparent;
+	background-image: url("images/logoMouse.jpg");
+}
+#header1 a {
+	font-size:12px;
+	font-family:Tahoma, Geneva, sans-serif;
+	font-weight:normal;
+	color: #666666;
+	text-decoration: none;
+}
+#header1 a:hover {
+	text-decoration: underline;
+}
+#sitename {
+	margin: 0;
+}
+#top_corner {
+}
+#institution {
+	background-image: url(images/logo-institucion.png);
+	background-repeat:no-repeat;
+	height:60px;
+	overflow:hidden;
+	text-indent:-9999px;
+	margin-left:4%;
+	margin-top:1%;
+
+}
+#my_courses {
+	float:left;
+	padding-left:4%;
+}
+/********************************************************
+ *  HEADER 2: Users online, help, student/teacher view	*
+ ********************************************************/
+#header2 {
+	width:90%;
+	margin-left:auto;
+	margin-right:auto;
+	position: relative; /* to avoid the IE peekabo bug*/
+	font-size: 1.0em;
+	font-weight: normal;
+	min-height:10px;
+	padding:  0.2em 0.5em;
+	padding-bottom: 0.2em;
+	color: #666;
+}
+#header2 a {
+	color: #666;
+	text-decoration: none;
+	font-weight:normal;
+}
+#header2 a:hover {
+	text-decoration: underline;
+}
+/* Header2Right: online users, student/teacher view, help */
+#Header2Right ul {
+	position: relative; /* to avoid the IE peekabo bug*/
+	float: right;
+	width: 70%;
+	margin: 0;
+	padding: 0;
+	list-style-type: none;
+	text-align: right;
+}
+#Header2Right ul li {
+	display: inline;
+	font-family:Tahoma, Geneva, sans-serif;
+	font-size:12px;
+	font-style:normal;
+	color:#666666;
+}
+#Header2Right ul li a {
+	padding: 4px 6px 4px 4px;
+	font-family:Tahoma, Geneva, sans-serif;
+	font-size:12px;
+	font-style:normal;
+	color:#666666;
+}
+/*****************************************************
+ *  HEADER 3: TABS OF THE HEADER			     	 *
+ *****************************************************/
+#header3 {
+	background-image:url(images/bg-header4.png);
+	background-repeat:repeat-x;
+	width:92%;
+	margin-left:auto;
+	margin-right:auto;
+	font-size: 1.0em;
+	color: #006;
+	border-bottom: 2px solid #0daee4;
+	height:36px;
+	overflow:hidden;
+	margin-bottom: 1px;
+}
+
+#header3 a:hover {
+	color:#fffc00D;
+
+}
+
+#header3 li a span:hover {
+	color:#fffc00;
+}
+
+#header3 ul {
+	padding-left:0px;
+	list-style-type:none;
+	height:25px;
+	margin-left:0px;
+}
+
+#header3  a {
+-moz-background-clip:border;
+-moz-background-inline-policy:continuous;
+-moz-background-origin:padding;
+background:transparent url(images/tab_left.gif) no-repeat scroll left top;
+color:#fff;
+cursor:pointer;
+float:left;
+height:25px;
+padding-left:9px;
+padding-right:1px;
+text-decoration:none;
+}
+
+
+#header3 li a span {
+-moz-background-clip:border;
+-moz-background-inline-policy:continuous;
+-moz-background-origin:padding;
+background:transparent url(images/tab_right.gif) no-repeat scroll right top;
+color:#fff;
+cursor:pointer;
+display:block;
+float:left;
+height:20px;
+padding-right:10px;
+padding-top:5px;
+}
+
+#header3 .banner_links {
+	margin: 0;
+}
+#header3 input.logout {
+	/* makes an input appear like a link in this header */
+	
+	margin: 0 0 0 0;
+	padding: 0 30px 0 0;
+	background-color: transparent;
+	border: none;
+	COLOR: #fff;
+	font-size: 1.0em;
+	font-weight:bold;
+	font-family: verdana, arial, helvetica, sans-serif;
+	display: inline;
+	PADDING-RIGHT: 0px;
+	PADDING-TOP: 3px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+#header3 input:hover {
+	COLOR: #999;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+#header3 input {
+	PADDING-RIGHT: 15px;
+	DISPLAY: block;
+	PADDING-LEFT: 6px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+
+
+
+#logout {
+	margin-bottom:0px;
+	padding-bottom:0px;
+	display: inline;
+	float: right;
+	width: auto;
+	text-align: right;
+	font-size: 1.0em;
+	height:25px;
+}
+
+/*
+#header3 #logout {
+float:left;
+margin-bottom:0;
+margin-top:0;
+}
+
+#logout {
+	overflow:hidden;
+	width: auto;
+	text-align: right;
+	font-size: 1.0em;
+}
+/*****************************************************
+ *  HEADER 3: not used          			     	 *
+ *****************************************************/
+#header4 {
+	width:90%;
+	margin-left:auto;
+	margin-right:auto;
+	background-image:url(images/bg-header4.png);
+	background-repeat:repeat-x;
+	color: #009;
+	padding: 4px;
+	padding-left: 20px;
+	clear:right;
+	
+}
+#header4 a {
+	color: #666;
+}
+#header4 a:hover {
+	text-decoration: none;
+	color: #f3840d;
+}
+/* The tool shortcuts */
+#toolshortcuts {
+	text-align: right;
+	clear: right;
+}
+/*****************************************************
+ *  FOOTER STYLES                                    *
+ *****************************************************/
+#footer {
+	background-color: #fff;
+	background-image: url(images/bg-footer.gif);
+	background-repeat:repeat-x;
+	background-position:bottom;
+	font-size: 12px;
+	color:#ffffff;
+	height: 8em;
+}
+.push {
+	height: 8em; /* Very important */
+}
+#footer .copyright {
+	float: right;
+	padding-top:60px;
+	margin-right:5%;
+}
+#footer #platformmanager {
+	float: left;
+	padding-top:60px;
+	margin-left:5%;
+}
+#footer a {
+	color:#f1d40d;
+}
+#bottom_corner {
+}
+
+
+
+/*
+==============================================================================
+    NAVIGATION MENU
+==============================================================================
+*/
+
+#menu {
+	-moz-border-radius: 10px; border: 1px solid #e1e1e0;
+	-webkit-border-radius: 10px; border: 1px solid #e1e1e0;
+	-opera-border-radius: 10px; border: 1px solid #e1e1e0;
+	width:240px;
+	margin-top:40px;
+	margin-right:10px;
+	margin-bottom:40px;
+	padding-left:10px;
+	padding-right:20px;
+	padding-top:30px;
+	float: right;
+	min-height: 150px;
+	padding-bottom:30px;
+	
+
+}
+
+
+
+
+
+.menucaption {
+	font-size: 12px;
+	font-weight: bold;
+	padding-left: 12px;
+}
+.menusection {
+	
+	margin: 24px 6px 0 6px;
+	padding-left: 10px;
+	width: auto;
+}
+.menusectioncaption {
+	font-weight:bold;
+	font-size: 12px;
+	position: relative;
+	top: -5px;
+}
+.menulist {
+	list-style: none;
+	margin: 0 0 12px 0;
+	padding: 0;
+	
+}
+
+.menulist li{
+	float:left;
+	margin-left:10px;
+	margin-bottom:10px;
+}
+#centerwrap {
+	float: left;
+	width: 100%;
+	margin-right: -95%;/* this needs to be less than 100% for Moz/Mac which thinks
+         it's empty otherwise. The difference is made up by putting a
+         negative left margin on the left float:
+	   Note IE/Mac doesn't like this method ~ it wants the 100% so it can
+	   be fed in using IE only CSS below becasue IE/Win also works with the 100% method.
+	*/
+}
+#center {
+	margin: 0 190px 0 0;
+	min-height: 300px;
+	padding: 10px 0 40px 0;
+}
+#toolnav {
+	float: right;
+	margin: 0;
+	margin-left: -5%;  /* the difference to make the left colum appear flush left */
+	padding: 0;
+	width: 180px;
+}
+#toolnav img {
+	float: left;
+	width: 25px;
+	height: 25px;
+	margin: 0 4px 0 0;
+}
+/* Hide from IE5-mac. Only IE-win sees this. \*/
+* html #toolnav {
+	margin-right: 0px;
+}
+* html #center {
+	height: 1%;
+	margin-left: 0;
+}
+/* End hide from IE5/mac */
+
+/*
+this lets the navigation menu appear to the left:
+#center {
+	margin: 0 0 0 180px;
+	min-height: 300px;
+ 	padding: 10px 0 40px 0;
+}
+
+#toolnav {
+	float: left;
+	width: 180px;
+	padding: 20px 0 0 0;
+ 	margin-left: -5%;
+}
+*/
+
+
+/*
+------------------------------------------------------------------------------
+    course navigation menu as a definition list
+------------------------------------------------------------------------------
+*/
+#swap_menu_link {
+	float: left;
+}
+#toolnavbox {
+	border: 1px solid #4271b5;
+	float: left;
+	margin: 0 0 0 10px;
+	padding: 0;
+}
+#toolnavbox dl {
+	background: transparent;
+	font-size: 12px;
+	margin: 0 auto;
+	text-align: center;
+	width: 160px;
+}
+#toolnavbox dt {
+	background: transparent;
+	border-bottom: 1px solid #fff;
+	color: #000;
+	font-size: 12px;
+	font-weight: bold;
+	margin: 0;
+	text-align: center;
+}
+#toolnavbox dd {
+	background: #E5EDF9;
+	border-bottom:1px solid #fff;
+	color: #009;
+	margin: 0;
+	text-align: left;
+}
+#toolnavlist a, #toolnavlist a:link {
+	background: #E5EDF9;
+	color: #4171b5;
+	display: block;
+	margin: 0;
+	padding: 5px 5px 5px 10px;
+	text-decoration: none;
+}
+#toolnavlist a:hover, #toolnavlist a#here {
+	background: #fff;
+	color:#4171b5;
+}
+/* --- end of course navigation menu section  --- */
+
+
+/*
+this lets the navigation menu appear to the left:
+#center { margin: 0 0 0 180px; padding: 10px 0 40px 0;
+ min-height: 300px; }
+
+#toolnav { float: left; width: 180px; padding: 20px 0 0 0;
+ margin-left: -5%;
+}
+#toolnav { float: right; width: 180px; padding: 0; margin: 0;
+ margin-left: -5%; /* the difference to make the left colum appear flush left */
+}
+/* Hide from IE5-mac. Only IE-win sees this. \*/
+* html #toolnav {
+	margin-right: 0px;
+}
+* html #center {
+	height: 1%;
+	margin-left: 0;
+}
+/* End hide from IE5/mac */
+
+
+/*****************************************************
+ *  LOGIN AND LANGUAGE FORM                          *
+ *****************************************************/
+#lang_form {
+	text-align: left;
+	font-size: 12px;
+	margin: 2px 0 10px 0;
+	padding: 2px;
+}
+#lang_form input, #lang_form select {
+	font-size: 12px;
+	margin-left: 6px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+	width:100%;
+}
+#formLogin label {
+	font-size: 12px;
+	margin: 4px 6px;
+	font-family:Tahoma, Geneva, sans-serif;
+	color:#666666;
+}
+#formLogin input {
+	font-size: 13px;
+	margin: 4px 6px;
+	padding-left:5px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+	width:100%;
+	
+}
+#login_fail {
+	margin: 0 6px 6px 6px;
+	padding: 4px;
+	border: 1px solid #f00;
+	background-color: #fff;
+	font-size: 12px;
+	color: #f00;
+}
+input.mainoption {
+	font-weight : bold;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+input.liteoption {
+	font-weight : normal;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+/*****************************************************
+ * COURSE HOMEPAGE			                         *
+ *****************************************************/
+/* various sections in course-home.php file  */
+#toolremove {
+	width: 40%;
+	color: #f00;
+	font-weight: bold;
+	margin: 10px auto;
+	padding: 10px;
+	border: 2px solid #f00;
+}
+#courseintro {
+	clear: both;
+	width: 80%;
+	margin: 10px auto;
+	padding: 10px;
+	border-bottom: 1px solid #dcdcdc;
+}
+#courseintro_icons {
+	clear: both;
+	width: 80%;
+	margin: 10px auto;
+}
+.everybodyview {
+	position: relative; /* to avoid the IE peekabo bug ?*/
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+	width: 80%;
+	margin: 10px auto;
+	padding: 10px;
+}
+.courseadminview, .platformadminview {
+	position: relative;
+	width: 80%;
+	margin: 25px auto 10px;
+	padding: 10px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+
+}
+.viewcaption {
+	position: relative;
+	top: -20px;
+	font-size: 12px;
+	font-weight: bold;
+	color: #aaa;
+	background-color: #fff;
+	padding: 0 4px;
+}
+.tool-icon {
+	margin-bottom: -3px;
+}
+/***********************************/
+
+/*****************************************************
+ *  			AGENDA                               *
+ *****************************************************/
+#agenda {
+	width: 100%;
+	margin: 0 auto;
+	border: 1px solid #bbb;
+	border-collapse: collapse;
+}
+.agenda_month_divider {
+	background-color: #dcdcdc;
+	font-weight: bold;
+	font-size: 12px;
+	color: #666;
+	text-align: center;
+}
+#agenda .title a {
+	color: #fff;
+}
+#agenda .agendaitem {
+	font-size: 12px;
+}
+#smallcalendar .title {
+	background-color: #dcdcdc;
+	font-weight: bold;
+	padding: 5px;
+	color: #666;
+	text-align: center;
+	font-size: 11px;
+}
+#smallcalendar .title a {
+	color: #666;
+}
+#agenda_select {
+	list-style: none;
+	border: 0px solid green;
+	margin: 30px 0 0 0;
+	padding: 0 0 0 10px;
+}
+/* ---------------------------------------------------
+	styles for the agenda (day, week, month view)
+-----------------------------------------------------*/
+#agenda_list {
+	width: 100%;
+	margin: 0 auto;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+/*The caption of the calendar (displays the month and the << and >> links*/
+#agenda_list .title {
+	background-color: #dcdcdc;
+	font-weight: bold;
+	font-size: 12px;
+	color: #666;
+	text-align: left;
+	padding: 2px 10px;
+	text-align: center;
+	border: 1px solid #bbb;
+}
+#agenda_list .title a:link, #agenda_list #title a:visited {
+	background-color: #dcdcdc;
+	font-weight: bold;
+	font-size: 11px;
+	color: #666;
+	padding: 2px 10px;
+	text-align: center;
+}
+#agenda_list .title a:hover {
+	background-color: #dcdcdc;
+	font-weight: bold;
+	font-size: 11px;
+	color: #f3840d;
+	padding: 2px 10px;
+	text-align: center;
+}
+/* The cells with the name of the days of the weeks (mon->sun)*/
+#agenda_list .weekdays {
+	background-color: #dcdcdc;
+	text-align: center;
+	font-weight: bold;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+}
+/* The cells for the days (1->31) */
+#agenda_list .days_week {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #f5f5f5;
+}
+#agenda_list .days_weekend {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #e6e6e6;
+}
+#agenda_list .days_today {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #FFCA8D;
+	color: #CC3300;
+	font-weight: bold;
+}
+/* text in the cells: display of agenda items (visible)*/
+#agenda_list .data {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+}
+#agenda_list .datanotbold {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+}
+#agenda_list .text {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+}
+/*text in the cells: display of agenda items (invisible)*/
+#agenda_list .data_hidden {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+	color: #999999;
+}
+#agenda_list .datanotbold_hidden {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+	color: #999999;
+}
+#agenda_list .text_hidden {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+	color: #999999;
+}
+/*text in the cells: display of agenda items (highlighted)*/
+#agenda_list .datanow {
+	background-color: #FFCC00;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+}
+#agenda_list .datanotboldnow {
+	background-color: #FFCC00;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+}
+#agenda_list .textnow {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #dcdcdc;
+	border-collapse: collapse;
+}
+/* ---------------------------------------------------
+	styles for the mini agenda
+-----------------------------------------------------*/
+#smallcalendar {
+	width: 100%;
+	margin: 0 auto;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+#smallcalendar .weekdays {
+	background-color: #dcdcdc;
+	text-align: center;
+	font-size: 11px;
+	font-weight: bold;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+#smallcalendar .days_week {
+	background-color: #f5f5f5;
+	text-align: center;
+	font-size: 11px;
+	border-collapse: collapse;
+}
+#smallcalendar .days_weekend {
+	background-color: #e6e6e6;
+	text-align: center;
+	font-size: 11px;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+#smallcalendar .days_today {
+	width: 12%;
+	text-align: center;
+	font-size: 11px;
+	border: 1px solid #FA8500;
+	border-collapse: collapse;
+	background-color: #FFCA8D;
+}
+/* ---------------------------------------------------
+	styles for the personal agenda
+-----------------------------------------------------*/
+.personal_agenda {
+	color: #008000;
+}
+.personal_agenda a:link, .personal_agenda a:visited {
+	color: #008000;
+}
+a.personal_agenda:link, a.personal_agenda:visited {
+	color: #008000;
+}
+.personal_agenda a:hover, .personal_agenda a:hover {
+	color: #666666;
+}
+a.personal_agenda:hover, a.personal_agenda:hover {
+	color: #666666;
+}
+/*****************************************************
+ *  DISPLAY MESSAGES	                             *
+ *****************************************************/
+/* normal and erro message-box */
+.normal-message {
+	position: relative;
+	margin-top: 10px;
+	margin-bottom: 10px;
+	min-height: 30px;
+	border-width: 1px;
+	border-style: solid;
+	border: 1px solid #dcdcdc;
+	padding: 6px;
+	color: #00407F;
+	background-color: #E5EDF9;
+}
+.warning-message {
+	position: relative;
+	margin-top: 10px;
+	margin-bottom: 10px;
+	border-width: 1px;
+	border-style: solid;
+	padding: 6px;
+	border: 1px solid #FFB30F;
+	color: #000;
+	background-color: #FFEFA7;
+	min-height: 30px;
+}
+.confirmation-message {
+	position: relative;
+	margin-top: 10px;
+	margin-bottom: 10px;
+	border-width: 1px;
+	border-style: solid;
+	padding:6px;
+	border: 1px solid#E5EDF9;
+	color: #2F4F4F;
+	background-color: #E5EDF9;
+	min-height: 30px;
+}
+.error-message {
+	position: relative;
+	margin-top: 10px;
+	margin-bottom: 10px;
+	border-width: 1px;
+	border-style: solid;
+	padding: 6px;
+	border: 1px solid #FF0000;
+	color: #000;
+	background-color: #FFD1D1;
+	min-height: 30px;
+}
+.confirmation-message .bottom-link, .error-message .bottom-link, .normal-message .bottom-link, .warning-message .bottom-link {
+	position: absolute;
+	bottom: 0.2em;
+	right: 0.5em;
+}
+/* New training */
+.bottom-link {
+	border: 2px outset;
+	text-decoration: none;
+	background-color:#E5EDF9;
+	border-color: #D4E2F6;
+	background-image:url(images/button_back.jpg);
+	background-position:10px 50%;
+	background-repeat:no-repeat;
+	font-size:100%;
+	margin-top:1px;
+	padding:5px 20px;
+	vertical-align:middle;
+	padding-left:35px;
+	display:block;
+}
+.bottom-link:active {
+	border: 2px inset;
+}
+.bottom-link:link {
+	border-style: solid;
+	border-width : 1px 2px 2px 1px;
+	text-decoration : none;
+	border-color : #69f #00f #00f #69f;
+}
+.bottom-link:hover {
+	border-color: #ccc;
+	color: #111;
+}
+#message {
+	margin: 0 auto;
+	text-align: center;
+}
+#message select {
+	margin: 10px 0;
+	width: 220px;
+}
+#message textarea {
+	margin: 10px 0;
+}
+#message td {
+	padding: 4px;
+}
+.message-top-title {
+	float:left;
+	margin-top:1px;
+	margin-bottom:1px;
+	background-color:#F2F2F2;
+	width:600px;
+	border-bottom:1px solid #CCCCCC;
+ margin:left:5px;
+}
+.message-bottom-title {
+	height:22px;
+	float:left;
+	margin-top:1px;
+	margin-bottom:1px;
+	background-color:#F2F2F2;
+	width:600px;
+	border-bottom:1px solid #CCCCCC;
+}
+.message-content-body-left {
+	float:left;/* width:55%; */  
+}
+.message-content-body-right {
+	float:right;
+	text-align:left;
+	width:60%;
+}
+.message-body-title {
+	float:right;
+	margin-top:1px;
+	margin-bottom:5px;
+	border-bottom:1px solid #CCCCCC;
+	border-collapse:collapse;
+}
+.message-image-info {
+	float:left;
+	margin-top:10px;
+	margin-bottom:10px;
+	margin-left:10px;
+	text-align:left;
+	margin-right:20px;
+}
+.message-content-body-right dd {
+	color:#333399;
+	border-bottom:1px solid #CCCCCC;
+	height:20px;
+	text-decoration:none;
+	outline-style:none;
+	background:#ffffff;
+}
+.message-content-body-right:hover {
+}
+/**********************************************
+ *  DOCUMENT MODULE                           *
+ **********************************************/
+/* styles from the document.php file */
+.comment {
+	margin-left: 30px;
+}
+/* styles from the upload.php file */
+dl.upload_option {
+	margin: 1em 0;
+	padding: 0;
+}
+.upload_option dt {
+	font-weight:bold;
+	margin:0;
+}
+.upload_option dd {
+	margin:0;
+}
+.document_owner {
+	text-align: right;
+}
+/**********************************************
+ *  DROPBOX MODULE                            *
+ **********************************************/
+/* styles from dropbox.php file */
+.dropbox_detail {
+	font-size: small
+}
+.dropbox_date {
+	color: #737780;
+	font-style: italic;
+	font-weight: normal;
+}
+.dropbox_person {
+	font-weight: bold
+}
+.dropbox_listTitle {
+	color: #000000;
+}
+.dropbox_feedback {
+	font-size: x-small;
+	height: 50px;
+	width: 200px;
+	overflow: auto
+}
+.dropbox_feedbacks {
+	height: 250px;
+	width: 100%;
+	overflow: auto
+}
+/**********************************************
+ *  CHAT MODULE                               *
+ **********************************************/
+/* styles for chat / conference tools */
+#chat_entermessage {
+	background-color: #D6E5FA;
+	border-top: 1px solid #dcdcdc;
+	padding: 5px;
+	margin: 0;
+}
+/* the following for the greyed out elements */
+a.nobold:link, a.nobold:visited, a.nobold:active {
+	font-weight: normal;
+	color: #999;
+	margin: 0 0 0 25px;
+}
+a.nobold:hover {
+	font-weight: normal;
+	color: #999;
+	text-decoration: underline;
+	margin: 0 0 0 25px;
+}
+.note {
+	margin: 6px;
+	font-size: 12px;
+	line-height: 14px;
+	font-family: verdana, arial, helvetica, sans-serif;
+	background-color: #E5EDF9;
+	color: #666666;
+	border: 1px solid #bbb;
+	padding: 10px 10px 10px 10px;
+}
+.note b {
+	margin: 10px 10px 5px 0px;
+}
+.alternativeBgLight {
+	background-color: #f5f5f5;
+	border: 1px solid #dcdcdc;
+	border-collapse: collapse;
+}
+.alternativeBgDark {
+	background-color: #ccf;
+	border: 1px solid #dcdcdc;
+	border-collapse: collapse;
+}
+.myagendatoday {
+	background-color: #FFCA8D;
+	border-collapse: collapse;
+	font-family: verdana, arial, helvetica, sans-serif;
+	color: #CC3300;
+	font-weight: bold;
+}
+/*****************************************************
+ *  FORM STYLES                                      *
+ *****************************************************/
+div.row {
+	clear: both;
+	padding-top: 5px;
+}
+div.row div.form_header {
+	white-space: nowrap;
+	padding: 2px;
+	background-color: #E5EDF9;
+	border: 1px solid #bbb;
+}
+div.row div.label {
+	float: left;
+	width: 18%;
+	text-align: right;
+}
+div.row div.formw {
+	width: 80%;
+	float:left;
+	
+}
+[dir=ltr] div.row div.label, [dir=rtl] div.row div.formw {
+	float: left;
+	text-align: right;
+}
+[dir=rtl] div.row div.label, [dir=ltr] div.row div.formw {
+	float: right;
+	text-align: left;
+}
+span.form_required {
+	color: #f00;
+}
+span.form_error {
+	color: #f00;
+	font-size: x-small;
+	margin: 2px;
+}
+/*****************************************************
+ *  DATA TABLE STYLES                                *
+ *****************************************************/
+.cell_header {
+	background-color: #EEEEFF;
+	font-weight:bold;
+	text-align:left;
+	padding-left:5px;
+}   /* header cell in data table in tools */
+.data_table {
+	border-collapse: collapse;
+	width: 100%;
+	padding: 5px;
+}
+.data_table th {
+	padding-right: 12px;
+	border: 1px solid gray;
+	background-color: #E5EDF9;
+}
+.data_table tr.row_odd {
+	background-color: #fafafa;
+}
+.data_table tr.row_odd:hover, .data_table tr.row_even:hover {
+	background-color: #E5EDF9;
+}
+.data_table tr.row_even {
+	background-color: #fff;
+}
+.data_table td {
+	padding: 5px;
+	vertical-align: top;
+	border-bottom: 1px solid #b0b0b0;
+	border-right: 1px dotted #e1e1e1;
+	border-left: 1px dotted #e1e1e1;
+}
+/* admin page tool list definitions */
+.tool_list dt {
+	font-weight: bold;
+}
+.tool_list dd {
+	margin: 0;
+	padding: 4px 0 0 10px;
+}
+/* divs for category list / platform news on home page */
+.home_cats {
+	width: 45%;
+	float: left;
+	position: relative;
+	margin: 0;
+	padding: 0px;
+	padding-top: 8px;
+	background: transparent;
+}
+.home_news {
+	width: 45%;
+	float: right;
+	position: relative;
+	margin: 0;
+	padding: 0px;
+	padding-top: 8px;
+	background: #fff;
+}
+label.left {
+	float: left;
+	width: 15em;
+	margin: 0 0 0.5em 0;
+}
+form br {
+	clear: both;
+}
+/* Fix for alignment problem in IE-Win browsers  */
+/*  Hide from IE5-mac. Only IE-win sees this. \*/
+* html .label {
+	margin-right: 10px;
+}
+* html .data {
+	height: 1%;
+	margin-left: 0;
+}
+/* End hide from IE5/mac */
+
+.radio, .checkbox {
+	margin: 0;
+	padding: 0;
+	border: none;
+	background-color: transparent;
+}
+.required {
+	color: #f00;
+	font-weight: bold;
+}
+/* Admin section */
+div.admin_section {
+	-moz-border-radius-bottomleft:10px;
+	-moz-border-radius-bottomright:10px;
+	-moz-border-radius-topleft:10px;
+	-moz-border-radius-topright:10px;
+	border:1px solid #E1E1E0;
+	width: 40%;
+	float: left;
+	padding: 5px;
+	margin: 10px 20px;
+	
+}
+div.admin_section h4 {
+	margin: 0;
+	border-bottom: 1px solid #E1E1E0;
+	width: 100%;
+}
+
+.admin_section li {
+	background-image:url(images/bullet.gif);
+	background-repeat:no-repeat;
+	list-style:none;
+}
+.admin_section li a {
+	margin-left:15px;
+}
+
+.admin_section li input {
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+
+.admin_section li:first-child {
+	background-image:none;
+}
+
+.user_course_category {
+	background-color: #E5EDF9;
+	border: 1px solid #666;
+	font-weight: bold;
+	color: #666;
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+}
+.sessions_list {
+	line-height: 20px;
+	margin-top: 20px;
+}
+.sessions_list_inactive {
+	line-height: 20px;
+}
+.session_box {
+	background-color: #E5EDF9;
+	border: 1px solid #666;
+	font-weight: bold;
+	color: #666;
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+	margin-bottom: 10px;
+}
+.session_box_title {
+}admin_section
+.session_box_coach {
+}
+/***************************************************************
+ *  DOKEOS CONFIG SETTINGS OF THE PLATFORM ADMIN SECTION 	   *
+ ***************************************************************/
+.sectiontitle {
+	background-color: #a0e5fc;
+	border: 1px solid #cccccc;
+	font-weight: bold;
+	color: #666666;
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+	font-size: 11px;
+}
+.sectioncomment {
+	color: #000000;
+	margin: 5px;
+	padding: 5px;
+	font-size: 11px;
+}
+.sectionvalue {
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+}
+/*****************************************************
+ *  ANNOUNCEMENTS									 *
+ *****************************************************/
+.announcements_datum {
+	font-size: 12px;
+	font-style: italic;
+	color: #666666;
+}
+/*****************************************************
+ *  SYSTEM ANNOUNCEMENTS						     *
+ *****************************************************/
+div.system_announcement {
+	padding: .2em;
+	border: 1px solid #ddd;
+	-moz-border-radius-topright : 5px;
+    -moz-border-radius-topleft : 5px;
+    -moz-border-radius-bottomright : 5px;
+    -moz-border-radius-bottomleft : 5px;
+}
+.system_announcement {
+	background: #ddd url('images/headertables.jpg') repeat-x top center;
+	font: bold 100% arial, sans-serif, sans;
+}
+.system_announcement_content {
+	font: normal 100% 'Lucida Grande', verdana, Arial, sans-serif, sans;
+}
+.system_announcements {
+	background: transparent url('images/systemenouvelles.jpg') no-repeat top  left;
+	padding-top: 10px;
+	width: 50%;
+}
+.system_announcements h3 {
+	padding-left:70px;
+	padding-top: 30px;
+}
+/*****************************************************
+ *  THE NEW FORUM					     *
+ *****************************************************/
+/* **** FORUM CATEGORY **** */
+.forum_category {
+	background-color: #0066CC;
+	color: #fff;
+}
+.forum_category a {
+	color: #fff;
+}
+.forum_category_header {
+	background-color: #0066CC;
+	color: #fff;
+}
+tr.forum_category_header a {
+	color: #fff;
+}
+/* **** FORUM **** */
+.forum_header {
+	background-color: #a0e5fc;
+}
+/* **** THREAD **** */
+.forum_threadheader {
+	color: #aaa;
+	background-color: #F7F7F7;
+}
+tr.forum_threadheader td {
+}
+.forum-thread-header {
+	color: #000000;
+	background-color: #F7F7F7;
+	border-left: 1px solid #aaa;
+	border-right: 1px solid #aaa;
+	border-bottom: 1px solid #aaa;
+	border-top: 1px solid #aaa;
+}
+.forum-thread-body {
+	color: #000000;
+	background-color: #FFFFFF;
+	border-left: 1px solid #aaa;
+	border-right: 1px solid #aaa;
+	border-bottom: 1px solid #aaa;
+	border-top: 1px solid #aaa;
+}
+/* **** POST **** */
+.quote {
+	background-color: #a0e5fc;
+}
+.forum_message_left {
+	width: 150px;
+	vertical-align: top;
+	/*border-bottom: 1px solid #666666;*/
+	border-right: 1px solid #aaa;
+	background-color: #F7F7F7;
+}
+.forum_message_left_2_be_approved {
+	width: 150px;
+	vertical-align: top;
+	/*border-bottom: 1px solid #666666;*/
+	border-right: 1px solid #aaa;
+	background-color: #F7F7F7;
+	color: #999;
+}
+.forum_message_post_title {
+	/*border-bottom: 1px solid #666666;*/
+	font-weight: bold;
+	background-color: #F7F7F7;
+	height: 20px;
+}
+.forum_message_post_title_2_be_approved {
+	/*border-bottom: 1px solid #666666;*/
+	color: #999;
+	font-weight: bold;
+	background-color: #F7F7F7;
+	height: 20px;
+}
+.forum_message_post_text {
+	/*border-bottom: 1px solid #666666;*/
+	margin-bottom: 10px;
+	vertical-align: top;
+}
+.forum_message_post_text_2_be_approved {
+	/*border-bottom: 1px solid #666666;*/
+	color: #999;
+	margin-bottom: 10px;
+	vertical-align: top;
+}
+.current {
+	font-weight: bold;
+}
+.structure {
+	/*border-bottom: 1px solid #666666;*/
+	font-weight: bold;
+	background-color: #F7F7F7;
+	height: 20px;
+}
+a.forum_group_link {
+	font-weight: lighter;
+	display:inline;
+}
+.forum_description {
+	color: #000;
+	font-weight: normal;
+}
+.forum_title {
+	color: #000;
+	font-size: 14px;
+}
+.forum_low_description {
+	color: #737780;
+	font-style: italic;
+	font-weight: normal;
+}
+.forum_attach_comment {
+	color: #737780;
+	font-style: italic;
+	font-weight: normal;
+}
+/* **** BLOG **** */
+span.blog_title {
+	font-size: 20px;
+	font-weight: bold;
+	color: #2A4B74;
+}
+span.blog_subttitle {
+	font-size: 12px;
+}
+td.blog_left {
+	margin-right: 5px;
+	padding-right: 5px;
+	border-right: 1px solid #dddddd;
+}
+td.blog_right {
+	padding-left: 10px;
+}
+td.blog_menu_title {
+	background-color: #dddddd;
+	color: #2A4B74;
+	font-weight: bold;
+	font-size: 11px;
+	padding: 2px;
+}
+td.blog_menu {
+	border-bottom: 1px dashed #dddddd;
+	border-right: 1px dashed #dddddd;
+	border-left: 1px dashed #dddddd;
+	padding: 10px;
+}
+td.blog_menu ul {
+	margin-top: 0;
+	margin-right: 0;
+	margin-bottom: 0;
+	margin-left: 15px;
+	padding: 0;
+}
+td.blog_menu ul li {
+}
+span.blogpost_title {
+	display: block;
+	font-size: 18px;
+	font-weight: bold;
+	color: #2A4B74;
+	padding-bottom: 5px;
+}
+span.blogpost_date {
+	display: block;
+	font-size: 12px;
+	font-weight: bold;
+	color: #333333;
+	padding-bottom: 10px;
+}
+span.blogpost_info {
+	display: block;
+	color: #333333;
+	border-top: 1px solid #dddddd;
+	margin-top: 5px;
+}
+table.newBlog {
+	border: 1px solid #dddddd;
+	margin-bottom: 10px;
+	margin-top: 10px;
+	padding: 10px;
+	background-color: #f6f6f6;
+}
+table.newTask {
+	border: 1px solid #dddddd;
+	margin-bottom: 10px;
+	margin-top: 10px;
+	padding: 10px;
+	background-color: #f6f6f6;
+}
+table.new_comment {
+	border: 1px solid #dddddd;
+	margin-bottom: 10px;
+	margin-top: 10px;
+	padding: 10px;
+	background-color: #F4F4F4;
+}
+div.blogpost_comment {
+	border-top: 1px dashed #dddddd;
+	border-right: 1px dashed #dddddd;
+	border-bottom: 1px dashed #dddddd;
+	border-left: 1px dashed #dddddd;
+	margin-bottom: 10px;
+	padding: 10px;
+	background-color: white;
+}
+span.blogpost_comment_title {
+	display: block;
+	font-size: 14px;
+	font-weight: bold;
+	color: #1657A9;
+	padding-bottom: 5px;
+}
+span.blogpost_comment_date {
+	display: block;
+	font-size: 10px;
+	font-weight: bold;
+	color: #333333;
+	padding-bottom: 10px;
+}
+span.blogpost_comment_info {
+	font-size: 10px;
+	display: block;
+	color: #333333;
+	border-top: 1px solid #dddddd;
+	margin-top: 10px;
+}
+div.blogpost {
+	border: 1px solid #DDDDDD;
+	background-color: #ECECEC;
+	margin-bottom: 15px;
+	padding: 10px;
+}
+div.comments {
+	border: 1px solid #dddddd;
+	margin-bottom: 10px;
+	margin-top: 10px;
+	padding: 10px;
+	background-color: #F4F4F4;
+}
+.attachment_comment {
+	color: #737780;
+	font-style: italic;
+	font-weight: normal;
+}
+.link {
+	text-decoration: none;
+	font-weight : bold;
+	color : #1657A9;
+	cursor: pointer
+}
+.link:hover {
+	text-decoration: none;
+	color: #abd9f1;
+	font-weight: bold;
+	cursor: pointer
+}
+/*****************************************************
+ *  INSTALLATION								     *
+ *****************************************************/
+#installation_steps {
+	float:left;
+	background-color: #a0e5fc;
+}
+.current_step {
+	font-weight: bold;
+}
+/************************************************************
+  styles below here are not necessarily used in the current
+	release and the CVS files, they are from earlier versions,
+	and have been left untouched for anyone needing them in
+	their own platform ...
+*************************************************************/
+.topBanner a:link, .topBanner a:active, .topBanner a:visited {
+	text-decoration:none;
+	color:white;
+}
+.topBanner table {
+	text-decoration:none;
+}
+.topBanner a:hover {
+	text-decoration:underline;
+}
+.topBanner td {
+	border-top: solid White 1px;
+}
+.alternativeBgLight {
+	background-color: #f5f5f5;
+}
+.alternativeBgDark {
+	background-color: #e6e6e6
+}
+.forms {
+	letter-spacing: normal;
+	text-align: justify;
+	text-indent: 3pt;
+	word-spacing: normal;
+	padding: 2px 5px;
+}
+.formsTips {
+	text-align: justify;
+	text-indent: 15pt;
+	word-spacing: normal;
+}
+/*
+input.forms	{ letter-spacing: normal; text-align: justify; text-indent: 3pt;	word-spacing: normal;
+padding-top: 0px;	padding-right: 0px;	padding-bottom: 0px;	padding-left: 0px;}
+*/
+.warn {
+	border: thin double Silver;
+	margin-left: 15px;
+	margin-right: 15px;
+	font-family: serif;
+	color: Red;
+	padding-left: 25px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+.small {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px
+}
+.xsmall {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px
+}
+.xxsmall {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 9px
+}
+#glossary_menu li {
+	LIST-STYLE-TYPE: none;
+	display: inline;
+	padding-left:5px;
+}
+.glossary_divider {
+	text-transform: capitalize;
+	background-color: #CCCCCC;
+	padding: 3px;
+	font-weight: bold;
+	margin-bottom: 3px;
+	margin-top: 10px;
+}
+.glossary_word {
+	background-color: #F7F7F7;
+	padding: 3px;
+	font-weight: bold;
+	margin-bottom: 3px;
+	margin-top: 10px;
+}
+/*
+ * TABBED INTERFACE
+ */
+#tabbed_menu {
+	width: 100%;
+	height: 20px;
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+	border-bottom-color: #666666;
+	margin-bottom: 20px;
+}
+#tabbed_menu #tabbed_menu_tabs li {
+	margin: 0 10;
+	padding: 0;
+	display: inline;
+	list-style-type: none;
+}
+#tabbed_menu #tabbed_menu_tabs a:link, #tabbed_menu_tabs a:visited {
+	float: left;
+	background: #f3f3f3;
+	font-weight: bold;
+	padding: 2px 10px 2px 10px;
+	margin-right: 4px;
+	border: 1px solid #cccccc;
+	border-bottom: 1px solid #666666;
+	text-decoration: none;
+	color: #666;
+}
+#tabbed_menu #tabbed_menu_tabs a:link.active, #tabbed_menu_tabs a:visited.active {
+	border: 1px solid #666666;
+	border-bottom: 1px solid #fff;
+	background: #fff;
+	color: #000;
+}
+#WCAG-editor {
+	border: 1px #DCDCDC solid;
+	background-color: #F0F0F0;
+	width: 100%;
+}
+#WCAG-editor .title {
+	padding: 2px;
+	background-color: #DCDCDC;
+	text-align: center;
+	color: #000000;
+	font-weight: bold;
+}
+#WCAG-editor .body {
+	padding-top: 5px;
+	padding-left: 5px;
+	padding-right: 13px;
+	padding-bottom: 5px;
+}
+#WCAG-editor textarea {
+	margin-left: 0px;
+	margin-right: 0px;
+	width: 100%;
+	height: 180px;
+	border: 1px #DCDCDC solid;
+}
+#WCAG-editor input {
+	width: 100%;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+/* don't work on IE 6 */
+#WCAG-editor input[type="checkbox"], #WCAG-editor input[type="radio"], #WCAG-editor input[type="submit"] {
+	width: auto;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;}
+/* only for IE6 */
+#WCAG-editor #submit, #WCAG-editor #visible_teacher, #WCAG-editor #visible_student, #WCAG-editor #visible_guest {
+	width: auto;
+}
+#WCAG-content img {
+	float: left;
+	margin-right: 5px;
+	margin-bottom: 5px;
+}
+#WCAG-content p {
+	text-align: justify;
+}
+/* hack for IE < 7 */
+
+#course_description input {
+	width: auto;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+#course_description #imagefile, #course_description #imageLabel, #course_description #link, #course_description #linkLabel {
+	width: 100%;
+}
+.WCAG-form textarea {
+	width: 100%;
+	height: 180px;
+}
+.skip {
+	display: none;
+}
+/*
+------------------------------------------------------------------------------
+    OTHERS
+------------------------------------------------------------------------------
+*/
+.input_titles {
+	width: 300px;
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	border:1px solid #E1E1E0;
+}
+/*
+------------------------------------------------------------------------------
+    Survey
+------------------------------------------------------------------------------
+*/
+#survey_title {
+	background-color:#dcdcdc;
+	color:#000;
+	padding:2px;
+}
+#survey_subtitle {
+	background-color:#dcdcdc;
+	color:#000;
+	padding:2px;
+}
+.survey_content {
+	background-color:#a0e5fc;
+	color:#264269;
+	padding:5px;
+	border: 1px solid #999;
+	margin-top: 4px;
+}
+.survey_question_wrapper {
+	border: 1px solid #999;
+	margin-top:4px;
+}
+.survey_question {
+	/* 264269 4271b5 E5EDF9 */
+	background-color:#E5EDF9;
+	color:#999;
+	padding:5px;/*border: 1px solid #264269;*/
+}
+.survey_question_options {
+	/* 264269 4271b5 E5EDF9 */
+	background-color:#FFF;
+	color:#000;
+	padding:5px;/*border: 1px solid #264269;*/
+}
+/*
+|----------------------------------------------------------------------------
+| Added: to fit img and blocks in home page
+|----------------------------------------------------------------------------
+|
+*/
+#hellomindfactory {
+	border: 1px solid #ccc;
+	margin:-14px 0 0 0;
+	width:690px;
+	height:428px;
+}
+#tophellomindfactory {
+	margin: 10px 5px 5px 5px;
+	height:200px;
+	width:680px;
+}
+.topa {
+	background:transparent url('images/logoa4.gif') no-repeat;
+}
+.topb {
+	background:transparent url('images/logob4.gif') no-repeat;
+}
+#bottomhellomindfactory {
+	margin: 5px;
+	height:200px;
+	width:680px;
+	background:transparent url('images/textologo.jpg') no-repeat;
+}
+/*
+.copyright {
+	display:none;
+}
+*/
+
+
+/* Quizzes tool */
+.quiz_export_link {
+	float: right;
+}
+/*
+------------------------------------------------------------------------------
+    Learning path
+------------------------------------------------------------------------------
+*/
+#show_audiorecorder_div {
+	background:#F0F0F0;
+	border:1px solid #999999;
+	font-weight:bold;
+	padding:2px;
+	width:350px;
+}
+/* Glossary tool */
+.glossary-term {
+	margin: 1em;
+	background-color: #ffe99b;
+	padding: 0.5em 0.5em 1.8em 0;
+	-moz-border-radius: 0.5em;
+}
+.glossary-term-title {
+	margin: 2em 0 1em 0.5em;
+	font-weight: bold;
+	font-size: 120%;
+}
+.glossary-term-desc {
+	margin-left: 1em;
+}
+.glossary-term-action-links {
+	float: right;
+}
+.glossary-term-edit-form {
+	margin: 1em;
+	background-color: #FFE4C4;
+	padding: 0.5em 0.5em 2em 0;
+	-moz-border-radius: 0.5em;
+}
+.glossary-term-edit-desc {
+	font-weight: bold;
+	font-size: 120%;
+}
+.glossary-term-edit-title {
+	font-weight: bold;
+	font-size: 120%;
+}
+.glossary-add-form {
+	font-weight: bold;
+	font-size: 120%;
+	margin: 1em;
+}
+.glossary-orderby-link {
+	float:right;
+	margin: 1em;
+}
+.glossary-msg-error {
+	color: #FF0000;
+	display :none;
+	font-weight: normal;
+	font-size: 80%;
+}
+/* Notebook */
+.notebook-add-form {
+	margin: 1em;
+	background-color: #c3d9ff;
+	padding: 1em 1em;
+}
+.notebook-add-desc-textarea {
+	background-color: #f2f5f8;
+	border-color: #ffe99b;
+	overflow: hidden;
+}
+.notebook-add-title-text {
+	background-color: #f2f5f8;
+	border-color: #ffe99b;
+}
+.notebook-edit-desc-textarea {
+	background-color: #e0ecff;
+	border-color: #ffe99b;
+	overflow: hidden;
+}
+.notebook-edit-title-text {
+	background-color: #e0ecff;
+	border-color: #ffe99b;
+}
+.notebook-msg-error {
+	color: #FF0000;
+	display :none;
+	background-color: #ffe99b;
+	width: 40%;
+}
+.notebook-list {
+	margin: 1em 1em 0em 1em;
+	background-color: #79b;
+	padding: 0.3em 0.3em;
+	-moz-border-radius: 0.5em;
+}
+.notebook-title-list {
+	color : #fff;
+	padding: 0.3em 0.3em;
+	font-weight: bold;
+	font-size: 120%;
+}
+.notebook-desc-list {
+	margin: 0em;
+	background-color: #f2f5f8;
+	padding: 0.5em 0.3em 2em 0.3em;
+	border: 1px solid #79b;
+}
+.notebook-term-action-links {
+	padding: 0.3em 0.3em;
+	width: 50%;
+	color : #fff;
+}
+.notebook-orderby-link {
+	text-align:right;
+	margin-right: 1em;
+}
+.notebook-search-title {
+	text-align:right;
+	margin: 1em;
+}
+.notebook-date-information {
+	color : #fff;
+	padding: 0.3em;
+	font-size: 120%;
+	font-weight: bold;
+}
+/* Gradebook */
+.resource-deleted {
+	color:#990000;
+}
+.gradebook-table-header {
+	border: 1px solid rgb(153, 153, 153);
+	background: rgb(240, 240, 240) none repeat scroll 0% 0%;
+}
+.gradebook-table-body {
+	border: 1px solid rgb(153, 153, 153);
+	background: rgb(255, 255, 255) none repeat scroll 0% 0%;
+}
+/* actions */
+.actions_lp {
+	background:#F8F8F8;
+	height:29px;
+	padding-left: -17px;
+	margin: 5px 2px 1px 12px;
+	vertical-align:middle;
+	width: 90%;
+}
+.actions_lp img {
+	vertical-align:middle;
+}
+.actions_lp a {
+	margin-right: 10px;
+	vertical-align:middle;
+}
+.actions_lp span {
+	margin-right: 10px;
+	vertical-align:middle;
+}
+.actions_lp form {
+	margin-right: 10px;
+	vertical-align:middle;
+}
+.actions {
+	background:#E5EDF9;
+	border-bottom:1px dotted #999999;
+	border-top:1px dotted #999999;
+	/*height:35px;*/
+	padding:2px;
+	margin-bottom: 5px;
+	vertical-align:middle;
+}
+.actions img {
+	/*display:inline-block;*/
+	border: none;
+	text-decoration: none;
+	background-color: #E5EDF9;
+	padding-right: 5px;
+	vertical-align:middle;
+}
+.actions a {
+	display:inline-block;
+	margin-right: 10px;
+	vertical-align:middle;
+}
+.actions span {
+	margin-right: 10px;
+	vertical-align:middle;
+}
+.actions form {
+	margin-right: 10px;
+	vertical-align:middle;
+}
+/* big actions */
+.actionsbig {
+	background:#F8F8F8;
+	border-bottom:1px solid #999999;
+	border-top:1px solid #999999;
+	background-color:#E5EDF9;
+	height:100%;
+	padding:2px;
+	margin-bottom: 5px;
+	vertical-align:middle;
+	float:left;
+	width:100%;
+}
+.actionsbig a {
+	float:left;
+	padding-left:6px;
+	padding-right:12px;
+	text-align:center;
+}
+.actions img {
+	vertical-align:middle;
+}
+.actions a {
+	margin-right: 10px;
+	vertical-align:middle;
+}
+.actions-title {
+	background:#E5EDF9;
+	border-bottom:1px dotted #999999;
+	border-top:1px dotted #999999;
+	/*height:35px;*/
+    padding:4px;
+	margin-bottom: 5px;
+	font-size:14px;
+	font-weight:bolder;
+	/*background:url(images/actions.jpg) repeat-x;*/
+    vertical-align:middle;
+}
+.actions-message {
+	white-space: nowrap;
+	padding: 2px;
+	background-color: #E5EDF9;
+	border: 1px solid #bbb;
+}
+/**********************************************
+ *  MESSAGE TOOL                           *
+ **********************************************/
+
+/* styles from the new_message.php file */
+.message_view_table {
+	cellspacing:0;
+	cellpadding:0;
+	background-color:#dbeaf5;
+	border:0;
+	border-collapse: collapse;
+	width: 100%;
+}
+.message_view_table th {
+	padding-right: 12px;
+	border: 1px solid gray;
+	background-color: #E5EDF9;
+}
+.message-select-box {
+	float:left;
+	display:inline;
+	position:absolute;
+	margin-top:23px;
+	margin-left:20px;
+}
+/* styles from the my.profile.php file */
+.message-content {
+	float:right;
+	margin:20px auto;
+	background:#E5EDF9;
+	border:2px solid #E5EDF9;
+	padding:10px;
+	width:200px;
+	position:relative;
+}
+.message-content .message-delete {
+	position: absolute;
+	top: 10px;
+	right: 10px;
+	cursor: pointer;
+}
+.message-content-internal {
+	display:inline;
+	margin:20px auto;
+	background:#E5EDF9;
+	border:2px solid #E5EDF9;
+	padding:10px;
+	width:100px;
+	position:relative;
+	margin-top:150px;
+	margin-right:-100px;
+}
+.message-title {
+	color:#ff0000;
+	font-size:15px;
+}
+.message-body {
+	font-size:11px;
+	padding: 0 0 11px;
+	color:#333;
+}
+.message-link {
+	color:#ff8400;
+}
+.message-view {
+	float:right;
+	margin:20px auto;
+	background:#E5EDF9;
+	border:2px solid #E5EDF9;
+	padding:10px;
+	width:100px;
+	position:relative;
+	margin-top:115px;
+	margin-right:-100px;
+}
+.message-content-table {
+	background-color:white;
+	border:1px solid black;
+	position:absolute;
+	width:200px;
+	height:60px;
+	z-index:3;
+	visibility:hidden;
+	top:85px;
+	left:10px;
+	margin: 0px;
+	padding: 0px;
+}
+/**********************************************
+ *  EXERCISE TOOL                           *
+ **********************************************/
+.exercice_form {
+	width: 300px;
+}
+#validationButton {
+	text-decoration: none;
+	margin: 5px;
+	/*border:1px solid #999999;*/
+	/*background:#F0F0F0;  */
+	padding: 3px;
+	padding-left:10px;
+	padding-right:10px;
+	font-weight:bold;
+	color:#666;
+}
+.rounded {
+	background:#ccc;
+	padding: 3px;
+	width: 200px;
+	margin-left:10px;
+}
+.rounded_inner {
+	background:#FFF;
+	padding-top: 10px;
+	padding-bottom: 10px;
+}
+.rounded_inner:hover {
+	color:#C802A5;
+	background:#F0F0F0;
+}
+.exercise_scenario_label {
+}
+.exercise_scenario_element {
+}
+span.checkbox {
+	width: 19px;
+	height: 25px;
+	padding: 0 5px 0 0;
+	background: url(images/checkbox.gif) no-repeat;
+	display: block;
+	clear: left;
+	float: left;
+}
+span.radio {
+	width: 19px;
+	height: 25px;
+	padding: 0 5px 0 0;
+	background: url(images/radio.gif) no-repeat;
+	display: block;
+	clear: left;
+	float: left;
+}
+#question_title {
+}
+#question_description {
+	padding-left:5px;
+	padding-top:10px;
+}
+#question_score {
+	padding-left:5px;
+	padding-top:10px;
+	padding-bottom:10px;
+	font-weight:bold;
+}
+#question_feedback {
+	background-color:#FCF7BA;
+	border:1px solid #CCCCCC;
+	color:#666666;
+	font-size:11px;
+	font-weight:bold;
+	list-style-type:none;
+	margin-top:5px;
+	padding:5px;
+}
+#exercise_close_link {
+	background: url(images/close.gif) no-repeat;
+	padding-left: 20px;
+}
+#exercise_close_link:hover {
+	background: url(images/close_highlight.gif) no-repeat;
+	padding-left: 20px;
+}
+/*SOCIAL TOOL*/
+div.image-social-content {
+	float:left;
+	border:1px solid #CCCCCC;
+	margin:2px;
+	padding: 8px 4px 4px 4px;
+	background: #ffffff;
+	height:125px;
+	width:82px;
+	z-index:5;
+	cursor:pointer;
+	position:relative;
+}
+div.image-social-content span {
+	overflow:hidden;
+	display:block;
+	height:92px;
+}
+div.image-social-content img {
+	vertical-align:middle;
+}
+div.image-social-content center.friend {
+	overflow:hidden;
+	height:30px;
+}
+.image-social-content .image-delete {
+	position: absolute;
+	top: 1px;
+	right: 1px;
+	cursor: pointer;
+}
+.social-title {
+	color:#ffffff;
+	background:#4475B0;
+	border-bottom:1px dotted #4475B0;
+	border-top:1px dotted #4475B0;
+	padding:0px;
+	margin-bottom: 0px;
+	vertical-align:middle;
+	font-weight:bolder;
+}
+.social-subtitle {
+	background:#FFFFFF;
+	border-bottom:1px dotted #999999;
+	border-top:1px dotted #999999;
+	padding:0px;
+	margin-bottom: 0px;
+	vertical-align:middle;
+}
+.social-qualify {
+	border-bottom:1px solid #ece9d8;
+	border-left:1px solid #ece9d8;
+	background:#FFFFFF;
+}
+.social-qualify-display {
+	border-bottom:1px solid #ece9d8;
+	border-left:1px solid #ece9d8;
+	background:#FFFF66;
+	color:#000033;
+	font-weight:bold;
+}
+.social-info {
+	background:#B8C8DC;
+	color:#4475B0;
+	font-size:12px;
+	font-weight:bold;
+}
+.social-display-image {
+	float:right;
+	margin-top:-130px;
+	margin-right:5px;
+}
+.social-search-image {
+	color:#000033;
+	margin-top:2px;
+	border-bottom:1px solid #6B6262;
+	border-left:1px solid #6B6262;
+	border-right:1px solid #6B6262;
+	border-top:1px solid #6B6262;
+	width:250px;
+}
+.social-subtitle-search {
+	background:#ffffff;
+	border-top:1px #9DACBF solid;
+	border-bottom:1px #9DACBF solid;
+}
+.social-align-box {
+	text-align:left;
+	float:left;
+}
+.social-content-description {
+	background:#ECE9D8;
+}
+.social-content-body {
+	background:#ffffff;
+}
+.social-content-table {
+	border-top:1px #9DACBF solid;
+	border-left:1px #9DACBF solid;
+	border-right:1px #9DACBF solid;
+	border-bottom:1px #9DACBF solid;
+}
+.social-profile-info {
+	width:350px;
+}
+.social-profile-info dt {
+	text-align:left;
+	clear:left;
+	color:#808080;
+	float:left;
+	width:100px;
+}
+.social-profile-info dd {
+	padding:1px 0px 3px 0px;
+	float:left;
+	margin:0;
+	display : block;
+	padding-left:10px;
+	width:200px;
+}
+#social-profile-wrapper {
+	width: 100%;
+	text-align:left;
+	margin:0 auto;
+	float: left;
+}
+#social-profile-container {
+/*width: 100%;*/
+}
+#social-profile-left {
+	float:left;
+	width:22%;
+}
+.left-side {
+	min-width: 198px;
+	margin: 0px;
+}
+#social-profile-content {
+	float:right;
+	width:47%;
+}
+#social-profile-right {
+	float:right;
+	width:30%;
+}
+.social-profile-post {
+	background : #a0e5fc;
+}
+.maincourse {
+	width: 100%;
+	margin-left:0px;
+}
+.social-profile-rounded {
+	background : #eee;
+}
+#social-profile-forum {
+	padding-left:0px;
+}
+#social-profile-thread {
+	padding-left:20px;
+}
+#social-post {
+	padding-left:30px;
+}
+.actions-profile {
+	font-size:14px;
+	background:#E5EDF9;
+	border-bottom:1px dotted #999999;
+	border-top:1px dotted #999999;
+	border-left:1px dotted #999999;
+	border-right:1px dotted #999999;
+	/*height:35px;*/		
+    padding:2px;
+	margin-bottom: 2px;
+	/*background:url(images/actions.jpg) repeat-x;*/
+    vertical-align:middle;
+	font-weight:700;
+	margin-right:10px;
+}
+.social-content-image {
+	margin-top:4px;
+	margin-right:5px;
+	background:#a0e5fc;
+	border-left:1px #999999 dotted;
+	border-top:1px #999999 dotted;
+	border-right:1px #999999 dotted;
+	border-bottom:1px #999999 dotted;
+}
+.social-background-content {
+	background:#a0e5fc;
+}
+.social-content-information {
+	margin-left:10px;
+	margin-right:10px;
+}
+.social-content-training {
+	margin-left:10px;
+	margin-right:10px;
+}
+.social-friend-container {
+	margin-left:4px;
+	margin-right:0px;
+}
+.social-content-competences {
+	margin-left:5px;
+	margin-right:5px;
+}
+.social-content-announcements {
+	margin-left:10px;
+	margin-right:10px;
+}
+.social-content-agenda {
+	margin-left:10px;
+	margin-right:10px;
+}
+.social-actions-message {
+	white-space: nowrap;
+	padding: 2px;
+	background-color: #ffffff;
+	border: 1px solid #bbb;
+}
+/*****************************************************
+ *  BUTTONS	                                         *
+ *****************************************************/
+/* BUTTONS */
+button {
+	margin:2px 5px 3px 3px !important;
+	background-color: #DFDFDF;
+	border-width: 0px;
+	/*    -moz-border-radius-topright : 5px;
+    -moz-border-radius-topleft : 5px;
+    -moz-border-radius-bottomright : 5px;
+    -moz-border-radius-bottomleft : 5px;
+*/
+    font-family: bold arial, verdana, helvetica, sans-serif;
+	font-size: 100%;
+	line-height :130%;
+	text-decoration: none;
+	color: black;
+	cursor: pointer;
+	padding:5px 15px 5px 15px;
+	vertical-align:middle;
+}
+button:hover {
+	background-color:#cbcbcb;
+	color:#545454;
+	border-style: inset;
+}
+/* button with image */
+button.add, button.save, button.cancel, button.refresh, button.upload, button.search, button.login, button.plus, button.minus, button.next, button.back {
+	padding-left:30px;
+	background-position:10px;
+	background-repeat:no-repeat;
+}
+/* POSITIVE */
+button.save, button.add, button.search, button.refresh, button.upload, button.login, button.plus, button.minus, button.next, button.back {
+	background-color:#fff;
+	border-color: #fff;
+}
+button.save:hover, button.refresh:hover, button.upload:hover, button.add:hover, button.search:hover, button.login:hover, button.plus:hover, button.minus:hover, button.next:hover, button.back:hover {
+	border-color: #fff;
+	background-color:#fff;
+}
+/* NEGATIVE */
+button.cancel {
+	background-color:#F8E8E6;
+	border-color: #FFE3DE;
+}
+button.cancel:hover {
+	border-color: #F4E1D0;
+	background-color: #FFE3DE;
+}
+/*including "save" image*/
+button.save {
+	background-image:url(images/button_accept.gif);
+}
+/*including "add" image*/
+button.add {
+	background-image:url(images/button_add.gif);
+}
+/*including "cancel" image*/
+button.cancel {
+	background-image:url(images/button_delete.gif);
+}
+/*including "search" image*/
+button.search {
+	background-color:#FFFFFF;
+	background-image:url(images/bg-boton.png);
+	background-position:right center;
+	padding-right: 30px;
+}
+/*including "login" image*/
+button.login {
+	background-image:url(images/bg-boton.png);
+	background-position:right;
+	background-color:#FFF;
+	border:solid 2px #FFF;
+	float:right;
+	margin-right:20px;
+	padding-right:30px;
+	margin:2px 5px 3px 5px !important;
+}
+
+button.login:hover{
+	background-color:#FFF;
+/*	border: solid 1px #FFF; */
+}
+
+/*including "plus" image*/
+button.plus {
+	background-image:url(images/button_plus.gif);
+}
+/*including "minus" image*/
+button.minus {
+	background-image:url(images/button_minus.gif);
+}
+/*including "next" image*/
+button.next {
+	background-image:url(images/button_next.gif);
+}
+/*including "back" image*/
+button.back {
+	background-image:url(images/button_back.gif);
+}
+/*including "refresh" image*/
+button.refresh {
+    background-image:url(images/button_refresh.gif);
+}
+/*including "upload" image*/
+button.upload {
+    background-image:url(images/button_upload.gif);
+}
+
+.icon_image_content {
+	width:70px;
+	cursor:hand;
+	height:10em;
+	text-align: center;
+	padding-right: 5px;
+	padding-left: 5px;
+}
+#expire_session div {
+	float:left;
+	padding-left:15px;
+}
+/* Fake buttons: links that look like buttons */
+
+.fake_button_back {
+	border: 2px outset;
+	padding: 2px;
+	text-decoration: none;
+	background-color:#E5EDF9;
+	border-color: #D4E2F6;
+	background-image:url(images/button_back.gif);
+	padding-left:30px;
+	background-position:10px;
+	background-repeat:no-repeat;
+}
+.fake_button_back:active {
+	border: 2px inset;
+}
+.fake_button_back:link {
+	border-style: solid;
+	border-width : 1px 2px 2px 1px;
+	text-decoration : none;
+	padding : 4px;
+	border-color : #69f #00f #00f #69f;
+}
+.fake_button_back:hover {
+	border-color: #ccc;
+	color: #111;
+}
+.question_menu {
+	list-style:none;
+	float:left;
+}
+.question_menu li {
+	float:left;
+	margin:0px;
+}
+#exercise_admin {
+	margin: 0;
+	padding: 0;
+	border: 0;
+}
+div#friend-header {
+	float:left;
+	width:100%;
+	line-height: 2.1em;
+}
+div#friend-header a {
+	padding-right:6px;
+}
+div#friend-container {
+	float:left;
+}
+div.image_friend_network {
+	float:left;
+	border:1px solid #CCCCCC;
+	margin:2px;
+	padding:4px;
+	background: #a0e5fc;
+	height:125px;
+	width:82px;
+	z-index:5;
+}
+div.image_friend_network span {
+	overflow:hidden;
+	display:block;
+	height:92px;
+	margin: 0px 0px;
+}
+div.image_friend_network img {
+	vertical-align:middle;
+}
+div.image_friend_network center.friend {
+	overflow:hidden;
+	height:30px;
+}
+.friend_invitations {
+	float:left;
+	margin: 0 0 4px 12px;
+}
+/* button >> */
+button.arrowr {
+	-moz-border-radius-topleft : 5px;
+	-moz-border-radius-bottomright : 5px;
+	-moz-border-radius-bottomleft : 5px;
+	-moz-border-radius-topright : 5px;
+	padding-left:20px;
+	padding-top:20px;
+	background-position:10px;
+	background-color:#E5EDF9;
+	border-color: #D4E2F6;
+	border-width: 1px;
+	display:block;
+	font-size: 100%;
+	line-height :130%;
+	vertical-align:middle;
+}
+/*including "arrowr" image*/
+button.arrowr {
+	background-image:url(images/2rightarrow.gif);
+	background-repeat:no-repeat;
+}
+/* button << */
+button.arrowl {
+	margin:0px;
+	-moz-border-radius-topleft : 5px;
+	-moz-border-radius-bottomright : 5px;
+	-moz-border-radius-bottomleft : 5px;
+	-moz-border-radius-topright : 5px;
+	padding-left:20px;
+	padding-top:20px;
+	background-position:10px;
+	background-color:#E5EDF9;
+	border-color: #D4E2F6;
+	border-width: 1px;
+	display:block;
+	font-size: 100%;
+	line-height :130%;
+	vertical-align:middle;
+}
+/*including "arrowl" image*/
+button.arrowl {
+	background-image:url(images/2leftarrow.gif);
+	background-repeat:no-repeat;
+}
+.u-m-answer {
+	float:left;
+	width:100%;
+}
+.u-m-answer p {
+	margin:2px;
+}
+.refresh {
+	background-image:url(images/refresh.png);
+	background-repeat:no-repeat;
+	padding-left:20px;
+	padding-bottom:2px;
+}
+.portal {
+	background-image:url(images/portal.png);
+	background-repeat:no-repeat;
+	padding-left:28px;
+	padding-bottom:10px;
+	padding-top:8px;
+}
+
+.legal-terms {
+	height:150px;
+	overflow:auto;
+	background-color:#eee;
+	width:500px;
+}
+
+
+
+/* UI improvements for 1.8.6.2 this should be move to the chamilo theme and reproduce in all CSS*/
+
+
+* {
+	outline :none;
+}
+input, select, textarea {	
+	-moz-border-radius-bottomleft:5px;
+	-moz-border-radius-bottomright:5px;
+	-moz-border-radius-topleft:5px;
+	-moz-border-radius-topright:5px;
+	-x-system-font:none;
+	border:1px solid #CCCCCC;
+	color:#666666;
+	font-family:Arial,Helvetica,sans-serif;
+	font-size:120%;
+	font-size-adjust:none;
+	font-stretch:normal;
+	font-style:normal;
+	font-variant:normal;
+	font-weight:normal;
+	line-height:normal;
+	padding:5px;
+}
+
+input[type="text"]:focus, input[type="password"]:focus, textarea:focus {
+	background-image:url(images/shadow.gif);
+}
+
+.independent_course_item a {
+	font-size:120%;
+}
+
+.session_course_item a {
+	font-size:120%;
+}
+
+
+#maincontent .courseslist li {
+	margin-bottom:8px;
+}
+
+a.read {	
+	font-weight:normal;
+}
+
+a.unread {	
+	
+}
+
+
+#inbox-wrapper {width:100%;}
+
+#inbox {width:90%;float:left;}
+
+#inbox-menu ul {
+	list-style-image:none;
+	list-style-position:outside;
+	list-style-type:none;
+	margin:0;
+	padding:0;
+	width:10%;
+	float:left;
+}
+
+#message-reply-link {
+	float:right;
+}
+
+.social-plugin-item {
+	float:left;
+	width:50%;
+	background-color:#ccc;
+	margin: 0px;
+}
+
+
+#social-plugins {
+	float:left;
+	background-color:#f00;
+	width:100%;
+	margin: 0px;
+	padding:2px;
+}
+
+.groups_grid_item {
+	width:80px;
+	float:left;
+	margin:5px;
+}
+
+.groups_grid_container {
+
+} 
+
+.message-item {
+	-moz-background-clip:border;
+	-moz-background-inline-policy:continuous;
+	-moz-background-origin:padding;
+	-moz-border-radius-bottomleft:8px;
+	-moz-border-radius-bottomright:8px;
+	-moz-border-radius-topleft:8px;
+	-moz-border-radius-topright:8px;
+	background:#eee none repeat scroll 0 0;
+	margin:0 0 5px;
+	padding:10px;
+}
+
+.message-topic {
+	-moz-background-clip:border;
+	-moz-background-inline-policy:continuous;
+	-moz-background-origin:padding;
+	-moz-border-radius-bottomleft:8px;
+	-moz-border-radius-bottomright:8px;
+	-moz-border-radius-topleft:8px;
+	-moz-border-radius-topright:8px;
+	background:#ccc none repeat scroll 0 0;
+	margin:0 0 5px;
+	padding:10px;
+
+}
+
+.message-group-title-topic {
+	font-size:180%;
+	margin:5px 0px 5px 0px;
+}
+.message-group-title {
+	font-size:120%;
+}
+
+.message-group-author {
+	margin:5px 0px 5px 0px;
+}
+
+.message-group-content {
+	line-height:150%
+}
+
+.view-message-content {
+	line-height:150%;
+	font-size:110%;
+}
+
+.actions {
+
+
+	background:#efefef;
+	border:1px solid #ccc;	
+	padding:2px;
+	margin-bottom: 5px;
+	vertical-align:middle;
+}
+
+.actions-title {
+
+	
+	background:#efefef;
+	border:1px solid #ccc;
+	padding:4px;
+	margin-bottom: 5px;
+	font-size:14px;
+	font-weight:bolder;
+	vertical-align:middle;
+}
+

+ 1072 - 0
main/css/chamilo/frames.css

@@ -0,0 +1,1072 @@
+/* Default Style Sheet for Dokeos  (in progress ...)
+   2004-07-18 by Wolfgang Schneider
+   (info@ws-webservice.de / webmaster@bibelcenter.de)
+   updated on 2005-02-25 by Olivier Brouckaert
+   (oli.brouckaert@dokeos.com)
+   update on 2005-03-01 by Wolfgang Schneider   
+   update on 2005-05-27 by Patrick Cool
+   */
+
+body {
+	font-family: verdana, arial, helvetica, sans-serif;
+	font-size: 12px;
+	color: #000;
+	margin: 10px;
+	padding: 0;
+	background-color: #fff;
+}
+img {
+	border: none;
+}
+#outerframe {
+	position: relative;  /* do not remove, fixes a bug in IE */
+	border: 1px solid #fff;
+	background-color: #fff;
+}
+/* Hides from IE5-mac \*/
+* html #outerframe {
+	height: 1%;
+}
+/* End hide from IE5-mac */
+
+/***************************************************** 
+ *  HEADER STYLES                                    *
+ *****************************************************/
+#header {
+	width: 100%;
+	padding: 0;
+	margin: 0;
+}
+/* Header 1: Containing title, portal and organization */
+#header1 {
+	font-size: 12px;
+	padding: 4px;
+	background-color: #264269;
+	color: #fff;
+	border-bottom: 1px solid white;
+}
+#header1 a {
+	color: #ffffff;
+	text-decoration: none;
+}
+#header1 a:hover {
+	text-decoration: underline;
+}
+#sitename {
+	margin: 0;
+	font-weight: bold;
+}
+#institution {
+	float: left;
+	font-weight: bold;
+}
+#my_courses {
+	float: right;
+	font-weight: bold;
+}
+/* Header 2: Containing My Courses, My Profile,... */
+#header2 {
+	font-size: 12px;
+	padding: 4px;
+	background-color: #4271B5;
+	color: #fff;
+	border-bottom: 1px solid white;
+}
+#header2 .banner_links {
+	margin: 0;
+}
+#header2 a {
+	text-decoration: none;
+	color: #fff;
+	background: transparent;
+	font-weight:normal;
+	font-size: 12px;
+}
+#header2 input.logout {
+	/* makes an input appear like a link in this header */	
+	margin: 0;
+	padding: 0;
+	background-color: transparent;
+	border: none;
+	color: #fff;
+	font-size: 12px;
+	font-weight:normal;
+	font-family: verdana, arial, helvetica, sans-serif;
+}
+#header2 a:hover, #header2 input.logout:hover {
+	border-bottom: 1px solid #fff;
+}
+#logout {
+	float: right;
+	width:20%;
+	text-align:right;
+}
+/* Header 3: Containing breadcrumbs, online users, student/teacher view, help */
+#header3 {
+	position: relative; /* to avoid the IE peekabo bug*/
+	font-size: 12px;
+	font-weight: normal;
+	padding: 4px;
+	background-color: #90AFDD;
+	color: #fff;
+	border-bottom: 1px solid white;
+}
+#header3 a {
+	color: #ffffff;
+	text-decoration: none;
+	font-weight:normal;
+}
+#header3 a:hover {
+	text-decoration: underline;
+}
+/* Header3Right: online users, student/teacher view, help */
+#Header3Right ul {
+	position: relative; /* to avoid the IE peekabo bug*/
+	float: right;
+	width: 50%;
+	margin: 0;
+	padding: 0;
+	list-style-type: none;
+	text-align: right;
+}
+#Header3Right ul li {
+	display: inline;
+}
+#Header3Right ul li a {
+	padding: 4px 6px 4px 4px;
+	color:#fff;
+}
+/* Header 4: not used */
+#header4 {
+	background-color: #fff;
+	color: #009;
+	padding: 4px;
+	margin-bottom: 2px;
+}
+#header4 a {
+	color: #4171b5;
+}
+#header4 a:hover {
+	text-decoration: none;
+	color: #f00;
+}
+/* The tool shortcuts */
+#toolshortcuts {
+	text-align: right;
+}
+/***************************************************** 
+ *  FOOTER STYLES                                    *
+ *****************************************************/
+#footer {
+	padding: 8px;
+	border-top: 1px solid #4171B5;
+	background-color: #E5EDF9;
+	font-size: 12px;
+}
+#footer .copyright {
+	float: right;
+}
+/***************************************************** 
+ *  MAIN STYLES                                      *
+ *****************************************************/
+#main {
+	position: relative; /* to avoid the IE peekabo bug*/
+	margin: 0px auto;
+	margin-top: 10px;
+	width: 98%;
+	padding: 0px 10px 10px 10px;
+	background-color: #fff;
+	min-height: 320px;
+}
+/* for content section in main index.php file */
+.maincontent {
+	float: left;
+	width: 78%;
+	padding: 4px;
+	background-color: #fff;
+}
+/* "menu" classes for menu/navigation section in main index.php  */
+.menu {
+	float: right;
+	width: 20%;
+	padding: 0 0 6px 0;
+	background-color: #E5EDF9;
+	border: 1px solid #4171B5;
+}
+.menucaption {
+	font-size: 12px;
+	font-weight: bold;
+	padding-left: 12px;
+}
+.menusection {
+	width: auto;
+	margin: 24px 6px 0 6px;
+	padding-left: 10px;
+	border: 1px solid #4171B5;
+}
+.menusectioncaption {
+	position: relative;
+	top: -9px;
+	background-color: #E5EDF9;
+	font-size: 12px;
+	padding: 0 8px 0 4px;
+}
+.menulist {
+	list-style: none;
+	margin: 0 0 12px 0;
+	padding: 0;
+}
+#lang_form {
+	text-align: left;
+	font-size: 12px;
+	margin: 2px 0 10px 0;
+	padding: 2px;
+}
+#lang_form input, #lang_form select {
+	font-size: 12px;
+}
+#loginform label {
+	font-size: 12px;
+	margin: 4px 6px;
+}
+#loginform input {
+	display: block;
+	font-size: 13px;
+	margin: 4px 6px;
+}
+#login_fail {
+	margin: 0 6px 6px 6px;
+	padding: 4px;
+	border: 1px solid #f00;
+	background-color: #fff;
+	font-size: 12px;
+	color: #f00;
+}
+/*** layout divs for course and tool pages (being tested in some pages) ****/  
+#contentfloatholder {/* also makes the right "sliding" tab  */
+	/*background: url(../pics/sidebar-r.gif) repeat-y 100% 0;
+background: url(../pics/bg_fountain.jpg) no-repeat 100% 0; */
+float: left;
+	width: 100%;
+	position: relative;
+}
+#contentfloatholder:after {
+	/* this is for NN6 to clear floats */
+content: ".";
+	display: block;
+	height: 0px;
+	clear: both;
+	visibility: hidden;
+}
+#centerwrap {
+	float: left;
+	width: 100%;
+	margin-right: -95%;/* this needs to be less than 100% for Moz/Mac which thinks 
+         it's empty otherwise. The difference is made up by putting a 
+         negative left margin on the left float:
+	   Note IE/Mac doesn't like this method ~ it wants the 100% so it can 
+	   be fed in using IE only CSS below becasue IE/Win also works with the 100% method.  
+	*/
+}
+#center {
+	margin: 0 0 0 180px;
+	padding: 10px 0 40px 0;
+	min-height: 300px;
+}
+#left {
+	float: left;
+	width: 180px;
+	padding: 20px 0 0 0;
+	margin-left: -5%; /* the difference to make the left colum appear flush left */
+}
+/* --- left navigation box menu as a definition list  --- */
+#leftnavbox {
+	margin: 0;
+	padding: 0;
+	float:left;
+}
+#leftnavbox dl {
+	width: 160px;
+	margin: 12px auto 4px auto;
+	padding: 0 0 10px 0;
+	background: transparent;
+	font-size: 12px;
+	text-align: center;
+}
+#leftnavbox dt {
+	margin: 0;
+	padding: 1px 2px;
+	font-weight: bold;
+	font-size: 12px;
+	text-align: center;
+	color: #000;
+	border-bottom: 1px solid #fff;
+	background: transparent;
+}
+#leftnavbox dd {
+	margin: 0;
+	padding: 0;
+	color: #009;
+	text-align: left;
+	border-bottom:1px solid #fff;
+	background: #ccf;
+}
+#leftnavlist a, #leftnavlist a:link {
+	display: block;
+	color: #fff;
+	text-decoration: none;
+	padding: 2px 5px 2px 10px;
+	background: #4171B5;
+	width:140px;
+	border: 1px solid #009;
+}
+#leftnavlist a:visited {
+	color:#eee;
+	text-decoration: none;
+	display: block;
+	padding: 2px 5px 2px 10px;
+	background: #4171B5;
+	color: #eee;
+	width:140px;
+}
+#leftnavlist a:hover {
+	background: #fff;
+	color:#4171B5;
+	display: block;
+}
+/* --- end of left side definition list menu section  --- */ 
+
+
+ 
+/* various sections in course-home.php file  */
+#toolremove {
+	width: 40%;
+	color: #f00;
+	font-weight: bold;
+	margin: 10px auto;
+	padding: 10px;
+	border: 2px solid #f00;
+}
+#courseintro {
+	clear: both;
+	width: 80%;
+	margin: 10px auto;
+	padding: 10px;
+	border-bottom: 1px solid #4171B5;
+}
+#courseintro_icons {
+	clear: both;
+	width: 80%;
+	margin: 10px auto;
+}
+.everybodyview {
+	position: relative; /* to avoid the IE peekabo bug ?*/
+	width: 80%;
+	margin: 10px auto;
+	padding: 10px;
+}
+.courseadminview, .platformadminview {
+	position: relative;
+	width: 80%;
+	margin: 25px auto 10px;
+	padding: 10px;
+	border: 1px solid #4171B5;
+}
+.viewcaption {
+	position: relative;
+	top: -20px;
+	font-size: 12px;
+	font-weight: bold;
+	color: #4171B5;
+	background-color: #fff;
+	padding: 0 4px;
+}
+/***********************************/
+
+/* ===================================================
+					AGENDA STYLES
+===================================================*/
+
+/* ---------------------------------------------------
+	check if these are still used or not
+-----------------------------------------------------*/
+#agenda {
+	width: 100%;
+	margin: 0 auto;
+	border: 1px solid #4171B5;
+	border-collapse: collapse;
+}
+.agenda_month_divider {
+	background-color: #4171B5;
+	font-weight: bold;
+	font-size: 12px;
+	color: #fff;
+	text-align: center;
+}
+#agenda #title a {
+	color: #fff;
+}
+#agenda .agendaitem {
+	font-size: 12px;
+}
+#smallcalendar #title {
+	background-color: #4171B5;
+	font-weight: bold;
+	padding: 2px;
+	color: #fff;
+	text-align: center;
+	font-size: 11px;
+}
+#smallcalendar #title a {
+	color: #fff;
+}
+#agenda_select {
+	list-style: none;
+	border: 0px solid green;
+	margin: 30px 0 0 0;
+	padding: 0 0 0 10px;
+}
+/* ---------------------------------------------------
+	styles for the agenda (day, week, month view)
+-----------------------------------------------------*/
+#agenda_list {
+	width: 100%;
+	margin: 0 auto;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+/*The caption of the calendar (displays the month and the << and >> links*/ 
+#agenda_list #title {
+	background-color: #4171B5;
+	font-weight: bold;
+	font-size: 12px;
+	color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	text-align: center;
+	border: 1px solid #264269;
+}
+#agenda_list #title a:link, #agenda_list #title a:visited {
+	background-color: #4171B5;
+	font-weight: bold;
+	font-size: 12px;
+	color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	text-align: center;
+}
+#agenda_list #title a:hover {
+	background-color: #4171B5;
+	font-weight: bold;
+	font-size: 12px;
+	color: #ff0000;
+	text-align: left;
+	padding: 2px 10px;
+	text-align: center;
+}
+/* The cells with the name of the days of the weeks (mon->sun)*/
+#agenda_list .weekdays {
+	background-color: #D3DFF1;
+	text-align: center;
+	font-weight: bold;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+}
+/* The cells for the days (1->31) */ 
+#agenda_list .days_week {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #f5f5f5;
+}
+#agenda_list .days_weekend {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #e6e6e6;
+}
+#agenda_list .days_today {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #FFCA8D;
+	color: #CC3300;
+	font-weight: bold;
+}
+/* text in the cells: display of agenda items (visible)*/
+#agenda_list .data {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+#agenda_list .datanotbold {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+#agenda_list .text {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+/*text in the cells: display of agenda items (invisible)*/   
+#agenda_list .data_hidden {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+	color: #999999;
+}
+#agenda_list .datanotbold_hidden {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+	color: #999999;
+}
+#agenda_list .text_hidden {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+	color: #999999;
+}
+/*text in the cells: display of agenda items (highlighted)*/    
+#agenda_list .datanow {
+	background-color: #FFCC00;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+#agenda_list .datanotboldnow {
+	background-color: #FFCC00;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+#agenda_list .textnow {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+/* ---------------------------------------------------
+	styles for the mini agenda
+-----------------------------------------------------*/ 
+#smallcalendar {
+	width: 100%;
+	margin: 0 auto;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+#smallcalendar .weekdays {
+	background-color: #D3DFF1;
+	text-align: center;
+	font-size: 11px;
+	font-weight: bold;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+#smallcalendar .days_week {
+	background-color: #f5f5f5;
+	text-align: center;
+	font-size: 11px;
+	border-collapse: collapse;
+}
+#smallcalendar .days_weekend {
+	background-color: #e6e6e6;
+	text-align: center;
+	font-size: 11px;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+#smallcalendar .days_today {
+	width: 12%;
+	text-align: center;
+	font-size: 11px;
+	border: 1px solid #FA8500;
+	border-collapse: collapse;
+	background-color: #FFCA8D;
+}
+/* ---------------------------------------------------
+	styles for the personal agenda
+-----------------------------------------------------*/
+.personal_agenda {
+	color: #008000;
+}
+.personal_agenda a:link, .personal_agenda a:visited {
+	color: #008000;
+}
+a.personal_agenda:link, a.personal_agenda:visited {
+	color: #008000;
+}
+.personal_agenda a:hover, .personal_agenda a:hover {
+	color: #666666;
+}
+a.personal_agenda:hover, a.personal_agenda:hover {
+	color: #666666;
+}
+/* normal and erro message-box */
+.normal-message, .error-message {
+	position: relative;
+	margin: 10px auto;
+	margin-left: -250px;
+	width: 500px;
+	left: 50%;
+	right: 50%;
+	border-width: 1px;
+	border-style: solid;
+	padding: 5px;
+}
+.normal-message {
+	border: 1px solid #FF8001;
+	color: #000;
+	background-color: #FDC77E;
+}
+.error-message {
+	border: 1px solid #3F70AC;
+	color: #000;
+	background-color: #FDC273;
+}
+#message {
+	margin: 0 auto;
+	text-align: center;
+}
+#message select {
+	margin: 10px 0;
+	width: 220px;
+}
+#message textarea {
+	margin: 10px 0;
+}
+#message td {
+	padding: 4px;
+}
+/* styles from the document.php file */
+.comment {
+	margin-left: 30px;
+}
+.invisible {
+	color: #999;
+}
+.invisible a:link, .invisible a:visited {
+	color: #999;
+}
+a.invisible:link, a.invisible:visited {
+	color: #999;
+}
+/* styles from the upload.php file */
+dl.upload_option {
+	margin: 1em 0;
+	padding: 0;
+}
+.upload_option dt {
+	font-weight:bold;
+	margin:0;
+}
+.upload_option dd {
+	margin:0;
+}
+/* styles from dropbox.php file */
+.dropbox_detail {
+	font-size: small
+}
+.dropbox_date {
+	font-style: italic
+}
+.dropbox_person {
+	font-weight: bold
+}
+.dropbox_listTitle {
+	color: #000000;
+}
+.dropbox_feedback {
+	font-size: x-small;
+	height: 50px;
+	width: 200px;
+	overflow: auto
+}
+.dropbox_feedbacks {
+	height: 250px;
+	width: 100%;
+	overflow: auto
+}
+/* styles for chat / conference tools */
+#chat_entermessage {
+	background-color: #D6E5FA;
+	border-top: 1px solid #4171B5;
+	padding: 5px;
+	margin: 0;
+}
+/* styles for general formatting */
+.clear {
+	clear: both;
+	line-height: 0;
+	height: 0;
+}
+p, blockquote, ol, ul {
+	font-size: 12px;
+}
+h1 {
+	font-size: 21px;
+}
+h2 {
+	font-size: 18px;
+}
+h3 {
+	font-size: 15px;
+	margin-top:0px;
+	padding-top:0px;
+}
+h4 {
+	font-size: 12px;
+}
+h5, h6 {
+	font-family: verdana, arial, helvetica, sans-serif;
+}
+/* the following for regular <a> elements */
+a:link {
+	text-decoration: none;
+	font-weight : bold;
+	color : #4171b5;
+}
+a:visited {
+	text-decoration: none;
+	font-weight : bold;
+	color : #4171b5;
+}
+a:hover {
+	text-decoration: none;
+	color: red;
+	font-weight: bold
+}
+a:active {
+	text-decoration: none;
+	font-weight : bold;
+	color : #f00;
+}
+input.link_alike {
+	background-color: #FFFFFF;
+	border-width: 0px;
+	color: #4171b5;
+	font-weight: bold;
+	text-align: left;
+	padding: 0px;
+	margin: 0px;
+}
+input.link_alike:hover {
+	background-color: #FFFFFF;
+	border-width: 0px;
+	color: #FF0000;
+	font-weight: bold;
+	text-align: left;
+	padding: 0px;
+	margin: 0px;
+}
+/* the following for the greyed out elements */
+a.nobold:link, a.nobold:visited, a.nobold:active {
+	font-weight: normal;
+	color: #999;
+	margin: 0 0 0 25px;
+}
+a.nobold:hover {
+	font-weight: normal;
+	color: #999;
+	text-decoration: underline;
+	margin: 0 0 0 25px;
+}
+.note {
+	margin: 6px;
+	font-size: 12px;
+	line-height: 14px;
+	font-family: verdana, arial, helvetica, sans-serif;
+	background-color: #FFF089;
+	color: #4171B5;
+	border: 1px solid #4171B5;
+	padding: 4px;
+}
+.alternativeBgLight {
+	background-color: #f5f5f5;
+	border: 1px solid #4171B5;
+	border-collapse: collapse;
+}
+.alternativeBgDark {
+	background-color: #ccf;
+	border: 1px solid #4171B5;
+	border-collapse: collapse;
+}
+.myagendatoday {
+	background-color: #FFCA8D;
+	border-collapse: collapse;
+	font-family: verdana, arial, helvetica, sans-serif;
+	color: #CC3300;
+	font-weight: bold;
+}
+/* Form elements - some general styling*/
+select, textarea {
+	color : #000;
+	border: 1px solid #000;
+}
+input.checkbox {
+	border-width: 0;
+}
+input.mainoption {
+	font-weight : bold;
+}   /* Main submit button      */
+input.liteoption {
+	font-weight : normal;
+} /* None-bold submit button */
+select, input[type=checkbox], input[type=radio], input[type=button], input[type=submit] {
+	cursor:	pointer;
+	font-size: 12px;
+}
+input[text] {
+	font-size: 12px;
+}
+/************************************************************
+  styles below here are not necessarily used in the current
+	release and the CVS files, they are from earlier versions,
+	and have been left untouched for anyone needing them in
+	their own platform ...
+*************************************************************/
+.topBanner a:link, .topBanner a:active, .topBanner a:visited {
+	text-decoration:none;
+	color:white;
+}
+.topBanner table {
+	text-decoration:none;
+}
+.topBanner a:hover {
+	text-decoration:underline;
+}
+.topBanner td {
+	border-top: solid White 1px;
+}
+.alternativeBgLight {
+	background-color: #f5f5f5;
+}
+.alternativeBgDark {
+	background-color: #e6e6e6
+}
+.forms {
+	letter-spacing: normal;
+	text-align: justify;
+	text-indent: 3pt;
+	word-spacing: normal;
+	padding: 2px 5px;
+}
+.formsTips {
+	text-align: justify;
+	text-indent: 15pt;
+	word-spacing: normal;
+}
+/*
+input.forms	{ letter-spacing: normal; text-align: justify; text-indent: 3pt;	word-spacing: normal;
+padding-top: 0px;	padding-right: 0px;	padding-bottom: 0px;	padding-left: 0px;}
+*/
+.warn {
+	border: thin double Silver;
+	margin-left: 15px;
+	margin-right: 15px;
+	font-family: serif;
+	color: Red;
+	padding-left: 25px;
+}
+.small {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px
+}
+.xsmall {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px
+}
+.xxsmall {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 9px
+}
+/***************************************************** 
+ *  DATA TABLE STYLES                                *
+ *****************************************************/
+.cell_header {
+	background-color: #EEEEFF;
+	font-weight:bold;
+	text-align:left;
+	padding-left:5px;
+}   /* header cell in data table in tools */
+.data_table {
+	border-collapse: collapse;
+	width: 100%;
+	padding: 5px;
+}
+.data_table th {
+	padding-right: 20px;
+	border: 1px solid gray;
+	background-color: #E5EDF9;
+}
+.data_table tr.row_odd {
+	background-color: #fafafa;
+}
+.data_table tr.row_odd:hover, .data_table tr.row_even:hover {
+	background-color: #f0f0f0;
+}
+.data_table tr.row_even {
+	background-color: #fff;
+}
+.data_table td {
+	padding: 5px;
+	vertical-align: top;
+	border-bottom: 1px solid #b0b0b0;
+	border-right: 1px dotted #e1e1e1;
+	border-left: 1px dotted #e1e1e1;
+}
+/* admin page tool list definitions */
+.tool_list dt {
+	font-weight: bold;
+}
+.tool_list dd {
+	margin: 0;
+	padding: 4px 0 0 10px;
+}
+/* divs for category list / platform news on home page */
+.home_cats {
+	width: 45%;
+	float: left;
+	margin: 0;
+	padding: 0px;
+	padding-top: 8px;
+	background: #fff;
+}
+.home_news {
+	width: 45%;
+	float: right;
+	margin: 0;
+	padding: 0px;
+	padding-top: 8px;
+	background: #fff;
+}
+label.left {
+	float: left;
+	width: 15em;
+	margin: 0 0 0.5em 0;
+}
+form br {
+	clear: both;
+}
+/* Fix for alignment problem in IE-Win browsers  */
+/*  Hide from IE5-mac. Only IE-win sees this. \*/
+* html .label {
+	margin-right: 10px;
+}
+* html .data {
+	height: 1%;
+	margin-left: 0;
+}
+/* End hide from IE5/mac */
+
+.radio, .checkbox {
+	margin: 0;
+	padding: 0;
+	border: none;
+	background-color: transparent;
+}
+.required {
+	color: #f00;
+	font-weight: bold;
+}
+/* Admin section */
+div.admin_section {
+	width: 40%;
+	float: left;
+	padding: 5px;
+	margin: 10px 20px;
+}
+div.admin_section h4 {
+	margin: 0;
+	border-bottom: 1px solid gray;
+	width: 100%;
+}
+.user_course_category {
+	background-color: #efefef;
+	border: 1px solid #666;
+	font-weight: bold;
+	color: #666;
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+}
+/* Styles for the Dokeos Config Settings of the platform admin section*/
+.sectiontitle {
+	background-color: #EFEFEF;
+	border: 1px solid #cccccc;
+	font-weight: bold;
+	color: #666666;
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+	font-size: 11px;
+}
+.sectioncomment {
+	color: #000000;
+	margin: 5px;
+	padding: 5px;
+	font-size: 11px;
+}
+.sectionvalue {
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+}
+/* New Announcements Tool */
+.announcements_datum {
+	font-size: 12px;
+	font-weight: italic;
+	color: #666666;
+}
+/* System announcements on homepage */
+div.system_announcements {
+}
+div.system_announcements h3 {
+}
+div.system_announcements ul {
+	list-style-type: none;
+}
+div.system_announcement {
+	margin: 5px;
+}
+div.system_announcement_title {
+}
+div.system_announcement_content {
+	margin-left: 20px;
+	border-left: 1px solid gray;
+	padding-left: 5px;
+}

BIN
main/css/chamilo/images/2leftarrow.gif


BIN
main/css/chamilo/images/2rightarrow.gif


BIN
main/css/chamilo/images/TGSS_header.jpg


BIN
main/css/chamilo/images/bar_1.gif


BIN
main/css/chamilo/images/bar_1m.gif


BIN
main/css/chamilo/images/bar_1r.gif


BIN
main/css/chamilo/images/bar_1u.gif


BIN
main/css/chamilo/images/bg-boton.png


BIN
main/css/chamilo/images/bg-footer.gif


BIN
main/css/chamilo/images/bg-header1.gif


BIN
main/css/chamilo/images/bg-header4.png


BIN
main/css/chamilo/images/bg-main.png


BIN
main/css/chamilo/images/bg-menu.png


BIN
main/css/chamilo/images/bgmenusup.png


BIN
main/css/chamilo/images/bullet.gif


BIN
main/css/chamilo/images/button_accept.gif


BIN
main/css/chamilo/images/button_add.gif


BIN
main/css/chamilo/images/button_back.gif


BIN
main/css/chamilo/images/button_back.jpg


BIN
main/css/chamilo/images/button_delete.gif


BIN
main/css/chamilo/images/button_login.gif


BIN
main/css/chamilo/images/button_minus.gif


BIN
main/css/chamilo/images/button_next.gif


BIN
main/css/chamilo/images/button_plus.gif


BIN
main/css/chamilo/images/button_refresh.gif


BIN
main/css/chamilo/images/button_search.gif


BIN
main/css/chamilo/images/button_upload.gif


BIN
main/css/chamilo/images/fondoFooter.jpg


BIN
main/css/chamilo/images/fondoHeader2.jpg


BIN
main/css/chamilo/images/fondoHeader3.jpg


BIN
main/css/chamilo/images/fondoNav.jpg


BIN
main/css/chamilo/images/footer.jpg


BIN
main/css/chamilo/images/loading.gif


BIN
main/css/chamilo/images/logo-institucion.png


BIN
main/css/chamilo/images/logoMouse.jpg


BIN
main/css/chamilo/images/portal.png


BIN
main/css/chamilo/images/refresh.png


BIN
main/css/chamilo/images/salir.gif


BIN
main/css/chamilo/images/shadow.gif


BIN
main/css/chamilo/images/systemenouvelles.jpg


BIN
main/css/chamilo/images/tab.png


BIN
main/css/chamilo/images/tab_center.gif


BIN
main/css/chamilo/images/tab_left-hover.gif


BIN
main/css/chamilo/images/tab_left.gif


BIN
main/css/chamilo/images/tab_right-hover.gif


BIN
main/css/chamilo/images/tab_right.gif


BIN
main/css/chamilo/images/tab_right.jpg


BIN
main/css/chamilo/images/tab_rigth.gif


+ 96 - 0
main/css/chamilo/jquery.tabs.css

@@ -0,0 +1,96 @@
+/* Caution! Ensure accessibility in print and other media types... */
+@media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */
+.tabs-hide {
+	display: none;
+}
+}
+
+/* Hide useless elements in print layouts... */
+@media print {
+.tabs-nav {
+	display: none;
+}
+}
+/* Skin */
+.tabs-nav {
+	list-style: none;
+	margin: 0;
+	padding: 0 0 0 4px;
+}
+.tabs-nav:after { /* clearing without presentational markup, IE gets extra treatment */
+	display: block;
+	clear: both;
+	content: " ";
+}
+.tabs-nav li {
+	float: left;
+	margin: 0 0 0 1px;
+	min-width: 84px; /* be nice to Opera */
+}
+.tabs-nav a, .tabs-nav a span {
+    display: block;
+    padding: 0 10px;
+    /*background: url(images/tab.png) no-repeat;*/
+}
+.tabs-nav a {
+    position: relative;
+    top: 1px;
+    z-index: 2;
+    padding-left: 0;
+    /*color: #fff;*/
+    font-size: 12px;
+    font-weight: bold;
+    line-height: 2;
+    text-align: center;
+    text-decoration: none;
+    white-space: nowrap; /* required in IE 6 */    
+}
+.tabs-nav .tabs-selected a {
+    /*color: #fff;*/
+}
+.tabs-nav .tabs-selected a, .tabs-nav a:hover, .tabs-nav a:focus, .tabs-nav a:active {
+	background-position: 100% -150px;
+	outline: 0; /* prevent dotted border in Firefox */
+}
+.tabs-nav a, .tabs-nav .tabs-disabled a:hover, .tabs-nav .tabs-disabled a:focus, .tabs-nav .tabs-disabled a:active {
+	background-position: 100% -100px;
+}
+.tabs-nav a span {
+	width: 64px; /* IE 6 treats width as min-width */
+	min-width: 64px;
+	height: 18px; /* IE 6 treats height as min-height */
+	min-height: 18px;
+	padding-top: 6px;
+	padding-right: 0;
+}
+*>.tabs-nav a span { /* hide from IE 6 */
+	width: auto;
+	height: auto;
+}
+.tabs-nav .tabs-selected a span {
+	padding-top: 7px;
+}
+.tabs-nav .tabs-selected a span, .tabs-nav a:hover span, .tabs-nav a:focus span, .tabs-nav a:active span {
+	background-position: 0 -50px;
+}
+.tabs-nav a span, .tabs-nav .tabs-disabled a:hover span, .tabs-nav .tabs-disabled a:focus span, .tabs-nav .tabs-disabled a:active span {
+	background-position: 0 0;
+}
+.tabs-nav .tabs-selected a:link, .tabs-nav .tabs-selected a:visited, .tabs-nav .tabs-disabled a:link, .tabs-nav .tabs-disabled a:visited { /* @ Opera, use pseudo classes otherwise it confuses cursor... */
+	cursor: text;
+}
+.tabs-nav a:hover, .tabs-nav a:focus, .tabs-nav a:active { /* @ Opera, we need to be explicit again here now... */
+	cursor: pointer;
+}
+.tabs-nav .tabs-disabled {
+	opacity: .4;
+}
+.tabs-container {
+    /*border-top: 1px solid #97a5b0;*/
+    padding: 1em 8px;
+    /*background: #fff; declare background color for container to avoid distorted fonts in IE while fading */
+}
+.tabs-loading em {
+    padding: 0 0 0 20px;
+    /*background: url(images/loading.gif) no-repeat 0 50%;*/
+}

+ 217 - 0
main/css/chamilo/learnpath.css

@@ -0,0 +1,217 @@
+div.text {
+	margin-left : 6;
+	margin-right : 6;
+	margin-top : 5;
+	margin-bottom : 5;
+	text-align : justify;
+}
+span.messagesmall {
+	font-style : italic;
+	color : Red;
+}
+/* newscorm/learnpath */ 
+
+div.lp_actions {
+	background:#F8F8F8;
+	border-bottom:1px solid #999999;
+	padding:3px;
+}
+div.lp_actions img {
+	margin-right:5px;
+}
+div.lp_small_form {
+	background:#F8F8F8;
+	border:1px solid #999999;
+	padding:10px;
+}
+div.lp_small_form input {
+	font-size:10px;
+}
+div.lp_manipulate {
+	background:#F8F8F8;
+	border-bottom:1px dotted #999999;
+	margin-bottom:0px;
+	padding:3px 0 3px 10px;
+}
+div.lp_manipulate a {
+	padding-right:10px;
+}
+div.lp_message {
+	background:#FEC880;
+	border:1px solid #E28C15;
+	font-size:12px;
+	padding:10px;
+}
+div.lp_resource_header {
+	cursor: pointer;
+	background:#F0F0F0;
+	border:1px solid #999999;
+	font-weight:bold;
+	padding:10px;
+	width:350px;
+}
+div.lp_resource_header_end {
+	background:#F0F0F0;
+	border:1px solid #999999;
+	font-weight:bold;
+	padding:10px;
+	width:350px;
+}
+div.lp_resource_elements {
+	background:#FAFAFA;
+	border:1px solid #999999;
+	border-bottom:0;
+	display:none;
+	padding:5px 10px;
+	width:350px;
+}
+div.lp_resource_elements_end {
+	background:#FAFAFA;
+	border:1px solid #999999;
+	border-top: 0px;
+	display:none;
+	padding:5px 10px;
+	width:350px;
+}
+div.lp_resource_elements div {
+	padding:3px;
+}
+div.lp_tree {
+	height:100%;
+	padding:3px 10px 3px 0;
+	overflow-x : auto;
+	overflow-y : scroll;
+	width:230px;
+}
+hr {
+	background:#999999;
+	border:0;
+	color:#999999;
+	height:1px;
+	margin:10px auto;
+	width:75%;
+}
+option.bottom {
+	border-top:1px solid #999999;
+	margin-top:2px;
+	padding-top:2px;
+}
+option.top {
+	border-bottom:1px solid #999999;
+	margin-bottom:2px;
+	padding-bottom:2px;
+}
+p.lp_action {
+	margin:5px 0;
+}
+p.lp_text {
+	margin-top:0px;
+}
+p.lp_title {
+	font-weight:bold;
+	margin-top:5px;
+	padding-left:7px;
+}
+table.lp_build {
+	font-size:12px;
+	height:400px;
+	width:100%;
+}
+table.lp_build td {
+	vertical-align:top;
+}
+table.lp_build td.tree {
+	border-right:1px solid #999999;
+	width:240px;
+}
+table.lp_build td.workspace {
+	padding: 0px;
+	padding-left:5px;
+	width:auto;
+}
+table.lp_form {
+	font-size:12px;
+	margin:0 10px;
+	width:auto;
+}
+table.lp_form td {
+	height:25px;
+	padding:5px;
+	vertical-align:top;
+	width:auto;
+}
+table.lp_form td.label {
+	padding-top:7px;
+	text-align:right;
+}
+table.lp_form td.radio {
+	width:300px;
+}
+table.lp_form td.exercise {
+	width:50px;
+}
+table.lp_form th {
+	background:#F8F8F8;
+	border-bottom:1px solid #999999;
+	border-top:1px solid #999999;
+}
+table.lp_overview th.exercise {
+	width:50px;
+}
+table.lp_form input, table.lp_form select, table.lp_form textarea {
+	background:#F8F8F8;
+	border:1px solid #999999;
+	font-family:Arial, Verdana, Helvetica, sans-serif;
+	font-size:12px;
+	padding:1px 2px;
+	width:300px;
+}
+table.lp_form td.radio input, table.lp_form td.exercise input {
+	width:auto;
+}
+table.lp_form .small_form {
+	background:#FFFFFF;
+}
+table.lp_form select {
+	padding:0;
+}
+table.lp_form input.button {
+	width:75px;
+}
+table.lp_overview {
+	font-size:12px;
+	width:100%;
+}
+table.lp_overview td {
+	border-bottom:1px solid #999999;
+	border-top:1px solid #999999;
+	height:20px;
+	padding:3px;
+	vertical-align:middle;
+	width:auto;
+}
+table.lp_overview td.title {
+	width:200px;
+}
+table.lp_overview td.actions {
+	text-align:center;
+	width:100px;
+}
+table.lp_overview td.move {
+	text-align:center;
+	width:50px;
+}
+table.lp_overview th {
+	background:#FFFFFF;
+	padding-left:3px;
+	text-align:center;
+}
+table.lp_overview tr {
+	background:#F8F8F8;
+}
+table.lp_overview tr:hover {
+	background:#E5EDF9;
+}
+table.lp_overview img {
+	margin-left:3px;
+}

+ 917 - 0
main/css/chamilo/print.css

@@ -0,0 +1,917 @@
+/* Print Style Sheet for Dokeos  (in progress ...)
+   first default style sheet
+   2004-07-18 by Wolfgang Schneider
+   (info@ws-webservice.de / webmaster@bibelcenter.de)
+   updated on 2005-02-25 by Olivier Brouckaert
+   (oli.brouckaert@dokeos.com)
+   update on 2005-03-01 by Wolfgang Schneider
+   update on 2005-05-27 by Patrick Cool
+   update to print.css on 2005-01-05 by Jeroen Coupe
+   */
+
+body {
+	font-family: arial, verdana, helvetica, sans-serif;
+	font-size: 12px;
+	color: #000;
+	margin: 0;
+	padding: 0;
+	background-color: #fff;
+}
+img {
+	border: none;
+}
+#outerframe {
+	position: relative;  /* do not remove, fixes a bug in IE */
+	border: 1px solid #fff;
+	background-color: #fff;
+}
+/* Hides from IE5-mac \*/
+* html #outerframe {
+	height: 1%;
+}
+/* End hide from IE5-mac */
+
+/*****************************************************
+ *  HEADER STYLES                                    *
+ *****************************************************/
+
+
+#my_courses {
+	background-color: #fff;
+	color: #009;
+}
+/*show the institution*/
+#header1 {
+	padding: 2px;
+	float: right;
+}
+#my_courses {
+	display: none;
+}
+#header2 {
+	display: none;
+}
+#header3 {
+	display: none;
+}
+/* show the way to the printed document (breadcrumbs)*/
+#header4 {
+	padding: 2px;
+	border-bottom: 1px solid #4171B5;
+}
+#header4 a {
+	color: #4171b5;
+}
+#toolshortcuts {
+	display:none;
+}
+/*****************************************************
+ *  FOOTER STYLES                                    *
+ *****************************************************/
+#footer {
+	padding: 8px;
+	border-top: 1px solid #4171B5;
+	background-color: #E5EDF9;
+	font-size: 12px;
+}
+#footer .copyright {
+	float: right;
+}
+/*****************************************************
+ *  MAIN STYLES                                      *
+ *****************************************************/
+#main {
+	position: relative; /* to avoid the IE peekabo bug*/
+	margin: 0px auto;
+	margin-top: 10px;
+	width: 98%;
+	padding: 0px 10px 10px 10px;
+	background-color: #fff;
+	min-height: 320px;
+}
+/* for content section in main index.php file */
+.maincontent {
+	float: left;
+	width: 78%;
+	padding: 4px;
+	background-color: #fff;
+}
+/* "menu" doesn't show in printed version*/
+.menu {
+	display: none;
+}
+#lang_form {
+	text-align: left;
+	font-size: 12px;
+	margin: 2px 0 10px 0;
+	padding: 2px;
+}
+#lang_form input, #lang_form select {
+	font-size: 12px;
+}
+#formLogin label {
+	font-size: 12px;
+	margin: 4px 6px;
+}
+#formLogin input {
+	font-size: 13px;
+	margin: 4px 6px;
+}
+#login_fail {
+	margin: 0 6px 6px 6px;
+	padding: 4px;
+	border: 1px solid #f00;
+	background-color: #fff;
+	font-size: 12px;
+	color: #f00;
+}
+/*** layout divs for course and tool pages (being tested in some pages) ****/
+#contentfloatholder {/* also makes the right "sliding" tab  */
+	/*background: url(../pics/sidebar-r.gif) repeat-y 100% 0;
+background: url(../pics/bg_fountain.jpg) no-repeat 100% 0; */
+float: left;
+	width: 100%;
+	position: relative;
+}
+#contentfloatholder:after {
+	/* this is for NN6 to clear floats */
+content: ".";
+	display: block;
+	height: 0px;
+	clear: both;
+	visibility: hidden;
+}
+#centerwrap {
+	float: left;
+	width: 100%;
+	margin-right: -95%;/* this needs to be less than 100% for Moz/Mac which thinks
+         it's empty otherwise. The difference is made up by putting a
+         negative left margin on the left float:
+	   Note IE/Mac doesn't like this method ~ it wants the 100% so it can
+	   be fed in using IE only CSS below becasue IE/Win also works with the 100% method.
+	*/
+}
+/*no navigation options need to be showed in the print version */
+#toolnav {
+	display:none;
+}
+/* Hide from IE5-mac. Only IE-win sees this. \*/
+* html #toolnav {
+	margin-right: 0px;
+}
+* html #center {
+	height: 1%;
+	margin-left: 0;
+}
+/* End hide from IE5/mac */
+
+
+/* various sections in course-home.php file  */
+#toolremove {
+	width: 40%;
+	color: #f00;
+	font-weight: bold;
+	margin: 10px auto;
+	padding: 10px;
+	border: 2px solid #f00;
+}
+#courseintro {
+	clear: both;
+	width: 80%;
+	margin: 10px auto;
+	padding: 10px;
+	border-bottom: 1px solid #4171B5;
+}
+#courseintro_icons {
+	clear: both;
+	width: 80%;
+	margin: 10px auto;
+}
+.everybodyview {
+	position: relative; /* to avoid the IE peekabo bug ?*/
+	width: 80%;
+	margin: 10px auto;
+	padding: 10px;
+}
+.courseadminview, .platformadminview {
+	position: relative;
+	width: 80%;
+	margin: 25px auto 10px;
+	padding: 10px;
+	border: 1px solid #4171B5;
+}
+.viewcaption {
+	position: relative;
+	top: -20px;
+	font-size: 12px;
+	font-weight: bold;
+	color: #4171B5;
+	background-color: #fff;
+	padding: 0 4px;
+}
+/***********************************/
+
+/* ===================================================
+					AGENDA STYLES
+===================================================*/
+
+/* ---------------------------------------------------
+	check if these are still used or not
+-----------------------------------------------------*/
+#agenda {
+	width: 100%;
+	margin: 0 auto;
+	border: 1px solid #4171B5;
+	border-collapse: collapse;
+}
+.agenda_month_divider {
+	background-color: #4171B5;
+	font-weight: bold;
+	font-size: 12px;
+	color: #fff;
+	text-align: center;
+}
+#agenda #title a {
+	color: #fff;
+}
+#agenda .agendaitem {
+	font-size: 12px;
+}
+#smallcalendar .title {
+	background-color: #4171B5;
+	font-weight: bold;
+	padding: 2px;
+	color: #fff;
+	text-align: center;
+	font-size: 11px;
+}
+#smallcalendar .title a {
+	color: #fff;
+}
+/*agenda select not visible on print*/
+#agenda_select {
+	display:none;
+}
+/* ---------------------------------------------------
+	styles for the agenda (day, week, month view)
+-----------------------------------------------------*/
+#agenda_list {
+	width: 100%;
+	margin: 0 auto;
+	border: 1px solid #fff;
+	border-collapse: collapse;
+}
+/*The caption of the calendar (displays the month and the << and >> links*/
+#agenda_list #title {
+	background-color: #4171B5;
+	font-weight: bold;
+	font-size: 12px;
+	color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	text-align: center;
+	border: 1px solid #264269;
+}
+#agenda_list #title a:link, #agenda_list #title a:visited {
+	background-color: #4171B5;
+	font-weight: bold;
+	font-size: 12px;
+	color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	text-align: center;
+}
+#agenda_list #title a:hover {
+	background-color: #4171B5;
+	font-weight: bold;
+	font-size: 12px;
+	color: #ff0000;
+	text-align: left;
+	padding: 2px 10px;
+	text-align: center;
+}
+/* The cells with the name of the days of the weeks (mon->sun)*/
+#agenda_list .weekdays {
+	background-color: #D3DFF1;
+	text-align: center;
+	font-weight: bold;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+}
+/* The cells for the days (1->31) */
+#agenda_list .days_week {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #f5f5f5;
+}
+#agenda_list .days_weekend {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #e6e6e6;
+}
+#agenda_list .days_today {
+	height: 40px;
+	width: 12%;
+	text-align: left;
+	vertical-align: top;
+	border: 1px solid #264269;
+	border-collapse: collapse;
+	background-color: #FFCA8D;
+	color: #CC3300;
+	font-weight: bold;
+}
+/* text in the cells: display of agenda items (visible)*/
+#agenda_list .data {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+#agenda_list .datanotbold {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+#agenda_list .text {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+/*text in the cells: display of agenda items (invisible)*/
+#agenda_list .data_hidden {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+	color: #999999;
+}
+#agenda_list .datanotbold_hidden {
+	background-color: #eee;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+	color: #999999;
+}
+#agenda_list .text_hidden {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+	color: #999999;
+}
+/*text in the cells: display of agenda items (highlighted)*/
+#agenda_list .datanow {
+	background-color: #FFCC00;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: bold;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+#agenda_list .datanotboldnow {
+	background-color: #FFCC00;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+#agenda_list .textnow {
+	background-color: #fff;
+	text-align: left;
+	padding: 2px 10px;
+	font-weight: normal;
+	border: 0px solid #4171B5;
+	border-collapse: collapse;
+}
+/* ---------------------------------------------------
+	styles for the mini agenda
+-----------------------------------------------------*/
+/* mini agenda invisible in print */
+
+#smallcalendar {
+	display:none;
+}
+/*without this the small calendar's space isn't liberated, because the table width is hardcoded in the php*/
+#layoutHulp {
+	display:none;
+}
+/* ---------------------------------------------------
+	styles for the personal agenda
+-----------------------------------------------------*/
+.personal_agenda {
+	color: #008000;
+}
+.personal_agenda a:link, .personal_agenda a:visited {
+	color: #008000;
+}
+a.personal_agenda:link, a.personal_agenda:visited {
+	color: #008000;
+}
+.personal_agenda a:hover, .personal_agenda a:hover {
+	color: #666666;
+}
+a.personal_agenda:hover, a.personal_agenda:hover {
+	color: #666666;
+}
+/* normal and erro message-box */
+.normal-message, .error-message {
+	position: relative;
+	margin: 10px auto;
+	margin-left: -250px;
+	width: 500px;
+	left: 50%;
+	right: 50%;
+	border-width: 1px;
+	border-style: solid;
+	padding: 5px;
+}
+.normal-message {
+	border: 1px solid #FF8001;
+	color: #000;
+	background-color: #FDC77E;
+}
+.error-message {
+	border: 1px solid #3F70AC;
+	color: #000;
+	background-color: #FDC273;
+}
+#message {
+	margin: 0 auto;
+	text-align: center;
+}
+#message select {
+	margin: 10px 0;
+	width: 220px;
+}
+#message textarea {
+	margin: 10px 0;
+}
+#message td {
+	padding: 4px;
+}
+/* styles from the document.php file */
+.comment {
+	margin-left: 30px;
+}
+.invisible {
+	color: #999;
+}
+.invisible a:link, .invisible a:visited {
+	color: #999;
+}
+a.invisible:link, a.invisible:visited {
+	color: #999;
+}
+/* styles from the upload.php file */
+dl.upload_option {
+	margin: 1em 0;
+	padding: 0;
+}
+.upload_option dt {
+	font-weight:bold;
+	margin:0;
+}
+.upload_option dd {
+	margin:0;
+}
+/* styles from dropbox.php file */
+.dropbox_detail {
+	font-size: small
+}
+.dropbox_date {
+	font-style: italic
+}
+.dropbox_person {
+	font-weight: bold
+}
+.dropbox_listTitle {
+	color: #000000;
+}
+.dropbox_feedback {
+	font-size: x-small;
+	height: 50px;
+	width: 200px;
+	overflow: auto
+}
+.dropbox_feedbacks {
+	height: 250px;
+	width: 100%;
+	overflow: auto
+}
+/* styles for chat / conference tools */
+#chat_entermessage {
+	background-color: #D6E5FA;
+	border-top: 1px solid #4171B5;
+	padding: 5px;
+	margin: 0;
+}
+/* styles for general formatting */
+.clear {
+	clear: both;
+	line-height: 0px;
+	height: 0;
+}
+p, blockquote, ol, ul {
+	font-size: 12px;
+}
+h1 {
+	font-size: 21px;
+}
+h2 {
+	font-size: 18px;
+}
+h3 {
+	font-size: 15px;
+	margin-top:0px;
+	padding-top:0px;
+}
+h4 {
+	font-size: 12px;
+}
+h5, h6 {
+	font-family: verdana, arial, helvetica, sans-serif;
+}
+/* the following for regular <a> elements */
+a:link {
+	text-decoration: none;
+	font-weight : bold;
+	color : #4171b5;
+}
+a:visited {
+	text-decoration: none;
+	font-weight : bold;
+	color : #4171b5;
+}
+a:active {
+	text-decoration: none;
+	font-weight : bold;
+	color : #f00;
+}
+input.link_alike {
+	background-color: #FFFFFF;
+	border-width: 0px;
+	color: #4171b5;
+	font-weight: bold;
+	text-align: left;
+	padding: 0px;
+	margin: 0px;
+}
+input.link_alike:hover {
+	background-color: #FFFFFF;
+	border-width: 0px;
+	color: #FF0000;
+	font-weight: bold;
+	text-align: left;
+	padding: 0px;
+	margin: 0px;
+}
+/* the following for the greyed out elements */
+a.nobold:link, a.nobold:visited, a.nobold:active {
+	font-weight: normal;
+	color: #999;
+	margin: 0 0 0 25px;
+}
+a.nobold:hover {
+	font-weight: normal;
+	color: #999;
+	text-decoration: underline;
+	margin: 0 0 0 25px;
+}
+.note {
+	margin: 6px;
+	font-size: 12px;
+	line-height: 14px;
+	font-family: verdana, arial, helvetica, sans-serif;
+	background-color: #FFF089;
+	color: #4171B5;
+	border: 1px solid #4171B5;
+	padding: 4px;
+}
+.alternativeBgLight {
+	background-color: #f5f5f5;
+	border: 1px solid #4171B5;
+	border-collapse: collapse;
+}
+.alternativeBgDark {
+	background-color: #ccf;
+	border: 1px solid #4171B5;
+	border-collapse: collapse;
+}
+.myagendatoday {
+	background-color: #FFCA8D;
+	border-collapse: collapse;
+	font-family: verdana, arial, helvetica, sans-serif;
+	color: #CC3300;
+	font-weight: bold;
+}
+/*****************************************************
+ *  FORM STYLES                                      *
+ *****************************************************/
+div.row {
+	clear: both;
+	padding-top: 5px;
+}
+div.row div.form_header {
+	white-space: nowrap;
+	padding: 2px;
+	background-color: #E5EDF9;
+	border: 1px solid #4271B5;
+}
+div.row div.label {
+	display: inline;
+	float: left;
+	width: 18%;
+	text-align: right;
+}
+div.row div.formw {
+	display: inline;
+	width: 80%;
+}
+[dir=ltr] div.row div.label, [dir=rtl] div.row div.formw {
+	float: left;
+	text-align: right;
+}
+[dir=rtl] div.row div.label, [dir=ltr] div.row div.formw {
+	float: right;
+	text-align: left;
+}
+span.form_required {
+	color: #f00;
+}
+span.form_error {
+	color: #f00;
+	font-size: x-small;
+	margin: 2px;
+}
+/* Form elements - some general styling */
+select, textarea {
+	color : #000;
+	border: 1px solid #000;
+}
+input.checkbox {
+	border-width: 0;
+}
+input.mainoption {
+	font-weight : bold;
+}   /* Main submit button      */
+input.liteoption {
+	font-weight : normal;
+} /* None-bold submit button */
+select, input[type=checkbox], input[type=radio], input[type=button], input[type=submit] {
+	cursor:	pointer;
+	font-size: 12px;
+}
+input[text] {
+	font-size: 12px;
+}
+/************************************************************
+  styles below here are not necessarily used in the current
+	release and the CVS files, they are from earlier versions,
+	and have been left untouched for anyone needing them in
+	their own platform ...
+*************************************************************/
+.topBanner a:link, .topBanner a:active, .topBanner a:visited {
+	text-decoration:none;
+	color:white;
+}
+.topBanner table {
+	text-decoration:none;
+}
+.topBanner a:hover {
+	text-decoration:underline;
+}
+.topBanner td {
+	border-top: solid White 1px;
+}
+.alternativeBgLight {
+	background-color: #f5f5f5;
+}
+.alternativeBgDark {
+	background-color: #e6e6e6
+}
+.forms {
+	letter-spacing: normal;
+	text-align: justify;
+	text-indent: 3pt;
+	word-spacing: normal;
+	padding: 2px 5px;
+}
+.formsTips {
+	text-align: justify;
+	text-indent: 15pt;
+	word-spacing: normal;
+}
+/*
+input.forms	{ letter-spacing: normal; text-align: justify; text-indent: 3pt;	word-spacing: normal;
+padding-top: 0px;	padding-right: 0px;	padding-bottom: 0px;	padding-left: 0px;}
+*/
+.warn {
+	border: thin double Silver;
+	margin-left: 15px;
+	margin-right: 15px;
+	font-family: serif;
+	color: Red;
+	padding-left: 25px;
+}
+.small {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px
+}
+.xsmall {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px
+}
+.xxsmall {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 9px
+}
+/*****************************************************
+ *  DATA TABLE STYLES                                *
+ *****************************************************/
+.cell_header {
+	background-color: #EEEEFF;
+	font-weight:bold;
+	text-align:left;
+	padding-left:5px;
+}   /* header cell in data table in tools */
+.data_table {
+	border-collapse: collapse;
+	width: 100%;
+	padding: 5px;
+}
+.data_table th {
+	padding-right: 20px;
+	border: 1px solid gray;
+	background-color: #E5EDF9;
+}
+.data_table tr.row_odd {
+	background-color: #fafafa;
+}
+.data_table tr.row_odd:hover, .data_table tr.row_even:hover {
+	background-color: #f0f0f0;
+}
+.data_table tr.row_even {
+	background-color: #fff;
+}
+.data_table td {
+	padding: 5px;
+	vertical-align: top;
+	border-bottom: 1px solid #b0b0b0;
+	border-right: 1px dotted #e1e1e1;
+	border-left: 1px dotted #e1e1e1;
+}
+/* admin page tool list definitions */
+.tool_list dt {
+	font-weight: bold;
+}
+.tool_list dd {
+	margin: 0;
+	padding: 4px 0 0 10px;
+}
+/* divs for category list / platform news on home page */
+.home_cats {
+	width: 45%;
+	float: left;
+	position: relative;
+	margin: 0;
+	padding: 0px;
+	padding-top: 8px;
+	background: #fff;
+}
+.home_news {
+	width: 45%;
+	float: right;
+	position: relative;
+	margin: 0;
+	padding: 0px;
+	padding-top: 8px;
+	background: #fff;
+}
+label.left {
+	float: left;
+	width: 15em;
+	margin: 0 0 0.5em 0;
+}
+form br {
+	clear: both;
+}
+/* Fix for alignment problem in IE-Win browsers  */
+/*  Hide from IE5-mac. Only IE-win sees this. \*/
+* html .label {
+	margin-right: 10px;
+}
+* html .data {
+	height: 1%;
+	margin-left: 0;
+}
+/* End hide from IE5/mac */
+
+.radio, .checkbox {
+	margin: 0;
+	padding: 0;
+	border: none;
+	background-color: transparent;
+}
+.required {
+	color: #f00;
+	font-weight: bold;
+}
+/* Admin section */
+div.admin_section {
+	width: 40%;
+	float: left;
+	padding: 5px;
+	margin: 10px 20px;
+}
+div.admin_section h4 {
+	margin: 0;
+	border-bottom: 1px solid gray;
+	width: 100%;
+}
+.user_course_category {
+	background-color: #efefef;
+	border: 1px solid #666;
+	font-weight: bold;
+	color: #666;
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+}
+/* Styles for the Dokeos Config Settings of the platform admin section*/
+.sectiontitle {
+	background-color: #EFEFEF;
+	border: 1px solid #cccccc;
+	font-weight: bold;
+	color: #666666;
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+	font-size: 11px;
+}
+.sectioncomment {
+	color: #000000;
+	margin: 5px;
+	padding: 5px;
+	font-size: 11px;
+}
+.sectionvalue {
+	list-style-type: none;
+	margin: 5px;
+	padding: 5px;
+}
+/* New Announcements Tool */
+.announcements_datum {
+	font-size: 12px;
+	font-style: italic;
+	color: #666666;
+}
+/* System announcements on homepage */
+div.system_announcements {
+}
+div.system_announcements h3 {
+}
+div.system_announcement {
+	margin: 5px;
+}
+div.system_announcement_title {
+}
+div.system_announcement_content {
+	margin-left: 20px;
+	border-left: 1px solid gray;
+	padding-left: 5px;
+}
+/*****************************************************
+ * special print ccs classes						 *
+ *****************************************************/
+
+ a.full_url_print:after {
+	content: "(" attr(href) ")";
+	font-size: 75%;
+}
+/* to make it in visible in the printed version*/
+.print_invisible {
+	display:none;
+}

+ 169 - 0
main/css/chamilo/scorm.css

@@ -0,0 +1,169 @@
+.scormpage {
+	height: 100%;
+}
+.scormpage .menu {
+	width: 180px;
+	float: left;
+	margin: 1px;
+	padding: 0px;
+	margin-top: 0px;
+	padding-top: 0px;
+	font-size: small;
+}
+.lp_toc {
+	background-color: white;
+	height: 380px;
+	width: 99%;
+	border-right: 1px none;
+}
+.inner_lp_toc {
+	overflow: auto;
+	background-color: white;
+	height: 210px;
+	width: 94%;
+	border-left: 10px #FFF solid;
+}
+.inner_lp_toc .scorm_item {
+	font-size: 11px;
+	margin-left: 10px;
+	margin-right:10px;
+//cambiado era 20  padding-bottom: 2px;
+	text-decoration: none;
+}
+.inner_lp_toc .scorm_item A {
+	font-size: 11px;
+	margin-right: 1px;
+	padding-bottom: 2px;
+	text-decoration: none;
+	font-weight: normal;
+}
+.inner_lp_toc .scorm_item A.chapter_module {
+	font-weight: normal;
+	margin-right: 10px;
+}
+.inner_lp_toc .scorm_item_highlight {
+	font-size: 11px;
+	margin-right: 1px;
+	padding-bottom: 2px;
+	text-decoration: none;
+	font-weight: normal;
+	background:#aaa;
+}
+.inner_lp_toc .scorm_item_highlight A {
+	font-size: 11px;
+	margin-right: 1px;
+	text-decoration: none;
+	font-weight: normal;
+}
+.inner_lp_toc .scorm_item_1 {
+	font-size: 11px;
+	margin-right: 1px;
+	padding-bottom: 2px;
+	text-decoration: none;
+	font-weight: normal;
+	background:#ddd;
+}
+.inner_lp_toc .scorm_item_2 {
+	font-size: 11px;
+	margin-right: 1px;
+	padding-bottom: 2px;
+	text-decoration: none;
+	font-weight: normal;
+	background:#eee;
+}
+.inner_lp_toc .scorm_title {
+	font-weight: bold;
+	background:#ccc;
+	font-size: 14px;
+	color: #444;
+}
+.inner_lp_toc .scorm_title_text {
+	margin-left: 10px;
+ //padding: 2px;
+ //cambiado no existe
+}
+.inner_lp_toc .scorm_status_img {
+	margin:0px;
+	margin-left: -10px;
+	width:10px;
+}
+.lp_navigation {
+	overflow: auto;
+	background-color: white;
+	height: 44px;
+	width:180px;
+	padding-top: 4px;
+	padding-bottom:0px;
+	border: none;
+	margin-top: -18px;
+	border-top: 1px dotted black;
+	border-bottom: 1px dotted black;
+}
+.lp_navigation_elem {
+	padding-left: 15px;
+	padding-top: 0px;
+}
+/*.scormpage .menu */
+.lp_navigation_elem .progresstext {
+	margin-top: -20px;
+	margin-left: 40%;
+//em  font-size: normal;
+}
+/*.scormpage .menu */
+.lp_navigation_elem .buttons {
+	margin-left: 0px;
+	margin-right: 0em;
+	margin-top: 0.4em;
+}
+.scormpage .menu .notification {
+	background-color: white;
+	height: 50px;
+}
+.scormpage .menu .notification .message {
+	background-color: white;
+	height: 50px;
+	width: 180px;
+	border: none;
+}
+.scormpage .content {
+	/*float: left;
+	width: 60%;*/
+	margin-top: 0px;
+	padding-top: 0px;
+	padding-left: 180px;
+	background-color: white;
+}
+.iframe {
+	border: 0px solid black;
+	height: 100%;
+	width: 95%;
+	margin: 0px;
+	padding-right: 0px;
+	overflow: auto;
+	vertical-align: top;
+}
+.scormpage .footer {
+	clear: both;
+}
+#image_preview {
+	padding-left: 17px;
+}
+#author_name {
+	padding-left: 5px;
+	padding-top: 5px;
+	font-size: 11px;
+	color:#888;
+}
+#msg_div_id {
+	padding-left: 17px;
+	padding-top: 4px;
+}
+.scorm_title_text {
+	margin-left: 10px;
+	font-weight: bold;
+	background:#ccc;
+	font-size: 14px;
+	color: #444;
+	width: 89%;
+	padding: 1px 5px 3px 8px;
+}

+ 82 - 0
main/css/chamilo/scormfs.css

@@ -0,0 +1,82 @@
+.scormpage {
+}
+.scormpage .menu {
+	width: 180px;
+	padding: 0px;
+	font-size: small;
+	position: absolute;
+	background-color: white;
+}
+.scormpage .menu .lp_nav {
+	height: 50px;
+	width: 160px;
+	padding-top: 4px;
+	padding-bottom:0px;
+	/*	
+	margin-left: 10px;
+	margin-right: 10px;
+*/
+	margin-top: 0px;
+}
+.lp_navigation_elem {
+	padding-left: 15px;
+	padding-top: 0px;
+}
+/*.scormpage .menu */
+.lp_navigation_elem .progresstext {
+	font-size: smaller;
+}
+/*.scormpage .menu */
+.lp_navigation_elem .buttons {
+	margin-left: 5px;
+	margin-right: 0em;
+	margin-top: 0.4em;
+}
+#msg_div_id {
+	padding-left: 10px;
+	padding-top: 4px;
+}
+.scormpage .menu .notification {
+	height: 50px;
+	margin-left: 15px;
+	margin-right: 15px;
+}
+.scormpage .menu .notification .message {
+	height: 50px;
+	width: 140px;
+	border: none;
+}
+.scormpage .menu .notification .lp_log {
+	height: 100px;
+	width: 180px;
+	border: none;
+	overflow: auto;
+}
+.scormpage .content .iframe {
+	/*
+	border: none;
+	height: 700px;
+	margin: 0px;
+	padding-right: 0px;
+	margin-right: 0%;
+	margin-left: 0%;
+	*/
+	/* trying the absolute mode */
+	position: fixed;
+	bottom:0;
+	left:0;
+	width: 100%;
+	height: 100%;
+}
+.scormpage .footer {
+	clear: both;
+}
+#image_preview {
+	padding-left: 17px;
+}
+#author_name {
+	padding-left: 5px;
+	padding-top: 5px;
+	font-size: 11px;
+	color:#888;
+}

+ 1 - 1
main/document/headerpage.php

@@ -23,7 +23,7 @@ $interbreadcrumb[]= array ("url"=>"./document.php?curdirpath=".dirname($header_f
 $interbreadcrumb[]= array ("url"=>"showinframes.php?file=".$header_file, "name"=>$header_file);
 $file_url_sys=api_get_path(SYS_COURSE_PATH).'document'.$header_file;
 $path_info= pathinfo($file_url_sys);
-
+$this_section = SECTION_COURSES;
 Display::display_header(null,"Doc");
 echo "<div align=\"center\">";
 $file_url_web=api_get_path('WEB_COURSE_PATH').$_course['path'].'/document'.$header_file."?".api_get_cidreq();

+ 90 - 16
main/document/showinframes.php

@@ -100,21 +100,95 @@ $path_info= pathinfo($file_url_sys);
 <title>
 <?php echo $browser_display_title;?>
 </title>
-</head>
-	<frameset rows="<?php echo $frameheight; ?>,*" border="0" frameborder="no" >
-		<frame name="top" scrolling="no" noresize target="contents" src="headerpage.php?file=<?php echo $file.'&amp;'.api_get_cidreq(); ?>" />
-		<?php
-		if (file_exists($file_url_sys)) {
-			echo '<frame name="main" id="framemain" src="'.$file_url_web.'?'.api_get_cidreq().'&rand='.mt_rand(1,10000).'" />';
-		} else {
-			echo '<frame name="main" id="framemain" src=showinframes.php?nopages=1 />';
+<script language="javascript" src="<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.js"></script>
+<script language="javascript" src="<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.frameready.js"></script>
+
+
+	<script type="text/javascript">
+	// Fixes the content height of the frame	
+	var leftZoneHeightOccupied = 0;
+	var rightZoneHeightOccupied = 0;
+	var initialLeftZoneHeight = 0;
+	var initialRightZoneHeight = 0;
+	
+	var updateContentHeight = function() {
+		winHeight = (window.innerHeight != undefined ? window.innerHeight : document.documentElement.clientHeight);
+		
+		newLeftZoneHeight = winHeight - leftZoneHeightOccupied;		
+		
+		newRightZoneHeight = winHeight - rightZoneHeightOccupied;
+		if (newLeftZoneHeight <= initialLeftZoneHeight) {
+			newLeftZoneHeight = initialLeftZoneHeight;
+			newRightZoneHeight = newLeftZoneHeight + leftZoneHeightOccupied - rightZoneHeightOccupied;
+		}
+		if (newRightZoneHeight <= initialRightZoneHeight) {
+			newRightZoneHeight = initialRightZoneHeight;
+			newLeftZoneHeight = newRightZoneHeight + rightZoneHeightOccupied - leftZoneHeightOccupied;
 		}
-		?>
-	<noframes>
-	<body>
-		<p>This page uses frames, but your browser doesn't support them.<br/>
-			We suggest you try Mozilla, Firefox, Safari, Opera, or other browsers updated this millenium.</p>
-	</body>
-	</noframes>
-	<frame src="#"></frameset>
+
+		document.getElementById('mainFrame').style.height = newRightZoneHeight + 'px';
+		if (document.body.clientHeight > winHeight) {
+			document.body.style.overflow = 'auto';
+		} else {
+			document.body.style.overflow = 'hidden';
+		}		
+	};
+</script>	
+<?php
+  	 if (api_get_setting('show_glossary_in_documents') == 'ismanual') {	 	
+  	 	?>
+  		<script type="text/javascript">
+    	$(document).ready(function() {
+    	updateContentHeight();
+      	$.frameReady(function(){   
+	       //  	$("<div>I am a div courses</div>").prependTo("body");
+     
+	      }, "top.mainFrame",   
+	      { load: [   
+	      		{type:"script", id:"_fr1", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.js"},
+	            {type:"script", id:"_fr2", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.highlight.js"},
+	            {type:"script", id:"_fr3", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>fckeditor/editor/plugins/glossary/fck_glossary_manual.js"}
+	      	 ] 
+	      }
+	   
+	      );
+	      	window.onresize = updateContentHeight;
+	   }
+	   );
+</script>  	 	
+<?php
+  	 } elseif(api_get_setting('show_glossary_in_documents') == 'isautomatic') {
+?>
+	<script type="text/javascript">
+	    $(document).ready(function() {
+	    	updateContentHeight(); 
+	    		window.onresize = updateContentHeight;  
+	      $.frameReady(function(){   
+	       //  $("<div>I am a div courses</div>").prependTo("body");
+	     
+	      }, "top.mainFrame",   
+	      { load: [   
+	      		{type:"script", id:"_fr1", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.js"},
+	            {type:"script", id:"_fr2", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.highlight.js"},
+	            {type:"script", id:"_fr3", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>fckeditor/editor/plugins/glossary/fck_glossary_automatic.js"}
+	      	 ] 
+	      }	   
+	      );
+	   }
+	   );
+	</script>
+<?php
+  	 }
+?>  
+</head>
+<body>
+	<iframe border="0" frameborder="0" scrolling="no" style="width:100%;"   src="headerpage.php?file=<?php echo $file.'&amp;'.api_get_cidreq(); ?>"> </iframe>
+	<?php
+		if (file_exists($file_url_sys)) {			
+		echo '<iframe border="0" frameborder="0" scrolling="no" height="100%" style="width:100%;"  id="mainFrame" name="mainFrame" src="'.$file_url_web.'?'.api_get_cidreq().'&rand='.mt_rand(1,10000).'"></iframe>';			
+	} else {			
+		echo '<frame name="mainFrame" id="mainFrame" src=showinframes.php?nopages=1 />';
+	}
+	?>
+</body>
 </html>

+ 22 - 44
main/exercice/exercice_submit.php

@@ -1,29 +1,5 @@
 <?php
-// $Id: exercice_submit.php 22201 2009-07-17 19:57:03Z cfasanando $
-
-/*
-==============================================================================
-	Dokeos - elearning and course management software
-
-	Copyright (c) 2004-2008 Dokeos SPRL
-	Copyright (c) 2003 Ghent University (UGent)
-	Copyright (c) 2001 Universite catholique de Louvain (UCL)
-	Copyright (c) various contributors
-
-	For a full list of contributors, see "credits.txt".
-	The full license can be read in "license.txt".
-
-	This program is free software; you can redistribute it and/or
-	modify it under the terms of the GNU General Public License
-	as published by the Free Software Foundation; either version 2
-	of the License, or (at your option) any later version.
-
-	See the GNU General Public License for more details.
-
-	Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
-	Mail: info@dokeos.com
-==============================================================================
-*/
+/* For licensing terms, see /dokeos_license.txt */
 
 /**
 *	Exercise submission
@@ -71,9 +47,10 @@ $this_section = SECTION_COURSES;
 $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.js" type="text/javascript" language="javascript"></script>'; //jQuery
 $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.corners.min.js" type="text/javascript"></script>';
 
-if (api_get_setting('show_glossary_in_extra_tools') == 'true') {
-  $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/glossary.js" type="text/javascript" language="javascript"></script>'; //Glossary
-  $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.highlight.js" type="text/javascript" language="javascript"></script>'; 
+if (api_get_setting('show_glossary_in_extra_tools') == 'true') { 
+  	$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/glossary.js" type="text/javascript" language="javascript"></script>'; //Glossary
+  	$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.highlight.js" type="text/javascript" language="javascript"></script>';
+   
 }
 //This library is necessary for the time control feature
 $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.epiclock.min.js" type="text/javascript" language="javascript"></script>'; //jQuery
@@ -147,6 +124,7 @@ $error = '';
 if (!isset ($exerciseType)) {
 	$exe_start_date = time();
 	$_SESSION['exercice_start_date'] = $exe_start_date;
+	error_log($_SESSION['exercice_start_date']);	
 }
 // if the user has clicked on the "Cancel" button
 if ($buttonCancel) {
@@ -1243,25 +1221,25 @@ echo '</div>';
 if ($_configuration['live_exercise_tracking'] == true && $exerciseFeedbackType != 1) {
 	//if($questionNum < 2){
 	if ($table_recorded_not_exist) { //$table_recorded_not_exist
-    if ($exercise_row['expired_time'] != 0) {
-      $sql_fields = "expired_time_control, ";
-      $sql_fields_values = "'"."$clock_expired_time"."',";     
-    } else {
-      $sql_fields = "";
-      $sql_fields_values = "";
-    }
-
+	    if ($exercise_row['expired_time'] != 0) {
+	      $sql_fields = "expired_time_control, ";
+	      $sql_fields_values = "'"."$clock_expired_time"."',";     
+	    } else {
+	      $sql_fields = "";
+	      $sql_fields_values = "";
+	    } error_log($exerciseType);   
+	
 		if ($exerciseType == 2) {
-    $sql = "INSERT INTO $stat_table($sql_fields exe_exo_id,exe_user_id,exe_cours_id,status,session_id,data_tracking,start_date,orig_lp_id,orig_lp_item_id)
-      VALUES($sql_fields_values '$exerciseId','" . api_get_user_id() . "','" . $_course['id'] . "','incomplete','" . api_get_session_id() . "','" . implode(',', $questionList) . "','" . date('Y-m-d H:i:s') . "',$safe_lp_id,$safe_lp_item_id)";      
-			Database::query($sql, __FILE__, __LINE__);
-      
+	    	$sql = "INSERT INTO $stat_table($sql_fields exe_exo_id,exe_user_id,exe_cours_id,status,session_id,data_tracking,start_date,orig_lp_id,orig_lp_item_id)
+	      			VALUES($sql_fields_values '$exerciseId','" . api_get_user_id() . "','" . $_course['id'] . "','incomplete','" . api_get_session_id() . "','" . implode(',', $questionList) . "','" . date('Y-m-d H:i:s') . "',$safe_lp_id,$safe_lp_item_id)";
+	      error_log($sql);      
+			Database::query($sql, __FILE__, __LINE__);      
 		} else {
-    $sql = "INSERT INTO $stat_table ($sql_fields exe_exo_id,exe_user_id,exe_cours_id,status,session_id,start_date,orig_lp_id,orig_lp_item_id)
-       VALUES($sql_fields_values '$exerciseId','" . api_get_user_id() . "','" . $_course['id'] . "','incomplete','" . api_get_session_id() . "','" . date('Y-m-d H:i:s') . "',$safe_lp_id,$safe_lp_item_id)";
-         Database::query($sql, __FILE__, __LINE__);
+	    	$sql = "INSERT INTO $stat_table ($sql_fields exe_exo_id,exe_user_id,exe_cours_id,status,session_id,start_date,orig_lp_id,orig_lp_item_id)
+	       			VALUES($sql_fields_values '$exerciseId','" . api_get_user_id() . "','" . $_course['id'] . "','incomplete','" . api_get_session_id() . "','" . date('Y-m-d H:i:s') . "',$safe_lp_id,$safe_lp_item_id)";
+	       			error_log($sql);  
+			Database::query($sql, __FILE__, __LINE__);
 		}
-
 	}
 }
 

+ 2 - 2
main/forum/forumfunction.inc.php

@@ -1941,11 +1941,11 @@ function show_add_post_form($action='', $id='', $form_values='') {
 		// thread qualify
 
 		$form->addElement('static','Group', '<br /><strong>'.get_lang('AlterQualifyThread').'</strong>');
-		$form->addElement('text', 'numeric_calification', get_lang('QualifyNumeric'),'Style="width:40px"');
 		$form->applyFilter('numeric_calification', 'html_filter');
 		$form->addElement('checkbox', 'thread_qualify_gradebook', '', get_lang('QualifyThreadGradebook'),'onclick="javascript:if(this.checked==true){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
 
 		$form -> addElement('html','<div id="options_field" style="display:none">');
+		$form->addElement('text', 'numeric_calification', get_lang('QualifyNumeric'),'Style="width:40px"');
 		$form->addElement('text', 'calification_notebook_title', get_lang('TitleColumnGradebook'));
 		$form->applyFilter('calification_notebook_title', 'html_filter');
 		$form->addElement('text', 'weight_calification', get_lang('QualifyWeight'),'value="0.00" Style="width:40px" onfocus="this.select();"');
@@ -2372,7 +2372,6 @@ function show_edit_post_form($current_post, $current_thread, $current_forum, $fo
 
 	if (!isset($_GET['edit'])) {
 		$form->addElement('static','Group','<strong>'.get_lang('AlterQualifyThread').'</strong>');
-		$form->addElement('text', 'numeric_calification', get_lang('QualifyNumeric'),'value="'.$current_thread['thread_qualify_max'].'" Style="width:40px"');
 		$form->applyFilter('numeric_calification', 'html_filter');
 		$form->addElement('checkbox', 'thread_qualify_gradebook', '', get_lang('QualifyThreadGradebook'),'onclick="javascript:if(this.checked==true){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
 		$defaults['thread_qualify_gradebook']=is_resource_in_course_gradebook(api_get_course_id(),5,$_GET['thread'],api_get_session_id());
@@ -2382,6 +2381,7 @@ function show_edit_post_form($current_post, $current_thread, $current_forum, $fo
 		} else {
 			$form -> addElement('html','<div id="options_field" style="display:none">');
 		}
+		$form->addElement('text', 'numeric_calification', get_lang('QualifyNumeric'),'value="'.$current_thread['thread_qualify_max'].'" Style="width:40px"');
 		$form->addElement('text', 'calification_notebook_title', get_lang('TitleColumnGradebook'),'value="'.$current_thread['thread_title_qualify'].'"');
 		$form->applyFilter('calification_notebook_title', 'html_filter');
 		$form->addElement('text', 'weight_calification', get_lang('QualifyWeight'),'value="'.$current_thread['thread_weight'].'" Style="width:40px"');

+ 35 - 23
main/inc/lib/events.lib.inc.php

@@ -20,16 +20,16 @@
 ==============================================================================
 */
 // REGROUP TABLE NAMES FOR MAINTENANCE PURPOSE
-$TABLETRACK_LOGIN = $_configuration['statistics_database'].".track_e_login";
-$TABLETRACK_OPEN = $_configuration['statistics_database'].".track_e_open";
-$TABLETRACK_ACCESS = $_configuration['statistics_database'].".track_e_access";
-$TABLETRACK_DOWNLOADS = $_configuration['statistics_database'].".track_e_downloads";
-$TABLETRACK_UPLOADS = $_configuration['statistics_database'].".track_e_uploads";
-$TABLETRACK_LINKS = $_configuration['statistics_database'].".track_e_links";
-$TABLETRACK_EXERCICES = $_configuration['statistics_database'].".track_e_exercices";
+$TABLETRACK_LOGIN 		= $_configuration['statistics_database'].".track_e_login";
+$TABLETRACK_OPEN 		= $_configuration['statistics_database'].".track_e_open";
+$TABLETRACK_ACCESS 		= $_configuration['statistics_database'].".track_e_access";
+$TABLETRACK_DOWNLOADS	= $_configuration['statistics_database'].".track_e_downloads";
+$TABLETRACK_UPLOADS 	= $_configuration['statistics_database'].".track_e_uploads";
+$TABLETRACK_LINKS 		= $_configuration['statistics_database'].".track_e_links";
+$TABLETRACK_EXERCICES 	= $_configuration['statistics_database'].".track_e_exercices";
 $TABLETRACK_SUBSCRIPTIONS = $_configuration['statistics_database'].".track_e_subscriptions";
-$TABLETRACK_LASTACCESS = $_configuration['statistics_database'].".track_e_lastaccess"; //for "what's new" notification
-$TABLETRACK_DEFAULT = $_configuration['statistics_database'].".track_e_default";
+$TABLETRACK_LASTACCESS 	= $_configuration['statistics_database'].".track_e_lastaccess"; //for "what's new" notification
+$TABLETRACK_DEFAULT 	= $_configuration['statistics_database'].".track_e_default";
 
 /*
 ==============================================================================
@@ -398,20 +398,31 @@ function update_event_exercice($exeid,$exo_id, $score, $weighting,$session_id,$l
 {
 	if ($exeid!='') {
 
-    $current_time = time();
-    if (isset($_SESSION['expired_time'])) { //Only for exercice of type "One page"
-    	$expired_date = $_SESSION['expired_time'];
-    	$expired_time = strtotime($expired_date);
-    }
-
-    //Validation in case of fraud
-    $total_time_allowed = $expired_time + 30;
-    if ($total_time_allowed < $current_time) {
-    	$score = 0;
-    }
-  
+	    $current_time = time();
+	    if (isset($_SESSION['expired_time'])) { //Only for exercice of type "One page"
+	    	$expired_date = $_SESSION['expired_time'];
+	    	$expired_time = strtotime($expired_date);
+	    }
+	
+	    //Validation in case of fraud
+	    $total_time_allowed = $expired_time + 30;
+	    if ($total_time_allowed < $current_time) {
+	    	$score = 0;
+	    }
+	    
+	    $now = time();
+	    
+	    //Validation in case of wrong start_date 
+	    if (isset($_SESSION['exercice_start_date'])) { 
+	    	$start_date = $_SESSION['exercice_start_date'];	    	
+	    	$diff  = abs($start_date - $now);	    	
+	    	if ($diff > 14400) { // 14400 = 4h*60*60 more than 4h of diff
+	    		$start_date = $now - 1800; //	Now - 30min    			    		
+	    	}
+	    }
+	  
 		$TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
-		$reallyNow = time();
+		
 		$sql = "UPDATE $TABLETRACK_EXERCICES SET
 				   exe_exo_id 	= 	'".Database::escape_string($exo_id)."',
 				   exe_result	=	  '".Database::escape_string($score)."',
@@ -420,8 +431,9 @@ function update_event_exercice($exeid,$exo_id, $score, $weighting,$session_id,$l
 				   orig_lp_id = '".Database::escape_string($learnpath_id)."',
 				   orig_lp_item_id = '".Database::escape_string($learnpath_item_id)."',
 				   exe_duration = '".Database::escape_string($duration)."',
-				   exe_date= FROM_UNIXTIME(".$reallyNow."),status = '', data_tracking='',start_date =FROM_UNIXTIME(".Database::escape_string($_SESSION['exercice_start_date']).")
+				   exe_date= FROM_UNIXTIME(".$now."),status = '', data_tracking='', start_date = FROM_UNIXTIME(".Database::escape_string($start_date).")
 				 WHERE exe_id = '".Database::escape_string($exeid)."'";
+		
 		$res = @Database::query($sql,__FILE__,__LINE__);
 		unset($_SESSION['expired_time']);
 		return $res;

+ 26 - 12
main/inc/lib/fckeditor/editor/plugins/glossary/fck_glossary_automatic.js

@@ -1,14 +1,24 @@
-$(document).ready(function() {
-    $(window).load(function () {
-		
+/**
+
+Makes posible to load glossary items from the Glossary Tool
+This library will be loaded in:
+
+document/showinframes.php
+newscorm/lp_view.php
+newscorm/scorm_api.php
+
+*/
+
+/*$(document).ready(function() {
+    $(window).load(function() {
+	*/	
      my_protocol = location.protocol;
 	 my_pathname=location.pathname;
 	 work_path = my_pathname.substr(0,my_pathname.indexOf('/courses/'));
 	 
      $.ajax({
         contentType: "application/x-www-form-urlencoded",
-        beforeSend: function(content_object) {
-        },
+        beforeSend: function(content_object) {},
         type: "POST",
         url: my_protocol+"//"+location.host+work_path+"/main/glossary/glossary_ajax_request.php",
         data: "glossary_data=true",
@@ -16,13 +26,14 @@ $(document).ready(function() {
 			  if (datas.length==0) {
 			  	return false;
 			  }
-                data_terms=datas.split("[|.|_|.|-|.|]");
+			  // glossary terms 
+              data_terms=datas.split("[|.|_|.|-|.|]");
                 var complex_array = new Array();
                 var cp_complex_array = new Array();
                 for(i=0;i<data_terms.length;i++) {
                     specific_terms=data_terms[i].split("__|__|");
-                    var real_term = specific_terms[1];
-                    var real_code = specific_terms[0];
+                    var real_term = specific_terms[1]; // glossary term 
+                    var real_code = specific_terms[0]; // glossary id
                     complex_array[real_code] = real_term;
                     cp_complex_array[real_code] = real_term;
                 }
@@ -44,15 +55,16 @@ $(document).ready(function() {
                                 }
                             }
                         }
+						//alert(n + ' ' + my_index);
                         $('body').removeHighlight().highlight(n,my_index) 
                     }                   
                 }
-              
+             
               var complex_array = new Array();
               
 			  //mouse over event
-			  $("body .glossary-ajax").mouseover(function(){
-	            random_id=Math.round(Math.random()*100);
+				$("body .glossary-ajax").mouseover(function(){
+	          	random_id=Math.round(Math.random()*100);
 	            div_show_id="div_show_id"+random_id;
 	            div_content_id="div_content_id"+random_id;
 	             $(this).append("<div id="+div_show_id+" ><div id="+div_content_id+">&nbsp;</div></div>");
@@ -60,6 +72,7 @@ $(document).ready(function() {
 	             $("div#"+div_content_id).attr("style","background-color:#F2F2F2;color:#0B3861;margin-left:8px;margin-right:8px;margin-top:5px;margin-bottom:5px;");
 	                notebook_id=$(this).attr("name");
 	                data_notebook=notebook_id.split("link");
+				
 	                my_glossary_id=data_notebook[1];
 	                $.ajax({
 	                    contentType: "application/x-www-form-urlencoded",
@@ -85,5 +98,6 @@ $(document).ready(function() {
 				}
 
             });
+/*			
         });
-});
+});*/

+ 15 - 4
main/inc/lib/fckeditor/editor/plugins/glossary/fck_glossary_manual.js

@@ -1,5 +1,15 @@
-$(document).ready(function() {
-    $(window).load(function () {
+/**
+
+Makes posible to load glossary items from the Glossary Tool
+This library will be loaded in:
+
+document/showinframes.php
+newscorm/lp_view.php
+newscorm/scorm_api.php
+
+*/
+//$(document).ready(function() {
+//    $(window).load(function () {
 	  my_protocol = location.protocol;
 	  my_pathname=location.pathname;
 	  work_path = my_pathname.substr(0,my_pathname.indexOf('/courses/'));
@@ -29,5 +39,6 @@ $(document).ready(function() {
 	        div_show_id=current_element.find("div").attr("id");
 	        $("div#"+div_show_id).remove();
 	    });
-    });
-});
+		
+//    });
+//});

+ 2 - 1
main/inc/lib/fckeditor/fcktemplates.xml.php

@@ -19,6 +19,7 @@ $css = loadCSS(api_get_setting('stylesheets'));
 
 
 // load libreries js
+/* This libraries will be loaded in the showinframes.php file
 $js = '';
 if (api_get_setting('show_glossary_in_documents') != 'none') {
 	$js .= '<script language="javascript" src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.js"/>'.PHP_EOL;
@@ -29,7 +30,7 @@ if (api_get_setting('show_glossary_in_documents') != 'none') {
 		$js .= '<script language="javascript" src="'.api_get_path(WEB_LIBRARY_PATH).'fckeditor/editor/plugins/glossary/fck_glossary_automatic.js"/>';
 	}
 }
-
+*/
 // setting some paths
 $img_dir = api_get_path(REL_CODE_PATH).'img/';
 $default_course_dir = api_get_path(REL_CODE_PATH).'default_course_document/';

+ 181 - 6
main/inc/lib/group_portal_manager.lib.php

@@ -9,14 +9,16 @@
 ==============================================================================
 */
 // Group permissions
-define('GROUP_PERMISSION_OPEN'	, '1');
+define('GROUP_PERMISSION_OPEN'	, '1'); 
 define('GROUP_PERMISSION_CLOSED', '2');
 
 // Group user permissions
 define('GROUP_USER_PERMISSION_ADMIN'	,'1'); // the admin of a group 
 define('GROUP_USER_PERMISSION_READER'	,'2'); // a normal user
-define('GROUP_USER_PERMISSION_PENDING_INVITATION'	,'3'); 	//   When an admin invite a user
+
+define('GROUP_USER_PERMISSION_PENDING_INVITATION'	,'3'); 	//   When an admin/moderator invite a user
 define('GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER'	,'4'); // When a user whats to join to a group
+
 define('GROUP_USER_PERMISSION_MODERATOR'	,'5'); // a moderator
 
 define('GROUP_USER_PERMISSION_ANONYMOUS'	,'6'); // an anonymous user  
@@ -186,7 +188,7 @@ class GroupPortalManager
 		$table	= Database :: get_main_table(TABLE_MAIN_GROUP);
 		$group_id = intval($group_id);
 		$user_condition = '';		
-		$sql = "SELECT name, description, picture_uri, url, visibility  FROM $table WHERE id = $group_id ";
+		$sql = "SELECT id, name, description, picture_uri, url, visibility  FROM $table WHERE id = $group_id ";
 		$res = Database::query($sql, __FILE__, __LINE__);
 		$item = array(); 
 		if (Database::num_rows($res)>0) {
@@ -528,11 +530,14 @@ class GroupPortalManager
 	{
 		$table_url_rel_group = Database :: get_main_table(TABLE_MAIN_USER_REL_GROUP);
 		if (!empty($user_id) && !empty($group_id)) {			
-			$role = self::get_user_group_role($user_id,$group_id);
-			if ($role==0) {
+			$role = self::get_user_group_role($user_id,$group_id);			
+			if ($role == 0) {
 				$sql = "INSERT INTO $table_url_rel_group
            				SET user_id = ".intval($user_id).", group_id = ".intval($group_id).", relation_type = ".intval($relation_type);
 				$result = Database::query($sql, __FILE__, __LINE__);
+			} elseif($role == GROUP_USER_PERMISSION_PENDING_INVITATION) { 
+				//if somebody already invited me I can be added
+				self::update_user_role($user_id, $group_id, GROUP_USER_PERMISSION_READER);
 			}
 		}
 		return $result;
@@ -678,7 +683,7 @@ class GroupPortalManager
 		$group_id = intval($group_id);
 		$user_id = intval($user_id);
 		
-		echo $sql = "SELECT user_id FROM  $table_group_rel_user WHERE
+		$sql = "SELECT user_id FROM  $table_group_rel_user WHERE
    				relation_type = ".GROUP_USER_PERMISSION_ADMIN." AND user_id = $user_id AND group_id = $group_id" ;
 		$result = Database::query($sql, __FILE__, __LINE__);
 	}
@@ -1056,5 +1061,175 @@ class GroupPortalManager
 	public static function delete_group_picture($group_id) {
 		return self::update_group_picture($group_id);
 	}	
+	
+	public static function is_group_admin($group_id) {
+		$user_role	= GroupPortalManager::get_user_group_role(api_get_user_id(), $group_id);	
+		if (in_array($user_role, array(GROUP_USER_PERMISSION_ADMIN))) {
+			return true;
+		} else {
+			return false;
+		}			
+	}
+	
+	public static function is_group_moderator($group_id) {
+		$user_role	= GroupPortalManager::get_user_group_role(api_get_user_id(), $group_id);	
+		if (in_array($user_role, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_MODERATOR))) {
+			return true;
+		} else {
+			return false;
+		}			
+	}
+	
+	public static function is_group_member($group_id) {		
+		$user_role	= GroupPortalManager::get_user_group_role(api_get_user_id(), $group_id);
+		if (in_array($user_role, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_MODERATOR, GROUP_USER_PERMISSION_READER))) {
+			return true;
+		} else {
+			return false;
+		}			
+	}
+	
+	public static function show_group_column_information($group_id, $user_id) {
+		
+		$group_info = GroupPortalManager::get_group_data($group_id); 
+		$picture	= GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'],160,'medium_');
+		$big_image	= GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'],'','big_');
+		
+		$tags		= GroupPortalManager::get_group_tags($group_id, true);
+		$users		= GroupPortalManager::get_users_by_group($group_id, true);
+		
+		
+		//my relation with the group is set here
+		
+		if (is_array($users[api_get_user_id()]) && count($users[api_get_user_id()]) > 0) {
+			//im a member
+			if ($users[api_get_user_id()]['relation_type'] != '' ) {			
+				$my_group_role = $users[api_get_user_id()]['relation_type'];
+			} else {
+				$my_group_role = GROUP_USER_PERMISSION_ANONYMOUS;		
+			}
+		} else {
+			//im not a member
+			$my_group_role = GROUP_USER_PERMISSION_ANONYMOUS;		
+		}
+		
+		//@todo this must be move to default.css for dev use only
+		echo '<style> 		
+				#group_members { width:233px; height:300px; overflow-x:none; overflow-y: auto;}
+				.group_member_item { width:98px; height:86px; float:left; margin:5px 5px 15px 5px; }
+				.group_member_picture { display:block;
+				
+					margin:0;
+					overflow:hidden; }; 
+		</style>';
+		echo '<div id="layout-left" style="float: left; width: 280px; height: 100%;">';
+	
+		//Group's title
+		echo '<h1>'.$group_info['name'].'</h1>';
+		
+		//Group's image 
+		echo '<div id="group_image">';
+		
+		if (basename($picture['file']) != 'unknown_group.png') {
+	  		echo '<a class="thickbox" href="'.$big_image['file'].'"><img src='.$picture['file'].' /> </a><br /><br />';
+		} else {
+			echo '<img src='.$picture['file'].' /><br /><br />';
+		}			
+	
+		echo '</div>';
+		
+		//Group's description 
+		echo '<div id="group_description">';
+			echo $group_info['description'];
+		echo '</div>';
+		
+		//Group's description 
+		echo '<div id="group-url">';
+			echo $group_info['url'];
+		echo '</div>';
+		
+		
+		//Privacy
+		echo '<div id="group_privacy">';
+			echo get_lang('Privacy').' : ';
+			if ($group_info['visibility']== GROUP_PERMISSION_OPEN) {
+				echo get_lang('ThisIsAnOpenGroup');
+			} elseif ($group_info['visibility']== GROUP_PERMISSION_CLOSED) {
+				echo get_lang('ThisIsACloseGroup');
+			}
+		echo '</div>';
+		
+		//Group's tags
+		if (!empty($tags)) {
+			echo '<div id="group_tags">';
+				echo get_lang('Tags').' : '.$tags;
+			echo '</div>';
+		}
+			
+		//Compose message link
+		if (in_array($my_group_role, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_MODERATOR, GROUP_USER_PERMISSION_READER))) {	 
+			echo '<div id="actions" style="margin:10px">';
+			echo '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=400&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display :: return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a>';
+			//echo '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?group_id='.$group_id.'">'.Display::return_icon('message_new.png',api_xml_http_response_encode(get_lang('ComposeMessage'))).api_xml_http_response_encode(get_lang('ComposeMessage')).'</a>';
+			echo '</div>';
+		}
+		
+		//Members
+		echo get_lang('Members').' : ';	
+		echo '<div id="group_members">';		
+			foreach($users as $user) {		
+				if (in_array($user['relation_type'] , array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER,GROUP_USER_PERMISSION_MODERATOR))) {		
+					if ($user['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
+						$user['lastname'].= Display::return_icon('admin_star.png', get_lang('Admin'));
+					}
+					if ($user['relation_type'] == GROUP_USER_PERMISSION_MODERATOR) {
+						$user['lastname'].= Display::return_icon('moderator_star.png', get_lang('Moderator'));
+					}
+					
+					echo '<div class="group_member_item"><a href="profile.php?u='.$user['user_id'].'">';
+						echo '<div class="group_member_picture">'.$user['image'].'</div>';
+						echo api_get_person_name($user['firstname'], $user['lastname']).'</a></div>';
+				}
+			}
+		echo '</div>';
+		
+		
+		//loading group permission
+		
+		echo '<div id="group_permissions">';	
+		switch ($my_group_role) {
+			case GROUP_USER_PERMISSION_READER:
+				// I'm just a reader
+				echo '<a href="groups.php?id='.$group_id.'&action=leave&u='.api_get_user_id().'">'.get_lang('LeaveGroup').'</a>';
+				echo '<a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a>';
+					
+				break;
+			case GROUP_USER_PERMISSION_ADMIN:
+				echo 'Im the admin/';
+				echo '<a href="group_edit.php?id='.$group_id.'">'.get_lang('EditGroup').'</a>';
+				echo '<a href="group_members.php?id='.$group_id.'">'.get_lang('MemberList').'</a>';
+				echo '<a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a>';
+				break;
+			case GROUP_USER_PERMISSION_PENDING_INVITATION:				
+				echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang(YouHaveBeenInvitedJoinNow).'</a>';
+				break;
+			case GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER:
+				echo get_lang('WaitingForAdminResponse');
+				break;
+			case GROUP_USER_PERMISSION_MODERATOR:
+				echo '<a href="group_members.php?id='.$group_id.'">'.get_lang('MemberList').'</a>';
+				echo '<a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a>';
+				break;
+			case GROUP_USER_PERMISSION_ANONYMOUS:
+				echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a>';
+		}
+		echo '</div>'; // end layout permissions
+		
+	
+	echo '</div>'; // end layout left	
+	
+		
+		
+	}
 }
 ?>

+ 270 - 0
main/inc/lib/javascript/jquery.frameready.js

@@ -0,0 +1,270 @@
+/****
+ *
+ * frameReady: Remote function calling for jQuery
+ *
+ * Version 1.2.0
+ *
+ * Copyright (c) 2007 Daemach (John Wilson) <daemach@gmail.com>, http://ideamill.synaptrixgroup.com
+ * Licensed under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ * 
+ *	Credit John Resig and his excellent book for the ready function concepts.
+ *
+ * ============================================================================================
+ * Usage:  	$.frameReady(function (function),target (string)[,options (map/object)]);
+ * 
+ * Function: (function/required) An anonymous function to be run within the target frame.
+ *
+ * Target: (string/required) The target frame.  This must be a window object name (in quotes), 
+ *		so work from the top down.  If you have 3 frames named topFrame, navFrame, mainFrame, and 
+ *		an iframe inside of mainframe named iFrame, use "top.topFrame", "top.navFrame", 
+ *		"top.mainFrame", "top.mainFrame.iFrame" respectively.
+ *
+ *	Options: (object/optional) Map of options in object literal form.  Options include:
+ *
+ * 		remote: (boolean/ default true)  Run the function in the context of the target frame. 
+ *				If true, jQuery will be loaded in the target frame automatically and you can run 
+ *				jQuery selectors in the target frame as if they were local. ie: $("p") instead of 
+ *				$("p",top.mainFrame.document).  If false, jQuery will not be loaded automatically 
+ *				and you must use a context in jquery selectors.
+ *				
+ *			load: (array or object)  jquery is loaded by default. You can pass a single object to 
+ *				frameReady, or an array of objects that will be loaded and tested in order.  2 types 
+ *				of files can be loaded.  Scripts	and stylesheets:
+ *				
+ *				scripts: {type:"script", src:"/js/myscript.js", id:"_ms", test:"afunction"}
+ *				stylesheets: {type:"stylesheet", src:"/css/mycss.css", id:"_ss"}
+ *				
+ *					type: (string/required) "script" for script files, "stylesheet" for stylesheets.
+ *					src: (string/required)  The source of the file, ie: /js/myscript.js.
+ *					id: (string/optional)  An id for the id attribute.  If one isn't provided it 
+ *						will be generated.
+ *					test: (sting/optional) The name of a function that should exist once the script 
+ *						is loaded properly.  Until this function becomes available, the script will 
+ *						be considered not ready and no other files will be loaded.  If a test is not 
+ *						provided, the next file will be loaded immediately.  Tests are not useful 
+ *						with stylesheets.
+ *
+ *	One gotcha: You must have something other than space characters within the body tags of 
+ * 	target frame documents for frameReady to work properly.  A single character is enough.  
+ *		The reason for this is a workaround for an iFrame bug in Firefox, of all things.
+ * ==============================================================================================
+ *
+ * Example: 
+ *
+ *		$.frameReady(function(){
+ *		  $("<div>I am a div element</div>").prependTo("body");
+ *		}, "top.mainFrame", 
+ *		{ load: [ 
+ *			{type:"script",id:"_fr",src:"/js/jquery.frameReady.js",test: "$.frameReady"},
+ *			{type:"stylesheet",id:"_ss",src:"frameReady.css"} 
+ *			] } 
+ *		); 
+ *
+ *
+ * Release Notes:
+ *	
+ *	1.2.0 - Added provision for a local callback function;
+ *	        Added functionality to reset frame information if frame unloads for any reason;
+ *			  
+ *	1.1.0 - Added the ability to load scripts and stylesheets inside the target frame before
+ *					processing function stack;
+ *	
+ ****/
+ 
+if (typeof $daemach == "undefined") { 
+	$daemach = {}; 
+	$daemach.debug = false;  // set this to true to enable logging
+	$daemach.log = function() {
+		if (!top.window.console || !top.window.console.log || !$daemach.debug) { 
+			return;
+		} else { 
+			top.window.console.log([].join.call(arguments,'')); 
+		}
+	}
+}
+
+if (typeof $daemach["frameReady"] == "undefined") { 
+	$daemach["frameReady"] = {}; 
+}
+ 
+jQuery.frameReady = function(f,t,r,j) {
+	
+	/************************************************************
+		You must specify the path to your jquery.js file below!	
+	*************************************************************/
+	
+	var jQueryPath = "/main/inc/lib/javascript/jquery.js";
+	
+	var u = "undefined";	
+	var $fr = $daemach["frameReady"];
+	var fn = t.split(".").join("_");	
+	// create a branch
+	if (typeof $fr[fn] == u) { 
+		$fr[fn] = {}; 
+		$fr[fn]["settings"] = {	
+			remote: true,
+			jquery: true,
+			load: [ {type:"script",id:"_jq", src:jQueryPath, test:"jQuery"} ],
+			bLoaded: false,
+			loadInit: [],
+			callback: false
+		};
+		$fr[fn]["target"] = t;
+	}
+	var fr = $fr[fn];	
+	var frs = fr["settings"];
+	
+	if (fr.done) { 
+		$daemach.log(fr.target + " is ready.  Running functions now.");
+		return (frs.remote) ? eval(fr.target).eval("(" + f.toString() + ")()") : f(); 
+	};
+	
+	// process arguments
+
+	for (var a=2;a<arguments.length;a++){
+		var arg = arguments[a];
+		
+		if ($.isFunction(arg)){
+			frs.callback = arg;
+		} else if (typeof arg == "object") {
+			if (typeof arg.remote !== u) { 
+				frs.remote = arg.remote;
+			};
+			if (typeof arg.jquery !== u) { 
+				frs.jquery = arg.jquery;
+			};
+			
+			// if we're not running functions in the remote frame itself, no need for jQuery
+			if (!frs.remote || !frs.jquery) { 
+				frs.load.pop(); 
+			}
+			
+			if (typeof arg.load !== u) {
+				var bl = true;
+				if (arg.load.constructor == Array && arg.load.length){
+					for (var i=0;i<arg.load.length;i++){
+						bl = true;
+						for (var h=0;h<frs.load.length;h++){
+							if (frs.load[h].src == arg.load[i].src) { bl=false; };
+						}
+						if (bl) { frs.load.push(arg.load[i]); }
+					}
+				} else if (typeof arg.load == "object") {
+					for (var h=0;h<frs.load.length;h++){
+						if (frs.load[h].src == arg.load.src) { bl=false; };
+					}
+					if (bl) { frs.load.push(arg.load); }
+				}
+			}
+		}
+	}
+
+	if (fr.timer) {
+		fr.ready.push(f);
+	} else {
+		fr.ready=[f];
+		if (typeof addEvent !== "undefined"){ addEvent(window,"load",function(){ jQuery.isFrameReady(fn); }); };
+		fr.timer = setInterval(function(){ jQuery.isFrameReady(fn); },13);
+	}
+}
+
+jQuery.isFrameReady = function(fn){
+	var u = "undefined";	
+	var $d = $daemach;
+	var fr = $d["frameReady"][fn];
+	var frs = fr["settings"];
+	
+	if (fr.done) { return false; };
+
+	var fx = eval(fr.target);
+	$d.log(fn, ": New Pass. Checking target");
+	// make sure we have a target
+	if (typeof fx !== "undefined") {
+		$d.log(fn, ": Found target.  Checking DOM");
+		var fd = fx.document;
+		
+		// make sure we have a DOM
+		if (fd && fd.getElementsByTagName && fd.getElementById && fd.body && fd.body.innerHTML.length) {
+			
+			$d.log(fn, ": Found DOM");
+			
+			if (frs.load.length && !frs.bLoaded){
+				for (var i=0;i<frs.load.length;i++){
+					var s = frs.load[i];
+					var _test;
+					try { _test = eval('typeof fx.'+s.test+ ' !== "undefined"'); } 
+					catch(ex){ _test = false;}
+					finally { $d.log(fn, ": Running test for script ",i,". ", (_test || !s.test) ? "Passed.":"Failed."); }
+
+					if ((_test || !s.test) && frs.loadInit[i]) {
+						frs.bLoaded = (typeof s.test == u) ? true : _test; 
+						continue; 
+					} else {
+						frs.bLoaded = false;
+						if (typeof frs.loadInit[i] == u){
+							var id = s.id || "frs_"+i;
+							switch (s.type) {
+								case "script" :
+									$d.log(fn, ": Loading script "+ i + " (" + s.src + ")");
+									var ele=fd.createElement('script');
+									ele.setAttribute('id', id);
+									ele.setAttribute('src', s.src);
+									fd.getElementsByTagName("body")[0].appendChild(ele);
+									void(ele);
+									frs.loadInit[i] = true;
+									break
+								case "stylesheet" :
+									$d.log(fn, ": Loading stylesheet "+ i + " (" + s.src + ")");
+									var ele=fd.createElement('link');
+									ele.setAttribute('id', id);
+									ele.setAttribute('href', s.src);
+									ele.setAttribute('rel', "stylesheet");
+									ele.setAttribute('type', "text/css");
+									fd.getElementsByTagName("body")[0].appendChild(ele);
+									void(ele);
+									frs.loadInit[i] = true;
+								break
+								default :
+									$d.log(fn, ": Script "+i+" has a bad or missing type attribute..." );
+							}
+						}
+						break;
+					}
+				}
+			} else {
+				clearInterval(fr.timer);	
+				fr.timer = null;
+
+				fr.ready.push(function(){ window.frameReadyUnload = function(root, fn){ $(window).bind("unload",function(){ root.jQuery.frameReady.unload(fn); }); } });
+				
+				$d.log(fn, ": Processing function stack:");
+				for (var i=0; i<fr.ready.length;i++){
+					(frs.remote) ? fx.eval("(" + fr.ready[i].toString() + ")()") : fr.ready[i]();
+				}
+				
+				fx.frameReadyUnload(window,fn);
+				
+				$d.log(fn, ": Function stack processing complete.");
+				
+				// we're done here.  let's have a beer.
+				fr.ready = null;
+				fr.done=true;
+				
+				if (frs.callback){ 
+					$d.log(fn, ": Found a callback.  Executing...");
+					frs.callback(); 
+				}
+			}
+		}
+	} 
+
+	$d.log(fn, ":");
+}
+
+jQuery.frameReady.unload = function(fn){
+	$daemach.log("Frame " + fn + " is unloading.  Resetting state.")
+	$daemach["frameReady"][fn].done = false;
+	$daemach["frameReady"][fn]["settings"].bLoaded = false;
+	$daemach["frameReady"][fn]["settings"].loadInit = [];
+}

+ 59 - 54
main/inc/lib/javascript/jquery.highlight.js

@@ -1,68 +1,73 @@
 /*
-
 highlight v3
 
 Highlights arbitrary terms.
-
 <http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>
-
 MIT license.
 
-Johann Burkard
-<http://johannburkard.de>
-<mailto:jb@eaio.com>
+Johann Burkard <http://johannburkard.de> <mailto:jb@eaio.com>
+Julio Montoya <gugli100@gmail.com> fixes for the Glossary tool to strict search 
 
 */
 
 jQuery.fn.highlight = function(pat,real_code) {
- function innerHighlight(node, pat) {
-  var skip = 0;
-  if (node.nodeType == 3) {
-   var pos = node.data.toUpperCase().indexOf(pat);
-   if (pos >= 0) {
-    var spannode = document.createElement('a');
-    spannode.className = 'glossary-ajax';
-    spannode.style.color = '#084B8A';
-    spannode.style.fontWeight='100';
-	spannode.style.textDecoration = 'none';
-    spannode.name = 'link'+real_code;
-    spannode.href = '#';
-    var SearchRegExp = new RegExp("(" + pat +")","gi");
-    var MatchRegExp = node.nodeValue.match(SearchRegExp);
-
-    if (MatchRegExp == null) {
-        MatchRegExp = new Array();
-    }
-    if (MatchRegExp.length > 0 && node.nodeValue[pat.length+1] != '') {
-     	var middlebit = node.splitText(pos);
-    	var endbit = middlebit.splitText(pat.length);
-    	if (endbit.nodeValue[0] == null || endbit.nodeValue[0] == ' ' || endbit.nodeValue[0] == '.' || endbit.nodeValue[0] == ',' || endbit.nodeValue[0] == ';' || endbit.nodeValue[0] == '"') {
-        	var middleclone = middlebit.cloneNode(true);
-    		spannode.appendChild(middleclone);
-        	middlebit.parentNode.replaceChild(spannode, middlebit);
-    	}  	
-    }
-    skip = 1;
-   }
-  }
-  else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
-   for (var i = 0; i <node.childNodes.length ; ++i) {
-    i += innerHighlight(node.childNodes[i], pat);
-   }
-  }
-  return skip;
- }
- return this.each(function() {
-  innerHighlight(this, pat.toUpperCase());
- });
+	
+	function innerHighlight(node, pat) {
+		var skip = 0; 
+		if (node.nodeType == 3 ) {
+			// Highlight all coincidences
+			//var pos = node.data.toUpperCase().indexOf(pat);
+			
+			//Highlight strict, exact words
+			var SearchRegExp = new RegExp("(\\b)"+pat+"(\\b)","gi");
+			var pos = node.nodeValue.search(SearchRegExp);
+			
+			if (pos >= 0 ) {
+				var spannode = document.createElement('a');
+				spannode.className = 'glossary-ajax';			
+				spannode.style.color = '#084B8A';
+				spannode.style.fontWeight='100';
+				spannode.style.textDecoration = 'none';
+				spannode.name = 'link'+real_code;
+				spannode.href = '#';
+				var SearchRegExp = new RegExp("(" + pat +")","gi");
+				var MatchRegExp = node.nodeValue.match(SearchRegExp);
+				if (MatchRegExp == null) {
+					MatchRegExp = new Array();
+				}
+			
+				if (MatchRegExp.length > 0 && node.nodeValue[pat.length+1] != '') {
+					var middlebit = node.splitText(pos);
+					var endbit = middlebit.splitText(pat.length);
+					if (endbit.nodeValue[0] == null || endbit.nodeValue[0] == ' ' || endbit.nodeValue[0] == '.' || endbit.nodeValue[0] == ',' || endbit.nodeValue[0] == ';' || endbit.nodeValue[0] == '"') {
+						var middleclone = middlebit.cloneNode(true);
+						spannode.appendChild(middleclone);
+						middlebit.parentNode.replaceChild(spannode, middlebit);
+					}  	
+				}
+				skip = 1;
+			}
+		} else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {		
+			for (var i = 0; i <node.childNodes.length ; ++i) {				
+				i += innerHighlight(node.childNodes[i], pat);					
+		   	}
+		}
+	  return skip;
+	}		
+	
+	return this.each(function() {
+		innerHighlight(this, pat.toUpperCase());	
+	});
+	
 };
-
+	
 jQuery.fn.removeHighlight = function() {
- return this.find("a.highlight").each(function() {
-  this.parentNode.firstChild.nodeName;
-  with (this.parentNode) {
-   replaceChild(this.firstChild, this);
-   normalize();
-  }
- }).end();
+	return this.find("a.highlight").each(function() {
+		this.parentNode.firstChild.nodeName;
+		with (this.parentNode) {
+	   		replaceChild(this.firstChild, this);
+	   		normalize();
+	  	}
+	}).end();
+
 };

+ 86 - 77
main/inc/lib/message.lib.php

@@ -501,19 +501,20 @@ class MessageManager
 			 } else {
 				$message[0] = ($result[0]);
 			 }
-
+			 
+			$class = 'class = "read"';
+			
 			if ($request===true) {
-			   if ($result[5]==4)
-			   {
+			   if ($result[5]==4) {
 			   		$message[1] = Display::return_icon('mail_send.png',get_lang('MessageSent'));//Message Sent
 			   }
 				$message[2] = '<a onclick="show_sent_message('.$result[0].')" href="javascript:void(0)">'.GetFullUserName($result[4]).'</a>';
 				$message[3] = '<a onclick="show_sent_message('.$result[0].')" href="javascript:void(0)">'.str_replace("\\","",$result[2]).'</a>';
 				$message[5] = '&nbsp;&nbsp;<a onclick="delete_one_message_outbox('.$result[0].')" href="javascript:void(0)"  >'.Display::return_icon('message_delete.png',get_lang('DeleteMessage')).'</a>';
 			} else {
-				$message[2] = '<a onclick="show_sent_message ('.$result[0].')" href="../messages/view_message.php?id_send='.$result[0].'">'.GetFullUserName($result[4]).'</a>';
-				$message[3] = '<a onclick="show_sent_message ('.$result[0].')" href="../messages/view_message.php?id_send='.$result[0].'">'.$result[2].'</a>';
-				$message[5] = '<a href="new_message.php?re_id='.$result[0].'">'.Display::return_icon('message_reply.png',get_lang('ReplyToMessage')).'</a>'.
+				$message[2] = '<a '.$class.' onclick="show_sent_message ('.$result[0].')" href="../messages/view_message.php?id_send='.$result[0].'">'.GetFullUserName($result[4]).'</a>';
+				$message[3] = '<a '.$class.' onclick="show_sent_message ('.$result[0].')" href="../messages/view_message.php?id_send='.$result[0].'">'.$result[2].'</a>';
+				$message[5] = '<a '.$class.' href="new_message.php?re_id='.$result[0].'">'.Display::return_icon('message_reply.png',get_lang('ReplyToMessage')).'</a>'.
 						  '&nbsp;&nbsp;<a href="outbox.php?action=deleteone&id='.$result[0].'"  onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmDeleteMessage')))."'".')) return false;">'.Display::return_icon('message_delete.png',get_lang('DeleteMessage')).'</a>';
 			}
 			$message[4] = $result[3]; //date stays the same
@@ -542,31 +543,30 @@ class MessageManager
 	/**
 	 * display message box in the inbox 
 	 * @param int the message id
+	 * @param string inbox or outbox strings are available
 	 * @return string html with the message content
 	 */
-	public static function show_message_box($message_id) {
+	public static function show_message_box($message_id, $source = 'inbox') {
 		$table_message 		= Database::get_main_table(TABLE_MESSAGE);
 		$tbl_message_attach = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT);
+		$message_id = intval($message_id);	
 		
-		
-	/*	if (isset($_GET['id_send']) && is_numeric($_GET['id_send'])) {
-			// when I get here ? by Julio Montoya
-			$query = "SELECT * FROM $table_message WHERE user_sender_id=".api_get_user_id()." AND id=".intval(Database::escape_string($_GET['id_send']))." AND msg_status=4;";
-			$result = Database::query($query,__FILE__,__LINE__);
-		    $path='outbox.php';
-		    $message_id = intval($_GET['id_send']);
-		} else {*/
-		
-		$message_id = intval($message_id);			
-		if (is_numeric($message_id) && !empty($message_id)) {
-			$query = "UPDATE $table_message SET msg_status = '".MESSAGE_STATUS_NEW."' WHERE user_receiver_id=".api_get_user_id()." AND id='".$message_id."';";
-			$result = Database::query($query,__FILE__,__LINE__);
-			
-			$query = "SELECT * FROM $table_message WHERE msg_status<>4 AND user_receiver_id=".api_get_user_id()." AND id='".$message_id."';";
-			$result = Database::query($query,__FILE__,__LINE__);
-		}						
+		if ($source == 'outbox') {
+			if (isset($message_id) && is_numeric($message_id)) {
+				$query = "SELECT * FROM $table_message WHERE user_sender_id=".api_get_user_id()." AND id=".$message_id." AND msg_status=4;";
+				$result = Database::query($query,__FILE__,__LINE__);
+			    $path='outbox.php';		    
+			}
+		} else {	
+			if (is_numeric($message_id) && !empty($message_id)) {
+				$query = "UPDATE $table_message SET msg_status = '".MESSAGE_STATUS_NEW."' WHERE user_receiver_id=".api_get_user_id()." AND id='".$message_id."';";
+				$result = Database::query($query,__FILE__,__LINE__);
+				
+				$query = "SELECT * FROM $table_message WHERE msg_status<>4 AND user_receiver_id=".api_get_user_id()." AND id='".$message_id."';";
+				$result = Database::query($query,__FILE__,__LINE__);
+			}						
 			$path='inbox.php';			
-		//}
+		}
 
 		$row = Database::fetch_array($result);
 		
@@ -621,6 +621,11 @@ class MessageManager
 		        <div id="message-attach">'.(!empty($files_attachments)?implode('&nbsp;|&nbsp;',$files_attachments):'').'</div>				        		
 		        <DIV class=HT style="PADDING-BOTTOM: 5px">';
 		        
+		    if ($source == 'outbox') {
+		    	$message_content .= '<a href="outbox.php">'.Display::return_icon('back.png',get_lang('ReturnToOutbox')).get_lang('ReturnToOutbox').'</a> &nbsp';
+		    } else {
+		    	$message_content .= '<a href="inbox.php">'.Display::return_icon('back.png',get_lang('ReturnToInbox')).get_lang('ReturnToInbox').'</a> &nbsp';
+		    }
 			$message_content .= '<a href="new_message.php?re_id='.$message_id.'">'.Display::return_icon('message_reply.png',get_lang('ReplyToMessage')).get_lang('ReplyToMessage').'</a> &nbsp';
 			$message_content .= '<a href="inbox.php?action=deleteone&id='.$message_id.'" >'.Display::return_icon('message_delete.png',get_lang('DeleteMessage')).''.get_lang('DeleteMessage').'</a>&nbsp';
 
@@ -720,13 +725,13 @@ class MessageManager
 	 * @param int group id
 	 */
 	public static function display_messages_for_group($group_id) {
-				
-		global $origin;						
+						
 		$rows = self::get_messages_by_group($group_id);						
 		$rows = self::calculate_children($rows);
 		$group_info = GroupPortalManager::get_group_data($group_id);		
 		$count=0;
-		if (is_array($rows) && count($rows)> 0) {	
+		$html = '';
+		if (is_array($rows) && count($rows)> 0) {
 			foreach ($rows as $message) {
 				$indent	= $message['indent_cnt']*'20';
 				$user_sender_info = UserManager::get_user_info_by_id($message['user_sender_id']);
@@ -745,25 +750,28 @@ class MessageManager
 				
 				// get file attachments by message id
 				$files_attachments = self::get_links_message_attachment_files($message['id']);
-							
+				
 				$name = api_get_person_name($user_sender_info['firstname'], $user_sender_info['lastname']);						
-				echo '<div class="'.$message_item.'" id="message-item-'.$count.'" style="margin-left: '.$indent.'px;">';
+				$html.= '<div class="'.$message_item.'" id="message-item-'.$count.'" style="margin-left: '.$indent.'px;">';
 					
 					//if (!isset($message['children'])) {
-					echo '<div id="message-reply-link"><a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&message_id='.$message['id'].'" class="thickbox" title="'.api_xml_http_response_encode(get_lang('Reply')).'">'.Display :: return_icon('forumthread_new.gif', api_xml_http_response_encode(get_lang('Reply'))).'&nbsp;'.api_xml_http_response_encode(get_lang('Reply')).'</a></div>';
+					$html.= '<div id="message-reply-link"><a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&message_id='.$message['id'].'" class="thickbox" title="'.api_xml_http_response_encode(get_lang('Reply')).'">'.Display :: return_icon('forumthread_new.gif', api_xml_http_response_encode(get_lang('Reply'))).'&nbsp;'.api_xml_http_response_encode(get_lang('Reply')).'</a></div>';
 						//echo '<a href="/main/messages/new_message.php?group_id='.$group_id.'&message_id='.$message['id'].'">'.Display::return_icon('forumthread_new.gif',api_xml_http_response_encode(get_lang('Reply'))).'&nbsp;'.api_xml_http_response_encode(get_lang('Reply')).'</a>';
 					//}
 					
-					echo '<div class="'.$message_title_item.'">'.$message['title'].'&nbsp;(&nbsp;'.date_to_str_ago($message['send_date']).'&nbsp;)&nbsp;</div>';
+					$html.= '<div class="'.$message_title_item.'">'.$message['title'].'&nbsp;</div>';
 											
-					echo '<div class="message-group-author">'.get_lang('From').'&nbsp;<a href="'.api_get_path(WEB_PATH).'main/social/profile.php?u='.$message['user_sender_id'].'">'.$name.'&nbsp;</a></div>';		
-					echo '<div class="message-group-content">'.$message['content'].'</div>';
-					echo '<div class="message-attach">'.(!empty($files_attachments)?implode('&nbsp;|&nbsp;',$files_attachments):'').'</div>';
+					$html.= '<div class="message-group-author">'.get_lang('From').'&nbsp;<a href="'.api_get_path(WEB_PATH).'main/social/profile.php?u='.$message['user_sender_id'].'">'.$name.'&nbsp;</a></div>';		
+					$html.= '<div class="message-group-content">'.$message['content'].'</div>';
+					$html.= '<div class="message-group-date">'.get_lang('PostIn').' '.date_to_str_ago($message['send_date']).'</div>';
 					
-				echo '</div>';
+					$html.= '<div class="message-attach">'.(!empty($files_attachments)?implode('&nbsp;|&nbsp;',$files_attachments):'').'</div>';
+					
+				$html.= '</div>';
 				$count++;						
 			}
 		}
+		return $html;
 	}
 	
 	/**
@@ -931,6 +939,7 @@ function outbox_display() {
 	$request=api_is_xml_http_request();
 	global $charset;
 	if ($_SESSION['social_exist']===true) {
+		
 		$redirect="#remote-tab-3";
 		if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool')=='true') {
 			$success= get_lang('SelectedMessagesDeleted')."&nbsp<br><a href=\""."../social/index.php?$redirect\">".get_lang('BackToOutbox')."</a>";
@@ -941,51 +950,51 @@ function outbox_display() {
 	} else {
 		$success= get_lang('SelectedMessagesDeleted')."&nbsp</b>"."<br><a href=\""."outbox.php\">".get_lang('BackToOutbox')."</a>";
 	}
-if (isset ($_REQUEST['action'])) {
-	switch ($_REQUEST['action']) {
-		case 'delete' :
-		$number_of_selected_messages = count($_POST['id']);
-		if ($number_of_selected_messages!=0) {
-			foreach ($_POST['id'] as $index => $message_id) {
-				MessageManager::delete_message_by_user_receiver(api_get_user_id(), $message_id);
+	if (isset ($_REQUEST['action'])) {
+		switch ($_REQUEST['action']) {
+			case 'delete' :
+			$number_of_selected_messages = count($_POST['id']);
+			if ($number_of_selected_messages!=0) {
+				foreach ($_POST['id'] as $index => $message_id) {
+					MessageManager::delete_message_by_user_receiver(api_get_user_id(), $message_id);
+				}
 			}
+			Display::display_normal_message(api_xml_http_response_encode($success),false);
+			break;
+			case 'deleteone' :
+			MessageManager::delete_message_by_user_receiver(api_get_user_id(), $_GET['id']);
+			Display::display_confirmation_message(api_xml_http_response_encode($success),false);
+			echo '<br/>';
+			break;
 		}
-		Display::display_normal_message(api_xml_http_response_encode($success),false);
-		break;
-		case 'deleteone' :
-		MessageManager::delete_message_by_user_receiver(api_get_user_id(), $_GET['id']);
-		Display::display_confirmation_message(api_xml_http_response_encode($success),false);
-		echo '<br/>';
-		break;
 	}
-}
-
-// display sortable table with messages of the current user
-$table = new SortableTable('messages', 'get_number_of_messages_send_mask', 'get_message_data_send_mask', 3,get_number_of_messages_send_mask(),'DESC');
-$title=api_xml_http_response_encode(get_lang('Title'));
-$action=api_xml_http_response_encode(get_lang('Actions'));
-$table->set_header(0, '', false,array ('style' => 'width:20px;'));
-$table->set_header(1, api_xml_http_response_encode(get_lang('Status')),false,array ('style' => 'width:30px;'));
-$table->set_header(2, api_xml_http_response_encode(get_lang('To')),false);
-$table->set_header(3, $title,false);
-$table->set_header(4, api_xml_http_response_encode(get_lang('Date')),false,array ('style' => 'width:150px;'));
-$table->set_header(5,$action, false,array ('style' => 'width:100px;'));
-echo '<div id="div_content_table_data_sent">';
-	if ($request===true) {
-		echo '<form name="form_send_out" id="form_send_out" action="" method="post">';
-		echo '<input type="hidden" name="action" value="delete" />';
-		$table->display();
-		echo '</form>';
-		if (get_number_of_messages_send_mask() > 0) {
-			echo '<a href="javascript:void(0)" onclick="selectall_cheks()">'.api_xml_http_response_encode(get_lang('SelectAll')).'</a>&nbsp;&nbsp;&nbsp;';
-			echo '<a href="javascript:void(0)" onclick="unselectall_cheks()">'.api_xml_http_response_encode(get_lang('UnSelectAll')).'</a>&nbsp;&nbsp;&nbsp;';
-			echo '<button class="save" name="delete" type="button" value="'.api_xml_http_response_encode(get_lang('DeleteSelectedMessages')).'" onclick="submit_form(\'outbox\')">'.api_xml_http_response_encode(get_lang('DeleteSelectedMessages')).'</button>';
+	
+	// display sortable table with messages of the current user
+	$table = new SortableTable('messages', 'get_number_of_messages_send_mask', 'get_message_data_send_mask', 3,get_number_of_messages_send_mask(),'DESC');
+	$title=api_xml_http_response_encode(get_lang('Title'));
+	$action=api_xml_http_response_encode(get_lang('Actions'));
+	$table->set_header(0, '', false,array ('style' => 'width:20px;'));
+	$table->set_header(1, api_xml_http_response_encode(get_lang('Status')),false,array ('style' => 'width:30px;'));
+	$table->set_header(2, api_xml_http_response_encode(get_lang('To')),false);
+	$table->set_header(3, $title,false);
+	$table->set_header(4, api_xml_http_response_encode(get_lang('Date')),false,array ('style' => 'width:150px;'));
+	$table->set_header(5,$action, false,array ('style' => 'width:100px;'));
+	echo '<div id="div_content_table_data_sent">';
+		if ($request===true) {
+			echo '<form name="form_send_out" id="form_send_out" action="" method="post">';
+			echo '<input type="hidden" name="action" value="delete" />';
+			$table->display();
+			echo '</form>';
+			if (get_number_of_messages_send_mask() > 0) {
+				echo '<a href="javascript:void(0)" onclick="selectall_cheks()">'.api_xml_http_response_encode(get_lang('SelectAll')).'</a>&nbsp;&nbsp;&nbsp;';
+				echo '<a href="javascript:void(0)" onclick="unselectall_cheks()">'.api_xml_http_response_encode(get_lang('UnSelectAll')).'</a>&nbsp;&nbsp;&nbsp;';
+				echo '<button class="save" name="delete" type="button" value="'.api_xml_http_response_encode(get_lang('DeleteSelectedMessages')).'" onclick="submit_form(\'outbox\')">'.api_xml_http_response_encode(get_lang('DeleteSelectedMessages')).'</button>';
+			}
+		} else {
+			$table->set_form_actions(array ('delete' => get_lang('DeleteSelectedMessages')));
+			$table->display();
 		}
-	} else {
-		$table->set_form_actions(array ('delete' => get_lang('DeleteSelectedMessages')));
-		$table->display();
-	}
-echo '</div>';
+	echo '</div>';
 }
 function get_number_of_messages_send_mask() {
 	return MessageManager::get_number_of_messages_sent();

+ 2 - 1
main/inc/lib/sortabletable.class.php

@@ -459,7 +459,8 @@ class SortableTable extends HTML_Table {
 				$html .= '<div class="grid_nav">'.$nav.'</div>';			
 				$html .= '</div>';
 			}
-			$html .= '<div class="clear"></div>';
+			
+			//$html .= '<div class="clear"></div>';
 			if (count($this->form_actions) > 0) {			
 				$script= '<script language="javaScript" type="text/javascript">
 							/*<![CDATA[*/

+ 39 - 56
main/inc/lib/tracking.lib.php

@@ -92,31 +92,20 @@ class Tracking {
 	function get_time_spent_on_the_course($user_id, $course_code) {
 		// protect datas
 		$user_id = intval($user_id);
-		$course_code = addslashes($course_code);
-
+		$course_code = addslashes($course_code);		
 		$tbl_track_course = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
-
-		$sql = 'SELECT login_course_date, logout_course_date FROM ' . $tbl_track_course . '
-						WHERE user_id = ' . $user_id . '
-						AND course_code="' . $course_code . '"';
-
+		$condition_user = "";
+		if (is_array($user_id)) {
+			$condition_user = " AND user_id IN (".implode(',',$user_id).") ";
+		} else {
+			$condition_user = " AND user_id = '$user_id' ";
+		}				
+		$sql = " SELECT SUM(UNIX_TIMESTAMP(logout_course_date)-UNIX_TIMESTAMP(login_course_date)) as nb_seconds 
+				FROM $tbl_track_course
+				WHERE course_code='$course_code' $condition_user";
 		$rs = Database::query($sql,__FILE__,__LINE__);
-
-		$nb_seconds = 0;
-
-		while ($a_connections = Database::fetch_array($rs)) {
-
-			$s_login_date = $a_connections["login_course_date"];
-			$s_logout_date = $a_connections["logout_course_date"];
-
-			$i_timestamp_login_date = strtotime($s_login_date);
-			$i_timestamp_logout_date = strtotime($s_logout_date);
-
-			$nb_seconds += ($i_timestamp_logout_date - $i_timestamp_login_date);
-
-		}
-
-		return $nb_seconds;
+		$row = Database::fetch_array($rs);				
+		return $row['nb_seconds']; 
 	}
 
 	function get_first_connection_date($student_id) {
@@ -903,55 +892,49 @@ class Tracking {
 	function count_student_assignments($student_id, $course_code) {
 		require_once (api_get_path(LIBRARY_PATH) . 'course.lib.php');
 
-		// protect datas
-		$student_id = intval($student_id);
-		$course_code = addslashes($course_code);
-
+		// protect datas		
+		$course_code = Database::escape_string($course_code);
 		// get the informations of the course
 		$a_course = CourseManager :: get_course_information($course_code);
-
-		if(!empty($a_course['db_name']))
-		{
+		if (!empty($a_course['db_name'])) {
 			// table definition
-			$tbl_item_property = Database :: get_course_table(TABLE_ITEM_PROPERTY, $a_course['db_name']);
-			$sql = 'SELECT 1
-							FROM ' . $tbl_item_property . '
-							WHERE insert_user_id=' . $student_id . '
-							AND tool="work"';
+			$tbl_item_property = Database :: get_course_table(TABLE_ITEM_PROPERTY, $a_course['db_name']);			
+			$condition_user = "";
+			if (is_array($student_id)) {				
+				$condition_user = " AND insert_user_id IN (".implode(',',$student_id).") ";
+			} else {
+				$condition_user = " AND insert_user_id = '$student_id' ";				
+			}			
+			$sql = "SELECT count(tool) FROM $tbl_item_property WHERE tool='work' $condition_user ";
 			$rs = Database::query($sql, __LINE__, __FILE__);
-			return Database::num_rows($rs);
-		}
-		else
-		{
-			return null;
+			$row = Database::fetch_row($rs);
+			return $row[0];
 		}
+		return null;		
 	}
 
 	function count_student_messages($student_id, $course_code) {
 		require_once (api_get_path(LIBRARY_PATH) . 'course.lib.php');
 
 		// protect datas
-		$student_id = intval($student_id);
 		$course_code = addslashes($course_code);
-
 		// get the informations of the course
 		$a_course = CourseManager :: get_course_information($course_code);
-
-		if(!empty($a_course['db_name']))
-		{
+		if (!empty($a_course['db_name'])) {
 			// table definition
-			$tbl_messages = Database :: get_course_table(TABLE_FORUM_POST, $a_course['db_name']);
-			$sql = 'SELECT 1
-							FROM ' . $tbl_messages . '
-							WHERE poster_id=' . $student_id;
-
+			$tbl_messages = Database :: get_course_table(TABLE_FORUM_POST, $a_course['db_name']);			
+			$condition_user = "";
+			if (is_array($student_id)) {
+				$condition_user = " WHERE poster_id IN (".implode(',',$student_id).") ";
+			} else {
+				$condition_user = " WHERE poster_id = '$student_id' ";
+			}			
+			$sql = "SELECT count(post_id) FROM $tbl_messages $condition_user ";		
 			$rs = Database::query($sql, __LINE__, __FILE__);
-			return Database::num_rows($rs);
-		}
-		else
-		{
-			return null;
-		}
+			$row = Database::fetch_row($rs);
+			return $row[0];
+		}		
+		return null;		
 	}
 
 /**

+ 3 - 1
main/messages/outbox.php

@@ -135,7 +135,8 @@ echo '<div id="inbox-wrapper">';
 	echo '</div>';
 
 	echo '<div id="inbox">';
-			//MAIN CONTENT
+	
+		//MAIN CONTENT
 		if ($_REQUEST['action']=='delete') {
 			$delete_list_id=array();
 			if (isset($_POST['out'])) {
@@ -158,6 +159,7 @@ echo '<div id="inbox-wrapper">';
 		}else {
 			outbox_display();
 		}
+		
 	echo '</div>';
 
 echo '</div>';

+ 11 - 2
main/messages/view_message.php

@@ -2,7 +2,7 @@
 /* For licensing terms, see /chamilo_license.txt */
 
 // name of the language file that needs to be included
-$language_file= 'messages';
+$language_file= array('messages','userInfo');
 $cidReset= true;
 require_once '../inc/global.inc.php';
 api_block_anonymous_users();
@@ -75,7 +75,16 @@ echo '<div id="inbox-wrapper">';
 
 	echo '<div id="inbox">';
 		//MAIN CONTENT
-		$message = MessageManager::show_message_box($_GET['id']);
+		
+		if (empty($_GET['id'])) {
+			$id_message = $_GET['id_send'];
+			$source = 'outbox';
+		} else {
+			$id_message = $_GET['id'];
+			$source = 'inbox';
+		}
+		
+		$message = MessageManager::show_message_box($id_message,$source);
 		if (!empty($message)) {
 			echo $message;
 			

+ 16 - 142
main/mySpace/index.php

@@ -436,22 +436,14 @@ if ($view == 'coach') {
 		 </div>';
 	 }
 }
-
 echo '<div class="clear">&nbsp;</div>';
 
-
-
-
 if (api_is_allowed_to_create_course() && $view == 'teacher') {
 	
-	
 	if ($nb_teacher_courses) {
-
-		$table = new SortableTable('courses', 'get_number_of_courses' ,'get_course_data');
-						
+		$table = new SortableTable('courses', 'get_number_of_courses' ,'get_course_data');						
 		$parameters['view'] = 'teacher';
 		$parameters['class'] = 'data_table';
-
 		$table->set_additional_parameters($parameters);
 		$table -> set_header(0, get_lang('CourseTitle'), false, 'align="center"');
 		$table -> set_header(1, get_lang('NbStudents'), false);
@@ -472,117 +464,17 @@ if (api_is_allowed_to_create_course() && $view == 'teacher') {
 			get_lang('AvgExercisesScore', ''),
 			get_lang('AvgMessages', ''),
 			get_lang('AvgAssignments', '')
-		);
-		
+		);		
 		$table->display();
-		
-
-		/*
-		foreach ($courses as $course) {
-			$course_code = $course['course_code'];
-			$avg_assignments_in_course = $avg_messages_in_course = $nb_students_in_course = $avg_progress_in_course = $avg_score_in_course = $avg_time_spent_in_course = $avg_score_in_exercise = 0;
-
-			// students directly subscribed to the course
-			$sql = "SELECT user_id FROM $tbl_course_user as course_rel_user WHERE course_rel_user.status='5' AND course_rel_user.course_code='$course_code'";
-			$rs = Database::query($sql, __FILE__, __LINE__);
-			while ($row = Database::fetch_array($rs)) {
-				$nb_students_in_course++;
-
-				// tracking datas
-				$avg_progress_in_course += Tracking :: get_avg_student_progress ($row['user_id'], $course_code);
-				$avg_score_in_course += Tracking :: get_avg_student_score ($row['user_id'], $course_code);
-				$avg_score_in_exercise += Tracking :: get_avg_student_exercise_score ($row['user_id'], $course_code);
-				$avg_time_spent_in_course += Tracking :: get_time_spent_on_the_course ($row['user_id'], $course_code);
-				$avg_messages_in_course += Tracking :: count_student_messages ($row['user_id'], $course_code);
-				$avg_assignments_in_course += Tracking :: count_student_assignments ($row['user_id'], $course_code);
-				$a_course_students[] = $row['user_id'];
-			}
-
-			// students subscribed to the course through a session
-			if (api_get_setting('use_session_mode') == 'true') {
-				$sql = 'SELECT id_user as user_id
-					FROM '.$tbl_session_course_user.'
-					WHERE course_code="'.addslashes($course_code).'" ORDER BY course_code';
-				$rs = Database::query($sql, __FILE__, __LINE__);
-				while ($row = Database::fetch_array($rs)) {
-					if (!in_array($row['user_id'], $a_course_students)) {
-						$nb_students_in_course++;
-
-						// tracking datas
-						$avg_progress_in_course += Tracking :: get_avg_student_progress ($row['user_id'], $course_code);
-						$avg_score_in_course += Tracking :: get_avg_student_score ($row['user_id'], $course_code);
-						$avg_score_in_exercise += Tracking :: get_avg_student_exercise_score ($row['user_id'], $course_code);
-						$avg_time_spent_in_course += Tracking :: get_time_spent_on_the_course ($row['user_id'], $course_code);
-						$avg_messages_in_course += Tracking :: count_student_messages ($row['user_id'], $course_code);
-						$avg_assignments_in_course += Tracking :: count_student_assignments ($row['user_id'], $course_code);
-						$a_course_students[] = $row['user_id'];
-					}
-				}
-			}
-
-			if ($nb_students_in_course > 0) {
-				$avg_time_spent_in_course = api_time_to_hms($avg_time_spent_in_course / $nb_students_in_course);
-				$avg_progress_in_course = round($avg_progress_in_course / $nb_students_in_course, 2);
-				$avg_score_in_course = round($avg_score_in_course / $nb_students_in_course, 2);
-				$avg_score_in_exercise = round($avg_score_in_exercise / $nb_students_in_course, 2);
-				$avg_messages_in_course = round($avg_messages_in_course / $nb_students_in_course, 2);
-				$avg_assignments_in_course = round($avg_assignments_in_course / $nb_students_in_course, 2);
-			} else {
-				$avg_time_spent_in_course = null;
-				$avg_progress_in_course = null;
-				$avg_score_in_course = null;
-				$avg_score_in_exercise = null;
-				$avg_messages_in_course = null;
-				$avg_assignments_in_course = null;
-			}
-
-
-
-
-			$table_row = array();
-			$table_row[] = $course['title'];
-			$table_row[] = $nb_students_in_course;
-			$table_row[] = $avg_time_spent_in_course;
-			$table_row[] = is_null($avg_progress_in_course) ? '' : $avg_progress_in_course.'%';
-			$table_row[] = is_null($avg_score_in_course) ? '' : $avg_score_in_course.'%';
-			$table_row[] = is_null($avg_score_in_exercise) ? '' : $avg_score_in_exercise.'%';
-			$table_row[] = $avg_messages_in_course;
-			$table_row[] = $avg_assignments_in_course;
-			//set the "from" value to know if I access the Reporting by the Dokeos tab or the course link
-			$table_row[] = '<center><a href="../tracking/courseLog.php?cidReq='.$course_code.'&studentlist=true&from=myspace"><img src="'.api_get_path(WEB_IMG_PATH).'2rightarrow.gif" border="0" /></a></center>';
-
-			$csv_content[] = array(
-				api_html_entity_decode($course['title'], ENT_QUOTES, $charset),
-				$nb_students_in_course,
-				$avg_time_spent_in_course,
-				is_null($avg_progress_in_course) ? null : $avg_progress_in_course.'%',
-				is_null($avg_score_in_course) ? null : $avg_score_in_course.'%',
-				is_null($avg_score_in_exercise) ? null : $avg_score_in_exercise.'%',
-				$avg_messages_in_course,
-				$avg_assignments_in_course,
-			);
-
-			$table -> addRow($table_row, 'align="right"');
-
-			$a_course_students = array();
-		}
-		$table -> updateColAttributes(0, array('align' => 'left'));
-		$table -> updateColAttributes(7, array('align' => 'center'));
-		*/
-		//$table -> display();
 	}
 }
 
-
-
-
 if ($is_platform_admin && $view == 'admin') {
 	echo '<a href="'.api_get_self().'?view=admin&amp;display=coaches">'.get_lang('DisplayCoaches').'</a> | ';
 	echo '<a href="'.api_get_self().'?view=admin&amp;display=useroverview">'.get_lang('DisplayUserOverview').'</a>';
 	if ($_GET['display'] == 'useroverview') {
 		echo ' | <a href="'.api_get_self().'?view=admin&amp;display=useroverview&amp;export=options">'.get_lang('ExportUserOverviewOptions').'</a>';
 	}
-
 	if ($_GET['display'] === 'useroverview') {
 		display_tracking_user_overview();
 	} else {
@@ -600,7 +492,6 @@ if ($is_platform_admin && $view == 'admin') {
 		} else {
 			$order = array(0 => 'lastname', 1 => 'firstname', 2 => ($sort_by_first_name ? 'firstname' : 'lastname'), 3 => 'login_date', 4 => ($sort_by_first_name ? 'firstname' : 'lastname'), 5 => ($sort_by_first_name ? 'firstname' : 'lastname'));
 		}
-
 		$table = new SortableTable('tracking_list_coaches', 'count_coaches', null, ($is_western_name_order xor $sort_by_first_name) ? 1 : 0);
 		$parameters['view'] = 'admin';
 		$table->set_additional_parameters($parameters);
@@ -645,9 +536,8 @@ if ($is_platform_admin && $view == 'admin') {
 		$sqlCoachs = "SELECT DISTINCT scu.id_user as id_coach, user_id, lastname, firstname, MAX(login_date) as login_date
 			FROM $tbl_user, $tbl_session_course_user scu, $tbl_track_login
 			WHERE scu.id_user=user_id AND scu.status=2  AND login_user_id=user_id
-			GROUP BY user_id ";
-		//	ORDER BY login_date ".$tracking_direction;
-
+			GROUP BY user_id ";		
+			
 		if ($_configuration['multiple_access_urls'] == true) {
 			$tbl_session_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
 			$access_url_id = api_get_current_access_url_id();
@@ -658,14 +548,12 @@ if ($is_platform_admin && $view == 'admin') {
 					GROUP BY user_id ";
 			}
 		}
-
 		if (!empty($order[$tracking_column])) {
 			$sqlCoachs .= "ORDER BY ".$order[$tracking_column]." ".$tracking_direction;
 		}
 
 		$result_coaches = Database::query($sqlCoachs, __FILE__, __LINE__);
 		$total_no_coaches = Database::num_rows($result_coaches);
-
 		$global_coaches = array();
 		while ($coach = Database::fetch_array($result_coaches)) {
 			$global_coaches[$coach['user_id']] = $coach;
@@ -1247,11 +1135,9 @@ function get_course_data($from, $number_of_items, $column, $direction) {
 	}
 	
 	// get all courses with limit
-	$sql = "SELECT course.code as col1, course.title as col2,count(course_rel_user.user_id) as col3 				
-			FROM $tbl_course course 
-			LEFT JOIN $tbl_course_user course_rel_user ON course_rel_user.course_code=course.code AND course_rel_user.status='5'
-			WHERE course.code IN (".implode(',',$arr_course).")
-			GROUP BY col1, col2"; 	
+	$sql = "SELECT course.code as col1, course.title as col2 				
+			FROM $tbl_course course 			
+			WHERE course.code IN (".implode(',',$arr_course).")"; 	
 	if (!in_array($direction, array('ASC','DESC'))) $direction = 'ASC';
 	
     $column = intval($column);
@@ -1280,30 +1166,18 @@ function get_course_data($from, $number_of_items, $column, $direction) {
 			$users[] = $row['user_id']; 							
 		}		
 		if (count($users) > 0) {
-			// get columns data for courses list
-			$sql = "SELECT count(prop.tool) as count_assignments,
-					count(post.poster_id) as count_messages,					
-					(SELECT SUM(UNIX_TIMESTAMP(logout_course_date)-UNIX_TIMESTAMP(login_course_date)) FROM $tbl_track_cours_access track_course WHERE track_course.user_id = course_rel_user.user_id AND track_course.course_code='$course_code') as time_espent		
-					FROM $tbl_course_user  course_rel_user
-					LEFT JOIN $tbl_item_property prop ON prop.insert_user_id = course_rel_user.user_id AND tool='work'
-					LEFT JOIN $tbl_forum_post post ON post.poster_id = course_rel_user.user_id												
-					WHERE course_rel_user.user_id IN (".implode(',',$users).") AND course_rel_user.course_code='$course_code'";																										
-			$rs_count = Database::query($sql, __FILE__, __LINE__);
-			$row_count = Database::fetch_array($rs_count);	
-			$nb_students_in_course = (!empty($row_course[2])?$row_course[2]:0);			
-			$avg_time_spent_in_course = (!empty($row_count['time_espent'])?$row_count['time_espent']:0);
-			$avg_messages_in_course = (!empty($row_count['count_messages'])?$row_count['count_messages']:0);
-			$avg_assignments_in_course = (!empty($row_count['count_assignments'])?$row_count['count_assignments']:0);
-			$avg_progress_in_course += Tracking::get_avg_student_progress($users, $course_code);		
-			$avg_score_in_course += Tracking :: get_avg_student_score($users, $course_code);
-			$avg_score_in_exercise += Tracking::get_avg_student_exercise_score($users, $course_code);		
-		}
-		
-		if ($nb_students_in_course > 0) {
+			$nb_students_in_course = count($users);			
+			$avg_assignments_in_course = Tracking::count_student_assignments($users, $course_code);
+			$avg_messages_in_course    = Tracking::count_student_messages($users, $course_code);
+			$avg_time_spent_in_course  = Tracking::get_time_spent_on_the_course($users, $course_code);			
+			$avg_progress_in_course = Tracking::get_avg_student_progress($users, $course_code);		
+			$avg_score_in_course = Tracking :: get_avg_student_score($users, $course_code);
+			$avg_score_in_exercise = Tracking::get_avg_student_exercise_score($users, $course_code);
+						
 			$avg_time_spent_in_course = api_time_to_hms($avg_time_spent_in_course / $nb_students_in_course);
 			$avg_progress_in_course = round($avg_progress_in_course / $nb_students_in_course, 2);
 			$avg_score_in_course = round($avg_score_in_course / $nb_students_in_course, 2);
-			$avg_score_in_exercise = round($avg_score_in_exercise / $nb_students_in_course, 2);			
+			$avg_score_in_exercise = round($avg_score_in_exercise / $nb_students_in_course, 2);		
 		} else {
 			$avg_time_spent_in_course = null;
 			$avg_progress_in_course = null;

+ 8 - 4
main/newscorm/lp_stats.php

@@ -139,6 +139,7 @@ if (isset($_GET['lp_id']) && isset($_GET['my_lp_id'])) {
 		} else {
 			$sql_attempts = 'SELECT * FROM ' . $tbl_stats_exercices . ' WHERE exe_exo_id="' . (int)$row_path['path'] . '" AND exe_user_id="' . $student_id . '" AND orig_lp_id = "'.(int)$clean_lp_id.'" AND orig_lp_item_id = "'.(int)$clean_lp_item_id.'" AND exe_cours_id="' . $clean_course_code. '" AND status <> "incomplete" ORDER BY exe_date';
 		}
+		echo $sql_attempts;
 	}
 
 }
@@ -185,7 +186,7 @@ if (is_array($list) && count($list) > 0){
 			" AND v.user_id = " . $user_id . " " .
 			" ORDER BY iv.view_count $qry_order ";
 		}
-
+		echo $sql.'<br/>';
 		$result = Database::query($sql, __FILE__, __LINE__);
 		$num = Database :: num_rows($result);
 		$time_for_total = 'NaN';
@@ -231,7 +232,9 @@ if (is_array($list) && count($list) > 0){
 			}
 
 			$counter++;
-			do {
+			
+			do { 
+				echo $row['iv_view_count'];
 				//check if there are interactions below
 				$extend_attempt_link = '';
 				$extend_this_attempt = 0;
@@ -478,7 +481,7 @@ if (is_array($list) && count($list) > 0){
 						$res_score = Database::query($sql,__FILE__,__LINE__);
 						$row_score = Database::fetch_array($res_score);
 
-						$sql = "SELECT SUM(total_time) as total_time FROM $TBL_LP_ITEM_VIEW WHERE lp_item_id = '".(int)$my_id."' and lp_view_id = '".(int)$my_lp_view_id."'";
+						echo $sql = "SELECT SUM(total_time) as total_time FROM $TBL_LP_ITEM_VIEW WHERE lp_item_id = '".(int)$my_id."' and lp_view_id = '".(int)$my_lp_view_id."'";
 						$res_time = Database::query($sql,__FILE__,__LINE__);
 						$row_time = Database::fetch_array($res_time);
 
@@ -506,6 +509,7 @@ if (is_array($list) && count($list) > 0){
 				}
 			}
 			$time_for_total = $subtotal_time;
+			echo $subtotal_time.' - ';
 			$time = learnpathItem :: get_scorm_time('js', $subtotal_time);
 			if (empty ($title)) {
 				$title = rl_get_resource_name(api_get_course_id(), $lp_id, $row['myid']);
@@ -677,7 +681,7 @@ if (is_array($list) && count($list) > 0){
 									}
 									//$view_score = ($my_score == 0 ? '0.00/'.$my_maxscore : ($my_maxscore == 0 ? $my_score : $my_score . '/' . $my_maxscore));
 								}
-
+echo $time_attemp;
 								$output .= '<tr class="'.$oddclass.'" ><td>&nbsp;</td><td>'.$extend_attempt_link.'</td><td colspan="3">' . api_convert_encoding(get_lang('Attempt'), $lp_charset, $dokeos_charset) . ' ' . $n . '</td>'
 							 			. '<td colspan="2"><font color="' . $color . '"><div class="mystatus">' . $my_lesson_status . '</div></font></td><td colspan="2"><div class="mystatus" align="center">' . $view_score  . '</div></td><td colspan="2"><div class="mystatus">' . $time_attemp . '</div></td>';
 							 	if ($origin != 'tracking') {

+ 51 - 18
main/newscorm/lp_view.php

@@ -74,6 +74,7 @@ $my_style=$platform_theme;
 //$htmlHeadXtra[] = '<script type="text/javascript" src="lp_view.lib.js"></script>';
 //$htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/')."\n";
 $htmlHeadXtra[] = '<script src="../inc/lib/javascript/jquery.js" type="text/javascript" language="javascript"></script>'; //jQuery
+$htmlHeadXtra[] = '<script src="../inc/lib/javascript/jquery.frameready.js" type="text/javascript" language="javascript"></script>'; //jQuery
 
 $htmlHeadXtra[] = '<script language="javascript">
 function cleanlog(){
@@ -110,11 +111,9 @@ unset($_SESSION['questionList']);
  */
 
 
-if (!isset($src))
- {
+if (!isset($src)) {
  	$src = '';
-	switch($lp_type)
-	{
+	switch($lp_type) {
 		case 1:
 			$_SESSION['oLP']->stop_previous_item();
 			$htmlHeadXtra[] = '<script src="scorm_api.php" type="text/javascript" language="javascript"></script>';
@@ -264,8 +263,7 @@ if($_SESSION['oLP']->mode == 'fullscreen') {
 			        <?php if ($_SESSION['oLP']->get_preview_image()!=''): ?>
 			        <img width="115" height="100" src="<?php echo api_get_path(WEB_COURSE_PATH).api_get_course_path().'/upload/learning_path/images/'.$_SESSION['oLP']->get_preview_image(); ?>">
 			        <?php
-						else
-						: echo Display :: display_icon('unknown_250_100.jpg', ' ');
+						else : echo Display :: display_icon('unknown_250_100.jpg', ' ');
 						endif;
 						?>
 					</span>
@@ -412,19 +410,14 @@ if($_SESSION['oLP']->mode == 'fullscreen') {
 	</script>
 
 <?php
-}
-else
-{
+} else {
 	include_once('../inc/reduced_header.inc.php');
 	//$displayAudioRecorder = (api_get_setting('service_visio','active')=='true') ? true : false;
 	//check if audio recorder needs to be in studentview
 	$course_id=$_SESSION["_course"]["id"];
-	if($_SESSION["status"][$course_id]==5)
-	{
+	if($_SESSION["status"][$course_id]==5) {
 		$audio_recorder_studentview = true;
-	}
-	else
-	{
+	} else {
 		$audio_recorder_studentview = false;
 	}
 	//set flag to ensure lp_header.php is loaded by this script (flag is unset in lp_header.php)
@@ -435,7 +428,6 @@ else
 	<input type="hidden" id="current_item_id" name ="current_item_id" value="0" />
 
 <div id="learningPathMain"  style="width:100%;height:100%;" >
-
 	<div id="learningPathLeftZone" style="float:left;width:280px;height:100%">
 
 		<!-- header -->
@@ -568,6 +560,8 @@ else
 	var initialLeftZoneHeight = 0;
 	var initialRightZoneHeight = 0;
 
+	// Fixes the content height of the frame
+	
 	var updateContentHeight = function() {
 		winHeight = (window.innerHeight != undefined ? window.innerHeight : document.documentElement.clientHeight);
 		newLeftZoneHeight = winHeight - leftZoneHeightOccupied;
@@ -587,7 +581,7 @@ else
 			document.body.style.overflow = 'auto';
 		} else {
 			document.body.style.overflow = 'hidden';
-		}
+		}		
 	};
 
 	window.onload = function() {
@@ -613,8 +607,47 @@ else
 		rightZoneHeightOccupied = docHeight - initialRightZoneHeight;
 		document.body.style.overflow = 'hidden';
 		updateContentHeight();
+		
+		//loads the glossary library
+		
+		<?php
+		if (api_get_setting('show_glossary_in_extra_tools') == 'true') {  	
+			if (api_get_setting('show_glossary_in_documents') == 'ismanual') {  	  	 	
+		  	 	?>		  	 	
+		    $(document).ready(function() {   
+		      $.frameReady(function(){   
+		       //  $("<div>I am a div courses</div>").prependTo("body");		     
+		      }, "top.content_name",   
+		      { load: [   
+		      		{type:"script", id:"_fr1", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.js"},
+		            {type:"script", id:"_fr2", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.highlight.js"},
+		            {type:"script", id:"_fr3", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>fckeditor/editor/plugins/glossary/fck_glossary_manual.js"}
+		      	 ] 
+		      }		   
+		      );
+		   });		   		  	 	
+		<?php
+		  	 } elseif(api_get_setting('show_glossary_in_documents') == 'isautomatic') {
+		?>		
+		    $(document).ready(function() {   
+		      $.frameReady(function(){   
+		       //  $("<div>I am a div courses</div>").prependTo("body");
+		     
+		      }, "top.content_name",   
+		      { load: [   
+		      		{type:"script", id:"_fr1", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.js"},
+		            {type:"script", id:"_fr2", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.highlight.js"},
+		            {type:"script", id:"_fr3", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>fckeditor/editor/plugins/glossary/fck_glossary_automatic.js"}
+		      	 ] 
+		      }
+		   
+		      );
+		   });
+		<?php
+		  	 }
+		  }
+		?>
 	}
-
 	window.onresize = updateContentHeight;
 	-->
 	</script>
@@ -629,4 +662,4 @@ else
 }
 //restore global setting
 $_setting['show_navigation_menu'] = $save_setting;
-?>
+?>

+ 38 - 6
main/newscorm/scorm_api.php

@@ -186,12 +186,41 @@ $(document).ready( function() {
   info_lms_item[1]= info_lms_item[1];
   <?php
   if (api_get_setting('show_glossary_in_extra_tools') == 'true') {
-  ?>
-  	if (lms_lp_type == 2) { //Only scorm
-  	    attach_glossary_into_scorm();	
+  	
+  	 if (api_get_setting('show_glossary_in_documents') == 'ismanual') { 
+  	 	//Will be always automatic
+  	 	 ?> 	
+		$.frameReady(function(){
+	   		//  $("<div>I am a div courses</div>").prependTo("body");     
+	     }, "top.content_name",   
+	      { load: [
+	      		{type:"script", id:"_fr1", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.js"},
+	          	{type:"script", id:"_fr2", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.highlight.js"},
+	          	{type:"script", id:"_fr3", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>fckeditor/editor/plugins/glossary/fck_glossary_automatic.js"}
+	      ] }
+	      );	
+	            
+	  	if (lms_lp_type == 2) { //Only scorm 		
+	  	    //attach_glossary_into_scorm();	
+	  	}
+  	<?php
+  	 } else {  	 
+  ?> 	
+	$.frameReady(function(){   
+   		//  $("<div>I am a div courses</div>").prependTo("body");     
+      }, "top.content_name",   
+      { load: [   
+      		{type:"script", id:"_fr1", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.js"},
+          	{type:"script", id:"_fr2", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>javascript/jquery.highlight.js"},
+          	{type:"script", id:"_fr3", src:"<?= api_get_path(WEB_LIBRARY_PATH); ?>fckeditor/editor/plugins/glossary/fck_glossary_automatic.js"}
+      ] }
+      );
+	      
+  	if (lms_lp_type == 2) { //Only scorm 		
+  	    //attach_glossary_into_scorm();	
   	}
-
   <?php
+  	 }
   }
   ?>
  });
@@ -1590,10 +1619,13 @@ if(lms_lp_type==1 || lms_item_type=='asset'){
 }
 
 /**
-*Allow attach the glossary terms into html document of scorm
-*Added by Isaac flores
+
+* Allow attach the glossary terms into html document of scorm
+* Added by Isaac flores
+* This function should be deprecated
 */
 function attach_glossary_into_scorm() {
+
   var f = $('#content_id')[0];
 
   var doc = f.contentWindow ? f.contentWindow.document :

+ 15 - 2
main/social/group_edit.php

@@ -137,15 +137,28 @@ $big_image_size = api_getimagesize($big_image);
 $big_image_width = $big_image_size[0];
 $big_image_height = $big_image_size[1];
 $url_big_image = $big_image.'?rnd='.time();
-
+/*
 if ($image == '') {
 	echo '<img '.$img_attributes.' />';
 } else {
 	echo '<input type="image" '.$img_attributes.' onclick="javascript: return show_image(\''.$url_big_image.'\',\''.$big_image_width.'\',\''.$big_image_height.'\');"/>';
 }
+*/
+
+
+//Shows left column
+echo GroupPortalManager::show_group_column_information($group_id, api_get_user_id());
+
 
-// Display form
+//-- Show message groups
+
+echo '<div id="layout_right" style="margin-left: 282px;">';	
+	
+		// Display form
 $form->display();
+	
+echo '</div>'; // end layout right
+
 
 // Footer
 Display::display_footer();

+ 29 - 31
main/social/group_invitation.php

@@ -56,10 +56,9 @@ if (empty($group_id)) {
 		api_not_allowed();
 	}
 	//only admin or moderator can do that
-	$user_role = GroupPortalManager::get_user_group_role(api_get_user_id(), $group_id);
-	if (!in_array($user_role, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_MODERATOR))) {
+	if (!GroupPortalManager::is_group_member($group_id)) {
 		api_not_allowed();		
-	}
+	}	
 }
 
 function search_users($needle,$type) {
@@ -213,9 +212,6 @@ echo '<div class="actions-title">';
 echo get_lang('Invitations');
 echo '</div>'; 
 
-
-
-
 if($_POST['form_sent']) {
 	$form_sent			= $_POST['form_sent'];
 	$firstLetterUser	= $_POST['firstLetterUser'];
@@ -229,15 +225,15 @@ if($_POST['form_sent']) {
 	}
 	if ($form_sent == 1) {
 		//invite this users
-		$result = GroupPortalManager::add_users_to_groups($user_list, array($group_id), GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER);
+		$result = GroupPortalManager::add_users_to_groups($user_list, array($group_id), GROUP_USER_PERMISSION_PENDING_INVITATION);
 		$title = 'YouAreInvitedToGroup'.$group_id;
 		$content = 'YouAreInvitedToGroupContent'.$group_id;
-		
-		//send invitation message
-		foreach($user_list as $user_id ){
-			MessageManager::send_message($user_id, $title, $content);
-		}
-		
+		if (is_array($user_list) && count($user_list) > 0) {
+			//send invitation message
+			foreach($user_list as $user_id ){
+				MessageManager::send_message($user_id, $title, $content);
+			}
+		}		
 	}
 	
 }
@@ -245,7 +241,6 @@ if($_POST['form_sent']) {
 $nosessionUsersList = $sessionUsersList = array();
 $ajax_search = $add_type == 'unique' ? true : false;
 global $_configuration;
-
 $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username';
 
 if ($ajax_search) {
@@ -274,17 +269,17 @@ if ($ajax_search) {
 	foreach ($Users as $user) {
 		$sessionUsersList[$user['user_id']] = $user ;
 	}
-} else {
-		
-		$friends = SocialManager::get_friends(api_get_user_id());
-			
+} else {		
+		$friends = SocialManager::get_friends(api_get_user_id());	
+				
 		$suggest_friends = false;
 		
 		if (!$friends) {
 			$suggest_friends = true;	
-		} else {			
+		} else {
 			foreach($friends as $friend) {
-				$group_friend_list = GroupPortalManager::get_groups_by_user($friend['friend_user_id'], 0);								
+				$group_friend_list = GroupPortalManager::get_groups_by_user($friend['friend_user_id'], 0);				
+				//var_dump($group_friend_list);								
 				$friend_group_id = '';
 				if (isset($group_friend_list[$group_id]) && $group_friend_list[$group_id]['id'] == $group_id) {
 					$friend_group_id = $group_id;
@@ -308,11 +303,8 @@ if ($ajax_search) {
 				unset($nosessionUsersList[$key_user_list]);
 			}
 		}
-					
-
 }
 
-
 if ($add_type == 'multiple') {
 	$link_add_type_unique = '<a href="'.api_get_self().'?id='.$group_id.'&add='.Security::remove_XSS($_GET['add']).'&add_type=unique">'.Display::return_icon('single.gif').get_lang('SessionAddTypeUnique').'</a>';
 	$link_add_type_multiple = Display::return_icon('multiple.gif').get_lang('SessionAddTypeMultiple');
@@ -320,14 +312,15 @@ if ($add_type == 'multiple') {
 	$link_add_type_unique = Display::return_icon('single.gif').get_lang('SessionAddTypeUnique');
 	$link_add_type_multiple = '<a href="'.api_get_self().'?id='.$group_id.'&add='.Security::remove_XSS($_GET['add']).'&add_type=multiple">'.Display::return_icon('multiple.gif').get_lang('SessionAddTypeMultiple').'</a>';
 }
-?>
-
-<div class="actions">
-	<?php $link_add_type_unique ?>&nbsp;|&nbsp;<?php $link_add_type_multiple ?>
-</div>
-
-<?php echo '<div class="row"><div class="form_header">'.$tool_name.' ('.$session_info['name'].')</div></div><br/>'; ?>
+	/* <?php $link_add_type_unique ?>&nbsp;|&nbsp;<?php $link_add_type_multiple ?> */
 
+	//Shows left column
+	echo GroupPortalManager::show_group_column_information($group_id, api_get_user_id());
+	
+	//-- Show group content	
+	echo '<div id="layout_right" style="margin-left: 282px;">';
+?>
+	
 <form name="formulaire" method="post" action="<?php echo api_get_self(); ?>?id=<?php echo $group_id; ?><?php if(!empty($_GET['add'])) echo '&add=true' ; ?>" style="margin:0px;" <?php if($ajax_search){echo ' onsubmit="valide();"';}?>>
 
 <?php
@@ -463,6 +456,11 @@ unset($sessionUsersList);
 </tr>
 </table>
 </form>
+<?php
+
+
+	echo '</div>'; // end layout right
+?>
 
 <script type="text/javascript">
 <!--
@@ -558,7 +556,7 @@ function makepost(select){
 <?php
 
 //current group members		
-$members = GroupPortalManager::get_users_by_group($group_id,true,array(GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER));
+$members = GroupPortalManager::get_users_by_group($group_id, true, array(GROUP_USER_PERMISSION_PENDING_INVITATION));
 if (is_array($members) && count($members)>0) {
 	echo get_lang('UsersAlreadyInvited');
 	Display::display_sortable_grid('search_users', array(), $members, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, false, true));

+ 49 - 26
main/social/group_members.php

@@ -48,8 +48,8 @@ $show_message = '';
 if (isset($_GET['action']) && $_GET['action']=='add') {
 	// we add a user only if is a open group
 	$user_join = intval($_GET['u']);
-	//if i'm the admin	
-	if (isset($admins[api_get_user_id()]) && $admins[api_get_user_id()]['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
+	//if i'm a moderator		
+	if (GroupPortalManager::is_group_moderator(api_get_user_id())) {
 		GroupPortalManager::update_user_role($user_join, $group_id);
 		$show_message = get_lang('UserAdded');
 	}	
@@ -58,8 +58,8 @@ if (isset($_GET['action']) && $_GET['action']=='add') {
 if (isset($_GET['action']) && $_GET['action']=='delete') {	
 	// we add a user only if is a open group
 	$user_join = intval($_GET['u']);
-	//if i'm the admin		
-	if (isset($admins[api_get_user_id()]) && $admins[api_get_user_id()]['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
+	//if i'm a moderator		
+	if (GroupPortalManager::is_group_moderator(api_get_user_id())) {
 		GroupPortalManager::delete_user_rel_group($user_join, $group_id); 
 		$show_message = get_lang('UserDeleted');
 	}
@@ -69,12 +69,23 @@ if (isset($_GET['action']) && $_GET['action']=='set_moderator') {
 	// we add a user only if is a open group
 	$user_moderator= intval($_GET['u']);
 	//if i'm the admin		
-	if (isset($admins[api_get_user_id()]) && $admins[api_get_user_id()]['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
+	if (GroupPortalManager::is_group_admin(api_get_user_id())) {
 		GroupPortalManager::update_user_role($user_moderator, $group_id, GROUP_USER_PERMISSION_MODERATOR); 
 		$show_message = get_lang('UserChangeToModerator');
 	}
 }
 
+if (isset($_GET['action']) && $_GET['action']=='delete_moderator') {	
+	// we add a user only if is a open group
+	$user_moderator= intval($_GET['u']);
+	//only group admins can do that	
+	if (GroupPortalManager::is_group_admin(api_get_user_id())) {	
+		GroupPortalManager::update_user_role($user_moderator, $group_id, GROUP_USER_PERMISSION_READER); 
+		$show_message = get_lang('UserChangeToReader');
+	}
+}
+
+
 
 if (! empty($show_message)){
 	Display :: display_normal_message($show_message);
@@ -83,29 +94,41 @@ if (! empty($show_message)){
 $users	= GroupPortalManager::get_users_by_group($group_id, true, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER, GROUP_USER_PERMISSION_MODERATOR));
 $new_member_list = array();
 
-foreach($users as $user) {	 
-	switch ($user['relation_type']) {
-		case  GROUP_USER_PERMISSION_ADMIN:
-			$user['link'] = Display::return_icon('admin_star.png', get_lang('Admin'));
-		break;
-		case  GROUP_USER_PERMISSION_READER:
-			$user['link'] = '<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=delete">'.Display::return_icon('del_user_big.gif', get_lang('DeleteFromGroup')).'</a><br />'.
-							'<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=set_moderator">'.Display::return_icon('admins.gif', get_lang('AddModerator')).'</a>';
-		break;		
-		case  GROUP_USER_PERMISSION_PENDING_INVITATION:
-			$user['link'] = '<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=add">'.Display::return_icon('pending_invitation.png', get_lang('PendingInvitation')).'</a>';
-		break;
-		case  GROUP_USER_PERMISSION_MODERATOR:
-			$user['link'] = Display::return_icon('moderator_star.png', get_lang('Moderator'));
-		break;				
-	}
-	$new_member_list[] = $user;
-}
 
-if (count($new_member_list) > 0) {
-	Display::display_sortable_grid('search_users', array(), $new_member_list, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, false, true,true,false,true,true));		
-}
+	//Shows left column
+	echo GroupPortalManager::show_group_column_information($group_id, api_get_user_id());
+	
+	
+	//-- Show message groups
+	
+	echo '<div id="layout_right" style="margin-left: 282px;">';	
+		
+	// Display form
+	foreach($users as $user) {	 
+		switch ($user['relation_type']) {
+			case  GROUP_USER_PERMISSION_ADMIN:
+				$user['link'] = Display::return_icon('admin_star.png', get_lang('Admin'));
+			break;
+			case  GROUP_USER_PERMISSION_READER:
+				$user['link'] = '<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=delete">'.Display::return_icon('del_user_big.gif', get_lang('DeleteFromGroup')).'</a><br />'.
+								'<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=set_moderator">'.Display::return_icon('admins.gif', get_lang('AddModerator')).'</a>';
+			break;		
+			case  GROUP_USER_PERMISSION_PENDING_INVITATION:
+				$user['link'] = '<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=add">'.Display::return_icon('pending_invitation.png', get_lang('PendingInvitation')).'</a>';
+			break;
+			case  GROUP_USER_PERMISSION_MODERATOR:
+				$user['link'] = Display::return_icon('moderator_star.png', get_lang('Moderator')).
+				'<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=delete_moderator">'.Display::return_icon('del_user_big.gif', get_lang('DeleteModerator')).'</a>';
+			break;				
+		}
+		$new_member_list[] = $user;
+	}
+	
+	if (count($new_member_list) > 0) {			
+		Display::display_sortable_grid('search_users', array(), $new_member_list, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, false, true,true,false,true,true));		
+	}
 	
+	echo '</div>'; // end layout right
 	
 Display :: display_footer();
 ?>

+ 25 - 149
main/social/groups.php

@@ -11,6 +11,7 @@ require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
 require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
 require_once api_get_path(LIBRARY_PATH).'social.lib.php';
 require_once api_get_path(LIBRARY_PATH).'message.lib.php';
+require_once api_get_path(LIBRARY_PATH).'text.lib.php';
 
 api_block_anonymous_users();
 
@@ -82,9 +83,9 @@ echo '</div>';
 
 // getting group information
 $group_id	= intval($_GET['id']);
-$group_info = GroupPortalManager::get_group_data($group_id); 
+
 	
-if ($group_id != 0 ) {		
+if ($group_id != 0 ) {
 	//Loading group information
 	if (isset($_GET['status']) && $_GET['status']=='sent') {
 		Display::display_confirmation_message(get_lang('MessageHasBeenSent'), false);
@@ -102,163 +103,37 @@ if ($group_id != 0 ) {
 	if (isset($_GET['action']) && $_GET['action']=='join') {
 		// we add a user only if is a open group
 		$user_join = intval($_GET['u']);	
-		if (api_get_user_id() == $user_join) {	
+		if (api_get_user_id() == $user_join && !empty($group_id)) {
+			$group_info = GroupPortalManager::get_group_data($group_id);
 			if ($group_info['visibility'] == GROUP_PERMISSION_OPEN) {
 				GroupPortalManager::add_user_to_group($user_join, $group_id);				
 			} else {
 				GroupPortalManager::add_user_to_group($user_join, $group_id, GROUP_USER_PERMISSION_PENDING_INVITATION);
-			}
-				
+			}				
 		}
 	}
-	echo GroupPortalManager::show_group_column_information($group_id);
-	
-	$picture	= GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'],160,'medium_');
-	$big_image	= GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'],'','big_');
 	
-	$tags		= GroupPortalManager::get_group_tags($group_id, true);
-	$users		= GroupPortalManager::get_users_by_group($group_id, true);
-	
-	//my relation with the group is set here
-	
-	if (is_array($users[api_get_user_id()]) && count($users[api_get_user_id()]) > 0) {
-		//im a member
-		if ($users[api_get_user_id()]['relation_type'] != '' ) {			
-			$my_group_role = $users[api_get_user_id()]['relation_type'];
-		} else {
-			$my_group_role = GROUP_USER_PERMISSION_ANONYMOUS;		
-		}
-	} else {
-		//im not a member
-		$my_group_role = GROUP_USER_PERMISSION_ANONYMOUS;		
-	}
-
-
-	//@todo this must be move to default.css for dev use only
-	echo '<style> 		
-			#group_members { width:233px; height:300px; overflow-x:none; overflow-y: auto;}
-			.group_member_item { width:98px; height:86px; float:left; margin:5px 5px 15px 5px; }
-			.group_member_picture { display:block;
-				height:92px;
-				margin:0;
-				overflow:hidden; }; 
-	</style>';
-	echo '<div id="layout-left" style="float: left; width: 280px; height: 100%;">';
-
-	//Group's title
-	echo '<h1>'.$group_info['name'].'</h1>';
-	
-	//Group's image 
-	echo '<div id="group_image">';
-	
-	if (basename($picture['file']) != 'unknown_group.png') {
-  		echo '<a class="thickbox" href="'.$big_image['file'].'"><img src='.$picture['file'].' /> </a><br /><br />';
-	} else {
-		echo '<img src='.$picture['file'].' /><br /><br />';
-	}			
-
-	echo '</div>';
-	
-	//Group's description 
-	echo '<div id="group_description">';
-		echo $group_info['description'];
-	echo '</div>';
-	
-	//Group's description 
-	echo '<div id="group-url">';
-		echo $group_info['url'];
-	echo '</div>';
-	
-	
-	//Privacy
-	echo '<div id="group_privacy">';
-		echo get_lang('Privacy').' : ';
-		if ($group_info['visibility']== GROUP_PERMISSION_OPEN) {
-			echo get_lang('ThisIsAnOpenGroup');
-		} elseif ($group_info['visibility']== GROUP_PERMISSION_CLOSED) {
-			echo get_lang('ThisIsACloseGroup');
-		}
-	echo '</div>';
-	
-	//Group's tags
-	if (!empty($tags)) {
-		echo '<div id="group_tags">';
-			echo get_lang('Tags').' : '.$tags;
-		echo '</div>';
-	}
+	//Shows left column
+	echo GroupPortalManager::show_group_column_information($group_id, api_get_user_id());
 		
-	//Compose message link
-	if (in_array($my_group_role, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER,GROUP_USER_PERMISSION_MODERATOR))) { 
-		echo '<div id="actions" style="margin:10px">';
-		echo '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=400&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display :: return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a>';
-		//echo '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?group_id='.$group_id.'">'.Display::return_icon('message_new.png',api_xml_http_response_encode(get_lang('ComposeMessage'))).api_xml_http_response_encode(get_lang('ComposeMessage')).'</a>';
-		echo '</div>';
-	}
-	
-	//Members
-	echo get_lang('Members').' : ';	
-	echo '<div id="group_members">';		
-	foreach($users as $user) {		
-		if (in_array($user['relation_type'] , array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER,GROUP_USER_PERMISSION_MODERATOR))) {		
-			if ($user['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
-				$user['lastname'].= Display::return_icon('admin_star.png', get_lang('Admin'));
-			}
-			if ($user['relation_type'] == GROUP_USER_PERMISSION_MODERATOR) {
-				$user['lastname'].= Display::return_icon('moderator_star.png', get_lang('Moderator'));
-			}
-			
-			echo '<div class="group_member_item"><a href="profile.php?u='.$user['user_id'].'">';
-				echo '<div class="group_member_picture">'.$user['image'].'</div>';
-				echo api_get_person_name($user['firstname'], $user['lastname']).'</a></div>';
-		}
-	}
-	echo '</div>';
-	
-	//loading group permission
-	
-	echo '<div id="group_permissions">';	
-	switch ($my_group_role) {
-		case GROUP_USER_PERMISSION_READER:
-			// I'm just a reader
-			echo '<a href="groups.php?id='.$group_id.'&action=leave&u='.api_get_user_id().'">'.get_lang('LeaveGroup').'</a>';
-			echo 'Invite others/';	
-			break;
-		case GROUP_USER_PERMISSION_ADMIN:
-			echo 'Im the admin/';
-			echo '<a href="group_edit.php?id='.$group_id.'">'.get_lang('EditGroup').'</a>';
-			echo '<a href="group_members.php?id='.$group_id.'">'.get_lang('MemberList').'</a>';
-			echo '<a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a>';
-			break;
-		case GROUP_USER_PERMISSION_PENDING_INVITATION:
-			echo get_lang('PendingApproval');
-			break;
-		case GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER:
-			echo get_lang('PendingApproval');
-			break;
-		case GROUP_USER_PERMISSION_MODERATOR:
-			echo '<a href="group_members.php?id='.$group_id.'">'.get_lang('MemberList').'</a>';
-			echo '<a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a>';
-			break;
-		case GROUP_USER_PERMISSION_ANONYMOUS:
-			echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a>';
-	}
-	echo '</div>'; // end layout permissions
-	
-	
-	echo '</div>'; // end layout left	
-	
-	
-	//-- Show message groups
-	
+	//-- Show message groups	
 	echo '<div id="layout_right" style="margin-left: 282px;">';	
-		echo '<div class="messages">';	
-			MessageManager::display_messages_for_group($group_id);
+		echo '<div class="messages">';
+			if (GroupPortalManager::is_group_member($group_id)) {
+				$content = MessageManager::display_messages_for_group($group_id);				
+				if (!empty($content)) {
+					echo $content;				
+				} else {
+					echo get_lang('YouShouldCreateATopic');	
+				}
+			} else {
+				echo get_lang('YouShouldJoinTheGroup');
+			}
 		echo '</div>'; // end layout messages
 	echo '</div>'; // end layout right
-
 	
 } else {
-	
+		
 	// Newest groups --------
 	
 	$results = GroupPortalManager::get_groups_by_age(10 , true);
@@ -267,7 +142,7 @@ if ($group_id != 0 ) {
 		$id = $result['id'];
 		$url_open  = '<a href="groups.php?id='.$id.'">';
 		$url_close = '</a>';		
-		$groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close);
+		$groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close,cut($result['description'],140));
 	}
 	if (count($groups) > 0) {
 		echo '<h1>'.get_lang('Newest').'</h1>';	
@@ -289,7 +164,7 @@ if ($group_id != 0 ) {
 			$result['count'] = $result['count'].' '.get_lang('Members');
 		}
 		
-		$groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close,$result['count'],$result['description']);
+		$groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close,$result['count'],cut($result['description'],140));
 	}
 	if (count($groups) > 0) {
 		echo '<h1>'.get_lang('Popular').'</h1>';
@@ -300,6 +175,7 @@ if ($group_id != 0 ) {
 	// My groups -----
 	
 	$results = GroupPortalManager::get_groups_by_user(api_get_user_id(), 0, true);
+	
 	$groups = array();
 
 	foreach ($results as $result) {
@@ -309,7 +185,7 @@ if ($group_id != 0 ) {
 		if ($result['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {			
 			$result['name'].= Display::return_icon('admin_star.png', get_lang('Admin'));
 		}
-		$groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close);
+		$groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close,cut($result['description'],140));
 	}
 	echo '<h1>'.get_lang('MyGroups').'</h1>';
 	echo '<a href="group_add.php">'.get_lang('CreateAgroup').'</a>';

+ 2 - 1
main/social/invitations.php

@@ -103,7 +103,8 @@ $user_id = api_get_user_id();
 
 $list_get_invitation		= SocialManager::get_list_invitation_of_friends_by_user_id($user_id);
 $list_get_invitation_sent	= SocialManager::get_list_invitation_sent_by_user_id($user_id);
-$pending_invitations = GroupPortalManager::get_groups_by_user($user_id, GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER,true);
+$pending_invitations 		= GroupPortalManager::get_groups_by_user($user_id, GROUP_USER_PERMISSION_PENDING_INVITATION,true);
+//$pending_invitations_by_me 	= GroupPortalManager::get_groups_by_user($user_id, GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER,true);
 
 $number_loop=count($list_get_invitation);
 

+ 2 - 2
main/social/message_for_group_form.inc.php

@@ -52,13 +52,13 @@ if (!empty($group_id)) {
 <div id="id_content_panel_init">
 	<dl>
 	<?php
-			if (api_get_setting('allow_message_tool')=='true') {		
+			if (api_get_setting('allow_message_tool')=='true') {	
 	            //normal message
 		   		 $user_info=api_get_user_info($userfriend_id);
 		  		 echo api_xml_http_response_encode(get_lang('To')); ?> :&nbsp;&nbsp;&nbsp;&nbsp;<?php echo api_xml_http_response_encode($to_group); ?>
 		  		 <br />
 		 		 <br /><?php echo api_xml_http_response_encode(get_lang('Subject')); ?> :<br />
-		 		 <input id="txt_subject_id" name="title" type="text" style="width:300px;" value="<?php echo $title_group ?>"><br/>
+		 		 <input id="txt_subject_id" name="title" type="text" style="width:450px;" value="<?php echo $title_group ?>"><br/>
 		   		 <br /><?php echo api_xml_http_response_encode(get_lang('Message')); ?> :<br />
 		   		 <textarea id="txt_area_invite" name="content" rows="3" cols="68"></textarea><br/>
 		   		 <br /><?php echo api_xml_http_response_encode(get_lang('AttachmentFiles')); ?> :<br />

+ 3 - 1
main/social/search.php

@@ -35,7 +35,7 @@ if ($query != '') {
 		$users = UserManager::get_all_user_tags($query, 0, 0, 5);	
 				
 		$results = array();
-		if (is_array($users)) {
+		if (is_array($users) && count($users)> 0) {
 			echo '<h2>'.get_lang('Users').'</h2>';
 			
 			foreach($users as $user) {
@@ -47,6 +47,8 @@ if ($query != '') {
 				
 				$results[] = array($img, $user['firstname'],$user['lastname'],$user['tag']);			
 			}		
+		} else {
+			echo get_lang('SorryNoResults');
 		}
 		Display::display_sortable_grid('search_users', array(), $results, array('hide_navigation'=>true, 'per_page' => 5), $query_vars, false ,true);
 		

+ 6 - 12
main/tracking/courseLog.php

@@ -951,16 +951,10 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 	$sql = "SELECT user.user_id as col0, 
 			user.official_code as col1, 
 			user.lastname as col2, 
-			user.firstname as col3, 
-			count(item_prop.tool) as col4,
-			count(post.post_id) as col5,
-			(SELECT login_course_date FROM $tbl_track_cours_access track_course WHERE track_course.user_id = user.user_id AND course_code = '$course_code' ORDER BY login_course_date DESC LIMIT 0,1) as col6,					
-			(SELECT SUM(UNIX_TIMESTAMP(logout_course_date)-UNIX_TIMESTAMP(login_course_date)) FROM $tbl_track_cours_access track_course WHERE track_course.user_id = user.user_id AND track_course.course_code='$course_code') as col7
+			user.firstname as col3			
 			FROM $tbl_user as user
-			LEFT JOIN $tbl_item_property item_prop ON item_prop.insert_user_id = user.user_id AND item_prop.tool='work'
-			LEFT JOIN $tbl_forum_post  post ON post.poster_id = user.user_id
-			$condition_user
-			GROUP BY col0, col1, col2, col3, col6";
+			$condition_user ";
+
 	if (!in_array($direction, array('ASC','DESC'))) {
     	$direction = 'ASC';
     }
@@ -983,15 +977,15 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 			$row[1] = $user[2];
 			$row[2] = $user[3];
 		}
-		$row[3] = api_time_to_hms($user[7]);		
+		$row[3] = api_time_to_hms(Tracking::get_time_spent_on_the_course($user[0], $course_code));		
 		$avg_student_score = Tracking::get_average_test_scorm_and_lp($user[0], $course_code);
 		$avg_student_progress = Tracking::get_avg_student_progress($user[0], $course_code);			
 		if (empty($avg_student_score)) {$avg_student_score=0;}
 		if (empty($avg_student_progress)) {$avg_student_progress=0;}
 		$row[4] = $avg_student_progress.'%';
 		$row[5] = $avg_student_score.'%';
-		$row[6] = $user[4];
-		$row[7] = $user[5];
+		$row[6] = Tracking::count_student_assignments($user[0], $course_code);$user[4];
+		$row[7] = Tracking::count_student_messages($user[0], $course_code);//$user[5];
 		$row[8] = Tracking::get_first_connection_date_on_the_course($user[0], $course_code);
 		$row[9] = Tracking::get_last_connection_date_on_the_course($user[0], $course_code);
 				

+ 1 - 1
user_portal.php

@@ -1180,7 +1180,7 @@ api_session_register('status');
 		RIGHT MENU
 ==============================================================================
 */
-echo '	<div class="menu">';
+echo '	<div id="menu">';
 
 // api_display_language_form(); // moved to the profile page.