Merge branch 'MDL-51580' of git://github.com/stronk7/moodle
authorDavid Monllao <davidm@moodle.com>
Mon, 15 Feb 2016 21:03:28 +0000 (05:03 +0800)
committerDavid Monllao <davidm@moodle.com>
Mon, 15 Feb 2016 21:03:28 +0000 (05:03 +0800)
61 files changed:
config-dist.php
course/format/singleactivity/lib.php
course/modlib.php
course/moodleform_mod.php
grade/edit/tree/item.php
grade/edit/tree/item_form.php
grade/tests/behat/grade_aggregation.feature
grade/tests/behat/grade_calculated_grade_items.feature
grade/tests/behat/grade_calculated_grade_items_20150627.feature
grade/tests/behat/grade_grade_minmax_change.feature [new file with mode: 0644]
grade/tests/behat/grade_item_validation.feature [new file with mode: 0644]
grade/tests/behat/grade_minmax.feature
grade/tests/behat/grade_point_maximum.feature
grade/tests/behat/grade_scales_aggregation.feature
lang/en/error.php
lang/en/grades.php
lang/en/repository.php
lib/classes/output/url_rewriter.php [new file with mode: 0644]
lib/form/dndupload.js
lib/form/modgrade.php
lib/form/tests/behat/modgrade_validation.feature [new file with mode: 0644]
lib/grade/grade_item.php
lib/grade/tests/grade_item_test.php
lib/moodlelib.php
lib/outputrenderers.php
lib/upgrade.txt
lib/weblib.php
mod/assign/lib.php
mod/assign/locallib.php
mod/assign/tests/behat/rescale_grades.feature [new file with mode: 0644]
mod/book/locallib.php
mod/forum/lang/en/forum.php
mod/forum/lib.php
mod/lesson/db/upgrade.php
mod/lesson/lang/en/deprecated.txt
mod/lesson/lang/en/lesson.php
mod/lesson/mod_form.php
mod/lesson/settings.php
mod/lesson/tests/generator/lib.php
mod/lesson/version.php
mod/wiki/parser/markups/html.php
mod/wiki/parser/markups/wikimarkup.php
mod/wiki/tests/fixtures/input/html/3 [new file with mode: 0644]
mod/wiki/tests/fixtures/output/creole/2
mod/wiki/tests/fixtures/output/creole/3
mod/wiki/tests/fixtures/output/creole/4
mod/wiki/tests/fixtures/output/creole/5
mod/wiki/tests/fixtures/output/creole/7
mod/wiki/tests/fixtures/output/creole/8
mod/wiki/tests/fixtures/output/creole/9
mod/wiki/tests/fixtures/output/html/1
mod/wiki/tests/fixtures/output/html/3 [new file with mode: 0644]
mod/wiki/tests/fixtures/output/nwiki/1
mod/wiki/tests/fixtures/output/nwiki/2
mod/wiki/tests/fixtures/output/nwiki/3
mod/wiki/tests/wikiparser_test.php
rss/file.php
theme/bootstrapbase/less/moodle/bootstrapoverride.less
theme/bootstrapbase/less/moodle/course.less
theme/bootstrapbase/style/moodle.css
webservice/tests/externallib_test.php

index 04b51d7..469884d 100644 (file)
@@ -298,6 +298,11 @@ $CFG->admin = 'admin';
 // This setting will make some graphs (eg user logs) use lines instead of bars
 //      $CFG->preferlinegraphs = true;
 //
+// This setting allows you to specify a class to rewrite outgoing urls
+// enabling 'clean urls' in conjunction with an apache / nginx handler.
+// The handler must implement \core\output\url_rewriter.
+//      $CFG->urlrewriteclass = '\local_cleanurls\url_rewriter';
+//
 // Enabling this will allow custom scripts to replace existing moodle scripts.
 // For example: if $CFG->customscripts/course/view.php exists then
 // it will be used instead of $CFG->wwwroot/course/view.php
index 65cd546..813e2c6 100644 (file)
@@ -230,8 +230,16 @@ class format_singleactivity extends format_base {
         }
 
         // Make sure the current activity is in the 0-section.
+        $changed = false;
         if ($activity && $activity->sectionnum != 0) {
             moveto_module($activity, $modinfo->get_section_info(0));
+            $changed = true;
+        }
+        if ($activity && !$activity->visible) {
+            set_coursemodule_visible($activity->id, 1);
+            $changed = true;
+        }
+        if ($changed) {
             // Cache was reset so get modinfo again.
             $modinfo = get_fast_modinfo($this->courseid);
         }
index 89588dc..b878ca1 100644 (file)
@@ -453,6 +453,11 @@ function can_update_moduleinfo($cm) {
 function update_moduleinfo($cm, $moduleinfo, $course, $mform = null) {
     global $DB, $CFG;
 
+    $data = new stdClass();
+    if ($mform) {
+        $data = $mform->get_data();
+    }
+
     // Attempt to include module library before we make any changes to DB.
     include_modulelib($moduleinfo->modulename);
 
@@ -523,9 +528,44 @@ function update_moduleinfo($cm, $moduleinfo, $course, $mform = null) {
         $moduleinfo->introformat = $moduleinfo->introeditor['format'];
         unset($moduleinfo->introeditor);
     }
+    // Get the a copy of the grade_item before it is modified incase we need to scale the grades.
+    $oldgradeitem = null;
+    $newgradeitem = null;
+    if (!empty($data->grade_rescalegrades) && $data->grade_rescalegrades == 'yes') {
+        // Fetch the grade item before it is updated.
+        $oldgradeitem = grade_item::fetch(array('itemtype' => 'mod',
+                                                'itemmodule' => $moduleinfo->modulename,
+                                                'iteminstance' => $moduleinfo->instance,
+                                                'itemnumber' => 0,
+                                                'courseid' => $moduleinfo->course));
+    }
+
     $updateinstancefunction = $moduleinfo->modulename."_update_instance";
     if (!$updateinstancefunction($moduleinfo, $mform)) {
-        print_error('cannotupdatemod', '', course_get_url($course, $cw->section), $moduleinfo->modulename);
+        print_error('cannotupdatemod', '', course_get_url($course, $cm->section), $moduleinfo->modulename);
+    }
+
+    // This needs to happen AFTER the grademin/grademax have already been updated.
+    if (!empty($data->grade_rescalegrades) && $data->grade_rescalegrades == 'yes') {
+        // Get the grade_item after the update call the activity to scale the grades.
+        $newgradeitem = grade_item::fetch(array('itemtype' => 'mod',
+                                                'itemmodule' => $moduleinfo->modulename,
+                                                'iteminstance' => $moduleinfo->instance,
+                                                'itemnumber' => 0,
+                                                'courseid' => $moduleinfo->course));
+        if ($newgradeitem && $oldgradeitem->gradetype == GRADE_TYPE_VALUE && $newgradeitem->gradetype == GRADE_TYPE_VALUE) {
+            $params = array(
+                $course,
+                $cm,
+                $oldgradeitem->grademin,
+                $oldgradeitem->grademax,
+                $newgradeitem->grademin,
+                $newgradeitem->grademax
+            );
+            if (!component_callback('mod_' . $moduleinfo->modulename, 'rescale_activity_grades', $params)) {
+                print_error('cannotreprocessgrades', '', course_get_url($course, $cm->section), $moduleinfo->modulename);
+            }
+        }
     }
 
     // Make sure visibility is set correctly (in particular in calendar).
index 690dda8..1f493d0 100644 (file)
@@ -109,9 +109,9 @@ abstract class moodleform_mod extends moodleform {
         $this->_features->defaultcompletion = plugin_supports('mod', $this->_modname, FEATURE_MODEDIT_DEFAULT_COMPLETION, true);
         $this->_features->rating            = plugin_supports('mod', $this->_modname, FEATURE_RATE, false);
         $this->_features->showdescription   = plugin_supports('mod', $this->_modname, FEATURE_SHOW_DESCRIPTION, false);
-
         $this->_features->gradecat          = ($this->_features->outcomes or $this->_features->hasgrades);
         $this->_features->advancedgrading   = plugin_supports('mod', $this->_modname, FEATURE_ADVANCED_GRADING, false);
+        $this->_features->canrescale = (component_callback_exists('mod_' . $this->_modname, 'rescale_activity_grades') !== false);
     }
 
     /**
@@ -405,7 +405,9 @@ abstract class moodleform_mod extends moodleform {
 
             $permission=CAP_ALLOW;
             $rolenamestring = null;
+            $isupdate = false;
             if (!empty($this->_cm)) {
+                $isupdate = true;
                 $context = context_module::instance($this->_cm->id);
 
                 $rolenames = get_role_names_with_caps_in_context($context, array('moodle/rating:rate', 'mod/'.$this->_cm->modname.':rate'));
@@ -420,7 +422,25 @@ abstract class moodleform_mod extends moodleform {
             $mform->setDefault('assessed', 0);
             $mform->addHelpButton('assessed', 'aggregatetype', 'rating');
 
-            $mform->addElement('modgrade', 'scale', get_string('scale'), false);
+            $gradeoptions = array('isupdate' => $isupdate,
+                                  'currentgrade' => false,
+                                  'hasgrades' => false,
+                                  'canrescale' => $this->_features->canrescale,
+                                  'useratings' => $this->_features->rating);
+            if ($isupdate) {
+                $gradeitem = grade_item::fetch(array('itemtype' => 'mod',
+                                                     'itemmodule' => $this->_cm->modname,
+                                                     'iteminstance' => $this->_cm->instance,
+                                                     'itemnumber' => 0,
+                                                     'courseid' => $COURSE->id));
+                if ($gradeitem) {
+                    $gradeoptions['currentgrade'] = $gradeitem->grademax;
+                    $gradeoptions['currentgradetype'] = $gradeitem->gradetype;
+                    $gradeoptions['currentscaleid'] = $gradeitem->scaleid;
+                    $gradeoptions['hasgrades'] = $gradeitem->has_grades();
+                }
+            }
+            $mform->addElement('modgrade', 'scale', get_string('scale'), $gradeoptions);
             $mform->disabledIf('scale', 'assessed', 'eq', 0);
             $mform->addHelpButton('scale', 'modgrade', 'grades');
             $mform->setDefault('scale', $CFG->gradepointdefault);
@@ -641,6 +661,12 @@ abstract class moodleform_mod extends moodleform {
     public function standard_grading_coursemodule_elements() {
         global $COURSE, $CFG;
         $mform =& $this->_form;
+        $isupdate = !empty($this->_cm);
+        $gradeoptions = array('isupdate' => $isupdate,
+                              'currentgrade' => false,
+                              'hasgrades' => false,
+                              'canrescale' => $this->_features->canrescale,
+                              'useratings' => $this->_features->rating);
 
         if ($this->_features->hasgrades) {
 
@@ -650,7 +676,21 @@ abstract class moodleform_mod extends moodleform {
 
             //if supports grades and grades arent being handled via ratings
             if (!$this->_features->rating) {
-                $mform->addElement('modgrade', 'grade', get_string('grade'));
+
+                if ($isupdate) {
+                    $gradeitem = grade_item::fetch(array('itemtype' => 'mod',
+                                                         'itemmodule' => $this->_cm->modname,
+                                                         'iteminstance' => $this->_cm->instance,
+                                                         'itemnumber' => 0,
+                                                         'courseid' => $COURSE->id));
+                    if ($gradeitem) {
+                        $gradeoptions['currentgrade'] = $gradeitem->grademax;
+                        $gradeoptions['currentgradetype'] = $gradeitem->gradetype;
+                        $gradeoptions['currentscaleid'] = $gradeitem->scaleid;
+                        $gradeoptions['hasgrades'] = $gradeitem->has_grades();
+                    }
+                }
+                $mform->addElement('modgrade', 'grade', get_string('grade'), $gradeoptions);
                 $mform->addHelpButton('grade', 'modgrade', 'grades');
                 $mform->setDefault('grade', $CFG->gradepointdefault);
             }
index 75d3901..7ee5cbe 100644 (file)
@@ -156,6 +156,8 @@ if ($mform->is_cancelled()) {
     }
 
     $grade_item = new grade_item(array('id'=>$id, 'courseid'=>$courseid));
+    $oldmin = $grade_item->grademin;
+    $oldmax = $grade_item->grademax;
     grade_item::set_properties($grade_item, $data);
     $grade_item->outcomeid = null;
 
@@ -175,6 +177,12 @@ if ($mform->is_cancelled()) {
 
     } else {
         $grade_item->update();
+
+        if (!empty($data->rescalegrades) && $data->rescalegrades == 'yes') {
+            $newmin = $grade_item->grademin;
+            $newmax = $grade_item->grademax;
+            $grade_item->rescale_grades_keep_percentage($oldmin, $oldmax, $newmin, $newmax, 'gradebook');
+        }
     }
 
     // update hiding flag
index f8a08c6..572faa3 100644 (file)
@@ -51,6 +51,23 @@ class edit_item_form extends moodleform {
         $mform->addHelpButton('idnumber', 'idnumbermod');
         $mform->setType('idnumber', PARAM_RAW);
 
+        if (!empty($item->id)) {
+            $gradeitem = new grade_item(array('id' => $item->id, 'courseid' => $item->courseid));
+            // If grades exist set a message so the user knows why they can not alter the grade type or scale.
+            // We could never change the grade type for external items, so only need to show this for manual grade items.
+            if ($gradeitem->has_grades() && !$gradeitem->is_external_item()) {
+                // Set a message so the user knows why they can not alter the grade type or scale.
+                if ($gradeitem->gradetype == GRADE_TYPE_SCALE) {
+                    $gradesexistmsg = get_string('modgradecantchangegradetyporscalemsg', 'grades');
+                } else {
+                    $gradesexistmsg = get_string('modgradecantchangegradetypemsg', 'grades');
+                }
+
+                $gradesexisthtml = '<div class=\'alert\'>' . $gradesexistmsg . '</div>';
+                $mform->addElement('static', 'gradesexistmsg', '', $gradesexisthtml);
+            }
+        }
+
         // Manual grade items cannot have grade type GRADE_TYPE_NONE.
         $options = array(GRADE_TYPE_VALUE => get_string('typevalue', 'grades'),
                          GRADE_TYPE_SCALE => get_string('typescale', 'grades'),
@@ -85,6 +102,14 @@ class edit_item_form extends moodleform {
         $mform->addHelpButton('scaleid', 'typescale', 'grades');
         $mform->disabledIf('scaleid', 'gradetype', 'noteq', GRADE_TYPE_SCALE);
 
+        $choices = array();
+        $choices[''] = get_string('choose');
+        $choices['no'] = get_string('no');
+        $choices['yes'] = get_string('yes');
+        $mform->addElement('select', 'rescalegrades', get_string('modgraderescalegrades', 'grades'), $choices);
+        $mform->addHelpButton('rescalegrades', 'modgraderescalegrades', 'grades');
+        $mform->disabledIf('rescalegrades', 'gradetype', 'noteq', GRADE_TYPE_VALUE);
+
         $mform->addElement('text', 'grademax', get_string('grademax', 'grades'));
         $mform->addHelpButton('grademax', 'grademax', 'grades');
         $mform->disabledIf('grademax', 'gradetype', 'noteq', GRADE_TYPE_VALUE);
@@ -269,7 +294,39 @@ class edit_item_form extends moodleform {
                         // the idnumber of grade itemnumber 0 is synced with course_modules
                         $mform->hardFreeze('idnumber');
                     }
-                    //$mform->removeElement('calculation');
+
+                    // For external items we can not change the grade type, even if no grades exist, so if it is set to
+                    // scale, then remove the grademax and grademin fields from the form - no point displaying them.
+                    if ($grade_item->gradetype == GRADE_TYPE_SCALE) {
+                        $mform->removeElement('grademax');
+                        if ($mform->elementExists('grademin')) {
+                            $mform->removeElement('grademin');
+                        }
+                    } else { // Not using scale, so remove it.
+                        $mform->removeElement('scaleid');
+                    }
+
+                    // Always remove the rescale grades element if it's an external item.
+                    $mform->removeElement('rescalegrades');
+                } else if ($grade_item->has_grades()) {
+                    // Can't change the grade type or the scale if there are grades.
+                    $mform->hardFreeze('gradetype, scaleid');
+
+                    // If we are using scales then remove the unnecessary rescale and grade fields.
+                    if ($grade_item->gradetype == GRADE_TYPE_SCALE) {
+                        $mform->removeElement('rescalegrades');
+                        $mform->removeElement('grademax');
+                        if ($mform->elementExists('grademin')) {
+                            $mform->removeElement('grademin');
+                        }
+                    } else { // Remove the scale field.
+                        $mform->removeElement('scaleid');
+                        // Set the maximum grade to disabled unless a grade is chosen.
+                        $mform->disabledIf('grademax', 'rescalegrades', 'eq', '');
+                    }
+                } else {
+                    // Remove the rescale element if there are no grades.
+                    $mform->removeElement('rescalegrades');
                 }
             }
 
@@ -342,6 +399,7 @@ class edit_item_form extends moodleform {
             // all new items are manual, children of course category
             $mform->removeElement('plusfactor');
             $mform->removeElement('multfactor');
+            $mform->removeElement('rescalegrades');
         }
 
         // no parent header for course category
@@ -353,12 +411,15 @@ class edit_item_form extends moodleform {
 /// perform extra validation before submission
     function validation($data, $files) {
         global $COURSE;
+        $grade_item = false;
+        if ($data['id']) {
+            $grade_item = new grade_item(array('id' => $data['id'], 'courseid' => $data['courseid']));
+        }
 
         $errors = parent::validation($data, $files);
 
         if (array_key_exists('idnumber', $data)) {
-            if ($data['id']) {
-                $grade_item = new grade_item(array('id'=>$data['id'], 'courseid'=>$data['courseid']));
+            if ($grade_item) {
                 if ($grade_item->itemtype == 'mod') {
                     $cm = get_coursemodule_from_instance($grade_item->itemmodule, $grade_item->iteminstance, $grade_item->courseid);
                 } else {
@@ -386,6 +447,31 @@ class edit_item_form extends moodleform {
             }
         }
 
+        // We do not want the user to be able to change the grade type or scale for this item if grades exist.
+        if ($grade_item && $grade_item->has_grades()) {
+            // Check that grade type is set - should never not be set unless form has been modified.
+            if (!isset($data['gradetype'])) {
+                $errors['gradetype'] = get_string('modgradecantchangegradetype', 'grades');
+            } else if ($data['gradetype'] !== $grade_item->gradetype) { // Check if we are changing the grade type.
+                $errors['gradetype'] = get_string('modgradecantchangegradetype', 'grades');
+            } else if ($data['gradetype'] == GRADE_TYPE_SCALE) {
+                // Check if we are changing the scale - can't do this when grades exist.
+                if (isset($data['scaleid']) && ($data['scaleid'] !== $grade_item->scaleid)) {
+                    $errors['scaleid'] = get_string('modgradecantchangescale', 'grades');
+                }
+            }
+        }
+        if ($grade_item) {
+            if ($grade_item->gradetype == GRADE_TYPE_VALUE) {
+                if (grade_floats_different($data['grademin'], $grade_item->grademin) ||
+                    grade_floats_different($data['grademax'], $grade_item->grademax)) {
+                    if ($grade_item->has_grades() && empty($data['rescalegrades'])) {
+                        $errors['rescalegrades'] = get_string('mustchooserescaleyesorno', 'grades');
+                    }
+                }
+            }
+        }
+
         return $errors;
     }
 
index 09f1b04..c51e281 100644 (file)
@@ -425,6 +425,7 @@ Feature: We can use calculated grade totals
     And I set the following settings for grade item "Manual item 2":
       | Extra credit  | 0   |
       | Maximum grade | 200 |
+      | Rescale existing grades | No |
     And I give the grade "21.00" to the user "Student 1" for the grade item "Manual item 2"
     And I press "Save changes"
     And I give the grade "20.00" to the user "Student 1" for the grade item "Manual item 2"
@@ -435,6 +436,7 @@ Feature: We can use calculated grade totals
     And I set the following settings for grade item "Manual item 2":
       | Extra credit  | 0   |
       | Maximum grade | 100 |
+      | Rescale existing grades | No |
     And I give the grade "21.00" to the user "Student 1" for the grade item "Manual item 2"
     And I press "Save changes"
     And I give the grade "20.00" to the user "Student 1" for the grade item "Manual item 2"
index 145a39e..aa07eab 100644 (file)
@@ -145,6 +145,7 @@ Feature: Calculated grade items can be used in the gradebook
       | Course total | -                 | 112.50 | 0–150 | 75.00 %    | -                            |
     And I navigate to "Gradebook setup" node in "Grade administration > Setup"
     And I set the following settings for grade item "calc item":
+      | Rescale existing grades | No |
       | Maximum grade | 40 |
     And I follow "Grader report"
     And I give the grade "65.00" to the user "Student 2" for the grade item "grade item 1"
index cd8d791..87eeb8f 100644 (file)
@@ -146,6 +146,7 @@ Feature: Gradebook calculations for calculated grade items before the fix 201506
       | Course total | -                 | 112.50 | 0–200 | 56.25 %    | -                            |
     And I navigate to "Gradebook setup" node in "Grade administration > Setup"
     And I set the following settings for grade item "calc item":
+      | Rescale existing grades | No |
       | Maximum grade | 40 |
     And I follow "Grader report"
     And I give the grade "65.00" to the user "Student 2" for the grade item "grade item 1"
diff --git a/grade/tests/behat/grade_grade_minmax_change.feature b/grade/tests/behat/grade_grade_minmax_change.feature
new file mode 100644 (file)
index 0000000..edcc64a
--- /dev/null
@@ -0,0 +1,76 @@
+@core @core_grades
+Feature: We can change the maximum and minimum number of points for manual items with existing grades
+  In order to verify existing grades are modified as expected
+  As an teacher
+  I need to modify a grade item with exiting grades
+  I need to ensure existing grades are modified in an expected manner
+
+  Background:
+    Given the following "courses" exist:
+      | fullname | shortname | category | groupmode |
+      | Course 1 | C1 | 0 | 1 |
+    And the following "users" exist:
+      | username | firstname | lastname | email | idnumber |
+      | teacher1 | Teacher | 1 | teacher1@example.com | t1 |
+      | student1 | Student | 1 | student1@example.com | s1 |
+      | student2 | Student | 2 | student2@example.com | s2 |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | teacher1 | C1 | editingteacher |
+      | student1 | C1 | student |
+      | student2 | C1 | student |
+    And I log in as "teacher1"
+    And I am on site homepage
+    And I follow "Course 1"
+    And I navigate to "Grades" node in "Course administration"
+    And I navigate to "Gradebook setup" node in "Grade administration > Setup"
+    And I press "Add grade item"
+    And I set the following fields to these values:
+      | Item name | Manual item 1 |
+      | Minimum grade | 0 |
+      | Maximum grade | 100 |
+    And I press "Save changes"
+    And I navigate to "Course grade settings" node in "Grade administration > Setup"
+    And I set the field "Show weightings" to "Show"
+    And I set the field "Show contribution to course total" to "Show"
+    And I press "Save changes"
+
+  Scenario: Change maximum number of points on a graded item.
+    And I follow "Course 1"
+    And I navigate to "Grades" node in "Course administration"
+    And I turn editing mode on
+    And I give the grade "10.00" to the user "Student 1" for the grade item "Manual item 1"
+    And I give the grade "8.00" to the user "Student 2" for the grade item "Manual item 1"
+    And I press "Save changes"
+    When I navigate to "Gradebook setup" node in "Grade administration > Setup"
+    And I click on "Edit" "link" in the "Manual item 1" "table_row"
+    And I click on "Edit settings" "link" in the "Manual item 1" "table_row"
+    And I set the following fields to these values:
+      | Maximum grade | 10 |
+      | Rescale existing grades | No |
+    And I press "Save changes"
+    And I follow "User report"
+    And I select "Student 1" from the "Select all or one user" singleselect
+    Then the following should exist in the "user-grade" table:
+      | Grade item    | Calculated weight | Grade  | Contribution to course total |
+      | Manual item 1 | 100.00 %          | 10.00  | 100.00 %                     |
+    And I select "Student 2" from the "Select all or one user" singleselect
+    And the following should exist in the "user-grade" table:
+      | Grade item    | Calculated weight | Grade  | Contribution to course total |
+      | Manual item 1 | 100.00 %          | 8.00   | 80.00 %                      |
+    And I navigate to "Gradebook setup" node in "Grade administration > Setup"
+    And I click on "Edit" "link" in the "Manual item 1" "table_row"
+    And I click on "Edit settings" "link" in the "Manual item 1" "table_row"
+    And I set the following fields to these values:
+      | Maximum grade | 20 |
+      | Rescale existing grades | Yes |
+    And I press "Save changes"
+    And I follow "User report"
+    And I select "Student 1" from the "Select all or one user" singleselect
+    And the following should exist in the "user-grade" table:
+      | Grade item    | Calculated weight | Grade  | Contribution to course total |
+      | Manual item 1 | 100.00 %          | 20.00  | 100.00 %                     |
+    And I select "Student 2" from the "Select all or one user" singleselect
+    And the following should exist in the "user-grade" table:
+      | Grade item    | Calculated weight | Grade  | Contribution to course total |
+      | Manual item 1 | 100.00 %          | 16.00   | 80.00 %                     |
diff --git a/grade/tests/behat/grade_item_validation.feature b/grade/tests/behat/grade_item_validation.feature
new file mode 100644 (file)
index 0000000..541922f
--- /dev/null
@@ -0,0 +1,93 @@
+@core_grades
+Feature: Editing a grade item
+  In order to ensure validation is provided to the teacher
+  As a teacher
+  I need to know why I can not add/edit values on the grade item form
+
+  Background:
+    Given the following "users" exist:
+      | username | firstname | lastname | email |
+      | student1 | Student | 1 | student1@example.com |
+      | teacher1 | Teacher | 1 | teacher1@example.com |
+    And the following "courses" exist:
+      | fullname | shortname | category | groupmode |
+      | Course 1 | C1 | 0 | 1 |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | teacher1 | C1 | editingteacher |
+      | student1 | C1 | student |
+    And I log in as "admin"
+    And I navigate to "Scales" node in "Site administration > Grades"
+    And I press "Add a new scale"
+    And I set the following fields to these values:
+      | Name  | ABCDEF |
+      | Scale | F,E,D,C,B,A |
+    And I press "Save changes"
+    And I press "Add a new scale"
+    And I set the following fields to these values:
+      | Name  | Letter scale |
+      | Scale | Disappointing, Good, Very good, Excellent |
+    And I press "Save changes"
+    And I am on site homepage
+    And I follow "Course 1"
+    And I navigate to "Gradebook setup" node in "Course administration"
+    And I press "Add grade item"
+    And I set the following fields to these values:
+      | Item name | MI 1 |
+    And I press "Save changes"
+
+  Scenario: Being able to change the grade type, scale and maximum grade for a manual grade item when there are no grades
+    Given I click on "Edit" "link" in the "MI 1" "table_row"
+    When I click on "Edit settings" "link" in the "MI 1" "table_row"
+    Then I should not see "Some grades have already been awarded, so the grade type"
+    And I set the field "Grade type" to "Scale"
+    And I press "Save changes"
+    And I should see "Scale must be selected"
+    And I set the field "Scale" to "ABCDEF"
+    And I press "Save changes"
+    And I should not see "You cannot change the type, as grades already exist for this item"
+    And I click on "Edit" "link" in the "MI 1" "table_row"
+    And I click on "Edit settings" "link" in the "MI 1" "table_row"
+    And I should not see "Some grades have already been awarded, so the grade type"
+    And I set the field "Scale" to "Letter scale"
+    And I press "Save changes"
+    And I should not see "You cannot change the scale, as grades already exist for this item"
+
+  Scenario: Attempting to change a manual item's grade type when grades already exist
+    Given I navigate to "Grader report" node in "Grade administration"
+    And I turn editing mode on
+    And I give the grade "20.00" to the user "Student 1" for the grade item "MI 1"
+    And I press "Save changes"
+    And I navigate to "Gradebook setup" node in "Grade administration > Setup"
+    And I click on "Edit" "link" in the "MI 1" "table_row"
+    When I click on "Edit settings" "link" in the "MI 1" "table_row"
+    Then I should see "Some grades have already been awarded, so the grade type cannot be changed. If you wish to change the maximum grade, you must first choose whether or not to rescale existing grades."
+    And "//div[contains(concat(' ', normalize-space(@class), ' '), 'fstatic') and contains(text(), 'Value')]" "xpath_element" should exist
+
+  Scenario: Attempting to change a manual item's scale when grades already exist
+    Given I click on "Edit" "link" in the "MI 1" "table_row"
+    And I click on "Edit settings" "link" in the "MI 1" "table_row"
+    And I set the field "Grade type" to "Scale"
+    And I set the field "Scale" to "ABCDEF"
+    And I press "Save changes"
+    And I navigate to "Grader report" node in "Grade administration"
+    And I turn editing mode on
+    And I give the grade "C" to the user "Student 1" for the grade item "MI 1"
+    And I press "Save changes"
+    And I navigate to "Gradebook setup" node in "Grade administration > Setup"
+    And I click on "Edit" "link" in the "MI 1" "table_row"
+    When I click on "Edit settings" "link" in the "MI 1" "table_row"
+    Then I should see "Some grades have already been awarded, so the grade type and scale cannot be changed."
+    And "//div[contains(concat(' ', normalize-space(@class), ' '), 'fstatic') and contains(text(), 'ABCDEF')]" "xpath_element" should exist
+
+  Scenario: Attempting to change a manual item's maximum grade when no rescaling option has been chosen
+    Given I navigate to "Grader report" node in "Grade administration"
+    And I turn editing mode on
+    And I give the grade "20.00" to the user "Student 1" for the grade item "MI 1"
+    And I press "Save changes"
+    And I navigate to "Gradebook setup" node in "Grade administration > Setup"
+    And I click on "Edit" "link" in the "MI 1" "table_row"
+    And I click on "Edit settings" "link" in the "MI 1" "table_row"
+    And I set the field "Maximum grade" to "50"
+    When I press "Save changes"
+    Then I should see "You must choose whether to rescale existing grades or not."
index cb1aa15..971461a 100644 (file)
@@ -100,11 +100,13 @@ Feature: We can choose what min or max grade to use when aggregating grades.
       | Course total | -                 | 60.00  | 0–300 | 20.00 %    | -                            |
     And I navigate to "Gradebook setup" node in "Grade administration > Setup"
     And I set the following settings for grade item "MI 1":
-      | Maximum grade          | 50.00 |
-      | Minimum grade          | 5.00 |
+      | Maximum grade           | 50.00 |
+      | Minimum grade           | 5.00  |
+      | Rescale existing grades | No    |
     And I set the following settings for grade item "MI 3":
-      | Maximum grade          | 50.00 |
-      | Minimum grade          | 5.00 |
+      | Maximum grade           | 50.00 |
+      | Minimum grade           | 5.00  |
+      | Rescale existing grades | No    |
     And I follow "User report"
     And I select "Student 1" from the "Select all or one user" singleselect
     And the following should exist in the "user-grade" table:
@@ -129,6 +131,7 @@ Feature: We can choose what min or max grade to use when aggregating grades.
     And I navigate to "Gradebook setup" node in "Grade administration > Setup"
     And I set the following settings for grade item "MI 5":
       | Maximum grade          | 200.00 |
+      | Rescale existing grades | No    |
     And I follow "User report"
     And I select "Student 1" from the "Select all or one user" singleselect
     And the following should exist in the "user-grade" table:
index 5662264..1070302 100644 (file)
@@ -29,13 +29,13 @@ Feature: We can change the grading type and maximum grade point values
     And I expand all fieldsets
     And I set the field "grade[modgrade_type]" to "Point"
     Then the "Scale" "select" should be disabled
-    And the "Maximum points" "field" should be enabled
+    And the "Maximum grade" "field" should be enabled
     And I set the field "grade[modgrade_type]" to "Scale"
-    And the "Maximum points" "field" should be disabled
+    And the "Maximum grade" "field" should be disabled
     Then the "Scale" "select" should be enabled
     And I set the field "grade[modgrade_type]" to "None"
     Then the "Scale" "select" should be disabled
-    And the "Maximum points" "field" should be disabled
+    And the "Maximum grade" "field" should be disabled
     And I press "Save and return to course"
 
   @javascript
@@ -61,7 +61,7 @@ Feature: We can change the grading type and maximum grade point values
     And I press "Save and display"
     And I follow "Edit settings"
     Then the field "grade[modgrade_scale]" matches value "Separate and Connected ways of knowing"
-    And the "Maximum points" "field" should be disabled
+    And the "Maximum grade" "field" should be disabled
     And I press "Save and return to course"
 
   @javascript
@@ -73,7 +73,7 @@ Feature: We can change the grading type and maximum grade point values
     And I press "Save and display"
     And I follow "Edit settings"
     And the "Scale" "select" should be disabled
-    And the "Maximum points" "field" should be disabled
+    And the "Maximum grade" "field" should be disabled
     And I press "Save and return to course"
 
   @javascript
@@ -84,7 +84,7 @@ Feature: We can change the grading type and maximum grade point values
     And I set the field "grade[modgrade_type]" to "Point"
     And I set the field "grade[modgrade_point]" to "20000"
     And I press "Save and display"
-    Then I should see "Invalid Grade Value. This must be an integer between 1 and 900"
+    Then I should see "Invalid grade value. This must be an integer between 1 and 900"
     And I press "Cancel"
 
   @javascript
@@ -104,5 +104,5 @@ Feature: We can change the grading type and maximum grade point values
     And I follow "Test Assignment 1"
     And I follow "Edit settings"
     And I press "Save and display"
-    Then I should see "Invalid Grade Value. This must be an integer between 1 and 100"
+    Then I should see "Invalid grade value. This must be an integer between 1 and 100"
     And I press "Cancel"
index 2fec297..2c74e52 100644 (file)
@@ -37,7 +37,7 @@ Feature: Control the aggregation of the scales
     And I log out
 
   @javascript
-  Scenario Outline: Scales can be exluded from aggregation
+  Scenario Outline: Scales can be excluded from aggregation
     Given I log in as "teacher1"
     And I follow "Course 1"
     And I navigate to "Grades" node in "Course administration"
index a5248d1..d34cda2 100644 (file)
@@ -123,6 +123,7 @@ $string['cannotreadfile'] = 'Cannot read file ({$a})';
 $string['cannotreadtmpfile'] = 'Error reading temporary file';
 $string['cannotreaduploadfile'] = 'Could not read uploaded file';
 $string['cannotremovefrommeta'] = 'Could not remove the selected course from this meta course!';
+$string['cannotreprocessgrades'] = 'Could not reprocess grades for this activity {$a}';
 $string['cannotresetguestpwd'] = 'You cannot reset the guest password';
 $string['cannotresetmail'] = 'Error resetting password and mailing you';
 $string['cannotresetthisrole'] = 'Cannot reset this role';
index 6bbb927..4089b5e 100644 (file)
@@ -472,11 +472,23 @@ $string['minimum_show_help'] = 'Minimum grade is used in calculating grades and
 $string['missingitemtypeoreid'] = 'Array key (itemtype or eid) missing from 2nd param of grade_edit_tree_column_select::get_item_cell($item, $params)';
 $string['missingscale'] = 'Scale must be selected';
 $string['mode'] = 'Mode';
-$string['modgradeerrorbadpoint'] = 'Invalid Grade Value. This must be an integer between 1 and {$a}';
-$string['modgradeerrorbadscale'] = 'Invalid scale selected. Please make sure you select a scale from the selections below.';
 $string['modgrade'] = 'Grade';
 $string['modgrade_help'] = 'Select the type of grading used for this activity. If "scale" is chosen, you can then choose the scale from the "scale" dropdown. If using "point" grading, you can then enter the maximum grade available for this activity.';
-$string['modgrademaxgrade'] = 'Maximum points';
+$string['modgradecantchangegradetype'] = 'You cannot change the type, as grades already exist for this item.';
+$string['modgradecantchangegradetypemsg'] = 'Some grades have already been awarded, so the grade type cannot be changed. If you wish to change the maximum grade, you must first choose whether or not to rescale existing grades.';
+$string['modgradecantchangegradetyporscalemsg'] = 'Some grades have already been awarded, so the grade type and scale cannot be changed.';
+$string['modgradecantchangescale'] = 'You cannot change the scale, as grades already exist for this item.';
+$string['modgradecantchangeratingmaxgrade'] = 'You cannot change the maximum grade when grades already exist for an activity with ratings.';
+$string['modgradedonotmodify'] = 'Do not modify existing grades';
+$string['modgradeerrorbadpoint'] = 'Invalid grade value. This must be an integer between 1 and {$a}';
+$string['modgradeerrorbadscale'] = 'Invalid scale selected. Please make sure you select a scale from the selections below.';
+$string['modgrademaxgrade'] = 'Maximum grade';
+$string['modgraderescalegrades'] = 'Rescale existing grades';
+$string['modgraderescalegrades_help'] = 'When changing the maximum grades on a gradebook item you need to specify whether or not this will cause existing percentage grades to change as well.
+
+If this is set to \'Yes\', any existing grades will be rescaled so that the percentage grade remains the same.
+
+For example, if this option is set to \'Yes\', changing the maximum grade on an item from 10 to 20 would cause a grade of 6/10 (60%) to be rescaled to 12/20 (60%). With this option set to \'No\', the grade would change from 6/10 (60%) to 6/20 (30%), requiring manual adjustment of the grade items to ensure correct scores.';
 $string['modgradetype'] = 'Type';
 $string['modgradetypenone'] = 'None';
 $string['modgradetypepoint'] = 'Point';
@@ -491,6 +503,7 @@ $string['mygrades'] = 'User menu grades link';
 $string['mygrades_desc'] = 'This setting allows for the option of linking to an external gradebook from the user menu.';
 $string['mypreferences'] = 'My preferences';
 $string['myreportpreferences'] = 'My report preferences';
+$string['mustchooserescaleyesorno'] = 'You must choose whether to rescale existing grades or not.';
 $string['navmethod'] = 'Navigation method';
 $string['neverdeletehistory'] = 'Never delete history';
 $string['newcategory'] = 'New category';
index 60e4628..a0e32a3 100644 (file)
@@ -111,7 +111,7 @@ $string['error'] = 'An unknown error occurred!';
 $string['errordoublereference'] = 'Unable to overwrite file with a shortcut/alias because shortcuts to this file already exist.';
 $string['errornotyourfile'] = 'You cannot pick file which is not added by your';
 $string['erroruniquename'] = 'Repository instance name should be unique';
-$string['errorpostmaxsize'] = 'The uploaded file may exceed the post_max_size directive in php.ini.';
+$string['errorpostmaxsize'] = 'The file you tried to upload is too large for the server to process.';
 $string['errorwhilecommunicatingwith'] = 'Error while communicating with the repository \'{$a}\'.';
 $string['errorwhiledownload'] = 'An error occurred while downloading the file: {$a}';
 $string['existingrepository'] = 'This repository already exists';
diff --git a/lib/classes/output/url_rewriter.php b/lib/classes/output/url_rewriter.php
new file mode 100644 (file)
index 0000000..435bd55
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle 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 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * URL rewriter base.
+ *
+ * @package    core
+ * @author     Brendan Heywood <brendan@catalyst-au.net>
+ * @copyright  Catalyst IT
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace core\output;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * URL rewriter interface
+ *
+ * @package    core
+ * @author     Brendan Heywood <brendan@catalyst-au.net>
+ * @copyright  Catalyst IT
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+interface url_rewriter {
+
+    /**
+     * Rewrite moodle_urls into another form.
+     *
+     * @param moodle_url $url a url to potentially rewrite
+     * @return moodle_url Returns a new, or the original, moodle_url;
+     */
+    public static function url_rewrite(\moodle_url $url);
+
+    /**
+     * Gives a url rewriting plugin a chance to rewrite the current page url
+     * avoiding redirects and improving performance.
+     *
+     * @return void
+     */
+    public static function html_head_setup();
+
+
+}
+
index e29d3c0..de0ee97 100644 (file)
@@ -876,7 +876,6 @@ M.form_dndupload.init = function(Y, options) {
 
             // Prepare the data to send
             var formdata = new FormData();
-            formdata.append('action', 'upload');
             formdata.append('repo_upload_file', file); // The FormData class allows us to attach a file
             formdata.append('sesskey', M.cfg.sesskey);
             formdata.append('repo_id', this.repositoryid);
@@ -905,8 +904,14 @@ M.form_dndupload.init = function(Y, options) {
                 formdata.append('accepted_types[]', this.options.acceptedtypes);
             }
 
-            // Send the file & required details
-            xhr.open("POST", this.api, true);
+            // Send the file & required details.
+            var uploadUrl = this.api;
+            if (uploadUrl.indexOf('?') !== -1) {
+                uploadUrl += '&action=upload';
+            } else {
+                uploadUrl += '?action=upload';
+            }
+            xhr.open("POST", uploadUrl, true);
             xhr.send(formdata);
             return true;
         }
index 73394f4..b1c5eb6 100644 (file)
@@ -43,14 +43,48 @@ require_once($CFG->dirroot.'/lib/grade/grade_scale.php');
  * @copyright 2006 Jamie Pratt <me@jamiep.org>
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
+class MoodleQuickForm_modgrade extends MoodleQuickForm_group {
+
+    /** @var boolean $isupdate Is this an add or an update ? */
+    public $isupdate = false;
+
+    /** @var float $currentgrade The current grademax for the grade_item */
+    public $currentgrade = false;
+
+    /** @var boolean $hasgrades Has this grade_item got any real grades (with values) */
+    public $hasgrades = false;
+
+    /** @var boolean $canrescale Does this activity support rescaling grades? */
+    public $canrescale = false;
+
+    /** @var int $currentscaleid The current scale id */
+    public $currentscaleid = null;
+
+    /** @var string $currentgradetype The current gradetype - can either be 'none', 'scale', or 'point' */
+    public $currentgradetype = 'none';
+
+    /** @var boolean $useratings Set to true if the activity is using ratings, false otherwise */
+    public $useratings = false;
+
+    /** @var MoodleQuickForm_select $gradetypeformelement */
+    private $gradetypeformelement;
+
+    /** @var MoodleQuickForm_select $scaleformelement */
+    private $scaleformelement;
+
+    /** @var MoodleQuickForm_text $maxgradeformelement */
+    private $maxgradeformelement;
 
     /**
      * Constructor
      *
      * @param string $elementname Element's name
      * @param mixed $elementlabel Label(s) for an element
-     * @param array $options Options to control the element's display. Not used.
+     * @param array $options Options to control the element's display. Required - must contain the following options:
+     *              'isupdate' - is this a new module or are we editing an existing one?
+     *              'currentgrade' - the current grademax in the database for this gradeitem
+     *              'hasgrades' - whether or not the grade_item has existing grade_grades
+     *              'canrescale' - whether or not the activity supports rescaling grades
      * @param mixed $attributes Either a typical HTML attribute string or an associative array
      */
     public function __construct($elementname = null, $elementlabel = null, $options = array(), $attributes = null) {
@@ -59,6 +93,30 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
         $this->_persistantFreeze = true;
         $this->_appendName = true;
         $this->_type = 'modgrade';
+        $this->isupdate = !empty($options['isupdate']);
+        if (isset($options['currentgrade'])) {
+            $this->currentgrade = $options['currentgrade'];
+        }
+        if (isset($options['currentgradetype'])) {
+            $gradetype = $options['currentgradetype'];
+            switch ($gradetype) {
+                case GRADE_TYPE_NONE :
+                    $this->currentgradetype = 'none';
+                    break;
+                case GRADE_TYPE_SCALE :
+                    $this->currentgradetype = 'scale';
+                    break;
+                case GRADE_TYPE_VALUE :
+                    $this->currentgradetype = 'point';
+                    break;
+            }
+        }
+        if (isset($options['currentscaleid'])) {
+            $this->currentscaleid = $options['currentscaleid'];
+        }
+        $this->hasgrades = !empty($options['hasgrades']);
+        $this->canrescale = !empty($options['canrescale']);
+        $this->useratings = !empty($options['useratings']);
     }
 
     /**
@@ -75,7 +133,7 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
      * Create elements for this group.
      */
     public function _createElements() {
-        global $COURSE, $CFG;
+        global $COURSE, $CFG, $OUTPUT;
         $attributes = $this->getAttributes();
         if (is_null($attributes)) {
             $attributes = array();
@@ -89,17 +147,18 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
         // Grade scale select box.
         $scales = get_scales_menu($COURSE->id);
         $langscale = get_string('modgradetypescale', 'grades');
-        $scaleselect = @MoodleQuickForm::createElement('select', 'modgrade_scale', $langscale, $scales, $attributes);
-        $scaleselect->setHiddenLabel = false;
-        $scaleselectid = $this->generate_modgrade_subelement_id('modgrade_scale');
-        $scaleselect->updateAttributes(array('id' => $scaleselectid));
+        $this->scaleformelement = @MoodleQuickForm::createElement('select', 'modgrade_scale', $langscale,
+            $scales, $attributes);
+        $this->scaleformelement->setHiddenLabel = false;
+        $scaleformelementid = $this->generate_modgrade_subelement_id('modgrade_scale');
+        $this->scaleformelement->updateAttributes(array('id' => $scaleformelementid));
 
         // Maximum grade textbox.
         $langmaxgrade = get_string('modgrademaxgrade', 'grades');
-        $maxgrade = @MoodleQuickForm::createElement('text', 'modgrade_point', $langmaxgrade, array());
-        $maxgrade->setHiddenLabel = false;
-        $maxgradeid = $this->generate_modgrade_subelement_id('modgrade_point');
-        $maxgrade->updateAttributes(array('id' => $maxgradeid));
+        $this->maxgradeformelement = @MoodleQuickForm::createElement('text', 'modgrade_point', $langmaxgrade, array());
+        $this->maxgradeformelement->setHiddenLabel = false;
+        $maxgradeformelementid = $this->generate_modgrade_subelement_id('modgrade_point');
+        $this->maxgradeformelement->updateAttributes(array('id' => $maxgradeformelementid));
 
         // Grade type select box.
         $gradetype = array(
@@ -108,30 +167,80 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
             'point' => get_string('modgradetypepoint', 'grades'),
         );
         $langtype = get_string('modgradetype', 'grades');
-        $typeselect = @MoodleQuickForm::createElement('select', 'modgrade_type', $langtype, $gradetype, $attributes, true);
-        $typeselect->setHiddenLabel = false;
-        $typeselectid = $this->generate_modgrade_subelement_id('modgrade_type');
-        $typeselect->updateAttributes(array('id' => $typeselectid));
+        $this->gradetypeformelement = @MoodleQuickForm::createElement('select', 'modgrade_type', $langtype, $gradetype,
+            $attributes, true);
+        $this->gradetypeformelement->setHiddenLabel = false;
+        $gradetypeformelementid = $this->generate_modgrade_subelement_id('modgrade_type');
+        $this->gradetypeformelement->updateAttributes(array('id' => $gradetypeformelementid));
+
+        if ($this->isupdate && $this->hasgrades) {
+            $this->gradetypeformelement->updateAttributes(array('disabled' => 'disabled'));
+            $this->scaleformelement->updateAttributes(array('disabled' => 'disabled'));
+
+            // Check box for options for processing existing grades.
+            if ($this->canrescale) {
+                $langrescalegrades = get_string('modgraderescalegrades', 'grades');
+                $choices = array();
+                $choices[''] = get_string('choose');
+                $choices['no'] = get_string('no');
+                $choices['yes'] = get_string('yes');
+                $rescalegradesselect = @MoodleQuickForm::createElement('select',
+                    'modgrade_rescalegrades',
+                    $langrescalegrades,
+                    $choices);
+                $rescalegradesselect->setHiddenLabel = false;
+                $rescalegradesselectid = $this->generate_modgrade_subelement_id('modgrade_rescalegrades');
+                $rescalegradesselect->updateAttributes(array('id' => $rescalegradesselectid));
+            }
+        }
 
         // Add elements.
+        if ($this->isupdate && $this->hasgrades) {
+            // Set a message so the user knows why they can not alter the grade type or scale.
+            if ($this->currentgradetype == 'scale') {
+                $gradesexistmsg = get_string('modgradecantchangegradetyporscalemsg', 'grades');
+            } else {
+                $gradesexistmsg = get_string('modgradecantchangegradetypemsg', 'grades');
+            }
+
+            $gradesexisthtml = '<div class=\'alert\'>' . $gradesexistmsg . '</div>';
+            $this->_elements[] = @MoodleQuickForm::createElement('static', 'gradesexistmsg', '', $gradesexisthtml);
+        }
 
         // Grade type select box.
-        $label = html_writer::tag('label', $typeselect->getLabel(), array('for' => $typeselect->getAttribute('id')));
+        $label = html_writer::tag('label', $this->gradetypeformelement->getLabel(),
+            array('for' => $this->gradetypeformelement->getAttribute('id')));
         $this->_elements[] = @MoodleQuickForm::createElement('static', 'gradetypelabel', '', '&nbsp;'.$label);
-        $this->_elements[] = $typeselect;
+        $this->_elements[] = $this->gradetypeformelement;
         $this->_elements[] = @MoodleQuickForm::createElement('static', 'gradetypespacer', '', '<br />');
 
-        // Grade scale select box.
-        $label = html_writer::tag('label', $scaleselect->getLabel(), array('for' => $scaleselectid));
-        $this->_elements[] = @MoodleQuickForm::createElement('static', 'scalelabel', '', $label);
-        $this->_elements[] = $scaleselect;
-        $this->_elements[] = @MoodleQuickForm::createElement('static', 'scalespacer', '', '<br />');
+        // Only show the grade scale select box when applicable.
+        if (!$this->isupdate || !$this->hasgrades || $this->currentgradetype == 'scale') {
+            $label = html_writer::tag('label', $this->scaleformelement->getLabel(),
+                array('for' => $this->scaleformelement->getAttribute('id')));
+            $this->_elements[] = @MoodleQuickForm::createElement('static', 'scalelabel', '', $label);
+            $this->_elements[] = $this->scaleformelement;
+            $this->_elements[] = @MoodleQuickForm::createElement('static', 'scalespacer', '', '<br />');
+        }
 
-        // Maximum grade textbox.
-        $label = html_writer::tag('label', $maxgrade->getLabel(), array('for' => $maxgradeid));
-        $this->_elements[] = @MoodleQuickForm::createElement('static', 'pointlabel', '', $label);
-        $this->_elements[] = $maxgrade;
-        $this->_elements[] = @MoodleQuickForm::createElement('static', 'pointspacer', '', '<br />');
+        if ($this->isupdate && $this->hasgrades && $this->canrescale && $this->currentgradetype == 'point') {
+            // We need to know how to apply any changes to maxgrade - ie to either update, or don't touch exising grades.
+            $label = html_writer::tag('label', $rescalegradesselect->getLabel(),
+                array('for' => $rescalegradesselect->getAttribute('id')));
+            $labelhelp = new help_icon('modgraderescalegrades', 'grades');
+            $this->_elements[] = @MoodleQuickForm::createElement('static', 'scalelabel', '', $label . $OUTPUT->render($labelhelp));
+            $this->_elements[] = $rescalegradesselect;
+            $this->_elements[] = @MoodleQuickForm::createElement('static', 'scalespacer', '', '<br />');
+        }
+
+        // Only show the max points form element when applicable.
+        if (!$this->isupdate || !$this->hasgrades || $this->currentgradetype == 'point') {
+            $label = html_writer::tag('label', $this->maxgradeformelement->getLabel(),
+                array('for' => $this->maxgradeformelement->getAttribute('id')));
+            $this->_elements[] = @MoodleQuickForm::createElement('static', 'pointlabel', '', $label);
+            $this->_elements[] = $this->maxgradeformelement;
+            $this->_elements[] = @MoodleQuickForm::createElement('static', 'pointspacer', '', '<br />');
+        }
     }
 
     /**
@@ -156,8 +265,9 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
         $type = (isset($vals['modgrade_type'])) ? $vals['modgrade_type'] : 'none';
         $point = (isset($vals['modgrade_point'])) ? $vals['modgrade_point'] : null;
         $scale = (isset($vals['modgrade_scale'])) ? $vals['modgrade_scale'] : null;
+        $rescalegrades = (isset($vals['modgrade_rescalegrades'])) ? $vals['modgrade_rescalegrades'] : null;
         $return = $this->process_value($type, $scale, $point);
-        return array($this->getName() => $return);
+        return array($this->getName() => $return, $this->getName() . '_rescalegrades' => $rescalegrades);
     }
 
     /**
@@ -231,11 +341,54 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
                 // Set disable actions.
                 $caller->disabledIf($name.'[modgrade_scale]', $name.'[modgrade_type]', 'neq', 'scale');
                 $caller->disabledIf($name.'[modgrade_point]', $name.'[modgrade_type]', 'neq', 'point');
+                $caller->disabledIf($name.'[modgrade_rescalegrades]', $name.'[modgrade_type]', 'neq', 'point');
 
                 // Set validation rules for the sub-elements belonging to this element.
                 // A handy note: the parent scope of a closure is the function in which the closure was declared.
                 // Because of this using $this is safe despite the closures being called statically.
                 // A nasty magic hack!
+                $checkgradetypechange = function($val) {
+                    // Nothing is affected by changes to the grade type if there are no grades yet.
+                    if (!$this->hasgrades) {
+                        return true;
+                    }
+                    // Check if we are changing the grade type when grades are present.
+                    if (isset($val['modgrade_type']) && $val['modgrade_type'] !== $this->currentgradetype) {
+                        return false;
+                    }
+                    return true;
+                };
+                $checkscalechange = function($val) {
+                    // Nothing is affected by changes to the scale if there are no grades yet.
+                    if (!$this->hasgrades) {
+                        return true;
+                    }
+                    // Check if we are changing the scale type when grades are present.
+                    if (isset($val['modgrade_type']) && $val['modgrade_type'] === 'scale') {
+                        if (isset($val['modgrade_scale']) && ($val['modgrade_scale'] !== $this->currentscaleid)) {
+                            return false;
+                        }
+                    }
+                    return true;
+                };
+                $checkmaxgradechange = function($val) {
+                    // Nothing is affected by changes to the max grade if there are no grades yet.
+                    if (!$this->hasgrades) {
+                        return true;
+                    }
+                    // If we are not using ratings we can change the max grade.
+                    if (!$this->useratings) {
+                        return true;
+                    }
+                    // Check if we are changing the max grade if we are using ratings and there is a grade.
+                    if (isset($val['modgrade_type']) && $val['modgrade_type'] === 'point') {
+                        if (isset($val['modgrade_point']) &&
+                            grade_floats_different($this->currentgrade, $val['modgrade_point'])) {
+                            return false;
+                        }
+                    }
+                    return true;
+                };
                 $checkmaxgrade = function($val) {
                     // Closure to validate a max points value. See the note above about scope if this confuses you.
                     if (isset($val['modgrade_type']) && $val['modgrade_type'] === 'point') {
@@ -257,13 +410,39 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
                     return true;
                 };
 
+                $checkrescale = function($val) {
+                    // Nothing is affected by changes to grademax if there are no grades yet.
+                    if (!$this->isupdate || !$this->hasgrades || !$this->canrescale) {
+                        return true;
+                    }
+                    // Closure to validate a scale value. See the note above about scope if this confuses you.
+                    if (isset($val['modgrade_type']) && $val['modgrade_type'] === 'point') {
+                        // Work out if the value was actually changed in the form.
+                        if (grade_floats_different($this->currentgrade, $val['modgrade_point'])) {
+                            if (empty($val['modgrade_rescalegrades'])) {
+                                // This was an "edit", the grademax was changed and the process existing setting was not set.
+                                return false;
+                            }
+                        }
+                    }
+                    return true;
+                };
+
+                $cantchangegradetype = get_string('modgradecantchangegradetype', 'grades');
+                $cantchangemaxgrade = get_string('modgradecantchangeratingmaxgrade', 'grades');
                 $maxgradeexceeded = get_string('modgradeerrorbadpoint', 'grades', get_config('core', 'gradepointmax'));
                 $invalidscale = get_string('modgradeerrorbadscale', 'grades');
+                $cantchangescale = get_string('modgradecantchangescale', 'grades');
+                $mustchooserescale = get_string('mustchooserescaleyesorno', 'grades');
                 // When creating the rules the sixth arg is $force, we set it to true because otherwise the form
                 // will attempt to validate the existence of the element, we don't want this because the element
                 // is being created right now and doesn't actually exist as a registered element yet.
+                $caller->addRule($name, $cantchangegradetype, 'callback', $checkgradetypechange, 'server', false, true);
+                $caller->addRule($name, $cantchangemaxgrade, 'callback', $checkmaxgradechange, 'server', false, true);
                 $caller->addRule($name, $maxgradeexceeded, 'callback', $checkmaxgrade, 'server', false, true);
                 $caller->addRule($name, $invalidscale, 'callback', $checkvalidscale, 'server', false, true);
+                $caller->addRule($name, $cantchangescale, 'callback', $checkscalechange, 'server', false, true);
+                $caller->addRule($name, $mustchooserescale, 'callback', $checkrescale, 'server', false, true);
 
                 break;
 
@@ -273,6 +452,10 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
                 // In this case we expect an int that is going to translate to a scale if negative, or to max points
                 // if positive.
 
+                // Set the maximum points field to disabled if the rescale option has not been chosen and there are grades.
+                $caller->disabledIf($this->getName() . '[modgrade_point]', $this->getName() .
+                        '[modgrade_rescalegrades]', 'eq', '');
+
                 // A constant value should be given as an int.
                 // The default value should be an int and should really be $CFG->gradepointdefault.
                 $value = $this->_findValue($caller->_constantValues);
@@ -298,15 +481,15 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group{
                 if (!empty($this->_elements)) {
                     if (!empty($value)) {
                         if ($value < 0) {
-                            $this->_elements[1]->setValue('scale');
-                            $this->_elements[4]->setValue(($value * -1));
+                            $this->gradetypeformelement->setValue('scale');
+                            $this->scaleformelement->setValue(($value * -1));
                         } else if ($value > 0) {
-                            $this->_elements[1]->setValue('point');
-                            $this->_elements[7]->setValue($value);
+                            $this->gradetypeformelement->setValue('point');
+                            $this->maxgradeformelement->setValue($value);
                         }
                     } else {
-                        $this->_elements[1]->setValue('none');
-                        $this->_elements[7]->setValue('');
+                        $this->gradetypeformelement->setValue('none');
+                        $this->maxgradeformelement->setValue('');
                     }
                 }
                 break;
diff --git a/lib/form/tests/behat/modgrade_validation.feature b/lib/form/tests/behat/modgrade_validation.feature
new file mode 100644 (file)
index 0000000..73ecb0a
--- /dev/null
@@ -0,0 +1,178 @@
+@core_form
+Feature: Using the activity grade form element
+  In order to ensure validation is provided to the teacher
+  As a teacher
+  I need to know why I can not add/edit values in the form element
+
+  Background:
+    Given the following "users" exist:
+      | username | firstname | lastname | email |
+      | student1 | Student | 1 | student1@example.com |
+      | teacher1 | Teacher | 1 | teacher1@example.com |
+    And the following "courses" exist:
+      | fullname | shortname | category | groupmode |
+      | Course 1 | C1 | 0 | 1 |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | teacher1 | C1 | editingteacher |
+      | student1 | C1 | student |
+
+  Scenario: Being able to change the grade type, scale and maximum grade when there are no grades
+    Given I log in as "admin"
+    And I navigate to "Scales" node in "Site administration > Grades"
+    And I press "Add a new scale"
+    And I set the following fields to these values:
+      | Name  | ABCDEF |
+      | Scale | F,E,D,C,B,A |
+    And I press "Save changes"
+    And I press "Add a new scale"
+    And I set the following fields to these values:
+      | Name  | Letter scale |
+      | Scale | Disappointing, Good, Very good, Excellent |
+    And I press "Save changes"
+    And I log out
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    And I turn editing mode on
+    And I add a "Forum" to section "1" and I fill the form with:
+      | Forum name | Test forum name |
+      | Forum type | Standard forum for general use |
+      | Description | Test forum description |
+      | Aggregate type | Average of ratings  |
+      | scale[modgrade_type] | Point |
+      | scale[modgrade_point] | 100 |
+      | Group mode | No groups |
+    And I follow "Test forum name"
+    And I click on "Edit settings" "link" in the "Administration" "block"
+    When I expand all fieldsets
+    Then I should not see "Some grades have already been awarded, so the grade type"
+    And I set the field "scale[modgrade_type]" to "Scale"
+    And I set the field "scale[modgrade_scale]" to "ABCDEF"
+    And I press "Save and display"
+    And I should not see "You cannot change the type, as grades already exist for this item"
+    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I expand all fieldsets
+    And I should not see "Some grades have already been awarded, so the grade type"
+    And I set the field "scale[modgrade_scale]" to "Letter scale"
+    And I press "Save and display"
+    And I should not see "You cannot change the scale, as grades already exist for this item"
+    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I expand all fieldsets
+    And I should not see "Some grades have already been awarded, so the grade type"
+    And I set the field "scale[modgrade_type]" to "Point"
+    And I set the field "Maximum grade" to "50"
+    And I press "Save and display"
+    And I should not see "You must choose whether to rescale existing grades or not"
+
+  Scenario: Attempting to change the grade type when grades already exist
+    Given I log in as "teacher1"
+    And I follow "Course 1"
+    And I turn editing mode on
+    And I add a "Assignment" to section "1" and I fill the form with:
+      | Assignment name | Test assignment name |
+      | Description | Test assignment description |
+    And I follow "Test assignment name"
+    And I follow "View/grade all submissions"
+    And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
+    And I set the field "Grade out of 100" to "50"
+    And I press "Save changes"
+    And I press "Continue"
+    And I click on "Edit settings" "link" in the "Administration" "block"
+    When I expand all fieldsets
+    Then I should see "Some grades have already been awarded, so the grade type cannot be changed. If you wish to change the maximum grade, you must first choose whether or not to rescale existing grades."
+    And I set the field "grade[modgrade_type]" to "Scale"
+    And I press "Save and display"
+    And I should see "You cannot change the type, as grades already exist for this item"
+
+  Scenario: Attempting to change the scale when grades already exist
+    Given I log in as "admin"
+    And I navigate to "Scales" node in "Site administration > Grades"
+    And I press "Add a new scale"
+    And I set the following fields to these values:
+      | Name  | ABCDEF |
+      | Scale | F,E,D,C,B,A |
+    And I press "Save changes"
+    And I press "Add a new scale"
+    And I set the following fields to these values:
+      | Name  | Letter scale |
+      | Scale | Disappointing, Good, Very good, Excellent |
+    And I press "Save changes"
+    And I log out
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    And I turn editing mode on
+    And I add a "Assignment" to section "1" and I fill the form with:
+      | Assignment name | Test assignment name |
+      | Description | Test assignment description |
+      | grade[modgrade_type] | Scale |
+      | grade[modgrade_scale] | ABCDEF |
+    And I follow "Course 1"
+    And I follow "Test assignment name"
+    And I follow "View/grade all submissions"
+    And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
+    And I set the field "Grade" to "C"
+    And I press "Save changes"
+    And I press "Continue"
+    And I click on "Edit settings" "link" in the "Administration" "block"
+    When I expand all fieldsets
+    Then I should see "Some grades have already been awarded, so the grade type and scale cannot be changed"
+    And I set the field "grade[modgrade_scale]" to "Letter scale"
+    And I press "Save and display"
+    And I should see "You cannot change the scale, as grades already exist for this item"
+
+  Scenario: Attempting to change the maximum grade when ratings exist
+    Given I log in as "teacher1"
+    And I follow "Course 1"
+    And I turn editing mode on
+    And I add a "Forum" to section "1" and I fill the form with:
+      | Forum name | Test forum name |
+      | Forum type | Standard forum for general use |
+      | Description | Test forum description |
+      | Aggregate type | Average of ratings  |
+      | scale[modgrade_type] | Point |
+      | scale[modgrade_point] | 100 |
+      | Group mode | No groups |
+    And I log out
+    And I log in as "student1"
+    And I follow "Course 1"
+    And I follow "Test forum name"
+    And I press "Add a new discussion topic"
+    And I set the following fields to these values:
+      | Subject  | Discussion subject |
+      | Message | Discussion message |
+    And I press "Post to forum"
+    And I follow "Continue"
+    And I log out
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    And I follow "Test forum name"
+    And I follow "Discussion subject"
+    And I set the field "rating" to "100"
+    And I press "Rate"
+    And I click on "Edit settings" "link" in the "Administration" "block"
+    When I expand all fieldsets
+    Then I should see "Some grades have already been awarded, so the grade type cannot be changed. If you wish to change the maximum grade, you must first choose whether or not to rescale existing grades."
+    And I set the field "Maximum grade" to "50"
+    And I press "Save and display"
+    And I should see "You cannot change the maximum grade when grades already exist for an activity with ratings"
+
+  Scenario: Attempting to change the maximum grade when no rescaling option has been chosen
+    Given I log in as "teacher1"
+    And I follow "Course 1"
+    And I turn editing mode on
+    And I add a "Assignment" to section "1" and I fill the form with:
+      | Assignment name | Test assignment name |
+      | Description | Test assignment description |
+    And I follow "Course 1"
+    And I follow "Test assignment name"
+    And I follow "View/grade all submissions"
+    And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
+    And I set the field "Grade out of 100" to "50"
+    And I press "Save changes"
+    And I press "Continue"
+    And I click on "Edit settings" "link" in the "Administration" "block"
+    When I expand all fieldsets
+    Then I should see "Some grades have already been awarded, so the grade type cannot be changed. If you wish to change the maximum grade, you must first choose whether or not to rescale existing grades."
+    And I set the field "Maximum grade" to "50"
+    And I press "Save and display"
+    And I should see "You must choose whether to rescale existing grades or not"
index 6bb860e..50daf71 100644 (file)
@@ -354,6 +354,20 @@ class grade_item extends grade_object {
         return grade_object::fetch_helper('grade_items', 'grade_item', $params);
     }
 
+    /**
+     * Check to see if there are any existing grades for this grade_item.
+     *
+     * @return boolean - true if there are valid grades for this grade_item.
+     */
+    public function has_grades() {
+        global $DB;
+
+        $count = $DB->count_records_select('grade_grades',
+                                           'itemid = :gradeitemid AND finalgrade IS NOT NULL',
+                                           array('gradeitemid' => $this->id));
+        return $count > 0;
+    }
+
     /**
      * Finds and returns all grade_item instances based on params.
      *
@@ -775,9 +789,9 @@ class grade_item extends grade_object {
             }
 
             // Standardise score to the new grade range
-            // NOTE: this is not compatible with current assignment grading
-            $isassignmentmodule = ($this->itemmodule == 'assignment') || ($this->itemmodule == 'assign');
-            if (!$isassignmentmodule && ($rawmin != $this->grademin or $rawmax != $this->grademax)) {
+            // NOTE: skip if the activity provides a manual rescaling option.
+            $manuallyrescale = (component_callback_exists('mod_' . $this->itemmodule, 'rescale_activity_grades') !== false);
+            if (!$manuallyrescale && ($rawmin != $this->grademin or $rawmax != $this->grademax)) {
                 $rawgrade = grade_grade::standardise_score($rawgrade, $rawmin, $rawmax, $this->grademin, $this->grademax);
             }
 
@@ -801,8 +815,10 @@ class grade_item extends grade_object {
             }
 
             // Convert scale if needed
-            // NOTE: this is not compatible with current assignment grading
-            if ($this->itemmodule != 'assignment' and ($rawmin != $this->grademin or $rawmax != $this->grademax)) {
+            // NOTE: skip if the activity provides a manual rescaling option.
+            $manuallyrescale = (component_callback_exists('mod_' . $this->itemmodule, 'rescale_activity_grades') !== false);
+            if (!$manuallyrescale && ($rawmin != $this->grademin or $rawmax != $this->grademax)) {
+                // This should never happen because scales are locked if they are in use.
                 $rawgrade = grade_grade::standardise_score($rawgrade, $rawmin, $rawmax, $this->grademin, $this->grademax);
             }
 
@@ -819,6 +835,60 @@ class grade_item extends grade_object {
         }
     }
 
+    /**
+     * Update the rawgrademax and rawgrademin for all grade_grades records for this item.
+     * Scale every rawgrade to maintain the percentage. This function should be called
+     * after the gradeitem has been updated to the new min and max values.
+     *
+     * @param float $oldgrademin The previous grade min value
+     * @param float $oldgrademax The previous grade max value
+     * @param float $newgrademin The new grade min value
+     * @param float $newgrademax The new grade max value
+     * @param string $source from where was the object inserted (mod/forum, manual, etc.)
+     * @return bool True on success
+     */
+    public function rescale_grades_keep_percentage($oldgrademin, $oldgrademax, $newgrademin, $newgrademax, $source = null) {
+        global $DB;
+
+        if (empty($this->id)) {
+            return false;
+        }
+
+        if ($oldgrademax <= $oldgrademin) {
+            // Grades cannot be scaled.
+            return false;
+        }
+        $scale = ($newgrademax - $newgrademin) / ($oldgrademax - $oldgrademin);
+        if (($newgrademax - $newgrademin) <= 1) {
+            // We would lose too much precision, lets bail.
+            return false;
+        }
+
+        $rs = $DB->get_recordset('grade_grades', array('itemid' => $this->id));
+
+        foreach ($rs as $graderecord) {
+            // For each record, create an object to work on.
+            $grade = new grade_grade($graderecord, false);
+            // Set this object in the item so it doesn't re-fetch it.
+            $grade->grade_item = $this;
+
+            // Updating the raw grade automatically updates the min/max.
+            if ($this->is_raw_used()) {
+                $rawgrade = (($grade->rawgrade - $oldgrademin) * $scale) + $newgrademin;
+                $this->update_raw_grade(false, $rawgrade, $source, false, FORMAT_MOODLE, null, null, null, $grade);
+            } else {
+                $finalgrade = (($grade->finalgrade - $oldgrademin) * $scale) + $newgrademin;
+                $this->update_final_grade($grade->userid, $finalgrade, $source);
+            }
+        }
+        $rs->close();
+
+        // Mark this item for regrading.
+        $this->force_regrading();
+
+        return true;
+    }
+
     /**
      * Sets this grade_item's needsupdate to true. Also marks the course item as needing update.
      *
@@ -1649,6 +1719,8 @@ class grade_item extends grade_object {
         $oldgrade->overridden     = $grade->overridden;
         $oldgrade->feedback       = $grade->feedback;
         $oldgrade->feedbackformat = $grade->feedbackformat;
+        $oldgrade->rawgrademin    = $grade->rawgrademin;
+        $oldgrade->rawgrademax    = $grade->rawgrademax;
 
         // MDL-31713 rawgramemin and max must be up to date so conditional access %'s works properly.
         $grade->rawgrademin = $this->grademin;
@@ -1687,6 +1759,8 @@ class grade_item extends grade_object {
         } else if (grade_floats_different($grade->finalgrade, $oldgrade->finalgrade)
                 or $grade->feedback       !== $oldgrade->feedback
                 or $grade->feedbackformat != $oldgrade->feedbackformat
+                or grade_floats_different($grade->rawgrademin, $oldgrade->rawgrademin)
+                or grade_floats_different($grade->rawgrademax, $oldgrade->rawgrademax)
                 or ($oldgrade->overridden == 0 and $grade->overridden > 0)) {
             $grade->timemodified = time(); // hack alert - date graded
             $result = $grade->update($source);
index de723e4..a8a8dd5 100644 (file)
@@ -50,6 +50,7 @@ class core_grade_item_testcase extends grade_base_testcase {
         $this->sub_test_grade_item_load_item_category();
         $this->sub_test_grade_item_regrade_final_grades();
         $this->sub_test_grade_item_adjust_raw_grade();
+        $this->sub_test_grade_item_rescale_grades_keep_percentage();
         $this->sub_test_grade_item_set_locked();
         $this->sub_test_grade_item_is_locked();
         $this->sub_test_grade_item_set_hidden();
@@ -371,6 +372,46 @@ class core_grade_item_testcase extends grade_base_testcase {
         $this->assertEquals(round(1.6), round($grade_item->adjust_raw_grade($grade_raw->rawgrade, $grade_raw->grademin, $grade_raw->grademax)));
     }
 
+    protected function sub_test_grade_item_rescale_grades_keep_percentage() {
+        global $DB;
+        $gradeitem = new grade_item($this->grade_items[10], false); // 10 is the manual grade item.
+
+        // Create some grades to go with the grade item.
+        $gradeids = array();
+        $grade = new stdClass();
+        $grade->itemid = $gradeitem->id;
+        $grade->userid = $this->user[2]->id;
+        $grade->finalgrade = 10;
+        $grade->rawgrademax = $gradeitem->grademax;
+        $grade->rawgrademin = $gradeitem->grademin;
+        $grade->timecreated = time();
+        $grade->timemodified = time();
+        $gradeids[] = $DB->insert_record('grade_grades', $grade);
+
+        $grade->userid = $this->user[3]->id;
+        $grade->finalgrade = 50;
+        $grade->rawgrademax = $gradeitem->grademax;
+        $grade->rawgrademin = $gradeitem->grademin;
+        $gradeids[] = $DB->insert_record('grade_grades', $grade);
+
+        // Run the function.
+        $gradeitem->grademax = 33;
+        $gradeitem->grademin = 3;
+        $gradeitem->update();
+        $gradeitem->rescale_grades_keep_percentage(0, 100, 3, 33, 'test');
+
+        // Check that the grades were updated to match the grade item.
+        $grade = $DB->get_record('grade_grades', array('id' => $gradeids[0]));
+        $this->assertEquals($gradeitem->grademax, $grade->rawgrademax, 'Max grade mismatch', 0.0001);
+        $this->assertEquals($gradeitem->grademin, $grade->rawgrademin, 'Min grade mismatch', 0.0001);
+        $this->assertEquals(6, $grade->finalgrade, 'Min grade mismatch', 0.0001);
+
+        $grade = $DB->get_record('grade_grades', array('id' => $gradeids[1]));
+        $this->assertEquals($gradeitem->grademax, $grade->rawgrademax, 'Max grade mismatch', 0.0001);
+        $this->assertEquals($gradeitem->grademin, $grade->rawgrademin, 'Min grade mismatch', 0.0001);
+        $this->assertEquals(18, $grade->finalgrade, 'Min grade mismatch', 0.0001);
+    }
+
     protected function sub_test_grade_item_set_locked() {
         // Getting a grade_item from the DB as set_locked() will fail if the grade items needs to be updated
         // also needs to have at least one grade_grade or $grade_item->get_final(1) returns null.
index 9233dbb..b2c57f6 100644 (file)
@@ -6192,7 +6192,7 @@ function get_user_max_upload_file_size($context, $sitebytes = 0, $coursebytes =
     }
 
     if (has_capability('moodle/course:ignorefilesizelimits', $context, $user)) {
-        return USER_CAN_IGNORE_FILE_SIZE_LIMITS;
+        return get_max_upload_file_size(USER_CAN_IGNORE_FILE_SIZE_LIMITS);
     }
 
     return get_max_upload_file_size($sitebytes, $coursebytes, $modulebytes);
index 858061e..5df8eaf 100644 (file)
@@ -475,6 +475,13 @@ class core_renderer extends renderer_base {
         }
 
         $output = '';
+
+        // Allow a url_rewrite plugin to setup any dynamic head content.
+        if (isset($CFG->urlrewriteclass) && !isset($CFG->upgraderunning)) {
+            $class = $CFG->urlrewriteclass;
+            $output .= $class::html_head_setup();
+        }
+
         $output .= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' . "\n";
         $output .= '<meta name="keywords" content="moodle, ' . $this->page->title . '" />' . "\n";
         // This is only set by the {@link redirect()} method
index 50cc8da..68ac67a 100644 (file)
@@ -52,6 +52,8 @@ information provided here is intended especially for developers.
   Note than you will need to bump the plugin version so moodle is aware that you removed the plugin's event handlers.
 * mforms validation functions are not available in the global JS namespace anymore, event listeners
   are assigned to fields and buttons through a self-contained JS function.
+* Added $CFG->urlrewriteclass option to config.php allowing clean / semantic urls to
+  be implemented in a plugin, eg local_cleanurls.
 
 === 3.0 ===
 
index 2f2adf7..8f3c333 100644 (file)
@@ -553,6 +553,38 @@ class moodle_url {
      * @return string Resulting URL
      */
     public function out($escaped = true, array $overrideparams = null) {
+
+        global $CFG;
+
+        if (!is_bool($escaped)) {
+            debugging('Escape parameter must be of type boolean, '.gettype($escaped).' given instead.');
+        }
+
+        $url = $this;
+
+        // Allow url's to be rewritten by a plugin.
+        if (isset($CFG->urlrewriteclass) && !isset($CFG->upgraderunning)) {
+            $class = $CFG->urlrewriteclass;
+            $pluginurl = $class::url_rewrite($url);
+            if ($pluginurl instanceof moodle_url) {
+                $url = $pluginurl;
+            }
+        }
+
+        return $url->raw_out($escaped, $overrideparams);
+
+    }
+
+    /**
+     * Output url without any rewrites
+     *
+     * This is identical in signature and use to out() but doesn't call the rewrite handler.
+     *
+     * @param bool $escaped Use &amp; as params separator instead of plain &
+     * @param array $overrideparams params to add to the output url, these override existing ones with the same name.
+     * @return string Resulting URL
+     */
+    public function raw_out($escaped = true, array $overrideparams = null) {
         if (!is_bool($escaped)) {
             debugging('Escape parameter must be of type boolean, '.gettype($escaped).' given instead.');
         }
index 3a1f85a..046f116 100644 (file)
@@ -1315,6 +1315,52 @@ function assign_user_complete($course, $user, $coursemodule, $assign) {
     echo $assignment->view_student_summary($user, false);
 }
 
+/**
+ * Rescale all grades for this activity and push the new grades to the gradebook.
+ *
+ * @param stdClass $course Course db record
+ * @param stdClass $cm Course module db record
+ * @param float $oldmin
+ * @param float $oldmax
+ * @param float $newmin
+ * @param float $newmax
+ */
+function assign_rescale_activity_grades($course, $cm, $oldmin, $oldmax, $newmin, $newmax) {
+    global $DB;
+
+    if ($oldmax <= $oldmin) {
+        // Grades cannot be scaled.
+        return false;
+    }
+    $scale = ($newmax - $newmin) / ($oldmax - $oldmin);
+    if (($newmax - $newmin) <= 1) {
+        // We would lose too much precision, lets bail.
+        return false;
+    }
+
+    $params = array(
+        'p1' => $oldmin,
+        'p2' => $scale,
+        'p3' => $newmin,
+        'a' => $cm->instance
+    );
+
+    $sql = 'UPDATE {assign_grades} set grade = (((grade - :p1) * :p2) + :p3) where assignment = :a';
+    $dbupdate = $DB->execute($sql, $params);
+    if (!$dbupdate) {
+        return false;
+    }
+
+    // Now re-push all grades to the gradebook.
+    $dbparams = array('id' => $cm->instance);
+    $assign = $DB->get_record('assign', $dbparams);
+    $assign->cmidnumber = $cm->idnumber;
+
+    assign_update_grades($assign);
+
+    return true;
+}
+
 /**
  * Print the grade information for the assignment for this user.
  *
index 46008dc..5d44ce8 100644 (file)
@@ -5991,6 +5991,17 @@ class assign {
 
         $this->update_submission($submission, $userid, true, $instance->teamsubmission);
 
+        if ($instance->teamsubmission && !$instance->requireallteammemberssubmit) {
+            $team = $this->get_submission_group_members($submission->groupid, true);
+
+            foreach ($team as $member) {
+                if ($member->id != $userid) {
+                    $membersubmission = clone($submission);
+                    $this->update_submission($membersubmission, $member->id, true, $instance->teamsubmission);
+                }
+            }
+        }
+
         // Logging.
         if (isset($data->submissionstatement) && ($userid == $USER->id)) {
             \mod_assign\event\statement_accepted::create_from_submission($this, $submission)->trigger();
diff --git a/mod/assign/tests/behat/rescale_grades.feature b/mod/assign/tests/behat/rescale_grades.feature
new file mode 100644 (file)
index 0000000..1a42574
--- /dev/null
@@ -0,0 +1,66 @@
+@mod @mod_assign
+Feature: Check that the assignment grade can be rescaled when the max grade is changed
+  In order to ensure that the percentages are not affected by changes to the max grade
+  As a teacher
+  I need to rescale all grades when updating the max grade
+
+  Background:
+    Given the following "courses" exist:
+      | fullname | shortname | category | groupmode |
+      | Course 1 | C1 | 0 | 1 |
+    And the following "users" exist:
+      | username | firstname | lastname | email |
+      | teacher1 | Teacher | 1 | teacher1@example.com |
+      | student1 | Student | 1 | student10@example.com |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | teacher1 | C1 | editingteacher |
+      | student1 | C1 | student |
+    And the following "groups" exist:
+      | name | course | idnumber |
+      | Group 1 | C1 | G1 |
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    And I turn editing mode on
+    And I add a "Assignment" to section "1" and I fill the form with:
+      | Assignment name | Test assignment name |
+      | Description | Test assignment description |
+    And I follow "Test assignment name"
+    And I follow "View/grade all submissions"
+    And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
+    And I set the field "Grade out of 100" to "40"
+    And I press "Save changes"
+    And I press "Continue"
+    And "Student 1" row "Grade" column of "generaltable" table should contain "40.00"
+
+  Scenario: Update the max grade for an assignment without rescaling existing grades
+    Given I follow "Edit settings"
+    And I expand all fieldsets
+    And I set the field "Maximum grade" to "80"
+    And I set the field "Rescale existing grades" to "No"
+    When I press "Save and display"
+    And I follow "View/grade all submissions"
+    Then "Student 1" row "Grade" column of "generaltable" table should contain "40.00"
+
+  Scenario: Update the max grade for an assignment rescaling existing grades
+    Given I follow "Edit settings"
+    And I expand all fieldsets
+    And I set the field "Maximum grade" to "50"
+    And I set the field "Rescale existing grades" to "Yes"
+    When I press "Save and display"
+    And I follow "View/grade all submissions"
+    Then "Student 1" row "Grade" column of "generaltable" table should contain "20.00"
+
+  Scenario: A rescale existing grades is not needed when keeping max grade unchanged
+    Given I follow "Edit settings"
+    And I expand all fieldsets
+    And I set the field "Maximum grade" to "100"
+    When I press "Save and display"
+    Then I should not see "You must choose whether to rescale existing grades or not."
+
+  Scenario: A rescale existing grades must be selected when max grade changes
+    Given I follow "Edit settings"
+    And I expand all fieldsets
+    And I set the field "Maximum grade" to "50"
+    When I press "Save and display"
+    Then I should see "You must choose whether to rescale existing grades or not."
index 14db37f..e6c8dd7 100644 (file)
@@ -224,6 +224,7 @@ function book_get_toc($chapters, $chapter, $book, $cm, $edit) {
         foreach ($chapters as $ch) {
             $i++;
             $title = trim(format_string($ch->title, true, array('context'=>$context)));
+            $titleout = $title;
             if (!$ch->subchapter) {
 
                 if ($first) {
@@ -239,12 +240,13 @@ function book_get_toc($chapters, $chapter, $book, $cm, $edit) {
                     $ns = 0;
                     if ($book->numbering == BOOK_NUM_NUMBERS) {
                         $title = "$nch $title";
+                        $titleout = $title;
                     }
                 } else {
                     if ($book->numbering == BOOK_NUM_NUMBERS) {
                         $title = "x $title";
                     }
-                    $title = html_writer::tag('span', $title, array('class' => 'dimmed_text'));
+                    $titleout = html_writer::tag('span', $title, array('class' => 'dimmed_text'));
                 }
             } else {
 
@@ -260,6 +262,7 @@ function book_get_toc($chapters, $chapter, $book, $cm, $edit) {
                     $ns++;
                     if ($book->numbering == BOOK_NUM_NUMBERS) {
                         $title = "$nch.$ns $title";
+                        $titleout = $title;
                     }
                 } else {
                     if ($book->numbering == BOOK_NUM_NUMBERS) {
@@ -269,14 +272,15 @@ function book_get_toc($chapters, $chapter, $book, $cm, $edit) {
                             $title = "x.x $title";
                         }
                     }
-                    $title = html_writer::tag('span', $title, array('class' => 'dimmed_text'));
+                    $titleout = html_writer::tag('span', $title, array('class' => 'dimmed_text'));
                 }
             }
 
             if ($ch->id == $chapter->id) {
-                $toc .= html_writer::tag('strong', $title);
+                $toc .= html_writer::tag('strong', $titleout);
             } else {
-                $toc .= html_writer::link(new moodle_url('view.php', array('id' => $cm->id, 'chapterid' => $ch->id)), $title, array('title' => s($title)));
+                $toc .= html_writer::link(new moodle_url('view.php', array('id' => $cm->id, 'chapterid' => $ch->id)), $titleout,
+                    array('title' => $title));
             }
 
             $toc .= html_writer::start_tag('div', array('class' => 'action-list'));
index f00cc11..07f4159 100644 (file)
@@ -385,6 +385,7 @@ $string['page-mod-forum-view'] = 'Forum module main page';
 $string['page-mod-forum-discuss'] = 'Forum module discussion thread page';
 $string['parent'] = 'Show parent';
 $string['parentofthispost'] = 'Parent of this post';
+$string['permalink'] = 'Permalink';
 $string['posttomygroups'] = 'Post a copy to all groups';
 $string['posttomygroups_help'] = 'Posts a copy of this message to all groups you have access to. Participants in groups you do not have access to will not see this post';
 $string['prevdiscussiona'] = 'Previous discussion: {$a}';
index 4212b75..83f493b 100644 (file)
@@ -3190,6 +3190,11 @@ function forum_print_post($post, $discussion, $forum, &$cm, $course, $ownpost=fa
     // Prepare an array of commands
     $commands = array();
 
+    // Add a permalink.
+    $permalink = new moodle_url($discussionlink);
+    $permalink->set_anchor('p' . $post->id);
+    $commands[] = array('url' => $permalink, 'text' => get_string('permalink', 'forum'));
+
     // SPECIAL CASE: The front page can display a news item post to non-logged in users.
     // Don't display the mark read / unread controls in this case.
     if ($istracked && $CFG->forum_usermarksread && isloggedin()) {
index 277db09..4c2a9c0 100644 (file)
@@ -329,5 +329,60 @@ function xmldb_lesson_upgrade($oldversion) {
     // Moodle v3.0.0 release upgrade line.
     // Put any upgrade step following this.
 
+    if ($oldversion < 2016012800) {
+        // Convert lesson settings to use config_plugins instead of $CFG.
+        // Lesson_maxanswers => mod_lesson/maxanswers.
+        if (isset($CFG->lesson_maxanswers)) {
+            set_config('maxanswers', $CFG->lesson_maxanswers, 'mod_lesson');
+            set_config('maxanswers_adv', '1', 'mod_lesson');
+            unset_config('lesson_maxanswers');
+        }
+
+        // Lesson_slideshowwidth => mod_lesson/slideshowwidth.
+        if (isset($CFG->lesson_slideshowwidth)) {
+            set_config('slideshowwidth', $CFG->lesson_slideshowwidth, 'mod_lesson');
+            unset_config('lesson_slideshowwidth');
+        }
+
+        // Lesson_slideshowheight => mod_lesson/slideshowheight.
+        if (isset($CFG->lesson_slideshowheight)) {
+            set_config('slideshowheight', $CFG->lesson_slideshowheight, 'mod_lesson');
+            unset_config('lesson_slideshowheight');
+        }
+
+        // Lesson_slideshowbgcolor => mod_lesson/slideshowbgcolor.
+        if (isset($CFG->lesson_slideshowbgcolor)) {
+            set_config('slideshowbgcolor', $CFG->lesson_slideshowbgcolor, 'mod_lesson');
+            unset_config('lesson_slideshowbgcolor');
+        }
+
+        // Lesson_defaultnextpage => mod_lesson/defaultnextpage.
+        if (isset($CFG->lesson_defaultnextpage)) {
+            set_config('defaultnextpage', $CFG->lesson_defaultnextpage, 'mod_lesson');
+            set_config('defaultnextpage_adv', '1', 'mod_lesson');
+            unset_config('lesson_defaultnextpage');
+        }
+
+        // Lesson_mediawidth => mod_lesson/mediawidth.
+        if (isset($CFG->lesson_mediawidth)) {
+            set_config('mediawidth', $CFG->lesson_mediawidth, 'mod_lesson');
+            unset_config('lesson_mediawidth');
+        }
+
+        // Lesson_mediaheight => mod_lesson/mediaheight.
+        if (isset($CFG->lesson_mediaheight)) {
+            set_config('mediaheight', $CFG->lesson_mediaheight, 'mod_lesson');
+            unset_config('lesson_mediaheight');
+        }
+
+        // Lesson_mediaclose => mod_lesson/mediaclose.
+        if (isset($CFG->lesson_mediaclose)) {
+            set_config('mediaclose', $CFG->lesson_mediaclose, 'mod_lesson');
+            unset_config('lesson_mediaclose');
+        }
+
+        // Lesson savepoint reached.
+        upgrade_mod_savepoint(true, 2016012800, 'lesson');
+    }
     return true;
 }
index a2c098f..e20030b 100644 (file)
@@ -2,6 +2,7 @@ essayemailmessage,mod_lesson
 lessonattempted,mod_lesson
 clicktopost,mod_lesson
 configmaxhighscores,mod_lesson
+configactionaftercorrectanswer,mod_lesson
 displayhighscores,mod_lesson
 entername,mod_lesson
 eventhighscoreadded,mod_lesson
index 75f1f5b..91be271 100644 (file)
@@ -103,14 +103,16 @@ $string['completionendreached_desc'] = 'Student must reach the end of lesson pag
 $string['completiontimespent'] = 'Student must do this activity at least for';
 $string['completiontimespentgroup'] = 'Require time spent';
 $string['conditionsfordependency'] = 'Condition(s) for the dependency';
-$string['configactionaftercorrectanswer'] = 'The default action to take after a correct answer';
+$string['configintro'] = 'The values set here define the default values that are used in the settings form when creating a new lesson activity. Settings specified as advanced are only shown when the \'Show more...\' link is clicked.';
 $string['configmaxanswers'] = 'Default maximum number of answers per page';
 $string['configmediaclose'] = 'Displays a close button as part of the popup generated for a linked media file';
 $string['configmediaheight'] = 'Sets the height of the popup displayed for a linked media file';
 $string['configmediawidth'] = 'Sets the width of the popup displayed for a linked media file';
+$string['configpassword_desc'] = 'Whether a password is required in order to access the lesson.';
 $string['configslideshowbgcolor'] = 'Background colour to for the slideshow if it is enabled';
 $string['configslideshowheight'] = 'Sets the height of the slideshow if it is enabled';
 $string['configslideshowwidth'] = 'Sets the width of the slideshow if it is enabled';
+$string['configtimelimit_desc'] = 'If a time limit is set, a warning is displayed at the beginning of the lesson and there is a countdown timer. If set to zero, then there is no time limit.';
 $string['confirmdelete'] = 'Delete page';
 $string['confirmdeletionofthispage'] = 'Confirm deletion of this page';
 $string['congratulations'] = 'Congratulations - end of lesson reached';
@@ -525,3 +527,5 @@ $string['topscorestitle'] = 'Top {$a} high scores';
 $string['viewhighscores'] = 'View high scores list';
 $string['youmadehighscore'] = 'You made it on the top {$a} high scores list.';
 
+// Deprecated since Moodle 3.1.
+$string['configactionaftercorrectanswer'] = 'The default action to take after a correct answer';
index 2abc762..44b1e14 100644 (file)
@@ -53,39 +53,39 @@ class mod_lesson_mod_form extends moodleform_mod {
 
         $mform    = $this->_form;
 
-        $config = get_config('lesson');
+        $lessonconfig = get_config('mod_lesson');
 
         $mform->addElement('header', 'general', get_string('general', 'form'));
 
         /** Legacy slideshow width element to maintain backwards compatibility */
         $mform->addElement('hidden', 'width');
         $mform->setType('width', PARAM_INT);
-        $mform->setDefault('width', $CFG->lesson_slideshowwidth);
+        $mform->setDefault('width', $lessonconfig->slideshowwidth);
 
         /** Legacy slideshow height element to maintain backwards compatibility */
         $mform->addElement('hidden', 'height');
         $mform->setType('height', PARAM_INT);
-        $mform->setDefault('height', $CFG->lesson_slideshowheight);
+        $mform->setDefault('height', $lessonconfig->slideshowheight);
 
         /** Legacy slideshow background color element to maintain backwards compatibility */
         $mform->addElement('hidden', 'bgcolor');
         $mform->setType('bgcolor', PARAM_TEXT);
-        $mform->setDefault('bgcolor', $CFG->lesson_slideshowbgcolor);
+        $mform->setDefault('bgcolor', $lessonconfig->slideshowbgcolor);
 
         /** Legacy media popup width element to maintain backwards compatibility */
         $mform->addElement('hidden', 'mediawidth');
         $mform->setType('mediawidth', PARAM_INT);
-        $mform->setDefault('mediawidth', $CFG->lesson_mediawidth);
+        $mform->setDefault('mediawidth', $lessonconfig->mediawidth);
 
         /** Legacy media popup height element to maintain backwards compatibility */
         $mform->addElement('hidden', 'mediaheight');
         $mform->setType('mediaheight', PARAM_INT);
-        $mform->setDefault('mediaheight', $CFG->lesson_mediaheight);
+        $mform->setDefault('mediaheight', $lessonconfig->mediaheight);
 
         /** Legacy media popup close button element to maintain backwards compatibility */
         $mform->addElement('hidden', 'mediaclose');
         $mform->setType('mediaclose', PARAM_BOOL);
-        $mform->setDefault('mediaclose', $CFG->lesson_mediaclose);
+        $mform->setDefault('mediaclose', $lessonconfig->mediaclose);
 
         $mform->addElement('text', 'name', get_string('name'), array('size'=>'64'));
         if (!empty($CFG->formatstringstriptags)) {
@@ -108,18 +108,22 @@ class mod_lesson_mod_form extends moodleform_mod {
 
         $mform->addElement('filemanager', 'mediafile', get_string('mediafile', 'lesson'), null, $filemanageroptions);
         $mform->addHelpButton('mediafile', 'mediafile', 'lesson');
+        $mform->setAdvanced('mediafile', $lessonconfig->mediafile_adv);
 
         $mform->addElement('selectyesno', 'progressbar', get_string('progressbar', 'lesson'));
         $mform->addHelpButton('progressbar', 'progressbar', 'lesson');
-        $mform->setDefault('progressbar', 0);
+        $mform->setDefault('progressbar', $lessonconfig->progressbar);
+        $mform->setAdvanced('progressbar', $lessonconfig->progressbar_adv);
 
         $mform->addElement('selectyesno', 'ongoing', get_string('ongoing', 'lesson'));
         $mform->addHelpButton('ongoing', 'ongoing', 'lesson');
-        $mform->setDefault('ongoing', 0);
+        $mform->setDefault('ongoing', $lessonconfig->ongoing);
+        $mform->setAdvanced('ongoing', $lessonconfig->ongoing_adv);
 
         $mform->addElement('selectyesno', 'displayleft', get_string('displayleftmenu', 'lesson'));
         $mform->addHelpButton('displayleft', 'displayleftmenu', 'lesson');
-        $mform->setDefault('displayleft', 0);
+        $mform->setDefault('displayleft', $lessonconfig->displayleftmenu);
+        $mform->setAdvanced('displayleft', $lessonconfig->displayleftmenu_adv);
 
         $options = array();
         for($i = 100; $i >= 0; $i--) {
@@ -127,11 +131,13 @@ class mod_lesson_mod_form extends moodleform_mod {
         }
         $mform->addElement('select', 'displayleftif', get_string('displayleftif', 'lesson'), $options);
         $mform->addHelpButton('displayleftif', 'displayleftif', 'lesson');
-        $mform->setDefault('displayleftif', 0);
+        $mform->setDefault('displayleftif', $lessonconfig->displayleftif);
+        $mform->setAdvanced('displayleftif', $lessonconfig->displayleftif_adv);
 
         $mform->addElement('selectyesno', 'slideshow', get_string('slideshow', 'lesson'));
         $mform->addHelpButton('slideshow', 'slideshow', 'lesson');
-        $mform->setDefault('slideshow', 0);
+        $mform->setDefault('slideshow', $lessonconfig->slideshow);
+        $mform->setAdvanced('slideshow', $lessonconfig->slideshow_adv);
 
         $numbers = array();
         for ($i = 20; $i > 1; $i--) {
@@ -139,13 +145,15 @@ class mod_lesson_mod_form extends moodleform_mod {
         }
 
         $mform->addElement('select', 'maxanswers', get_string('maximumnumberofanswersbranches', 'lesson'), $numbers);
-        $mform->setDefault('maxanswers', $CFG->lesson_maxanswers);
+        $mform->setDefault('maxanswers', $lessonconfig->maxanswers);
+        $mform->setAdvanced('maxanswers', $lessonconfig->maxanswers_adv);
         $mform->setType('maxanswers', PARAM_INT);
         $mform->addHelpButton('maxanswers', 'maximumnumberofanswersbranches', 'lesson');
 
         $mform->addElement('selectyesno', 'feedback', get_string('displaydefaultfeedback', 'lesson'));
         $mform->addHelpButton('feedback', 'displaydefaultfeedback', 'lesson');
-        $mform->setDefault('feedback', 0);
+        $mform->setDefault('feedback', $lessonconfig->defaultfeedback);
+        $mform->setAdvanced('feedback', $lessonconfig->defaultfeedback_adv);
 
         // Get the modules.
         if ($mods = get_course_mods($COURSE->id)) {
@@ -165,6 +173,7 @@ class mod_lesson_mod_form extends moodleform_mod {
             $mform->addElement('select', 'activitylink', get_string('activitylink', 'lesson'), $modinstances);
             $mform->addHelpButton('activitylink', 'activitylink', 'lesson');
             $mform->setDefault('activitylink', 0);
+            $mform->setAdvanced('activitylink', $lessonconfig->activitylink_adv);
         }
 
         // Availability.
@@ -180,13 +189,17 @@ class mod_lesson_mod_form extends moodleform_mod {
         $mform->addElement('duration', 'timelimit', get_string('timelimit', 'lesson'),
                 array('optional' => true));
         $mform->addHelpButton('timelimit', 'timelimit', 'lesson');
+        $mform->setAdvanced('timelimit', $lessonconfig->timelimit_adv);
+        $mform->setDefault('timelimit', $lessonconfig->timelimit);
 
         $mform->addElement('selectyesno', 'usepassword', get_string('usepassword', 'lesson'));
         $mform->addHelpButton('usepassword', 'usepassword', 'lesson');
-        $mform->setDefault('usepassword', 0);
+        $mform->setDefault('usepassword', $lessonconfig->password);
+        $mform->setAdvanced('usepassword', $lessonconfig->password_adv);
 
         $mform->addElement('passwordunmask', 'password', get_string('password', 'lesson'));
         $mform->setDefault('password', '');
+        $mform->setAdvanced('password', $lessonconfig->password_adv);
         $mform->setType('password', PARAM_RAW);
         $mform->disabledIf('password', 'usepassword', 'eq', 0);
         $mform->disabledIf('passwordunmask', 'usepassword', 'eq', 0);
@@ -241,11 +254,13 @@ class mod_lesson_mod_form extends moodleform_mod {
 
         $mform->addElement('selectyesno', 'modattempts', get_string('modattempts', 'lesson'));
         $mform->addHelpButton('modattempts', 'modattempts', 'lesson');
-        $mform->setDefault('modattempts', 0);
+        $mform->setDefault('modattempts', $lessonconfig->modattempts);
+        $mform->setAdvanced('modattempts', $lessonconfig->modattempts_adv);
 
         $mform->addElement('selectyesno', 'review', get_string('displayreview', 'lesson'));
         $mform->addHelpButton('review', 'displayreview', 'lesson');
-        $mform->setDefault('review', 0);
+        $mform->setDefault('review', $lessonconfig->displayreview);
+        $mform->setAdvanced('review', $lessonconfig->displayreview_adv);
 
         $numbers = array();
         for ($i = 10; $i > 0; $i--) {
@@ -253,7 +268,8 @@ class mod_lesson_mod_form extends moodleform_mod {
         }
         $mform->addElement('select', 'maxattempts', get_string('maximumnumberofattempts', 'lesson'), $numbers);
         $mform->addHelpButton('maxattempts', 'maximumnumberofattempts', 'lesson');
-        $mform->setDefault('maxattempts', 1);
+        $mform->setDefault('maxattempts', $lessonconfig->maximumnumberofattempts);
+        $mform->setAdvanced('maxattempts', $lessonconfig->maximumnumberofattempts_adv);
 
         $defaultnextpages = array();
         $defaultnextpages[0] = get_string('normal', 'lesson');
@@ -261,7 +277,8 @@ class mod_lesson_mod_form extends moodleform_mod {
         $defaultnextpages[LESSON_UNANSWEREDPAGE] = get_string('showanunansweredpage', 'lesson');
         $mform->addElement('select', 'nextpagedefault', get_string('actionaftercorrectanswer', 'lesson'), $defaultnextpages);
         $mform->addHelpButton('nextpagedefault', 'actionaftercorrectanswer', 'lesson');
-        $mform->setDefault('nextpagedefault', $CFG->lesson_defaultnextpage);
+        $mform->setDefault('nextpagedefault', $lessonconfig->defaultnextpage);
+        $mform->setAdvanced('nextpagedefault', $lessonconfig->defaultnextpage_adv);
 
         $numbers = array();
         for ($i = 100; $i >= 0; $i--) {
@@ -269,7 +286,8 @@ class mod_lesson_mod_form extends moodleform_mod {
         }
         $mform->addElement('select', 'maxpages', get_string('numberofpagestoshow', 'lesson'), $numbers);
         $mform->addHelpButton('maxpages', 'numberofpagestoshow', 'lesson');
-        $mform->setDefault('maxpages', 0);
+        $mform->setDefault('maxpages', $lessonconfig->numberofpagestoshow);
+        $mform->setAdvanced('maxpages', $lessonconfig->numberofpagestoshow_adv);
 
         // Grade.
         $this->standard_grading_coursemodule_elements();
@@ -278,22 +296,26 @@ class mod_lesson_mod_form extends moodleform_mod {
 
         $mform->addElement('selectyesno', 'practice', get_string('practice', 'lesson'));
         $mform->addHelpButton('practice', 'practice', 'lesson');
-        $mform->setDefault('practice', 0);
+        $mform->setDefault('practice', $lessonconfig->practice);
+        $mform->setAdvanced('practice', $lessonconfig->practice_adv);
 
         $mform->addElement('selectyesno', 'custom', get_string('customscoring', 'lesson'));
         $mform->addHelpButton('custom', 'customscoring', 'lesson');
-        $mform->setDefault('custom', 1);
+        $mform->setDefault('custom', $lessonconfig->customscoring);
+        $mform->setAdvanced('custom', $lessonconfig->customscoring_adv);
 
         $mform->addElement('selectyesno', 'retake', get_string('retakesallowed', 'lesson'));
         $mform->addHelpButton('retake', 'retakesallowed', 'lesson');
-        $mform->setDefault('retake', 0);
+        $mform->setDefault('retake', $lessonconfig->retakesallowed);
+        $mform->setAdvanced('retake', $lessonconfig->retakesallowed_adv);
 
         $options = array();
         $options[0] = get_string('usemean', 'lesson');
         $options[1] = get_string('usemaximum', 'lesson');
         $mform->addElement('select', 'usemaxgrade', get_string('handlingofretakes', 'lesson'), $options);
         $mform->addHelpButton('usemaxgrade', 'handlingofretakes', 'lesson');
-        $mform->setDefault('usemaxgrade', 0);
+        $mform->setDefault('usemaxgrade', $lessonconfig->handlingofretakes);
+        $mform->setAdvanced('usemaxgrade', $lessonconfig->handlingofretakes_adv);
         $mform->disabledIf('usemaxgrade', 'retake', 'eq', '0');
 
         $numbers = array();
@@ -302,7 +324,8 @@ class mod_lesson_mod_form extends moodleform_mod {
         }
         $mform->addElement('select', 'minquestions', get_string('minimumnumberofquestions', 'lesson'), $numbers);
         $mform->addHelpButton('minquestions', 'minimumnumberofquestions', 'lesson');
-        $mform->setDefault('minquestions', 0);
+        $mform->setDefault('minquestions', $lessonconfig->minimumnumberofquestions);
+        $mform->setAdvanced('minquestions', $lessonconfig->minimumnumberofquestions_adv);
 
 //-------------------------------------------------------------------------------
         $this->standard_coursemodule_elements();
index 7e762d2..6635a83 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -27,39 +26,156 @@ defined('MOODLE_INTERNAL') || die;
 
 if ($ADMIN->fulltree) {
     require_once($CFG->dirroot.'/mod/lesson/locallib.php');
+    $yesno = array(0 => get_string('no'), 1 => get_string('yes'));
 
-    /** Slideshow settings */
-    $settings->add(new admin_setting_configtext('lesson_slideshowwidth', get_string('slideshowwidth', 'lesson'),
-            get_string('configslideshowwidth', 'lesson'), 640, PARAM_INT));
+    // Introductory explanation that all the settings are defaults for the add lesson form.
+    $settings->add(new admin_setting_heading('mod_lesson/lessonintro', '', get_string('configintro', 'lesson')));
 
-    $settings->add(new admin_setting_configtext('lesson_slideshowheight', get_string('slideshowheight', 'lesson'),
-            get_string('configslideshowheight', 'lesson'), 480, PARAM_INT));
+    // Appearance settings.
+    $settings->add(new admin_setting_heading('mod_lesson/appearance', get_string('appearance'), ''));
 
-    $settings->add(new admin_setting_configtext('lesson_slideshowbgcolor', get_string('slideshowbgcolor', 'lesson'),
-            get_string('configslideshowbgcolor', 'lesson'), '#FFFFFF', PARAM_TEXT));
+    // Media file popup settings.
+    $setting = new admin_setting_configempty('mod_lesson/mediafile', get_string('mediafile', 'lesson'),
+            get_string('mediafile_help', 'lesson'));
+
+    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, true);
+    $settings->add($setting);
 
-    /** Media file popup settings */
-    $settings->add(new admin_setting_configtext('lesson_mediawidth', get_string('mediawidth', 'lesson'),
+    $settings->add(new admin_setting_configtext('mod_lesson/mediawidth', get_string('mediawidth', 'lesson'),
             get_string('configmediawidth', 'lesson'), 640, PARAM_INT));
 
-    $settings->add(new admin_setting_configtext('lesson_mediaheight', get_string('mediaheight', 'lesson'),
+    $settings->add(new admin_setting_configtext('mod_lesson/mediaheight', get_string('mediaheight', 'lesson'),
             get_string('configmediaheight', 'lesson'), 480, PARAM_INT));
 
-    $settings->add(new admin_setting_configcheckbox('lesson_mediaclose', get_string('mediaclose', 'lesson'),
+    $settings->add(new admin_setting_configcheckbox('mod_lesson/mediaclose', get_string('mediaclose', 'lesson'),
             get_string('configmediaclose', 'lesson'), false, PARAM_TEXT));
 
-    /** Default lesson settings */
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/progressbar',
+        get_string('progressbar', 'lesson'), get_string('progressbar_help', 'lesson'),
+        array('value' => 0, 'adv' => false), $yesno));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/ongoing',
+        get_string('ongoing', 'lesson'), get_string('ongoing_help', 'lesson'),
+        array('value' => 0, 'adv' => true), $yesno));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/displayleftmenu',
+        get_string('displayleftmenu', 'lesson'), get_string('displayleftmenu_help', 'lesson'),
+        array('value' => 0, 'adv' => false), $yesno));
+
+    $percentage = array();
+    for ($i = 100; $i >= 0; $i--) {
+        $percentage[$i] = $i.'%';
+    }
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/displayleftif',
+        get_string('displayleftif', 'lesson'), get_string('displayleftif_help', 'lesson'),
+        array('value' => 0, 'adv' => true), $percentage));
+
+    // Slideshow settings.
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/slideshow',
+        get_string('slideshow', 'lesson'), get_string('slideshow_help', 'lesson'),
+        array('value' => 0, 'adv' => true), $yesno));
+
+    $settings->add(new admin_setting_configtext('mod_lesson/slideshowwidth', get_string('slideshowwidth', 'lesson'),
+            get_string('configslideshowwidth', 'lesson'), 640, PARAM_INT));
+
+    $settings->add(new admin_setting_configtext('mod_lesson/slideshowheight', get_string('slideshowheight', 'lesson'),
+            get_string('configslideshowheight', 'lesson'), 480, PARAM_INT));
+
+    $settings->add(new admin_setting_configtext('mod_lesson/slideshowbgcolor', get_string('slideshowbgcolor', 'lesson'),
+            get_string('configslideshowbgcolor', 'lesson'), '#FFFFFF', PARAM_TEXT));
+
     $numbers = array();
-    for ($i=20; $i>1; $i--) {
+    for ($i = 20; $i > 1; $i--) {
         $numbers[$i] = $i;
     }
-    $settings->add(new admin_setting_configselect('lesson_maxanswers', get_string('maximumnumberofanswersbranches','lesson'),
-            get_string('configmaxanswers', 'lesson'), 4, $numbers));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/maxanswers',
+        get_string('maximumnumberofanswersbranches', 'lesson'), get_string('maximumnumberofanswersbranches_help', 'lesson'),
+        array('value' => '5', 'adv' => true), $numbers));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/defaultfeedback',
+        get_string('displaydefaultfeedback', 'lesson'), get_string('displaydefaultfeedback_help', 'lesson'),
+        array('value' => 0, 'adv' => true), $yesno));
+
+    $setting = new admin_setting_configempty('mod_lesson/activitylink', get_string('activitylink', 'lesson'),
+        '');
+
+    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, true);
+    $settings->add($setting);
+
+    // Availability settings.
+    $settings->add(new admin_setting_heading('mod_lesson/availibility', get_string('availability'), ''));
+
+    $settings->add(new admin_setting_configduration_with_advanced('mod_lesson/timelimit',
+        get_string('timelimit', 'lesson'), get_string('configtimelimit_desc', 'lesson'),
+            array('value' => '0', 'adv' => false), 60));
+
+    $settings->add(new admin_setting_configcheckbox_with_advanced('mod_lesson/password',
+        get_string('password', 'lesson'), get_string('configpassword_desc', 'lesson'),
+        array('value' => 0, 'adv' => true)));
+
+    // Flow Control.
+    $settings->add(new admin_setting_heading('lesson/flowcontrol', get_string('flowcontrol', 'lesson'), ''));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/modattempts',
+        get_string('modattempts', 'lesson'), get_string('modattempts_help', 'lesson'),
+        array('value' => 0, 'adv' => false), $yesno));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/displayreview',
+        get_string('displayreview', 'lesson'), get_string('displayreview_help', 'lesson'),
+        array('value' => 0, 'adv' => false), $yesno));
+
+    $attempts = array();
+    for ($i = 10; $i > 0; $i--) {
+        $attempts[$i] = $i;
+    }
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/maximumnumberofattempts',
+        get_string('maximumnumberofattempts', 'lesson'), get_string('maximumnumberofattempts_help', 'lesson'),
+        array('value' => '1', 'adv' => false), $attempts));
 
     $defaultnextpages = array();
     $defaultnextpages[0] = get_string("normal", "lesson");
     $defaultnextpages[LESSON_UNSEENPAGE] = get_string("showanunseenpage", "lesson");
     $defaultnextpages[LESSON_UNANSWEREDPAGE] = get_string("showanunansweredpage", "lesson");
-    $settings->add(new admin_setting_configselect('lesson_defaultnextpage', get_string('actionaftercorrectanswer','lesson'),
-            get_string('configactionaftercorrectanswer', 'lesson'), 0, $defaultnextpages));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/defaultnextpage',
+            get_string('actionaftercorrectanswer', 'lesson'), '',
+            array('value' => 0, 'adv' => true), $defaultnextpages));
+
+    $pages = array();
+    for ($i = 100; $i >= 0; $i--) {
+        $pages[$i] = $i;
+    }
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/numberofpagestoshow',
+        get_string('numberofpagestoshow', 'lesson'), get_string('numberofpagestoshow_help', 'lesson'),
+        array('value' => '1', 'adv' => true), $pages));
+
+    // Grade.
+    $settings->add(new admin_setting_heading('lesson/grade', get_string('grade'), ''));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/practice',
+        get_string('practice', 'lesson'), get_string('practice_help', 'lesson'),
+        array('value' => 0, 'adv' => false), $yesno));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/customscoring',
+        get_string('customscoring', 'lesson'), get_string('customscoring_help', 'lesson'),
+        array('value' => 0, 'adv' => true), $yesno));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/retakesallowed',
+        get_string('retakesallowed', 'lesson'), get_string('retakesallowed_help', 'lesson'),
+        array('value' => 0, 'adv' => false), $yesno));
+
+    $options = array();
+    $options[0] = get_string('usemean', 'lesson');
+    $options[1] = get_string('usemaximum', 'lesson');
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/handlingofretakes',
+        get_string('handlingofretakes', 'lesson'), get_string('handlingofretakes_help', 'lesson'),
+        array('value' => 0, 'adv' => true), $options));
+
+    $settings->add(new admin_setting_configselect_with_advanced('mod_lesson/minimumnumberofquestions',
+        get_string('minimumnumberofquestions', 'lesson'), get_string('minimumnumberofquestions_help', 'lesson'),
+        array('value' => 0, 'adv' => true), $pages));
+
 }
index 0bad1af..777fdb2 100644 (file)
@@ -54,14 +54,15 @@ class mod_lesson_generator extends testing_module_generator {
         global $CFG;
 
         // Add default values for lesson.
+        $lessonconfig = get_config('mod_lesson');
         $record = (array)$record + array(
-            'progressbar' => 0,
-            'ongoing' => 0,
-            'displayleft' => 0,
-            'displayleftif' => 0,
-            'slideshow' => 0,
-            'maxanswers' => $CFG->lesson_maxanswers,
-            'feedback' => 0,
+            'progressbar' => $lessonconfig->progressbar,
+            'ongoing' => $lessonconfig->ongoing,
+            'displayleft' => $lessonconfig->displayleftmenu,
+            'displayleftif' => $lessonconfig->displayleftif,
+            'slideshow' => $lessonconfig->slideshow,
+            'maxanswers' => $lessonconfig->maxanswers,
+            'feedback' => $lessonconfig->defaultfeedback,
             'activitylink' => 0,
             'available' => 0,
             'deadline' => 0,
@@ -71,16 +72,16 @@ class mod_lesson_generator extends testing_module_generator {
             'timespent' => 0,
             'completed' => 0,
             'gradebetterthan' => 0,
-            'modattempts' => 0,
-            'review' => 0,
-            'maxattempts' => 1,
-            'nextpagedefault' => $CFG->lesson_defaultnextpage,
-            'maxpages' => 0,
-            'practice' => 0,
-            'custom' => 1,
-            'retake' => 0,
-            'usemaxgrade' => 0,
-            'minquestions' => 0,
+            'modattempts' => $lessonconfig->modattempts,
+            'review' => $lessonconfig->displayreview,
+            'maxattempts' => $lessonconfig->maximumnumberofattempts,
+            'nextpagedefault' => $lessonconfig->defaultnextpage,
+            'maxpages' => $lessonconfig->numberofpagestoshow,
+            'practice' => $lessonconfig->practice,
+            'custom' => $lessonconfig->customscoring,
+            'retake' => $lessonconfig->retakesallowed,
+            'usemaxgrade' => $lessonconfig->handlingofretakes,
+            'minquestions' => $lessonconfig->minimumnumberofquestions,
             'grade' => 100,
         );
         if (!isset($record['mediafile'])) {
index 3ac5870..51b087c 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2015111600;       // The current module version (Date: YYYYMMDDXX)
+$plugin->version   = 2016020800;       // The current module version (Date: YYYYMMDDXX)
 $plugin->requires  = 2015111000;    // Requires this Moodle version
 $plugin->component = 'mod_lesson'; // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 0;
index a2ae932..355c634 100644 (file)
@@ -15,22 +15,37 @@ class html_parser extends nwiki_parser {
 
     protected $section_editing = true;
 
+    /** @var int Minimum level of the headers on the page (usually tinymce uses <h1> and atto <h3>)  */
+    protected $minheaderlevel = null;
+
     public function __construct() {
         parent::__construct();
         // The order is important, headers should be parsed before links.
         $this->tagrules = array(
             // Headers are considered tags here.
             'header' => array(
-                'expression' => "/<\s*h([1-$this->maxheaderdepth])\s*>(.+?)<\/h[1-$this->maxheaderdepth]>/is"
+                'expression' => "/<\s*h([1-6])\s*>(.+?)<\/h[1-6]>/is"
             ),
             'link' => $this->tagrules['link'],
             'url' => $this->tagrules['url']
         );
     }
 
+    /**
+     * Find minimum header level used on the page (<h1>, <h3>, ...)
+     *
+     * @param string $text
+     * @return int
+     */
+    protected function find_min_header_level($text) {
+        preg_match_all($this->tagrules['header']['expression'], $text, $matches);
+        return !empty($matches[1]) ? min($matches[1]) : 1;
+    }
+
     protected function before_parsing() {
         parent::before_parsing();
 
+        $this->minheaderlevel = $this->find_min_header_level($this->string);
         $this->rules($this->string);
     }
 
@@ -40,7 +55,7 @@ class html_parser extends nwiki_parser {
      * @return string
      */
     protected function header_tag_rule($match) {
-        return $this->generate_header($match[2], $match[1]);
+        return $this->generate_header($match[2], (int)$match[1] - $this->minheaderlevel + 1);
     }
 
     /**
@@ -54,7 +69,9 @@ class html_parser extends nwiki_parser {
             $text .= "\n\n";
         }
 
-        $h1 = array("<\s*h1\s*>", "<\/h1>");
+        $minheaderlevel = $this->find_min_header_level($text);
+
+        $h1 = array("<\s*h{$minheaderlevel}\s*>", "<\/h{$minheaderlevel}>");
 
         $regex = "/(.*?)({$h1[0]}\s*".preg_quote($header, '/')."\s*{$h1[1]}.*?)((?:\n{$h1[0]}.*)|$)/is";
         preg_match($regex, $text, $match);
index 3e1efc0..8675a99 100644 (file)
@@ -192,7 +192,8 @@ abstract class wiki_markup_parser extends generic_parser {
             $text = parser_utils::h('a', "", array('name' => "toc-$num")) . $text;
         }
 
-        return parser_utils::h('h' . $level, $text) . "\n\n";
+        // Display headers as <h3> and lower for accessibility.
+        return parser_utils::h('h' . min(6, $level + 2), $text) . "\n\n";
     }
 
     /**
@@ -228,7 +229,7 @@ abstract class wiki_markup_parser extends generic_parser {
                 }
                 break;
             default:
-                continue;
+                continue 2;
             }
             $number = "$currentsection[0]";
             if (!empty($currentsection[1])) {
diff --git a/mod/wiki/tests/fixtures/input/html/3 b/mod/wiki/tests/fixtures/input/html/3
new file mode 100644 (file)
index 0000000..5323966
--- /dev/null
@@ -0,0 +1,20 @@
+<h3>Header1</h3>
+<p>
+Etiam eget nibh leo. In luctus orci quis tellus sagittis egestas. Praesent et turpis augue, ac accumsan orci? Pellentesque porttitor sodales tortor; vitae faucibus dui auctor vel. Phasellus sit amet sem leo; eu adipiscing ipsum. Aliquam vehicula ipsum at diam imperdiet a condimentum urna commodo? Nunc ac lacus non lorem porttitor malesuada et sit amet diam! Aenean pulvinar lectus et dolor dignissim viverra placerat nisl mattis! Nunc non leo a massa imperdiet porta vel eu tellus. Sed ac est quis orci viverra cursus. Nam tellus mauris, facilisis nec faucibus sit amet, consequat in felis. Ut volutpat lacinia est ut fringilla. Pellentesque augue dui, aliquet et ornare euismod, egestas nec arcu! Vivamus gravida, lorem vitae suscipit condimentum, turpis arcu iaculis tortor; vel ullamcorper lorem ante id nisi. Ut sit amet sem tempor quam dignissim interdum. Nam aliquam, odio vitae volutpat semper; sapien turpis feugiat neque, ac ullamcorper felis enim vitae arcu. Morbi viverra feugiat justo, at ullamcorper ipsum posuere non.
+</p>
+<p>
+Proin ultricies gravida dui a mattis. Integer nec nisl ante. Mauris euismod, tortor et fermentum semper; est mi adipiscing erat, non pellentesque orci dui ac arcu. Nam vitae metus augue. Integer magna nibh, elementum nec molestie eget; commodo sed turpis. Duis neque mi, vehicula sed aliquet id, ultricies sed tortor. Aliquam pharetra ante sapien. Etiam accumsan ipsum sed dolor bibendum congue sollicitudin enim fringilla. Nulla eros risus, auctor placerat vestibulum eget, tincidunt ac eros. Duis ut turpis leo, sit amet ornare arcu. Aliquam eu lorem in arcu accumsan iaculis. Integer placerat lacus in nibh sollicitudin euismod? Sed a urna vel dui sagittis varius cursus sit amet dolor. Nulla ut sem at magna fringilla hendrerit sed nec sapien. Aenean nisi elit, feugiat vel euismod non, laoreet sit amet ligula. Aenean a dui quam.
+</p>
+<p>
+Curabitur dolor ligula, suscipit et eleifend nec, faucibus varius sapien. Quisque ornare felis ac leo tincidunt quis malesuada elit lobortis? Suspendisse potenti. Vestibulum tempus porta dui, at ullamcorper mauris sollicitudin vel? In convallis risus id elit ultrices pellentesque. Sed id quam lectus. Duis tincidunt egestas urna, in tempor tortor rhoncus ac. Sed commodo, nunc sit amet sodales vulputate, purus nisi malesuada urna, ut cursus nisl nunc vel enim. Mauris ut imperdiet risus. Integer sagittis; odio at laoreet venenatis, purus neque fermentum nisi, non elementum urna libero sed ipsum.
+</p>
+<h3>Header2</h3>
+<p>
+Etiam eget nibh leo. In luctus orci quis tellus sagittis egestas. Praesent et turpis augue, ac accumsan orci? Pellentesque porttitor sodales tortor; vitae faucibus dui auctor vel. Phasellus sit amet sem leo; eu adipiscing ipsum. Aliquam vehicula ipsum at diam imperdiet a condimentum urna commodo? Nunc ac lacus non lorem porttitor malesuada et sit amet diam! Aenean pulvinar lectus et dolor dignissim viverra placerat nisl mattis! Nunc non leo a massa imperdiet porta vel eu tellus. Sed ac est quis orci viverra cursus. Nam tellus mauris, facilisis nec faucibus sit amet, consequat in felis. Ut volutpat lacinia est ut fringilla. Pellentesque augue dui, aliquet et ornare euismod, egestas nec arcu! Vivamus gravida, lorem vitae suscipit condimentum, turpis arcu iaculis tortor; vel ullamcorper lorem ante id nisi. Ut sit amet sem tempor quam dignissim interdum. Nam aliquam, odio vitae volutpat semper; sapien turpis feugiat neque, ac ullamcorper felis enim vitae arcu. Morbi viverra feugiat justo, at ullamcorper ipsum posuere non.
+</p>
+<p>
+Proin ultricies gravida dui a mattis. Integer nec nisl ante. Mauris euismod, tortor et fermentum semper; est mi adipiscing erat, non pellentesque orci dui ac arcu. Nam vitae metus augue. Integer magna nibh, elementum nec molestie eget; commodo sed turpis. Duis neque mi, vehicula sed aliquet id, ultricies sed tortor. Aliquam pharetra ante sapien. Etiam accumsan ipsum sed dolor bibendum congue sollicitudin enim fringilla. Nulla eros risus, auctor placerat vestibulum eget, tincidunt ac eros. Duis ut turpis leo, sit amet ornare arcu. Aliquam eu lorem in arcu accumsan iaculis. Integer placerat lacus in nibh sollicitudin euismod? Sed a urna vel dui sagittis varius cursus sit amet dolor. Nulla ut sem at magna fringilla hendrerit sed nec sapien. Aenean nisi elit, feugiat vel euismod non, laoreet sit amet ligula. Aenean a dui quam.
+</p>
+<p>
+Curabitur dolor ligula, suscipit et eleifend nec, faucibus varius sapien. Quisque ornare felis ac leo tincidunt quis malesuada elit lobortis? Suspendisse potenti. Vestibulum tempus porta dui, at ullamcorper mauris sollicitudin vel? In convallis risus id elit ultrices pellentesque. Sed id quam lectus. Duis tincidunt egestas urna, in tempor tortor rhoncus ac. Sed commodo, nunc sit amet sodales vulputate, purus nisi malesuada urna, ut cursus nisl nunc vel enim. Mauris ut imperdiet risus. Integer sagittis; odio at laoreet venenatis, purus neque fermentum nisi, non elementum urna libero sed ipsum.
+</p>
\ No newline at end of file
index 0de9e7d..4ad440e 100644 (file)
@@ -1,12 +1,12 @@
-<h1><a name="toc-1"></a>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</h1>
+<h3><a name="toc-1"></a>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</h3>
 <p>Phasellus odio? Ut ac leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus enim justo, porttitor at, lacinia vitae; consectetuer et, ante? Maecenas eget libero. Duis est. Curabitur tincidunt dictum ligula. Nunc euismod lectus quis mi. Proin et enim sed nunc scelerisque posuere. Suspendisse enim purus, sodales non, tristique vel, sollicitudin ullamcorper, nulla. Aliquam condimentum; tellus eu vulputate facilisis, ante pede rhoncus elit, vel euismod nulla sapien et metus?</p>
-<h2><a name="toc-2"></a>Praesent tristique facilisis metus.</h2>
+<h4><a name="toc-2"></a>Praesent tristique facilisis metus.</h4>
 <p>Quisque lectus? Morbi ultrices ultricies neque. In ligula sem; pretium eget, iaculis laoreet, pulvinar sed, dui. Proin mattis luctus diam. Aenean eget risus in mauris sagittis vehicula. Vivamus dapibus enim ac dolor. Pellentesque leo. Praesent tristique facilisis metus. Nulla imperdiet ante et urna? Maecenas leo nisi, lacinia sollicitudin, viverra at, aliquet et, justo. Quisque congue dolor.</p>
-<h3><a name="toc-3"></a>Phasellus ut augue ut felis porttitor condimentum.</h3>
+<h5><a name="toc-3"></a>Phasellus ut augue ut felis porttitor condimentum.</h5>
 <p>Aliquam erat volutpat. Phasellus ut augue ut felis porttitor condimentum. Nam sapien tellus, tempus sed; mattis quis, viverra quis, mauris. Suspendisse venenatis sollicitudin massa. Pellentesque lobortis dolor vitae nisl. Nulla interdum aliquet neque. Duis nisl pede, vestibulum in, tristique eget, viverra vitae, erat. Maecenas justo turpis, convallis sit amet, tristique eu, laoreet et, augue. Fusce sem. Pellentesque ut turpis? Morbi suscipit sollicitudin metus? Morbi pharetra, sem eget ornare tempor, neque erat dapibus lacus, ut tincidunt nisi leo sed nunc. Sed sodales dignissim eros. Duis vitae risus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed lobortis consequat sem. Nunc posuere vulputate velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis vestibulum pellentesque neque.</p>
-<h4>Sed adipiscing dui at massa. Nulla consectetuer tristique lacus?</h4>
+<h6>Sed adipiscing dui at massa. Nulla consectetuer tristique lacus?</h6>
 <p>Maecenas lacus justo, pellentesque vitae, mattis vitae, rutrum sit amet, metus! Etiam aliquam odio vel nulla. Suspendisse ante. Pellentesque viverra leo at lorem! Ut pharetra egestas ante. Aliquam erat volutpat. Sed adipiscing dui at massa. Nulla consectetuer tristique lacus? Donec ante leo, condimentum non, consectetuer vel, sodales placerat, tortor. Etiam at diam at elit adipiscing ultrices. Etiam lectus sapien, congue sed, sodales quis, ultricies a, libero. Pellentesque tincidunt!</p>
-<h2><a name="toc-4"></a>Curabitur euismod sollicitudin nibh</h2>
+<h4><a name="toc-4"></a>Curabitur euismod sollicitudin nibh</h4>
 <p>Curabitur euismod sollicitudin nibh. Duis nec diam. Sed nunc quam, lobortis nec; tristique et, dignissim eget, massa. Suspendisse sagittis malesuada tortor. Nullam lectus diam, mollis id, malesuada at, gravida ut, nisl. In hac habitasse platea dictumst. Sed a purus. Etiam velit urna, lacinia et, imperdiet quis, varius quis, orci! Sed dolor ante, mollis in, ultrices in, vestibulum vitae; justo. Vestibulum accumsan vehicula risus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus sit amet diam lobortis urna tristique pretium. Quisque erat.</p>
-<h4>Duis nec diam.</h4>
+<h6>Duis nec diam.</h6>
 <p>Pellentesque lobortis dolor vitae nisl. Nulla interdum aliquet neque. Duis nisl pede, vestibulum in, tristique eget, viverra vitae, erat. Maecenas justo turpis, convallis sit amet, tristique eu, laoreet et, augue. Fusce sem. Pellentesque ut turpis? Morbi suscipit sollicitudin metus? Morbi pharetra, sem eget ornare tempor, neque erat dapibus lacus, ut tincidunt nisi leo sed nunc. Sed sodales dignissim eros. Duis vitae risus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed lobortis consequat sem. Nunc posuere vulputate velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis vestibulum pellentesque neque.</p>
index 7311db5..cb716cf 100644 (file)
@@ -1,5 +1,5 @@
-<h1><a name="toc-1"></a>In nisi purus, varius in, mollis eget, interdum in, ipsum.</h1>
+<h3><a name="toc-1"></a>In nisi purus, varius in, mollis eget, interdum in, ipsum.</h3>
 <p>Vivamus lobortis. <strong>Mauris dui dui, rutrum in, egestas nec, porttitor vehicula, risus!</strong> Vivamus aliquam ultrices metus. <em>Donec ultricies, metus eget volutpat condimentum;</em> neque orci mattis dolor, non posuere eros dui et orci. Duis aliquam. Fusce sit amet nisl. Duis tempor dapibus diam? In venenatis congue mi? Aliquam metus erat; facilisis a, suscipit a, pretium vitae; ligula? Ut id metus a pede adipiscing commodo! <strong>Praesent ultricies urna et sapien.</strong> <em>Donec adipiscing.</em> Donec sit amet lacus.</p>
-<h2><a name="toc-2"></a>**In nisi purus**, //varius in,// mollis eget, interdum in, ipsum.</h2>
+<h4><a name="toc-2"></a>**In nisi purus**, //varius in,// mollis eget, interdum in, ipsum.</h4>
 <p>Duis feugiat ligula ac elit. %!34%!Nulla sed arcu a risus sodales mattis. Etiam magna arcu, accumsan vitae, sodales non, faucibus quis, nunc. Aenean ut elit. Pellentesque malesuada lacus a orci. Suspendisse in erat sed mi porta faucibus. Nullam a nibh. Suspendisse potenti. Nam malesuada lobortis nibh. Ut venenatis, nibh ac convallis iaculis, justo pede tristique sapien, vel ultricies massa diam id leo. Pellentesque ullamcorper condimentum urna. //Proin dui lacus; scelerisque nec, condimentum non, <strong>lobortis ac, felis.</strong></p>
 <p>//Nullam ac neque. %!4%!<strong>Praesent quis tellus. </strong>Maecenas<strong> et felis vitae lectus porttitor dignissim. Etiam at dui id nibh molestie semper. Sed vulputate nunc et neque. Fusce consectetur elit id leo. <em>Nulla facilisi. </em>Donec vitae nulla ac nisl mollis blandit. //Nulla adipiscing.</strong> Phasellus quis odio sed eros viverra sodales. Suspendisse eget mauris id urna convallis fringilla. Aliquam dolor. Sed commodo. Quisque vestibulum, eros in mollis rutrum, odio risus aliquam turpis; nec convallis ante justo in dui? Pellentesque pharetra venenatis odio. Nulla placerat, libero at lacinia pellentesque; nisi massa sodales risus, at tincidunt orci pede sed ipsum. Etiam massa! Nullam aliquet justo at erat placerat convallis.</p>
index 965d91d..d7ad8e0 100644 (file)
@@ -1,4 +1,4 @@
-<h2><a name="toc-1"></a>Donec ultricies neque eu libero scelerisque feugiat.</h2>
+<h4><a name="toc-1"></a>Donec ultricies neque eu libero scelerisque feugiat.</h4>
 <p><strong>Donec ultricies <em>neque eu <a href="http://libero">libero</a> scelerisque </em>feugiat. <em>Cras sed ante.</em> Sed volutpat urna eu diam. Curabitur fringilla lacinia mi.</strong> Quisque lorem. Etiam fringilla consequat dui. Nunc est est; aliquet eu, porttitor auctor; malesuada id, massa. <a href="http://Nullam">Nullam feugiat</a>, nulla eget vulputate facilisis, erat odio vestibulum mi, eget volutpat lorem enim vitae eros. Vestibulum convallis. Maecenas posuere pellentesque mi? Donec consectetur volutpat dolor. <a href="http://%2A%2ACurabitur%2A%2A">**Curabitur**</a> non <strong><a href="http://%2F%2FTellus%2A%2A">tellus nec ligula bibendum pulvinar.</a></strong></p>
 <p><a href="http://www.google.com">http://www.google.com</a>
 <a href="http://www.google.com">http://www.google.com</a></p>
index fec622c..092a7e3 100644 (file)
@@ -1,4 +1,4 @@
-<h1><a name="toc-1"></a>Integer eu leo? \\ Quisque posuere.</h1>
+<h3><a name="toc-1"></a>Integer eu leo? \\ Quisque posuere.</h3>
 <p>Nunc commodo nisi vitae quam. Etiam tincidunt; lectus eu tempus molestie, elit enim auctor tortor, in varius leo mi ac risus. Sed iaculis magna vel libero. Pellentesque iaculis, tellus in ullamcorper tempus, justo sapien scelerisque enim, eu ornare dui neque sed ligula. <br />Vestibulum porta justo a dolor. Duis mollis quam vel sem. Quisque vel arcu. Pellentesque sem. Aliquam adipiscing neque quis turpis. Mauris placerat, elit quis iaculis vehicula, sem nulla imperdiet nunc, in elementum felis lectus non magna. Mauris cursus; odio eu sagittis sodales, nisi nibh pellentesque tortor, ut ultricies lacus tellus non odio. In semper, ligula eu condimentum posuere, sapien tellus blandit quam, dapibus iaculis lacus erat eget ipsum. Duis pulvinar molestie magna. Aliquam bibendum quam ac nulla!</p>
-<h2><a name="toc-2"></a>Fusce justo. Aliquam felis tellus, tempor vel, congue quis, tempus eu, ipsum. \\</h2>
+<h4><a name="toc-2"></a>Fusce justo. Aliquam felis tellus, tempor vel, congue quis, tempus eu, ipsum. \\</h4>
 <p><br />Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi sed erat! Vivamus condimentum. Praesent euismod; nibh sed mollis feugiat, erat lorem commodo lectus, vitae tristique erat massa semper diam. Morbi vitae elit. <br />Quisque sagittis leo non odio auctor faucibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque mi pede, lacinia id, commodo faucibus, rhoncus in, nibh. Praesent vestibulum aliquet quam!</p>
index 72d2f9a..a0a157a 100644 (file)
@@ -1,3 +1,3 @@
-<h1><a name="toc-1"></a>In nisi purus, varius in, mollis eget, interdum in, ipsum.</h1>
+<h3><a name="toc-1"></a>In nisi purus, varius in, mollis eget, interdum in, ipsum.</h3>
 <p>Vivamus lobortis. <strong>Mauris dui dui, rutrum in, egestas nec, porttitor vehicula, risus!</strong> Vivamus aliquam ultrices metus. <em>Donec ultricies, metus eget volutpat condimentum;</em> neque orci mattis dolor, non posuere eros dui et orci. Duis aliquam. Fusce sit amet nisl. Duis tempor dapibus diam? In venenatis congue mi? Aliquam metus erat; facilisis a, suscipit a, pretium vitae; ligula? Ut id metus a pede adipiscing commodo! <tt>**Praesent ultricies urna et sapien.** //Donec adipiscing.//</tt> Donec sit amet lacus.</p>
 <pre> lkdsjflsdjflsdkjflskdjlfk </pre>
index 50f0106..5177937 100644 (file)
@@ -1,4 +1,4 @@
-<h2><a name="toc-1"></a>Testing some tables</h2>
+<h4><a name="toc-1"></a>Testing some tables</h4>
 <p>Phasellus urna erat; venenatis ac, iaculis sed, pretium ut, pede. Suspendisse mauris tellus, rhoncus a, tempor id, mattis non, nibh. Aliquam magna odio; hendrerit at, eleifend sed, dignissim quis, orci. Donec mollis, ante sit amet convallis porta, augue nibh viverra magna, ac scelerisque dui ligula eu felis. Sed eget magna. Proin eget ligula. Vestibulum ornare; sem molestie congue sollicitudin, mi velit porta est, pellentesque dignissim libero est at velit. Donec congue adipiscing massa? Nunc eget nisi eget elit facilisis ornare. Vestibulum et felis id leo feugiat sagittis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed tellus velit, luctus et, tempor non, tempor vitae, magna. Aliquam viverra tortor sit amet tellus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque nibh risus, dictum eu, tempor sit amet, posuere et, nulla.</p>
 <p>Well formed table...</p>
 <table>
index 80b9303..ab18969 100644 (file)
@@ -1,14 +1,14 @@
-<h1><a name="toc-1"></a>Top-level heading (1)</h1>
-<h2><a name="toc-2"></a>This a test for creole 0.1 (2)</h2>
-<h3><a name="toc-3"></a>This is a Subheading (3)</h3>
-<h4>Subsub (4)</h4>
-<h5>Subsubsub (5)</h5>
+<h3><a name="toc-1"></a>Top-level heading (1)</h3>
+<h4><a name="toc-2"></a>This a test for creole 0.1 (2)</h4>
+<h5><a name="toc-3"></a>This is a Subheading (3)</h5>
+<h6>Subsub (4)</h6>
+<h6>Subsubsub (5)</h6>
 <p>The ending equal signs should not be displayed:</p>
 <p>Top-level heading (1)</p>
-<h2><a name="toc-4"></a>This a test for creole 0.1 (2)</h2>
-<h3><a name="toc-5"></a>This is a Subheading (3)</h3>
-<h4>Subsub (4)</h4>
-<h5>Subsubsub (5)</h5>
+<h4><a name="toc-4"></a>This a test for creole 0.1 (2)</h4>
+<h5><a name="toc-5"></a>This is a Subheading (3)</h5>
+<h6>Subsub (4)</h6>
+<h6>Subsubsub (5)</h6>
 <p>You can make things <strong>bold</strong> or <em>italic</em> or <strong><em>both</em></strong> or <em><strong>both</strong></em>.</p>
 <p>Character formatting extends across line breaks: <strong>bold,
 this is still bold. This line deliberately does not end in star-star.</strong></p>
@@ -86,15 +86,15 @@ Guitar Chord C:
 ||---|---|---|
 </pre>
 <p>You can also use it inline nowiki <tt> in a sentence </tt> like this.</p>
-<h1><a name="toc-6"></a>Escapes</h1>
+<h3><a name="toc-6"></a>Escapes</h3>
 <p>Normal Link: <a href="http://wikicreole.org/">http://wikicreole.org/</a> - now same link, but escaped: http://wikicreole.org/ </p>
 <p>Normal asterisks: **not bold**</p>
 <p>a tilde alone: ~</p>
 <p>a tilde escapes itself: ~xxx</p>
-<h3><a name="toc-7"></a>Creole 0.2</h3>
+<h5><a name="toc-7"></a>Creole 0.2</h5>
 <p>This should be a flower with the ALT text &quot;this is a flower&quot; if your wiki supports ALT text on images:</p>
 <p><div class="wiki_image_left"><p></p><img src="Red-Flower.jpg" alt="here is a red flower" /></div></p>
-<h3><a name="toc-8"></a>Creole 0.4</h3>
+<h5><a name="toc-8"></a>Creole 0.4</h5>
 <p>Tables are done like this:</p>
 <table>
 <thead>
@@ -123,7 +123,7 @@ Guitar Chord C:
 Pone: xyz<br />
 Fax: +45<br />
 Mobile: abc</p>
-<h3><a name="toc-9"></a>Creole 0.5</h3>
+<h5><a name="toc-9"></a>Creole 0.5</h5>
 <table>
 <thead>
 <tr>
@@ -142,5 +142,5 @@ Mobile: abc</p>
 </tr>
 </tbody>
 </table>
-<h3><a name="toc-10"></a>Creole 1.0</h3>
+<h5><a name="toc-10"></a>Creole 1.0</h5>
 <p>If interwiki links are setup in your wiki, this links to the WikiCreole page about Creole 1.0 test cases: <a href="http://WikiCreole%3ACreole1.0TestCases">WikiCreole:Creole1.0TestCases</a>.</p>
index bbfcab1..37426e4 100644 (file)
@@ -1,4 +1,4 @@
-<h1><a name="toc-1"></a>Header1</h1>
+<h3><a name="toc-1"></a>Header1</h3>
 <p>
 Etiam eget nibh leo. In luctus orci quis tellus sagittis egestas. Praesent et turpis augue, ac accumsan orci? Pellentesque porttitor sodales tortor; vitae faucibus dui auctor vel. Phasellus sit amet sem leo; eu adipiscing ipsum. Aliquam vehicula ipsum at diam imperdiet a condimentum urna commodo? Nunc ac lacus non lorem porttitor malesuada et sit amet diam! Aenean pulvinar lectus et dolor dignissim viverra placerat nisl mattis! Nunc non leo a massa imperdiet porta vel eu tellus. Sed ac est quis orci viverra cursus. Nam tellus mauris, facilisis nec faucibus sit amet, consequat in felis. Ut volutpat lacinia est ut fringilla. Pellentesque augue dui, aliquet et ornare euismod, egestas nec arcu! Vivamus gravida, lorem vitae suscipit condimentum, turpis arcu iaculis tortor; vel ullamcorper lorem ante id nisi. Ut sit amet sem tempor quam dignissim interdum. Nam aliquam, odio vitae volutpat semper; sapien turpis feugiat neque, ac ullamcorper felis enim vitae arcu. Morbi viverra feugiat justo, at ullamcorper ipsum posuere non.
 </p>
@@ -8,7 +8,7 @@ Proin ultricies gravida dui a mattis. Integer nec nisl ante. Mauris euismod, tor
 <p>
 Curabitur dolor ligula, suscipit et eleifend nec, faucibus varius sapien. Quisque ornare felis ac leo tincidunt quis malesuada elit lobortis? Suspendisse potenti. Vestibulum tempus porta dui, at ullamcorper mauris sollicitudin vel? In convallis risus id elit ultrices pellentesque. Sed id quam lectus. Duis tincidunt egestas urna, in tempor tortor rhoncus ac. Sed commodo, nunc sit amet sodales vulputate, purus nisi malesuada urna, ut cursus nisl nunc vel enim. Mauris ut imperdiet risus. Integer sagittis; odio at laoreet venenatis, purus neque fermentum nisi, non elementum urna libero sed ipsum.
 </p>
-<h1><a name="toc-2"></a>Header2</h1>
+<h3><a name="toc-2"></a>Header2</h3>
 <p>
 Etiam eget nibh leo. In luctus orci quis tellus sagittis egestas. Praesent et turpis augue, ac accumsan orci? Pellentesque porttitor sodales tortor; vitae faucibus dui auctor vel. Phasellus sit amet sem leo; eu adipiscing ipsum. Aliquam vehicula ipsum at diam imperdiet a condimentum urna commodo? Nunc ac lacus non lorem porttitor malesuada et sit amet diam! Aenean pulvinar lectus et dolor dignissim viverra placerat nisl mattis! Nunc non leo a massa imperdiet porta vel eu tellus. Sed ac est quis orci viverra cursus. Nam tellus mauris, facilisis nec faucibus sit amet, consequat in felis. Ut volutpat lacinia est ut fringilla. Pellentesque augue dui, aliquet et ornare euismod, egestas nec arcu! Vivamus gravida, lorem vitae suscipit condimentum, turpis arcu iaculis tortor; vel ullamcorper lorem ante id nisi. Ut sit amet sem tempor quam dignissim interdum. Nam aliquam, odio vitae volutpat semper; sapien turpis feugiat neque, ac ullamcorper felis enim vitae arcu. Morbi viverra feugiat justo, at ullamcorper ipsum posuere non.
 </p>
diff --git a/mod/wiki/tests/fixtures/output/html/3 b/mod/wiki/tests/fixtures/output/html/3
new file mode 100644 (file)
index 0000000..37426e4
--- /dev/null
@@ -0,0 +1,20 @@
+<h3><a name="toc-1"></a>Header1</h3>
+<p>
+Etiam eget nibh leo. In luctus orci quis tellus sagittis egestas. Praesent et turpis augue, ac accumsan orci? Pellentesque porttitor sodales tortor; vitae faucibus dui auctor vel. Phasellus sit amet sem leo; eu adipiscing ipsum. Aliquam vehicula ipsum at diam imperdiet a condimentum urna commodo? Nunc ac lacus non lorem porttitor malesuada et sit amet diam! Aenean pulvinar lectus et dolor dignissim viverra placerat nisl mattis! Nunc non leo a massa imperdiet porta vel eu tellus. Sed ac est quis orci viverra cursus. Nam tellus mauris, facilisis nec faucibus sit amet, consequat in felis. Ut volutpat lacinia est ut fringilla. Pellentesque augue dui, aliquet et ornare euismod, egestas nec arcu! Vivamus gravida, lorem vitae suscipit condimentum, turpis arcu iaculis tortor; vel ullamcorper lorem ante id nisi. Ut sit amet sem tempor quam dignissim interdum. Nam aliquam, odio vitae volutpat semper; sapien turpis feugiat neque, ac ullamcorper felis enim vitae arcu. Morbi viverra feugiat justo, at ullamcorper ipsum posuere non.
+</p>
+<p>
+Proin ultricies gravida dui a mattis. Integer nec nisl ante. Mauris euismod, tortor et fermentum semper; est mi adipiscing erat, non pellentesque orci dui ac arcu. Nam vitae metus augue. Integer magna nibh, elementum nec molestie eget; commodo sed turpis. Duis neque mi, vehicula sed aliquet id, ultricies sed tortor. Aliquam pharetra ante sapien. Etiam accumsan ipsum sed dolor bibendum congue sollicitudin enim fringilla. Nulla eros risus, auctor placerat vestibulum eget, tincidunt ac eros. Duis ut turpis leo, sit amet ornare arcu. Aliquam eu lorem in arcu accumsan iaculis. Integer placerat lacus in nibh sollicitudin euismod? Sed a urna vel dui sagittis varius cursus sit amet dolor. Nulla ut sem at magna fringilla hendrerit sed nec sapien. Aenean nisi elit, feugiat vel euismod non, laoreet sit amet ligula. Aenean a dui quam.
+</p>
+<p>
+Curabitur dolor ligula, suscipit et eleifend nec, faucibus varius sapien. Quisque ornare felis ac leo tincidunt quis malesuada elit lobortis? Suspendisse potenti. Vestibulum tempus porta dui, at ullamcorper mauris sollicitudin vel? In convallis risus id elit ultrices pellentesque. Sed id quam lectus. Duis tincidunt egestas urna, in tempor tortor rhoncus ac. Sed commodo, nunc sit amet sodales vulputate, purus nisi malesuada urna, ut cursus nisl nunc vel enim. Mauris ut imperdiet risus. Integer sagittis; odio at laoreet venenatis, purus neque fermentum nisi, non elementum urna libero sed ipsum.
+</p>
+<h3><a name="toc-2"></a>Header2</h3>
+<p>
+Etiam eget nibh leo. In luctus orci quis tellus sagittis egestas. Praesent et turpis augue, ac accumsan orci? Pellentesque porttitor sodales tortor; vitae faucibus dui auctor vel. Phasellus sit amet sem leo; eu adipiscing ipsum. Aliquam vehicula ipsum at diam imperdiet a condimentum urna commodo? Nunc ac lacus non lorem porttitor malesuada et sit amet diam! Aenean pulvinar lectus et dolor dignissim viverra placerat nisl mattis! Nunc non leo a massa imperdiet porta vel eu tellus. Sed ac est quis orci viverra cursus. Nam tellus mauris, facilisis nec faucibus sit amet, consequat in felis. Ut volutpat lacinia est ut fringilla. Pellentesque augue dui, aliquet et ornare euismod, egestas nec arcu! Vivamus gravida, lorem vitae suscipit condimentum, turpis arcu iaculis tortor; vel ullamcorper lorem ante id nisi. Ut sit amet sem tempor quam dignissim interdum. Nam aliquam, odio vitae volutpat semper; sapien turpis feugiat neque, ac ullamcorper felis enim vitae arcu. Morbi viverra feugiat justo, at ullamcorper ipsum posuere non.
+</p>
+<p>
+Proin ultricies gravida dui a mattis. Integer nec nisl ante. Mauris euismod, tortor et fermentum semper; est mi adipiscing erat, non pellentesque orci dui ac arcu. Nam vitae metus augue. Integer magna nibh, elementum nec molestie eget; commodo sed turpis. Duis neque mi, vehicula sed aliquet id, ultricies sed tortor. Aliquam pharetra ante sapien. Etiam accumsan ipsum sed dolor bibendum congue sollicitudin enim fringilla. Nulla eros risus, auctor placerat vestibulum eget, tincidunt ac eros. Duis ut turpis leo, sit amet ornare arcu. Aliquam eu lorem in arcu accumsan iaculis. Integer placerat lacus in nibh sollicitudin euismod? Sed a urna vel dui sagittis varius cursus sit amet dolor. Nulla ut sem at magna fringilla hendrerit sed nec sapien. Aenean nisi elit, feugiat vel euismod non, laoreet sit amet ligula. Aenean a dui quam.
+</p>
+<p>
+Curabitur dolor ligula, suscipit et eleifend nec, faucibus varius sapien. Quisque ornare felis ac leo tincidunt quis malesuada elit lobortis? Suspendisse potenti. Vestibulum tempus porta dui, at ullamcorper mauris sollicitudin vel? In convallis risus id elit ultrices pellentesque. Sed id quam lectus. Duis tincidunt egestas urna, in tempor tortor rhoncus ac. Sed commodo, nunc sit amet sodales vulputate, purus nisi malesuada urna, ut cursus nisl nunc vel enim. Mauris ut imperdiet risus. Integer sagittis; odio at laoreet venenatis, purus neque fermentum nisi, non elementum urna libero sed ipsum.
+</p>
index 6b1303f..fd48b34 100644 (file)
@@ -1,9 +1,9 @@
-<h1><a name="toc-1"></a>Header 1</h1>
+<h3><a name="toc-1"></a>Header 1</h3>
 <p>First paragraph with no formats.</p>
 <p><strong>This paragraph has bold text.</strong></p>
 <p>== False header =</p>
 <p><em>This part of the paragraph is italicized.</em> But not this part.</p>
-<h2><a name="toc-2"></a>Header 2</h2>
+<h4><a name="toc-2"></a>Header 2</h4>
 <p>Some mix of <em>italics</em> and <strong>bold</strong>, and some <em><strong>italics & bold</strong></em>.</p>
 <p>And that <em>italics and <strong>both</strong></em>.</p>
 <p>And this: <em>italics and</em> <em><strong>both</strong></em>.</p>
index 5b2c07d..2378668 100644 (file)
@@ -1,12 +1,12 @@
-<h1><a name="toc-1"></a>Links</h1>
-<h2><a name="toc-2"></a>Internal links</h2>
+<h3><a name="toc-1"></a>Links</h3>
+<h4><a name="toc-2"></a>Internal links</h4>
 <p>Some <a href="http://links">links</a>. <a href="http://link">Another Link</a>.</p>
-<h3><a name="toc-3"></a>Anchors</h3>
+<h5><a name="toc-3"></a>Anchors</h5>
 <p>This is an <a href="#External+links">anchor</a> to the external links section.</p>
 <p>And this is an <a href="http://link#Section">anchor to another page</a>.</p>
-<h2><a name="toc-4"></a>External links</h2>
+<h4><a name="toc-4"></a>External links</h4>
 <p>A link to <a href="http://www.google.com">http://www.google.com</a> , and a link to <a href="http://www.apple.com">apple</a>. </p>
 <p>The same link to <a href="http://www.apple.com">Apple Corporation</a>.</p>
-<h2><a name="toc-5"></a>Attachments & images</h2>
+<h4><a name="toc-5"></a>Attachments & images</h4>
 <p>That's an <a href="attachment.png" class="wiki-attachment">attachment</a>.</p>
 <p>And that's an <div class="wiki_image_left"><p></p><img src="image.png" alt="image" /></div>.</p>
index 1c38e68..a433def 100644 (file)
@@ -1,5 +1,5 @@
-<h1><a name="toc-1"></a>Lists</h1>
-<h2><a name="toc-2"></a>Unordered lists</h2>
+<h3><a name="toc-1"></a>Lists</h3>
+<h4><a name="toc-2"></a>Unordered lists</h4>
 <ul>
 <li>1
 <ul>
@@ -20,7 +20,7 @@
 </li>
 <li><em>italic</em></li>
 </ul>
-<h2><a name="toc-3"></a>Ordered lists</h2>
+<h4><a name="toc-3"></a>Ordered lists</h4>
 <ol>
 <li>1
 <ol>
index 678b53a..909c2c1 100644 (file)
@@ -64,7 +64,7 @@ class mod_wiki_wikiparser_test extends basic_testcase {
         $result['parsed_text'] = preg_replace('~[\r\n]~', '', $result['parsed_text']);
         $output                = preg_replace('~[\r\n]~', '', $output);
 
-        $this->assertEquals($output, $result['parsed_text']);
+        $this->assertEquals($output, $result['parsed_text'], 'Failed asserting that two strings are equal. Markup = '.$markup.", num = $num");
         return true;
     }
 
@@ -89,8 +89,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name using HTML entities.
         $input = '<h1>Code &amp; Test</h1>';
-        $output = '<h1><a name="toc-1"></a>Code &amp; Test <a href="edit.php?pageid=&amp;section=Code+%26amp%3B+Test" '.
-            'class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Code &amp; Test <a href="edit.php?pageid=&amp;section=Code+%26amp%3B+Test" '.
+            'class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Code &amp; Test <a href="edit.php?pageid=&amp;section=Code+%26amp%3B+'.
             'Test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -102,8 +102,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name using non-ASCII characters.
         $input = '<h1>Another áéíóú瀠test</h1>';
-        $output = '<h1><a name="toc-1"></a>Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
-            '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
+            '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
             '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -115,8 +115,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name with a URL.
         $input = '<h1>Another http://moodle.org test</h1>';
-        $output = '<h1><a name="toc-1"></a>Another <a href="http://moodle.org">http://moodle.org</a> test <a href="edit.php'.
-            '?pageid=&amp;section=Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Another <a href="http://moodle.org">http://moodle.org</a> test <a href="edit.php'.
+            '?pageid=&amp;section=Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Another http://moodle.org test <a href="edit.php?pageid=&amp;section='.
             'Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -130,11 +130,11 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test toc section names being wikilinks.
         $input = '<h1>[[Heading 1]]</h1><h2>[[Heading A]]</h2><h2>Heading D</h2>';
-        $regexpoutput = '!<h1><a name="toc-1"></a>' .
+        $regexpoutput = '!<h3><a name="toc-1"></a>' .
             '<a class="wiki_newentry" href.*mod/wiki/create\.php\?.*title=Heading\+1.*action=new.*>Heading 1<.*' .
-            '<h2><a name="toc-2"></a>' .
+            '<h4><a name="toc-2"></a>' .
             '<a class="wiki_newentry" href.*mod/wiki/create\.php\?.*title=Heading\+A.*action=new.*>Heading A<.*' .
-            '<h2><a name="toc-3"></a>' .
+            '<h4><a name="toc-3"></a>' .
             'Heading D!ms';
         $regexptoc = '!<a href="#toc-1">Heading 1.*<a href="#toc-2">Heading A</a>.*<a href="#toc-3">Heading D</a>!ms';
         $section = wiki_parser_proxy::get_section($input, 'html', 'Another [[wikilinked]] test');
@@ -150,8 +150,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name using HTML entities.
         $input = '= Code & Test =';
-        $output = '<h1><a name="toc-1"></a>Code &amp; Test <a href="edit.php?pageid=&amp;section=Code+%26amp%3B+Test" '.
-            'class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Code &amp; Test <a href="edit.php?pageid=&amp;section=Code+%26amp%3B+Test" '.
+            'class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Code &amp; Test <a href="edit.php?pageid=&amp;section=Code+%26amp%3B+'.
             'Test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -163,8 +163,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name using non-ASCII characters.
         $input = '= Another áéíóú瀠test =';
-        $output = '<h1><a name="toc-1"></a>Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
-            '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
+            '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
             '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -176,8 +176,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name with a URL, creole does not support linking links in a heading.
         $input = '= Another http://moodle.org test =';
-        $output = '<h1><a name="toc-1"></a>Another http://moodle.org test <a href="edit.php'.
-            '?pageid=&amp;section=Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Another http://moodle.org test <a href="edit.php'.
+            '?pageid=&amp;section=Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Another http://moodle.org test <a href="edit.php?pageid=&amp;section='.
             'Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -192,8 +192,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name using HTML entities.
         $input = '= Code & Test =';
-        $output = '<h1><a name="toc-1"></a>Code & Test <a href="edit.php?pageid=&amp;section=Code+%26+Test" '.
-            'class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Code & Test <a href="edit.php?pageid=&amp;section=Code+%26+Test" '.
+            'class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Code & Test <a href="edit.php?pageid=&amp;section=Code+%26+'.
             'Test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -205,8 +205,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name using non-ASCII characters.
         $input = '= Another áéíóú瀠test =';
-        $output = '<h1><a name="toc-1"></a>Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
-            '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
+            '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Another áéíóú瀠test <a href="edit.php?pageid=&amp;section=Another+%C'.
             '3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%A7%E2%82%AC+test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -218,8 +218,8 @@ class mod_wiki_wikiparser_test extends basic_testcase {
 
         // Test section name with a URL, nwiki does not support linking links in a heading.
         $input = '= Another http://moodle.org test =';
-        $output = '<h1><a name="toc-1"></a>Another http://moodle.org test <a href="edit.php'.
-            '?pageid=&amp;section=Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></h1>' . "\n";
+        $output = '<h3><a name="toc-1"></a>Another http://moodle.org test <a href="edit.php'.
+            '?pageid=&amp;section=Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></h3>' . "\n";
         $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
             'wiki-toc-section">1. <a href="#toc-1">Another http://moodle.org test <a href="edit.php?pageid=&amp;section='.
             'Another+http%3A%2F%2Fmoodle.org+test" class="wiki_edit_section">[edit]</a></a></p></div>';
@@ -228,6 +228,20 @@ class mod_wiki_wikiparser_test extends basic_testcase {
         $this->assertEquals($output, $actual['parsed_text']);
         $this->assertEquals($toc, $actual['toc']);
         $this->assertNotEquals(false, $section);
+
+        // Test section names when headings start with level 3.
+        $input = '<h3>Heading test</h3><h4>Subsection</h4>';
+        $output = '<h3><a name="toc-1"></a>Heading test <a href="edit.php?pageid=&amp;section=Heading+test" '.
+            'class="wiki_edit_section">[edit]</a></h3>'. "\n" . '<h4><a name="toc-2"></a>Subsection</h4>' . "\n";
+        $toc = '<div class="wiki-toc"><p class="wiki-toc-title">Table of contents</p><p class="wiki-toc-section-1 '.
+            'wiki-toc-section">1. <a href="#toc-1">Heading test <a href="edit.php?pageid=&amp;section=Heading+'.
+            'test" class="wiki_edit_section">[edit]</a></a></p><p class="wiki-toc-section-2 wiki-toc-section">'.
+            '1.1. <a href="#toc-2">Subsection</a></p></div>';
+        $section = wiki_parser_proxy::get_section($input, 'html', 'Heading test');
+        $actual = wiki_parser_proxy::parse($input, 'html');
+        $this->assertEquals($output, $actual['parsed_text']);
+        $this->assertEquals($toc, $actual['toc']);
+        $this->assertNotEquals(false, $section);
     }
 
 }
index 54d1af5..b0bd7a2 100644 (file)
@@ -130,7 +130,7 @@ try {
     $autologinguest = true;
     $setwantsurltome = true;
     $preventredirect = true;
-    require_login($course, $autologinguest, $cm, $setwantsurltome, $preventredirect);
+    require_course_login($course, $autologinguest, $cm, $setwantsurltome, $preventredirect);
 } catch (Exception $e) {
     if (isguestuser()) {
         rss_error('rsserrorguest', 'rss.xml', 0, '403 Forbidden');
index 638d4ca..23c3117 100644 (file)
     .content > div,  /* All the divs but the activities which are in a UL. */
     .activity .activityinstance {
         opacity: .5;
+    }
+    .sectionname > span,
+    .activity .activityinstance {
         margin-left: 10px;
         margin-right: 10px;
     }
index 48b1e76..9a8dcf6 100644 (file)
@@ -1,4 +1,4 @@
-.layout-option-noheader #page-header,.layout-option-nonavbar #page-navbar,.layout-option-nofooter #page-footer,.layout-option-nocourseheader .course-content-header,.layout-option-nocoursefooter .course-content-footer{display:none}.empty-region-side-pre #block-region-side-pre,.empty-region-side-post #block-region-side-post,.jsenabled.docked-region-side-post #block-region-side-post,.jsenabled.docked-region-side-pre #block-region-side-pre{display:none}.content-only #region-main.span9,.empty-region-side-post #region-bs-main-and-pre.span9,.empty-region-side-pre #region-bs-main-and-post.span9,.empty-region-side-post #region-bs-main-and-post.span9 #region-main.span8,.jsenabled.docked-region-side-post #region-bs-main-and-pre.span9,.jsenabled.docked-region-side-post #region-bs-main-and-post.span9 #region-main.span8,.jsenabled.docked-region-side-pre #region-bs-main-and-post.span9{width:100%}.empty-region-side-pre #region-bs-main-and-pre.span9 #region-main,.jsenabled.docked-region-side-pre #region-bs-main-and-pre.span9 #region-main{float:none;width:100%}.empty-region-side-pre #region-bs-main-and-post.span9 #region-main.span8,.jsenabled.docked-region-side-pre #region-bs-main-and-post.span9 #region-main.span8{float:right}.content-only #region-main-box,.content-only #region-main{width:100%}.empty-region-side-pre.used-region-side-post #region-main{width:100%}.empty-region-side-post.used-region-side-pre #region-main-box{width:100%}.jsenabled.docked-region-side-pre.empty-region-side-pre.used-region-side-post #region-main{width:100%}.jsenabled.docked-region-side-post.empty-region-side-post.used-region-side-pre #region-main-box{width:100%}.empty-region-side-post.used-region-side-pre #region-main.span8,.jsenabled.docked-region-side-post.used-region-side-pre #region-main.span8{width:74.46808511%;*width:74.41489362%}.empty-region-side-post.used-region-side-pre #block-region-side-pre.span4,.jsenabled.docked-region-side-post.used-region-side-pre #block-region-side-pre.span4{width:23.40425532%;*width:23.35106383%}.dir-ltr,.mdl-left,.dir-rtl .mdl-right{text-align:left}.dir-rtl,.mdl-right,.dir-rtl .mdl-left{text-align:right}#add,#remove,.centerpara,.mdl-align{text-align:center}a.dimmed,a.dimmed:link,a.dimmed:visited,a.dimmed_text,a.dimmed_text:link,a.dimmed_text:visited,.dimmed_text,.dimmed_text a,.dimmed_text a:link,.dimmed_text a:visited,.usersuspended,.usersuspended a,.usersuspended a:link,.usersuspended a:visited,.dimmed_category,.dimmed_category a{color:#999}.activity.label .dimmed_text{opacity:.5;filter:alpha(opacity=50)}.unlist,.unlist li,.inline-list,.inline-list li,.block .list,.block .list li,.section li.activity,.section li.movehere,.tabtree li{list-style:none;margin:0;padding:0}.inline,.inline-list li{display:inline}.notifytiny{font-size:10.5px}.notifytiny li,.notifytiny td{font-size:100%}.red,.notifyproblem{color:#b94a48}.green,.notifysuccess{color:#468847}.highlight{background:#d9edf7}.reportlink{text-align:right}a.autolink.glossary:hover{cursor:help}.collapsibleregioncaption{white-space:nowrap}.pagelayout-mydashboard.jsenabled .collapsibleregioncaption{cursor:pointer}.collapsibleregioncaption img{vertical-align:middle}.jsenabled .hiddenifjs{display:none}.visibleifjs{display:none}.jsenabled .visibleifjs{display:inline}.jsenabled .collapsibleregion{overflow:hidden}.jsenabled .collapsed .collapsibleregioninner{visibility:hidden}.collapsible-actions{display:none;text-align:right}.dir-rtl .collapsible-actions{text-align:left}.jsenabled .collapsible-actions{display:block}.collapsible-actions .collapseexpand{padding-left:20px;background:url([[pix:t/collapsed]]) 2px center no-repeat}.dir-rtl .collapsible-actions .collapseexpand{padding-right:20px;padding-left:0;background:url([[pix:t/collapsed_rtl]]) right center no-repeat}.collapsible-actions .collapse-all,.dir-rtl .collapsible-actions .collapse-all{background-image:url([[pix:t/expanded]])}.yui-overlay .yui-widget-bd{background-color:#FFEE69;border:1px solid #A6982B;border-top-color:#D4C237;color:#000000;left:0;padding:2px 5px;position:relative;top:0;z-index:1}.clearer{background:transparent;border-width:0;clear:both;display:block;height:1px;margin:0;padding:0}.bold,.warning,.errorbox .title,.pagingbar .title,.pagingbar .thispage{font-weight:bold}img.resize{height:1em;width:1em}.block img.resize,.breadcrumb img.resize{height:.9em;width:.8em}img.icon{height:16px;vertical-align:text-bottom;width:16px;padding-right:6px}.dir-rtl img.icon{padding-left:6px;padding-right:0}img.iconsmall{height:12px;margin-right:3px;vertical-align:middle;width:12px}img.iconhelp,.helplink img{height:16px;padding-left:3px;vertical-align:text-bottom;width:16px}h1 img.iconhelp,h1 img.icon,h2 img.iconhelp,h2 img.icon,h3 img.iconhelp,h3 img.icon,h4 img.iconhelp,h4 img.icon,h5 img.iconhelp,h5 img.icon,h6 img.iconhelp,h6 img.icon{vertical-align:middle;padding:4px}.dir-rtl img.iconhelp,.dir-rtl .helplink img{padding-right:3px;padding-left:0}img.iconlarge{height:24px;width:24px;vertical-align:middle}img.iconsort{vertical-align:text-bottom;padding-left:.3em;margin-bottom:.15em}.dir-rtl img.iconsort{padding-right:.3em;padding-left:0}img.icontoggle{height:17px;vertical-align:middle;width:50px}img.iconkbhelp{height:17px;width:49px}img.icon-pre,.dir-rtl img.icon-post{padding-right:3px;padding-left:0}img.icon-post,.dir-rtl img.icon-pre{padding-left:3px;padding-right:0}.boxaligncenter{margin-left:auto;margin-right:auto}.boxalignright{margin-left:auto;margin-right:0}.boxalignleft{margin-left:0;margin-right:auto}.boxwidthnarrow{width:30%}.boxwidthnormal{width:50%}.boxwidthwide{width:80%}.headermain{font-weight:bold}#maincontent{display:block;height:1px;overflow:hidden}img.uihint{cursor:help}#addmembersform table{margin-left:auto;margin-right:auto}table.flexible .emptyrow{display:none}img.emoticon{vertical-align:middle;width:15px;height:15px}form.popupform,form.popupform div{display:inline}.arrow_button input{overflow:hidden}.action-icon img.smallicon{vertical-align:text-bottom;margin:0 .3em}.no-overflow{overflow:auto;padding-bottom:1px}.pagelayout-report .no-overflow{overflow:visible}.no-overflow>.generaltable{margin-bottom:0}.accesshide{position:absolute;left:-10000px;font-weight:normal;font-size:1em}.dir-rtl .accesshide{top:-30000px;left:auto}span.hide,div.hide{display:none}a.skip-block,a.skip{position:absolute;top:-1000em;font-size:.85em;text-decoration:none}a.skip-block:focus,a.skip-block:active,a.skip:focus,a.skip:active{position:static;display:block}.skip-block-to{display:block;height:1px;overflow:hidden}.addbloglink{text-align:center}.blog_entry .audience{text-align:right;padding-right:4px}.blog_entry .tags{margin-top:15px}.blog_entry .tags .action-icon img.smallicon{height:16px;width:16px}.blog_entry .content{margin-left:43px}#page-group-index #groupeditform{text-align:center}#doc-contents h1{margin:1em 0 0 0}#doc-contents ul{margin:0;padding:0;width:90%}#doc-contents ul li{list-style-type:none}.groupmanagementtable td{vertical-align:top}.groupmanagementtable #existingcell,.groupmanagementtable #potentialcell{width:42%}.groupmanagementtable #buttonscell{width:16%}.groupmanagementtable #buttonscell p.arrow_button input{width:auto;min-width:80%;margin:0 auto}.groupmanagementtable #removeselect_wrapper,.groupmanagementtable #addselect_wrapper{width:100%}.groupmanagementtable #removeselect_wrapper label,.groupmanagementtable #addselect_wrapper label{font-weight:normal}.dir-rtl .groupmanagementtable p{text-align:right}#group-usersummary{width:14em}.groupselector{margin-top:3px;margin-bottom:3px;display:inline-block}.groupselector label{display:inline-block}.loginbox{margin:15px;overflow:visible}.loginbox.twocolumns{margin:15px}.loginbox h2,.loginbox .subcontent{margin:5px;padding:10px;text-align:center}.loginbox .loginpanel .desc{margin:0;padding:0;margin-bottom:5px;margin-top:15px}.loginbox .signuppanel .subcontent{text-align:left}.dir-rtl .loginbox .signuppanel .subcontent{text-align:right}.loginbox .loginsub{margin-left:0;margin-right:0}.loginbox .guestsub,.loginbox .forgotsub,.loginbox .potentialidps{margin:5px 12%}.loginbox .potentialidps .potentialidplist{margin-left:40%}.loginbox .potentialidps .potentialidplist div{text-align:left}.loginbox .loginform{margin-top:1em;text-align:left}.loginbox .loginform .form-label{float:left;text-align:right;width:49%;white-space:nowrap}.loginbox .loginform .form-input{float:right;width:50%}.loginbox .loginform .form-input input{width:6em}.loginbox .signupform{margin-top:1em;text-align:center}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{width:48%;border:0;margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;float:left;margin-left:2.76243%;min-height:30px;margin-bottom:-2000px;padding-bottom:2000px}.dir-rtl .loginbox.twocolumns .loginpanel,.dir-rtl .loginbox.twocolumns .signuppanel{float:right}.loginbox .potentialidp .smallicon{vertical-align:text-bottom;margin:0 .3em}.notepost{margin-bottom:1em}.notepost .userpicture{float:left;margin-right:5px}.notepost .content,.notepost .footer{clear:both}.notesgroup{margin-left:20px}.path-my .coursebox .overview{margin:15px 30px 10px 30px}.path-my .coursebox .info{float:none;margin:0}.mod_introbox{padding:10px}table.mod_index{width:100%}.comment-ctrl{font-size:12px;display:none;margin:0;padding:0}.comment-ctrl h5{margin:0;padding:5px}.comment-area{max-width:400px;padding:5px}.comment-area textarea{width:100%;overflow:auto}.comment-area textarea.fullwidth{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.comment-area .fd{text-align:right}.comment-meta span{color:gray}.comment-link img{vertical-align:text-bottom}.comment-list{font-size:11px;overflow:auto;list-style:none;padding:0;margin:0}.comment-list li{margin:2px;list-style:none;margin-bottom:5px;clear:both;padding:.3em;position:relative}.comment-list li.first{display:none}.comment-paging{text-align:center}.comment-paging .pageno{padding:2px}.comment-paging .curpage{border:1px solid #CCC}.comment-message .picture{width:20px;float:left}.dir-rtl .comment-message .picture{float:right}.comment-message .text{margin:0;padding:0}.comment-message .text p{padding:0;margin:0 18px 0 0}.comment-delete{position:absolute;top:0;right:0;margin:.3em}.dir-rtl .comment-delete{position:absolute;left:0;right:auto;margin:.3em}.comment-report-selectall{display:none}.comment-link{display:none}.jsenabled .comment-link{display:block}.jsenabled .showcommentsnonjs{display:none}.jsenabled .comment-report-selectall{display:inline}.completion-expired{background:#f2dede}.completion-expected{font-size:10.5px}.completion-sortchoice,.completion-identifyfield{font-size:10.5px;vertical-align:bottom}.completion-progresscell{text-align:right}.completion-expired .completion-expected{font-weight:bold}img.user-image{height:100px;width:100px}#tag-search-box{text-align:center;margin:10px auto}.path-tag .tag-index-items .tagarea{border:1px solid #E3E3E3;border-radius:4px;padding:10px;margin-top:10px}.path-tag .tag-index-items .tagarea h3{display:block;padding:3px 0 10px 0;margin:0;font-size:1.1em;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase;word-wrap:break-word;border-bottom:solid 1px #E3E3E3;margin-bottom:10px}.path-tag .tagarea .controls,.path-tag .tagarea .taggeditems{*zoom:1}.path-tag .tagarea .controls:before,.path-tag .tagarea .taggeditems:before,.path-tag .tagarea .controls:after,.path-tag .tagarea .taggeditems:after{display:table;content:"";line-height:0}.path-tag .tagarea .controls:after,.path-tag .tagarea .taggeditems:after{clear:both}.path-tag .tagarea .controls,.path-tag .tag-backtoallitems{text-align:center}.path-tag .tagarea .controls .gotopage.nextpage{float:right}.path-tag .tagarea .controls .gotopage.prevpage{float:left}.path-tag .tagarea .controls .exclusivemode{display:inline-block}.dir-rtl.path-tag .tagarea .controls .gotopage.nextpage{float:left}.dir-rtl.path-tag .tagarea .controls .gotopage.prevpage{float:right}.path-tag .tagarea .controls.controls-bottom{margin-top:5px}.path-tag .tagarea .controls .gotopage.nextpage::after{padding-right:5px;padding-left:5px;content:"»"}.path-tag .tagarea .controls .gotopage.prevpage::before{padding-right:5px;padding-left:5px;content:"«"}span.flagged-tag,tr.flagged-tag,span.flagged-tag a,tr.flagged-tag a{color:#b94a48}.tag-management-table td,.tag-management-table th{vertical-align:middle;padding:4px}.tag-management-table tr td.tageditingon .displaytagname,.tag-management-table td .edittagname{display:none}.tag-management-table tr td.tageditingon .edittagname{display:inherit;position:relative}.tag-management-table tr td.tageditingon .edittagname .editinstructions{margin-right:-300px;margin-left:0}.tag-management-table tr td .tagnameedit img{opacity:.2}.tag-management-table tr:hover td .tagnameedit img,.tag-management-table tr td .tagnameedit:focus img{opacity:1}.tag-management-table tr:hover td.tageditingon .tagnameedit img{opacity:.2}.path-tag .tag-relatedtags{padding-top:10px}.path-tag .tag-management-box{text-align:right}.path-tag .tag-index-toc{padding:10px;text-align:center}.path-tag .tag-index-toc li,.path-tag .tag-management-box li{margin-left:5px;margin-right:5px}.path-tag .tag-management-box li a.edittag{background-image:url([[pix:moodle|i/settings]])}.path-tag .tag-management-box li a.flagasinappropriate{background-image:url([[pix:moodle|i/flagged]])}.path-tag .tag-management-box li a.removefrommyinterests{background-image:url([[pix:moodle|t/delete]])}.path-tag .tag-management-box li a.addtomyinterests{background-image:url([[pix:moodle|t/add]])}.path-tag .tag-management-box li a{background-repeat:no-repeat;background-position:left;padding-left:17px}.tag_feed.media-list .media .itemimage{float:left}.dir-rtl .tag_feed.media-list .media .itemimage{float:right}.tag_feed.media-list .media .itemimage img{height:35px;width:35px}.tag_feed.media-list .media .media-body{padding-right:10px;padding-left:10px}.tag_feed .media .muted a{color:#999}.tag_cloud{text-align:center}.tag_cloud .inline-list li{padding:0 .2em}.tag_cloud .tag_overflow{margin-top:1em;font-style:italic}.tag_cloud .s20{font-size:2.7em}.tag_cloud .s19{font-size:2.6em}.tag_cloud .s18{font-size:2.5em}.tag_cloud .s17{font-size:2.4em}.tag_cloud .s16{font-size:2.3em}.tag_cloud .s15{font-size:2.2em}.tag_cloud .s14{font-size:2.1em}.tag_cloud .s13{font-size:2em}.tag_cloud .s12{font-size:1.9em}.tag_cloud .s11{font-size:1.8em}.tag_cloud .s10{font-size:1.7em}.tag_cloud .s9{font-size:1.6em}.tag_cloud .s8{font-size:1.5em}.tag_cloud .s7{font-size:1.4em}.tag_cloud .s6{font-size:1.3em}.tag_cloud .s5{font-size:1.2em}.tag_cloud .s4{font-size:1.1em}.tag_cloud .s3{font-size:1em}.tag_cloud .s2{font-size:.9em}.tag_cloud .s1{font-size:.8em}.tag_cloud .s0{font-size:.7em}.tag_list ul{display:inline}.tag_list.hideoverlimit .overlimit{display:none}.tag_list .tagmorelink{display:none}.tag_list.hideoverlimit .tagmorelink{display:inline}.tag_list.hideoverlimit .taglesslink{display:none}#webservice-doc-generator td{text-align:left;border:0 solid black}.smartselect{position:absolute}.smartselect .smartselect_mask{background-color:#fff}.smartselect ul{padding:0;margin:0}.smartselect ul li{list-style:none}.smartselect .smartselect_menu{margin-right:5px}.safari .smartselect .smartselect_menu{margin-left:2px}.smartselect .smartselect_menu,.smartselect .smartselect_submenu{border:1px solid #000;background-color:#FFF;display:none}.smartselect .smartselect_menu.visible,.smartselect .smartselect_submenu.visible{display:block}.smartselect .smartselect_menu_content ul li{position:relative;padding:2px 5px}.smartselect .smartselect_menu_content ul li a{color:#333;text-decoration:none}.smartselect .smartselect_menu_content ul li a.selectable{color:inherit}.smartselect .smartselect_submenuitem{background-image:url([[pix:moodle|t/collapsed]]);background-repeat:no-repeat;background-position:100%}.smartselect.spanningmenu .smartselect_submenu{position:absolute;top:-1px;left:100%}.smartselect.spanningmenu .smartselect_submenu a{white-space:nowrap;padding-right:16px}.smartselect.spanningmenu .smartselect_menu_content ul li a.selectable:hover{text-decoration:underline}.smartselect.compactmenu .smartselect_submenu{position:relative;margin:2px -3px;margin-left:10px;display:none;border-width:0;z-index:1010}.smartselect.compactmenu .smartselect_submenu.visible{display:block}.smartselect.compactmenu .smartselect_menu{z-index:1000;overflow:hidden}.smartselect.compactmenu .smartselect_submenu .smartselect_submenu{z-index:1020}.smartselect.compactmenu .smartselect_submenuitem:hover>.smartselect_menuitem_label{font-weight:bold}#page-admin-registration-register .registration_textfield{width:300px}.userenrolment{width:100%;border-collapse:collapse}.userenrolment tr{vertical-align:top}.userenrolment td{padding:0;height:41px}.userenrolment .subfield{margin-right:5px}.userenrolment .col_userdetails .subfield_picture{float:left}.userenrolment .col_lastseen{width:150px}.userenrolment .col_role{width:262px}.userenrolment .col_role .roles,.userenrolment .col_group .groups{margin-right:30px}.userenrolment .col_role .role,.userenrolment .col_group .group{float:left;padding:3px;margin:3px;white-space:nowrap}.userenrolment .col_role .role a,.userenrolment .col_group .group a{margin-left:3px;cursor:pointer}.userenrolment .col_role .addrole,.userenrolment .col_group .addgroup{float:right;padding:3px;margin:3px}.userenrolment .col_role .addrole>*:hover,.userenrolment .col_group .addgroup>*:hover{border-bottom:1px solid #666}.userenrolment .col_role .addrole img,.userenrolment .col_group .addgroup img{vertical-align:baseline}.dir-rtl .userenrolment .col_role .role{float:right}.userenrolment .hasAllRoles .col_role .addrole{display:none}.userenrolment .col_enrol .enrolment{float:left;padding:3px;margin:3px}.userenrolment .col_enrol .enrolment a{float:right;margin-left:3px}#page-enrol-users .enrol_user_buttons{float:right}#page-enrol-users .enrol_user_buttons .enrolusersbutton{display:inline}#page-enrol-users .enrol_user_buttons .enrolusersbutton div,#page-enrol-users .enrol_user_buttons .enrolusersbutton form{display:inline;margin-right:0}#page-enrol-users #filterform{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3;padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:inline-block}#page-enrol-users #filterform blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}#page-enrol-users #filterform .fitem{display:inline-block;line-height:40px;margin-right:.3em;white-space:nowrap}#page-enrol-users #filterform .fitem label{display:inline;line-height:20px;padding-right:.3em}#page-enrol-users #filterform .fitem :before,#page-enrol-users #filterform .fitem :after{display:inline}#page-enrol-users #filterform div,#page-enrol-users #filterform fieldset{display:inline;float:none;clear:none;width:auto;margin:0}#page-enrol-users #filterform select,#page-enrol-users #filterform .ftext input{width:7em}#page-enrol-users #filterform input,#page-enrol-users #filterform select{margin-bottom:0}#page-enrol-users .user-enroller-panel .uep-search-results .user .details{width:237px}#page-enrol-users .user-enroller-panel .uep-search-results .cohort .details{width:237px}.dir-rtl#page-enrol-users .col_userdetails .subfield_picture{float:right}.dir-rtl#page-enrol-users .enrol_user_buttons{float:left}.dir-rtl#page-enrol-users .enrol_user_buttons .enrolusersbutton{margin-left:0;margin-right:1em}.dir-rtl#page-enrol-users .enrol_user_buttons .enrolusersbutton div{margin-left:0}.dir-rtl#page-enrol-users #filterform .fitem{margin-right:0;margin-left:.3em}.dir-rtl#page-enrol-users #filterform .fitem label{padding-right:0;padding-left:.3em}#page-enrol-users .enrol-users-page-action input{margin-left:0}.dir-rtl .headermain{float:right}.dir-rtl .headermenu{float:left}.dir-rtl .loginbox .loginform .form-label{float:right;text-align:left}.dir-rtl .loginbox .loginform .form-input{text-align:right;margin-right:1%}.dir-rtl .yui3-menu-hidden{left:0}#page-admin-roles-define.dir-rtl #rolesform .felement{margin-right:180px}#page-message-edit.dir-rtl table.generaltable th.c0{text-align:right}.corelightbox{background-color:#CCC;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.corelightbox img{position:fixed;top:50%;left:50%}.mod-indent-outer{display:table}.mod-indent{display:table-cell}.label .mod-indent{float:left;padding-top:20px}.mod-indent-1{width:30px}.mod-indent-2{width:60px}.mod-indent-3{width:90px}.mod-indent-4{width:120px}.mod-indent-5{width:150px}.mod-indent-6{width:180px}.mod-indent-7{width:210px}.mod-indent-8{width:240px}.mod-indent-9{width:270px}.mod-indent-10{width:300px}.mod-indent-11{width:330px}.mod-indent-12{width:360px}.mod-indent-13{width:390px}.mod-indent-14{width:420px}.mod-indent-15{width:450px}.mod-indent-16{width:480px}.mod-indent-huge{width:480px}.resourcecontent .mediaplugin_mp3 object{height:25px;width:600px}.resourcecontent audio.mediaplugin_html5audio{width:600px}.resourceimage{max-width:100%}.mediaplugin_mp3 object{height:15px;width:300px}audio.mediaplugin_html5audio{width:300px}.core_media_preview.pagelayout-embedded #content{padding:0}.core_media_preview.pagelayout-embedded #maincontent{height:0}body#page-lib-editor-tinymce-plugins-moodlemedia-preview{padding:0;margin:0;min-width:0;background:none}.dir-rtl .ygtvtn,.dir-rtl .ygtvtm,.dir-rtl .ygtvtmh,.dir-rtl .ygtvtmhh,.dir-rtl .ygtvtp,.dir-rtl .ygtvtph,.dir-rtl .ygtvtphh,.dir-rtl .ygtvln,.dir-rtl .ygtvlm,.dir-rtl .ygtvlmh,.dir-rtl .ygtvlmhh,.dir-rtl .ygtvlp,.dir-rtl .ygtvlph,.dir-rtl .ygtvlphh,.dir-rtl .ygtvdepthcell,.dir-rtl .ygtvok,.dir-rtl .ygtvok:hover,.dir-rtl .ygtvcancel,.dir-rtl .ygtvcancel:hover{width:18px;height:22px;background-image:url([[pix:theme|yui2-treeview-sprite-rtl]]);background-repeat:no-repeat;cursor:pointer}.dir-rtl .ygtvtn{background-position:0 -5600px}.dir-rtl .ygtvtm{background-position:0 -4000px}.dir-rtl .ygtvtmh,.dir-rtl .ygtvtmhh{background-position:0 -4800px}.dir-rtl .ygtvtp{background-position:0 -6400px}.dir-rtl .ygtvtph,.dir-rtl .ygtvtphh{background-position:0 -7200px}.dir-rtl .ygtvln{background-position:0 -1600px}.dir-rtl .ygtvlm{background-position:0 0}.dir-rtl .ygtvlmh,.dir-rtl .ygtvlmhh{background-position:0 -800px}.dir-rtl .ygtvlp{background-position:0 -2400px}.dir-rtl .ygtvlph,.dir-rtl .ygtvlphh{background-position:0 -3200px}.dir-rtl .ygtvdepthcell{background-position:0 -8000px}.dir-rtl .ygtvok{background-position:0 -8800px}.dir-rtl .ygtvok:hover{background-position:0 -8844px}.dir-rtl .ygtvcancel{background-position:0 -8822px}.dir-rtl .ygtvcancel:hover{background-position:0 -8866px}.dir-rtl.yui-skin-sam .yui-panel .hd{text-align:right}.dir-rtl .yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd{text-align:right}.dir-rtl .clearlooks2.ie9 .mceAlert .mceMiddle span,.dir-rtl .clearlooks2 .mceConfirm .mceMiddle span{top:44px}.dir-rtl .o2k7Skin table,.dir-rtl .o2k7Skin tbody,.dir-rtl .o2k7Skin a,.dir-rtl .o2k7Skin img,.dir-rtl .o2k7Skin tr,.dir-rtl .o2k7Skin div,.dir-rtl .o2k7Skin td,.dir-rtl .o2k7Skin iframe,.dir-rtl .o2k7Skin span,.dir-rtl .o2k7Skin *,.dir-rtl .o2k7Skin .mceText,.dir-rtl .o2k7Skin .mceListBox .mceText{text-align:right}.path-rating .ratingtable{width:100%;margin-bottom:1em}.path-rating .ratingtable th.rating{width:100%}.path-rating .ratingtable td.rating,.path-rating .ratingtable td.time{white-space:nowrap;text-align:center}.initialbar a,.initialbar strong{padding-left:3px;padding-right:3px}.moodle-dialogue-base .moodle-dialogue-lightbox{background-color:#AAA}.moodle-dialogue-base .hidden,.moodle-dialogue-base .moodle-dialogue-hidden{display:none}.no-scrolling{overflow:hidden}.moodle-dialogue-base .moodle-dialogue-fullscreen{left:0;top:0;right:0;bottom:-50px;position:fixed}.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content{overflow:auto}.moodle-dialogue-base .moodle-dialogue-fullscreen .closebutton{width:28px;height:16px;background-size:100%}.moodle-dialogue-base .moodle-dialogue{padding:0;margin:0;background:none;border:none;z-index:600;outline:#000 dotted 0}.moodle-dialogue-base .moodle-dialogue-wrap{margin-top:-3px;margin-left:-3px;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd,.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd.yui3-widget-hd{margin:0;padding:5px;font-size:12px;font-weight:normal;letter-spacing:1px;color:#333;text-align:center;text-shadow:1px 1px 1px #fff;-webkit-border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;border-radius:10px 10px 0 0;border-bottom:1px solid #bbb;background:#ccc;background-color:#ebebeb;background-image:-moz-linear-gradient(top, #fff, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc));background-image:-webkit-linear-gradient(top, #fff, #ccc);background-image:-o-linear-gradient(top, #fff, #ccc);background-image:linear-gradient(to bottom, #fff, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffcccccc', GradientType=0);filter:0}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h1{margin:0;padding:0;display:inline;font-size:100%;font-weight:bold}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons{padding:5px}.moodle-dialogue-base .closebutton{width:25px;height:15px;float:right;vertical-align:middle;display:inline-block;cursor:pointer;padding:0;background-image:url([[pix:theme|sprite]]);background-repeat:no-repeat;border-style:none}.dir-rtl .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons{left:0;right:auto}.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd{padding:1em;line-height:2em;color:#555;font-size:12px}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-content{padding:0;background:#FFF}.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-hd{padding:10px;font-size:16px}.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content{overflow:auto;position:absolute;top:0;bottom:50px;left:0;right:0;margin:0;border:0}.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-hd,.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-wrap{border-radius:0}.moodle-dialogue-confirm .confirmation-dialogue{text-align:center}.moodle-dialogue-confirm .confirmation-dialogue input{text-align:center}.moodle-dialogue-exception .moodle-exception-message{text-align:center}.moodle-dialogue-exception .moodle-exception-param label{font-weight:bold}.moodle-dialogue-exception .param-stacktrace label{background-color:#EEE;border:1px solid #ccc;border-bottom-width:0}.moodle-dialogue-exception .param-stacktrace pre{border:1px solid #ccc;background-color:#fff}.moodle-dialogue-exception .param-stacktrace .stacktrace-file{color:navy;font-size:11.9px}.moodle-dialogue-exception .param-stacktrace .stacktrace-line{color:#b94a48;font-size:11.9px}.moodle-dialogue-exception .param-stacktrace .stacktrace-call{color:#333;font-size:90%;border-bottom:1px solid #eee}.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft{padding:0;margin:.7em 1em;text-align:right;background-color:#FFF;font-size:12px}.moodle-dialogue-confirm .confirmation-message{margin:.5em 1em}.moodle-dialogue-confirm .confirmation-dialogue input{min-width:80px}.moodle-dialogue-exception .moodle-exception-message{margin:1em}.moodle-dialogue-exception .moodle-exception-param{margin-bottom:.5em}.moodle-dialogue-exception .moodle-exception-param label{width:150px}.moodle-dialogue-exception .param-stacktrace label{display:block;margin:0;padding:4px 1em}.moodle-dialogue-exception .param-stacktrace pre{display:block;height:200px;overflow:auto}.moodle-dialogue-exception .param-stacktrace .stacktrace-file{display:inline-block;margin:4px 0}.moodle-dialogue-exception .param-stacktrace .stacktrace-line{display:inline-block;width:50px;margin:4px 1em}.moodle-dialogue-exception .param-stacktrace .stacktrace-call{padding-left:25px;margin-bottom:4px;padding-bottom:4px}.moodle-dialogue .moodle-dialogue-bd .content-lightbox{opacity:.75;filter:alpha(opacity=75);width:100%;height:100%;top:0;left:0;background-color:white;text-align:center;padding:10% 0}.moodle-dialogue .tooltiptext{max-height:300px}.moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip{z-index:3001}.moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip .moodle-dialogue-bd{overflow:auto}#page-question-edit.dir-rtl a.container-close{right:auto;left:6px}.chooserdialoguebody,.choosertitle{display:none}.moodle-dialogue.chooserdialogue .moodle-dialogue-content .moodle-dialogue-ft{margin:0}.chooserdialogue .moodle-dialogue-wrap .moodle-dialogue-bd{padding:0;background:#F2F2F2;-webkit-border-bottom-right-radius:10px;-moz-border-radius-bottomright:10px;border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px;-moz-border-radius-bottomleft:10px;border-bottom-left-radius:10px}.choosercontainer #chooseform .submitbuttons{padding:.7em 0;text-align:center}@media (max-height:639px){.ios.safari .choosercontainer #chooseform .submitbuttons{padding:45px 0}}.choosercontainer #chooseform .submitbuttons input{min-width:100px;margin:0 .5em}.choosercontainer #chooseform .options{position:relative;border-bottom:1px solid #BBBBBB}.jschooser .choosercontainer #chooseform .alloptions{overflow-x:hidden;overflow-y:auto;max-width:20.3em;-webkit-box-shadow:inset 0 0 30px 0 #ccc;-moz-box-shadow:inset 0 0 30px 0 #ccc;box-shadow:inset 0 0 30px 0 #ccc}.dir-rtl.jschooser .choosercontainer #chooseform .alloptions{max-width:18.3em}.choosercontainer #chooseform .moduletypetitle,.choosercontainer #chooseform .option,.choosercontainer #chooseform .nonoption{margin-bottom:0;padding:0 1.6em 0 1.6em}.choosercontainer #chooseform .moduletypetitle{text-transform:uppercase;padding-top:1.2em;padding-bottom:.4em}.choosercontainer #chooseform .option .typename,.choosercontainer #chooseform .option span.modicon img.icon,.choosercontainer #chooseform .nonoption .typename,.choosercontainer #chooseform .nonoption span.modicon img.icon{padding:0 0 0 .5em}.dir-rtl .choosercontainer #chooseform .option .typename,.dir-rtl .choosercontainer #chooseform .option span.modicon img.icon,.dir-rtl .choosercontainer #chooseform .nonoption .typename,.dir-rtl .choosercontainer #chooseform .nonoption span.modicon img.icon{padding:0 .5em 0 0}.chooserdialogue-course-modchooser .choosercontainer #chooseform .option span.modicon img.icon,.chooserdialogue-course-modchooser .choosercontainer #chooseform .nonoption span.modicon img.icon{height:24px;width:24px}.choosercontainer #chooseform .option input[type=radio],.choosercontainer #chooseform .option span.typename,.choosercontainer #chooseform .option span.modicon{vertical-align:middle}.choosercontainer #chooseform .option label{display:block;padding:.3em 0 .1em 0;border-bottom:1px solid #FFFFFF}.choosercontainer #chooseform .nonoption{padding-left:2.7em;padding-top:.3em;padding-bottom:.1em}.dir-rtl .choosercontainer #chooseform .nonoption{padding-right:2.7em;padding-left:0}.choosercontainer #chooseform .subtype{margin-bottom:0;padding:0 1.6em 0 3.2em}.dir-rtl .choosercontainer #chooseform .subtype{padding:0 3.2em 0 1.6em}.choosercontainer #chooseform .subtype .typename{margin:0 0 0 .2em}.dir-rtl .choosercontainer #chooseform .subtype .typename{margin:0 .2em 0 0}.jschooser .choosercontainer #chooseform .instruction,.jschooser .choosercontainer #chooseform .typesummary{display:none;position:absolute;top:0;right:0;bottom:0;left:20.3em;margin:0;padding:1.6em;background-color:#fff;overflow-x:hidden;overflow-y:auto;line-height:2em}.dir-rtl.jschooser .choosercontainer #chooseform .instruction,.dir-rtl.jschooser .choosercontainer #chooseform .typesummary{left:0;right:18.5em;border-right:1px solid grey}.jschooser .choosercontainer #chooseform .instruction,.choosercontainer #chooseform .selected .typesummary{display:block}.choosercontainer #chooseform .selected{background-color:#fff;-webkit-box-shadow:0 0 10px 0 #ccc;-moz-box-shadow:0 0 10px 0 #ccc;box-shadow:0 0 10px 0 #ccc}.section-modchooser-link img.smallicon{padding:3px}.formlistingradio{padding-bottom:25px;padding-right:10px}.formlistinginputradio{float:left}.formlistingmain{min-height:225px}.formlisting{position:relative;margin:15px 0;padding:1px 19px 14px;background-color:white;border:1px solid #DDD;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.formlistingmore{position:absolute;cursor:pointer;bottom:-1px;right:-1px;padding:3px 7px;font-size:12px;font-weight:bold;background-color:whiteSmoke;border:1px solid #ddd;color:#9DA0A4;-webkit-border-radius:4px 0 4px 0;-moz-border-radius:4px 0 4px 0;border-radius:4px 0 4px 0}.formlistingall{margin:15px 0;padding:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.formlistingrow{cursor:pointer;border-bottom:1px solid;border-color:#E1E1E8;border-left:1px solid #E1E1E8;border-right:1px solid #E1E1E8;background-color:#F7F7F9;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;padding:6px;top:50%;left:50%;min-height:34px;float:left;width:150px}body.jsenabled .formlistingradio{display:none}body.jsenabled .formlisting{display:block}table.collection{width:100%;margin-bottom:20px;border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}table.collection th,table.collection td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}table.collection th{font-weight:bold}table.collection thead th{vertical-align:bottom}table.collection caption+thead tr:first-child th,table.collection caption+thead tr:first-child td,table.collection colgroup+thead tr:first-child th,table.collection colgroup+thead tr:first-child td,table.collection thead:first-child tr:first-child th,table.collection thead:first-child tr:first-child td{border-top:0}table.collection tbody+tbody{border-top:2px solid #ddd}table.collection .table{background-color:#fff}table.collection th,table.collection td{border-left:1px solid #ddd}table.collection caption+thead tr:first-child th,table.collection caption+tbody tr:first-child th,table.collection caption+tbody tr:first-child td,table.collection colgroup+thead tr:first-child th,table.collection colgroup+tbody tr:first-child th,table.collection colgroup+tbody tr:first-child td,table.collection thead:first-child tr:first-child th,table.collection tbody:first-child tr:first-child th,table.collection tbody:first-child tr:first-child td{border-top:0}table.collection thead:first-child tr:first-child>th:first-child,table.collection tbody:first-child tr:first-child>td:first-child,table.collection tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}table.collection thead:first-child tr:first-child>th:last-child,table.collection tbody:first-child tr:first-child>td:last-child,table.collection tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}table.collection thead:last-child tr:last-child>th:first-child,table.collection tbody:last-child tr:last-child>td:first-child,table.collection tbody:last-child tr:last-child>th:first-child,table.collection tfoot:last-child tr:last-child>td:first-child,table.collection tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}table.collection thead:last-child tr:last-child>th:last-child,table.collection tbody:last-child tr:last-child>td:last-child,table.collection tbody:last-child tr:last-child>th:last-child,table.collection tfoot:last-child tr:last-child>td:last-child,table.collection tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}table.collection tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}table.collection tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}table.collection caption+thead tr:first-child th:first-child,table.collection caption+tbody tr:first-child td:first-child,table.collection colgroup+thead tr:first-child th:first-child,table.collection colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}table.collection caption+thead tr:first-child th:last-child,table.collection caption+tbody tr:first-child td:last-child,table.collection colgroup+thead tr:first-child th:last-child,table.collection colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}table.collection tbody>tr:nth-child(odd)>td,table.collection tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}table.collection .name{text-align:left;vertical-align:middle}table.collection .awards{width:10%;text-align:center;vertical-align:middle}table.collection .criteria{width:40%;text-align:left;vertical-align:top}table.collection .badgeimage,table.collection .status{width:15%;text-align:center;vertical-align:middle}table.collection .description{width:25%;text-align:left}.dir-rtl table.collection .name,.dir-rtl table.collection .criteria,.dir-rtl table.collection .description{text-align:right}table.collection .actions{width:11em;text-align:center;vertical-align:middle}a.criteria-action{padding:0 3px;float:right}div.criteria-description{padding:10px 15px;margin:5px 0;background:none repeat scroll 0 0 #f9f9f9;border:1px solid #EEE}ul.badges{margin:0;list-style:none}.badges li{position:relative;display:inline-block;padding-top:1em;text-align:center;vertical-align:top;width:150px}.badges li .badge-name{display:block;padding:5px}.badges li>img{position:absolute}.badges li .badge-image{width:100px;height:100px;left:10px;top:0;z-index:1}.badges li .badge-actions{position:relative}.badges li .expireimage{width:100px;height:100px;left:25px;top:0;position:absolute;z-index:10;opacity:.85}#badge-image{background-color:transparent;padding:0;position:relative;min-width:100px;width:20%;display:inline-block;vertical-align:top;margin-top:17px}#badge-image .expireimage{width:100px;height:100px;left:0;top:0;opacity:.85;filter:alpha(opacity=85);position:absolute;z-index:10}#badge-image .singlebutton{padding-top:5px}#badge-image .singlebutton input{margin-left:0}.dir-rtl #badge-image{float:right}.dir-rtl #badge-image .expireimage{left:41px}#badge-details{display:inline-block;width:79%}#badge-overview dl,#badge-details dl{margin:0}#badge-overview dl dt,#badge-details dl dt,#badge-overview dl dd,#badge-details dl dd{vertical-align:top;padding:3px 0}#badge-overview dl dt,#badge-details dl dt{clear:both;display:inline-block;width:20%;min-width:100px}#badge-overview dl dd,#badge-details dl dd{display:inline-block;width:79%;margin-left:1%}.badge-profile{vertical-align:top}.connected{color:#468847}.notconnected{color:#b94a48}.connecting{color:#8a6d3b}#page-badges-award .recipienttable tr td{vertical-align:top}#page-badges-award .recipienttable tr td.actions .actionbutton{margin:.3em 0;padding:.5em 0;width:100%}#page-badges-award .recipienttable tr td.existing,#page-badges-award .recipienttable tr td.potential{width:42%}#issued-badge-table .activatebadge{display:inline-block}.statusbox.active{background-color:#dff0d8}.statusbox.inactive{background-color:#fcf8e3}.statusbox{text-align:center;margin-bottom:5px;padding:5px}.statusbox .activatebadge{display:inline-block}.statusbox .activatebadge input[type=submit]{margin:3px}.activatebadge{margin:0;text-align:left;vertical-align:middle}.dir-rtl .activatebadge{text-align:right}img#persona_signin{cursor:pointer}.addcourse{float:right}.invisiblefieldset{display:inline;margin:0;padding:0;border-width:0}.breadcrumb-nav{float:left;margin-bottom:10px}.dir-rtl .breadcrumb-nav{float:right}.breadcrumb-button .singlebutton div{margin-right:0}.breadcrumb-nav .breadcrumb{margin:0}.page-context-header{overflow:hidden}.page-context-header .page-header-image,.page-context-header .page-header-headings{display:block;position:relative}.page-context-header .page-header-image{margin-bottom:1em}.page-context-header .page-header-headings{margin-top:30px;margin-bottom:10px}.page-context-header .page-header-headings h1{display:block}.page-context-header .page-header-headings,.page-context-header .header-button-group{position:relative;line-height:24px;vertical-align:middle}.page-context-header .header-button-group{display:block}.page-context-header .header-button-group a{position:relative;top:-0.4em}.dir-ltr .page-context-header .page-header-image{float:left;margin-right:1em}.dir-ltr .page-context-header .header-button-group{float:left}.dir-rtl .page-context-header .page-header-image{float:right;margin-left:1em}.dir-rtl .page-context-header .header-button-group{float:right}.moodle-actionmenu,.moodle-actionmenu>ul,.moodle-actionmenu>ul>li{display:inline-block}.moodle-actionmenu ul{padding:0;margin:0;list-style-type:none}.section_action_menu .moodle-actionmenu ul.menubar{margin:0}.section_action_menu .moodle-actionmenu ul.menu{margin:0 10px 10px 0}.moodle-actionmenu .toggle-display,.moodle-actionmenu .menu-action-text{display:none}.jsenabled .moodle-actionmenu[data-enhance]{display:block}.jsenabled .moodle-actionmenu[data-enhance] .menu{display:none}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display{display:inline;opacity:.5;filter:alpha(opacity=50)}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu{display:block;margin-left:4px;padding-left:4px;padding-right:4px}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .iconsmall,.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .smallicon{margin:4px 4px 4px 0;padding:8px 4px 0 2px;vertical-align:text-bottom}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret{margin-top:8px;margin-left:2px;border-top-color:#777}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret:hover,.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret:active{border-top-color:#555}.jsenabled .moodle-actionmenu[data-enhanced] .toggle-display{opacity:1;filter:alpha(opacity=100)}.jsenabled .moodle-actionmenu[data-enhanced] .menu-action-text{display:inline}.jsenabled.dir-rtl .moodle-actionmenu[data-enhance] .toggle-display.textmenu{margin-left:initial;margin-right:4px}.jsenabled.dir-rtl .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret{margin-left:initial;margin-right:2px}.moodle-actionmenu[data-enhanced].show{position:relative}.moodle-actionmenu[data-enhanced].show .menu{display:block;position:absolute;text-align:left;background-color:#fff;border:1px solid rgba(0,0,0,0.2);z-index:1000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}.moodle-actionmenu[data-enhanced].show .menu a{display:block;color:#333;padding:2px 1em 2px 28px}.moodle-actionmenu[data-enhanced].show .menu a:hover{color:#fff;background-color:#0070a8}.moodle-actionmenu[data-enhanced].show .menu a:first-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.moodle-actionmenu[data-enhanced].show .menu a:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.moodle-actionmenu[data-enhanced].show .menu a.hidden{display:none}.moodle-actionmenu[data-enhanced].show .menu img{vertical-align:middle}.moodle-actionmenu[data-enhanced].show .menu .iconsmall,.moodle-actionmenu[data-enhanced].show .menu .smallicon{margin:4px 4px 4px -24px;padding:4px}.moodle-actionmenu[data-enhanced].show .menu>li{display:block}.moodle-actionmenu[data-enhanced].show .menu.align-tl-bl{top:100%;left:0;margin-top:4px}.moodle-actionmenu[data-enhanced].show .menu.align-tr-bl{top:100%;right:100%}.moodle-actionmenu[data-enhanced].show .menu.align-bl-bl{bottom:100%;left:0}.moodle-actionmenu[data-enhanced].show .menu.align-br-bl{bottom:100%;right:100%}.moodle-actionmenu[data-enhanced].show .menu.align-tl-br{top:100%;left:100%}.moodle-actionmenu[data-enhanced].show .menu.align-tr-br{top:100%;right:0;margin-top:4px}.moodle-actionmenu[data-enhanced].show .menu.align-bl-br{bottom:100%;left:100%}.moodle-actionmenu[data-enhanced].show .menu.align-br-br{bottom:100%;right:0}.moodle-actionmenu[data-enhanced].show .menu.align-tl-tl{top:0;left:0}.moodle-actionmenu[data-enhanced].show .menu.align-tr-tl{top:0;right:100%;margin-right:4px}.moodle-actionmenu[data-enhanced].show .menu.align-bl-tl{bottom:100%;left:0;margin-bottom:4px}.moodle-actionmenu[data-enhanced].show .menu.align-br-tl{bottom:100%;right:100%}.moodle-actionmenu[data-enhanced].show .menu.align-tl-tr{top:0;left:100%;margin-left:4px}.moodle-actionmenu[data-enhanced].show .menu.align-tr-tr{top:0;right:0}.moodle-actionmenu[data-enhanced].show .menu.align-bl-tr{bottom:100%;left:100%}.moodle-actionmenu[data-enhanced].show .menu.align-br-tr{bottom:100%;right:0;margin-bottom:4px}.moodle-actionmenu[data-enhanced].show.nowrap-items .menu>li{white-space:nowrap}.block .moodle-actionmenu{text-align:right}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu{text-align:right;left:0;right:auto}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu a{padding:2px 28px 2px 1em}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu .iconsmall,.dir-rtl .moodle-actionmenu[data-enhanced].show .menu .smallicon{margin-right:-24px;margin-left:4px}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tl-bl{left:auto;right:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-bl{right:auto;left:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-bl-bl{left:auto;right:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-br-bl{right:auto;left:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tl-br{left:auto;right:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-br{right:auto;left:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-bl-br{left:auto;right:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-br-br{right:auto;left:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tl-tl{left:auto;right:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-tl{right:auto;left:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-bl-tl{left:auto;right:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-br-tl{right:auto;left:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tl-tr{left:auto;right:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-tr{right:auto;left:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-bl-tr{left:auto;right:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-br-tr{right:auto;left:0}.dir-rtl .block .moodle-actionmenu{text-align:right}ul.dragdrop-keyboard-drag li{list-style-type:none}.block-control-actions .moodle-core-dragdrop-draghandle img{width:12px;height:12px}a.disabled:hover,a.disabled{text-decoration:none;cursor:default;font-style:italic;color:#808080}body.lockscroll{height:100%;overflow:hidden}.dir-rtl ul{margin-left:0;margin-right:25px}.progressbar_container{max-width:500px;margin:0 auto}.ie10 .yui3-calendar-header-label{display:inline-block}dd:before,dd:after{display:block;content:" "}dd:after{clear:both}.nav-tabs>.active>a[href],.nav-tabs>.active>a[href]:hover,.nav-tabs>.active>a[href]:focus{cursor:pointer}.formtable tbody th{font-weight:normal;text-align:right}.path-admin #assignrole{width:60%;margin-left:auto;margin-right:auto}.path-admin .admintable .leftalign{text-align:left}.dir-rtl.path-admin .admintable .leftalign{text-align:right}.environmenttable p.warn{background-color:#fcf8e3;color:#8a6d3b}.environmenttable .error,.environmenttable span.warn,.environmenttable .ok{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.environmenttable .error:empty,.environmenttable span.warn:empty,.environmenttable .ok:empty{display:none}.environmenttable .error-important,.environmenttable span.warn-important,.environmenttable .ok-important{background-color:#b94a48}.environmenttable .error-important[href],.environmenttable span.warn-important[href],.environmenttable .ok-important[href]{background-color:#953b39}.environmenttable .error-warning,.environmenttable span.warn-warning,.environmenttable .ok-warning{background-color:#f89406}.environmenttable .error-warning[href],.environmenttable span.warn-warning[href],.environmenttable .ok-warning[href]{background-color:#c67605}.environmenttable .error-success,.environmenttable span.warn-success,.environmenttable .ok-success{background-color:#468847}.environmenttable .error-success[href],.environmenttable span.warn-success[href],.environmenttable .ok-success[href]{background-color:#356635}.environmenttable .error-info,.environmenttable span.warn-info,.environmenttable .ok-info{background-color:#3a87ad}.environmenttable .error-info[href],.environmenttable span.warn-info[href],.environmenttable .ok-info[href]{background-color:#2d6987}.environmenttable .error-inverse,.environmenttable span.warn-inverse,.environmenttable .ok-inverse{background-color:#333}.environmenttable .error-inverse[href],.environmenttable span.warn-inverse[href],.environmenttable .ok-inverse[href]{background-color:#1a1a1a}.environmenttable .error{background-color:#b94a48}.environmenttable span.warn{background-color:#f89406}.environmenttable .ok{background-color:#468847}.path-admin .admintable.environmenttable .name,.path-admin .admintable.environmenttable .info,.path-admin #assignrole .admintable .role,.path-admin #assignrole .admintable .userrole,.path-admin #assignrole .admintable .roleholder{white-space:nowrap}.path-admin .incompatibleblockstable td.c0{font-weight:bold}#page-admin-course-category .addcategory{padding:10px}#page-admin-course-index .editcourse{margin:20px auto}#page-admin-course-index .editcourse th,#page-admin-course-index .editcourse td{padding-left:10px;padding-right:10px}.timewarninghidden{display:none}.statusok,.statuswarning,.statusserious,.statuscritical{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.statusok:empty,.statuswarning:empty,.statusserious:empty,.statuscritical:empty{display:none}.statusok-important,.statuswarning-important,.statusserious-important,.statuscritical-important{background-color:#b94a48}.statusok-important[href],.statuswarning-important[href],.statusserious-important[href],.statuscritical-important[href]{background-color:#953b39}.statusok-warning,.statuswarning-warning,.statusserious-warning,.statuscritical-warning{background-color:#f89406}.statusok-warning[href],.statuswarning-warning[href],.statusserious-warning[href],.statuscritical-warning[href]{background-color:#c67605}.statusok-success,.statuswarning-success,.statusserious-success,.statuscritical-success{background-color:#468847}.statusok-success[href],.statuswarning-success[href],.statusserious-success[href],.statuscritical-success[href]{background-color:#356635}.statusok-info,.statuswarning-info,.statusserious-info,.statuscritical-info{background-color:#3a87ad}.statusok-info[href],.statuswarning-info[href],.statusserious-info[href],.statuscritical-info[href]{background-color:#2d6987}.statusok-inverse,.statuswarning-inverse,.statusserious-inverse,.statuscritical-inverse{background-color:#333}.statusok-inverse[href],.statuswarning-inverse[href],.statusserious-inverse[href],.statuscritical-inverse[href]{background-color:#1a1a1a}.statusok{background-color:#468847}.statuswarning{background-color:#8a6d3b}.statusserious{background-color:#f89406}.statuscritical{background-color:#b94a48}#page-admin-report-capability-index #capabilitysearch{width:30em}#page-admin-report-backups-index .backup-error,#page-admin-report-backups-index .backup-unfinished{color:#b94a48}#page-admin-report-backups-index .backup-skipped,#page-admin-report-backups-index .backup-ok,#page-admin-report-backups-index .backup-notyetrun{color:#468847}#page-admin-report-backups-index .backup-warning{color:#8a6d3b}#page-admin-qtypes .disabled,#page-admin-qbehaviours .disabled{color:#999}#page-admin-qtypes #qtypes div,#page-admin-qtypes #qtypes form,#page-admin-qbehaviours #qbehaviours div,#page-admin-qbehaviours #qbehaviours form{display:inline}#page-admin-qtypes #qtypes img.spacer,#page-admin-qbehaviours #qbehaviours img.spacer{width:16px}img.iconsmall{margin:0;padding:.3em}#page-admin-qbehaviours .cell.c3,#page-admin-qtypes .cell.c3{font-size:10.5px}#page-admin-lang .generalbox,#page-admin-course-index .singlebutton,#page-admin-course-index .addcategory,#page-course-index .buttons,#page-course-index-category .buttons,#page-admin-course-category .addcategory,#page-admin-stickyblocks .generalbox,#page-admin-maintenance .buttons,#page-admin-course-index .buttons,#page-admin-course-category .buttons,#page-admin-index .copyright,#page-admin-index .copyrightnotice,#page-admin-index .adminerror .singlebutton,#page-admin-index .adminwarning .singlebutton,#page-admin-index #layout-table .singlebutton{text-align:center;margin-bottom:1em}.path-admin-roles .capabilitysearchui{text-align:left;margin-left:auto;margin-right:auto}#page-admin-roles-define .topfields{margin:1em 0 2em}#page-admin-roles-define .capdefault{background-color:#f5f5f5;border:1px solid #ddd}#page-filter-manage .backlink,.path-admin-roles .backlink{margin-top:1em}#page-admin-roles-explain #chooseuser h3,#page-admin-roles-usersroles .contextname{margin-top:0}#page-admin-roles-explain #chooseusersubmit{margin-top:0;text-align:center}#page-admin-roles-usersroles p{margin:0}#page-admin-roles-override .cell.c1,#page-admin-roles-assign .cell.c3,#page-admin-roles-assign .cell.c1{padding-top:.75em}#page-admin-roles-override .overridenotice,#page-admin-roles-define .definenotice{margin:1em 10% 2em 10%;text-align:left}#notice{width:60%;min-width:220px;margin:auto}#page-admin-index .releasenoteslink,#page-admin-index .adminwarning,#page-admin-index .adminerror{margin:auto;padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#8a6d3b;width:60%;min-width:220px}#page-admin-index .adminerror{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}#page-admin-index .releasenoteslink{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo span{display:block}#page-admin-index .updateplugin div{margin-bottom:.5em}#page-admin-index .updateplugin .updatepluginconfirmexternal{padding:1em;background-color:#f2dede;border:1px solid #eed3d7}#page-admin-user-user_bulk #users .fgroup{white-space:nowrap}#page-admin-report-stats-index .graph{text-align:center;margin-bottom:1em}#page-admin-report-courseoverview-index .graph{text-align:center;margin-bottom:1em}#page-admin-lang .translator{border-width:1px;border-style:solid}.path-admin .roleassigntable{width:100%}.path-admin .roleassigntable td{vertical-align:top;padding:.2em .3em}.path-admin .roleassigntable p{text-align:left;margin:.2em 0}.path-admin .roleassigntable #existingcell,.path-admin .roleassigntable #potentialcell{width:42%}.path-admin .roleassigntable #existingcell p>label:first-child,.path-admin .roleassigntable #potentialcell p>label:first-child{font-weight:bold}.path-admin .roleassigntable #buttonscell{width:16%}.path-admin .roleassigntable #buttonscell #assignoptions{font-size:10.5px}.path-admin .roleassigntable #removeselect_wrapper,.path-admin .roleassigntable #addselect_wrapper{width:100%}.path-admin table.rolecap tr.rolecap th{text-align:left;font-weight:normal}.path-admin.dir-rtl table.rolecap tr.rolecap th{text-align:right}.path-admin .rolecap .hiddenrow{display:none}.path-admin #defineroletable .rolecap .inherit,.path-admin #defineroletable .rolecap .allow,.path-admin #defineroletable .rolecap .prevent,.path-admin #defineroletable .rolecap .prohibit{text-align:center;padding:0;min-width:3.5em}.path-admin .rolecap .cap-name,.path-admin .rolecap .note{display:block;font-size:10.5px;white-space:nowrap;font-weight:normal}.path-admin .rolecap label{display:block;text-align:center;padding:.5em;margin:0}.plugincheckwrapper{width:100%}.environmentbox{margin-top:1em}#mnetconfig table{margin-left:auto;margin-right:auto}.environmenttable .cell{padding:.15em .5em}.environmenttable img.iconhelp{padding-right:.3em}.dir-rtl .environmenttable img.iconhelp{padding-left:.3em;padding-right:0}#trustedhosts .generaltable{margin-left:auto;margin-right:auto;width:500px}#trustedhosts .standard{width:auto}#adminsettings legend{display:none}#adminsettings fieldset.error{margin:.2em 0 .5em 0}#adminsettings fieldset.error legend{display:block}.dir-rtl #admin-spelllanguagelist textarea,#page-admin-setting-editorsettingstinymce.dir-rtl .form-textarea textarea{text-align:left;direction:ltr}.adminsettingsflags{float:right}.dir-rtl .adminsettingsflags{float:left}.adminsettingsflags label{margin-right:7px}.dir-rtl .adminsettingsflags label{margin-left:7px}.form-description{clear:right}.dir-rtl .form-description{clear:left}.form-item .form-setting .form-htmlarea{width:640px;display:inline}.form-item .form-setting .form-htmlarea .htmlarea{width:640px;display:block}.form-item .form-setting .form-multicheckbox ul{list-style:none;padding:0;margin:7px 0 0 0}.form-item .form-setting .defaultsnext{margin-right:.5em;display:inline}.dir-rtl .form-item .form-setting .defaultsnext{margin-left:.5em;margin-right:0}.form-item .form-setting .locked-checkbox{margin-right:.2em;margin-left:.5em;display:inline}.dir-rtl .form-item .form-setting .locked-checkbox{margin-right:.5em;margin-left:.2em;display:inline}.form-item .form-setting .form-password .unmask,.form-item .form-setting .form-defaultinfo{display:inline-block}.form-item .pathok,.form-item .patherror{margin-left:.5em}#admin-emoticons td input{width:8em}#admin-emoticons td.c0 input{width:4em}#adminthemeselector .selectedtheme td.c0{border:1px solid #000;border-right-width:0}#adminthemeselector .selectedtheme td.c1{border:1px solid #000;border-left-width:0}.admin_colourpicker,.admin_colourpicker_preview{display:none}.jsenabled .admin_colourpicker_preview{display:inline}.jsenabled .admin_colourpicker{display:block;height:102px;width:410px;margin-bottom:10px}.admin_colourpicker .loadingicon{vertical-align:middle;margin-left:auto}.admin_colourpicker .colourdialogue{float:left;border:1px solid #000}.admin_colourpicker .previewcolour{border:1px solid #000;margin-left:301px}.admin_colourpicker .currentcolour{border:1px solid #000;margin-left:301px;border-top-width:0}.dir-rtl .form-item .form-setting,.dir-rtl .form-item .form-label,.dir-rtl .form-item .form-description,.dir-rtl.path-admin .roleassigntable p{text-align:right}#page-admin-index #notice .checkforupdates{text-align:center}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity200 .info.release{background-color:#d9edf7}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity100 .info.release,#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity150 .info.release{background-color:#fcf8e3}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity50 .info.release{background-color:#f2dede}#page-admin-plugins #plugins-overview-panel .info{display:inline-block;margin-right:1em}#page-admin-plugins .checkforupdates{margin:10px 0}#page-admin-plugins .checkforupdates .singlebutton{margin:5px 0;padding:0}#page-admin-plugins .checkforupdates .singlebutton div,#page-admin-plugins .checkforupdates .singlebutton input{margin:0 3px 0 0}#page-admin-plugins .updateavailableinstallall{margin:5px 0;padding:0}#page-admin-plugins .updateavailableinstallall div,#page-admin-plugins .updateavailableinstallall input{margin:0 3px 5px 0}#page-admin-plugins #plugins-control-panel .status-missing td{background-color:#f2dede}#page-admin-plugins #plugins-control-panel .pluginname .displayname img.icon{padding-top:0;padding-bottom:0}#page-admin-plugins #plugins-control-panel .pluginname .componentname{font-size:11.9px;color:#999;margin-left:22px}#page-admin-plugins #plugins-control-panel .version .versionnumber{font-size:11.9px;color:#999}#page-admin-plugins #plugins-control-panel .uninstall a{color:#b94a48}#page-admin-plugins #plugins-control-panel .notes .label{margin-right:3px}#page-admin-plugins #plugins-control-panel .notes .requiredby{font-size:11.9px;color:#999}#plugins-check-page .page-description{color:#999}#plugins-check-page .checkforupdates .singlebutton{margin:5px 0;padding:0}#plugins-check-page .checkforupdates .singlebutton div,#plugins-check-page .checkforupdates .singlebutton input{margin:0 3px 0 0}#plugins-check-page #plugins-check-info .actions>div{display:inline-block;margin-right:1em}#plugins-check-page #plugins-check-info .actions .singlebutton{margin:5px 0;padding:0}#plugins-check-page #plugins-check-info .actions .singlebutton div,#plugins-check-page #plugins-check-info .actions .singlebutton input{margin:0 3px 0 0}#plugins-check-page #plugins-check .requires-ok{color:#999}#plugins-check-page #plugins-check .status-missing td,#plugins-check-page #plugins-check .status-downgrade td{background-color:#f2dede}#plugins-check-page #plugins-check .displayname .pluginicon{margin-right:5px;width:16px}#plugins-check-page #plugins-check .displayname .plugindir{color:#999;font-size:11.9px}#plugins-check-page #plugins-check .requires ul{margin-left:13px}#plugins-check-page #plugins-check .status .actionbutton{margin:5px 0;padding:0}#plugins-check-page #plugins-check .status .actionbutton input{margin:0}#plugins-check-page .plugins-check-dependencies-actions>div{display:inline-block;margin-right:1em}#plugins-check-page .plugins-check-dependencies-actions .singlebutton{margin:5px 0;padding:0}#plugins-check-page .plugins-check-dependencies-actions .singlebutton div,#plugins-check-page .plugins-check-dependencies-actions .singlebutton input{margin:0 3px 0 0}#plugins-check-page #plugins-check-available-dependencies .displayname .component{font-size:11.9px;color:#999}#plugins-check-page #plugins-check-available-dependencies .info .actions>div{display:inline-block;margin-right:1em}#plugins-check-page #plugins-check-available-dependencies .info .actions .dependencyinstall{display:block;margin:5px 0;padding:0}#plugins-check-page #plugins-check-available-dependencies .info .actions .dependencyinstall input{margin:0}#plugins-check-page .pluginupdateinfo,#plugins-control-panel .pluginupdateinfo{background-color:#d9edf7;padding:5px;margin:10px 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#plugins-check-page .pluginupdateinfo.maturity50,#plugins-control-panel .pluginupdateinfo.maturity50{background-color:#f2dede}#plugins-check-page .pluginupdateinfo.maturity100,#plugins-control-panel .pluginupdateinfo.maturity100,#plugins-check-page .pluginupdateinfo.maturity150,#plugins-control-panel .pluginupdateinfo.maturity150{background-color:#fcf8e3}#plugins-check-page .pluginupdateinfo .info,#plugins-control-panel .pluginupdateinfo .info{display:inline-block}#plugins-check-page .pluginupdateinfo .separator:after,#plugins-control-panel .pluginupdateinfo .separator:after{content:" | "}#plugins-check-page .pluginupdateinfo .singlebutton,#plugins-control-panel .pluginupdateinfo .singlebutton{margin:5px 0;padding:0}#plugins-check-page .pluginupdateinfo .singlebutton div,#plugins-control-panel .pluginupdateinfo .singlebutton div,#plugins-check-page .pluginupdateinfo .singlebutton input,#plugins-control-panel .pluginupdateinfo .singlebutton input{margin:0 3px 0 0}.plugins-management-confirm-buttons>div{display:inline-block;margin:1em 1em 1em 0}.plugins-management-confirm-buttons .continue{padding:0}.plugins-management-confirm-buttons .continue div,.plugins-management-confirm-buttons .continue input{margin:0}.uninstalldeleteconfirmexternal{background-color:#fcf8e3;padding:.5em 1em;margin:5px 0 10px 0}#page-admin-index .upgradepluginsinfo{text-align:center}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo .separator:after{content:" | "}.dir-rtl #plugins-check .pluginupdateinfo{text-align:center;direction:ltr}.dir-rtl #plugins-check .requires-ok{text-align:left;direction:ltr}#page-admin-mnet-peers .box.deletedhosts{margin-bottom:1em;font-size:11.9px}#page-admin-mnet-peers .mform .deletedhostinfo{background-color:#f2dede;border:2px solid #eed3d7;padding:4px;margin-bottom:5px}#core-cache-plugin-summaries table,#core-cache-store-summaries table{width:100%}#core-cache-lock-summary table,#core-cache-definition-summaries table,#core-cache-mode-mappings table{margin:0 auto}#core-cache-store-summaries .default-store td{font-style:italic}#core-cache-rescan-definitions,#core-cache-mode-mappings .edit-link,#core-cache-lock-summary .new-instance{margin-top:.5em;text-align:center}.tinymcesubplugins img.icon{padding-top:0;padding-bottom:0}.maintenancewarning{padding:3px 1em;text-align:center;position:fixed;bottom:0;right:0;overflow:hidden;z-index:1}.maintenancewarning.error{color:#b94a48;background-color:#f2dede;border:2px solid #eed3d7;font-weight:bold}.maintenancewarning.warning{color:#8a6d3b;background-color:#fcf8e3;border:2px solid #fbeed5}#adminsettings .form-overridden{color:#3a87ad;background-color:#d9edf7}.calendar_event_course{background-color:#ffd3bd}.calendar_event_global{background-color:#d6f8cd}.calendar_event_group{background-color:#fee7ae}.calendar_event_user{background-color:#dce7ec}.path-calendar .calendartable{width:100%}.path-calendar .calendartable th,.path-calendar .calendartable td{width:14%;vertical-align:top;text-align:center;border:0}.path-calendar .calendar-controls .previous,.path-calendar .calendar-controls .next,.path-calendar .calendar-controls .current{display:block;float:left;width:12%}.path-calendar .calendar-controls .previous{text-align:left}.path-calendar .calendar-controls .current{text-align:center;width:76%}.path-calendar .calendar-controls .next{text-align:right}.path-calendar .filters table{border-collapse:separate;border-spacing:2px;width:100%}.path-calendar .cal_courses_flt{float:left}.path-calendar .cal_courses_flt label{margin-right:.45em}.path-calendar .maincalendar{vertical-align:top;padding:0}.path-calendar .maincalendar .bottom{text-align:center;padding:5px 0 0 0}.path-calendar .maincalendar .heightcontainer{height:100%;position:relative}.path-calendar .maincalendar .calendarmonth{width:98%;margin:10px auto}.path-calendar .maincalendar .calendarmonth ul{margin:0}.path-calendar .maincalendar .calendarmonth ul li{list-style-type:none;margin-top:4px}.path-calendar .maincalendar .calendarmonth td{height:5em}.path-calendar .maincalendar .calendar-controls .previous,.path-calendar .maincalendar .calendar-controls .next{width:30%}.path-calendar .maincalendar .calendar-controls .current{width:39.95%}.path-calendar .maincalendar .controls{width:98%;margin:10px auto}.path-calendar .maincalendar .calendar_event_course,.path-calendar .maincalendar .calendar_event_global,.path-calendar .maincalendar .calendar_event_group,.path-calendar .maincalendar .calendar_event_user{border-width:1px 1px 1px 12px;border-style:solid}.path-calendar .maincalendar .calendar_event_course{border-color:#ffd3bd}.path-calendar .maincalendar .calendar_event_global{border-color:#d6f8cd}.path-calendar .maincalendar .calendar_event_group{border-color:#fee7ae}.path-calendar .maincalendar .calendar_event_user{border-color:#dce7ec}.path-calendar .maincalendar .calendar-event-panel{background-color:#eee;border:2px solid #eee}.path-calendar .maincalendar .calendar-event-panel .yui3-overlay-content{padding:19px;background-color:#fdfdfd;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.path-calendar .maincalendar .calendar-controls .current{font-family:inherit;font-weight:bold;color:inherit;font-size:25px;line-height:1.2}.path-calendar .maincalendar .calendartable td,.path-calendar .maincalendar .calendartable li{padding:5px}.path-calendar .maincalendar .calendartable li{padding-left:10px;text-align:left}.path-calendar .maincalendar .header{overflow:hidden}.path-calendar .maincalendar .header .buttons{float:right}.path-calendar .maincalendar .eventlist{margin:0}.path-calendar .maincalendar .eventlist .event{width:92%;border-spacing:0;border-collapse:separate;position:relative;padding:20px 4%;margin-bottom:20px;background-color:#fdfdfd;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);list-style-type:none}.path-calendar .maincalendar .eventlist .event>img{padding-top:3px;float:left}.path-calendar .maincalendar .eventlist .event .name{font-size:17.5px;font-weight:200;line-height:24px;float:left;margin:0}.path-calendar .maincalendar .eventlist .event .name,.path-calendar .maincalendar .eventlist .event .course{margin-bottom:5px}.path-calendar .maincalendar .eventlist .event .date{float:right}.path-calendar .maincalendar .eventlist .event .course,.path-calendar .maincalendar .eventlist .event .subscription{float:left;clear:left}.path-calendar .maincalendar .eventlist .event .side{width:22px}.path-calendar .maincalendar .eventlist .event .description{background-color:#fff;padding:5px;clear:both}.path-calendar .maincalendar .eventlist .event .description .commands{position:absolute;right:0;top:0;margin:3px}.path-calendar .maincalendar .eventlist .event .commands{position:absolute;top:2px;right:2px}.path-calendar .maincalendar .eventlist .event .commands a{margin:0 3px}.dir-rtl.path-calendar .cal_courses_flt{float:right}.dir-rtl.path-calendar .cal_courses_flt label{margin-left:.45em;margin-right:0}.dir-rtl.path-calendar .maincalendar .calendar_event_course,.dir-rtl.path-calendar .maincalendar .calendar_event_global,.dir-rtl.path-calendar .maincalendar .calendar_event_group,.dir-rtl.path-calendar .maincalendar .calendar_event_user{border-left-width:1px;border-right-width:12px}.dir-rtl.path-calendar .maincalendar .calendar-controls .next{text-align:left}.dir-rtl.path-calendar .maincalendar .calendar-controls .previous{text-align:right}.dir-rtl.path-calendar .maincalendar .calendartable td,.dir-rtl.path-calendar .maincalendar .calendartable li{text-align:right}.dir-rtl.path-calendar .maincalendar .calendartable li{padding-right:10px;padding-left:5px}.dir-rtl.path-calendar .maincalendar .header .buttons{float:left}.dir-rtl.path-calendar .maincalendar .eventlist .event>img{float:right}.dir-rtl.path-calendar .maincalendar .eventlist .event .name{float:right}.dir-rtl.path-calendar .maincalendar .eventlist .event .date{float:left}.dir-rtl.path-calendar .maincalendar .eventlist .event .description .commands{right:inherit;left:0}.dir-rtl.path-calendar .maincalendar .eventlist .event .course,.dir-rtl.path-calendar .maincalendar .eventlist .event .subscription{float:right;clear:right}.dir-rtl.path-calendar .maincalendar .eventlist .event .commands{left:2px;right:inherit}#page-calendar-export .indent{padding-left:20px}.block .minicalendar{max-width:280px;margin:0 auto;width:100%}.block .minicalendar th,.block .minicalendar td{padding:2px;font-size:.8em;text-align:center}.block .minicalendar td.weekend{color:#999}.block .minicalendar td a{width:100%;height:100%;display:block}.block .minicalendar td.duration_global{border-top:1px solid #d6f8cd;border-bottom:1px solid #d6f8cd}.block .minicalendar td.duration_global.duration_finish{background-color:#d6f8cd}.block .minicalendar td.duration_course{border-top:1px solid #ffd3bd;border-bottom:1px solid #ffd3bd}.block .minicalendar td.duration_course.duration_finish{background-color:#ffd3bd}.block .minicalendar td.duration_group{border-top:1px solid #fee7ae;border-bottom:1px solid #fee7ae}.block .minicalendar td.duration_group.duration_finish{background-color:#fee7ae}.block .minicalendar td.duration_user{border-top:1px solid #dce7ec;border-bottom:1px solid #dce7ec}.block .minicalendar td.duration_user.duration_finish{background-color:#dce7ec}.block .minicalendar caption{font-size:inherit;font-weight:inherit;line-height:inherit;text-align:center}.block .calendar-event-panel{background-color:#eee;border:1px solid #eee}.block .calendar-event-panel .yui3-overlay-content{padding:19px;background-color:#fdfdfd;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.block .calendar-event-panel .yui3-overlay-content h2.eventtitle{line-height:1.2;font-size:18px}.block .calendar-event-panel .yui3-overlay-content .eventcontent img{padding-right:5px}.block .calendar-controls .previous,.block .calendar-controls .current,.block .calendar-controls .next{display:block;float:left}.block .calendar-controls .previous{text-align:left;width:12%}.block .calendar-controls .current{text-align:center;width:76%}.block .calendar-controls .next{text-align:right;width:12%}.block .calendar_filters ul{list-style:none;margin:0}.block .calendar_filters li{margin-bottom:.2em}.block .calendar_filters li span img{padding:0 .2em}.block .calendar_filters .eventname{padding-left:.2em}.block .content h3.eventskey{margin-top:.5em}.dir-rtl .block .calendar_filters .eventname{padding-right:.2em;padding-left:0}.dir-rtl .block .calendar-event-panel .yui3-overlay-content .eventcontent img{padding-right:0;padding-left:5px}.ical-link{font-size:10px;font-weight:bold;background-color:#f60;padding:0 5px;color:#fff;border-top:1px solid #f93;border-left:1px solid #f93;border-bottom:1px solid #013;border-right:1px solid #013}.ical-link:hover,.ical-link:active,.ical-link:focus,.ical-link:visited{color:#fff;text-decoration:none}@media (min-width:768px){#page-calender-view .container-fluid{min-width:1024px}}.section_add_menus{text-align:right;clear:both}.section-modchooser{clear:both}.dir-rtl .section_add_menus{text-align:left;clear:both}.section_add_menus .horizontal div,.section_add_menus .horizontal form{display:inline}.section_add_menus optgroup{font-weight:normal;font-style:italic}.section_add_menus .urlselect{margin-left:.4em}.dir-rtl .section_add_menus .urlselect{margin-right:.4em;margin-left:0}.section_add_menus .urlselect select{margin-left:.2em}.dir-rtl .section_add_menus .urlselect select{margin-right:.2em;margin-left:0}.section_add_menus .urlselect img.iconhelp{padding:0;margin:0;vertical-align:text-bottom}.sitetopic ul.section{margin:0}.course-content ul.section{margin:1em}.section .side.left{float:left}.section .side.right{float:right}.section .spinner{height:16px;width:16px}.section .activity .spinner{left:100%;position:absolute;vertical-align:text-bottom}.section .activity .editing_move{position:absolute;left:0;top:0}.section .activity .mod-indent-outer{padding-left:32px}.section .activity .actions{position:absolute;right:0;top:0}.section .activity .contentwithoutlink,.section .activity .activityinstance{min-width:40%;display:table-cell;padding-right:4px;min-height:2em}.section .activity .contentwithoutlink .dimmed img.activityicon,.section .activity .activityinstance .dimmed img.activityicon{opacity:.5;filter:alpha(opacity=50)}.section .label .contentwithoutlink,.section .label .activityinstance{padding-right:32px;display:block;height:inherit}.section .label .mod-indent-outer{padding-left:24px;display:block}.section .filler{width:16px;height:16px;padding:.3em;display:inline-block}.section .activity.editor_displayed a.editing_title,.section .activity.editor_displayed .moodle-actionmenu{display:none}.section .activity.editor_displayed div.activityinstance{padding-right:initial}.section .activity.editor_displayed div.activityinstance input{margin-bottom:initial;padding-top:initial;padding-bottom:initial;vertical-align:text-bottom}.dir-rtl .section .side.left{float:right}.dir-rtl .section .side.right{float:left}.dir-rtl .section .activity .spinner{left:auto;right:100%}.dir-rtl .section .activity .mod-indent-outer{padding-left:initial;padding-right:32px}.dir-rtl .section .activity .actions{left:0;right:auto}.dir-rtl .section .activity .contentwithoutlink,.dir-rtl .section .activity .activityinstance{padding-left:4px;padding-right:initial}.dir-rtl .section .activity .editing_move{left:auto;right:0}.dir-rtl .section .activity.editor_displayed div.activityinstance{padding-left:initial}.activity img.activityicon{margin-right:6px;vertical-align:text-bottom}.dir-rtl .section .activity img.activityicon{margin-left:6px;margin-right:0}.section .activity .activityinstance,.section .activity .activityinstance div{display:inline-block}.editing .section .activity .contentwithoutlink,.editing .section .activity .activityinstance{padding-right:200px}.dir-rtl.editing .section .activity .contentwithoutlink,.dir-rtl.editing .section .activity .activityinstance{padding-left:200px;padding-right:0}.editing_show+.editing_assign,.editing_hide+.editing_assign{margin-left:20px}.section .activity .commands{white-space:nowrap;display:inline}.section .activity.modtype_label.label{font-weight:normal;padding:.2em}.section li.activity{padding:.2em;clear:both}.section .activity .activityinstance .groupinglabel{padding-left:30px}.dir-rtl .section .activity .activityinstance .groupinglabel{padding-right:30px}.section .activity .availabilityinfo,.section .activity .contentafterlink{margin-top:.5em;margin-left:30px}.dir-rtl .section .activity .availabilityinfo,.dir-rtl .section .activity .contentafterlink{margin-left:0;margin-right:30px}.section .activity .contentafterlink p{margin:.5em 0}.editing .section .activity:hover,.editing .section .activity.action-menu-shown{background-color:#eee}.course-content .current{background-color:#d9edf7}.course-content .section-summary{border:1px solid #ddd;margin-top:5px;list-style:none}.course-content .section-summary .section-title{margin:2px 5px 10px 5px}.course-content .section-summary .summarytext{margin:2px 5px 2px 5px}.course-content .section-summary .section-summary-activities .activity-count{color:#999;font-size:11.9px;margin:3px;white-space:nowrap;display:inline-block}.course-content .section-summary .summary{margin-top:5px}.course-content .single-section{margin-top:1em}.course-content .single-section .section-navigation{display:block;padding:.5em;margin-bottom:-0.5em}.course-content .single-section .section-navigation .title{font-weight:bold;font-size:108%;clear:both}.course-content .single-section .section-navigation .mdl-left{font-weight:normal;float:left;margin-right:1em}.dir-rtl .course-content .single-section .section-navigation .mdl-left{float:right}.course-content .single-section .section-navigation .mdl-left .larrow{margin-right:.1em}.course-content .single-section .section-navigation .mdl-right{font-weight:normal;float:right;margin-left:1em}.dir-rtl .course-content .single-section .section-navigation .mdl-right{float:left}.course-content .single-section .section-navigation .mdl-right .rarrow{margin-left:.1em}.course-content .single-section .section-navigation .mdl-bottom{margin-top:0}.course-content ul li.section.main{border-bottom:2px solid #ddd;margin-top:0}.course-content ul li.section.hidden .sectionname>span,.course-content ul li.section.hidden .content>div,.course-content ul li.section.hidden .activity .activityinstance{opacity:.5;margin-left:10px;margin-right:10px}.course-content ul.topics li.section .content,.course-content ul.weeks li.section .content{margin-right:20px;margin-left:20px;padding:0}.course-content{margin-top:0}.course-content ul.topics li.section{padding-bottom:20px}.course-content ul.topics li.section .summary{margin-left:25px}.course-content li.section ul{list-style:disc}.course-content li.section ul ul{list-style:circle}.course-content li.section ul ul ul{list-style:square}.course-content li.section li.activity ul{list-style:disc}.course-content li.section li.activity ul ul{list-style:circle}.course-content li.section li.activity ul ul ul{list-style:square}.path-course-view .completionprogress{margin-left:25px}.path-course-view .completionprogress{display:block;float:right;height:20px;position:relative}#page-site-index .subscribelink{text-align:right}#site-news-forum h2,#frontpage-course-list h2,#frontpage-category-names h2,#frontpage-category-combo h2{margin-bottom:9px}.path-course-view a.reduce-sections{padding-left:.2em}.path-course-view .subscribelink{text-align:right}.path-course-view .unread{margin-left:30px}.dir-rtl.path-course-view .unread{margin-right:30px}.path-course-view .block.drag .header{cursor:move}.path-course-view .completionprogress{text-align:right}.dir-rtl.path-course-view .completionprogress{text-align:left}.path-course-view .single-section .completionprogress{margin-right:5px}.path-course-view .section .summary{line-height:normal}.path-site li.activity>div,.path-course-view li.activity>div{position:relative;padding:0 16px 0 0}.dir-rtl.path-site li.activity>div,.dir-rtl.path-course-view li.activity>div{position:relative;padding:0 0 0 16px}.path-course-view li.activity span.autocompletion img{vertical-align:text-bottom}.path-course-view li.activity form.togglecompletion img{max-width:none}.path-course-view li.activity form.togglecompletion .ajaxworking{width:16px;height:16px;position:absolute;right:22px;top:3px;background:url([[pix:i/ajaxloader]]) no-repeat}.dir-rtl.path-course-view .completionprogress{float:none}.dir-rtl.path-course-view li.activity form.togglecompletion .ajaxworking{right:-22px}li.section.hidden span.commands a.editing_hide,li.section.hidden span.commands a.editing_show{cursor:default}ul.weeks h3.sectionname{white-space:nowrap}.editing ul.weeks h3.sectionname{white-space:normal}.single-section h3.sectionname{text-align:center;clear:both}.section img.movetarget{height:16px;width:80px}input.titleeditor{width:330px;vertical-align:text-bottom}span.editinstructions{position:absolute;top:0;margin-top:-22px;margin-left:30px;line-height:16px;font-size:11.9px;padding:.1em .4em;background-color:#d9edf7;color:#3a87ad;text-decoration:none;z-index:9999;-webkit-box-shadow:2px 2px 5px 1px #ccc;-moz-box-shadow:2px 2px 5px 1px #ccc;box-shadow:2px 2px 5px 1px #ccc;border:1px solid #bce8f1}#dndupload-status{position:fixed;left:0;width:40%;margin:0 30%;padding:6px;border:1px solid #bce8f1;text-align:center;background:#d9edf7;color:#3a87ad;z-index:1;-webkit-box-shadow:2px 2px 5px 1px #ccc;-moz-box-shadow:2px 2px 5px 1px #ccc;box-shadow:2px 2px 5px 1px #ccc;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px}.dndupload-preview{color:#909090;border:1px dashed #909090;list-style:none;margin-top:.2em;padding:.3em}.dndupload-preview img.icon{vertical-align:text-bottom;padding:0}.dndupload-progress-outer{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.dndupload-progress-inner{width:0;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.dndupload-hidden{display:none}#page-course-pending .singlebutton,#page-course-index .singlebutton,#page-course-index-category .singlebutton,#page-course-editsection .singlebutton{text-align:center}#page-admin-course-manage #movecourses td img{margin:0 .22em;vertical-align:text-bottom}#page-admin-course-manage #movecourses td img.icon{padding:0}#coursesearch{margin-top:1em;text-align:center}#page-course-pending .pendingcourserequests{margin-bottom:1em}#page-course-pending .pendingcourserequests .singlebutton{display:inline}#page-course-pending .pendingcourserequests .cell{padding:0 5px}#page-course-pending .pendingcourserequests .cell.c6{white-space:nowrap}.coursebox{margin-bottom:15px;border:1px dotted #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding:5px}.coursebox>.info>.coursename a{display:block;background-image:url([[pix:moodle|i/course]]);background-repeat:no-repeat;padding-left:21px;background-position:left .2em}.dir-rtl .coursebox>.info>.coursename a{padding-left:0;padding-right:21px;background-position:right .2em}.coursebox>.info>.coursename,.coursebox .content .teachers,.coursebox .content .courseimage,.coursebox .content .coursefile{float:left;clear:left}.coursebox .content .teachers,.coursebox .content .courseimage,.coursebox .content .coursefile{width:40%}.dir-rtl .coursebox>.info>.coursename,.dir-rtl .coursebox .teachers,.dir-rtl .coursebox .content .courseimage,.dir-rtl .coursebox .content .coursefile{float:right;clear:right}.coursebox>.info>h3.coursename{margin:5px;line-height:1}.coursebox>.info>.coursename{margin:5px;padding:0}.coursebox .content .teachers li{list-style-type:none;padding:0;margin:0}.coursebox .enrolmenticons{padding:3px 0;float:right}.coursebox .moreinfo{padding:3px 0;float:right}.coursebox .enrolmenticons img,.coursebox .moreinfo img{margin:0 .2em}.coursebox .content{clear:both}.coursebox .content .summary,.coursebox .content .coursecat{float:right;width:55%}.coursebox .content .coursecat{text-align:right;clear:right}.coursebox.remotecoursebox .remotecourseinfo{float:left;width:40%}.coursebox .content .courseimage img{max-width:100px;max-height:100px}.coursebox .content .coursecat,.coursebox .content .summary,.coursebox .content .courseimage,.coursebox .content .coursefile,.coursebox .content .teachers,.coursebox.remotecoursebox .remotecourseinfo{margin:3px 5px;padding:0}.coursebox.remotehost>.info>.categoryname a{background-image:url([[pix:moodle|i/mnethost]])}.dir-rtl .coursebox>.info>.categoryname a{padding-left:0;padding-right:21px;background-position:center right}.dir-rtl .coursebox>.info>.categoryname,.dir-rtl .coursebox .teachers,.dir-rtl .coursebox .content .courseimage,.dir-rtl .coursebox .content .coursefile{float:right;clear:right}.dir-rtl .coursebox .enrolmenticons,.dir-rtl .coursebox .moreinfo{float:left}.dir-rtl .coursebox .summary,.dir-rtl .coursebox .coursecat{float:left}.dir-rtl .coursebox .coursecat{text-align:left;clear:left}.coursebox.collapsed{margin-bottom:0}.coursebox.collapsed>.content{display:none}.courses .coursebox.collapsed{border:1px solid #ddd;padding:5px}.courses .coursebox.even{background-color:#f9f9f9}.courses .coursebox:hover,.course_category_tree .courses>.paging.paging-morelink:hover{background-color:#f5f5f5}.course_category_tree .category .numberofcourse{font-size:11.9px}.course_category_tree .controls{visibility:hidden}.course_category_tree .controls div{display:inline;cursor:pointer}.jsenabled .course_category_tree .controls{visibility:visible}.course_category_tree .controls{margin-bottom:5px;text-align:right;float:right}.course_category_tree .controls div{padding-right:2em;font-size:75%}.course_category_tree .category>.info>.categoryname{background-image:url([[pix:moodle|t/collapsed_empty]]);background-repeat:no-repeat;padding:2px 18px;margin:3px;background-position:center left}.dir-rtl .course_category_tree .category>.info>.categoryname{background-image:url([[pix:moodle|t/collapsed_empty_rtl]]);background-position:center right}.course_category_tree .category.with_children>.info>.categoryname{background-image:url([[pix:moodle|t/expanded]]);cursor:pointer}.course_category_tree .category.with_children.collapsed>.info>.categoryname{background-image:url([[pix:moodle|t/collapsed]])}.dir-rtl .course_category_tree .category.with_children.collapsed>.info>.categoryname{background-image:url([[pix:moodle|t/collapsed_rtl]])}.course_category_tree .category.collapsed>.content{display:none}.course_category_tree .category>.info{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3;min-height:0;padding:0;margin:3px 0;margin-bottom:3px;clear:both}.course_category_tree .category>.info blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.course_category_tree.frontpage-category-names .category>.info{background:none;border:none;margin:0}.course_category_tree .category>.content{padding-left:16px}.dir-rtl .course_category_tree .category>.content{padding-left:0;padding-right:16px}.course_category_tree .subcategories>.paging,.courses>.paging{margin:0;padding:5px;text-align:center}.courses>.paging.paging-morelink,.course_category_tree .subcategories>.paging.paging-morelink{text-align:left}.course_category_tree .paging.paging-morelink a{font-size:11.9px}.dir-rtl .courses>.paging.paging-morelink,.dir-rtl .course_category_tree .paging.paging-morelink{text-align:right}#page-course-index-category .generalbox.info{margin-bottom:15px;border:1px dotted #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding:5px}#page-course-index-category .categorypicker{text-align:center;margin:10px 0 20px}.section .summary .iconsmall,.section .activity .iconsmall{width:16px;height:16px}.section .editing_title .iconsmall{width:12px;height:12px;margin:8px 8px 0 0;padding:4px 8px 0 0;vertical-align:text-bottom}.section .moodle-actionmenu .iconsmall{max-width:none !important;width:16px;height:16px;padding:4px;vertical-align:text-bottom}.section .moodle-actionmenu[data-enhanced] .menu img{width:12px;height:12px}.dir-rtl .section .editing_title .iconsmall{margin:8px 0 0 8px;padding:4px 0 0 8px}#course-category-listings{background-color:transparent;margin-bottom:200px}#course-category-listings.columns-2>#course-listing>div{position:relative;left:-1px}#course-category-listings.columns-3>#course-listing>div{height:100%}#course-category-listings>div>div{min-height:300px}#course-category-listings>div>div>ul.ml>li:first-child>div{border-top:0}#course-category-listings h3{margin:0;padding:.4rem .6rem .3rem}#course-category-listings h4{margin:1rem 0 0;padding:.6rem 1rem .5rem}#course-category-listings .moodle-actionmenu{white-space:nowrap}#course-category-listings .moodle-actionmenu[data-enhance] .toggle-display img{width:auto}#course-category-listings .moodle-actionmenu[data-enhance] .toggle-display.textmenu{padding-right:4px}#course-category-listings .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret{margin-top:12px}#course-category-listings .listing-actions{text-align:center;padding:.4rem .3rem .3rem;line-height:2.2em}#course-category-listings .listing-actions>a,#course-category-listings .listing-actions>.moodle-actionmenu{display:inline-block}#course-category-listings .listing-actions>.moodle-actionmenu .menu a{padding-left:1rem}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced]) li{line-height:normal}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced])>.menubar a{color:inherit;display:inline-block}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced])>.menubar a>img{display:none}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced])>.menubar a .caret{display:none}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced])>.menu .menu-action-text{display:inline-block}#course-category-listings ul.ml{list-style:none;margin:1rem 0}#course-category-listings ul.ml ul.ml{margin:0}#course-category-listings li{line-height:2.2em}#course-category-listings li>div:hover{background-color:#f5f5f5}#course-category-listings li .tree-icon{margin:2px 6px 0 0;width:12px;vertical-align:inherit}#course-category-listings li[data-selected='1']>div{background-color:#f9f9f9}#course-category-listings li[data-selected='1']>div:hover{background-color:#f5f5f5}#course-category-listings li .tree-icon{margin-left:0}#course-category-listings li li .tree-icon{margin-left:1em}#course-category-listings li li li .tree-icon{margin-left:2em}#course-category-listings li li li li .tree-icon{margin-left:3em}#course-category-listings li li li li li .tree-icon{margin-left:4em}#course-category-listings li li li li li li .tree-icon{margin-left:4.5em}#course-category-listings li li li li li li li .tree-icon{margin-left:5em}#course-category-listings li li li li li li li li .tree-icon{margin-left:5.5em}#course-category-listings .item-actions{margin-right:1em;display:inline-block;display:initial}#course-category-listings .item-actions>a img,#course-category-listings .item-actions .menubar img{margin:0 4px;height:12px;padding:0;vertical-align:inherit}#course-category-listings .item-actions.show .menu li{line-height:20px}#course-category-listings .item-actions.show .menu img{width:12px;max-width:none}#course-category-listings .item-actions .menu-action-text{vertical-align:inherit}#course-category-listings .listitem>div>.float-left{float:left}#course-category-listings .listitem>div>.float-right{float:right;text-align:right}#course-category-listings .listitem>div .item-actions .action-show{display:none}#course-category-listings .listitem>div .item-actions .action-hide{display:inline}#course-category-listings .listitem>div .without-actions{color:#333}#course-category-listings .listitem>div .idnumber{color:#a1a1a8;margin-right:2em}#course-category-listings .listitem[data-visible="0"]{color:#999}#course-category-listings .listitem[data-visible="0"]>div>a{color:#999}#course-category-listings .listitem[data-visible="0"]>div .item-actions .action-show{display:inline}#course-category-listings .listitem[data-visible="0"]>div .item-actions .action-hide{display:none}#course-category-listings .listitem.highlight{background-color:transparent}#course-category-listings .listitem.highlight>div,#course-category-listings .listitem.highlight>div:hover,#course-category-listings .listitem.highlight[data-selected='1']>div{background-color:#f5f5f5}#course-category-listings #course-listing .listitem .categoryname{display:inline-block;margin-left:1em;color:#a1a1a8}#course-category-listings #course-listing .listitem .coursename{display:inline-block}#course-category-listings #course-listing .listitem>div{padding-left:1rem}#course-category-listings #course-listing>.firstpage .listitem:first-child>div .item-actions .action-moveup,#course-category-listings #course-listing>.lastpage .listitem:last-child>div .item-actions .action-movedown{display:none}#course-category-listings #course-listing .bulk-action-checkbox{margin:-2px 6px 0 0}#course-category-listings #category-listing .listitem.collapsed>ul.ml{display:none}#course-category-listings #category-listing .listitem>div>.ba-checkbox{width:2.2em;text-align:center;margin:-1px .5em 0 0;padding-top:2px}#course-category-listings #category-listing .listitem.highlight>div>.ba-checkbox{background-color:#f5f5f5}#course-category-listings #category-listing .listitem[data-selected='1']>div>.ba-checkbox{margin:0 .5em 0 0;padding:0;background-color:inherit}#course-category-listings #category-listing .listitem:first-child>div .item-actions .action-moveup,#course-category-listings #category-listing .listitem:last-child>div .item-actions .action-movedown{display:none}#course-category-listings #category-listing .course-count{color:#a1a1a8;margin-right:2rem;min-width:3.5em;display:inline-block}#course-category-listings #category-listing .course-count .smallicon{width:12px;margin-left:4px;vertical-align:inherit}#course-category-listings #category-listing .bulk-action-checkbox{margin-right:-3px}#course-category-listings #category-listing .category-listing>ul>.listitem:first-child{position:relative}#course-category-listings #category-listing .category-bulk-actions{margin:0 .5em .5em;position:relative}#course-category-listings .detail-pair{border-bottom:1px solid #ddd;margin:0 1rem}#course-category-listings .detail-pair>*{display:inline-block;line-height:2.2rem}#course-category-listings .detail-pair .pair-key{font-weight:bold;vertical-align:top}#course-category-listings .detail-pair .pair-key span{margin-right:1rem;display:block}#course-category-listings .detail-pair .pair-value select{max-width:100%}#course-category-listings .bulk-actions .detail-pair>*{display:block;width:100%}#course-category-listings .listing-pagination{text-align:center}#course-category-listings .listing-pagination .yui3-button{background-color:#fff;border:0;margin:.4rem .2rem .45rem;font-size:10.4px}#course-category-listings .listing-pagination .yui3-button.active-page{background-color:#e6e6e6}#course-category-listings .listing-pagination-totals{text-align:center}#course-category-listings .listing-pagination-totals.dimmed{color:#999;margin:.4rem 1rem .45rem}#course-category-listings .select-a-category .notifymessage,#course-category-listings .select-a-category .alert{margin:1em}#course-category-listings #course-listing .listitem .drag-handle{display:none}.jsenabled #course-category-listings #course-listing .listitem .drag-handle{display:inline-block;margin:0 6px 0 0;cursor:pointer}.dir-rtl #course-category-listings #category-listing,.dir-rtl #course-category-listings #course-listing{float:right;margin-left:0}.dir-rtl #course-category-listings .listitem>div>.float-left{float:right}.dir-rtl #course-category-listings .listitem>div>.float-right{float:left;text-align:left}.dir-rtl #course-category-listings li .tree-icon{margin:2px 0 0 6px}.dir-rtl #course-category-listings li .tree-icon{margin-right:0}.dir-rtl #course-category-listings li li .tree-icon{margin-right:1em}.dir-rtl #course-category-listings li li li .tree-icon{margin-right:2em}.dir-rtl #course-category-listings li li li li .tree-icon{margin-right:3em}.dir-rtl #course-category-listings li li li li li .tree-icon{margin-right:4em}.dir-rtl #course-category-listings li li li li li li .tree-icon{margin-right:4.5em}.dir-rtl #course-category-listings li li li li li li li .tree-icon{margin-right:5em}.dir-rtl #course-category-listings li li li li li li li li .tree-icon{margin-right:5.5em}.dir-rtl #course-category-listings #category-listing .listitem>div{margin-right:.5em;margin-left:0}.dir-rtl #course-category-listings #category-listing .listitem>div>.ba-checkbox{margin:-1px 0 0 .5em}.dir-rtl #course-category-listings #category-listing .listitem[data-selected='1']>div>.ba-checkbox{margin:0 0 0 .5em}.dir-rtl #course-category-listings #category-listing .course-count{margin-left:2rem}.dir-rtl #course-category-listings #category-listing .course-count .smallicon{margin-left:0;margin-right:4px}.dir-rtl #course-category-listings #category-listing .bulk-action-checkbox{margin-left:-3px;margin-right:0}.dir-rtl #course-category-listings #course-listing{padding-right:24px}.dir-rtl #course-category-listings #course-listing .listitem .idnumber{color:#a1a1a8;padding-right:2em}.dir-rtl #course-category-listings #course-listing .listitem .categoryname{display:inline-block;margin-right:1em;margin-left:0}.dir-rtl #course-category-listings #course-listing .listitem .drag-handle{margin:0 6px 0 6px}.dir-rtl #course-category-listings #course-listing .listitem>div{padding-left:1rem}.dir-rtl #course-category-listings #course-listing .bulk-action-checkbox{vertical-align:middle;margin:-2px 0 0 6px}.dir-rtl #course-category-listings .detail-pair>*{float:right;margin-right:0}.dir-rtl #course-category-listings .detail-pair .pair-key span{margin-right:0;margin-left:0}.dir-rtl #course-category-listings .detail-pair .pair-value{margin-right:.5em}.coursecat-management-header{vertical-align:middle}.coursecat-management-header h2{display:inline-block;text-align:left}.coursecat-management-header>div{display:inline-block;float:right;line-height:40px}.coursecat-management-header>div>div{margin-left:1em;margin:10px 0;display:inline-block}.coursecat-management-header select{max-width:300px;cursor:pointer;padding:.4em .5em .45em 1em;vertical-align:baseline;white-space:nowrap}.coursecat-management-header .view-mode-selector .moodle-actionmenu{white-space:nowrap;display:inline-block}.coursecat-management-header .view-mode-selector .moodle-actionmenu[data-enhanced].show .menu a{padding-left:1em}.dir-rtl .coursecat-management-header h2{text-align:right}.dir-rtl .coursecat-management-header>div{float:left;margin-right:1em;margin-left:0}.course-being-dragged-proxy{border:0;color:#0070a8;vertical-align:middle;padding:0 0 0 4em}.course-being-dragged{opacity:.5;filter:alpha(opacity=50)}@media (min-width:1200px) and (max-width:1600px){#course-category-listings.columns-3{background-color:transparent;border:0}#course-category-listings.columns-3 #category-listing,#course-category-listings.columns-3 #course-listing{width:50%}#course-category-listings.columns-3 #category-listing>div,#course-category-listings.columns-3 #course-listing>div,#course-category-listings.columns-3 #course-detail>div{background-color:transparent}#course-category-listings.columns-3 #course-detail{width:100%;margin-top:1em}}@media (max-width:1199px){#course-category-listings.columns-2,#course-category-listings.columns-3{background-color:transparent;border:0}#course-category-listings.columns-2 #category-listing,#course-category-listings.columns-3 #category-listing,#course-category-listings.columns-2 #course-listing,#course-category-listings.columns-3 #course-listing,#course-category-listings.columns-2 #course-detail,#course-category-listings.columns-3 #course-detail{width:100%;margin:0 0 1em}#course-category-listings.columns-2 #category-listing>div,#course-category-listings.columns-3 #category-listing>div,#course-category-listings.columns-2 #course-listing>div,#course-category-listings.columns-3 #course-listing>div,#course-category-listings.columns-2 #course-detail>div,#course-category-listings.columns-3 #course-detail>div{background-color:transparent}}.filemanager,.filepicker,.file-picker{font-size:11px}.filemanager a,.file-picker a,.filemanager a:hover,.file-picker a:hover{color:#555555;text-decoration:none}.filemanager input[type="text"],.file-picker input[type="text"]{width:265px}.filemanager .fp-license td,.file-picker .fp-setlicense td{max-width:265px}.filemanager .fp-license select,.file-picker .fp-setlicense select{max-width:100%}.fp-content-center{height:100%;width:100%;display:table-cell;vertical-align:middle}.fp-content-hidden{visibility:hidden}.yui3-panel-focused{outline:none}#filesskin .yui3-panel-content{padding-bottom:20px;background:#F2F2F2;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;border:1px solid #fff;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}#filesskin .yui3-widget-hd{-webkit-border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;border-radius:10px 10px 0 0;border-bottom:1px solid #BBBBBB;padding:5px;text-align:center;font-size:12px;color:#333;letter-spacing:1px;text-shadow:1px 1px 1px #fff;filter:dropshadow(color=#FFFFFF, offx=1, offy=1);background-color:#ebebeb;background-image:-moz-linear-gradient(top, #fff, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc));background-image:-webkit-linear-gradient(top, #fff, #ccc);background-image:-o-linear-gradient(top, #fff, #ccc);background-image:linear-gradient(to bottom, #fff, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffcccccc', GradientType=0)}.fp-panel-button{background:#fff;padding:3px 20px 2px 20px;text-align:center;margin:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:2px 2px 3px .1px #999;-moz-box-shadow:2px 2px 3px .1px #999;box-shadow:2px 2px 3px .1px #999}.moodle-dialogue h3{font-size:14px;margin:0;line-height:20px}.moodle-dialogue-base .filepicker .moodle-dialogue-wrap .moodle-dialogue-bd{padding:0}#filesskin .file-picker.fp-generallayout{width:859px;background:#FFFFFF;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:1px solid #CCCCCC;position:relative}.file-picker .fp-repo-area{width:180px;overflow:auto;display:inline-block;*display:inline;*zoom:1;float:left;height:525px;border-right:1px solid #BBBBBB}.dir-rtl .file-picker .fp-repo-area{border-left:1px solid #BBBBBB;border-right:none;float:right}.file-picker .fp-repo-items{float:none;width:auto;margin-left:181px}.moodle-dialogue-fullscreen .file-picker .fp-repo-items{margin-left:0;margin-right:0;float:left}.dir-rtl .file-picker .fp-repo-items{margin-left:0;margin-right:181px}.dir-rtl .moodle-dialogue-fullscreen .file-picker .fp-repo-items{margin-left:0;margin-right:0;float:right}.file-picker .fp-navbar{background:#F2F2F2;border-bottom:1px solid #BBBBBB;min-height:40px;overflow:hidden}.file-picker .fp-navbar .fp-viewbar{margin:4px}.file-picker .fp-content{background:#FFFFFF;clear:none;overflow:auto;height:452px}.filepicker.moodle-dialogue-fullscreen .file-picker .fp-content{width:100%}.file-picker .fp-content-loading{height:100%;width:100%;display:table;text-align:center}.file-picker .fp-content .fp-object-container{width:98%;height:98%}.dir-rtl .file-picker .fp-list{text-align:right}.dir-rtl .file-picker .fp-toolbar{padding:4px}.dir-rtl .file-picker .fp-list{text-align:right}.dir-rtl .file-picker .fp-repo-name{display:inline}.dir-rtl .file-picker .fp-pathbar{text-align:right;display:block;border-top:none}.dir-rtl .file-picker div.bd{text-align:right}.dir-rtl #filemenu .yuimenuitemlabel{text-align:right}.dir-rtl .filepicker .yui-layout-unit-left{left:500px}.dir-rtl .filepicker .yui-layout-unit-center{left:0}.dir-rtl .filemanager-toolbar a{padding:0}.file-picker .fp-list{list-style-type:none;padding:0;float:left;width:100%;margin:0}.dir-rtl .file-picker .fp-list{text-align:right;float:left}.file-picker .fp-list .fp-repo a{display:block;padding:.5em .7em}.file-picker .fp-list .fp-repo.active{background:#F2F2F2}.file-picker .fp-list .fp-repo-icon{padding:0 7px 0 5px;width:16px;height:16px}.fp-toolbar{float:left}.dir-rtl .fp-toolbar{float:right}.fp-toolbar.empty{display:none}.dir-rtl .fp-toolbar div.disabled,.fp-toolbar .disabled{display:none}.fp-toolbar div{display:block;float:left;margin-right:4px}.dir-rtl .fp-toolbar div{display:block;float:right;margin-left:4px;margin-right:0}.fp-toolbar img{vertical-align:-15%;margin-right:5px}.fp-toolbar .fp-tb-search{width:235px;height:27px}.fp-toolbar .fp-tb-search input{background:#FFFFFF url('[[pix:a/search]]') no-repeat 7px 7px;padding:2px 6px 1px 27px;width:200px;height:27px;border:1px solid #BBBBBB}.fp-viewbar{float:right;height:30px;border:1px solid #CCC;border-bottom:1px solid #B3B3B3;border-radius:4px;background:white}.fp-repo-items fp-viewbar{margin:4px}.dir-rtl .fp-toolbar img{vertical-align:-35%}.dir-rtl .fp-viewbar{float:left}.fp-viewbar a{width:30px;height:30px;border-right:1px solid #CCC;display:block;float:left}.fp-viewbar a.checked:hover,.fp-viewbar a:hover{background-image:radial-gradient(ellipse at center, #ffffff 60%, #dfdfdf 100%);background-color:#ebebeb}.fp-viewbar a.checked,.fp-viewbar a:active{background-image:radial-gradient(ellipse at center, #ffffff 40%, #dfdfdf 100%);background-color:#dfdfdf}.fp-viewbar a.fp-vb-icons{border-radius:4px 0 0 4px}.fp-viewbar a.fp-vb-tree{border-right:0;border-radius:0 4px 4px 0}.fp-viewbar a img{margin:7px}.fp-viewbar.disabled a{opacity:.45;background:none;cursor:default}.file-picker .fp-clear-left{clear:left}.dir-rtl .fp-vb-details a:hover{background:none;border:20px solid black}.dir-rtl .fp-vb-details.checked a:hover{background:none;border:40px solid black}.dir-rtl .fp-vb-tree a:hover{background:none;border:30px solid black}.dir-rtl .fp-vb-tree.checked a:hover{background:none;border:50px solid black}.file-picker .fp-pathbar{display:table-row}.fp-pathbar.empty{display:none}.fp-pathbar .fp-path-folder{background:url('[[pix:theme|fp/path_folder]]') no-repeat 0 0;width:27px;height:12px;margin-left:4px}.dir-rtl .fp-pathbar .fp-path-folder{background:url('[[pix:theme|fp/path_folder_rtl]]') no-repeat right top;width:auto;height:12px;margin-left:4px}.dir-rtl .fp-pathbar span{display:inline-block;*display:inline;*zoom:1;float:right;margin-left:32px}.fp-pathbar .fp-path-folder-name{margin-left:32px;line-height:20px}.dir-rtl .fp-pathbar .fp-path-folder-name{margin-right:32px;line-height:20px}.fp-iconview .fp-file{float:left;text-align:center;position:relative;margin:10px 10px 35px}.fp-iconview .fp-thumbnail{min-width:110px;min-height:110px;line-height:110px;text-align:center;border:1px solid #FFFFFF;display:block}.fp-iconview .fp-thumbnail img{border:1px solid #ddd;padding:3px;vertical-align:middle;-webkit-box-shadow:1px 1px 2px 0 #ccc;-moz-box-shadow:1px 1px 2px 0 #ccc;box-shadow:1px 1px 2px 0 #ccc}.fp-iconview .fp-thumbnail:hover{background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 0 10px 0 #ccc;-moz-box-shadow:inset 0 0 10px 0 #ccc;box-shadow:inset 0 0 10px 0 #ccc}.fp-iconview .fp-filename-field{height:33px;word-wrap:break-word;overflow:hidden;position:absolute}.fp-iconview .fp-filename-field:hover{overflow:visible;z-index:1000}.fp-iconview .fp-filename-field .fp-filename{background:#FFFFFF;padding-top:5px;padding-bottom:12px;min-width:112px}.dir-rtl .fp-iconview .fp-file{float:right}.file-picker .yui3-datatable table{border:0 solid #BBBBBB;width:100%}#filesskin .file-picker .yui3-datatable-header{background:#FFFFFF;border-bottom:1px solid #CCCCCC;border-left:0 solid #FFFFFF;color:#555555}#filesskin .file-picker .yui3-datatable-odd .yui3-datatable-cell{background-color:#F6F6F6;border-left:0 solid #F6F6F6}#filesskin .file-picker .yui3-datatable-even .yui3-datatable-cell{background-color:#FFFFFF;border-left:0 solid #FFFFFF}.dir-rtl .file-picker .yui3-datatable-header{text-align:right}.file-picker .ygtvtn,.filemanager .ygtvtn{background:url('[[pix:moodle|y/tn]]') 0 0 no-repeat;width:17px;height:22px}.dir-rtl .filemanager .ygtvtn,.dir-rtl .file-picker .ygtvtn{background:url('[[pix:moodle|y/tn_rtl]]') 0 0 no-repeat;width:17px;height:22px}.file-picker .ygtvtm,.filemanager .ygtvtm{background:url('[[pix:moodle|y/tm]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.file-picker .ygtvtmh,.filemanager .ygtvtmh{background:url('[[pix:moodle|y/tm]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.file-picker .ygtvtp,.filemanager .ygtvtp{background:url('[[pix:moodle|y/tp]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.dir-rtl .file-picker .ygtvtp,.dir-rtl .filemanager .ygtvtp{background:url('[[pix:moodle|y/tp_rtl]]') 0 10px no-repeat}.file-picker .ygtvtph,.filemanager .ygtvtph{background:url('[[pix:moodle|y/tp]]') 0 10px no-repeat;width:13px;height:22px;cursor:pointer}.dir-rtl .file-picker .ygtvtph,.dir-rtl .filemanager .ygtvtph{background:url('[[pix:moodle|y/tp_rtl]]') 0 10px no-repeat}.file-picker .ygtvln,.filemanager .ygtvln{background:url('[[pix:moodle|y/ln]]') 0 0 no-repeat;width:17px;height:22px}.dir-rtl .file-picker .ygtvln,.dir-rtl .filemanager .ygtvln{background:url('[[pix:moodle|y/ln_rtl]]') 0 0 no-repeat}.file-picker .ygtvlm,.filemanager .ygtvlm{background:url('[[pix:moodle|y/lm]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.file-picker .ygtvlmh,.filemanager .ygtvlmh{background:url('[[pix:moodle|y/lm]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.file-picker .ygtvlp,.filemanager .ygtvlp{background:url('[[pix:moodle|y/lp]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.dir-rtl .file-picker .ygtvlp,.dir-rtl .filemanager .ygtvlp{background:url('[[pix:moodle|y/lp_rtl]]') 0 10px no-repeat}.file-picker .ygtvlph,.filemanager .ygtvlph{background:url('[[pix:moodle|y/lp]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.dir-rtl .file-picker .ygtvlph,.dir-rtl .filemanager .ygtvlph{background:url('[[pix:moodle|y/lp_rtl]]') 0 10px no-repeat}.file-picker .ygtvloading,.filemanager .ygtvloading{background:transparent url('[[pix:moodle|y/loading]]') 0 0 no-repeat;width:16px;height:22px}.file-picker .ygtvdepthcell,.filemanager .ygtvdepthcell{background:url('[[pix:moodle|y/vline]]') 0 0 no-repeat;width:17px;height:32px}.file-picker .ygtvblankdepthcell,.filemanager .ygtvblankdepthcell{width:17px;height:22px}a.ygtvspacer:hover{color:transparent;text-decoration:none}.ygtvlabel,.ygtvlabel:link,.ygtvlabel:visited,.ygtvlabel:hover{background-color:transparent;cursor:pointer;margin-left:2px;text-decoration:none}.file-picker .ygtvfocus,.filemanager .ygtvfocus{background-color:#EEEEEE}.fp-filename-icon{margin-top:10px;display:block;position:relative}.fp-icon{float:left;margin-top:-7px;width:24px;height:24px;margin-right:10px;text-align:center;line-height:24px}.dir-rtl .fp-icon{float:right;margin-left:10px;margin-right:0}.fp-icon img{max-height:24px;max-width:24px;vertical-align:middle}.fp-filename{padding-right:10px}.dir-rtl .fp-filename{padding-left:10px;padding-right:0}.file-picker .fp-login-form{height:100%;width:100%;display:table}.file-picker .fp-login-form table{margin:0 auto}.file-picker .fp-login-form p{text-align:center;margin-top:3em}.file-picker .fp-login-form .fp-login-input label{text-align:right;display:block}.file-picker .fp-login-form .fp-login-input .input{text-align:left}.file-picker .fp-login-form input[type="checkbox"]{width:15px;height:15px}.file-picker .fp-upload-form{height:100%;width:100%;display:table}.file-picker .fp-upload-form table{margin:0 auto}.file-picker.fp-dlg{text-align:center}.file-picker.fp-dlg .fp-dlg-text{padding:30px 20px 10px;font-size:12px}.file-picker.fp-dlg .fp-dlg-buttons{margin:0 20px}.file-picker.fp-msg{text-align:center}.file-picker.fp-msg .fp-msg-text{padding:40px 20px 10px 20px;min-width:200px;max-width:500px;max-height:300px;overflow:auto;font-size:12px}.file-picker.fp-msg.fp-msg-error .fp-msg-text{padding:40px 20px 10px 20px;font-size:12px}.file-picker .fp-content-error{height:100%;width:100%;display:table;text-align:center}.file-picker .fp-content-error .fp-error{height:100%;width:100%;display:table-cell;vertical-align:middle;padding:40px 20px 10px 20px;font-size:12px}.file-picker .fp-nextpage{clear:both}.file-picker .fp-nextpage .fp-nextpage-loading{display:none}.file-picker .fp-nextpage.loading .fp-nextpage-link{display:none}.file-picker .fp-nextpage.loading .fp-nextpage-loading{display:block;text-align:center;height:100px;padding-top:50px}.fp-select form{padding:20px 20px 0}.fp-select .fp-select-loading{text-align:center;margin-top:20px}.fp-select .fp-hr{clear:both;height:1px;background-color:#FFFFFF;border-bottom:1px solid #BBBBBB;width:auto;margin:10px 0}.fp-select table{padding:0 0 10px}.fp-select table .mdl-right{min-width:84px}.fp-select .fp-reflist .mdl-right{vertical-align:top}.fp-select .fp-select-buttons{float:right}.fp-select .fp-info{display:block;clear:both;padding:1px 20px 0}.fp-select .fp-thumbnail{float:left;min-width:110px;min-height:110px;line-height:110px;text-align:center;margin:10px 20px 0 0;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 0 10px 0 #ccc;-moz-box-shadow:inset 0 0 10px 0 #ccc;box-shadow:inset 0 0 10px 0 #ccc}.fp-select .fp-thumbnail img{border:1px solid #DDDDDD;padding:3px;vertical-align:middle;margin:10px}.fp-select .fp-fileinfo{display:inline-block;*display:inline;*zoom:1;margin-top:10px}.file-picker.fp-select .fp-fileinfo{max-width:240px}.fp-select .fp-fileinfo div{padding-bottom:5px}.file-picker.fp-select .uneditable{display:none}.file-picker.fp-select .fp-select-loading{display:none}.file-picker.fp-select.loading .fp-select-loading{display:block}.file-picker.fp-select.loading form{display:none}.fp-select .fp-dimensions.fp-unknown{display:none}.fp-select .fp-size.fp-unknown{display:none}.filemanager-loading{display:none}.jsenabled .filemanager-loading{display:block;margin-top:100px}.filemanager.fm-loading .filemanager-toolbar,.filemanager.fm-loading .fp-pathbar,.filemanager.fm-loading .filemanager-container,.filemanager.fm-loaded .filemanager-loading,.filemanager.fm-maxfiles .fp-btn-add,.filemanager.fm-maxfiles .dndupload-message,.filemanager.fm-noitems .fp-btn-download,.filemanager .fm-empty-container,.filemanager.fm-noitems .filemanager-container .fp-content{display:none}.filemanager .fp-img-downloading{display:none;padding-top:7px}.filemanager .filemanager-updating{display:none;text-align:center}.filemanager.fm-updating .filemanager-updating{display:block;margin-top:37px}.filemanager.fm-updating .fm-content-wrapper,.filemanager.fm-nomkdir .fp-btn-mkdir,.fitem.disabled .filemanager .filemanager-toolbar,.fitem.disabled .filemanager .fp-pathbar,.fitem.disabled .filemanager .fp-restrictions,.fitem.disabled .filemanager .fm-content-wrapper{display:none}.filemanager .fp-restrictions{text-align:right}.filemanager .fp-navbar{background:#F2F2F2;border:1px solid #BBBBBB;border-bottom:none}.filemanager-toolbar{padding:4px;overflow:hidden}.fp-pathbar{border-top:1px solid #BBBBBB;padding:5px 8px 1px;min-height:20px}.file-picker .fp-toolbar{padding:4px}.fp-toolbar .fp-btn-add,.fp-toolbar .fp-btn-download,.fp-toolbar .fp-btn-mkdir,.fp-toolbar .fp-tb-help,.fp-toolbar .fp-tb-manage,.fp-toolbar .fp-tb-logout,.fp-toolbar .fp-tb-refresh{border:1px solid #CCC;border-bottom:1px solid #B3B3B3;border-radius:4px;background:white;width:30px;height:30px}.fp-toolbar a:hover{background-image:radial-gradient(ellipse at center, #ffffff 60%, #dfdfdf 100%);background-color:#ebebeb}.fp-toolbar a:active{background-image:radial-gradient(ellipse at center, #ffffff 40%, #dfdfdf 100%);background-color:#dfdfdf}.fp-btn-add a,.fp-btn-download a,.fp-btn-mkdir a,.fp-tb-help a,.fp-tb-manage a,.fp-tb-logout a,.fp-tb-refresh a{display:block;width:30px;height:30px;border-radius:4px}.fp-btn-add img,.fp-btn-download img,.fp-btn-mkdir img,.fp-tb-help img,.fp-tb-manage img,.fp-tb-logout img,.fp-tb-refresh img{margin:7px}.filemanager .fp-pathbar.empty{display:none}.filepicker-filelist,.filemanager-container{background:#FFFFFF;clear:both;overflow:auto;border:1px solid #BBBBBB;min-height:140px;position:relative}.filemanager .fp-content{overflow:auto;max-height:472px;min-height:157px}.filemanager-container,.filepicker-filelist{overflow:hidden}.fitem.disabled .filepicker-filelist,.fitem.disabled .filemanager-container{background-color:#EBEBE4}.fitem.disabled .fp-btn-choose{color:#999}.fitem.disabled .filepicker-filelist .filepicker-filename{display:none}.fp-iconview .fp-reficons1{position:absolute;height:100%;width:100%;top:0;left:0}.fp-iconview .fp-reficons2{position:absolute;height:100%;width:100%;top:0;left:0}.fp-iconview .fp-file.fp-hasreferences .fp-reficons1{background:url('[[pix:theme|fp/link]]') no-repeat;background-position:bottom right}.fp-iconview .fp-file.fp-isreference .fp-reficons2{background:url('[[pix:theme|fp/alias]]') no-repeat;background-position:bottom left}.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail img{display:none}.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail{background:url([[pix:s/dead]]) no-repeat;background-position:center center}.filemanager .yui3-datatable table{border:0 solid #BBBBBB;width:100%}.filemanager .yui3-datatable-header{background:#FFFFFF !important;border-bottom:1px solid #CCCCCC !important;border-left:0 solid #FFFFFF !important;color:#555555 !important}.filemanager .yui3-datatable-odd .yui3-datatable-cell{background-color:#F6F6F6 !important;border-left:0 solid #F6F6F6}.filemanager .yui3-datatable-even .yui3-datatable-cell{background-color:#FFFFFF !important;border-left:0 solid #FFFFFF}.filemanager .fp-filename-icon.fp-hasreferences .fp-reficons1{background:url('[[pix:theme|fp/link_sm]]') no-repeat 0 0;height:100%;width:100%;position:absolute;top:8px;left:17px;z-index:1000}.filemanager .fp-filename-icon.fp-isreference .fp-reficons2{background:url('[[pix:theme|fp/alias_sm]]') no-repeat 0 0;height:100%;width:100%;position:absolute;top:9px;left:-6px;z-index:1001}.filemanager .fp-contextmenu{display:none}.filemanager .fp-iconview .fp-folder.fp-hascontextmenu .fp-contextmenu{display:block;position:absolute;right:7px;bottom:5px}.filemanager .fp-treeview .fp-folder.fp-hascontextmenu .fp-contextmenu,.filemanager .fp-tableview .fp-folder.fp-hascontextmenu .fp-contextmenu{display:inline;position:absolute;left:14px;margin-right:-20px;top:6px}.dir-rtl .filemanager .fp-iconview .fp-folder.fp-hascontextmenu .fp-contextmenu{left:7px;right:inherit}.dir-rtl .filemanager .fp-treeview .fp-folder.fp-hascontextmenu .fp-contextmenu,.dir-rtl .filemanager .fp-tableview .fp-folder.fp-hascontextmenu .fp-contextmenu{left:inherit;right:16px;margin-right:0}.filepicker-filelist .filepicker-container,.filemanager.fm-noitems .fm-empty-container{display:block;position:absolute;top:10px;bottom:10px;left:10px;right:10px;border:2px dashed #BBBBBB;padding-top:85px;text-align:center}.filepicker-filelist .dndupload-target,.filemanager-container .dndupload-target{background:#FFFFFF;position:absolute;top:10px;bottom:10px;left:10px;right:10px;border:2px dashed #fb7979;padding-top:85px;text-align:center;-webkit-box-shadow:0 0 0 10px #fff;-moz-box-shadow:0 0 0 10px #fff;box-shadow:0 0 0 10px #fff}.filepicker-filelist.dndupload-over .dndupload-target,.filemanager-container.dndupload-over .dndupload-target{background:#FFFFFF;position:absolute;top:10px;bottom:10px;left:10px;right:10px;border:2px dashed #6c8cd3;padding-top:85px;text-align:center}.dndupload-message{display:none}.dndsupported .dndupload-message{display:inline}.dnduploadnotsupported-message{display:none}.dndnotsupported .dnduploadnotsupported-message{display:inline}.dndupload-target{display:none}.dndsupported .dndupload-ready .dndupload-target{display:block}.dndupload-uploadinprogress{display:none;text-align:center}.dndupload-uploading .dndupload-uploadinprogress{display:block}.dndupload-arrow{background:url([[pix:theme|fp/dnd_arrow]]) center no-repeat;width:100%;height:80px;position:absolute;top:5px}.fitem.disabled .filepicker-container,.fitem.disabled .fm-empty-container{display:none}.dndupload-progressbars{padding:10px;display:none}.dndupload-inprogress .dndupload-progressbars{display:block}.dndupload-inprogress .fp-content{display:none}.filemanager.fm-noitems .dndupload-inprogress .fm-empty-container{display:none}.filepicker-filelist.dndupload-inprogress .filepicker-container{display:none}.filepicker-filelist.dndupload-inprogress a{display:none}.filemanager.fp-select .fp-select-loading{display:none}.filemanager.fp-select.loading .fp-select-loading{display:block}.filemanager.fp-select.loading form{display:none}.filemanager.fp-select.fp-folder .fp-license,.filemanager.fp-select.fp-folder .fp-author,.filemanager.fp-select.fp-file .fp-file-unzip,.filemanager.fp-select.fp-folder .fp-file-unzip,.filemanager.fp-select.fp-file .fp-file-zip,.filemanager.fp-select.fp-zip .fp-file-zip{display:none}.filemanager.fp-select .fp-file-setmain,.filemanager.fp-select .fp-file-setmain-help{display:none}.filemanager.fp-select.fp-cansetmain .fp-file-setmain,.filemanager.fp-select.fp-cansetmain .fp-file-setmain-help{display:inline-block;*display:inline;*zoom:1}.filemanager .fp-mainfile .fp-filename{font-weight:bold}.filemanager.fp-select.fp-folder .fp-file-download{display:none}.fm-operation{font-weight:bold}.filemanager.fp-select .fp-original.fp-unknown,.filemanager.fp-select .fp-original .fp-originloading{display:none}.filemanager.fp-select .fp-original.fp-loading .fp-originloading{display:inline}.filemanager.fp-select .fp-reflist.fp-unknown,.filemanager.fp-select .fp-reflist .fp-reflistloading{display:none}.filemanager.fp-select .fp-refcount{max-width:265px}.filemanager.fp-select .fp-reflist.fp-loading .fp-reflistloading{display:inline}.filemanager.fp-select .fp-reflist .fp-value{background:#F9F9F9;border:1px solid #BBBBBB;padding:8px 7px;margin:0;max-width:265px;max-height:75px;overflow:auto}.filemanager.fp-select .fp-reflist .fp-value li{padding-bottom:7px}.filemanager.fp-mkdir-dlg{text-align:center}.filemanager.fp-mkdir-dlg .fp-mkdir-dlg-text{text-align:left;margin:20px}.dir-rtl .filemanager .fp-mkdir-dlg p{text-align:right}.filemanager.fp-dlg{text-align:center}.filemanager.fp-dlg .fp-dlg-text{padding:0 10px;min-width:200px;max-width:340px;max-height:300px;overflow:auto;line-height:22px;margin:40px 20px 20px;font-size:12px}.file-picker div.bd{text-align:left}.dir-rtl .filemanager .fp-restrictions{text-align:left}.dir-rtl .file-picker div.bd,.dir-rtl .file-picker .fp-pathbar,.dir-rtl .file-picker .fp-list,.dir-rtl #filemenu .yuimenuitemlabel,.dir-rtl .filemanager-container .yui3-skin-sam .yui3-datatable-header{text-align:right}.dir-rtl .filepicker .yui-layout-unit-left{left:500px}.dir-rtl .filepicker .yui-layout-unit-center{left:0}.dir-rtl .file-picker .fp-toolbar .fp-tb-search input{background-position:208px 7px;padding:2px 30px 1px 3px}.dir-rtl .file-picker .fp-toolbar div{float:right;margin-left:4px}.fp-formset{max-width:500px;padding:10px}.fp-formset input[type="file"]{line-height:inherit}.fp-forminset{max-width:400px;padding:0 10px}.fp-forminset .control-group.control-radio{margin-bottom:0}.fp-forminset .control-group label.control-label{width:105px}.fp-forminset .control-group label.control-radio{float:right;text-align:left;width:215px}.fp-forminset .control-group .controls{margin-left:125px}.fp-forminset .control-group .controls select{width:100%}.fp-forminset .control-group .controls.control-radio input{margin-top:3px}.fp-forminset .fp-select-buttons{float:none}.fp-forminset input[type="text"]{width:228px}.fp-fileinfo .fp-value{display:inline-block;padding-left:5px}.dir-rtl .fp-forminset{max-width:400px}.dir-rtl .fp-forminset .control-group label.control-label{float:right;text-align:left}.dir-rtl .fp-forminset .control-group label.control-radio{float:left;text-align:right;width:215px}.dir-rtl .fp-forminset .control-group .controls{margin-left:0;margin-right:125px}.dir-rtl .fp-forminset .fp-select-buttons{float:left}.dir-rtl .fp-forminset input[type="text"]{width:228px}.dir-rtl .fp-fileinfo .fp-value{display:inline-block;padding-right:5px}.dir-rtl .fp-select .fp-thumbnail{margin:10px 0 0 0}.dir-rtl .filepicker .fp-formset label{float:right;text-align:left}.dir-rtl .filepicker .fp-formset .controls{margin-left:0;text-align:right}.message-discussion-noframes h1{font-size:1em}.message-discussion-noframes #userinfo .commands,.message .noframesjslink,.message .link{font-size:11.9px}.message .heading{font-size:1em;font-weight:bold;clear:both;word-wrap:break-word}.message .author{font-weight:bold}.message .time{font-style:italic}#page-message-user .commands span{font-size:.7em}#page-message-user .name{font-weight:bold;font-size:1.1em}.message .time{color:#999}#page-message-messages{padding:10px}#page-message-send .notifysuccess{padding:1px}#page-message-send td.fixeditor{text-align:center}.message{overflow:hidden}.message .note{padding:10px}table.message .searchresults td{padding:5px}.message .contactselector{width:auto;float:left}@media screen and (min-width:1000px){.message .contactselector{float:left;padding:0 8px 0 0}}.message .contactselector .singleselect{width:240px}.dir-rtl .message .contactselector{float:right}.message .contactselector .paging{z-index:1;position:relative}.message .contactselector #message_participants{max-width:240px}.message .contactselector .message-contacts{list-style-type:none;margin:0}.message .contactselector .message-contacts li{clear:both;position:relative;min-height:23px;padding:2px}.message .contactselector .message-contacts li:nth-child(odd){background:rgba(120,120,255,0.1)}.message .contactselector .message-contacts li>div{display:block;height:100%}.message .contactselector .message-contacts li>div>*{vertical-align:middle;display:inline-block}.message .contactselector .message-contacts li>div.pix{position:relative;float:left}.message .contactselector .message-contacts li>div.link{white-space:nowrap;width:60px;position:relative;float:right;text-align:right}.message .contactselector .message-contacts li>div.contact{position:relative;word-break:break-all}.message .contactselector .message-contacts li>div.contact a{line-height:22px}.dir-ltr .message .message-contacts li{text-align:left}.dir-ltr .message .message-contacts li>div.pix{float:left}.dir-ltr .message .message-contacts li>div.link{float:right;text-align:right}.dir-ltr .message .message-contacts li>div.contact{margin:0 60px 0 24px}.dir-ltr .message .message-contacts li>div.contact.nolinks{margin:0 0 0 24px}.dir-rtl .message .message-contacts li{text-align:right}.dir-rtl .message .message-contacts li>div.pix{float:right}.dir-rtl .message .message-contacts li>div.link{float:left;text-align:left}.dir-rtl .message .message-contacts li>div.contact{margin:0 24px 0 60px}.dir-rtl .message .message-contacts li>div.contact.nolinks{margin:0 24px 0 0}.message .messagearea{float:none;overflow:hidden;min-height:200px}@media screen and (min-width:1000px){.message .messagearea{border-left:1px solid #ddd;padding:0 8px}}@media screen and (max-width:1000px){.message .messagearea{width:100%}}.message .messagearea .messagehistorytype{clear:both;padding-bottom:20px}.message .messagearea .messagehistory .user{vertical-align:top;width:45%;min-width:100px;float:left}.message .messagearea .messagehistory .user>div{text-align:center}.message .messagearea .messagehistory .between{float:left;width:16px;margin:0 1%;padding-top:40px}@media screen and (min-width:800px){.message .messagearea .messagehistory .between{margin:0 3%}.message .messagearea .messagehistory .user{width:32%}.message .messagearea .messagehistory .user:first-child{margin-left:13%}.message .messagearea .messagehistory .user:last-child{margin-right:13%}.dir-rtl .message .messagearea .messagehistory .user:first-child{margin-right:13%;margin-left:0}.dir-rtl .message .messagearea .messagehistory .user:last-child{margin-left:13%;margin-right:0}}@media screen and (min-width:1200px){.message .messagearea .messagehistory .user{width:25%}.message .messagearea .messagehistory .user:first-child{margin-left:20%}.message .messagearea .messagehistory .user:last-child{margin-right:20%}.dir-rtl .message .messagearea .messagehistory .user:first-child{margin-left:0;margin-right:20%}.dir-rtl .message .messagearea .messagehistory .user:last-child{margin-right:0;margin-left:20%}}.dir-rtl .message .messagearea .messagehistory .between,.dir-rtl .message .messagearea .messagehistory .user{float:right}.message .messagearea .messagehistory .heading{width:100%;clear:both}.message .messagearea .messagehistory .left{margin-bottom:10px;width:50%;float:left;position:relative;clear:both}.dir-rtl .message .messagearea .messagehistory .left{float:right}.message .messagearea .messagehistory .right{margin-bottom:10px;width:50%;float:right;position:relative;clear:both}.dir-rtl .message .messagearea .messagehistory .right{float:left}.message .messagearea .messagehistory .notification{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3;padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin-bottom:0;margin-top:5px}.message .messagearea .messagehistory .notification blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.dir-ltr .message .messagearea .messagehistory .message{margin-right:20px}.dir-ltr .message .messagearea .messagehistory .right .message{margin-left:20px}.dir-rtl .message .messagearea .messagehistory .message{margin-left:20px}.dir-rtl .message .messagearea .messagehistory .right .message{margin-right:20px}.message .messagearea .messagehistory .messageactive{background-color:#f5f5f5}.message .messagearea .messagehistory .messagecontent .deleteicon{width:20px;position:absolute;top:-2px}.dir-ltr .message .messagearea .messagehistory .messagecontent .deleteicon{right:0}.dir-rtl .message .messagearea .messagehistory .messagecontent .deleteicon{left:0}.message .messagearea .messagesend{padding-top:20px;clear:both}.message .messagearea .messagesend .messagesendbox{width:100%;box-sizing:border-box}.message .messagearea .messagesend fieldset{padding:0;margin:0}.message .messagearea .messagerecent{text-align:left;width:100%}.message .messagearea .messagerecent .singlemessage{border-bottom:1px solid #ddd;padding:10px}.message .messagearea .messagerecent .singlemessage .otheruser span{padding:5px}.message .messagearea .messagerecent .singlemessage .messagedate{float:right}.message .hiddenelement{display:none}.message .visible{display:inline}.message #usergroupselector.fieldset,.message #viewing{width:100%}.messagesearchresults{margin-bottom:40px}.messagesearchresults td{padding:0 10px 0 20px}.messagesearchresults td span{white-space:nowrap}.messagesearchresults td img.userpicture{padding-right:.45em;vertical-align:text-bottom}.dir-rtl .messagesearchresults td img.userpicture{padding-left:.45em;padding-right:0}.messagesearchresults td span img{padding:0 0 0 .45em;vertical-align:text-bottom}.dir-rtl .messagesearchresults td span img{padding:0 .45em 0 0}#newmessageoverlay{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3;margin:0 1em;position:fixed;bottom:0;right:0}#newmessageoverlay blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}#newmessageoverlay #usermessage{padding:10px}#page-user-action_redir #edit-messagebody{width:auto}.core_message-messenger-sendmessage-hidden{display:none}.core_message-messenger-sendmessage .message-actions{position:relative}.core_message-messenger-sendmessage .message-area{height:240px;max-height:100%;position:relative;margin-bottom:10px}.core_message-messenger-sendmessage .message-input{width:100%;height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.core_message-messenger-sendmessage .message-send{margin:0;float:right}.core_message-messenger-sendmessage .message-notice-area{display:table;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%}.core_message-messenger-sendmessage .message-notice{display:table-cell;vertical-align:middle;text-align:center}.core_message-messenger-sendmessage .message-notice>div{background:#eee;padding:5px;font-size:12px}.core_message-messenger-sendmessage .message-footer{margin-top:3px;line-height:20px}.core_message-messenger-sendmessage .message-history{position:absolute;bottom:0}.dir-rtl .core_message-messenger-sendmessage .message-send{float:left}.questionbank h2{margin-top:0}.questioncategories h3{margin-top:0}#chooseqtypebox{margin-top:1em}#chooseqtype h3{margin:0 0 .3em}#chooseqtype .instruction{display:none}#chooseqtype .fakeqtypes{border-top:1px solid silver}#chooseqtype .qtypeoption{margin-bottom:.5em}#chooseqtype label{display:block}#chooseqtype .qtypename img{padding:0 .3em}#chooseqtype .qtypename{display:inline-table;width:16em}#chooseqtype .qtypesummary{display:block;margin:0 2em}#chooseqtype .submitbuttons{margin:.7em 0;text-align:center}#qtypechoicecontainer{display:none}#qtypechoicecontainer_c.yui-panel-container.shadow .underlay{background:none}#qtypechoicecontainer.yui-panel .hd{color:#333;letter-spacing:1px;text-shadow:1px 1px 1px #fff;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px;-webkit-border-top-left-radius:10px;-moz-border-radius-topleft:10px;border-top-left-radius:10px;border:1px solid #ccc;border-bottom:1px solid #bbb;background-color:#ebebeb;background-image:-moz-linear-gradient(top, #fff, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc));background-image:-webkit-linear-gradient(top, #fff, #ccc);background-image:-o-linear-gradient(top, #fff, #ccc);background-image:linear-gradient(to bottom, #fff, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffcccccc', GradientType=0)}#qtypechoicecontainer{font-size:12px;color:#333;background:#F2F2F2;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:1px solid #ccc;border-top:0 none;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}#qtypechoicecontainer #chooseqtype{width:40em}#chooseqtypehead h3{margin:0;font-weight:normal}#chooseqtype .qtypes{position:relative;border-bottom:1px solid #bbb;padding:.24em 0}#chooseqtype .alloptions{overflow-x:hidden;overflow-y:auto;max-height:400px;max-height:calc(85vh);max-height:60vh;width:60%}#chooseqtype .qtypeoption{margin-bottom:0;padding:.3em .3em .3em 1.6em}#chooseqtype .qtypeoption img{vertical-align:text-bottom;padding-left:1em;padding-right:.5em}#chooseqtype .selected{background-color:#fff;-webkit-box-shadow:0 0 10px 0 #ccc;-moz-box-shadow:0 0 10px 0 #ccc;box-shadow:0 0 10px 0 #ccc}#chooseqtype .instruction,#chooseqtype .qtypesummary{display:none;position:absolute;top:0;right:0;bottom:0;left:60%;margin:0;overflow-x:hidden;padding:1.5em 1.6em;background-color:#fff;overflow-y:auto}#chooseqtype .instruction,#chooseqtype .selected .qtypesummary{display:block}#categoryquestions{margin:0}#categoryquestions td,#categoryquestions th{padding:0 .2em}#categoryquestions th{text-align:left;font-weight:normal}#categoryquestions .checkbox{padding-left:5px}#categoryquestions .checkbox input[type="checkbox"]{margin-left:0;float:none}#categoryquestions img.iconsmall{padding:0}#categoryquestions .iconcol{padding:3px}#categoryquestions label{margin:0}#page-mod-quiz-edit div.questionbankwindow div.header{margin:0}#page-mod-quiz-edit div.questionbankwindow.block{padding:0}.dir-rtl #categoryquestions th{text-align:right}.questionbank .singleselect{margin:0}#combinedfeedbackhdr div.fhtmleditor{padding:0}#combinedfeedbackhdr div.fcheckbox{margin-bottom:1em}#multitriesheader div.fitem_feditor{margin-top:1em}#multitriesheader div.fitem_fgroup{margin-bottom:1em}#multitriesheader div.fitem_fgroup fieldset.felement label{margin-left:.3em;margin-right:.3em}body.path-question-type .fitem_fgroup .accesshide{font:inherit;left:0;position:static;padding-right:.3em}.que{clear:left;text-align:left;margin:0 auto 1.8em auto}.dir-rtl .que{text-align:right}.que .info{float:left;width:7em;padding:.5em;margin-bottom:1.8em;background-color:#eee;border:1px solid #dcdcdc;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.que h3.no{margin:0;font-size:.8em;line-height:1}.que span.qno{font-size:1.5em;font-weight:bold}.que .info>div{font-size:.8em;margin-top:.7em}.que .info .questionflag.editable{cursor:pointer}.que .info .editquestion img,.que .info .questionflag img,.que .info .questionflag input{vertical-align:bottom}.que .content{margin:0 0 0 8.5em}.que .formulation,.que .outcome,.que .comment{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#8a6d3b}.que .formulation{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;color:#333}.formulation input[type="text"],.formulation select{width:auto;vertical-align:baseline}.path-mod-quiz input[size]{width:auto}.que .comment{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.que .history{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3}.que .history blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.que .ablock{margin:.7em 0 .3em 0}.que .im-controls{margin-top:.5em;text-align:left}.dir-rtl .que .im-controls{text-align:right}.que .specificfeedback,.que .generalfeedback,.que .rightanswer,.que .im-feedback,.que .feedback,.que p{margin:0 0 .5em}.que .qtext{margin-bottom:1.5em}.que .correctness{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.que .correctness:empty{display:none}.que .correctness-important{background-color:#b94a48}.que .correctness-important[href]{background-color:#953b39}.que .correctness-warning{background-color:#f89406}.que .correctness-warning[href]{background-color:#c67605}.que .correctness-success{background-color:#468847}.que .correctness-success[href]{background-color:#356635}.que .correctness-info{background-color:#3a87ad}.que .correctness-info[href]{background-color:#2d6987}.que .correctness-inverse{background-color:#333}.que .correctness-inverse[href]{background-color:#1a1a1a}.que .correctness.correct{background-color:#468847}.que .correctness.partiallycorrect{background-color:#f89406}.que .correctness.notanswered,.que .correctness.incorrect{background-color:#b94a48}.que .validationerror{color:#b94a48}.formulation .correct{background-color:#dff0d8}.formulation .partiallycorrect{background-color:#fcf8e3}.formulation .incorrect{background-color:#f2dede}.formulation select.correct,.formulation input.correct{color:#468847;background-color:#dff0d8;border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.formulation select.correct:focus,.formulation input.correct:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.formulation select.partiallycorrect,.formulation input.partiallycorrect{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.formulation select.partiallycorrect:focus,.formulation input.partiallycorrect:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.formulation select.incorrect,.formulation input.incorrect{color:#b94a48;background-color:#f2dede;border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.formulation select.incorrect:focus,.formulation input.incorrect:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.que .grading,.que .comment,.que .commentlink,.que .history{margin-top:.5em}.que .history h3{margin:0 0 .2em;font-size:1em}.que .history table{width:100%;margin:0}.que .history .current{font-weight:bold}.que .questioncorrectnessicon{vertical-align:text-bottom}.que input.questionflagimage{padding-right:3px}.dir-rtl .que input.questionflagimage{padding-left:3px;padding-right:0}.importerror{margin-top:10px;border-bottom:1px solid #555}.mform .que.comment .fitemtitle{width:20%}#page-question-preview #techinfo{margin:1em 0}.dir-rtl #chooseqtype .instruction,.dir-rtl #chooseqtype .qtypesummary{right:60%;left:0;border-left:0;border-right:1px solid grey}#page-mod-quiz-edit .box.generalbox.questionbank{padding:.5em}#page-mod-quiz-edit .questionbank .categorypagingbarcontainer,#page-mod-quiz-edit .questionbank .categoryquestionscontainer,#page-mod-quiz-edit .questionbank .choosecategory{padding:0}#page-mod-quiz-edit .questionbank .choosecategory select{width:100%}#page-mod-quiz-edit div.questionbank .categoryquestionscontainer{background:transparent}#page-mod-quiz-edit #categoryquestions>thead{background:#FFF}#page-mod-quiz-edit #categoryquestions>tbody>tr:nth-of-type(even){background:#e4e4e4}#page-mod-quiz-edit .questionbankwindow div.header{color:#444;text-shadow:none;padding:3px;-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;margin:0 -10px 0 -10px;padding:2px 10px 2px 10px;background:transparent}#page-mod-quiz-edit .questionbankwindow div.header a:link,#page-mod-quiz-edit .questionbankwindow div.header a:visited{color:#0070a8}#page-mod-quiz-edit .questionbankwindow div.header a:hover{color:#003d5c}#page-mod-quiz-edit .createnewquestion{padding:.3em 0}#page-mod-quiz-edit .createnewquestion div,#page-mod-quiz-edit .createnewquestion input{margin:0}#page-mod-quiz-edit .questionbankwindow div.header .title{color:#333}#page-mod-quiz-edit div.container div.generalbox{background-color:transparent;padding:1.5em}#page-mod-quiz-edit .categoryinfo{background-color:transparent;border-bottom:none}#page-mod-quiz-edit .createnewquestion .singlebutton input{margin-bottom:0}#page-mod-quiz-edit div.questionbank .categorysortopotionscontainer,#page-mod-quiz-edit div.questionbank .categoryselectallcontainer{padding:0 0 1.5em 0}#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer{background-color:transparent;margin:0;border-top:0;border-bottom:0}#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer .paging{padding:0 .3em}#page-mod-quiz-edit div.question div.content div.questioncontrols{background-color:#fff}#page-mod-quiz-edit div.question div.content div.points{margin-top:-0.5em;padding-bottom:0;border:none;background-color:#fff;position:static;width:12.1em;float:right;margin-right:60px}#page-mod-quiz-edit.dir-rtl div.question div.content div.points{float:left;margin-left:60px;margin-right:0}#page-mod-quiz-edit div.question div.content div.points br{display:none}#page-mod-quiz-edit div.question div.content div.points label{display:inline-block}#page-mod-quiz-edit div.quizpage .pagecontent .pagestatus{background-color:#fff}#page-mod-quiz-edit .quizpagedelete,#page-mod-quiz-edit .quizpagedelete img{background-color:transparent}#page-mod-quiz-edit div.quizpage .pagecontent{border:1px solid #ddd;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;overflow:hidden}#page-mod-quiz-edit div.questionbank .categoryinfo{padding:.3em 0}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer{padding:0}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer strong{display:block}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer hr,#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer br{display:none}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer strong{margin-left:-0.3em}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer strong label{margin-left:.3em}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer input{margin-left:0}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer input+input{margin-left:5px}.questionbankwindow .module{width:auto}#page-mod-quiz-edit div.editq div.question div.content{background-color:#fff;border:1px solid #ddd;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;overflow:hidden}.path-mod-quiz .statedetails{display:block;font-size:.9em}a#hidebankcmd{color:#0070a8}.que.shortanswer .answer{padding:0}.que label{display:inline}body.path-question-type .mform fieldset.hidden{padding:0;margin:.7em 0 0}.userprofile .fullprofilelink{text-align:center;margin:10px}.userprofile .page-context-header{margin-bottom:10px}.userprofile .description{margin-top:10px;margin-bottom:30px}.userprofile .profile_tree{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px}.userprofile .profile_tree section{display:inline-block;width:100%;border:1px solid #ddd;border-radius:4px;padding:0 15px;margin-bottom:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.userprofile .profile_tree section h3{font-size:18px;line-height:20px}.userprofile dl.list{*zoom:1}.userprofile dl.list:before,.userprofile dl.list:after{display:table;content:"";line-height:0}.userprofile dl.list:after{clear:both}.userprofile dl.list dt{float:left;width:180px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.userprofile dl.list dd{margin-left:200px}.user-box{margin:8px;width:115px;height:160px;text-align:center;float:left;clear:none}#page-user-profile .node_category ul,.path-user .node_category ul{margin-left:0;margin-right:0;list-style:none}#page-user-profile .node_category li,.path-user .node_category li{margin-top:5px}#page-user-profile .node_category .editprofile,.path-user .node_category .editprofile,#page-user-profile .node_category .viewmore,.path-user .node_category .viewmore{text-align:right}.dir-rtl .user-box{float:right}.dir-rtl .userprofile .node_category .editprofile,.dir-rtl .userprofile .node_category .viewmore{text-align:left}.dir-rtl .userprofile dl dd{margin-left:0;margin-right:10px}@media (max-width:480px){.userprofile .profile_tree{-webkit-column-count:1;-moz-column-count:1;column-count:1;-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px}}.userlist .action-icon img{vertical-align:middle}.userlist #showall{margin:10px 0}.userlist .buttons{text-align:center}.userlist .buttons label{padding:0 3px}.userlist table#participants{text-align:center}.userlist table#participants td,.userlist table#participants th{vertical-align:middle;text-align:left;padding:4px}.userlist table.controls{width:100%}.userlist table.controls tr{vertical-align:top}.userlist table.controls .right{text-align:right}.userlist table.controls .groupselector{margin-bottom:0;margin-top:0}.userlist table.controls .groupselector label{display:block}.userinfobox{width:100%;border:1px solid;border-collapse:separate;padding:10px}.userinfobox .left,.userinfobox .side{width:100px;vertical-align:top}.userinfobox .userpicture{width:100px;height:100px}.userinfobox .content{vertical-align:top}.userinfobox .links{width:100px;padding:5px;vertical-align:bottom}.userinfobox .links a{display:block}.userinfobox .list td{padding:3px}.userinfobox .username{padding-bottom:20px;font-weight:bold}.userinfobox td.label{text-align:right;white-space:nowrap;vertical-align:top;font-weight:bold}.groupinfobox{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3}.groupinfobox blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.groupinfobox .left{padding:10px;width:100px;vertical-align:top}.course-participation #showall{text-align:center;margin:10px 0}#user-policy .noticebox{text-align:center;margin-left:auto;margin-right:auto;margin-bottom:10px;width:80%;height:250px}#user-policy #policyframe{width:100%;height:100%}.iplookup #map{margin:auto}.userselector select{width:100%}.userselector div{margin-top:.2em}.userselector div label{margin-right:.3em}.userselector .userselector-infobelow{font-size:.8em}#userselector_options{padding:.3em 0}#userselector_options .collapsibleregioncaption{font-weight:bold}#userselector_options p{margin:.2em 0;text-align:left}.dir-rtl #userselector_options p{text-align:right}#page-user-profile .messagebox{text-align:center;margin-left:auto;margin-right:auto}#page-course-view-weeks .messagebox{text-align:center;margin-left:auto;margin-right:auto}.dir-rtl .userlist table#participants td,.dir-rtl .userlist table#participants th{text-align:right}.dir-rtl .userlist table#participants{margin:0 auto}#page-my-index.dir-rtl .block h3{text-align:right}.profileeditor>.singleselect{margin:0 .5em 0 0}.profileeditor>.singlebutton{display:inline-block;margin:0 0 0 .5em}.profileeditor>.singlebutton div,.profileeditor>.singlebutton input{margin:0}.dir-rtl .profileeditor>.singleselect{margin:0 0 0 .5em}.dir-rtl .profileeditor>.singlebutton{margin:0 .5em 0 0}#groupeditform .groups,#groupeditform .members{width:49%;float:left;text-align:left}.dir-rtl #groupeditform .groups,.dir-rtl #groupeditform .members{float:right;text-align:right}.preferences-group ul{list-style:none;margin-left:0;margin-right:0}.dir-rtl .preferences-group{float:right}/*!
+.layout-option-noheader #page-header,.layout-option-nonavbar #page-navbar,.layout-option-nofooter #page-footer,.layout-option-nocourseheader .course-content-header,.layout-option-nocoursefooter .course-content-footer{display:none}.empty-region-side-pre #block-region-side-pre,.empty-region-side-post #block-region-side-post,.jsenabled.docked-region-side-post #block-region-side-post,.jsenabled.docked-region-side-pre #block-region-side-pre{display:none}.content-only #region-main.span9,.empty-region-side-post #region-bs-main-and-pre.span9,.empty-region-side-pre #region-bs-main-and-post.span9,.empty-region-side-post #region-bs-main-and-post.span9 #region-main.span8,.jsenabled.docked-region-side-post #region-bs-main-and-pre.span9,.jsenabled.docked-region-side-post #region-bs-main-and-post.span9 #region-main.span8,.jsenabled.docked-region-side-pre #region-bs-main-and-post.span9{width:100%}.empty-region-side-pre #region-bs-main-and-pre.span9 #region-main,.jsenabled.docked-region-side-pre #region-bs-main-and-pre.span9 #region-main{float:none;width:100%}.empty-region-side-pre #region-bs-main-and-post.span9 #region-main.span8,.jsenabled.docked-region-side-pre #region-bs-main-and-post.span9 #region-main.span8{float:right}.content-only #region-main-box,.content-only #region-main{width:100%}.empty-region-side-pre.used-region-side-post #region-main{width:100%}.empty-region-side-post.used-region-side-pre #region-main-box{width:100%}.jsenabled.docked-region-side-pre.empty-region-side-pre.used-region-side-post #region-main{width:100%}.jsenabled.docked-region-side-post.empty-region-side-post.used-region-side-pre #region-main-box{width:100%}.empty-region-side-post.used-region-side-pre #region-main.span8,.jsenabled.docked-region-side-post.used-region-side-pre #region-main.span8{width:74.46808511%;*width:74.41489362%}.empty-region-side-post.used-region-side-pre #block-region-side-pre.span4,.jsenabled.docked-region-side-post.used-region-side-pre #block-region-side-pre.span4{width:23.40425532%;*width:23.35106383%}.dir-ltr,.mdl-left,.dir-rtl .mdl-right{text-align:left}.dir-rtl,.mdl-right,.dir-rtl .mdl-left{text-align:right}#add,#remove,.centerpara,.mdl-align{text-align:center}a.dimmed,a.dimmed:link,a.dimmed:visited,a.dimmed_text,a.dimmed_text:link,a.dimmed_text:visited,.dimmed_text,.dimmed_text a,.dimmed_text a:link,.dimmed_text a:visited,.usersuspended,.usersuspended a,.usersuspended a:link,.usersuspended a:visited,.dimmed_category,.dimmed_category a{color:#999}.activity.label .dimmed_text{opacity:.5;filter:alpha(opacity=50)}.unlist,.unlist li,.inline-list,.inline-list li,.block .list,.block .list li,.section li.activity,.section li.movehere,.tabtree li{list-style:none;margin:0;padding:0}.inline,.inline-list li{display:inline}.notifytiny{font-size:10.5px}.notifytiny li,.notifytiny td{font-size:100%}.red,.notifyproblem{color:#b94a48}.green,.notifysuccess{color:#468847}.highlight{background:#d9edf7}.reportlink{text-align:right}a.autolink.glossary:hover{cursor:help}.collapsibleregioncaption{white-space:nowrap}.pagelayout-mydashboard.jsenabled .collapsibleregioncaption{cursor:pointer}.collapsibleregioncaption img{vertical-align:middle}.jsenabled .hiddenifjs{display:none}.visibleifjs{display:none}.jsenabled .visibleifjs{display:inline}.jsenabled .collapsibleregion{overflow:hidden}.jsenabled .collapsed .collapsibleregioninner{visibility:hidden}.collapsible-actions{display:none;text-align:right}.dir-rtl .collapsible-actions{text-align:left}.jsenabled .collapsible-actions{display:block}.collapsible-actions .collapseexpand{padding-left:20px;background:url([[pix:t/collapsed]]) 2px center no-repeat}.dir-rtl .collapsible-actions .collapseexpand{padding-right:20px;padding-left:0;background:url([[pix:t/collapsed_rtl]]) right center no-repeat}.collapsible-actions .collapse-all,.dir-rtl .collapsible-actions .collapse-all{background-image:url([[pix:t/expanded]])}.yui-overlay .yui-widget-bd{background-color:#FFEE69;border:1px solid #A6982B;border-top-color:#D4C237;color:#000000;left:0;padding:2px 5px;position:relative;top:0;z-index:1}.clearer{background:transparent;border-width:0;clear:both;display:block;height:1px;margin:0;padding:0}.bold,.warning,.errorbox .title,.pagingbar .title,.pagingbar .thispage{font-weight:bold}img.resize{height:1em;width:1em}.block img.resize,.breadcrumb img.resize{height:.9em;width:.8em}img.icon{height:16px;vertical-align:text-bottom;width:16px;padding-right:6px}.dir-rtl img.icon{padding-left:6px;padding-right:0}img.iconsmall{height:12px;margin-right:3px;vertical-align:middle;width:12px}img.iconhelp,.helplink img{height:16px;padding-left:3px;vertical-align:text-bottom;width:16px}h1 img.iconhelp,h1 img.icon,h2 img.iconhelp,h2 img.icon,h3 img.iconhelp,h3 img.icon,h4 img.iconhelp,h4 img.icon,h5 img.iconhelp,h5 img.icon,h6 img.iconhelp,h6 img.icon{vertical-align:middle;padding:4px}.dir-rtl img.iconhelp,.dir-rtl .helplink img{padding-right:3px;padding-left:0}img.iconlarge{height:24px;width:24px;vertical-align:middle}img.iconsort{vertical-align:text-bottom;padding-left:.3em;margin-bottom:.15em}.dir-rtl img.iconsort{padding-right:.3em;padding-left:0}img.icontoggle{height:17px;vertical-align:middle;width:50px}img.iconkbhelp{height:17px;width:49px}img.icon-pre,.dir-rtl img.icon-post{padding-right:3px;padding-left:0}img.icon-post,.dir-rtl img.icon-pre{padding-left:3px;padding-right:0}.boxaligncenter{margin-left:auto;margin-right:auto}.boxalignright{margin-left:auto;margin-right:0}.boxalignleft{margin-left:0;margin-right:auto}.boxwidthnarrow{width:30%}.boxwidthnormal{width:50%}.boxwidthwide{width:80%}.headermain{font-weight:bold}#maincontent{display:block;height:1px;overflow:hidden}img.uihint{cursor:help}#addmembersform table{margin-left:auto;margin-right:auto}table.flexible .emptyrow{display:none}img.emoticon{vertical-align:middle;width:15px;height:15px}form.popupform,form.popupform div{display:inline}.arrow_button input{overflow:hidden}.action-icon img.smallicon{vertical-align:text-bottom;margin:0 .3em}.no-overflow{overflow:auto;padding-bottom:1px}.pagelayout-report .no-overflow{overflow:visible}.no-overflow>.generaltable{margin-bottom:0}.accesshide{position:absolute;left:-10000px;font-weight:normal;font-size:1em}.dir-rtl .accesshide{top:-30000px;left:auto}span.hide,div.hide{display:none}a.skip-block,a.skip{position:absolute;top:-1000em;font-size:.85em;text-decoration:none}a.skip-block:focus,a.skip-block:active,a.skip:focus,a.skip:active{position:static;display:block}.skip-block-to{display:block;height:1px;overflow:hidden}.addbloglink{text-align:center}.blog_entry .audience{text-align:right;padding-right:4px}.blog_entry .tags{margin-top:15px}.blog_entry .tags .action-icon img.smallicon{height:16px;width:16px}.blog_entry .content{margin-left:43px}#page-group-index #groupeditform{text-align:center}#doc-contents h1{margin:1em 0 0 0}#doc-contents ul{margin:0;padding:0;width:90%}#doc-contents ul li{list-style-type:none}.groupmanagementtable td{vertical-align:top}.groupmanagementtable #existingcell,.groupmanagementtable #potentialcell{width:42%}.groupmanagementtable #buttonscell{width:16%}.groupmanagementtable #buttonscell p.arrow_button input{width:auto;min-width:80%;margin:0 auto}.groupmanagementtable #removeselect_wrapper,.groupmanagementtable #addselect_wrapper{width:100%}.groupmanagementtable #removeselect_wrapper label,.groupmanagementtable #addselect_wrapper label{font-weight:normal}.dir-rtl .groupmanagementtable p{text-align:right}#group-usersummary{width:14em}.groupselector{margin-top:3px;margin-bottom:3px;display:inline-block}.groupselector label{display:inline-block}.loginbox{margin:15px;overflow:visible}.loginbox.twocolumns{margin:15px}.loginbox h2,.loginbox .subcontent{margin:5px;padding:10px;text-align:center}.loginbox .loginpanel .desc{margin:0;padding:0;margin-bottom:5px;margin-top:15px}.loginbox .signuppanel .subcontent{text-align:left}.dir-rtl .loginbox .signuppanel .subcontent{text-align:right}.loginbox .loginsub{margin-left:0;margin-right:0}.loginbox .guestsub,.loginbox .forgotsub,.loginbox .potentialidps{margin:5px 12%}.loginbox .potentialidps .potentialidplist{margin-left:40%}.loginbox .potentialidps .potentialidplist div{text-align:left}.loginbox .loginform{margin-top:1em;text-align:left}.loginbox .loginform .form-label{float:left;text-align:right;width:49%;white-space:nowrap}.loginbox .loginform .form-input{float:right;width:50%}.loginbox .loginform .form-input input{width:6em}.loginbox .signupform{margin-top:1em;text-align:center}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{width:48%;border:0;margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;float:left;margin-left:2.76243%;min-height:30px;margin-bottom:-2000px;padding-bottom:2000px}.dir-rtl .loginbox.twocolumns .loginpanel,.dir-rtl .loginbox.twocolumns .signuppanel{float:right}.loginbox .potentialidp .smallicon{vertical-align:text-bottom;margin:0 .3em}.notepost{margin-bottom:1em}.notepost .userpicture{float:left;margin-right:5px}.notepost .content,.notepost .footer{clear:both}.notesgroup{margin-left:20px}.path-my .coursebox .overview{margin:15px 30px 10px 30px}.path-my .coursebox .info{float:none;margin:0}.mod_introbox{padding:10px}table.mod_index{width:100%}.comment-ctrl{font-size:12px;display:none;margin:0;padding:0}.comment-ctrl h5{margin:0;padding:5px}.comment-area{max-width:400px;padding:5px}.comment-area textarea{width:100%;overflow:auto}.comment-area textarea.fullwidth{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.comment-area .fd{text-align:right}.comment-meta span{color:gray}.comment-link img{vertical-align:text-bottom}.comment-list{font-size:11px;overflow:auto;list-style:none;padding:0;margin:0}.comment-list li{margin:2px;list-style:none;margin-bottom:5px;clear:both;padding:.3em;position:relative}.comment-list li.first{display:none}.comment-paging{text-align:center}.comment-paging .pageno{padding:2px}.comment-paging .curpage{border:1px solid #CCC}.comment-message .picture{width:20px;float:left}.dir-rtl .comment-message .picture{float:right}.comment-message .text{margin:0;padding:0}.comment-message .text p{padding:0;margin:0 18px 0 0}.comment-delete{position:absolute;top:0;right:0;margin:.3em}.dir-rtl .comment-delete{position:absolute;left:0;right:auto;margin:.3em}.comment-report-selectall{display:none}.comment-link{display:none}.jsenabled .comment-link{display:block}.jsenabled .showcommentsnonjs{display:none}.jsenabled .comment-report-selectall{display:inline}.completion-expired{background:#f2dede}.completion-expected{font-size:10.5px}.completion-sortchoice,.completion-identifyfield{font-size:10.5px;vertical-align:bottom}.completion-progresscell{text-align:right}.completion-expired .completion-expected{font-weight:bold}img.user-image{height:100px;width:100px}#tag-search-box{text-align:center;margin:10px auto}.path-tag .tag-index-items .tagarea{border:1px solid #E3E3E3;border-radius:4px;padding:10px;margin-top:10px}.path-tag .tag-index-items .tagarea h3{display:block;padding:3px 0 10px 0;margin:0;font-size:1.1em;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase;word-wrap:break-word;border-bottom:solid 1px #E3E3E3;margin-bottom:10px}.path-tag .tagarea .controls,.path-tag .tagarea .taggeditems{*zoom:1}.path-tag .tagarea .controls:before,.path-tag .tagarea .taggeditems:before,.path-tag .tagarea .controls:after,.path-tag .tagarea .taggeditems:after{display:table;content:"";line-height:0}.path-tag .tagarea .controls:after,.path-tag .tagarea .taggeditems:after{clear:both}.path-tag .tagarea .controls,.path-tag .tag-backtoallitems{text-align:center}.path-tag .tagarea .controls .gotopage.nextpage{float:right}.path-tag .tagarea .controls .gotopage.prevpage{float:left}.path-tag .tagarea .controls .exclusivemode{display:inline-block}.dir-rtl.path-tag .tagarea .controls .gotopage.nextpage{float:left}.dir-rtl.path-tag .tagarea .controls .gotopage.prevpage{float:right}.path-tag .tagarea .controls.controls-bottom{margin-top:5px}.path-tag .tagarea .controls .gotopage.nextpage::after{padding-right:5px;padding-left:5px;content:"»"}.path-tag .tagarea .controls .gotopage.prevpage::before{padding-right:5px;padding-left:5px;content:"«"}span.flagged-tag,tr.flagged-tag,span.flagged-tag a,tr.flagged-tag a{color:#b94a48}.tag-management-table td,.tag-management-table th{vertical-align:middle;padding:4px}.tag-management-table tr td.tageditingon .displaytagname,.tag-management-table td .edittagname{display:none}.tag-management-table tr td.tageditingon .edittagname{display:inherit;position:relative}.tag-management-table tr td.tageditingon .edittagname .editinstructions{margin-right:-300px;margin-left:0}.tag-management-table tr td .tagnameedit img{opacity:.2}.tag-management-table tr:hover td .tagnameedit img,.tag-management-table tr td .tagnameedit:focus img{opacity:1}.tag-management-table tr:hover td.tageditingon .tagnameedit img{opacity:.2}.path-tag .tag-relatedtags{padding-top:10px}.path-tag .tag-management-box{text-align:right}.path-tag .tag-index-toc{padding:10px;text-align:center}.path-tag .tag-index-toc li,.path-tag .tag-management-box li{margin-left:5px;margin-right:5px}.path-tag .tag-management-box li a.edittag{background-image:url([[pix:moodle|i/settings]])}.path-tag .tag-management-box li a.flagasinappropriate{background-image:url([[pix:moodle|i/flagged]])}.path-tag .tag-management-box li a.removefrommyinterests{background-image:url([[pix:moodle|t/delete]])}.path-tag .tag-management-box li a.addtomyinterests{background-image:url([[pix:moodle|t/add]])}.path-tag .tag-management-box li a{background-repeat:no-repeat;background-position:left;padding-left:17px}.tag_feed.media-list .media .itemimage{float:left}.dir-rtl .tag_feed.media-list .media .itemimage{float:right}.tag_feed.media-list .media .itemimage img{height:35px;width:35px}.tag_feed.media-list .media .media-body{padding-right:10px;padding-left:10px}.tag_feed .media .muted a{color:#999}.tag_cloud{text-align:center}.tag_cloud .inline-list li{padding:0 .2em}.tag_cloud .tag_overflow{margin-top:1em;font-style:italic}.tag_cloud .s20{font-size:2.7em}.tag_cloud .s19{font-size:2.6em}.tag_cloud .s18{font-size:2.5em}.tag_cloud .s17{font-size:2.4em}.tag_cloud .s16{font-size:2.3em}.tag_cloud .s15{font-size:2.2em}.tag_cloud .s14{font-size:2.1em}.tag_cloud .s13{font-size:2em}.tag_cloud .s12{font-size:1.9em}.tag_cloud .s11{font-size:1.8em}.tag_cloud .s10{font-size:1.7em}.tag_cloud .s9{font-size:1.6em}.tag_cloud .s8{font-size:1.5em}.tag_cloud .s7{font-size:1.4em}.tag_cloud .s6{font-size:1.3em}.tag_cloud .s5{font-size:1.2em}.tag_cloud .s4{font-size:1.1em}.tag_cloud .s3{font-size:1em}.tag_cloud .s2{font-size:.9em}.tag_cloud .s1{font-size:.8em}.tag_cloud .s0{font-size:.7em}.tag_list ul{display:inline}.tag_list.hideoverlimit .overlimit{display:none}.tag_list .tagmorelink{display:none}.tag_list.hideoverlimit .tagmorelink{display:inline}.tag_list.hideoverlimit .taglesslink{display:none}#webservice-doc-generator td{text-align:left;border:0 solid black}.smartselect{position:absolute}.smartselect .smartselect_mask{background-color:#fff}.smartselect ul{padding:0;margin:0}.smartselect ul li{list-style:none}.smartselect .smartselect_menu{margin-right:5px}.safari .smartselect .smartselect_menu{margin-left:2px}.smartselect .smartselect_menu,.smartselect .smartselect_submenu{border:1px solid #000;background-color:#FFF;display:none}.smartselect .smartselect_menu.visible,.smartselect .smartselect_submenu.visible{display:block}.smartselect .smartselect_menu_content ul li{position:relative;padding:2px 5px}.smartselect .smartselect_menu_content ul li a{color:#333;text-decoration:none}.smartselect .smartselect_menu_content ul li a.selectable{color:inherit}.smartselect .smartselect_submenuitem{background-image:url([[pix:moodle|t/collapsed]]);background-repeat:no-repeat;background-position:100%}.smartselect.spanningmenu .smartselect_submenu{position:absolute;top:-1px;left:100%}.smartselect.spanningmenu .smartselect_submenu a{white-space:nowrap;padding-right:16px}.smartselect.spanningmenu .smartselect_menu_content ul li a.selectable:hover{text-decoration:underline}.smartselect.compactmenu .smartselect_submenu{position:relative;margin:2px -3px;margin-left:10px;display:none;border-width:0;z-index:1010}.smartselect.compactmenu .smartselect_submenu.visible{display:block}.smartselect.compactmenu .smartselect_menu{z-index:1000;overflow:hidden}.smartselect.compactmenu .smartselect_submenu .smartselect_submenu{z-index:1020}.smartselect.compactmenu .smartselect_submenuitem:hover>.smartselect_menuitem_label{font-weight:bold}#page-admin-registration-register .registration_textfield{width:300px}.userenrolment{width:100%;border-collapse:collapse}.userenrolment tr{vertical-align:top}.userenrolment td{padding:0;height:41px}.userenrolment .subfield{margin-right:5px}.userenrolment .col_userdetails .subfield_picture{float:left}.userenrolment .col_lastseen{width:150px}.userenrolment .col_role{width:262px}.userenrolment .col_role .roles,.userenrolment .col_group .groups{margin-right:30px}.userenrolment .col_role .role,.userenrolment .col_group .group{float:left;padding:3px;margin:3px;white-space:nowrap}.userenrolment .col_role .role a,.userenrolment .col_group .group a{margin-left:3px;cursor:pointer}.userenrolment .col_role .addrole,.userenrolment .col_group .addgroup{float:right;padding:3px;margin:3px}.userenrolment .col_role .addrole>*:hover,.userenrolment .col_group .addgroup>*:hover{border-bottom:1px solid #666}.userenrolment .col_role .addrole img,.userenrolment .col_group .addgroup img{vertical-align:baseline}.dir-rtl .userenrolment .col_role .role{float:right}.userenrolment .hasAllRoles .col_role .addrole{display:none}.userenrolment .col_enrol .enrolment{float:left;padding:3px;margin:3px}.userenrolment .col_enrol .enrolment a{float:right;margin-left:3px}#page-enrol-users .enrol_user_buttons{float:right}#page-enrol-users .enrol_user_buttons .enrolusersbutton{display:inline}#page-enrol-users .enrol_user_buttons .enrolusersbutton div,#page-enrol-users .enrol_user_buttons .enrolusersbutton form{display:inline;margin-right:0}#page-enrol-users #filterform{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3;padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:inline-block}#page-enrol-users #filterform blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}#page-enrol-users #filterform .fitem{display:inline-block;line-height:40px;margin-right:.3em;white-space:nowrap}#page-enrol-users #filterform .fitem label{display:inline;line-height:20px;padding-right:.3em}#page-enrol-users #filterform .fitem :before,#page-enrol-users #filterform .fitem :after{display:inline}#page-enrol-users #filterform div,#page-enrol-users #filterform fieldset{display:inline;float:none;clear:none;width:auto;margin:0}#page-enrol-users #filterform select,#page-enrol-users #filterform .ftext input{width:7em}#page-enrol-users #filterform input,#page-enrol-users #filterform select{margin-bottom:0}#page-enrol-users .user-enroller-panel .uep-search-results .user .details{width:237px}#page-enrol-users .user-enroller-panel .uep-search-results .cohort .details{width:237px}.dir-rtl#page-enrol-users .col_userdetails .subfield_picture{float:right}.dir-rtl#page-enrol-users .enrol_user_buttons{float:left}.dir-rtl#page-enrol-users .enrol_user_buttons .enrolusersbutton{margin-left:0;margin-right:1em}.dir-rtl#page-enrol-users .enrol_user_buttons .enrolusersbutton div{margin-left:0}.dir-rtl#page-enrol-users #filterform .fitem{margin-right:0;margin-left:.3em}.dir-rtl#page-enrol-users #filterform .fitem label{padding-right:0;padding-left:.3em}#page-enrol-users .enrol-users-page-action input{margin-left:0}.dir-rtl .headermain{float:right}.dir-rtl .headermenu{float:left}.dir-rtl .loginbox .loginform .form-label{float:right;text-align:left}.dir-rtl .loginbox .loginform .form-input{text-align:right;margin-right:1%}.dir-rtl .yui3-menu-hidden{left:0}#page-admin-roles-define.dir-rtl #rolesform .felement{margin-right:180px}#page-message-edit.dir-rtl table.generaltable th.c0{text-align:right}.corelightbox{background-color:#CCC;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.corelightbox img{position:fixed;top:50%;left:50%}.mod-indent-outer{display:table}.mod-indent{display:table-cell}.label .mod-indent{float:left;padding-top:20px}.mod-indent-1{width:30px}.mod-indent-2{width:60px}.mod-indent-3{width:90px}.mod-indent-4{width:120px}.mod-indent-5{width:150px}.mod-indent-6{width:180px}.mod-indent-7{width:210px}.mod-indent-8{width:240px}.mod-indent-9{width:270px}.mod-indent-10{width:300px}.mod-indent-11{width:330px}.mod-indent-12{width:360px}.mod-indent-13{width:390px}.mod-indent-14{width:420px}.mod-indent-15{width:450px}.mod-indent-16{width:480px}.mod-indent-huge{width:480px}.resourcecontent .mediaplugin_mp3 object{height:25px;width:600px}.resourcecontent audio.mediaplugin_html5audio{width:600px}.resourceimage{max-width:100%}.mediaplugin_mp3 object{height:15px;width:300px}audio.mediaplugin_html5audio{width:300px}.core_media_preview.pagelayout-embedded #content{padding:0}.core_media_preview.pagelayout-embedded #maincontent{height:0}body#page-lib-editor-tinymce-plugins-moodlemedia-preview{padding:0;margin:0;min-width:0;background:none}.dir-rtl .ygtvtn,.dir-rtl .ygtvtm,.dir-rtl .ygtvtmh,.dir-rtl .ygtvtmhh,.dir-rtl .ygtvtp,.dir-rtl .ygtvtph,.dir-rtl .ygtvtphh,.dir-rtl .ygtvln,.dir-rtl .ygtvlm,.dir-rtl .ygtvlmh,.dir-rtl .ygtvlmhh,.dir-rtl .ygtvlp,.dir-rtl .ygtvlph,.dir-rtl .ygtvlphh,.dir-rtl .ygtvdepthcell,.dir-rtl .ygtvok,.dir-rtl .ygtvok:hover,.dir-rtl .ygtvcancel,.dir-rtl .ygtvcancel:hover{width:18px;height:22px;background-image:url([[pix:theme|yui2-treeview-sprite-rtl]]);background-repeat:no-repeat;cursor:pointer}.dir-rtl .ygtvtn{background-position:0 -5600px}.dir-rtl .ygtvtm{background-position:0 -4000px}.dir-rtl .ygtvtmh,.dir-rtl .ygtvtmhh{background-position:0 -4800px}.dir-rtl .ygtvtp{background-position:0 -6400px}.dir-rtl .ygtvtph,.dir-rtl .ygtvtphh{background-position:0 -7200px}.dir-rtl .ygtvln{background-position:0 -1600px}.dir-rtl .ygtvlm{background-position:0 0}.dir-rtl .ygtvlmh,.dir-rtl .ygtvlmhh{background-position:0 -800px}.dir-rtl .ygtvlp{background-position:0 -2400px}.dir-rtl .ygtvlph,.dir-rtl .ygtvlphh{background-position:0 -3200px}.dir-rtl .ygtvdepthcell{background-position:0 -8000px}.dir-rtl .ygtvok{background-position:0 -8800px}.dir-rtl .ygtvok:hover{background-position:0 -8844px}.dir-rtl .ygtvcancel{background-position:0 -8822px}.dir-rtl .ygtvcancel:hover{background-position:0 -8866px}.dir-rtl.yui-skin-sam .yui-panel .hd{text-align:right}.dir-rtl .yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd{text-align:right}.dir-rtl .clearlooks2.ie9 .mceAlert .mceMiddle span,.dir-rtl .clearlooks2 .mceConfirm .mceMiddle span{top:44px}.dir-rtl .o2k7Skin table,.dir-rtl .o2k7Skin tbody,.dir-rtl .o2k7Skin a,.dir-rtl .o2k7Skin img,.dir-rtl .o2k7Skin tr,.dir-rtl .o2k7Skin div,.dir-rtl .o2k7Skin td,.dir-rtl .o2k7Skin iframe,.dir-rtl .o2k7Skin span,.dir-rtl .o2k7Skin *,.dir-rtl .o2k7Skin .mceText,.dir-rtl .o2k7Skin .mceListBox .mceText{text-align:right}.path-rating .ratingtable{width:100%;margin-bottom:1em}.path-rating .ratingtable th.rating{width:100%}.path-rating .ratingtable td.rating,.path-rating .ratingtable td.time{white-space:nowrap;text-align:center}.initialbar a,.initialbar strong{padding-left:3px;padding-right:3px}.moodle-dialogue-base .moodle-dialogue-lightbox{background-color:#AAA}.moodle-dialogue-base .hidden,.moodle-dialogue-base .moodle-dialogue-hidden{display:none}.no-scrolling{overflow:hidden}.moodle-dialogue-base .moodle-dialogue-fullscreen{left:0;top:0;right:0;bottom:-50px;position:fixed}.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content{overflow:auto}.moodle-dialogue-base .moodle-dialogue-fullscreen .closebutton{width:28px;height:16px;background-size:100%}.moodle-dialogue-base .moodle-dialogue{padding:0;margin:0;background:none;border:none;z-index:600;outline:#000 dotted 0}.moodle-dialogue-base .moodle-dialogue-wrap{margin-top:-3px;margin-left:-3px;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd,.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd.yui3-widget-hd{margin:0;padding:5px;font-size:12px;font-weight:normal;letter-spacing:1px;color:#333;text-align:center;text-shadow:1px 1px 1px #fff;-webkit-border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;border-radius:10px 10px 0 0;border-bottom:1px solid #bbb;background:#ccc;background-color:#ebebeb;background-image:-moz-linear-gradient(top, #fff, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc));background-image:-webkit-linear-gradient(top, #fff, #ccc);background-image:-o-linear-gradient(top, #fff, #ccc);background-image:linear-gradient(to bottom, #fff, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffcccccc', GradientType=0);filter:0}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h1{margin:0;padding:0;display:inline;font-size:100%;font-weight:bold}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons{padding:5px}.moodle-dialogue-base .closebutton{width:25px;height:15px;float:right;vertical-align:middle;display:inline-block;cursor:pointer;padding:0;background-image:url([[pix:theme|sprite]]);background-repeat:no-repeat;border-style:none}.dir-rtl .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons{left:0;right:auto}.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd{padding:1em;line-height:2em;color:#555;font-size:12px}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-content{padding:0;background:#FFF}.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-hd{padding:10px;font-size:16px}.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content{overflow:auto;position:absolute;top:0;bottom:50px;left:0;right:0;margin:0;border:0}.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-hd,.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-wrap{border-radius:0}.moodle-dialogue-confirm .confirmation-dialogue{text-align:center}.moodle-dialogue-confirm .confirmation-dialogue input{text-align:center}.moodle-dialogue-exception .moodle-exception-message{text-align:center}.moodle-dialogue-exception .moodle-exception-param label{font-weight:bold}.moodle-dialogue-exception .param-stacktrace label{background-color:#EEE;border:1px solid #ccc;border-bottom-width:0}.moodle-dialogue-exception .param-stacktrace pre{border:1px solid #ccc;background-color:#fff}.moodle-dialogue-exception .param-stacktrace .stacktrace-file{color:navy;font-size:11.9px}.moodle-dialogue-exception .param-stacktrace .stacktrace-line{color:#b94a48;font-size:11.9px}.moodle-dialogue-exception .param-stacktrace .stacktrace-call{color:#333;font-size:90%;border-bottom:1px solid #eee}.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft{padding:0;margin:.7em 1em;text-align:right;background-color:#FFF;font-size:12px}.moodle-dialogue-confirm .confirmation-message{margin:.5em 1em}.moodle-dialogue-confirm .confirmation-dialogue input{min-width:80px}.moodle-dialogue-exception .moodle-exception-message{margin:1em}.moodle-dialogue-exception .moodle-exception-param{margin-bottom:.5em}.moodle-dialogue-exception .moodle-exception-param label{width:150px}.moodle-dialogue-exception .param-stacktrace label{display:block;margin:0;padding:4px 1em}.moodle-dialogue-exception .param-stacktrace pre{display:block;height:200px;overflow:auto}.moodle-dialogue-exception .param-stacktrace .stacktrace-file{display:inline-block;margin:4px 0}.moodle-dialogue-exception .param-stacktrace .stacktrace-line{display:inline-block;width:50px;margin:4px 1em}.moodle-dialogue-exception .param-stacktrace .stacktrace-call{padding-left:25px;margin-bottom:4px;padding-bottom:4px}.moodle-dialogue .moodle-dialogue-bd .content-lightbox{opacity:.75;filter:alpha(opacity=75);width:100%;height:100%;top:0;left:0;background-color:white;text-align:center;padding:10% 0}.moodle-dialogue .tooltiptext{max-height:300px}.moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip{z-index:3001}.moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip .moodle-dialogue-bd{overflow:auto}#page-question-edit.dir-rtl a.container-close{right:auto;left:6px}.chooserdialoguebody,.choosertitle{display:none}.moodle-dialogue.chooserdialogue .moodle-dialogue-content .moodle-dialogue-ft{margin:0}.chooserdialogue .moodle-dialogue-wrap .moodle-dialogue-bd{padding:0;background:#F2F2F2;-webkit-border-bottom-right-radius:10px;-moz-border-radius-bottomright:10px;border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px;-moz-border-radius-bottomleft:10px;border-bottom-left-radius:10px}.choosercontainer #chooseform .submitbuttons{padding:.7em 0;text-align:center}@media (max-height:639px){.ios.safari .choosercontainer #chooseform .submitbuttons{padding:45px 0}}.choosercontainer #chooseform .submitbuttons input{min-width:100px;margin:0 .5em}.choosercontainer #chooseform .options{position:relative;border-bottom:1px solid #BBBBBB}.jschooser .choosercontainer #chooseform .alloptions{overflow-x:hidden;overflow-y:auto;max-width:20.3em;-webkit-box-shadow:inset 0 0 30px 0 #ccc;-moz-box-shadow:inset 0 0 30px 0 #ccc;box-shadow:inset 0 0 30px 0 #ccc}.dir-rtl.jschooser .choosercontainer #chooseform .alloptions{max-width:18.3em}.choosercontainer #chooseform .moduletypetitle,.choosercontainer #chooseform .option,.choosercontainer #chooseform .nonoption{margin-bottom:0;padding:0 1.6em 0 1.6em}.choosercontainer #chooseform .moduletypetitle{text-transform:uppercase;padding-top:1.2em;padding-bottom:.4em}.choosercontainer #chooseform .option .typename,.choosercontainer #chooseform .option span.modicon img.icon,.choosercontainer #chooseform .nonoption .typename,.choosercontainer #chooseform .nonoption span.modicon img.icon{padding:0 0 0 .5em}.dir-rtl .choosercontainer #chooseform .option .typename,.dir-rtl .choosercontainer #chooseform .option span.modicon img.icon,.dir-rtl .choosercontainer #chooseform .nonoption .typename,.dir-rtl .choosercontainer #chooseform .nonoption span.modicon img.icon{padding:0 .5em 0 0}.chooserdialogue-course-modchooser .choosercontainer #chooseform .option span.modicon img.icon,.chooserdialogue-course-modchooser .choosercontainer #chooseform .nonoption span.modicon img.icon{height:24px;width:24px}.choosercontainer #chooseform .option input[type=radio],.choosercontainer #chooseform .option span.typename,.choosercontainer #chooseform .option span.modicon{vertical-align:middle}.choosercontainer #chooseform .option label{display:block;padding:.3em 0 .1em 0;border-bottom:1px solid #FFFFFF}.choosercontainer #chooseform .nonoption{padding-left:2.7em;padding-top:.3em;padding-bottom:.1em}.dir-rtl .choosercontainer #chooseform .nonoption{padding-right:2.7em;padding-left:0}.choosercontainer #chooseform .subtype{margin-bottom:0;padding:0 1.6em 0 3.2em}.dir-rtl .choosercontainer #chooseform .subtype{padding:0 3.2em 0 1.6em}.choosercontainer #chooseform .subtype .typename{margin:0 0 0 .2em}.dir-rtl .choosercontainer #chooseform .subtype .typename{margin:0 .2em 0 0}.jschooser .choosercontainer #chooseform .instruction,.jschooser .choosercontainer #chooseform .typesummary{display:none;position:absolute;top:0;right:0;bottom:0;left:20.3em;margin:0;padding:1.6em;background-color:#fff;overflow-x:hidden;overflow-y:auto;line-height:2em}.dir-rtl.jschooser .choosercontainer #chooseform .instruction,.dir-rtl.jschooser .choosercontainer #chooseform .typesummary{left:0;right:18.5em;border-right:1px solid grey}.jschooser .choosercontainer #chooseform .instruction,.choosercontainer #chooseform .selected .typesummary{display:block}.choosercontainer #chooseform .selected{background-color:#fff;-webkit-box-shadow:0 0 10px 0 #ccc;-moz-box-shadow:0 0 10px 0 #ccc;box-shadow:0 0 10px 0 #ccc}.section-modchooser-link img.smallicon{padding:3px}.formlistingradio{padding-bottom:25px;padding-right:10px}.formlistinginputradio{float:left}.formlistingmain{min-height:225px}.formlisting{position:relative;margin:15px 0;padding:1px 19px 14px;background-color:white;border:1px solid #DDD;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.formlistingmore{position:absolute;cursor:pointer;bottom:-1px;right:-1px;padding:3px 7px;font-size:12px;font-weight:bold;background-color:whiteSmoke;border:1px solid #ddd;color:#9DA0A4;-webkit-border-radius:4px 0 4px 0;-moz-border-radius:4px 0 4px 0;border-radius:4px 0 4px 0}.formlistingall{margin:15px 0;padding:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.formlistingrow{cursor:pointer;border-bottom:1px solid;border-color:#E1E1E8;border-left:1px solid #E1E1E8;border-right:1px solid #E1E1E8;background-color:#F7F7F9;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;padding:6px;top:50%;left:50%;min-height:34px;float:left;width:150px}body.jsenabled .formlistingradio{display:none}body.jsenabled .formlisting{display:block}table.collection{width:100%;margin-bottom:20px;border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}table.collection th,table.collection td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}table.collection th{font-weight:bold}table.collection thead th{vertical-align:bottom}table.collection caption+thead tr:first-child th,table.collection caption+thead tr:first-child td,table.collection colgroup+thead tr:first-child th,table.collection colgroup+thead tr:first-child td,table.collection thead:first-child tr:first-child th,table.collection thead:first-child tr:first-child td{border-top:0}table.collection tbody+tbody{border-top:2px solid #ddd}table.collection .table{background-color:#fff}table.collection th,table.collection td{border-left:1px solid #ddd}table.collection caption+thead tr:first-child th,table.collection caption+tbody tr:first-child th,table.collection caption+tbody tr:first-child td,table.collection colgroup+thead tr:first-child th,table.collection colgroup+tbody tr:first-child th,table.collection colgroup+tbody tr:first-child td,table.collection thead:first-child tr:first-child th,table.collection tbody:first-child tr:first-child th,table.collection tbody:first-child tr:first-child td{border-top:0}table.collection thead:first-child tr:first-child>th:first-child,table.collection tbody:first-child tr:first-child>td:first-child,table.collection tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}table.collection thead:first-child tr:first-child>th:last-child,table.collection tbody:first-child tr:first-child>td:last-child,table.collection tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}table.collection thead:last-child tr:last-child>th:first-child,table.collection tbody:last-child tr:last-child>td:first-child,table.collection tbody:last-child tr:last-child>th:first-child,table.collection tfoot:last-child tr:last-child>td:first-child,table.collection tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}table.collection thead:last-child tr:last-child>th:last-child,table.collection tbody:last-child tr:last-child>td:last-child,table.collection tbody:last-child tr:last-child>th:last-child,table.collection tfoot:last-child tr:last-child>td:last-child,table.collection tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}table.collection tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}table.collection tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}table.collection caption+thead tr:first-child th:first-child,table.collection caption+tbody tr:first-child td:first-child,table.collection colgroup+thead tr:first-child th:first-child,table.collection colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}table.collection caption+thead tr:first-child th:last-child,table.collection caption+tbody tr:first-child td:last-child,table.collection colgroup+thead tr:first-child th:last-child,table.collection colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}table.collection tbody>tr:nth-child(odd)>td,table.collection tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}table.collection .name{text-align:left;vertical-align:middle}table.collection .awards{width:10%;text-align:center;vertical-align:middle}table.collection .criteria{width:40%;text-align:left;vertical-align:top}table.collection .badgeimage,table.collection .status{width:15%;text-align:center;vertical-align:middle}table.collection .description{width:25%;text-align:left}.dir-rtl table.collection .name,.dir-rtl table.collection .criteria,.dir-rtl table.collection .description{text-align:right}table.collection .actions{width:11em;text-align:center;vertical-align:middle}a.criteria-action{padding:0 3px;float:right}div.criteria-description{padding:10px 15px;margin:5px 0;background:none repeat scroll 0 0 #f9f9f9;border:1px solid #EEE}ul.badges{margin:0;list-style:none}.badges li{position:relative;display:inline-block;padding-top:1em;text-align:center;vertical-align:top;width:150px}.badges li .badge-name{display:block;padding:5px}.badges li>img{position:absolute}.badges li .badge-image{width:100px;height:100px;left:10px;top:0;z-index:1}.badges li .badge-actions{position:relative}.badges li .expireimage{width:100px;height:100px;left:25px;top:0;position:absolute;z-index:10;opacity:.85}#badge-image{background-color:transparent;padding:0;position:relative;min-width:100px;width:20%;display:inline-block;vertical-align:top;margin-top:17px}#badge-image .expireimage{width:100px;height:100px;left:0;top:0;opacity:.85;filter:alpha(opacity=85);position:absolute;z-index:10}#badge-image .singlebutton{padding-top:5px}#badge-image .singlebutton input{margin-left:0}.dir-rtl #badge-image{float:right}.dir-rtl #badge-image .expireimage{left:41px}#badge-details{display:inline-block;width:79%}#badge-overview dl,#badge-details dl{margin:0}#badge-overview dl dt,#badge-details dl dt,#badge-overview dl dd,#badge-details dl dd{vertical-align:top;padding:3px 0}#badge-overview dl dt,#badge-details dl dt{clear:both;display:inline-block;width:20%;min-width:100px}#badge-overview dl dd,#badge-details dl dd{display:inline-block;width:79%;margin-left:1%}.badge-profile{vertical-align:top}.connected{color:#468847}.notconnected{color:#b94a48}.connecting{color:#8a6d3b}#page-badges-award .recipienttable tr td{vertical-align:top}#page-badges-award .recipienttable tr td.actions .actionbutton{margin:.3em 0;padding:.5em 0;width:100%}#page-badges-award .recipienttable tr td.existing,#page-badges-award .recipienttable tr td.potential{width:42%}#issued-badge-table .activatebadge{display:inline-block}.statusbox.active{background-color:#dff0d8}.statusbox.inactive{background-color:#fcf8e3}.statusbox{text-align:center;margin-bottom:5px;padding:5px}.statusbox .activatebadge{display:inline-block}.statusbox .activatebadge input[type=submit]{margin:3px}.activatebadge{margin:0;text-align:left;vertical-align:middle}.dir-rtl .activatebadge{text-align:right}img#persona_signin{cursor:pointer}.addcourse{float:right}.invisiblefieldset{display:inline;margin:0;padding:0;border-width:0}.breadcrumb-nav{float:left;margin-bottom:10px}.dir-rtl .breadcrumb-nav{float:right}.breadcrumb-button .singlebutton div{margin-right:0}.breadcrumb-nav .breadcrumb{margin:0}.page-context-header{overflow:hidden}.page-context-header .page-header-image,.page-context-header .page-header-headings{display:block;position:relative}.page-context-header .page-header-image{margin-bottom:1em}.page-context-header .page-header-headings{margin-top:30px;margin-bottom:10px}.page-context-header .page-header-headings h1{display:block}.page-context-header .page-header-headings,.page-context-header .header-button-group{position:relative;line-height:24px;vertical-align:middle}.page-context-header .header-button-group{display:block}.page-context-header .header-button-group a{position:relative;top:-0.4em}.dir-ltr .page-context-header .page-header-image{float:left;margin-right:1em}.dir-ltr .page-context-header .header-button-group{float:left}.dir-rtl .page-context-header .page-header-image{float:right;margin-left:1em}.dir-rtl .page-context-header .header-button-group{float:right}.moodle-actionmenu,.moodle-actionmenu>ul,.moodle-actionmenu>ul>li{display:inline-block}.moodle-actionmenu ul{padding:0;margin:0;list-style-type:none}.section_action_menu .moodle-actionmenu ul.menubar{margin:0}.section_action_menu .moodle-actionmenu ul.menu{margin:0 10px 10px 0}.moodle-actionmenu .toggle-display,.moodle-actionmenu .menu-action-text{display:none}.jsenabled .moodle-actionmenu[data-enhance]{display:block}.jsenabled .moodle-actionmenu[data-enhance] .menu{display:none}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display{display:inline;opacity:.5;filter:alpha(opacity=50)}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu{display:block;margin-left:4px;padding-left:4px;padding-right:4px}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .iconsmall,.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .smallicon{margin:4px 4px 4px 0;padding:8px 4px 0 2px;vertical-align:text-bottom}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret{margin-top:8px;margin-left:2px;border-top-color:#777}.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret:hover,.jsenabled .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret:active{border-top-color:#555}.jsenabled .moodle-actionmenu[data-enhanced] .toggle-display{opacity:1;filter:alpha(opacity=100)}.jsenabled .moodle-actionmenu[data-enhanced] .menu-action-text{display:inline}.jsenabled.dir-rtl .moodle-actionmenu[data-enhance] .toggle-display.textmenu{margin-left:initial;margin-right:4px}.jsenabled.dir-rtl .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret{margin-left:initial;margin-right:2px}.moodle-actionmenu[data-enhanced].show{position:relative}.moodle-actionmenu[data-enhanced].show .menu{display:block;position:absolute;text-align:left;background-color:#fff;border:1px solid rgba(0,0,0,0.2);z-index:1000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}.moodle-actionmenu[data-enhanced].show .menu a{display:block;color:#333;padding:2px 1em 2px 28px}.moodle-actionmenu[data-enhanced].show .menu a:hover{color:#fff;background-color:#0070a8}.moodle-actionmenu[data-enhanced].show .menu a:first-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.moodle-actionmenu[data-enhanced].show .menu a:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.moodle-actionmenu[data-enhanced].show .menu a.hidden{display:none}.moodle-actionmenu[data-enhanced].show .menu img{vertical-align:middle}.moodle-actionmenu[data-enhanced].show .menu .iconsmall,.moodle-actionmenu[data-enhanced].show .menu .smallicon{margin:4px 4px 4px -24px;padding:4px}.moodle-actionmenu[data-enhanced].show .menu>li{display:block}.moodle-actionmenu[data-enhanced].show .menu.align-tl-bl{top:100%;left:0;margin-top:4px}.moodle-actionmenu[data-enhanced].show .menu.align-tr-bl{top:100%;right:100%}.moodle-actionmenu[data-enhanced].show .menu.align-bl-bl{bottom:100%;left:0}.moodle-actionmenu[data-enhanced].show .menu.align-br-bl{bottom:100%;right:100%}.moodle-actionmenu[data-enhanced].show .menu.align-tl-br{top:100%;left:100%}.moodle-actionmenu[data-enhanced].show .menu.align-tr-br{top:100%;right:0;margin-top:4px}.moodle-actionmenu[data-enhanced].show .menu.align-bl-br{bottom:100%;left:100%}.moodle-actionmenu[data-enhanced].show .menu.align-br-br{bottom:100%;right:0}.moodle-actionmenu[data-enhanced].show .menu.align-tl-tl{top:0;left:0}.moodle-actionmenu[data-enhanced].show .menu.align-tr-tl{top:0;right:100%;margin-right:4px}.moodle-actionmenu[data-enhanced].show .menu.align-bl-tl{bottom:100%;left:0;margin-bottom:4px}.moodle-actionmenu[data-enhanced].show .menu.align-br-tl{bottom:100%;right:100%}.moodle-actionmenu[data-enhanced].show .menu.align-tl-tr{top:0;left:100%;margin-left:4px}.moodle-actionmenu[data-enhanced].show .menu.align-tr-tr{top:0;right:0}.moodle-actionmenu[data-enhanced].show .menu.align-bl-tr{bottom:100%;left:100%}.moodle-actionmenu[data-enhanced].show .menu.align-br-tr{bottom:100%;right:0;margin-bottom:4px}.moodle-actionmenu[data-enhanced].show.nowrap-items .menu>li{white-space:nowrap}.block .moodle-actionmenu{text-align:right}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu{text-align:right;left:0;right:auto}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu a{padding:2px 28px 2px 1em}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu .iconsmall,.dir-rtl .moodle-actionmenu[data-enhanced].show .menu .smallicon{margin-right:-24px;margin-left:4px}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tl-bl{left:auto;right:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-bl{right:auto;left:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-bl-bl{left:auto;right:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-br-bl{right:auto;left:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tl-br{left:auto;right:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-br{right:auto;left:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-bl-br{left:auto;right:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-br-br{right:auto;left:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tl-tl{left:auto;right:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-tl{right:auto;left:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-bl-tl{left:auto;right:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-br-tl{right:auto;left:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tl-tr{left:auto;right:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-tr{right:auto;left:0}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-bl-tr{left:auto;right:100%}.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-br-tr{right:auto;left:0}.dir-rtl .block .moodle-actionmenu{text-align:right}ul.dragdrop-keyboard-drag li{list-style-type:none}.block-control-actions .moodle-core-dragdrop-draghandle img{width:12px;height:12px}a.disabled:hover,a.disabled{text-decoration:none;cursor:default;font-style:italic;color:#808080}body.lockscroll{height:100%;overflow:hidden}.dir-rtl ul{margin-left:0;margin-right:25px}.progressbar_container{max-width:500px;margin:0 auto}.ie10 .yui3-calendar-header-label{display:inline-block}dd:before,dd:after{display:block;content:" "}dd:after{clear:both}.nav-tabs>.active>a[href],.nav-tabs>.active>a[href]:hover,.nav-tabs>.active>a[href]:focus{cursor:pointer}.formtable tbody th{font-weight:normal;text-align:right}.path-admin #assignrole{width:60%;margin-left:auto;margin-right:auto}.path-admin .admintable .leftalign{text-align:left}.dir-rtl.path-admin .admintable .leftalign{text-align:right}.environmenttable p.warn{background-color:#fcf8e3;color:#8a6d3b}.environmenttable .error,.environmenttable span.warn,.environmenttable .ok{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.environmenttable .error:empty,.environmenttable span.warn:empty,.environmenttable .ok:empty{display:none}.environmenttable .error-important,.environmenttable span.warn-important,.environmenttable .ok-important{background-color:#b94a48}.environmenttable .error-important[href],.environmenttable span.warn-important[href],.environmenttable .ok-important[href]{background-color:#953b39}.environmenttable .error-warning,.environmenttable span.warn-warning,.environmenttable .ok-warning{background-color:#f89406}.environmenttable .error-warning[href],.environmenttable span.warn-warning[href],.environmenttable .ok-warning[href]{background-color:#c67605}.environmenttable .error-success,.environmenttable span.warn-success,.environmenttable .ok-success{background-color:#468847}.environmenttable .error-success[href],.environmenttable span.warn-success[href],.environmenttable .ok-success[href]{background-color:#356635}.environmenttable .error-info,.environmenttable span.warn-info,.environmenttable .ok-info{background-color:#3a87ad}.environmenttable .error-info[href],.environmenttable span.warn-info[href],.environmenttable .ok-info[href]{background-color:#2d6987}.environmenttable .error-inverse,.environmenttable span.warn-inverse,.environmenttable .ok-inverse{background-color:#333}.environmenttable .error-inverse[href],.environmenttable span.warn-inverse[href],.environmenttable .ok-inverse[href]{background-color:#1a1a1a}.environmenttable .error{background-color:#b94a48}.environmenttable span.warn{background-color:#f89406}.environmenttable .ok{background-color:#468847}.path-admin .admintable.environmenttable .name,.path-admin .admintable.environmenttable .info,.path-admin #assignrole .admintable .role,.path-admin #assignrole .admintable .userrole,.path-admin #assignrole .admintable .roleholder{white-space:nowrap}.path-admin .incompatibleblockstable td.c0{font-weight:bold}#page-admin-course-category .addcategory{padding:10px}#page-admin-course-index .editcourse{margin:20px auto}#page-admin-course-index .editcourse th,#page-admin-course-index .editcourse td{padding-left:10px;padding-right:10px}.timewarninghidden{display:none}.statusok,.statuswarning,.statusserious,.statuscritical{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.statusok:empty,.statuswarning:empty,.statusserious:empty,.statuscritical:empty{display:none}.statusok-important,.statuswarning-important,.statusserious-important,.statuscritical-important{background-color:#b94a48}.statusok-important[href],.statuswarning-important[href],.statusserious-important[href],.statuscritical-important[href]{background-color:#953b39}.statusok-warning,.statuswarning-warning,.statusserious-warning,.statuscritical-warning{background-color:#f89406}.statusok-warning[href],.statuswarning-warning[href],.statusserious-warning[href],.statuscritical-warning[href]{background-color:#c67605}.statusok-success,.statuswarning-success,.statusserious-success,.statuscritical-success{background-color:#468847}.statusok-success[href],.statuswarning-success[href],.statusserious-success[href],.statuscritical-success[href]{background-color:#356635}.statusok-info,.statuswarning-info,.statusserious-info,.statuscritical-info{background-color:#3a87ad}.statusok-info[href],.statuswarning-info[href],.statusserious-info[href],.statuscritical-info[href]{background-color:#2d6987}.statusok-inverse,.statuswarning-inverse,.statusserious-inverse,.statuscritical-inverse{background-color:#333}.statusok-inverse[href],.statuswarning-inverse[href],.statusserious-inverse[href],.statuscritical-inverse[href]{background-color:#1a1a1a}.statusok{background-color:#468847}.statuswarning{background-color:#8a6d3b}.statusserious{background-color:#f89406}.statuscritical{background-color:#b94a48}#page-admin-report-capability-index #capabilitysearch{width:30em}#page-admin-report-backups-index .backup-error,#page-admin-report-backups-index .backup-unfinished{color:#b94a48}#page-admin-report-backups-index .backup-skipped,#page-admin-report-backups-index .backup-ok,#page-admin-report-backups-index .backup-notyetrun{color:#468847}#page-admin-report-backups-index .backup-warning{color:#8a6d3b}#page-admin-qtypes .disabled,#page-admin-qbehaviours .disabled{color:#999}#page-admin-qtypes #qtypes div,#page-admin-qtypes #qtypes form,#page-admin-qbehaviours #qbehaviours div,#page-admin-qbehaviours #qbehaviours form{display:inline}#page-admin-qtypes #qtypes img.spacer,#page-admin-qbehaviours #qbehaviours img.spacer{width:16px}img.iconsmall{margin:0;padding:.3em}#page-admin-qbehaviours .cell.c3,#page-admin-qtypes .cell.c3{font-size:10.5px}#page-admin-lang .generalbox,#page-admin-course-index .singlebutton,#page-admin-course-index .addcategory,#page-course-index .buttons,#page-course-index-category .buttons,#page-admin-course-category .addcategory,#page-admin-stickyblocks .generalbox,#page-admin-maintenance .buttons,#page-admin-course-index .buttons,#page-admin-course-category .buttons,#page-admin-index .copyright,#page-admin-index .copyrightnotice,#page-admin-index .adminerror .singlebutton,#page-admin-index .adminwarning .singlebutton,#page-admin-index #layout-table .singlebutton{text-align:center;margin-bottom:1em}.path-admin-roles .capabilitysearchui{text-align:left;margin-left:auto;margin-right:auto}#page-admin-roles-define .topfields{margin:1em 0 2em}#page-admin-roles-define .capdefault{background-color:#f5f5f5;border:1px solid #ddd}#page-filter-manage .backlink,.path-admin-roles .backlink{margin-top:1em}#page-admin-roles-explain #chooseuser h3,#page-admin-roles-usersroles .contextname{margin-top:0}#page-admin-roles-explain #chooseusersubmit{margin-top:0;text-align:center}#page-admin-roles-usersroles p{margin:0}#page-admin-roles-override .cell.c1,#page-admin-roles-assign .cell.c3,#page-admin-roles-assign .cell.c1{padding-top:.75em}#page-admin-roles-override .overridenotice,#page-admin-roles-define .definenotice{margin:1em 10% 2em 10%;text-align:left}#notice{width:60%;min-width:220px;margin:auto}#page-admin-index .releasenoteslink,#page-admin-index .adminwarning,#page-admin-index .adminerror{margin:auto;padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#8a6d3b;width:60%;min-width:220px}#page-admin-index .adminerror{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}#page-admin-index .releasenoteslink{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo span{display:block}#page-admin-index .updateplugin div{margin-bottom:.5em}#page-admin-index .updateplugin .updatepluginconfirmexternal{padding:1em;background-color:#f2dede;border:1px solid #eed3d7}#page-admin-user-user_bulk #users .fgroup{white-space:nowrap}#page-admin-report-stats-index .graph{text-align:center;margin-bottom:1em}#page-admin-report-courseoverview-index .graph{text-align:center;margin-bottom:1em}#page-admin-lang .translator{border-width:1px;border-style:solid}.path-admin .roleassigntable{width:100%}.path-admin .roleassigntable td{vertical-align:top;padding:.2em .3em}.path-admin .roleassigntable p{text-align:left;margin:.2em 0}.path-admin .roleassigntable #existingcell,.path-admin .roleassigntable #potentialcell{width:42%}.path-admin .roleassigntable #existingcell p>label:first-child,.path-admin .roleassigntable #potentialcell p>label:first-child{font-weight:bold}.path-admin .roleassigntable #buttonscell{width:16%}.path-admin .roleassigntable #buttonscell #assignoptions{font-size:10.5px}.path-admin .roleassigntable #removeselect_wrapper,.path-admin .roleassigntable #addselect_wrapper{width:100%}.path-admin table.rolecap tr.rolecap th{text-align:left;font-weight:normal}.path-admin.dir-rtl table.rolecap tr.rolecap th{text-align:right}.path-admin .rolecap .hiddenrow{display:none}.path-admin #defineroletable .rolecap .inherit,.path-admin #defineroletable .rolecap .allow,.path-admin #defineroletable .rolecap .prevent,.path-admin #defineroletable .rolecap .prohibit{text-align:center;padding:0;min-width:3.5em}.path-admin .rolecap .cap-name,.path-admin .rolecap .note{display:block;font-size:10.5px;white-space:nowrap;font-weight:normal}.path-admin .rolecap label{display:block;text-align:center;padding:.5em;margin:0}.plugincheckwrapper{width:100%}.environmentbox{margin-top:1em}#mnetconfig table{margin-left:auto;margin-right:auto}.environmenttable .cell{padding:.15em .5em}.environmenttable img.iconhelp{padding-right:.3em}.dir-rtl .environmenttable img.iconhelp{padding-left:.3em;padding-right:0}#trustedhosts .generaltable{margin-left:auto;margin-right:auto;width:500px}#trustedhosts .standard{width:auto}#adminsettings legend{display:none}#adminsettings fieldset.error{margin:.2em 0 .5em 0}#adminsettings fieldset.error legend{display:block}.dir-rtl #admin-spelllanguagelist textarea,#page-admin-setting-editorsettingstinymce.dir-rtl .form-textarea textarea{text-align:left;direction:ltr}.adminsettingsflags{float:right}.dir-rtl .adminsettingsflags{float:left}.adminsettingsflags label{margin-right:7px}.dir-rtl .adminsettingsflags label{margin-left:7px}.form-description{clear:right}.dir-rtl .form-description{clear:left}.form-item .form-setting .form-htmlarea{width:640px;display:inline}.form-item .form-setting .form-htmlarea .htmlarea{width:640px;display:block}.form-item .form-setting .form-multicheckbox ul{list-style:none;padding:0;margin:7px 0 0 0}.form-item .form-setting .defaultsnext{margin-right:.5em;display:inline}.dir-rtl .form-item .form-setting .defaultsnext{margin-left:.5em;margin-right:0}.form-item .form-setting .locked-checkbox{margin-right:.2em;margin-left:.5em;display:inline}.dir-rtl .form-item .form-setting .locked-checkbox{margin-right:.5em;margin-left:.2em;display:inline}.form-item .form-setting .form-password .unmask,.form-item .form-setting .form-defaultinfo{display:inline-block}.form-item .pathok,.form-item .patherror{margin-left:.5em}#admin-emoticons td input{width:8em}#admin-emoticons td.c0 input{width:4em}#adminthemeselector .selectedtheme td.c0{border:1px solid #000;border-right-width:0}#adminthemeselector .selectedtheme td.c1{border:1px solid #000;border-left-width:0}.admin_colourpicker,.admin_colourpicker_preview{display:none}.jsenabled .admin_colourpicker_preview{display:inline}.jsenabled .admin_colourpicker{display:block;height:102px;width:410px;margin-bottom:10px}.admin_colourpicker .loadingicon{vertical-align:middle;margin-left:auto}.admin_colourpicker .colourdialogue{float:left;border:1px solid #000}.admin_colourpicker .previewcolour{border:1px solid #000;margin-left:301px}.admin_colourpicker .currentcolour{border:1px solid #000;margin-left:301px;border-top-width:0}.dir-rtl .form-item .form-setting,.dir-rtl .form-item .form-label,.dir-rtl .form-item .form-description,.dir-rtl.path-admin .roleassigntable p{text-align:right}#page-admin-index #notice .checkforupdates{text-align:center}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity200 .info.release{background-color:#d9edf7}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity100 .info.release,#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity150 .info.release{background-color:#fcf8e3}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity50 .info.release{background-color:#f2dede}#page-admin-plugins #plugins-overview-panel .info{display:inline-block;margin-right:1em}#page-admin-plugins .checkforupdates{margin:10px 0}#page-admin-plugins .checkforupdates .singlebutton{margin:5px 0;padding:0}#page-admin-plugins .checkforupdates .singlebutton div,#page-admin-plugins .checkforupdates .singlebutton input{margin:0 3px 0 0}#page-admin-plugins .updateavailableinstallall{margin:5px 0;padding:0}#page-admin-plugins .updateavailableinstallall div,#page-admin-plugins .updateavailableinstallall input{margin:0 3px 5px 0}#page-admin-plugins #plugins-control-panel .status-missing td{background-color:#f2dede}#page-admin-plugins #plugins-control-panel .pluginname .displayname img.icon{padding-top:0;padding-bottom:0}#page-admin-plugins #plugins-control-panel .pluginname .componentname{font-size:11.9px;color:#999;margin-left:22px}#page-admin-plugins #plugins-control-panel .version .versionnumber{font-size:11.9px;color:#999}#page-admin-plugins #plugins-control-panel .uninstall a{color:#b94a48}#page-admin-plugins #plugins-control-panel .notes .label{margin-right:3px}#page-admin-plugins #plugins-control-panel .notes .requiredby{font-size:11.9px;color:#999}#plugins-check-page .page-description{color:#999}#plugins-check-page .checkforupdates .singlebutton{margin:5px 0;padding:0}#plugins-check-page .checkforupdates .singlebutton div,#plugins-check-page .checkforupdates .singlebutton input{margin:0 3px 0 0}#plugins-check-page #plugins-check-info .actions>div{display:inline-block;margin-right:1em}#plugins-check-page #plugins-check-info .actions .singlebutton{margin:5px 0;padding:0}#plugins-check-page #plugins-check-info .actions .singlebutton div,#plugins-check-page #plugins-check-info .actions .singlebutton input{margin:0 3px 0 0}#plugins-check-page #plugins-check .requires-ok{color:#999}#plugins-check-page #plugins-check .status-missing td,#plugins-check-page #plugins-check .status-downgrade td{background-color:#f2dede}#plugins-check-page #plugins-check .displayname .pluginicon{margin-right:5px;width:16px}#plugins-check-page #plugins-check .displayname .plugindir{color:#999;font-size:11.9px}#plugins-check-page #plugins-check .requires ul{margin-left:13px}#plugins-check-page #plugins-check .status .actionbutton{margin:5px 0;padding:0}#plugins-check-page #plugins-check .status .actionbutton input{margin:0}#plugins-check-page .plugins-check-dependencies-actions>div{display:inline-block;margin-right:1em}#plugins-check-page .plugins-check-dependencies-actions .singlebutton{margin:5px 0;padding:0}#plugins-check-page .plugins-check-dependencies-actions .singlebutton div,#plugins-check-page .plugins-check-dependencies-actions .singlebutton input{margin:0 3px 0 0}#plugins-check-page #plugins-check-available-dependencies .displayname .component{font-size:11.9px;color:#999}#plugins-check-page #plugins-check-available-dependencies .info .actions>div{display:inline-block;margin-right:1em}#plugins-check-page #plugins-check-available-dependencies .info .actions .dependencyinstall{display:block;margin:5px 0;padding:0}#plugins-check-page #plugins-check-available-dependencies .info .actions .dependencyinstall input{margin:0}#plugins-check-page .pluginupdateinfo,#plugins-control-panel .pluginupdateinfo{background-color:#d9edf7;padding:5px;margin:10px 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#plugins-check-page .pluginupdateinfo.maturity50,#plugins-control-panel .pluginupdateinfo.maturity50{background-color:#f2dede}#plugins-check-page .pluginupdateinfo.maturity100,#plugins-control-panel .pluginupdateinfo.maturity100,#plugins-check-page .pluginupdateinfo.maturity150,#plugins-control-panel .pluginupdateinfo.maturity150{background-color:#fcf8e3}#plugins-check-page .pluginupdateinfo .info,#plugins-control-panel .pluginupdateinfo .info{display:inline-block}#plugins-check-page .pluginupdateinfo .separator:after,#plugins-control-panel .pluginupdateinfo .separator:after{content:" | "}#plugins-check-page .pluginupdateinfo .singlebutton,#plugins-control-panel .pluginupdateinfo .singlebutton{margin:5px 0;padding:0}#plugins-check-page .pluginupdateinfo .singlebutton div,#plugins-control-panel .pluginupdateinfo .singlebutton div,#plugins-check-page .pluginupdateinfo .singlebutton input,#plugins-control-panel .pluginupdateinfo .singlebutton input{margin:0 3px 0 0}.plugins-management-confirm-buttons>div{display:inline-block;margin:1em 1em 1em 0}.plugins-management-confirm-buttons .continue{padding:0}.plugins-management-confirm-buttons .continue div,.plugins-management-confirm-buttons .continue input{margin:0}.uninstalldeleteconfirmexternal{background-color:#fcf8e3;padding:.5em 1em;margin:5px 0 10px 0}#page-admin-index .upgradepluginsinfo{text-align:center}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo .separator:after{content:" | "}.dir-rtl #plugins-check .pluginupdateinfo{text-align:center;direction:ltr}.dir-rtl #plugins-check .requires-ok{text-align:left;direction:ltr}#page-admin-mnet-peers .box.deletedhosts{margin-bottom:1em;font-size:11.9px}#page-admin-mnet-peers .mform .deletedhostinfo{background-color:#f2dede;border:2px solid #eed3d7;padding:4px;margin-bottom:5px}#core-cache-plugin-summaries table,#core-cache-store-summaries table{width:100%}#core-cache-lock-summary table,#core-cache-definition-summaries table,#core-cache-mode-mappings table{margin:0 auto}#core-cache-store-summaries .default-store td{font-style:italic}#core-cache-rescan-definitions,#core-cache-mode-mappings .edit-link,#core-cache-lock-summary .new-instance{margin-top:.5em;text-align:center}.tinymcesubplugins img.icon{padding-top:0;padding-bottom:0}.maintenancewarning{padding:3px 1em;text-align:center;position:fixed;bottom:0;right:0;overflow:hidden;z-index:1}.maintenancewarning.error{color:#b94a48;background-color:#f2dede;border:2px solid #eed3d7;font-weight:bold}.maintenancewarning.warning{color:#8a6d3b;background-color:#fcf8e3;border:2px solid #fbeed5}#adminsettings .form-overridden{color:#3a87ad;background-color:#d9edf7}.calendar_event_course{background-color:#ffd3bd}.calendar_event_global{background-color:#d6f8cd}.calendar_event_group{background-color:#fee7ae}.calendar_event_user{background-color:#dce7ec}.path-calendar .calendartable{width:100%}.path-calendar .calendartable th,.path-calendar .calendartable td{width:14%;vertical-align:top;text-align:center;border:0}.path-calendar .calendar-controls .previous,.path-calendar .calendar-controls .next,.path-calendar .calendar-controls .current{display:block;float:left;width:12%}.path-calendar .calendar-controls .previous{text-align:left}.path-calendar .calendar-controls .current{text-align:center;width:76%}.path-calendar .calendar-controls .next{text-align:right}.path-calendar .filters table{border-collapse:separate;border-spacing:2px;width:100%}.path-calendar .cal_courses_flt{float:left}.path-calendar .cal_courses_flt label{margin-right:.45em}.path-calendar .maincalendar{vertical-align:top;padding:0}.path-calendar .maincalendar .bottom{text-align:center;padding:5px 0 0 0}.path-calendar .maincalendar .heightcontainer{height:100%;position:relative}.path-calendar .maincalendar .calendarmonth{width:98%;margin:10px auto}.path-calendar .maincalendar .calendarmonth ul{margin:0}.path-calendar .maincalendar .calendarmonth ul li{list-style-type:none;margin-top:4px}.path-calendar .maincalendar .calendarmonth td{height:5em}.path-calendar .maincalendar .calendar-controls .previous,.path-calendar .maincalendar .calendar-controls .next{width:30%}.path-calendar .maincalendar .calendar-controls .current{width:39.95%}.path-calendar .maincalendar .controls{width:98%;margin:10px auto}.path-calendar .maincalendar .calendar_event_course,.path-calendar .maincalendar .calendar_event_global,.path-calendar .maincalendar .calendar_event_group,.path-calendar .maincalendar .calendar_event_user{border-width:1px 1px 1px 12px;border-style:solid}.path-calendar .maincalendar .calendar_event_course{border-color:#ffd3bd}.path-calendar .maincalendar .calendar_event_global{border-color:#d6f8cd}.path-calendar .maincalendar .calendar_event_group{border-color:#fee7ae}.path-calendar .maincalendar .calendar_event_user{border-color:#dce7ec}.path-calendar .maincalendar .calendar-event-panel{background-color:#eee;border:2px solid #eee}.path-calendar .maincalendar .calendar-event-panel .yui3-overlay-content{padding:19px;background-color:#fdfdfd;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.path-calendar .maincalendar .calendar-controls .current{font-family:inherit;font-weight:bold;color:inherit;font-size:25px;line-height:1.2}.path-calendar .maincalendar .calendartable td,.path-calendar .maincalendar .calendartable li{padding:5px}.path-calendar .maincalendar .calendartable li{padding-left:10px;text-align:left}.path-calendar .maincalendar .header{overflow:hidden}.path-calendar .maincalendar .header .buttons{float:right}.path-calendar .maincalendar .eventlist{margin:0}.path-calendar .maincalendar .eventlist .event{width:92%;border-spacing:0;border-collapse:separate;position:relative;padding:20px 4%;margin-bottom:20px;background-color:#fdfdfd;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);list-style-type:none}.path-calendar .maincalendar .eventlist .event>img{padding-top:3px;float:left}.path-calendar .maincalendar .eventlist .event .name{font-size:17.5px;font-weight:200;line-height:24px;float:left;margin:0}.path-calendar .maincalendar .eventlist .event .name,.path-calendar .maincalendar .eventlist .event .course{margin-bottom:5px}.path-calendar .maincalendar .eventlist .event .date{float:right}.path-calendar .maincalendar .eventlist .event .course,.path-calendar .maincalendar .eventlist .event .subscription{float:left;clear:left}.path-calendar .maincalendar .eventlist .event .side{width:22px}.path-calendar .maincalendar .eventlist .event .description{background-color:#fff;padding:5px;clear:both}.path-calendar .maincalendar .eventlist .event .description .commands{position:absolute;right:0;top:0;margin:3px}.path-calendar .maincalendar .eventlist .event .commands{position:absolute;top:2px;right:2px}.path-calendar .maincalendar .eventlist .event .commands a{margin:0 3px}.dir-rtl.path-calendar .cal_courses_flt{float:right}.dir-rtl.path-calendar .cal_courses_flt label{margin-left:.45em;margin-right:0}.dir-rtl.path-calendar .maincalendar .calendar_event_course,.dir-rtl.path-calendar .maincalendar .calendar_event_global,.dir-rtl.path-calendar .maincalendar .calendar_event_group,.dir-rtl.path-calendar .maincalendar .calendar_event_user{border-left-width:1px;border-right-width:12px}.dir-rtl.path-calendar .maincalendar .calendar-controls .next{text-align:left}.dir-rtl.path-calendar .maincalendar .calendar-controls .previous{text-align:right}.dir-rtl.path-calendar .maincalendar .calendartable td,.dir-rtl.path-calendar .maincalendar .calendartable li{text-align:right}.dir-rtl.path-calendar .maincalendar .calendartable li{padding-right:10px;padding-left:5px}.dir-rtl.path-calendar .maincalendar .header .buttons{float:left}.dir-rtl.path-calendar .maincalendar .eventlist .event>img{float:right}.dir-rtl.path-calendar .maincalendar .eventlist .event .name{float:right}.dir-rtl.path-calendar .maincalendar .eventlist .event .date{float:left}.dir-rtl.path-calendar .maincalendar .eventlist .event .description .commands{right:inherit;left:0}.dir-rtl.path-calendar .maincalendar .eventlist .event .course,.dir-rtl.path-calendar .maincalendar .eventlist .event .subscription{float:right;clear:right}.dir-rtl.path-calendar .maincalendar .eventlist .event .commands{left:2px;right:inherit}#page-calendar-export .indent{padding-left:20px}.block .minicalendar{max-width:280px;margin:0 auto;width:100%}.block .minicalendar th,.block .minicalendar td{padding:2px;font-size:.8em;text-align:center}.block .minicalendar td.weekend{color:#999}.block .minicalendar td a{width:100%;height:100%;display:block}.block .minicalendar td.duration_global{border-top:1px solid #d6f8cd;border-bottom:1px solid #d6f8cd}.block .minicalendar td.duration_global.duration_finish{background-color:#d6f8cd}.block .minicalendar td.duration_course{border-top:1px solid #ffd3bd;border-bottom:1px solid #ffd3bd}.block .minicalendar td.duration_course.duration_finish{background-color:#ffd3bd}.block .minicalendar td.duration_group{border-top:1px solid #fee7ae;border-bottom:1px solid #fee7ae}.block .minicalendar td.duration_group.duration_finish{background-color:#fee7ae}.block .minicalendar td.duration_user{border-top:1px solid #dce7ec;border-bottom:1px solid #dce7ec}.block .minicalendar td.duration_user.duration_finish{background-color:#dce7ec}.block .minicalendar caption{font-size:inherit;font-weight:inherit;line-height:inherit;text-align:center}.block .calendar-event-panel{background-color:#eee;border:1px solid #eee}.block .calendar-event-panel .yui3-overlay-content{padding:19px;background-color:#fdfdfd;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.block .calendar-event-panel .yui3-overlay-content h2.eventtitle{line-height:1.2;font-size:18px}.block .calendar-event-panel .yui3-overlay-content .eventcontent img{padding-right:5px}.block .calendar-controls .previous,.block .calendar-controls .current,.block .calendar-controls .next{display:block;float:left}.block .calendar-controls .previous{text-align:left;width:12%}.block .calendar-controls .current{text-align:center;width:76%}.block .calendar-controls .next{text-align:right;width:12%}.block .calendar_filters ul{list-style:none;margin:0}.block .calendar_filters li{margin-bottom:.2em}.block .calendar_filters li span img{padding:0 .2em}.block .calendar_filters .eventname{padding-left:.2em}.block .content h3.eventskey{margin-top:.5em}.dir-rtl .block .calendar_filters .eventname{padding-right:.2em;padding-left:0}.dir-rtl .block .calendar-event-panel .yui3-overlay-content .eventcontent img{padding-right:0;padding-left:5px}.ical-link{font-size:10px;font-weight:bold;background-color:#f60;padding:0 5px;color:#fff;border-top:1px solid #f93;border-left:1px solid #f93;border-bottom:1px solid #013;border-right:1px solid #013}.ical-link:hover,.ical-link:active,.ical-link:focus,.ical-link:visited{color:#fff;text-decoration:none}@media (min-width:768px){#page-calender-view .container-fluid{min-width:1024px}}.section_add_menus{text-align:right;clear:both}.section-modchooser{clear:both}.dir-rtl .section_add_menus{text-align:left;clear:both}.section_add_menus .horizontal div,.section_add_menus .horizontal form{display:inline}.section_add_menus optgroup{font-weight:normal;font-style:italic}.section_add_menus .urlselect{margin-left:.4em}.dir-rtl .section_add_menus .urlselect{margin-right:.4em;margin-left:0}.section_add_menus .urlselect select{margin-left:.2em}.dir-rtl .section_add_menus .urlselect select{margin-right:.2em;margin-left:0}.section_add_menus .urlselect img.iconhelp{padding:0;margin:0;vertical-align:text-bottom}.sitetopic ul.section{margin:0}.course-content ul.section{margin:1em}.section .side.left{float:left}.section .side.right{float:right}.section .spinner{height:16px;width:16px}.section .activity .spinner{left:100%;position:absolute;vertical-align:text-bottom}.section .activity .editing_move{position:absolute;left:0;top:0}.section .activity .mod-indent-outer{padding-left:32px}.section .activity .actions{position:absolute;right:0;top:0}.section .activity .contentwithoutlink,.section .activity .activityinstance{min-width:40%;display:table-cell;padding-right:4px;min-height:2em}.section .activity .contentwithoutlink .dimmed img.activityicon,.section .activity .activityinstance .dimmed img.activityicon{opacity:.5;filter:alpha(opacity=50)}.section .label .contentwithoutlink,.section .label .activityinstance{padding-right:32px;display:block;height:inherit}.section .label .mod-indent-outer{padding-left:24px;display:block}.section .filler{width:16px;height:16px;padding:.3em;display:inline-block}.section .activity.editor_displayed a.editing_title,.section .activity.editor_displayed .moodle-actionmenu{display:none}.section .activity.editor_displayed div.activityinstance{padding-right:initial}.section .activity.editor_displayed div.activityinstance input{margin-bottom:initial;padding-top:initial;padding-bottom:initial;vertical-align:text-bottom}.dir-rtl .section .side.left{float:right}.dir-rtl .section .side.right{float:left}.dir-rtl .section .activity .spinner{left:auto;right:100%}.dir-rtl .section .activity .mod-indent-outer{padding-left:initial;padding-right:32px}.dir-rtl .section .activity .actions{left:0;right:auto}.dir-rtl .section .activity .contentwithoutlink,.dir-rtl .section .activity .activityinstance{padding-left:4px;padding-right:initial}.dir-rtl .section .activity .editing_move{left:auto;right:0}.dir-rtl .section .activity.editor_displayed div.activityinstance{padding-left:initial}.activity img.activityicon{margin-right:6px;vertical-align:text-bottom}.dir-rtl .section .activity img.activityicon{margin-left:6px;margin-right:0}.section .activity .activityinstance,.section .activity .activityinstance div{display:inline-block}.editing .section .activity .contentwithoutlink,.editing .section .activity .activityinstance{padding-right:200px}.dir-rtl.editing .section .activity .contentwithoutlink,.dir-rtl.editing .section .activity .activityinstance{padding-left:200px;padding-right:0}.editing_show+.editing_assign,.editing_hide+.editing_assign{margin-left:20px}.section .activity .commands{white-space:nowrap;display:inline}.section .activity.modtype_label.label{font-weight:normal;padding:.2em}.section li.activity{padding:.2em;clear:both}.section .activity .activityinstance .groupinglabel{padding-left:30px}.dir-rtl .section .activity .activityinstance .groupinglabel{padding-right:30px}.section .activity .availabilityinfo,.section .activity .contentafterlink{margin-top:.5em;margin-left:30px}.dir-rtl .section .activity .availabilityinfo,.dir-rtl .section .activity .contentafterlink{margin-left:0;margin-right:30px}.section .activity .contentafterlink p{margin:.5em 0}.editing .section .activity:hover,.editing .section .activity.action-menu-shown{background-color:#eee}.course-content .current{background-color:#d9edf7}.course-content .section-summary{border:1px solid #ddd;margin-top:5px;list-style:none}.course-content .section-summary .section-title{margin:2px 5px 10px 5px}.course-content .section-summary .summarytext{margin:2px 5px 2px 5px}.course-content .section-summary .section-summary-activities .activity-count{color:#999;font-size:11.9px;margin:3px;white-space:nowrap;display:inline-block}.course-content .section-summary .summary{margin-top:5px}.course-content .single-section{margin-top:1em}.course-content .single-section .section-navigation{display:block;padding:.5em;margin-bottom:-0.5em}.course-content .single-section .section-navigation .title{font-weight:bold;font-size:108%;clear:both}.course-content .single-section .section-navigation .mdl-left{font-weight:normal;float:left;margin-right:1em}.dir-rtl .course-content .single-section .section-navigation .mdl-left{float:right}.course-content .single-section .section-navigation .mdl-left .larrow{margin-right:.1em}.course-content .single-section .section-navigation .mdl-right{font-weight:normal;float:right;margin-left:1em}.dir-rtl .course-content .single-section .section-navigation .mdl-right{float:left}.course-content .single-section .section-navigation .mdl-right .rarrow{margin-left:.1em}.course-content .single-section .section-navigation .mdl-bottom{margin-top:0}.course-content ul li.section.main{border-bottom:2px solid #ddd;margin-top:0}.course-content ul li.section.hidden .sectionname>span,.course-content ul li.section.hidden .content>div,.course-content ul li.section.hidden .activity .activityinstance{opacity:.5}.course-content ul li.section.hidden .sectionname>span,.course-content ul li.section.hidden .activity .activityinstance{margin-left:10px;margin-right:10px}.course-content ul.topics li.section .content,.course-content ul.weeks li.section .content{margin-right:20px;margin-left:20px;padding:0}.course-content{margin-top:0}.course-content ul.topics li.section{padding-bottom:20px}.course-content ul.topics li.section .summary{margin-left:25px}.course-content li.section ul{list-style:disc}.course-content li.section ul ul{list-style:circle}.course-content li.section ul ul ul{list-style:square}.course-content li.section li.activity ul{list-style:disc}.course-content li.section li.activity ul ul{list-style:circle}.course-content li.section li.activity ul ul ul{list-style:square}.path-course-view .completionprogress{margin-left:25px}.path-course-view .completionprogress{display:block;float:right;height:20px;position:relative}#page-site-index .subscribelink{text-align:right}#site-news-forum h2,#frontpage-course-list h2,#frontpage-category-names h2,#frontpage-category-combo h2{margin-bottom:9px}.path-course-view a.reduce-sections{padding-left:.2em}.path-course-view .subscribelink{text-align:right}.path-course-view .unread{margin-left:30px}.dir-rtl.path-course-view .unread{margin-right:30px}.path-course-view .block.drag .header{cursor:move}.path-course-view .completionprogress{text-align:right}.dir-rtl.path-course-view .completionprogress{text-align:left}.path-course-view .single-section .completionprogress{margin-right:5px}.path-course-view .section .summary{line-height:normal}.path-site li.activity>div,.path-course-view li.activity>div{position:relative;padding:0 16px 0 0}.dir-rtl.path-site li.activity>div,.dir-rtl.path-course-view li.activity>div{position:relative;padding:0 0 0 16px}.path-course-view li.activity span.autocompletion img{vertical-align:text-bottom}.path-course-view li.activity form.togglecompletion img{max-width:none}.path-course-view li.activity form.togglecompletion .ajaxworking{width:16px;height:16px;position:absolute;right:22px;top:3px;background:url([[pix:i/ajaxloader]]) no-repeat}.dir-rtl.path-course-view .completionprogress{float:none}.dir-rtl.path-course-view li.activity form.togglecompletion .ajaxworking{right:-22px}li.section.hidden span.commands a.editing_hide,li.section.hidden span.commands a.editing_show{cursor:default}ul.weeks h3.sectionname{white-space:nowrap}.editing ul.weeks h3.sectionname{white-space:normal}.single-section h3.sectionname{text-align:center;clear:both}.section img.movetarget{height:16px;width:80px}input.titleeditor{width:330px;vertical-align:text-bottom}span.editinstructions{position:absolute;top:0;margin-top:-22px;margin-left:30px;line-height:16px;font-size:11.9px;padding:.1em .4em;background-color:#d9edf7;color:#3a87ad;text-decoration:none;z-index:9999;-webkit-box-shadow:2px 2px 5px 1px #ccc;-moz-box-shadow:2px 2px 5px 1px #ccc;box-shadow:2px 2px 5px 1px #ccc;border:1px solid #bce8f1}#dndupload-status{position:fixed;left:0;width:40%;margin:0 30%;padding:6px;border:1px solid #bce8f1;text-align:center;background:#d9edf7;color:#3a87ad;z-index:1;-webkit-box-shadow:2px 2px 5px 1px #ccc;-moz-box-shadow:2px 2px 5px 1px #ccc;box-shadow:2px 2px 5px 1px #ccc;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px}.dndupload-preview{color:#909090;border:1px dashed #909090;list-style:none;margin-top:.2em;padding:.3em}.dndupload-preview img.icon{vertical-align:text-bottom;padding:0}.dndupload-progress-outer{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.dndupload-progress-inner{width:0;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.dndupload-hidden{display:none}#page-course-pending .singlebutton,#page-course-index .singlebutton,#page-course-index-category .singlebutton,#page-course-editsection .singlebutton{text-align:center}#page-admin-course-manage #movecourses td img{margin:0 .22em;vertical-align:text-bottom}#page-admin-course-manage #movecourses td img.icon{padding:0}#coursesearch{margin-top:1em;text-align:center}#page-course-pending .pendingcourserequests{margin-bottom:1em}#page-course-pending .pendingcourserequests .singlebutton{display:inline}#page-course-pending .pendingcourserequests .cell{padding:0 5px}#page-course-pending .pendingcourserequests .cell.c6{white-space:nowrap}.coursebox{margin-bottom:15px;border:1px dotted #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding:5px}.coursebox>.info>.coursename a{display:block;background-image:url([[pix:moodle|i/course]]);background-repeat:no-repeat;padding-left:21px;background-position:left .2em}.dir-rtl .coursebox>.info>.coursename a{padding-left:0;padding-right:21px;background-position:right .2em}.coursebox>.info>.coursename,.coursebox .content .teachers,.coursebox .content .courseimage,.coursebox .content .coursefile{float:left;clear:left}.coursebox .content .teachers,.coursebox .content .courseimage,.coursebox .content .coursefile{width:40%}.dir-rtl .coursebox>.info>.coursename,.dir-rtl .coursebox .teachers,.dir-rtl .coursebox .content .courseimage,.dir-rtl .coursebox .content .coursefile{float:right;clear:right}.coursebox>.info>h3.coursename{margin:5px;line-height:1}.coursebox>.info>.coursename{margin:5px;padding:0}.coursebox .content .teachers li{list-style-type:none;padding:0;margin:0}.coursebox .enrolmenticons{padding:3px 0;float:right}.coursebox .moreinfo{padding:3px 0;float:right}.coursebox .enrolmenticons img,.coursebox .moreinfo img{margin:0 .2em}.coursebox .content{clear:both}.coursebox .content .summary,.coursebox .content .coursecat{float:right;width:55%}.coursebox .content .coursecat{text-align:right;clear:right}.coursebox.remotecoursebox .remotecourseinfo{float:left;width:40%}.coursebox .content .courseimage img{max-width:100px;max-height:100px}.coursebox .content .coursecat,.coursebox .content .summary,.coursebox .content .courseimage,.coursebox .content .coursefile,.coursebox .content .teachers,.coursebox.remotecoursebox .remotecourseinfo{margin:3px 5px;padding:0}.coursebox.remotehost>.info>.categoryname a{background-image:url([[pix:moodle|i/mnethost]])}.dir-rtl .coursebox>.info>.categoryname a{padding-left:0;padding-right:21px;background-position:center right}.dir-rtl .coursebox>.info>.categoryname,.dir-rtl .coursebox .teachers,.dir-rtl .coursebox .content .courseimage,.dir-rtl .coursebox .content .coursefile{float:right;clear:right}.dir-rtl .coursebox .enrolmenticons,.dir-rtl .coursebox .moreinfo{float:left}.dir-rtl .coursebox .summary,.dir-rtl .coursebox .coursecat{float:left}.dir-rtl .coursebox .coursecat{text-align:left;clear:left}.coursebox.collapsed{margin-bottom:0}.coursebox.collapsed>.content{display:none}.courses .coursebox.collapsed{border:1px solid #ddd;padding:5px}.courses .coursebox.even{background-color:#f9f9f9}.courses .coursebox:hover,.course_category_tree .courses>.paging.paging-morelink:hover{background-color:#f5f5f5}.course_category_tree .category .numberofcourse{font-size:11.9px}.course_category_tree .controls{visibility:hidden}.course_category_tree .controls div{display:inline;cursor:pointer}.jsenabled .course_category_tree .controls{visibility:visible}.course_category_tree .controls{margin-bottom:5px;text-align:right;float:right}.course_category_tree .controls div{padding-right:2em;font-size:75%}.course_category_tree .category>.info>.categoryname{background-image:url([[pix:moodle|t/collapsed_empty]]);background-repeat:no-repeat;padding:2px 18px;margin:3px;background-position:center left}.dir-rtl .course_category_tree .category>.info>.categoryname{background-image:url([[pix:moodle|t/collapsed_empty_rtl]]);background-position:center right}.course_category_tree .category.with_children>.info>.categoryname{background-image:url([[pix:moodle|t/expanded]]);cursor:pointer}.course_category_tree .category.with_children.collapsed>.info>.categoryname{background-image:url([[pix:moodle|t/collapsed]])}.dir-rtl .course_category_tree .category.with_children.collapsed>.info>.categoryname{background-image:url([[pix:moodle|t/collapsed_rtl]])}.course_category_tree .category.collapsed>.content{display:none}.course_category_tree .category>.info{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3;min-height:0;padding:0;margin:3px 0;margin-bottom:3px;clear:both}.course_category_tree .category>.info blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.course_category_tree.frontpage-category-names .category>.info{background:none;border:none;margin:0}.course_category_tree .category>.content{padding-left:16px}.dir-rtl .course_category_tree .category>.content{padding-left:0;padding-right:16px}.course_category_tree .subcategories>.paging,.courses>.paging{margin:0;padding:5px;text-align:center}.courses>.paging.paging-morelink,.course_category_tree .subcategories>.paging.paging-morelink{text-align:left}.course_category_tree .paging.paging-morelink a{font-size:11.9px}.dir-rtl .courses>.paging.paging-morelink,.dir-rtl .course_category_tree .paging.paging-morelink{text-align:right}#page-course-index-category .generalbox.info{margin-bottom:15px;border:1px dotted #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding:5px}#page-course-index-category .categorypicker{text-align:center;margin:10px 0 20px}.section .summary .iconsmall,.section .activity .iconsmall{width:16px;height:16px}.section .editing_title .iconsmall{width:12px;height:12px;margin:8px 8px 0 0;padding:4px 8px 0 0;vertical-align:text-bottom}.section .moodle-actionmenu .iconsmall{max-width:none !important;width:16px;height:16px;padding:4px;vertical-align:text-bottom}.section .moodle-actionmenu[data-enhanced] .menu img{width:12px;height:12px}.dir-rtl .section .editing_title .iconsmall{margin:8px 0 0 8px;padding:4px 0 0 8px}#course-category-listings{background-color:transparent;margin-bottom:200px}#course-category-listings.columns-2>#course-listing>div{position:relative;left:-1px}#course-category-listings.columns-3>#course-listing>div{height:100%}#course-category-listings>div>div{min-height:300px}#course-category-listings>div>div>ul.ml>li:first-child>div{border-top:0}#course-category-listings h3{margin:0;padding:.4rem .6rem .3rem}#course-category-listings h4{margin:1rem 0 0;padding:.6rem 1rem .5rem}#course-category-listings .moodle-actionmenu{white-space:nowrap}#course-category-listings .moodle-actionmenu[data-enhance] .toggle-display img{width:auto}#course-category-listings .moodle-actionmenu[data-enhance] .toggle-display.textmenu{padding-right:4px}#course-category-listings .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret{margin-top:12px}#course-category-listings .listing-actions{text-align:center;padding:.4rem .3rem .3rem;line-height:2.2em}#course-category-listings .listing-actions>a,#course-category-listings .listing-actions>.moodle-actionmenu{display:inline-block}#course-category-listings .listing-actions>.moodle-actionmenu .menu a{padding-left:1rem}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced]) li{line-height:normal}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced])>.menubar a{color:inherit;display:inline-block}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced])>.menubar a>img{display:none}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced])>.menubar a .caret{display:none}#course-category-listings .listing-actions .moodle-actionmenu:not([data-enhanced])>.menu .menu-action-text{display:inline-block}#course-category-listings ul.ml{list-style:none;margin:1rem 0}#course-category-listings ul.ml ul.ml{margin:0}#course-category-listings li{line-height:2.2em}#course-category-listings li>div:hover{background-color:#f5f5f5}#course-category-listings li .tree-icon{margin:2px 6px 0 0;width:12px;vertical-align:inherit}#course-category-listings li[data-selected='1']>div{background-color:#f9f9f9}#course-category-listings li[data-selected='1']>div:hover{background-color:#f5f5f5}#course-category-listings li .tree-icon{margin-left:0}#course-category-listings li li .tree-icon{margin-left:1em}#course-category-listings li li li .tree-icon{margin-left:2em}#course-category-listings li li li li .tree-icon{margin-left:3em}#course-category-listings li li li li li .tree-icon{margin-left:4em}#course-category-listings li li li li li li .tree-icon{margin-left:4.5em}#course-category-listings li li li li li li li .tree-icon{margin-left:5em}#course-category-listings li li li li li li li li .tree-icon{margin-left:5.5em}#course-category-listings .item-actions{margin-right:1em;display:inline-block;display:initial}#course-category-listings .item-actions>a img,#course-category-listings .item-actions .menubar img{margin:0 4px;height:12px;padding:0;vertical-align:inherit}#course-category-listings .item-actions.show .menu li{line-height:20px}#course-category-listings .item-actions.show .menu img{width:12px;max-width:none}#course-category-listings .item-actions .menu-action-text{vertical-align:inherit}#course-category-listings .listitem>div>.float-left{float:left}#course-category-listings .listitem>div>.float-right{float:right;text-align:right}#course-category-listings .listitem>div .item-actions .action-show{display:none}#course-category-listings .listitem>div .item-actions .action-hide{display:inline}#course-category-listings .listitem>div .without-actions{color:#333}#course-category-listings .listitem>div .idnumber{color:#a1a1a8;margin-right:2em}#course-category-listings .listitem[data-visible="0"]{color:#999}#course-category-listings .listitem[data-visible="0"]>div>a{color:#999}#course-category-listings .listitem[data-visible="0"]>div .item-actions .action-show{display:inline}#course-category-listings .listitem[data-visible="0"]>div .item-actions .action-hide{display:none}#course-category-listings .listitem.highlight{background-color:transparent}#course-category-listings .listitem.highlight>div,#course-category-listings .listitem.highlight>div:hover,#course-category-listings .listitem.highlight[data-selected='1']>div{background-color:#f5f5f5}#course-category-listings #course-listing .listitem .categoryname{display:inline-block;margin-left:1em;color:#a1a1a8}#course-category-listings #course-listing .listitem .coursename{display:inline-block}#course-category-listings #course-listing .listitem>div{padding-left:1rem}#course-category-listings #course-listing>.firstpage .listitem:first-child>div .item-actions .action-moveup,#course-category-listings #course-listing>.lastpage .listitem:last-child>div .item-actions .action-movedown{display:none}#course-category-listings #course-listing .bulk-action-checkbox{margin:-2px 6px 0 0}#course-category-listings #category-listing .listitem.collapsed>ul.ml{display:none}#course-category-listings #category-listing .listitem>div>.ba-checkbox{width:2.2em;text-align:center;margin:-1px .5em 0 0;padding-top:2px}#course-category-listings #category-listing .listitem.highlight>div>.ba-checkbox{background-color:#f5f5f5}#course-category-listings #category-listing .listitem[data-selected='1']>div>.ba-checkbox{margin:0 .5em 0 0;padding:0;background-color:inherit}#course-category-listings #category-listing .listitem:first-child>div .item-actions .action-moveup,#course-category-listings #category-listing .listitem:last-child>div .item-actions .action-movedown{display:none}#course-category-listings #category-listing .course-count{color:#a1a1a8;margin-right:2rem;min-width:3.5em;display:inline-block}#course-category-listings #category-listing .course-count .smallicon{width:12px;margin-left:4px;vertical-align:inherit}#course-category-listings #category-listing .bulk-action-checkbox{margin-right:-3px}#course-category-listings #category-listing .category-listing>ul>.listitem:first-child{position:relative}#course-category-listings #category-listing .category-bulk-actions{margin:0 .5em .5em;position:relative}#course-category-listings .detail-pair{border-bottom:1px solid #ddd;margin:0 1rem}#course-category-listings .detail-pair>*{display:inline-block;line-height:2.2rem}#course-category-listings .detail-pair .pair-key{font-weight:bold;vertical-align:top}#course-category-listings .detail-pair .pair-key span{margin-right:1rem;display:block}#course-category-listings .detail-pair .pair-value select{max-width:100%}#course-category-listings .bulk-actions .detail-pair>*{display:block;width:100%}#course-category-listings .listing-pagination{text-align:center}#course-category-listings .listing-pagination .yui3-button{background-color:#fff;border:0;margin:.4rem .2rem .45rem;font-size:10.4px}#course-category-listings .listing-pagination .yui3-button.active-page{background-color:#e6e6e6}#course-category-listings .listing-pagination-totals{text-align:center}#course-category-listings .listing-pagination-totals.dimmed{color:#999;margin:.4rem 1rem .45rem}#course-category-listings .select-a-category .notifymessage,#course-category-listings .select-a-category .alert{margin:1em}#course-category-listings #course-listing .listitem .drag-handle{display:none}.jsenabled #course-category-listings #course-listing .listitem .drag-handle{display:inline-block;margin:0 6px 0 0;cursor:pointer}.dir-rtl #course-category-listings #category-listing,.dir-rtl #course-category-listings #course-listing{float:right;margin-left:0}.dir-rtl #course-category-listings .listitem>div>.float-left{float:right}.dir-rtl #course-category-listings .listitem>div>.float-right{float:left;text-align:left}.dir-rtl #course-category-listings li .tree-icon{margin:2px 0 0 6px}.dir-rtl #course-category-listings li .tree-icon{margin-right:0}.dir-rtl #course-category-listings li li .tree-icon{margin-right:1em}.dir-rtl #course-category-listings li li li .tree-icon{margin-right:2em}.dir-rtl #course-category-listings li li li li .tree-icon{margin-right:3em}.dir-rtl #course-category-listings li li li li li .tree-icon{margin-right:4em}.dir-rtl #course-category-listings li li li li li li .tree-icon{margin-right:4.5em}.dir-rtl #course-category-listings li li li li li li li .tree-icon{margin-right:5em}.dir-rtl #course-category-listings li li li li li li li li .tree-icon{margin-right:5.5em}.dir-rtl #course-category-listings #category-listing .listitem>div{margin-right:.5em;margin-left:0}.dir-rtl #course-category-listings #category-listing .listitem>div>.ba-checkbox{margin:-1px 0 0 .5em}.dir-rtl #course-category-listings #category-listing .listitem[data-selected='1']>div>.ba-checkbox{margin:0 0 0 .5em}.dir-rtl #course-category-listings #category-listing .course-count{margin-left:2rem}.dir-rtl #course-category-listings #category-listing .course-count .smallicon{margin-left:0;margin-right:4px}.dir-rtl #course-category-listings #category-listing .bulk-action-checkbox{margin-left:-3px;margin-right:0}.dir-rtl #course-category-listings #course-listing{padding-right:24px}.dir-rtl #course-category-listings #course-listing .listitem .idnumber{color:#a1a1a8;padding-right:2em}.dir-rtl #course-category-listings #course-listing .listitem .categoryname{display:inline-block;margin-right:1em;margin-left:0}.dir-rtl #course-category-listings #course-listing .listitem .drag-handle{margin:0 6px 0 6px}.dir-rtl #course-category-listings #course-listing .listitem>div{padding-left:1rem}.dir-rtl #course-category-listings #course-listing .bulk-action-checkbox{vertical-align:middle;margin:-2px 0 0 6px}.dir-rtl #course-category-listings .detail-pair>*{float:right;margin-right:0}.dir-rtl #course-category-listings .detail-pair .pair-key span{margin-right:0;margin-left:0}.dir-rtl #course-category-listings .detail-pair .pair-value{margin-right:.5em}.coursecat-management-header{vertical-align:middle}.coursecat-management-header h2{display:inline-block;text-align:left}.coursecat-management-header>div{display:inline-block;float:right;line-height:40px}.coursecat-management-header>div>div{margin-left:1em;margin:10px 0;display:inline-block}.coursecat-management-header select{max-width:300px;cursor:pointer;padding:.4em .5em .45em 1em;vertical-align:baseline;white-space:nowrap}.coursecat-management-header .view-mode-selector .moodle-actionmenu{white-space:nowrap;display:inline-block}.coursecat-management-header .view-mode-selector .moodle-actionmenu[data-enhanced].show .menu a{padding-left:1em}.dir-rtl .coursecat-management-header h2{text-align:right}.dir-rtl .coursecat-management-header>div{float:left;margin-right:1em;margin-left:0}.course-being-dragged-proxy{border:0;color:#0070a8;vertical-align:middle;padding:0 0 0 4em}.course-being-dragged{opacity:.5;filter:alpha(opacity=50)}@media (min-width:1200px) and (max-width:1600px){#course-category-listings.columns-3{background-color:transparent;border:0}#course-category-listings.columns-3 #category-listing,#course-category-listings.columns-3 #course-listing{width:50%}#course-category-listings.columns-3 #category-listing>div,#course-category-listings.columns-3 #course-listing>div,#course-category-listings.columns-3 #course-detail>div{background-color:transparent}#course-category-listings.columns-3 #course-detail{width:100%;margin-top:1em}}@media (max-width:1199px){#course-category-listings.columns-2,#course-category-listings.columns-3{background-color:transparent;border:0}#course-category-listings.columns-2 #category-listing,#course-category-listings.columns-3 #category-listing,#course-category-listings.columns-2 #course-listing,#course-category-listings.columns-3 #course-listing,#course-category-listings.columns-2 #course-detail,#course-category-listings.columns-3 #course-detail{width:100%;margin:0 0 1em}#course-category-listings.columns-2 #category-listing>div,#course-category-listings.columns-3 #category-listing>div,#course-category-listings.columns-2 #course-listing>div,#course-category-listings.columns-3 #course-listing>div,#course-category-listings.columns-2 #course-detail>div,#course-category-listings.columns-3 #course-detail>div{background-color:transparent}}.filemanager,.filepicker,.file-picker{font-size:11px}.filemanager a,.file-picker a,.filemanager a:hover,.file-picker a:hover{color:#555555;text-decoration:none}.filemanager input[type="text"],.file-picker input[type="text"]{width:265px}.filemanager .fp-license td,.file-picker .fp-setlicense td{max-width:265px}.filemanager .fp-license select,.file-picker .fp-setlicense select{max-width:100%}.fp-content-center{height:100%;width:100%;display:table-cell;vertical-align:middle}.fp-content-hidden{visibility:hidden}.yui3-panel-focused{outline:none}#filesskin .yui3-panel-content{padding-bottom:20px;background:#F2F2F2;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;border:1px solid #fff;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}#filesskin .yui3-widget-hd{-webkit-border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;border-radius:10px 10px 0 0;border-bottom:1px solid #BBBBBB;padding:5px;text-align:center;font-size:12px;color:#333;letter-spacing:1px;text-shadow:1px 1px 1px #fff;filter:dropshadow(color=#FFFFFF, offx=1, offy=1);background-color:#ebebeb;background-image:-moz-linear-gradient(top, #fff, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc));background-image:-webkit-linear-gradient(top, #fff, #ccc);background-image:-o-linear-gradient(top, #fff, #ccc);background-image:linear-gradient(to bottom, #fff, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffcccccc', GradientType=0)}.fp-panel-button{background:#fff;padding:3px 20px 2px 20px;text-align:center;margin:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:2px 2px 3px .1px #999;-moz-box-shadow:2px 2px 3px .1px #999;box-shadow:2px 2px 3px .1px #999}.moodle-dialogue h3{font-size:14px;margin:0;line-height:20px}.moodle-dialogue-base .filepicker .moodle-dialogue-wrap .moodle-dialogue-bd{padding:0}#filesskin .file-picker.fp-generallayout{width:859px;background:#FFFFFF;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:1px solid #CCCCCC;position:relative}.file-picker .fp-repo-area{width:180px;overflow:auto;display:inline-block;*display:inline;*zoom:1;float:left;height:525px;border-right:1px solid #BBBBBB}.dir-rtl .file-picker .fp-repo-area{border-left:1px solid #BBBBBB;border-right:none;float:right}.file-picker .fp-repo-items{float:none;width:auto;margin-left:181px}.moodle-dialogue-fullscreen .file-picker .fp-repo-items{margin-left:0;margin-right:0;float:left}.dir-rtl .file-picker .fp-repo-items{margin-left:0;margin-right:181px}.dir-rtl .moodle-dialogue-fullscreen .file-picker .fp-repo-items{margin-left:0;margin-right:0;float:right}.file-picker .fp-navbar{background:#F2F2F2;border-bottom:1px solid #BBBBBB;min-height:40px;overflow:hidden}.file-picker .fp-navbar .fp-viewbar{margin:4px}.file-picker .fp-content{background:#FFFFFF;clear:none;overflow:auto;height:452px}.filepicker.moodle-dialogue-fullscreen .file-picker .fp-content{width:100%}.file-picker .fp-content-loading{height:100%;width:100%;display:table;text-align:center}.file-picker .fp-content .fp-object-container{width:98%;height:98%}.dir-rtl .file-picker .fp-list{text-align:right}.dir-rtl .file-picker .fp-toolbar{padding:4px}.dir-rtl .file-picker .fp-list{text-align:right}.dir-rtl .file-picker .fp-repo-name{display:inline}.dir-rtl .file-picker .fp-pathbar{text-align:right;display:block;border-top:none}.dir-rtl .file-picker div.bd{text-align:right}.dir-rtl #filemenu .yuimenuitemlabel{text-align:right}.dir-rtl .filepicker .yui-layout-unit-left{left:500px}.dir-rtl .filepicker .yui-layout-unit-center{left:0}.dir-rtl .filemanager-toolbar a{padding:0}.file-picker .fp-list{list-style-type:none;padding:0;float:left;width:100%;margin:0}.dir-rtl .file-picker .fp-list{text-align:right;float:left}.file-picker .fp-list .fp-repo a{display:block;padding:.5em .7em}.file-picker .fp-list .fp-repo.active{background:#F2F2F2}.file-picker .fp-list .fp-repo-icon{padding:0 7px 0 5px;width:16px;height:16px}.fp-toolbar{float:left}.dir-rtl .fp-toolbar{float:right}.fp-toolbar.empty{display:none}.dir-rtl .fp-toolbar div.disabled,.fp-toolbar .disabled{display:none}.fp-toolbar div{display:block;float:left;margin-right:4px}.dir-rtl .fp-toolbar div{display:block;float:right;margin-left:4px;margin-right:0}.fp-toolbar img{vertical-align:-15%;margin-right:5px}.fp-toolbar .fp-tb-search{width:235px;height:27px}.fp-toolbar .fp-tb-search input{background:#FFFFFF url('[[pix:a/search]]') no-repeat 7px 7px;padding:2px 6px 1px 27px;width:200px;height:27px;border:1px solid #BBBBBB}.fp-viewbar{float:right;height:30px;border:1px solid #CCC;border-bottom:1px solid #B3B3B3;border-radius:4px;background:white}.fp-repo-items fp-viewbar{margin:4px}.dir-rtl .fp-toolbar img{vertical-align:-35%}.dir-rtl .fp-viewbar{float:left}.fp-viewbar a{width:30px;height:30px;border-right:1px solid #CCC;display:block;float:left}.fp-viewbar a.checked:hover,.fp-viewbar a:hover{background-image:radial-gradient(ellipse at center, #ffffff 60%, #dfdfdf 100%);background-color:#ebebeb}.fp-viewbar a.checked,.fp-viewbar a:active{background-image:radial-gradient(ellipse at center, #ffffff 40%, #dfdfdf 100%);background-color:#dfdfdf}.fp-viewbar a.fp-vb-icons{border-radius:4px 0 0 4px}.fp-viewbar a.fp-vb-tree{border-right:0;border-radius:0 4px 4px 0}.fp-viewbar a img{margin:7px}.fp-viewbar.disabled a{opacity:.45;background:none;cursor:default}.file-picker .fp-clear-left{clear:left}.dir-rtl .fp-vb-details a:hover{background:none;border:20px solid black}.dir-rtl .fp-vb-details.checked a:hover{background:none;border:40px solid black}.dir-rtl .fp-vb-tree a:hover{background:none;border:30px solid black}.dir-rtl .fp-vb-tree.checked a:hover{background:none;border:50px solid black}.file-picker .fp-pathbar{display:table-row}.fp-pathbar.empty{display:none}.fp-pathbar .fp-path-folder{background:url('[[pix:theme|fp/path_folder]]') no-repeat 0 0;width:27px;height:12px;margin-left:4px}.dir-rtl .fp-pathbar .fp-path-folder{background:url('[[pix:theme|fp/path_folder_rtl]]') no-repeat right top;width:auto;height:12px;margin-left:4px}.dir-rtl .fp-pathbar span{display:inline-block;*display:inline;*zoom:1;float:right;margin-left:32px}.fp-pathbar .fp-path-folder-name{margin-left:32px;line-height:20px}.dir-rtl .fp-pathbar .fp-path-folder-name{margin-right:32px;line-height:20px}.fp-iconview .fp-file{float:left;text-align:center;position:relative;margin:10px 10px 35px}.fp-iconview .fp-thumbnail{min-width:110px;min-height:110px;line-height:110px;text-align:center;border:1px solid #FFFFFF;display:block}.fp-iconview .fp-thumbnail img{border:1px solid #ddd;padding:3px;vertical-align:middle;-webkit-box-shadow:1px 1px 2px 0 #ccc;-moz-box-shadow:1px 1px 2px 0 #ccc;box-shadow:1px 1px 2px 0 #ccc}.fp-iconview .fp-thumbnail:hover{background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 0 10px 0 #ccc;-moz-box-shadow:inset 0 0 10px 0 #ccc;box-shadow:inset 0 0 10px 0 #ccc}.fp-iconview .fp-filename-field{height:33px;word-wrap:break-word;overflow:hidden;position:absolute}.fp-iconview .fp-filename-field:hover{overflow:visible;z-index:1000}.fp-iconview .fp-filename-field .fp-filename{background:#FFFFFF;padding-top:5px;padding-bottom:12px;min-width:112px}.dir-rtl .fp-iconview .fp-file{float:right}.file-picker .yui3-datatable table{border:0 solid #BBBBBB;width:100%}#filesskin .file-picker .yui3-datatable-header{background:#FFFFFF;border-bottom:1px solid #CCCCCC;border-left:0 solid #FFFFFF;color:#555555}#filesskin .file-picker .yui3-datatable-odd .yui3-datatable-cell{background-color:#F6F6F6;border-left:0 solid #F6F6F6}#filesskin .file-picker .yui3-datatable-even .yui3-datatable-cell{background-color:#FFFFFF;border-left:0 solid #FFFFFF}.dir-rtl .file-picker .yui3-datatable-header{text-align:right}.file-picker .ygtvtn,.filemanager .ygtvtn{background:url('[[pix:moodle|y/tn]]') 0 0 no-repeat;width:17px;height:22px}.dir-rtl .filemanager .ygtvtn,.dir-rtl .file-picker .ygtvtn{background:url('[[pix:moodle|y/tn_rtl]]') 0 0 no-repeat;width:17px;height:22px}.file-picker .ygtvtm,.filemanager .ygtvtm{background:url('[[pix:moodle|y/tm]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.file-picker .ygtvtmh,.filemanager .ygtvtmh{background:url('[[pix:moodle|y/tm]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.file-picker .ygtvtp,.filemanager .ygtvtp{background:url('[[pix:moodle|y/tp]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.dir-rtl .file-picker .ygtvtp,.dir-rtl .filemanager .ygtvtp{background:url('[[pix:moodle|y/tp_rtl]]') 0 10px no-repeat}.file-picker .ygtvtph,.filemanager .ygtvtph{background:url('[[pix:moodle|y/tp]]') 0 10px no-repeat;width:13px;height:22px;cursor:pointer}.dir-rtl .file-picker .ygtvtph,.dir-rtl .filemanager .ygtvtph{background:url('[[pix:moodle|y/tp_rtl]]') 0 10px no-repeat}.file-picker .ygtvln,.filemanager .ygtvln{background:url('[[pix:moodle|y/ln]]') 0 0 no-repeat;width:17px;height:22px}.dir-rtl .file-picker .ygtvln,.dir-rtl .filemanager .ygtvln{background:url('[[pix:moodle|y/ln_rtl]]') 0 0 no-repeat}.file-picker .ygtvlm,.filemanager .ygtvlm{background:url('[[pix:moodle|y/lm]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.file-picker .ygtvlmh,.filemanager .ygtvlmh{background:url('[[pix:moodle|y/lm]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.file-picker .ygtvlp,.filemanager .ygtvlp{background:url('[[pix:moodle|y/lp]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.dir-rtl .file-picker .ygtvlp,.dir-rtl .filemanager .ygtvlp{background:url('[[pix:moodle|y/lp_rtl]]') 0 10px no-repeat}.file-picker .ygtvlph,.filemanager .ygtvlph{background:url('[[pix:moodle|y/lp]]') 0 10px no-repeat;width:13px;height:12px;cursor:pointer}.dir-rtl .file-picker .ygtvlph,.dir-rtl .filemanager .ygtvlph{background:url('[[pix:moodle|y/lp_rtl]]') 0 10px no-repeat}.file-picker .ygtvloading,.filemanager .ygtvloading{background:transparent url('[[pix:moodle|y/loading]]') 0 0 no-repeat;width:16px;height:22px}.file-picker .ygtvdepthcell,.filemanager .ygtvdepthcell{background:url('[[pix:moodle|y/vline]]') 0 0 no-repeat;width:17px;height:32px}.file-picker .ygtvblankdepthcell,.filemanager .ygtvblankdepthcell{width:17px;height:22px}a.ygtvspacer:hover{color:transparent;text-decoration:none}.ygtvlabel,.ygtvlabel:link,.ygtvlabel:visited,.ygtvlabel:hover{background-color:transparent;cursor:pointer;margin-left:2px;text-decoration:none}.file-picker .ygtvfocus,.filemanager .ygtvfocus{background-color:#EEEEEE}.fp-filename-icon{margin-top:10px;display:block;position:relative}.fp-icon{float:left;margin-top:-7px;width:24px;height:24px;margin-right:10px;text-align:center;line-height:24px}.dir-rtl .fp-icon{float:right;margin-left:10px;margin-right:0}.fp-icon img{max-height:24px;max-width:24px;vertical-align:middle}.fp-filename{padding-right:10px}.dir-rtl .fp-filename{padding-left:10px;padding-right:0}.file-picker .fp-login-form{height:100%;width:100%;display:table}.file-picker .fp-login-form table{margin:0 auto}.file-picker .fp-login-form p{text-align:center;margin-top:3em}.file-picker .fp-login-form .fp-login-input label{text-align:right;display:block}.file-picker .fp-login-form .fp-login-input .input{text-align:left}.file-picker .fp-login-form input[type="checkbox"]{width:15px;height:15px}.file-picker .fp-upload-form{height:100%;width:100%;display:table}.file-picker .fp-upload-form table{margin:0 auto}.file-picker.fp-dlg{text-align:center}.file-picker.fp-dlg .fp-dlg-text{padding:30px 20px 10px;font-size:12px}.file-picker.fp-dlg .fp-dlg-buttons{margin:0 20px}.file-picker.fp-msg{text-align:center}.file-picker.fp-msg .fp-msg-text{padding:40px 20px 10px 20px;min-width:200px;max-width:500px;max-height:300px;overflow:auto;font-size:12px}.file-picker.fp-msg.fp-msg-error .fp-msg-text{padding:40px 20px 10px 20px;font-size:12px}.file-picker .fp-content-error{height:100%;width:100%;display:table;text-align:center}.file-picker .fp-content-error .fp-error{height:100%;width:100%;display:table-cell;vertical-align:middle;padding:40px 20px 10px 20px;font-size:12px}.file-picker .fp-nextpage{clear:both}.file-picker .fp-nextpage .fp-nextpage-loading{display:none}.file-picker .fp-nextpage.loading .fp-nextpage-link{display:none}.file-picker .fp-nextpage.loading .fp-nextpage-loading{display:block;text-align:center;height:100px;padding-top:50px}.fp-select form{padding:20px 20px 0}.fp-select .fp-select-loading{text-align:center;margin-top:20px}.fp-select .fp-hr{clear:both;height:1px;background-color:#FFFFFF;border-bottom:1px solid #BBBBBB;width:auto;margin:10px 0}.fp-select table{padding:0 0 10px}.fp-select table .mdl-right{min-width:84px}.fp-select .fp-reflist .mdl-right{vertical-align:top}.fp-select .fp-select-buttons{float:right}.fp-select .fp-info{display:block;clear:both;padding:1px 20px 0}.fp-select .fp-thumbnail{float:left;min-width:110px;min-height:110px;line-height:110px;text-align:center;margin:10px 20px 0 0;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 0 10px 0 #ccc;-moz-box-shadow:inset 0 0 10px 0 #ccc;box-shadow:inset 0 0 10px 0 #ccc}.fp-select .fp-thumbnail img{border:1px solid #DDDDDD;padding:3px;vertical-align:middle;margin:10px}.fp-select .fp-fileinfo{display:inline-block;*display:inline;*zoom:1;margin-top:10px}.file-picker.fp-select .fp-fileinfo{max-width:240px}.fp-select .fp-fileinfo div{padding-bottom:5px}.file-picker.fp-select .uneditable{display:none}.file-picker.fp-select .fp-select-loading{display:none}.file-picker.fp-select.loading .fp-select-loading{display:block}.file-picker.fp-select.loading form{display:none}.fp-select .fp-dimensions.fp-unknown{display:none}.fp-select .fp-size.fp-unknown{display:none}.filemanager-loading{display:none}.jsenabled .filemanager-loading{display:block;margin-top:100px}.filemanager.fm-loading .filemanager-toolbar,.filemanager.fm-loading .fp-pathbar,.filemanager.fm-loading .filemanager-container,.filemanager.fm-loaded .filemanager-loading,.filemanager.fm-maxfiles .fp-btn-add,.filemanager.fm-maxfiles .dndupload-message,.filemanager.fm-noitems .fp-btn-download,.filemanager .fm-empty-container,.filemanager.fm-noitems .filemanager-container .fp-content{display:none}.filemanager .fp-img-downloading{display:none;padding-top:7px}.filemanager .filemanager-updating{display:none;text-align:center}.filemanager.fm-updating .filemanager-updating{display:block;margin-top:37px}.filemanager.fm-updating .fm-content-wrapper,.filemanager.fm-nomkdir .fp-btn-mkdir,.fitem.disabled .filemanager .filemanager-toolbar,.fitem.disabled .filemanager .fp-pathbar,.fitem.disabled .filemanager .fp-restrictions,.fitem.disabled .filemanager .fm-content-wrapper{display:none}.filemanager .fp-restrictions{text-align:right}.filemanager .fp-navbar{background:#F2F2F2;border:1px solid #BBBBBB;border-bottom:none}.filemanager-toolbar{padding:4px;overflow:hidden}.fp-pathbar{border-top:1px solid #BBBBBB;padding:5px 8px 1px;min-height:20px}.file-picker .fp-toolbar{padding:4px}.fp-toolbar .fp-btn-add,.fp-toolbar .fp-btn-download,.fp-toolbar .fp-btn-mkdir,.fp-toolbar .fp-tb-help,.fp-toolbar .fp-tb-manage,.fp-toolbar .fp-tb-logout,.fp-toolbar .fp-tb-refresh{border:1px solid #CCC;border-bottom:1px solid #B3B3B3;border-radius:4px;background:white;width:30px;height:30px}.fp-toolbar a:hover{background-image:radial-gradient(ellipse at center, #ffffff 60%, #dfdfdf 100%);background-color:#ebebeb}.fp-toolbar a:active{background-image:radial-gradient(ellipse at center, #ffffff 40%, #dfdfdf 100%);background-color:#dfdfdf}.fp-btn-add a,.fp-btn-download a,.fp-btn-mkdir a,.fp-tb-help a,.fp-tb-manage a,.fp-tb-logout a,.fp-tb-refresh a{display:block;width:30px;height:30px;border-radius:4px}.fp-btn-add img,.fp-btn-download img,.fp-btn-mkdir img,.fp-tb-help img,.fp-tb-manage img,.fp-tb-logout img,.fp-tb-refresh img{margin:7px}.filemanager .fp-pathbar.empty{display:none}.filepicker-filelist,.filemanager-container{background:#FFFFFF;clear:both;overflow:auto;border:1px solid #BBBBBB;min-height:140px;position:relative}.filemanager .fp-content{overflow:auto;max-height:472px;min-height:157px}.filemanager-container,.filepicker-filelist{overflow:hidden}.fitem.disabled .filepicker-filelist,.fitem.disabled .filemanager-container{background-color:#EBEBE4}.fitem.disabled .fp-btn-choose{color:#999}.fitem.disabled .filepicker-filelist .filepicker-filename{display:none}.fp-iconview .fp-reficons1{position:absolute;height:100%;width:100%;top:0;left:0}.fp-iconview .fp-reficons2{position:absolute;height:100%;width:100%;top:0;left:0}.fp-iconview .fp-file.fp-hasreferences .fp-reficons1{background:url('[[pix:theme|fp/link]]') no-repeat;background-position:bottom right}.fp-iconview .fp-file.fp-isreference .fp-reficons2{background:url('[[pix:theme|fp/alias]]') no-repeat;background-position:bottom left}.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail img{display:none}.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail{background:url([[pix:s/dead]]) no-repeat;background-position:center center}.filemanager .yui3-datatable table{border:0 solid #BBBBBB;width:100%}.filemanager .yui3-datatable-header{background:#FFFFFF !important;border-bottom:1px solid #CCCCCC !important;border-left:0 solid #FFFFFF !important;color:#555555 !important}.filemanager .yui3-datatable-odd .yui3-datatable-cell{background-color:#F6F6F6 !important;border-left:0 solid #F6F6F6}.filemanager .yui3-datatable-even .yui3-datatable-cell{background-color:#FFFFFF !important;border-left:0 solid #FFFFFF}.filemanager .fp-filename-icon.fp-hasreferences .fp-reficons1{background:url('[[pix:theme|fp/link_sm]]') no-repeat 0 0;height:100%;width:100%;position:absolute;top:8px;left:17px;z-index:1000}.filemanager .fp-filename-icon.fp-isreference .fp-reficons2{background:url('[[pix:theme|fp/alias_sm]]') no-repeat 0 0;height:100%;width:100%;position:absolute;top:9px;left:-6px;z-index:1001}.filemanager .fp-contextmenu{display:none}.filemanager .fp-iconview .fp-folder.fp-hascontextmenu .fp-contextmenu{display:block;position:absolute;right:7px;bottom:5px}.filemanager .fp-treeview .fp-folder.fp-hascontextmenu .fp-contextmenu,.filemanager .fp-tableview .fp-folder.fp-hascontextmenu .fp-contextmenu{display:inline;position:absolute;left:14px;margin-right:-20px;top:6px}.dir-rtl .filemanager .fp-iconview .fp-folder.fp-hascontextmenu .fp-contextmenu{left:7px;right:inherit}.dir-rtl .filemanager .fp-treeview .fp-folder.fp-hascontextmenu .fp-contextmenu,.dir-rtl .filemanager .fp-tableview .fp-folder.fp-hascontextmenu .fp-contextmenu{left:inherit;right:16px;margin-right:0}.filepicker-filelist .filepicker-container,.filemanager.fm-noitems .fm-empty-container{display:block;position:absolute;top:10px;bottom:10px;left:10px;right:10px;border:2px dashed #BBBBBB;padding-top:85px;text-align:center}.filepicker-filelist .dndupload-target,.filemanager-container .dndupload-target{background:#FFFFFF;position:absolute;top:10px;bottom:10px;left:10px;right:10px;border:2px dashed #fb7979;padding-top:85px;text-align:center;-webkit-box-shadow:0 0 0 10px #fff;-moz-box-shadow:0 0 0 10px #fff;box-shadow:0 0 0 10px #fff}.filepicker-filelist.dndupload-over .dndupload-target,.filemanager-container.dndupload-over .dndupload-target{background:#FFFFFF;position:absolute;top:10px;bottom:10px;left:10px;right:10px;border:2px dashed #6c8cd3;padding-top:85px;text-align:center}.dndupload-message{display:none}.dndsupported .dndupload-message{display:inline}.dnduploadnotsupported-message{display:none}.dndnotsupported .dnduploadnotsupported-message{display:inline}.dndupload-target{display:none}.dndsupported .dndupload-ready .dndupload-target{display:block}.dndupload-uploadinprogress{display:none;text-align:center}.dndupload-uploading .dndupload-uploadinprogress{display:block}.dndupload-arrow{background:url([[pix:theme|fp/dnd_arrow]]) center no-repeat;width:100%;height:80px;position:absolute;top:5px}.fitem.disabled .filepicker-container,.fitem.disabled .fm-empty-container{display:none}.dndupload-progressbars{padding:10px;display:none}.dndupload-inprogress .dndupload-progressbars{display:block}.dndupload-inprogress .fp-content{display:none}.filemanager.fm-noitems .dndupload-inprogress .fm-empty-container{display:none}.filepicker-filelist.dndupload-inprogress .filepicker-container{display:none}.filepicker-filelist.dndupload-inprogress a{display:none}.filemanager.fp-select .fp-select-loading{display:none}.filemanager.fp-select.loading .fp-select-loading{display:block}.filemanager.fp-select.loading form{display:none}.filemanager.fp-select.fp-folder .fp-license,.filemanager.fp-select.fp-folder .fp-author,.filemanager.fp-select.fp-file .fp-file-unzip,.filemanager.fp-select.fp-folder .fp-file-unzip,.filemanager.fp-select.fp-file .fp-file-zip,.filemanager.fp-select.fp-zip .fp-file-zip{display:none}.filemanager.fp-select .fp-file-setmain,.filemanager.fp-select .fp-file-setmain-help{display:none}.filemanager.fp-select.fp-cansetmain .fp-file-setmain,.filemanager.fp-select.fp-cansetmain .fp-file-setmain-help{display:inline-block;*display:inline;*zoom:1}.filemanager .fp-mainfile .fp-filename{font-weight:bold}.filemanager.fp-select.fp-folder .fp-file-download{display:none}.fm-operation{font-weight:bold}.filemanager.fp-select .fp-original.fp-unknown,.filemanager.fp-select .fp-original .fp-originloading{display:none}.filemanager.fp-select .fp-original.fp-loading .fp-originloading{display:inline}.filemanager.fp-select .fp-reflist.fp-unknown,.filemanager.fp-select .fp-reflist .fp-reflistloading{display:none}.filemanager.fp-select .fp-refcount{max-width:265px}.filemanager.fp-select .fp-reflist.fp-loading .fp-reflistloading{display:inline}.filemanager.fp-select .fp-reflist .fp-value{background:#F9F9F9;border:1px solid #BBBBBB;padding:8px 7px;margin:0;max-width:265px;max-height:75px;overflow:auto}.filemanager.fp-select .fp-reflist .fp-value li{padding-bottom:7px}.filemanager.fp-mkdir-dlg{text-align:center}.filemanager.fp-mkdir-dlg .fp-mkdir-dlg-text{text-align:left;margin:20px}.dir-rtl .filemanager .fp-mkdir-dlg p{text-align:right}.filemanager.fp-dlg{text-align:center}.filemanager.fp-dlg .fp-dlg-text{padding:0 10px;min-width:200px;max-width:340px;max-height:300px;overflow:auto;line-height:22px;margin:40px 20px 20px;font-size:12px}.file-picker div.bd{text-align:left}.dir-rtl .filemanager .fp-restrictions{text-align:left}.dir-rtl .file-picker div.bd,.dir-rtl .file-picker .fp-pathbar,.dir-rtl .file-picker .fp-list,.dir-rtl #filemenu .yuimenuitemlabel,.dir-rtl .filemanager-container .yui3-skin-sam .yui3-datatable-header{text-align:right}.dir-rtl .filepicker .yui-layout-unit-left{left:500px}.dir-rtl .filepicker .yui-layout-unit-center{left:0}.dir-rtl .file-picker .fp-toolbar .fp-tb-search input{background-position:208px 7px;padding:2px 30px 1px 3px}.dir-rtl .file-picker .fp-toolbar div{float:right;margin-left:4px}.fp-formset{max-width:500px;padding:10px}.fp-formset input[type="file"]{line-height:inherit}.fp-forminset{max-width:400px;padding:0 10px}.fp-forminset .control-group.control-radio{margin-bottom:0}.fp-forminset .control-group label.control-label{width:105px}.fp-forminset .control-group label.control-radio{float:right;text-align:left;width:215px}.fp-forminset .control-group .controls{margin-left:125px}.fp-forminset .control-group .controls select{width:100%}.fp-forminset .control-group .controls.control-radio input{margin-top:3px}.fp-forminset .fp-select-buttons{float:none}.fp-forminset input[type="text"]{width:228px}.fp-fileinfo .fp-value{display:inline-block;padding-left:5px}.dir-rtl .fp-forminset{max-width:400px}.dir-rtl .fp-forminset .control-group label.control-label{float:right;text-align:left}.dir-rtl .fp-forminset .control-group label.control-radio{float:left;text-align:right;width:215px}.dir-rtl .fp-forminset .control-group .controls{margin-left:0;margin-right:125px}.dir-rtl .fp-forminset .fp-select-buttons{float:left}.dir-rtl .fp-forminset input[type="text"]{width:228px}.dir-rtl .fp-fileinfo .fp-value{display:inline-block;padding-right:5px}.dir-rtl .fp-select .fp-thumbnail{margin:10px 0 0 0}.dir-rtl .filepicker .fp-formset label{float:right;text-align:left}.dir-rtl .filepicker .fp-formset .controls{margin-left:0;text-align:right}.message-discussion-noframes h1{font-size:1em}.message-discussion-noframes #userinfo .commands,.message .noframesjslink,.message .link{font-size:11.9px}.message .heading{font-size:1em;font-weight:bold;clear:both;word-wrap:break-word}.message .author{font-weight:bold}.message .time{font-style:italic}#page-message-user .commands span{font-size:.7em}#page-message-user .name{font-weight:bold;font-size:1.1em}.message .time{color:#999}#page-message-messages{padding:10px}#page-message-send .notifysuccess{padding:1px}#page-message-send td.fixeditor{text-align:center}.message{overflow:hidden}.message .note{padding:10px}table.message .searchresults td{padding:5px}.message .contactselector{width:auto;float:left}@media screen and (min-width:1000px){.message .contactselector{float:left;padding:0 8px 0 0}}.message .contactselector .singleselect{width:240px}.dir-rtl .message .contactselector{float:right}.message .contactselector .paging{z-index:1;position:relative}.message .contactselector #message_participants{max-width:240px}.message .contactselector .message-contacts{list-style-type:none;margin:0}.message .contactselector .message-contacts li{clear:both;position:relative;min-height:23px;padding:2px}.message .contactselector .message-contacts li:nth-child(odd){background:rgba(120,120,255,0.1)}.message .contactselector .message-contacts li>div{display:block;height:100%}.message .contactselector .message-contacts li>div>*{vertical-align:middle;display:inline-block}.message .contactselector .message-contacts li>div.pix{position:relative;float:left}.message .contactselector .message-contacts li>div.link{white-space:nowrap;width:60px;position:relative;float:right;text-align:right}.message .contactselector .message-contacts li>div.contact{position:relative;word-break:break-all}.message .contactselector .message-contacts li>div.contact a{line-height:22px}.dir-ltr .message .message-contacts li{text-align:left}.dir-ltr .message .message-contacts li>div.pix{float:left}.dir-ltr .message .message-contacts li>div.link{float:right;text-align:right}.dir-ltr .message .message-contacts li>div.contact{margin:0 60px 0 24px}.dir-ltr .message .message-contacts li>div.contact.nolinks{margin:0 0 0 24px}.dir-rtl .message .message-contacts li{text-align:right}.dir-rtl .message .message-contacts li>div.pix{float:right}.dir-rtl .message .message-contacts li>div.link{float:left;text-align:left}.dir-rtl .message .message-contacts li>div.contact{margin:0 24px 0 60px}.dir-rtl .message .message-contacts li>div.contact.nolinks{margin:0 24px 0 0}.message .messagearea{float:none;overflow:hidden;min-height:200px}@media screen and (min-width:1000px){.message .messagearea{border-left:1px solid #ddd;padding:0 8px}}@media screen and (max-width:1000px){.message .messagearea{width:100%}}.message .messagearea .messagehistorytype{clear:both;padding-bottom:20px}.message .messagearea .messagehistory .user{vertical-align:top;width:45%;min-width:100px;float:left}.message .messagearea .messagehistory .user>div{text-align:center}.message .messagearea .messagehistory .between{float:left;width:16px;margin:0 1%;padding-top:40px}@media screen and (min-width:800px){.message .messagearea .messagehistory .between{margin:0 3%}.message .messagearea .messagehistory .user{width:32%}.message .messagearea .messagehistory .user:first-child{margin-left:13%}.message .messagearea .messagehistory .user:last-child{margin-right:13%}.dir-rtl .message .messagearea .messagehistory .user:first-child{margin-right:13%;margin-left:0}.dir-rtl .message .messagearea .messagehistory .user:last-child{margin-left:13%;margin-right:0}}@media screen and (min-width:1200px){.message .messagearea .messagehistory .user{width:25%}.message .messagearea .messagehistory .user:first-child{margin-left:20%}.message .messagearea .messagehistory .user:last-child{margin-right:20%}.dir-rtl .message .messagearea .messagehistory .user:first-child{margin-left:0;margin-right:20%}.dir-rtl .message .messagearea .messagehistory .user:last-child{margin-right:0;margin-left:20%}}.dir-rtl .message .messagearea .messagehistory .between,.dir-rtl .message .messagearea .messagehistory .user{float:right}.message .messagearea .messagehistory .heading{width:100%;clear:both}.message .messagearea .messagehistory .left{margin-bottom:10px;width:50%;float:left;position:relative;clear:both}.dir-rtl .message .messagearea .messagehistory .left{float:right}.message .messagearea .messagehistory .right{margin-bottom:10px;width:50%;float:right;position:relative;clear:both}.dir-rtl .message .messagearea .messagehistory .right{float:left}.message .messagearea .messagehistory .notification{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3;padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin-bottom:0;margin-top:5px}.message .messagearea .messagehistory .notification blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.dir-ltr .message .messagearea .messagehistory .message{margin-right:20px}.dir-ltr .message .messagearea .messagehistory .right .message{margin-left:20px}.dir-rtl .message .messagearea .messagehistory .message{margin-left:20px}.dir-rtl .message .messagearea .messagehistory .right .message{margin-right:20px}.message .messagearea .messagehistory .messageactive{background-color:#f5f5f5}.message .messagearea .messagehistory .messagecontent .deleteicon{width:20px;position:absolute;top:-2px}.dir-ltr .message .messagearea .messagehistory .messagecontent .deleteicon{right:0}.dir-rtl .message .messagearea .messagehistory .messagecontent .deleteicon{left:0}.message .messagearea .messagesend{padding-top:20px;clear:both}.message .messagearea .messagesend .messagesendbox{width:100%;box-sizing:border-box}.message .messagearea .messagesend fieldset{padding:0;margin:0}.message .messagearea .messagerecent{text-align:left;width:100%}.message .messagearea .messagerecent .singlemessage{border-bottom:1px solid #ddd;padding:10px}.message .messagearea .messagerecent .singlemessage .otheruser span{padding:5px}.message .messagearea .messagerecent .singlemessage .messagedate{float:right}.message .hiddenelement{display:none}.message .visible{display:inline}.message #usergroupselector.fieldset,.message #viewing{width:100%}.messagesearchresults{margin-bottom:40px}.messagesearchresults td{padding:0 10px 0 20px}.messagesearchresults td span{white-space:nowrap}.messagesearchresults td img.userpicture{padding-right:.45em;vertical-align:text-bottom}.dir-rtl .messagesearchresults td img.userpicture{padding-left:.45em;padding-right:0}.messagesearchresults td span img{padding:0 0 0 .45em;vertical-align:text-bottom}.dir-rtl .messagesearchresults td span img{padding:0 .45em 0 0}#newmessageoverlay{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3;margin:0 1em;position:fixed;bottom:0;right:0}#newmessageoverlay blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}#newmessageoverlay #usermessage{padding:10px}#page-user-action_redir #edit-messagebody{width:auto}.core_message-messenger-sendmessage-hidden{display:none}.core_message-messenger-sendmessage .message-actions{position:relative}.core_message-messenger-sendmessage .message-area{height:240px;max-height:100%;position:relative;margin-bottom:10px}.core_message-messenger-sendmessage .message-input{width:100%;height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.core_message-messenger-sendmessage .message-send{margin:0;float:right}.core_message-messenger-sendmessage .message-notice-area{display:table;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%}.core_message-messenger-sendmessage .message-notice{display:table-cell;vertical-align:middle;text-align:center}.core_message-messenger-sendmessage .message-notice>div{background:#eee;padding:5px;font-size:12px}.core_message-messenger-sendmessage .message-footer{margin-top:3px;line-height:20px}.core_message-messenger-sendmessage .message-history{position:absolute;bottom:0}.dir-rtl .core_message-messenger-sendmessage .message-send{float:left}.questionbank h2{margin-top:0}.questioncategories h3{margin-top:0}#chooseqtypebox{margin-top:1em}#chooseqtype h3{margin:0 0 .3em}#chooseqtype .instruction{display:none}#chooseqtype .fakeqtypes{border-top:1px solid silver}#chooseqtype .qtypeoption{margin-bottom:.5em}#chooseqtype label{display:block}#chooseqtype .qtypename img{padding:0 .3em}#chooseqtype .qtypename{display:inline-table;width:16em}#chooseqtype .qtypesummary{display:block;margin:0 2em}#chooseqtype .submitbuttons{margin:.7em 0;text-align:center}#qtypechoicecontainer{display:none}#qtypechoicecontainer_c.yui-panel-container.shadow .underlay{background:none}#qtypechoicecontainer.yui-panel .hd{color:#333;letter-spacing:1px;text-shadow:1px 1px 1px #fff;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px;-webkit-border-top-left-radius:10px;-moz-border-radius-topleft:10px;border-top-left-radius:10px;border:1px solid #ccc;border-bottom:1px solid #bbb;background-color:#ebebeb;background-image:-moz-linear-gradient(top, #fff, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc));background-image:-webkit-linear-gradient(top, #fff, #ccc);background-image:-o-linear-gradient(top, #fff, #ccc);background-image:linear-gradient(to bottom, #fff, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffcccccc', GradientType=0)}#qtypechoicecontainer{font-size:12px;color:#333;background:#F2F2F2;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:1px solid #ccc;border-top:0 none;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}#qtypechoicecontainer #chooseqtype{width:40em}#chooseqtypehead h3{margin:0;font-weight:normal}#chooseqtype .qtypes{position:relative;border-bottom:1px solid #bbb;padding:.24em 0}#chooseqtype .alloptions{overflow-x:hidden;overflow-y:auto;max-height:400px;max-height:calc(85vh);max-height:60vh;width:60%}#chooseqtype .qtypeoption{margin-bottom:0;padding:.3em .3em .3em 1.6em}#chooseqtype .qtypeoption img{vertical-align:text-bottom;padding-left:1em;padding-right:.5em}#chooseqtype .selected{background-color:#fff;-webkit-box-shadow:0 0 10px 0 #ccc;-moz-box-shadow:0 0 10px 0 #ccc;box-shadow:0 0 10px 0 #ccc}#chooseqtype .instruction,#chooseqtype .qtypesummary{display:none;position:absolute;top:0;right:0;bottom:0;left:60%;margin:0;overflow-x:hidden;padding:1.5em 1.6em;background-color:#fff;overflow-y:auto}#chooseqtype .instruction,#chooseqtype .selected .qtypesummary{display:block}#categoryquestions{margin:0}#categoryquestions td,#categoryquestions th{padding:0 .2em}#categoryquestions th{text-align:left;font-weight:normal}#categoryquestions .checkbox{padding-left:5px}#categoryquestions .checkbox input[type="checkbox"]{margin-left:0;float:none}#categoryquestions img.iconsmall{padding:0}#categoryquestions .iconcol{padding:3px}#categoryquestions label{margin:0}#page-mod-quiz-edit div.questionbankwindow div.header{margin:0}#page-mod-quiz-edit div.questionbankwindow.block{padding:0}.dir-rtl #categoryquestions th{text-align:right}.questionbank .singleselect{margin:0}#combinedfeedbackhdr div.fhtmleditor{padding:0}#combinedfeedbackhdr div.fcheckbox{margin-bottom:1em}#multitriesheader div.fitem_feditor{margin-top:1em}#multitriesheader div.fitem_fgroup{margin-bottom:1em}#multitriesheader div.fitem_fgroup fieldset.felement label{margin-left:.3em;margin-right:.3em}body.path-question-type .fitem_fgroup .accesshide{font:inherit;left:0;position:static;padding-right:.3em}.que{clear:left;text-align:left;margin:0 auto 1.8em auto}.dir-rtl .que{text-align:right}.que .info{float:left;width:7em;padding:.5em;margin-bottom:1.8em;background-color:#eee;border:1px solid #dcdcdc;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.que h3.no{margin:0;font-size:.8em;line-height:1}.que span.qno{font-size:1.5em;font-weight:bold}.que .info>div{font-size:.8em;margin-top:.7em}.que .info .questionflag.editable{cursor:pointer}.que .info .editquestion img,.que .info .questionflag img,.que .info .questionflag input{vertical-align:bottom}.que .content{margin:0 0 0 8.5em}.que .formulation,.que .outcome,.que .comment{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#8a6d3b}.que .formulation{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;color:#333}.formulation input[type="text"],.formulation select{width:auto;vertical-align:baseline}.path-mod-quiz input[size]{width:auto}.que .comment{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.que .history{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3}.que .history blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.que .ablock{margin:.7em 0 .3em 0}.que .im-controls{margin-top:.5em;text-align:left}.dir-rtl .que .im-controls{text-align:right}.que .specificfeedback,.que .generalfeedback,.que .rightanswer,.que .im-feedback,.que .feedback,.que p{margin:0 0 .5em}.que .qtext{margin-bottom:1.5em}.que .correctness{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.que .correctness:empty{display:none}.que .correctness-important{background-color:#b94a48}.que .correctness-important[href]{background-color:#953b39}.que .correctness-warning{background-color:#f89406}.que .correctness-warning[href]{background-color:#c67605}.que .correctness-success{background-color:#468847}.que .correctness-success[href]{background-color:#356635}.que .correctness-info{background-color:#3a87ad}.que .correctness-info[href]{background-color:#2d6987}.que .correctness-inverse{background-color:#333}.que .correctness-inverse[href]{background-color:#1a1a1a}.que .correctness.correct{background-color:#468847}.que .correctness.partiallycorrect{background-color:#f89406}.que .correctness.notanswered,.que .correctness.incorrect{background-color:#b94a48}.que .validationerror{color:#b94a48}.formulation .correct{background-color:#dff0d8}.formulation .partiallycorrect{background-color:#fcf8e3}.formulation .incorrect{background-color:#f2dede}.formulation select.correct,.formulation input.correct{color:#468847;background-color:#dff0d8;border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.formulation select.correct:focus,.formulation input.correct:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.formulation select.partiallycorrect,.formulation input.partiallycorrect{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.formulation select.partiallycorrect:focus,.formulation input.partiallycorrect:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.formulation select.incorrect,.formulation input.incorrect{color:#b94a48;background-color:#f2dede;border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.formulation select.incorrect:focus,.formulation input.incorrect:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.que .grading,.que .comment,.que .commentlink,.que .history{margin-top:.5em}.que .history h3{margin:0 0 .2em;font-size:1em}.que .history table{width:100%;margin:0}.que .history .current{font-weight:bold}.que .questioncorrectnessicon{vertical-align:text-bottom}.que input.questionflagimage{padding-right:3px}.dir-rtl .que input.questionflagimage{padding-left:3px;padding-right:0}.importerror{margin-top:10px;border-bottom:1px solid #555}.mform .que.comment .fitemtitle{width:20%}#page-question-preview #techinfo{margin:1em 0}.dir-rtl #chooseqtype .instruction,.dir-rtl #chooseqtype .qtypesummary{right:60%;left:0;border-left:0;border-right:1px solid grey}#page-mod-quiz-edit .box.generalbox.questionbank{padding:.5em}#page-mod-quiz-edit .questionbank .categorypagingbarcontainer,#page-mod-quiz-edit .questionbank .categoryquestionscontainer,#page-mod-quiz-edit .questionbank .choosecategory{padding:0}#page-mod-quiz-edit .questionbank .choosecategory select{width:100%}#page-mod-quiz-edit div.questionbank .categoryquestionscontainer{background:transparent}#page-mod-quiz-edit #categoryquestions>thead{background:#FFF}#page-mod-quiz-edit #categoryquestions>tbody>tr:nth-of-type(even){background:#e4e4e4}#page-mod-quiz-edit .questionbankwindow div.header{color:#444;text-shadow:none;padding:3px;-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;margin:0 -10px 0 -10px;padding:2px 10px 2px 10px;background:transparent}#page-mod-quiz-edit .questionbankwindow div.header a:link,#page-mod-quiz-edit .questionbankwindow div.header a:visited{color:#0070a8}#page-mod-quiz-edit .questionbankwindow div.header a:hover{color:#003d5c}#page-mod-quiz-edit .createnewquestion{padding:.3em 0}#page-mod-quiz-edit .createnewquestion div,#page-mod-quiz-edit .createnewquestion input{margin:0}#page-mod-quiz-edit .questionbankwindow div.header .title{color:#333}#page-mod-quiz-edit div.container div.generalbox{background-color:transparent;padding:1.5em}#page-mod-quiz-edit .categoryinfo{background-color:transparent;border-bottom:none}#page-mod-quiz-edit .createnewquestion .singlebutton input{margin-bottom:0}#page-mod-quiz-edit div.questionbank .categorysortopotionscontainer,#page-mod-quiz-edit div.questionbank .categoryselectallcontainer{padding:0 0 1.5em 0}#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer{background-color:transparent;margin:0;border-top:0;border-bottom:0}#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer .paging{padding:0 .3em}#page-mod-quiz-edit div.question div.content div.questioncontrols{background-color:#fff}#page-mod-quiz-edit div.question div.content div.points{margin-top:-0.5em;padding-bottom:0;border:none;background-color:#fff;position:static;width:12.1em;float:right;margin-right:60px}#page-mod-quiz-edit.dir-rtl div.question div.content div.points{float:left;margin-left:60px;margin-right:0}#page-mod-quiz-edit div.question div.content div.points br{display:none}#page-mod-quiz-edit div.question div.content div.points label{display:inline-block}#page-mod-quiz-edit div.quizpage .pagecontent .pagestatus{background-color:#fff}#page-mod-quiz-edit .quizpagedelete,#page-mod-quiz-edit .quizpagedelete img{background-color:transparent}#page-mod-quiz-edit div.quizpage .pagecontent{border:1px solid #ddd;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;overflow:hidden}#page-mod-quiz-edit div.questionbank .categoryinfo{padding:.3em 0}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer{padding:0}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer strong{display:block}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer hr,#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer br{display:none}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer strong{margin-left:-0.3em}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer strong label{margin-left:.3em}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer input{margin-left:0}#page-mod-quiz-edit div.questionbank .modulespecificbuttonscontainer input+input{margin-left:5px}.questionbankwindow .module{width:auto}#page-mod-quiz-edit div.editq div.question div.content{background-color:#fff;border:1px solid #ddd;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;overflow:hidden}.path-mod-quiz .statedetails{display:block;font-size:.9em}a#hidebankcmd{color:#0070a8}.que.shortanswer .answer{padding:0}.que label{display:inline}body.path-question-type .mform fieldset.hidden{padding:0;margin:.7em 0 0}.userprofile .fullprofilelink{text-align:center;margin:10px}.userprofile .page-context-header{margin-bottom:10px}.userprofile .description{margin-top:10px;margin-bottom:30px}.userprofile .profile_tree{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px}.userprofile .profile_tree section{display:inline-block;width:100%;border:1px solid #ddd;border-radius:4px;padding:0 15px;margin-bottom:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.userprofile .profile_tree section h3{font-size:18px;line-height:20px}.userprofile dl.list{*zoom:1}.userprofile dl.list:before,.userprofile dl.list:after{display:table;content:"";line-height:0}.userprofile dl.list:after{clear:both}.userprofile dl.list dt{float:left;width:180px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.userprofile dl.list dd{margin-left:200px}.user-box{margin:8px;width:115px;height:160px;text-align:center;float:left;clear:none}#page-user-profile .node_category ul,.path-user .node_category ul{margin-left:0;margin-right:0;list-style:none}#page-user-profile .node_category li,.path-user .node_category li{margin-top:5px}#page-user-profile .node_category .editprofile,.path-user .node_category .editprofile,#page-user-profile .node_category .viewmore,.path-user .node_category .viewmore{text-align:right}.dir-rtl .user-box{float:right}.dir-rtl .userprofile .node_category .editprofile,.dir-rtl .userprofile .node_category .viewmore{text-align:left}.dir-rtl .userprofile dl dd{margin-left:0;margin-right:10px}@media (max-width:480px){.userprofile .profile_tree{-webkit-column-count:1;-moz-column-count:1;column-count:1;-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px}}.userlist .action-icon img{vertical-align:middle}.userlist #showall{margin:10px 0}.userlist .buttons{text-align:center}.userlist .buttons label{padding:0 3px}.userlist table#participants{text-align:center}.userlist table#participants td,.userlist table#participants th{vertical-align:middle;text-align:left;padding:4px}.userlist table.controls{width:100%}.userlist table.controls tr{vertical-align:top}.userlist table.controls .right{text-align:right}.userlist table.controls .groupselector{margin-bottom:0;margin-top:0}.userlist table.controls .groupselector label{display:block}.userinfobox{width:100%;border:1px solid;border-collapse:separate;padding:10px}.userinfobox .left,.userinfobox .side{width:100px;vertical-align:top}.userinfobox .userpicture{width:100px;height:100px}.userinfobox .content{vertical-align:top}.userinfobox .links{width:100px;padding:5px;vertical-align:bottom}.userinfobox .links a{display:block}.userinfobox .list td{padding:3px}.userinfobox .username{padding-bottom:20px;font-weight:bold}.userinfobox td.label{text-align:right;white-space:nowrap;vertical-align:top;font-weight:bold}.groupinfobox{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);border-color:#e3e3e3}.groupinfobox blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.groupinfobox .left{padding:10px;width:100px;vertical-align:top}.course-participation #showall{text-align:center;margin:10px 0}#user-policy .noticebox{text-align:center;margin-left:auto;margin-right:auto;margin-bottom:10px;width:80%;height:250px}#user-policy #policyframe{width:100%;height:100%}.iplookup #map{margin:auto}.userselector select{width:100%}.userselector div{margin-top:.2em}.userselector div label{margin-right:.3em}.userselector .userselector-infobelow{font-size:.8em}#userselector_options{padding:.3em 0}#userselector_options .collapsibleregioncaption{font-weight:bold}#userselector_options p{margin:.2em 0;text-align:left}.dir-rtl #userselector_options p{text-align:right}#page-user-profile .messagebox{text-align:center;margin-left:auto;margin-right:auto}#page-course-view-weeks .messagebox{text-align:center;margin-left:auto;margin-right:auto}.dir-rtl .userlist table#participants td,.dir-rtl .userlist table#participants th{text-align:right}.dir-rtl .userlist table#participants{margin:0 auto}#page-my-index.dir-rtl .block h3{text-align:right}.profileeditor>.singleselect{margin:0 .5em 0 0}.profileeditor>.singlebutton{display:inline-block;margin:0 0 0 .5em}.profileeditor>.singlebutton div,.profileeditor>.singlebutton input{margin:0}.dir-rtl .profileeditor>.singleselect{margin:0 0 0 .5em}.dir-rtl .profileeditor>.singlebutton{margin:0 .5em 0 0}#groupeditform .groups,#groupeditform .members{width:49%;float:left;text-align:left}.dir-rtl #groupeditform .groups,.dir-rtl #groupeditform .members{float:right;text-align:right}.preferences-group ul{list-style:none;margin-left:0;margin-right:0}.dir-rtl .preferences-group{float:right}/*!
  * Bootstrap v2.3.2
  *
  * Copyright 2013 Twitter, Inc
@@ -6,4 +6,4 @@
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Designed and built with all the love in the world by @mdo and @fat.
- */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}.img-responsive{max-width:100%;width:auto\9;height:auto;-ms-interpolation-mode:bicubic}img{vertical-align:middle;border:0}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#0070a8;text-decoration:none}a:hover,a:focus{color:#003d5c;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.12765957%;*margin-left:2.07446809%}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.12765957%}.row-fluid .span12{width:100%;*width:99.94680851%}.row-fluid .span11{width:91.4893617%;*width:91.43617021%}.row-fluid .span10{width:82.9787234%;*width:82.92553191%}.row-fluid .span9{width:74.46808511%;*width:74.41489362%}.row-fluid .span8{width:65.95744681%;*width:65.90425532%}.row-fluid .span7{width:57.44680851%;*width:57.39361702%}.row-fluid .span6{width:48.93617021%;*width:48.88297872%}.row-fluid .span5{width:40.42553191%;*width:40.37234043%}.row-fluid .span4{width:31.91489362%;*width:31.86170213%}.row-fluid .span3{width:23.40425532%;*width:23.35106383%}.row-fluid .span2{width:14.89361702%;*width:14.84042553%}.row-fluid .span1{width:6.38297872%;*width:6.32978723%}.row-fluid .offset12{margin-left:104.25531915%;*margin-left:104.14893617%}.row-fluid .offset12:first-child{margin-left:102.12765957%;*margin-left:102.0212766%}.row-fluid .offset11{margin-left:95.74468085%;*margin-left:95.63829787%}.row-fluid .offset11:first-child{margin-left:93.61702128%;*margin-left:93.5106383%}.row-fluid .offset10{margin-left:87.23404255%;*margin-left:87.12765957%}.row-fluid .offset10:first-child{margin-left:85.10638298%;*margin-left:85%}.row-fluid .offset9{margin-left:78.72340426%;*margin-left:78.61702128%}.row-fluid .offset9:first-child{margin-left:76.59574468%;*margin-left:76.4893617%}.row-fluid .offset8{margin-left:70.21276596%;*margin-left:70.10638298%}.row-fluid .offset8:first-child{margin-left:68.08510638%;*margin-left:67.9787234%}.row-fluid .offset7{margin-left:61.70212766%;*margin-left:61.59574468%}.row-fluid .offset7:first-child{margin-left:59.57446809%;*margin-left:59.46808511%}.row-fluid .offset6{margin-left:53.19148936%;*margin-left:53.08510638%}.row-fluid .offset6:first-child{margin-left:51.06382979%;*margin-left:50.95744681%}.row-fluid .offset5{margin-left:44.68085106%;*margin-left:44.57446809%}.row-fluid .offset5:first-child{margin-left:42.55319149%;*margin-left:42.44680851%}.row-fluid .offset4{margin-left:36.17021277%;*margin-left:36.06382979%}.row-fluid .offset4:first-child{margin-left:34.04255319%;*margin-left:33.93617021%}.row-fluid .offset3{margin-left:27.65957447%;*margin-left:27.55319149%}.row-fluid .offset3:first-child{margin-left:25.53191489%;*margin-left:25.42553191%}.row-fluid .offset2{margin-left:19.14893617%;*margin-left:19.04255319%}.row-fluid .offset2:first-child{margin-left:17.0212766%;*margin-left:16.91489362%}.row-fluid .offset1{margin-left:10.63829787%;*margin-left:10.53191489%}.row-fluid .offset1:first-child{margin-left:8.5106383%;*margin-left:8.40425532%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:"";line-height:0}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:180px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:200px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;border:1px solid #ccc;background-color:#fff}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);cursor:not-allowed}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#8a6d3b}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#8a6d3b}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:180px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:200px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:200px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:200px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("[[pix:theme|glyphicons-halflings]]");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("[[pix:theme|glyphicons-halflings-white]]")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.i