diff --git a/extension/Documentation/Manual.rst b/extension/Documentation/Manual.rst
index e8f9b2255054ad638cdb9bebdfda942497526d61..cfef3edc88864ac036b14ff3d2a2b592f1ad92e1 100644
--- a/extension/Documentation/Manual.rst
+++ b/extension/Documentation/Manual.rst
@@ -207,22 +207,22 @@ Setup CSS & JS
 	}
 
 	page.includeJS {
-		file01 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.min.js
-		file02 = typo3conf/ext/qfq/Resources/Public/JavaScript/bootstrap.min.js
-		file03 = typo3conf/ext/qfq/Resources/Public/JavaScript/validator.min.js
-		file04 = typo3conf/ext/qfq/Resources/Public/JavaScript/jqx-all.js
-		file05 = typo3conf/ext/qfq/Resources/Public/JavaScript/globalize.js
-		file06 = typo3conf/ext/qfq/Resources/Public/JavaScript/tinymce.min.js
-		file07 = typo3conf/ext/qfq/Resources/Public/JavaScript/EventEmitter.min.js
+        file01 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.min.js
+        file02 = typo3conf/ext/qfq/Resources/Public/JavaScript/bootstrap.min.js
+        file03 = typo3conf/ext/qfq/Resources/Public/JavaScript/validator.min.js
+        file04 = typo3conf/ext/qfq/Resources/Public/JavaScript/jqx-all.js
+        file05 = typo3conf/ext/qfq/Resources/Public/JavaScript/globalize.js
+        file06 = typo3conf/ext/qfq/Resources/Public/JavaScript/tinymce.min.js
+        file07 = typo3conf/ext/qfq/Resources/Public/JavaScript/EventEmitter.min.js
         file08 = typo3conf/ext/qfq/Resources/Public/JavaScript/typeahead.bundle.min.js
-		file09 = typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.min.js
-		file10 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.combined.min.js
-		file11 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.pager.min.js
-		file12 = typo3conf/ext/qfq/Resources/Public/JavaScript/widget-columnSelector.min.js
+        file09 = typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.min.js
+        file10 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.combined.min.js
+        file11 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.pager.min.js
+        file12 = typo3conf/ext/qfq/Resources/Public/JavaScript/widget-columnSelector.min.js
 
-		# Only needed in case FormElement 'annotate' is used.
-		file20 = typo3conf/ext/qfq/Resources/Public/JavaScript/fabric.min.js
-		file21 = typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.fabric.min.js
+        # Only needed in case FormElement 'annotate' is used.
+        file20 = typo3conf/ext/qfq/Resources/Public/JavaScript/fabric.min.js
+        file21 = typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.fabric.min.js
 
 	}
 
@@ -1455,43 +1455,44 @@ Store
 
 Only variables that are known in a specified store can be substituted.
 
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- |Name |Description                                                                             | Content                                                                    |
- +=====+========================================================================================+============================================================================+
- | B   | :ref:`STORE_BEFORE`: Record - the current record loaded in the form before any update. | All columns of the current record from the current table                   |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | C   | :ref:`STORE_CLIENT`: POST variable, if not found: GET variable.                        | Parameter sent from the Client (=Browser).                                 |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | D   | Default values column : The *table.column* specified *default value*.                  |                                                                            |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | E   | *Empty* - allways an empty string, might be helpful if a variable is empty or undefined| Any key                                                                    |
- |     | and will be used in an SQL statement.                                                  |                                                                            |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | F   | :ref:`STORE_FORM`: data not saved in database yet.                                     | All native *FormElements*. Recent values from the Browser.                 |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | L   | :ref:`STORE_LDAP`: Will be filled on demand during processing of a *FormElement*.      | Custom specified list of LDAP attributes                                   |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | M   | Column type: The *table.column* specified *type*.                                      |                                                                            |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | P   | Parent record. E.g.: on multi & copy forms the current record of the outer query.      | All columns of the MultiSQL Statement from the table for the current row   |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | R   | :ref:`STORE_RECORD`: Record - the current record loaded in the form.                   | All columns of the current record from the current table                   |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | S   | :ref:`STORE_SIP`: Client parameter 's' will indicate the current SIP, which will be    | sip, r (recordId), form                                                    |
- |     | loaded from the SESSION repo to the SIP-Store.                                         |                                                                            |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | T   | :ref:`STORE_TYPO3`: a) Bodytext (ttcontent record), b) Typo3 internal variables.       | See Typo3 tt_content record configuration                                  |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | U   | :ref:`STORE_USER`: per user variables, valid as long as the browser session lives.     | Set via report: '...' AS '_=<var name>'                                    |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | V   | :ref:`STORE_VARS`: Generic variables.                                                  |                                                                            |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | Y   | :ref:`STORE_SYSTEM`: a) Database, b) helper vars for logging/debugging:                |                                                                            |
- |     | SYSTEM_SQL_RAW ... SYSTEM_FORM_ELEMENT_COLUMN, c) Any custom fields: CONTACT, HELP, ...|                                                                            |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
- | 0   | *Zero* - allways value: 0, might be helpful if a variable is empty or undefined and    | Any key                                                                    |
- |     | will be used in an SQL statement.                                                      |                                                                            |
- +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ |Name |Description                                                                             | Content                                                                        |
+ +=====+========================================================================================+================================================================================+
+ | B   | :ref:`STORE_BEFORE`: Record - the current record loaded in the form before any update. | All columns of the current record from the current table. See `STORE_BEFORE`_. |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | C   | :ref:`STORE_CLIENT`: POST variable, if not found: GET variable.                        | Parameter sent from the Client (=Browser). See `STORE_CLIENT`_.                |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | D   | Default values column : The *table.column* specified *default value*.                  |                                                                                |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | E   | *Empty* - allways an empty string, might be helpful if a variable is empty or undefined| Any key                                                                        |
+ |     | and will be used in an SQL statement.                                                  |                                                                                |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | F   | :ref:`STORE_FORM`: data not saved in database yet.                                     | All native *FormElements*. Recent values from the Browser. See: `STORE_FORM`_  |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | L   | :ref:`STORE_LDAP`: Will be filled on demand during processing of a *FormElement*.      | Custom specified list of LDAP attributes. See `STORE_LDAP`_.                   |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | M   | Column type: The *table.column* specified *type*.                                      |                                                                                |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | P   | Parent record. E.g.: on multi & copy forms the current record of the outer query.      | All columns of the MultiSQL Statement from the table for the current row       |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | R   | :ref:`STORE_RECORD`: Record - the current record loaded in the form.                   | All columns of the current record from the current table. See `STORE_RECORD`_. |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | S   | :ref:`STORE_SIP`: Client parameter 's' will indicate the current SIP, which will be    | sip, r (recordId), form. See `STORE_SIP`_.                                     |
+ |     | loaded from the SESSION repo to the SIP-Store.                                         |                                                                                |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | T   | :ref:`STORE_TYPO3`: a) Bodytext (ttcontent record), b) Typo3 internal variables.       | See Typo3 tt_content record configuration. See `STORE_TYPO3`_.                 |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | U   | :ref:`STORE_USER`: per user variables, valid as long as the browser session lives.     | Set via report: '...' AS '_=<var name>' See: `STORE_USER`_,                    |
+ |     |                                                                                        | `store_user_examples`_                                                         |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | V   | :ref:`STORE_VARS`: Generic variables.                                                  | See `STORE_VARS`_.                                                             |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | Y   | :ref:`STORE_SYSTEM`: a) Database, b) helper vars for logging/debugging:                |  See `STORE_SYSTEM`_.                                                          |
+ |     | SYSTEM_SQL_RAW ... SYSTEM_FORM_ELEMENT_COLUMN, c) Any custom fields: CONTACT, HELP, ...|                                                                                |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+ | 0   | *Zero* - allways value: 0, might be helpful if a variable is empty or undefined and    | Any key                                                                        |
+ |     | will be used in an SQL statement.                                                      |                                                                                |
+ +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
 
 * Default *<prio>*: *FSRVD* - Form / SIP / Record / Vars / Table definition.
 * Hint: Preferable, parameter should be submitted by SIP, not by Client (=URL).
@@ -1739,6 +1740,7 @@ As soon as a value is set in the store, it remains as long as the browser sessio
 
 Values can be set via report '... AS "_=<var name>"'
 
+See also: `store_user_examples`_
 
 .. _LDAP:
 
@@ -5290,7 +5292,7 @@ Special column names
 +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | _+html-tag attributes  |The content will be wrapped with '<html-tag attributes>'. Example: SELECT 'example' AS '_+a href="http://example.com"' creates '<a href="http://example.com">example</a>'                    |
 +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| _=varname              |The content will be saved in store 'user' under 'varname'. Retrieve it later via {{varname:U}}                                                                                               |
+| _=varname              |The content will be saved in store 'user' under 'varname'. Retrieve it later via {{varname:U}}. See `STORE_USER`_, `store_user_examples`_                                                    |
 +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 |_<nonReservedName>      |Suppress output. Column names with leading underscore are used to select data from the database and make it available in other parts of the report without generating any output.            |
 +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -7167,8 +7169,12 @@ FormElement) forms: ::
 	  rsep = ,&ensp;
 	}
 
-Keep variables per user session
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. _`store_user_examples`:
+
+STORE_USER examples
+^^^^^^^^^^^^^^^^^^^
+
+Keep variables per user session.
 
 Two pages (pass variable)
 '''''''''''''''''''''''''
@@ -7220,6 +7226,28 @@ All places with `{{feUser:Y}}` has to be replaced by `{{feUser:UY}}`: ::
                     'p:{{pageAlias:T}}&feUser={{feUser:T}}|t:Back to own identity|b|s' AS _link,
 
 
+Semester switch (remember last choice)
+''''''''''''''''''''''''''''''''''''''
+
+A current semester is defined via configuration in STORE_SYSTEM '{{semId:Y}}'. The first column "'{{semId:SUY}}' AS '_=semId'" saves
+the semester to STORE_USER via '_=semId'. The priority 'SCUY' takes either the latest choose (STORE_SIP) or reuse the
+last used (STORE_USER) or (first time call during browser session) takes the default from config (STORE_SYSTEM): ::
+
+    # Semester switch
+    10 {
+      sql = SELECT '{{semId:SUY}}' AS '_=semId',
+                   CONCAT('p:{{pageAlias:T}}&semId=', sp.id, '|t:', sp.name, '|s|b|G:glyphicon-chevron-left') AS _link,
+                           ' <button class="btn disabled ',   IF({{semId:Y0}}=sc.id, 'btn-success', 'btn-default'), '">',sc.name, '</button> ',
+                           CONCAT('p:{{pageAlias:T}}&semId=', sn.id, '|t:', sn.name, '|s|b|G:glyphicon-chevron-right|R') AS _link
+                       FROM semester AS sc
+                       LEFT JOIN semester AS sp ON sp.id=sc.id-1
+                       LEFT JOIN semester AS sn ON sc.id+1=sn.id AND sn.show_semester_from<=CURDATE()
+                       WHERE sc.id={{semId:SUY}} AND '{{form:SE}}'=''
+                       ORDER BY sc.semester_von
+      head = <div class="btn-group" style="position: absolute; top: 15px; right: 25px;">
+      tail = </div><p></p>
+    }
+
 .. _`system`:
 
 System