Added feature #15621: Feature: TYPO3 misses page-option to force SSL oder Non-SSL...
[Packages/TYPO3.CMS.git] / typo3 / sysext / cms / tslib / class.tslib_content.php
index d5ff01a..3116174 100644 (file)
@@ -1,34 +1,34 @@
 <?php
 /***************************************************************
- Copyright notice
-*
-*  (c) 1999-2009 Kasper Skaarhoj (kasperYYYY@typo3.com)
- All rights reserved
-*
- This script is part of the TYPO3 project. The TYPO3 project is
- free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-*
- The GNU General Public License can be found at
- http://www.gnu.org/copyleft/gpl.html.
- A copy is found in the textfile GPL.txt and important notices to the license
- from the author is found in LICENSE.txt distributed with these scripts.
-*
-*
- This script 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.
-*
- This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
+ * Copyright notice
+ *
+ * (c) 1999-2010 Kasper Sk�rh�j (kasperYYYY@typo3.com)
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ * A copy is found in the textfile GPL.txt and important notices to the license
+ * from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ * This script 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.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
 /**
  * Contains classes for Content Rendering based on TypoScript Template configuration
  *
  * $Id$
- * Revised for TYPO3 3.6 June/2003 by Kasper Skaarhoj
+ * Revised for TYPO3 3.6 June/2003 by Kasper Skårhøj
  * XHTML compliant
  *
  * class tslib_cObj                    :               All main TypoScript features, rendering of content objects (cObjects). This class is the backbone of TypoScript Template rendering.
  * class tslib_tableOffset             :               Makes a table-offset (TS)
  * class tslib_frameset                        :               Generates framesets (TS)
  *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
+ * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 /**
  * [CLASS/FUNCTION INDEX of SCRIPT]
  *
  *
  *
- *  256: class tslib_cObj
- *  353:     function start($data,$table='')
- *  387:     function setParent($data,$currentRecord)
+ * 256: class tslib_cObj
+ * 353:     function start($data,$table='')
+ * 387:     function setParent($data,$currentRecord)
  *
- *              SECTION: CONTENT_OBJ:
- *  412:     function getCurrentVal()
- *  423:     function setCurrentVal($value)
- *  436:     function cObjGet($setup,$addKey='')
- *  460:     function cObjGetSingle($name,$conf,$TSkey='__')
+ * SECTION: CONTENT_OBJ:
+ * 412:     function getCurrentVal()
+ * 423:     function setCurrentVal($value)
+ * 436:     function cObjGet($setup,$addKey='')
+ * 460:     function cObjGetSingle($name,$conf,$TSkey='__')
  *
- *              SECTION: Functions rendering content objects (cObjects)
- *  629:     function HTML($conf)
- *  640:     function TEXT($conf)
- *  651:     function CLEARGIF($conf)
- *  670:     function COBJ_ARRAY($conf,$ext='')
- *  706:     function USER($conf,$ext='')
- *  733:     function FILE($conf)
- *  749:     function IMAGE($conf)
- *  768:     function IMG_RESOURCE($conf)
- *  780:     function IMGTEXT($conf)
+ * SECTION: Functions rendering content objects (cObjects)
+ * 629:     function HTML($conf)
+ * 640:     function TEXT($conf)
+ * 651:     function CLEARGIF($conf)
+ * 670:     function COBJ_ARRAY($conf,$ext='')
+ * 706:     function USER($conf,$ext='')
+ * 733:     function FILE($conf)
+ * 749:     function IMAGE($conf)
+ * 768:     function IMG_RESOURCE($conf)
+ * 780:     function IMGTEXT($conf)
  * 1203:     function CONTENT($conf)
  * 1290:     function RECORDS($conf)
  * 1370:     function HMENU($conf)
@@ -78,7 +78,7 @@
  * 2354:     function TEMPLATE($conf)
  * 2505:     function MULTIMEDIA($conf)
  *
- *              SECTION: Various helper functions for content objects:
+ * SECTION: Various helper functions for content objects:
  * 2592:     function getSlidePids($pidList, $pidConf)
  * 2623:     function getFieldDefaultValue($noValueInsert, $fieldName, $defaultVal)
  * 2641:     function cImage($file,$conf)
  * 2765:     function fileResource($fName, $addParams='alt="" title=""')
  * 2788:     function lastChanged($tstamp)
  * 2805:     function linkWrap($content,$wrap)
- * 2824:     function getAltParam($conf, $longDesc=true)
+ * 2824:     function getAltParam($conf, $longDesc=TRUE)
  * 2859:     function cleanFormName($name)
  * 2875:     function getATagParams($conf, $addGlobal=1)
  *
- *              SECTION: HTML template processing functions
+ * SECTION: HTML template processing functions
  * 2922:     function getSubpart($content, $marker)
  * 2938:     function substituteSubpart($content,$marker,$subpartContent,$recursive=1)
  * 2951:     function substituteMarker($content,$marker,$markContent)
  * 3081:     function substituteMarkerInObject(&$tree, $markContentArray)
  * 3104:     function fillInMarkerArray($markContentArray, $row, $fieldList='', $nl2br=TRUE, $prefix='FIELD_', $HSC=FALSE)
  *
- *              SECTION: "stdWrap" + sub functions
+ * SECTION: "stdWrap" + sub functions
  * 3167:     function stdWrap($content,$conf)
  * 3364:     function numRows($conf)
  * 3388:     function listNum($content,$listNum,$char)
  * 4574:     function mailto_makelinks($data,$conf)
  * 4617:     function getImgResource($file,$fileArray)
  *
- *              SECTION: Data retrieval etc.
+ * SECTION: Data retrieval etc.
  * 4810:     function getFieldVal($field)
  * 4830:     function getData($string,$fieldArray)
  * 4975:     function rootLineValue($key,$field,$slideBack=0,$altRootLine='')
  * 5033:     function getKey($key,$arr)
  * 5056:     function TCAlookup($inputValue,$conf)
  *
- *              SECTION: Link functions (typolink)
+ * SECTION: Link functions (typolink)
  * 5116:     function typoLink($linktxt, $conf)
  * 5481:     function typoLink_URL($conf)
  * 5499:     function getTypoLink($label,$params,$urlParameters=array(),$target='')
  * 5619:     function getMailTo($mailAddress,$linktxt,$initP='?')
  * 5658:     function getQueryArguments($conf,$overruleQueryArgs=array(),$forceArgs=FALSE)
  *
- *              SECTION: Miscellaneous functions, stand alone
+ * SECTION: Miscellaneous functions, stand alone
  * 5754:     function wrap($content,$wrap,$char='|')
  * 5770:     function noTrimWrap($content,$wrap)
  * 5784:     function wrapSpace($content, $wrap)
  * 6159:     function linebreaks($string,$chars,$maxLines=0)
  * 6190:     function getUpdateJS($dataArray, $formName, $arrPrefix, $fieldList)
  *
- *              SECTION: Database functions, making of queries
+ * SECTION: Database functions, making of queries
  * 6260:     function DBgetDelete($table, $uid, $doExec=FALSE)
  * 6292:     function DBgetUpdate($table, $uid, $dataArr, $fieldList, $doExec=FALSE)
  * 6334:     function DBgetInsert($table, $pid, $dataArr, $fieldList, $doExec=FALSE)
  * 6878:     function checkPidArray($listArr)
  * 6902:     function checkPid($uid)
  *
- *              SECTION: Frontend editing functions
+ * SECTION: Frontend editing functions
  * 6959:     function editPanel($content, $conf, $currentRecord='', $dataArr=array())
  * 7146:     function editIcons($content,$params, $conf=array(), $currentRecord='', $dataArr=array(),$addUrlParamStr='')
  * 7228:     function editPanelLinkWrap($string,$formName,$cmd,$currentRecord='',$confirm='',$nPid='')
  *
  */
 
-       // Object TypoScript library included:
-if(t3lib_extMgm::isLoaded('obts')) {
-       require_once(t3lib_extMgm::extPath('obts').'_tsobject/_tso.php');
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 /**
@@ -244,13 +225,15 @@ if(t3lib_extMgm::isLoaded('obts')) {
  * The class "tslib_cObj" is normally instantiated and referred to as "cObj".
  * When you call your own PHP-code typically through a USER or USER_INT cObject then it is this class that instantiates the object and calls the main method. Before it does so it will set (if you are using classes) a reference to itself in the internal variable "cObj" of the object. Thus you can access all functions and data from this class by $this->cObj->... from within you classes written to be USER or USER_INT content objects.
  *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
+ * @author     Kasper Sk�rh�j <kasperYYYY@typo3.com>
  * @package TYPO3
  * @subpackage tslib
  * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&cHash=4ad9d7acb4
  */
 class tslib_cObj {
-       var $align = Array ('center', 'right', 'left');
+       var $align = array(
+               'center', 'right', 'left'
+       );
 
        /**
         * Holds ImageMagick parameters and extensions used for compression
@@ -262,31 +245,75 @@ class tslib_cObj {
         * 1x = GIFs
         * 2x = JPGs
         */
-       var $image_compression = Array(
-               10 => Array('params'=>'', 'ext'=>'gif'),
-               11 => Array('params'=>'-colors 128', 'ext'=>'gif'),
-               12 => Array('params'=>'-colors 64', 'ext'=>'gif'),
-               13 => Array('params'=>'-colors 32', 'ext'=>'gif'),
-               14 => Array('params'=>'-colors 16', 'ext'=>'gif'),
-               15 => Array('params'=>'-colors 8', 'ext'=>'gif'),
-
-               30 => Array('params'=>'-colors 256', 'ext'=>'png'),
-               31 => Array('params'=>'-colors 128', 'ext'=>'png'),
-               32 => Array('params'=>'-colors 64', 'ext'=>'png'),
-               33 => Array('params'=>'-colors 32', 'ext'=>'png'),
-               34 => Array('params'=>'-colors 16', 'ext'=>'png'),
-               35 => Array('params'=>'-colors 8', 'ext'=>'png'),
-               39 => Array('params'=>'', 'ext'=>'png'),
-
-               20 => Array('params'=>'-quality 100', 'ext'=>'jpg'),
-               21 => Array('params'=>'-quality 90', 'ext'=>'jpg'),
-               22 => Array('params'=>'-quality 80', 'ext'=>'jpg'),
-               23 => Array('params'=>'-quality 70', 'ext'=>'jpg'),
-               24 => Array('params'=>'-quality 60', 'ext'=>'jpg'),
-               25 => Array('params'=>'-quality 50', 'ext'=>'jpg'),
-               26 => Array('params'=>'-quality 40', 'ext'=>'jpg'),
-               27 => Array('params'=>'-quality 30', 'ext'=>'jpg'),
-               28 => Array('params'=>'-quality 20', 'ext'=>'jpg')
+       var $image_compression = array(
+               10 => array(
+                       'params' => '', 'ext' => 'gif'
+               ),
+               11 => array(
+                       'params' => '-colors 128', 'ext' => 'gif'
+               ),
+               12 => array(
+                       'params' => '-colors 64', 'ext' => 'gif'
+               ),
+               13 => array(
+                       'params' => '-colors 32', 'ext' => 'gif'
+               ),
+               14 => array(
+                       'params' => '-colors 16', 'ext' => 'gif'
+               ),
+               15 => array(
+                       'params' => '-colors 8', 'ext' => 'gif'
+               ),
+
+               20 => array(
+                       'params' => '-quality 100', 'ext' => 'jpg'
+               ),
+               21 => array(
+                       'params' => '-quality 90', 'ext' => 'jpg'
+               ),
+               22 => array(
+                       'params' => '-quality 80', 'ext' => 'jpg'
+               ),
+               23 => array(
+                       'params' => '-quality 70', 'ext' => 'jpg'
+               ),
+               24 => array(
+                       'params' => '-quality 60', 'ext' => 'jpg'
+               ),
+               25 => array(
+                       'params' => '-quality 50', 'ext' => 'jpg'
+               ),
+               26 => array(
+                       'params' => '-quality 40', 'ext' => 'jpg'
+               ),
+               27 => array(
+                       'params' => '-quality 30', 'ext' => 'jpg'
+               ),
+               28 => array(
+                       'params' => '-quality 20', 'ext' => 'jpg'
+               ),
+
+               30 => array(
+                       'params' => '-colors 256', 'ext' => 'png'
+               ),
+               31 => array(
+                       'params' => '-colors 128', 'ext' => 'png'
+               ),
+               32 => array(
+                       'params' => '-colors 64', 'ext' => 'png'
+               ),
+               33 => array(
+                       'params' => '-colors 32', 'ext' => 'png'
+               ),
+               34 => array(
+                       'params' => '-colors 16', 'ext' => 'png'
+               ),
+               35 => array(
+                       'params' => '-colors 8', 'ext' => 'png'
+               ),
+               39 => array(
+                       'params' => '', 'ext' => 'png'
+               ),
        );
 
        /**
@@ -294,7 +321,7 @@ class tslib_cObj {
         *
         * @see IMGTEXT()
         */
-       var $image_effects = Array(
+       var $image_effects = array(
                1 => '-rotate 90',
                2 => '-rotate 270',
                3 => '-rotate 180',
@@ -313,42 +340,45 @@ class tslib_cObj {
         * The function stdWrap has TypoScript properties that fetch field-data from this array.
         * @see init()
         */
-       var $data = Array();
-       var $oldData = Array();                         // Used for backup...
-       var $alternativeData ='';                       // If this is set with an array before stdWrap, it's used instead of $this->data in the data-property in stdWrap
-       var $parameters = Array();                      // Used by the parseFunc function and is loaded with tag-parameters when parsing tags.
+       var $data = array();
+       protected $table = '';
+       var $oldData = array(); // Used for backup...
+       var $alternativeData = ''; // If this is set with an array before stdWrap, it's used instead of $this->data in the data-property in stdWrap
+       var $parameters = array(); // Used by the parseFunc function and is loaded with tag-parameters when parsing tags.
        var $currentValKey = 'currentValue_kidjls9dksoje';
-       var $currentRecord = '';                        // This is set to the [table]:[uid] of the record delivered in the $data-array, if the cObjects CONTENT or RECORD is in operation. Note that $GLOBALS['TSFE']->currentRecord is set to an equal value but always indicating the latest record rendered.
-       var $currentRecordTotal = 0;            // Set in cObj->RECORDS and cObj->CONTENT to the current number of records selected in a query.
-       var $currentRecordNumber = 0;           // Incremented in cObj->RECORDS and cObj->CONTENT before each record rendering.
-       var $parentRecordNumber = 0;            // Incremented in parent cObj->RECORDS and cObj->CONTENT before each record rendering.
-       var $parentRecord = array();            // If the tslib_cObj was started from CONTENT, RECORD or SEARCHRESULT cObject's this array has two keys, 'data' and 'currentRecord' which indicates the record and data for the parent cObj.
-       var $regObj;            // This may be set as a reference to the calling object of eg. cObjGetSingle. Anyway, just use it as you like. It's used in productsLib.inc for example.
-
-       // internal
-       var $INT_include=0;             // Is set to 1 if the instance of this cObj is executed from a PHP_SCRIPT_INT -include script (see pagegen, bottom of document)
-       var $checkPid_cache = Array();          // This is used by checkPid, that checks if pages are accessible. The $checkPid_cache['page_uid'] is set true or false upon this check featuring a caching function for the next request.
+       var $currentRecord = ''; // This is set to the [table]:[uid] of the record delivered in the $data-array, if the cObjects CONTENT or RECORD is in operation. Note that $GLOBALS['TSFE']->currentRecord is set to an equal value but always indicating the latest record rendered.
+       var $currentRecordTotal = 0; // Set in cObj->RECORDS and cObj->CONTENT to the current number of records selected in a query.
+       var $currentRecordNumber = 0; // Incremented in cObj->RECORDS and cObj->CONTENT before each record rendering.
+       var $parentRecordNumber = 0; // Incremented in parent cObj->RECORDS and cObj->CONTENT before each record rendering.
+       var $parentRecord = array(); // If the tslib_cObj was started from CONTENT, RECORD or SEARCHRESULT cObject's this array has two keys, 'data' and 'currentRecord' which indicates the record and data for the parent cObj.
+       var $regObj; // This may be set as a reference to the calling object of eg. cObjGetSingle. Anyway, just use it as you like. It's used in productsLib.inc for example.
+
+
+               // internal
+       var $INT_include = 0; // Is set to 1 if the instance of this cObj is executed from a PHP_SCRIPT_INT -include script (see pagegen, bottom of document)
+       var $checkPid_cache = array(); // This is used by checkPid, that checks if pages are accessible. The $checkPid_cache['page_uid'] is set TRUE or FALSE upon this check featuring a caching function for the next request.
        var $checkPid_badDoktypeList = '255';
-       var $lastTypoLinkUrl='';        // This will be set by typoLink() to the url of the most recent link created.
-       var $lastTypoLinkTarget='';     // DO. link target.
+       var $lastTypoLinkUrl = ''; // This will be set by typoLink() to the url of the most recent link created.
+       var $lastTypoLinkTarget = ''; // DO. link target.
        var $lastTypoLinkLD = array();
-       var $substMarkerCache=array();  // Caching substituteMarkerArrayCached function
-       var $recordRegister=array();    // Array that registers rendered content elements (or any table) to make sure they are not rendered recursively!
-       var $cObjHookObjectsArr = array();              // Containig hooks for userdefined cObjects
-       protected $stdWrapHookObjects = array();                // Containing hook objects for stdWrap
-       protected $getImgResourceHookObjects;                   // Containing hook objects for getImgResource
+       var $substMarkerCache = array(); // Caching substituteMarkerArrayCached function
+       var $recordRegister = array(); // array that registers rendered content elements (or any table) to make sure they are not rendered recursively!
+       var $cObjHookObjectsArr = array(); // Containig hooks for userdefined cObjects
+       protected $stdWrapHookObjects = array(); // Containing hook objects for stdWrap
+       protected $getImgResourceHookObjects; // Containing hook objects for getImgResource
+
 
        /**
-        * Set to true by doConvertToUserIntObject() if USER object wants to become USER_INT
+        * Set to TRUE by doConvertToUserIntObject() if USER object wants to become USER_INT
         */
-       protected $doConvertToUserIntObject = false;
+       protected $doConvertToUserIntObject = FALSE;
 
        /**
-        * Indicates current object type. Can hold one of OBJECTTYPE_ constants or false.
+        * Indicates current object type. Can hold one of OBJECTTYPE_ constants or FALSE.
         * The value is set and reset inside USER() function. Any time outside of
-        * USER() it is false.
+        * USER() it is FALSE.
         */
-       protected $userObjectType = false;
+       protected $userObjectType = FALSE;
 
        /**
         * Indicates that object type is USER.
@@ -373,28 +403,48 @@ class tslib_cObj {
         * @param       string          $table  the table that the data record is from.
         * @return      void
         */
-       function start($data,$table='') {
+       function start($data, $table = '') {
                global $TYPO3_CONF_VARS;
                $this->data = $data;
-               $this->currentRecord = $table ? $table.':'.$this->data['uid'] : '';
-               $this->parameters = Array();
-               if (is_array ($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClass'])) {
+               $this->table = $table;
+               $this->currentRecord = $table ? $table . ':' . $this->data['uid'] : '';
+               $this->parameters = array();
+               if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClass'])) {
                        foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClass'] as $classArr) {
                                $this->cObjHookObjectsArr[$classArr[0]] = t3lib_div::getUserObj($classArr[1]);
                        }
                }
 
-               if(is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['stdWrap'])) {
-                       foreach($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['stdWrap'] as $classData) {
+               $this->stdWrapHookObjects = array();
+               if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['stdWrap'])) {
+                       foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['stdWrap'] as $classData) {
                                $hookObject = t3lib_div::getUserObj($classData);
 
-                               if(!($hookObject instanceof tslib_content_stdWrapHook)) {
-                                       throw new UnexpectedValueException('$hookObject must implement interface tslib_content_stdWrapHook', 1195043965);
+                               if (!($hookObject instanceof tslib_content_stdWrapHook)) {
+                                       throw new UnexpectedValueException(
+                                               '$hookObject must implement interface tslib_content_stdWrapHook',
+                                               1195043965
+                                       );
                                }
 
                                $this->stdWrapHookObjects[] = $hookObject;
                        }
                }
+
+               if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['postInit'])) {
+                       foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['postInit'] as $classData) {
+                               $postInitializationProcessor = t3lib_div::getUserObj($classData);
+
+                               if (!($postInitializationProcessor instanceof tslib_content_PostInitHook)) {
+                                       throw new UnexpectedValueException(
+                                               '$postInitializationProcessor must implement interface tslib_content_PostInitHook',
+                                               1274563549
+                                       );
+                               }
+
+                               $postInitializationProcessor->postProcessContentObjectInitialization($this);
+                       }
+               }
        }
 
        /**
@@ -407,12 +457,15 @@ class tslib_cObj {
                if (!isset($this->getImgResourceHookObjects)) {
                        $this->getImgResourceHookObjects = array();
 
-                       if(is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['getImgResource'])) {
-                               foreach($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['getImgResource'] as $classData) {
+                       if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['getImgResource'])) {
+                               foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['getImgResource'] as $classData) {
                                        $hookObject = t3lib_div::getUserObj($classData);
 
-                                       if(!($hookObject instanceof tslib_cObj_getImgResourceHook)) {
-                                               throw new UnexpectedValueException('$hookObject must implement interface tslib_cObj_getImgResourceHook', 1218636383);
+                                       if (!($hookObject instanceof tslib_cObj_getImgResourceHook)) {
+                                               throw new UnexpectedValueException(
+                                                       '$hookObject must implement interface tslib_cObj_getImgResourceHook',
+                                                       1218636383
+                                               );
                                        }
 
                                        $this->getImgResourceHookObjects[] = $hookObject;
@@ -432,17 +485,15 @@ class tslib_cObj {
         * @return      void
         * @access private
         */
-       function setParent($data,$currentRecord)        {
-               $this->parentRecord=array('data'=>$data, 'currentRecord'=>$currentRecord);
+       function setParent($data, $currentRecord) {
+               $this->parentRecord = array(
+                       'data' => $data,
+                       'currentRecord' => $currentRecord
+               );
        }
 
 
 
-
-
-
-
-
        /***********************************************
         *
         * CONTENT_OBJ:
@@ -457,7 +508,7 @@ class tslib_cObj {
         *
         * @return      mixed           The "current" value
         */
-       function getCurrentVal()        {
+       function getCurrentVal() {
                return $this->data[$this->currentValKey];
        }
 
@@ -468,7 +519,7 @@ class tslib_cObj {
         * @return      void
         * @see getCurrentVal()
         */
-       function setCurrentVal($value)  {
+       function setCurrentVal($value) {
                $this->data[$this->currentValKey] = $value;
        }
 
@@ -476,20 +527,20 @@ class tslib_cObj {
         * Rendering of a "numerical array" of cObjects from TypoScript
         * Will call ->cObjGetSingle() for each cObject found and accumulate the output.
         *
-        * @param       array           $setup: Array with cObjects as values.
+        * @param       array           $setup: array with cObjects as values.
         * @param       string          $addKey: A prefix for the debugging information
         * @return      string          Rendered output from the cObjects in the array.
         * @see cObjGetSingle()
         */
-       function cObjGet($setup,$addKey='')     {
-               if (is_array($setup))   {
-                       $sKeyArray=t3lib_TStemplate::sortedKeyList($setup);
-                       $content ='';
-                       foreach($sKeyArray as $theKey)  {
-                               $theValue=$setup[$theKey];
-                               if (intval($theKey) && !strstr($theKey,'.'))    {
-                                       $conf=$setup[$theKey.'.'];
-                                       $content.=$this->cObjGetSingle($theValue,$conf,$addKey.$theKey);        // Get the contentObject
+       function cObjGet($setup, $addKey = '') {
+               if (is_array($setup)) {
+                       $sKeyArray = t3lib_TStemplate::sortedKeyList($setup);
+                       $content = '';
+                       foreach ($sKeyArray as $theKey) {
+                               $theValue = $setup[$theKey];
+                               if (intval($theKey) && !strstr($theKey, '.')) {
+                                       $conf = $setup[$theKey . '.'];
+                                       $content .= $this->cObjGetSingle($theValue, $conf, $addKey . $theKey); // Get the contentObject
                                }
                        }
                        return $content;
@@ -505,148 +556,155 @@ class tslib_cObj {
         * @return      string          cObject output
         * @example http://typo3.org/doc.0.html?&encryptionKey=&tx_extrepmgm_pi1[extUid]=267&tx_extrepmgm_pi1[tocEl]=153&cHash=7e74f4d331
         */
-       function cObjGetSingle($name,$conf,$TSkey='__') {
+       function cObjGetSingle($name, $conf, $TSkey = '__') {
                global $TYPO3_CONF_VARS;
 
-               $content='';
+               $content = '';
                        // Checking that the function is not called eternally. This is done by interrupting at a depth of 100
                $GLOBALS['TSFE']->cObjectDepthCounter--;
-               if ($GLOBALS['TSFE']->cObjectDepthCounter>0)    {
+               if ($GLOBALS['TSFE']->cObjectDepthCounter > 0) {
                        $name = trim($name);
-                       if ($GLOBALS['TT']->LR) $GLOBALS['TT']->push($TSkey, $name);
+                       if ($GLOBALS['TT']->LR)
+                               $GLOBALS['TT']->push($TSkey, $name);
 
                                // Checking if the COBJ is a reference to another object. (eg. name of 'blabla.blabla = < styles.something')
-                       if (substr($name,0,1)=='<')     {
-                               $key = trim(substr($name,1));
+                       if (substr($name, 0, 1) == '<') {
+                               $key = trim(substr($name, 1));
                                $cF = t3lib_div::makeInstance('t3lib_TSparser');
                                        // $name and $conf is loaded with the referenced values.
-                               $old_conf=$conf;
-                               list($name, $conf) = $cF->getVal($key,$GLOBALS['TSFE']->tmpl->setup);
-                               if (is_array($old_conf) && count($old_conf))    {
-                                       $conf = $this->joinTSarrays($conf,$old_conf);
+                               $old_conf = $conf;
+                               list ($name, $conf) = $cF->getVal($key, $GLOBALS['TSFE']->tmpl->setup);
+                               if (is_array($old_conf) && count($old_conf)) {
+                                       $conf = $this->joinTSarrays($conf, $old_conf);
                                }
                                        // Getting the cObject
                                $GLOBALS['TT']->incStackPointer();
-                                       $content.=$this->cObjGetSingle($name,$conf,$key);
+                               $content .= $this->cObjGetSingle($name, $conf, $key);
                                $GLOBALS['TT']->decStackPointer();
                        } else {
 
-                               $hooked = false;
+                               $hooked = FALSE;
                                        // Application defined cObjects
-                               foreach ($this->cObjHookObjectsArr as $cObjName => $hookObj)    {
-                                       if (($name===$cObjName) && method_exists($hookObj, 'cObjGetSingleExt')) {
-                                               $content.= $hookObj->cObjGetSingleExt($name, $conf, $TSkey, $this);
-                                               $hooked = true;
+                               foreach ($this->cObjHookObjectsArr as $cObjName => $hookObj) {
+                                       if (($name === $cObjName) && method_exists($hookObj, 'cObjGetSingleExt')) {
+                                               $content .= $hookObj->cObjGetSingleExt($name, $conf, $TSkey, $this);
+                                               $hooked = TRUE;
                                        }
                                }
-                               if (!$hooked && isset($GLOBALS['OBTS']['tso_list'][$name]) && t3lib_extMgm::isLoaded('obts')) {
-                                       $content.= obts_dtutil::renderDatatypeContent($name, $GLOBALS['OBTS']['tso_list'][$name], $conf, $this);
-                               } elseif (!$hooked) {
+                               if (!$hooked) {
                                                // Traditional Content Object branching:
-                                       switch($name)   {
-                                               case 'COBJ_ARRAY':
-                                               case 'COA':
-                                                       $content.=$this->COBJ_ARRAY($conf);
+                                       switch ($name) {
+                                               case 'COBJ_ARRAY' :
+                                               case 'COA' :
+                                                       $content .= $this->COBJ_ARRAY($conf);
                                                break;
-                                               case 'COA_INT':
-                                                       $content.=$this->COBJ_ARRAY($conf,'INT');
+                                               case 'COA_INT' :
+                                                       $content .= $this->COBJ_ARRAY($conf, 'INT');
                                                break;
-                                               case 'HTML':
-                                                       $content.=$this->HTML($conf);
+                                               case 'HTML' :
+                                                       $content .= $this->HTML($conf);
                                                break;
-                                               case 'TEXT':
-                                                       $content.=$this->TEXT($conf);
+                                               case 'TEXT' :
+                                                       $content .= $this->TEXT($conf);
                                                break;
-                                               case 'CLEARGIF':
-                                                       $content.=$this->CLEARGIF($conf);
+                                               case 'CLEARGIF' :
+                                                       $content .= $this->CLEARGIF($conf);
                                                break;
-                                               case 'FILE':
-                                                       $content.=$this->FILE($conf);
+                                               case 'FILE' :
+                                                       $content .= $this->FILE($conf);
                                                break;
-                                               case 'IMAGE':
-                                                       $content.=$this->IMAGE($conf);
+                                               case 'IMAGE' :
+                                                       $content .= $this->IMAGE($conf);
                                                break;
-                                               case 'IMG_RESOURCE':
-                                                       $content.=$this->IMG_RESOURCE($conf);
+                                               case 'IMG_RESOURCE' :
+                                                       $content .= $this->IMG_RESOURCE($conf);
                                                break;
-                                               case 'IMGTEXT':
-                                                       $content.=$this->IMGTEXT($conf);
+                                               case 'IMGTEXT' :
+                                                       $content .= $this->IMGTEXT($conf);
                                                break;
-                                               case 'CONTENT':
-                                                       $content.=$this->CONTENT($conf);
+                                               case 'CONTENT' :
+                                                       $content .= $this->CONTENT($conf);
                                                break;
-                                               case 'RECORDS':
-                                                       $content.=$this->RECORDS($conf);
+                                               case 'RECORDS' :
+                                                       $content .= $this->RECORDS($conf);
                                                break;
-                                               case 'HMENU':
-                                                       $content.=$this->HMENU($conf);
+                                               case 'HMENU' :
+                                                       $content .= $this->HMENU($conf);
                                                break;
-                                               case 'CTABLE':
-                                                       $content.=$this->CTABLE($conf);
+                                               case 'CTABLE' :
+                                                       $content .= $this->CTABLE($conf);
                                                break;
-                                               case 'OTABLE':
-                                                       $content.=$this->OTABLE($conf);
+                                               case 'OTABLE' :
+                                                       $content .= $this->OTABLE($conf);
                                                break;
-                                               case 'COLUMNS':
-                                                       $content.=$this->COLUMNS($conf);
+                                               case 'COLUMNS' :
+                                                       $content .= $this->COLUMNS($conf);
                                                break;
-                                               case 'HRULER':
-                                                       $content.=$this->HRULER($conf);
+                                               case 'HRULER' :
+                                                       $content .= $this->HRULER($conf);
                                                break;
-                                               case 'CASE':
-                                                       $content.=$this->CASEFUNC($conf);
+                                               case 'CASE' :
+                                                       $content .= $this->CASEFUNC($conf);
                                                break;
-                                               case 'LOAD_REGISTER':
-                                               case 'RESTORE_REGISTER':
-                                                       $this->LOAD_REGISTER($conf,$name);
+                                               case 'LOAD_REGISTER' :
+                                               case 'RESTORE_REGISTER' :
+                                                       $this->LOAD_REGISTER($conf, $name);
                                                break;
-                                               case 'FORM':
-                                                       $content.=$this->FORM($conf);
+                                               case 'FORM' :
+                                                       $content .= $this->FORM($conf);
                                                break;
-                                               case 'SEARCHRESULT':
-                                                       $content.=$this->SEARCHRESULT($conf);
+                                               case 'SEARCHRESULT' :
+                                                       $content .= $this->SEARCHRESULT($conf);
                                                break;
-                                               case 'PHP_SCRIPT':
-                                                       $content.=$this->PHP_SCRIPT($conf);
+                                               case 'PHP_SCRIPT' :
+                                                       $content .= $this->PHP_SCRIPT($conf);
                                                break;
-                                               case 'PHP_SCRIPT_EXT':
-                                                       $content.=$this->PHP_SCRIPT($conf,'EXT');
+                                               case 'PHP_SCRIPT_EXT' :
+                                                       $content .= $this->PHP_SCRIPT($conf, 'EXT');
                                                break;
-                                               case 'PHP_SCRIPT_INT':
-                                                       $content.=$this->PHP_SCRIPT($conf,'INT');
+                                               case 'PHP_SCRIPT_INT' :
+                                                       $content .= $this->PHP_SCRIPT($conf, 'INT');
                                                break;
-                                               case 'USER':
-                                                       $content.=$this->USER($conf);
+                                               case 'USER' :
+                                                       $content .= $this->USER($conf);
                                                break;
-                                               case 'USER_INT':
-                                                       $content.=$this->USER($conf,'INT');
+                                               case 'USER_INT' :
+                                                       $content .= $this->USER($conf, 'INT');
                                                break;
-                                               case 'TEMPLATE':
-                                                       $content.=$this->TEMPLATE($conf);
+                                               case 'TEMPLATE' :
+                                                       $content .= $this->TEMPLATE($conf);
                                                break;
-                                               case 'EDITPANEL':
-                                                       if ($GLOBALS['TSFE']->beUserLogin)      {$content.=$this->editPanel($content, $conf);}
+                                               case 'EDITPANEL' :
+                                                       if ($GLOBALS['TSFE']->beUserLogin) {
+                                                               $content .= $this->editPanel($content, $conf);
+                                                       }
+                                               break;
+                                               case 'MULTIMEDIA' :
+                                                       $content .= $this->MULTIMEDIA($conf);
                                                break;
-                                               case 'MULTIMEDIA':
-                                                       $content.=$this->MULTIMEDIA($conf);
+                                               case 'MEDIA' :
+                                                       $content .= $this->MEDIA($conf);
                                                break;
-                                               case 'MEDIA':
-                                                       $content.=$this->MEDIA($conf);
+                                               case 'SWFOBJECT' :
+                                                       $content .= $this->SWFOBJECT($conf);
                                                break;
-                                               case 'SWFOBJECT':
-                                                       $content.=$this->SWFOBJECT($conf);
+                                               case 'QTOBJECT' :
+                                                       $content .= $this->QTOBJECT($conf);
                                                break;
-                                               case 'QTOBJECT':
-                                                       $content.=$this->QTOBJECT($conf);
+                                               case 'SVG' :
+                                                       $content .= $this->SVG($conf);
                                                break;
-                                               default:
+                                               default :
                                                                // call hook functions for extra processing
-                                                       if($name && is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault']))    {
-                                                               foreach($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'] as $classData)    {
+                                                       if ($name && is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'])) {
+                                                               foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'] as $classData) {
                                                                        $hookObject = t3lib_div::getUserObj($classData);
 
-                                                                       if(!($hookObject instanceof tslib_content_cObjGetSingleHook)) {
-                                                                               throw new UnexpectedValueException('$hookObject must implement interface tslib_content_cObjGetSingleHook', 1195043731);
+                                                                       if (!($hookObject instanceof tslib_content_cObjGetSingleHook)) {
+                                                                               throw new UnexpectedValueException(
+                                                                                       '$hookObject must implement interface tslib_content_cObjGetSingleHook',
+                                                                                       1195043731
+                                                                               );
                                                                        }
                                                                        /* @var $hookObject tslib_content_cObjGetSingleHook */
                                                                        $content .= $hookObject->getSingleContentObject($name, (array) $conf, $TSkey, $this);
@@ -656,7 +714,8 @@ class tslib_cObj {
                                        }
                                }
                        }
-                       if ($GLOBALS['TT']->LR) $GLOBALS['TT']->pull($content);
+                       if ($GLOBALS['TT']->LR)
+                               $GLOBALS['TT']->pull($content);
                }
                        // Increasing on exit...
                $GLOBALS['TSFE']->cObjectDepthCounter++;
@@ -665,10 +724,6 @@ class tslib_cObj {
 
 
 
-
-
-
-
        /********************************************
         *
         * Functions rendering content objects (cObjects)
@@ -678,67 +733,71 @@ class tslib_cObj {
        /**
         * Rendering the cObject, HTML
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=349&cHash=d3fd0c70b4
         */
-       function HTML($conf)    {
-               return $this->stdWrap($conf['value'],$conf['value.']);
+       function HTML($conf) {
+               return $this->stdWrap($conf['value'], $conf['value.']);
        }
 
        /**
         * Rendering the cObject, TEXT
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=350&cHash=b49de28f83
         */
-       function TEXT($conf)    {
-               return $this->stdWrap($conf['value'],$conf);
+       function TEXT($conf) {
+               return $this->stdWrap($conf['value'], $conf);
        }
 
        /**
         * Rendering the cObject, CLEARGIF
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=355&cHash=70c0f19915
         */
-       function CLEARGIF($conf)        {
-               $w = $this->stdWrap($conf['width'],$conf['width.']);
-               $h = $this->stdWrap($conf['height'],$conf['height.']);
+       function CLEARGIF($conf) {
+               $w = $this->stdWrap($conf['width'], $conf['width.']);
+               $h = $this->stdWrap($conf['height'], $conf['height.']);
                $w = $w ? $w : 1;
                $h = $h ? $h : 1;
                $wrap = $conf['wrap'] ? $conf['wrap'] : '|<br />';
-               $theValue = $this->wrap('<img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$w.'" height="'.$h.'"'.$this->getBorderAttr(' border="0"').' alt="" title="" />', $wrap);
+               $theValue = $this->wrap(
+                       '<img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $w . '" height="' . $h . '"' .
+                       $this->getBorderAttr(' border="0"') . ' alt="" title="" />',
+                       $wrap
+               );
 
-               return $this->stdWrap($theValue,$conf['stdWrap.']);
+               return $this->stdWrap($theValue, $conf['stdWrap.']);
        }
 
        /**
         * Rendering the cObject, COBJ_ARRAY / COA and COBJ_ARRAY_INT
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @param       string          If "INT" then the cObject is a "COBJ_ARRAY_INT" (non-cached), otherwise just "COBJ_ARRAY" (cached)
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=351&cHash=a09db0329c
         */
-       function COBJ_ARRAY($conf,$ext='')      {
+       function COBJ_ARRAY($conf, $ext = '') {
 
                if (is_array($conf)) {
                        $content = '';
-                       switch($ext) {
-                               case 'INT':
+                       switch ($ext) {
+                               case 'INT' :
                                        $substKey = $ext . '_SCRIPT.' . $GLOBALS['TSFE']->uniqueHash();
-                                       $content .= '<!--'.$substKey.'-->';
-                                       $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey] = array (
+                                       $content .= '<!--' . $substKey . '-->';
+                                       $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey] = array(
                                                'file' => $conf['includeLibs'],
                                                'conf' => $conf,
                                                'cObj' => serialize($this),
                                                'type' => 'COA'
                                        );
                                break;
-                               default:
+                               default :
                                        if ($this->checkIf($conf['if.'])) {
                                                $this->includeLibs($conf);
                                                $content = $this->cObjGet($conf);
@@ -753,14 +812,14 @@ class tslib_cObj {
                        }
                        return $content;
                } else {
-                       $GLOBALS['TT']->setTSlogMessage('No elements in this content object array (COBJ_ARRAY, COA, COA_INT).', 2);
+                       $GLOBALS['TT']->setTSlogMessage('No elements in this content object array(COBJ_ARRAY, COA, COA_INT).', 2);
                }
        }
 
        /**
         * Rendering the cObject, USER and USER_INT
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @param       string          If "INT" then the cObject is a "USER_INT" (non-cached), otherwise just "USER" (cached)
         * @return      string          Output
         * @link        http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/8/22/
@@ -768,43 +827,43 @@ class tslib_cObj {
        function USER($conf, $ext = '') {
                $content = '';
                switch ($ext) {
-                       case 'INT':
+                       case 'INT' :
                                $this->userObjectType = self::OBJECTTYPE_USER_INT;
                                $substKey = $ext . '_SCRIPT.' . $GLOBALS['TSFE']->uniqueHash();
-                               $content.='<!--' . $substKey . '-->';
+                               $content .= '<!--' . $substKey . '-->';
                                $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey] = array(
                                        'file' => $conf['includeLibs'],
                                        'conf' => $conf,
                                        'cObj' => serialize($this),
                                        'type' => 'FUNC'
                                );
-                               break;
-                       default:
-                               if ($this->userObjectType === false) {
+                       break;
+                       default :
+                               if ($this->userObjectType === FALSE) {
                                        // Come here only if we are not called from $TSFE->INTincScript_process()!
                                        $this->userObjectType = self::OBJECTTYPE_USER;
                                }
                                $this->includeLibs($conf);
                                $tempContent = $this->callUserFunction($conf['userFunc'], $conf, '');
                                if ($this->doConvertToUserIntObject) {
-                                       $this->doConvertToUserIntObject = false;
+                                       $this->doConvertToUserIntObject = FALSE;
                                        $content = $this->USER($conf, 'INT');
                                } else {
                                        $content .= $tempContent;
                                }
-                               break;
+                       break;
                }
-               $this->userObjectType = false;
+               $this->userObjectType = FALSE;
                return $content;
        }
 
        /**
         * Retrieves a type of object called as USER or USER_INT. Object can detect their
         * type by using this call. It returns OBJECTTYPE_USER_INT or OBJECTTYPE_USER depending on the
-        * current object execution. In all other cases it will return false to indicate
+        * current object execution. In all other cases it will return FALSE to indicate
         * a call out of context.
         *
-        * @return      mixed   One of OBJECTTYPE_ class constants or false
+        * @return      mixed   One of OBJECTTYPE_ class constants or FALSE
         */
        public function getUserObjectType() {
                return $this->userObjectType;
@@ -817,43 +876,41 @@ class tslib_cObj {
         */
        public function convertToUserIntObject() {
                if ($this->userObjectType !== self::OBJECTTYPE_USER) {
-                       $GLOBALS['TT']->setTSlogMessage('tslib_cObj::convertToUserIntObject() ' .
-                               'is called in the wrong context or for the wrong object type', 2);
-               }
-               else {
-                       $this->doConvertToUserIntObject = true;
+                       $GLOBALS['TT']->setTSlogMessage('tslib_cObj::convertToUserIntObject() ' . 'is called in the wrong context or for the wrong object type', 2);
+               } else {
+                       $this->doConvertToUserIntObject = TRUE;
                }
        }
 
        /**
         * Rendering the cObject, FILE
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=352&cHash=379c60f8bc
         */
-       function FILE($conf)    {
-               $theValue = $this->fileResource($this->stdWrap($conf['file'],$conf['file.']), trim($this->getAltParam($conf, false)));
-               if ($conf['linkWrap'])  {
-                       $theValue = $this->linkWrap($theValue,$conf['linkWrap']);
+       function FILE($conf) {
+               $theValue = $this->fileResource($this->stdWrap($conf['file'], $conf['file.']), trim($this->getAltParam($conf, FALSE)));
+               if ($conf['linkWrap']) {
+                       $theValue = $this->linkWrap($theValue, $conf['linkWrap']);
                }
-               return $this->wrap($theValue,$conf['wrap']);
+               return $this->wrap($theValue, $conf['wrap']);
        }
 
        /**
         * Rendering the cObject, IMAGE
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=353&cHash=440681ea56
         * @see cImage()
         */
-       function IMAGE($conf)   {
-               $content='';
-               if ($this->checkIf($conf['if.']))       {
-                       $theValue = $this->cImage($conf['file'],$conf);
-                       if ($conf['stdWrap.'])  {
-                               $theValue = $this->stdWrap($theValue,$conf['stdWrap.']);
+       function IMAGE($conf) {
+               $content = '';
+               if ($this->checkIf($conf['if.'])) {
+                       $theValue = $this->cImage($conf['file'], $conf);
+                       if ($conf['stdWrap.']) {
+                               $theValue = $this->stdWrap($theValue, $conf['stdWrap.']);
                        }
                        return $theValue;
                }
@@ -862,204 +919,211 @@ class tslib_cObj {
        /**
         * Rendering the cObject, IMG_RESOURCE
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=354&cHash=46f9299706
         * @see getImgResource()
         */
-       function IMG_RESOURCE($conf)    {
-               $GLOBALS['TSFE']->lastImgResourceInfo = $this->getImgResource($conf['file'],$conf['file.']);
-               return $this->stdWrap($GLOBALS['TSFE']->lastImgResourceInfo[3],$conf['stdWrap.']);
+       function IMG_RESOURCE($conf) {
+               $GLOBALS['TSFE']->lastImgResourceInfo = $this->getImgResource($conf['file'], $conf['file.']);
+               return $this->stdWrap($GLOBALS['TSFE']->lastImgResourceInfo[3], $conf['stdWrap.']);
        }
 
        /**
         * Rendering the cObject, IMGTEXT
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=363&cHash=cf2969bce1
         */
        function IMGTEXT($conf) {
-               $content='';
-               if (is_array($conf['text.']))   {
-                       $content.= $this->stdWrap($this->cObjGet($conf['text.'],'text.'),$conf['text.']);       // this gets the surrounding content
+               $content = '';
+               if (is_array($conf['text.'])) {
+                       $content .= $this->stdWrap($this->cObjGet($conf['text.'], 'text.'), $conf['text.']); // this gets the surrounding content
                }
-               $imgList=trim($this->stdWrap($conf['imgList'],$conf['imgList.']));      // gets images
-               if ($imgList)   {
-                       $imgs = t3lib_div::trimExplode(',',$imgList);
-                       $imgStart = intval($this->stdWrap($conf['imgStart'],$conf['imgStart.']));
+               $imgList = trim($this->stdWrap($conf['imgList'], $conf['imgList.'])); // gets images
+               if ($imgList) {
+                       $imgs = t3lib_div::trimExplode(',', $imgList);
+                       $imgStart = intval($this->stdWrap($conf['imgStart'], $conf['imgStart.']));
 
-                       $imgCount= count($imgs)-$imgStart;
+                       $imgCount = count($imgs) - $imgStart;
 
-                       $imgMax = intval($this->stdWrap($conf['imgMax'],$conf['imgMax.']));
-                       if ($imgMax)    {
-                               $imgCount = t3lib_div::intInRange($imgCount,0,$imgMax); // reduces the number of images.
+                       $imgMax = intval($this->stdWrap($conf['imgMax'], $conf['imgMax.']));
+                       if ($imgMax) {
+                               $imgCount = t3lib_div::intInRange($imgCount, 0, $imgMax); // reduces the number of images.
                        }
 
-                       $imgPath = $this->stdWrap($conf['imgPath'],$conf['imgPath.']);
+                       $imgPath = $this->stdWrap($conf['imgPath'], $conf['imgPath.']);
 
                                // initialisation
-                       $caption='';
+                       $caption = '';
                        $captionArray = array();
-                       if (!$conf['captionSplit'] && !$conf['imageTextSplit'] && is_array($conf['caption.']))  {
-                               $caption = $this->stdWrap($this->cObjGet($conf['caption.'], 'caption.'),$conf['caption.']);     // global caption, no splitting
+                       if (!$conf['captionSplit'] && !$conf['imageTextSplit'] && is_array($conf['caption.'])) {
+                               $caption = $this->stdWrap($this->cObjGet($conf['caption.'], 'caption.'), $conf['caption.']); // global caption, no splitting
                        }
-                       if ($conf['captionSplit'] && $conf['captionSplit.']['cObject']) {
+                       if ($conf['captionSplit'] && $conf['captionSplit.']['cObject']) {
                                $legacyCaptionSplit = 1;
                                $capSplit = $this->stdWrap($conf['captionSplit.']['token'], $conf['captionSplit.']['token.']);
-                               if (!$capSplit) {$capSplit=chr(10);}
-                               $captionArray = explode($capSplit, $this->cObjGetSingle($conf['captionSplit.']['cObject'], $conf['captionSplit.']['cObject.'], 'captionSplit.cObject'));
+                               if (!$capSplit) {
+                                       $capSplit = LF;
+                               }
+                               $captionArray = explode($capSplit, $this->cObjGetSingle(
+                                       $conf['captionSplit.']['cObject'],
+                                               $conf['captionSplit.']['cObject.'],
+                                               'captionSplit.cObject')
+                                       );
                                foreach ($captionArray as $ca_key => $ca_val) {
                                        $captionArray[$ca_key] = $this->stdWrap(trim($captionArray[$ca_key]), $conf['captionSplit.']['stdWrap.']);
                                }
                        }
 
-                       $tablecode='';
-                       $position=$this->stdWrap($conf['textPos'],$conf['textPos.']);
+                       $tablecode = '';
+                       $position = $this->stdWrap($conf['textPos'], $conf['textPos.']);
 
-                       $tmppos = $position&7;
-                       $contentPosition = $position&24;
+                       $tmppos = $position & 7;
+                       $contentPosition = $position & 24;
                        $align = $this->align[$tmppos];
-                       $cap = ($caption)?1:0;
-                       $txtMarg = intval($this->stdWrap($conf['textMargin'],$conf['textMargin.']));
-                       if (!$conf['textMargin_outOfText'] && $contentPosition<16)      {
-                               $txtMarg=0;
+                       $cap = ($caption) ? 1 : 0;
+                       $txtMarg = intval($this->stdWrap($conf['textMargin'], $conf['textMargin.']));
+                       if (!$conf['textMargin_outOfText'] && $contentPosition < 16) {
+                               $txtMarg = 0;
                        }
 
-                       $cols = intval($this->stdWrap($conf['cols'],$conf['cols.']));
-                       $rows = intval($this->stdWrap($conf['rows'],$conf['rows.']));
-                       $colspacing = intval($this->stdWrap($conf['colSpace'],$conf['colSpace.']));
-                       $rowspacing = intval($this->stdWrap($conf['rowSpace'],$conf['rowSpace.']));
+                       $cols = intval($this->stdWrap($conf['cols'], $conf['cols.']));
+                       $rows = intval($this->stdWrap($conf['rows'], $conf['rows.']));
+                       $colspacing = intval($this->stdWrap($conf['colSpace'], $conf['colSpace.']));
+                       $rowspacing = intval($this->stdWrap($conf['rowSpace'], $conf['rowSpace.']));
 
-                       $border = intval($this->stdWrap($conf['border'],$conf['border.'])) ? 1:0;
-                       $borderColor = $this->stdWrap($conf['borderCol'],$conf['borderCol.']);
-                       $borderThickness = intval($this->stdWrap($conf['borderThick'],$conf['borderThick.']));
+                       $border = intval($this->stdWrap($conf['border'], $conf['border.'])) ? 1 : 0;
+                       $borderColor = $this->stdWrap($conf['borderCol'], $conf['borderCol.']);
+                       $borderThickness = intval($this->stdWrap($conf['borderThick'], $conf['borderThick.']));
 
-                       $borderColor=$borderColor?$borderColor:'black';
-                       $borderThickness=$borderThickness?$borderThickness:1;
+                       $borderColor = $borderColor ? $borderColor : 'black';
+                       $borderThickness = $borderThickness ? $borderThickness : 1;
 
-                       $caption_align = $this->stdWrap($conf['captionAlign'],$conf['captionAlign.']);
+                       $caption_align = $this->stdWrap($conf['captionAlign'], $conf['captionAlign.']);
                        if (!$caption_align) {
                                $caption_align = $align;
                        }
                                // generate cols
                        $colCount = ($cols > 1) ? $cols : 1;
-                       if ($colCount > $imgCount)      {$colCount = $imgCount;}
+                       if ($colCount > $imgCount) {
+                               $colCount = $imgCount;
+                       }
                        $rowCount = ($colCount > 1) ? ceil($imgCount / $colCount) : $imgCount;
                                // generate rows
-                       if ($rows>1)  {
+                       if ($rows > 1) {
                                $rowCount = $rows;
-                               if ($rowCount > $imgCount)      {$rowCount = $imgCount;}
-                               $colCount = ($rowCount>1) ? ceil($imgCount / $rowCount) : $imgCount;
+                               if ($rowCount > $imgCount) {
+                                       $rowCount = $imgCount;
+                               }
+                               $colCount = ($rowCount > 1) ? ceil($imgCount / $rowCount) : $imgCount;
                        }
 
                                // max Width
-                       $colRelations = trim($this->stdWrap($conf['colRelations'],$conf['colRelations.']));
-                       $maxW = intval($this->stdWrap($conf['maxW'],$conf['maxW.']));
+                       $colRelations = trim($this->stdWrap($conf['colRelations'], $conf['colRelations.']));
+                       $maxW = intval($this->stdWrap($conf['maxW'], $conf['maxW.']));
 
-                       $maxWInText = intval($this->stdWrap($conf['maxWInText'],$conf['maxWInText.']));
-                       if (!$maxWInText)       {       // If maxWInText is not set, it's calculated to the 50 % of the max...
-                               $maxWInText = round($maxW/2);
+                       $maxWInText = intval($this->stdWrap($conf['maxWInText'], $conf['maxWInText.']));
+                       if (!$maxWInText) { // If maxWInText is not set, it's calculated to the 50 % of the max...
+                               $maxWInText = round($maxW / 2);
                        }
 
-                       if ($maxWInText && $contentPosition>=16)        {       // inText
+                       if ($maxWInText && $contentPosition >= 16) { // inText
                                $maxW = $maxWInText;
                        }
 
-                       if ($maxW && $colCount > 0) {   // If there is a max width and if colCount is greater than  column
-/*                             debug($border*$borderThickness*2);
-                               debug($maxW);
-                               debug($colspacing);
-                               debug(($maxW-$colspacing*($colCount-1)-$colCount*$border*$borderThickness*2));
-                               */
-                               $maxW = ceil(($maxW-$colspacing*($colCount-1)-$colCount*$border*$borderThickness*2)/$colCount);
+                       if ($maxW && $colCount > 0) { // If there is a max width and if colCount is greater than  column
+                               $maxW = ceil(($maxW - $colspacing * ($colCount - 1) - $colCount * $border * $borderThickness * 2) / $colCount);
                        }
                                // create the relation between rows
-                       $colMaxW = Array();
-                       if ($colRelations)      {
-                               $rel_parts = explode(':',$colRelations);
+                       $colMaxW = array();
+                       if ($colRelations) {
+                               $rel_parts = explode(':', $colRelations);
                                $rel_total = 0;
-                               for ($a=0;$a<$colCount;$a++)    {
+                               for ($a = 0; $a < $colCount; $a++) {
                                        $rel_parts[$a] = intval($rel_parts[$a]);
-                                       $rel_total+= $rel_parts[$a];
+                                       $rel_total += $rel_parts[$a];
                                }
-                               if ($rel_total) {
-                                       for ($a=0;$a<$colCount;$a++)    {
-                                               $colMaxW[$a] = round(($maxW*$colCount)/$rel_total*$rel_parts[$a]);
+                               if ($rel_total) {
+                                       for ($a = 0; $a < $colCount; $a++) {
+                                               $colMaxW[$a] = round(($maxW * $colCount) / $rel_total * $rel_parts[$a]);
                                        }
-                                       if (min($colMaxW)<=0 || max($rel_parts)/min($rel_parts)>10)     {               // The difference in size between the largest and smalles must be within a factor of ten.
-                                               $colMaxW = Array();
+                                       if (min($colMaxW) <= 0 || max($rel_parts) / min($rel_parts) > 10) { // The difference in size between the largest and smalles must be within a factor of ten.
+                                               $colMaxW = array();
                                        }
                                }
                        }
-                       $image_compression = intval($this->stdWrap($conf['image_compression'],$conf['image_compression.']));
-                       $image_effects = intval($this->stdWrap($conf['image_effects'],$conf['image_effects.']));
-                       $image_frames = intval($this->stdWrap($conf['image_frames.']['key'],$conf['image_frames.']['key.']));
+                       $image_compression = intval($this->stdWrap($conf['image_compression'], $conf['image_compression.']));
+                       $image_effects = intval($this->stdWrap($conf['image_effects'], $conf['image_effects.']));
+                       $image_frames = intval($this->stdWrap($conf['image_frames.']['key'], $conf['image_frames.']['key.']));
 
                                // fetches pictures
-                       $splitArr=array();
-                       $splitArr['imgObjNum']=$conf['imgObjNum'];
-                       $splitArr = $GLOBALS['TSFE']->tmpl->splitConfArray($splitArr,$imgCount);
+                       $splitArr = array();
+                       $splitArr['imgObjNum'] = $conf['imgObjNum'];
+                       $splitArr = $GLOBALS['TSFE']->tmpl->splitConfArray($splitArr, $imgCount);
 
                                // EqualHeight
-                       $equalHeight = intval($this->stdWrap($conf['equalH'],$conf['equalH.']));
-                       if ($equalHeight)       {       // Initiate gifbuilder object in order to get dimensions AND calculate the imageWidth's
+                       $equalHeight = intval($this->stdWrap($conf['equalH'], $conf['equalH.']));
+                       if ($equalHeight) { // Initiate gifbuilder object in order to get dimensions AND calculate the imageWidth's
                                $gifCreator = t3lib_div::makeInstance('tslib_gifbuilder');
                                $gifCreator->init();
-                               $relations = Array();
-                               $relations_cols = Array();
-                               $totalMaxW = $maxW*$colCount;
-                               for($a=0;$a<$imgCount;$a++)     {
-                                       $imgKey = $a+$imgStart;
-                                       $imgInfo = $gifCreator->getImageDimensions($imgPath.$imgs[$imgKey]);
-                                       $relations[$a] = $imgInfo[1] / $equalHeight;    // relationship between the original height and the wished height
-                                       if ($relations[$a])     {       // if relations is zero, then the addition of this value is omitted as the image is not expected to display because of some error.
-                                               $relations_cols[floor($a/$colCount)] += $imgInfo[0]/$relations[$a];     // counts the total width of the row with the new height taken into consideration.
+                               $relations = array();
+                               $relations_cols = array();
+                               $totalMaxW = $maxW * $colCount;
+                               for ($a = 0; $a < $imgCount; $a++) {
+                                       $imgKey = $a + $imgStart;
+                                       $imgInfo = $gifCreator->getImageDimensions($imgPath . $imgs[$imgKey]);
+                                       $relations[$a] = $imgInfo[1] / $equalHeight; // relationship between the original height and the wished height
+                                       if ($relations[$a]) { // if relations is zero, then the addition of this value is omitted as the image is not expected to display because of some error.
+                                               $relations_cols[floor($a / $colCount)] += $imgInfo[0] / $relations[$a]; // counts the total width of the row with the new height taken into consideration.
                                        }
                                }
                        }
 
-                       $imageRowsFinalWidths = Array();        // contains the width of every image row
-                       $imageRowsMaxHeights = Array();
-                       $imgsTag=array();
-                       $origImages=array();
-                       for($a=0;$a<$imgCount;$a++)     {
+                       $imageRowsFinalWidths = array(); // contains the width of every image row
+                       $imageRowsMaxHeights = array();
+                       $imgsTag = array();
+                       $origImages = array();
+                       for ($a = 0; $a < $imgCount; $a++) {
                                $GLOBALS['TSFE']->register['IMAGE_NUM'] = $a;
                                $GLOBALS['TSFE']->register['IMAGE_NUM_CURRENT'] = $a;
 
-                               $imgKey = $a+$imgStart;
-                               $totalImagePath = $imgPath.$imgs[$imgKey];
+                               $imgKey = $a + $imgStart;
+                               $totalImagePath = $imgPath . $imgs[$imgKey];
                                $this->data[$this->currentValKey] = $totalImagePath;
                                $imgObjNum = intval($splitArr[$a]['imgObjNum']);
-                               $imgConf = $conf[$imgObjNum.'.'];
+                               $imgConf = $conf[$imgObjNum . '.'];
 
-                               if ($equalHeight)       {
+                               if ($equalHeight) {
                                        $scale = 1;
-                                       if ($totalMaxW) {
-                                               $rowTotalMaxW = $relations_cols[floor($a/$colCount)];
-                                               if ($rowTotalMaxW > $totalMaxW) {
+                                       if ($totalMaxW) {
+                                               $rowTotalMaxW = $relations_cols[floor($a / $colCount)];
+                                               if ($rowTotalMaxW > $totalMaxW) {
                                                        $scale = $rowTotalMaxW / $totalMaxW;
                                                }
                                        }
                                                // transfer info to the imageObject. Please note, that
-                                       $imgConf['file.']['height'] = round($equalHeight/$scale);
-
-                                       unset($imgConf['file.']['width']);
-                                       unset($imgConf['file.']['maxW']);
-                                       unset($imgConf['file.']['maxH']);
-                                       unset($imgConf['file.']['minW']);
-                                       unset($imgConf['file.']['minH']);
-                                       unset($imgConf['file.']['width.']);
-                                       unset($imgConf['file.']['maxW.']);
-                                       unset($imgConf['file.']['maxH.']);
-                                       unset($imgConf['file.']['minW.']);
-                                       unset($imgConf['file.']['minH.']);
-                                       $maxW = 0;      // setting this to zero, so that it doesn't disturb
+                                       $imgConf['file.']['height'] = round($equalHeight / $scale);
+
+                                       unset(
+                                               $imgConf['file.']['width'],
+                                               $imgConf['file.']['maxW'],
+                                               $imgConf['file.']['maxH'],
+                                               $imgConf['file.']['minW'],
+                                               $imgConf['file.']['minH'],
+                                               $imgConf['file.']['width.'],
+                                               $imgConf['file.']['maxW.'],
+                                               $imgConf['file.']['maxH.'],
+                                               $imgConf['file.']['minW.'],
+                                               $imgConf['file.']['minH.']
+                                       );
+                                       $maxW = 0; // setting this to zero, so that it doesn't disturb
                                }
 
                                if ($maxW) {
-                                       if (count($colMaxW))    {
-                                               $imgConf['file.']['maxW'] = $colMaxW[($a%$colCount)];
+                                       if (count($colMaxW)) {
+                                               $imgConf['file.']['maxW'] = $colMaxW[($a % $colCount)];
                                        } else {
                                                $imgConf['file.']['maxW'] = $maxW;
                                        }
@@ -1067,23 +1131,23 @@ class tslib_cObj {
 
                                        // Image Object supplied:
                                if (is_array($imgConf)) {
-                                       if ($this->image_effects[$image_effects])       {
-                                               $imgConf['file.']['params'].= ' '.$this->image_effects[$image_effects];
+                                       if ($this->image_effects[$image_effects]) {
+                                               $imgConf['file.']['params'] .= ' ' . $this->image_effects[$image_effects];
                                        }
-                                       if ($image_frames)      {
-                                               if (is_array($conf['image_frames.'][$image_frames.'.']))        {
-                                                       $imgConf['file.']['m.'] = $conf['image_frames.'][$image_frames.'.'];
+                                       if ($image_frames) {
+                                               if (is_array($conf['image_frames.'][$image_frames . '.'])) {
+                                                       $imgConf['file.']['m.'] = $conf['image_frames.'][$image_frames . '.'];
                                                }
                                        }
-                                       if ($image_compression && $imgConf['file']!='GIFBUILDER')       {
-                                               if ($image_compression==1)      {
+                                       if ($image_compression && $imgConf['file'] != 'GIFBUILDER') {
+                                               if ($image_compression == 1) {
                                                        $tempImport = $imgConf['file.']['import'];
                                                        $tempImport_dot = $imgConf['file.']['import.'];
                                                        unset($imgConf['file.']);
                                                        $imgConf['file.']['import'] = $tempImport;
                                                        $imgConf['file.']['import.'] = $tempImport_dot;
                                                } elseif (isset($this->image_compression[$image_compression])) {
-                                                       $imgConf['file.']['params'].= ' '.$this->image_compression[$image_compression]['params'];
+                                                       $imgConf['file.']['params'] .= ' ' . $this->image_compression[$image_compression]['params'];
                                                        $imgConf['file.']['ext'] = $this->image_compression[$image_compression]['ext'];
                                                        unset($imgConf['file.']['ext.']);
                                                }
@@ -1114,178 +1178,207 @@ class tslib_cObj {
                                $imgsTag[$imgKey] = $this->IMAGE($imgConf);
 
                                        // Store the original filepath
-                               $origImages[$imgKey]=$GLOBALS['TSFE']->lastImageInfo;
+                               $origImages[$imgKey] = $GLOBALS['TSFE']->lastImageInfo;
 
-                               $imageRowsFinalWidths[floor($a/$colCount)] += $GLOBALS['TSFE']->lastImageInfo[0];
-                               if ($GLOBALS['TSFE']->lastImageInfo[1]>$imageRowsMaxHeights[floor($a/$colCount)])       {
-                                       $imageRowsMaxHeights[floor($a/$colCount)] = $GLOBALS['TSFE']->lastImageInfo[1];
+                               $imageRowsFinalWidths[floor($a / $colCount)] += $GLOBALS['TSFE']->lastImageInfo[0];
+                               if ($GLOBALS['TSFE']->lastImageInfo[1] > $imageRowsMaxHeights[floor($a / $colCount)]) {
+                                       $imageRowsMaxHeights[floor($a / $colCount)] = $GLOBALS['TSFE']->lastImageInfo[1];
                                }
                        }
                                // calculating the tableWidth:
                                // TableWidth problems: It creates problems if the pictures are NOT as wide as the tableWidth.
-                       $tableWidth = max($imageRowsFinalWidths)+ $colspacing*($colCount-1) + $colCount*$border*$borderThickness*2;
+                       $tableWidth = max($imageRowsFinalWidths) + $colspacing * ($colCount - 1) + $colCount * $border * $borderThickness * 2;
 
                                // make table for pictures
-                       $index=$imgStart;
+                       $index = $imgIndex = $imgStart;
 
-                       $noRows = $this->stdWrap($conf['noRows'],$conf['noRows.']);
-                       $noCols = $this->stdWrap($conf['noCols'],$conf['noCols.']);
-                       if ($noRows) {$noCols=0;}       // noRows overrides noCols. They cannot exist at the same time.
+                       $noRows = $this->stdWrap($conf['noRows'], $conf['noRows.']);
+                       $noCols = $this->stdWrap($conf['noCols'], $conf['noCols.']);
+                       if ($noRows) {
+                               $noCols = 0;
+                       } // noRows overrides noCols. They cannot exist at the same time.
                        if ($equalHeight) {
-                               $noCols=1;
-                               $noRows=0;
+                               $noCols = 1;
+                               $noRows = 0;
                        }
 
-                       $rowCount_temp=1;
-                       $colCount_temp=$colCount;
-                       if ($noRows)    {
+                       $rowCount_temp = 1;
+                       $colCount_temp = $colCount;
+                       if ($noRows) {
                                $rowCount_temp = $rowCount;
-                               $rowCount=1;
+                               $rowCount = 1;
                        }
-                       if ($noCols)    {
-                               $colCount=1;
+                       if ($noCols) {
+                               $colCount = 1;
                        }
                                // col- and rowspans calculated
-                       $colspan = (($colspacing) ? $colCount*2-1 : $colCount);
-                       $rowspan = (($rowspacing) ? $rowCount*2-1 : $rowCount) + $cap;
+                       $colspan = (($colspacing) ? $colCount * 2 - 1 : $colCount);
+                       $rowspan = (($rowspacing) ? $rowCount * 2 - 1 : $rowCount) + $cap;
 
 
                                // Edit icons:
-                       $editIconsHTML = $conf['editIcons']&&$GLOBALS['TSFE']->beUserLogin ? $this->editIcons('',$conf['editIcons'],$conf['editIcons.']) : '';
+                       $editIconsHTML = $conf['editIcons'] && $GLOBALS['TSFE']->beUserLogin
+                               ? $this->editIcons('', $conf['editIcons'], $conf['editIcons.'])
+                               : '';
 
                                // strech out table:
-                       $tablecode='';
-                       $flag=0;
-                       if ($conf['noStretchAndMarginCells']!=1)        {
-                               $tablecode.='<tr>';
-                               if ($txtMarg && $align=='right')        {       // If right aligned, the textborder is added on the right side
-                                       $tablecode.='<td rowspan="'.($rowspan+1).'" valign="top"><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$txtMarg.'" height="1" alt="" title="" />'.($editIconsHTML?'<br />'.$editIconsHTML:'').'</td>';
-                                       $editIconsHTML='';
-                                       $flag=1;
-                               }
-                               $tablecode.='<td colspan="'.$colspan.'"><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$tableWidth.'" height="1" alt="" /></td>';
-                               if ($txtMarg && $align=='left') {       // If left aligned, the textborder is added on the left side
-                                       $tablecode.='<td rowspan="'.($rowspan+1).'" valign="top"><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$txtMarg.'" height="1" alt="" title="" />'.($editIconsHTML?'<br />'.$editIconsHTML:'').'</td>';
-                                       $editIconsHTML='';
-                                       $flag=1;
-                               }
-                               if ($flag) $tableWidth+=$txtMarg+1;
-       //                      $tableWidth=0;
-                               $tablecode.='</tr>';
+                       $tablecode = '';
+                       $flag = 0;
+                       if ($conf['noStretchAndMarginCells'] != 1) {
+                               $tablecode .= '<tr>';
+                               if ($txtMarg && $align == 'right') { // If right aligned, the textborder is added on the right side
+                                       $tablecode .= '<td rowspan="' . ($rowspan + 1) . '" valign="top"><img src="' .
+                                               $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $txtMarg . '" height="1" alt="" title="" />' .
+                                               ($editIconsHTML ? '<br />' . $editIconsHTML : '') . '</td>';
+                                       $editIconsHTML = '';
+                                       $flag = 1;
+                               }
+                               $tablecode .= '<td colspan="' . $colspan . '"><img src="' .
+                                       $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $tableWidth . '" height="1" alt="" /></td>';
+                               if ($txtMarg && $align == 'left') { // If left aligned, the textborder is added on the left side
+                                       $tablecode .= '<td rowspan="' . ($rowspan + 1) . '" valign="top"><img src="' .
+                                               $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $txtMarg . '" height="1" alt="" title="" />' .
+                                               ($editIconsHTML ? '<br />' . $editIconsHTML : '') . '</td>';
+                                       $editIconsHTML = '';
+                                       $flag = 1;
+                               }
+                               if ($flag) {
+                                       $tableWidth += $txtMarg + 1;
+                               }
+                               $tablecode .= '</tr>';
                        }
 
                                // draw table
-                       for ($c=0;$c<$rowCount;$c++) {  // Looping through rows. If 'noRows' is set, this is '1 time', but $rowCount_temp will hold the actual number of rows!
-                               if ($c && $rowspacing)  {               // If this is NOT the first time in the loop AND if space is required, a row-spacer is added. In case of "noRows" rowspacing is done further down.
-                                       $tablecode.='<tr><td colspan="'.$colspan.'"><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="1" height="'.$rowspacing.'"'.$this->getBorderAttr(' border="0"').' alt="" title="" /></td></tr>';
-                               }
-                               $tablecode.='<tr>';     // starting row
-                               for ($b=0; $b<$colCount_temp; $b++)     {       // Looping through the columns
-                                       if ($b && $colspacing)  {               // If this is NOT the first iteration AND if column space is required. In case of "noCols", the space is done without a separate cell.
-                                               if (!$noCols)   {
-                                                       $tablecode.='<td><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$colspacing.'" height="1"'.$this->getBorderAttr(' border="0"').' alt="" title="" /></td>';
+                       for ($c = 0; $c < $rowCount; $c++) { // Looping through rows. If 'noRows' is set, this is '1 time', but $rowCount_temp will hold the actual number of rows!
+                               if ($c && $rowspacing) { // If this is NOT the first time in the loop AND if space is required, a row-spacer is added. In case of "noRows" rowspacing is done further down.
+                                       $tablecode .= '<tr><td colspan="' . $colspan . '"><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $rowspacing . '"' . $this->getBorderAttr(' border="0"') . ' alt="" title="" /></td></tr>';
+                               }
+                               $tablecode .= '<tr>'; // starting row
+                               for ($b = 0; $b < $colCount_temp; $b++) { // Looping through the columns
+                                       if ($b && $colspacing) { // If this is NOT the first iteration AND if column space is required. In case of "noCols", the space is done without a separate cell.
+                                               if (!$noCols) {
+                                                       $tablecode .= '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' .
+                                                               $colspacing . '" height="1"' . $this->getBorderAttr(' border="0"') . ' alt="" title="" /></td>';
                                                } else {
-                                                       $colSpacer='<img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.($border?$colspacing-6:$colspacing).'" height="'.($imageRowsMaxHeights[$c]+($border?$borderThickness*2:0)).'"'.$this->getBorderAttr(' border="0"').' align="'.($border?'left':'top').'" alt="" title="" />';
-                                                       $colSpacer='<td valign="top">'.$colSpacer.'</td>';      // added 160301, needed for the new "noCols"-table...
-                                                       $tablecode.=$colSpacer;
+                                                       $colSpacer = '<img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' .
+                                                               ($border ? $colspacing - 6 : $colspacing) . '" height="' .
+                                                               ($imageRowsMaxHeights[$c] + ($border ? $borderThickness * 2 : 0)) . '"' .
+                                                               $this->getBorderAttr(' border="0"') . ' align="' .
+                                                               ($border ? 'left' : 'top') . '" alt="" title="" />';
+                                                       $colSpacer = '<td valign="top">' . $colSpacer . '</td>'; // added 160301, needed for the new "noCols"-table...
+                                                       $tablecode .= $colSpacer;
                                                }
                                        }
-                                       if (!$noCols || ($noCols && !$b))       {
-                                               $tablecode.='<td valign="top">';        // starting the cell. If "noCols" this cell will hold all images in the row, otherwise only a single image.
-                                               if ($noCols)    {$tablecode.='<table width="'.$imageRowsFinalWidths[$c].'" border="0" cellpadding="0" cellspacing="0"><tr>';}           // In case of "noCols" we must set the table-tag that surrounds the images in the row.
+                                       if (!$noCols || ($noCols && !$b)) {
+                                               $tablecode .= '<td valign="top">'; // starting the cell. If "noCols" this cell will hold all images in the row, otherwise only a single image.
+                                               if ($noCols) {
+                                                       $tablecode .= '<table width="' . $imageRowsFinalWidths[$c] . '" border="0" cellpadding="0" cellspacing="0"><tr>';
+                                               } // In case of "noCols" we must set the table-tag that surrounds the images in the row.
                                        }
-                                       for ($a=0;$a<$rowCount_temp;$a++)       {       // Looping through the rows IF "noRows" is set. "noRows"  means that the rows of images is not rendered by physical table rows but images are all in one column and spaced apart with clear-gifs. This loop is only one time if "noRows" is not set.
-                                               $GLOBALS['TSFE']->register['IMAGE_NUM'] = $imgIndex;    // register previous imgIndex
-                                               $imgIndex = $index+$a*$colCount_temp;
+                                       for ($a = 0; $a < $rowCount_temp; $a++) { // Looping through the rows IF "noRows" is set. "noRows"  means that the rows of images is not rendered by physical table rows but images are all in one column and spaced apart with clear-gifs. This loop is only one time if "noRows" is not set.
+                                               $GLOBALS['TSFE']->register['IMAGE_NUM'] = $imgIndex; // register previous imgIndex
+                                               $imgIndex = $index + $a * $colCount_temp;
                                                $GLOBALS['TSFE']->register['IMAGE_NUM_CURRENT'] = $imgIndex;
-                                               if ($imgsTag[$imgIndex])        {
-                                                       if ($rowspacing && $noRows && $a) {             // Puts distance between the images IF "noRows" is set and this is the first iteration of the loop
-                                                               $tablecode.= '<img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="1" height="'.$rowspacing.'" alt="" title="" /><br />';
+                                               if ($imgsTag[$imgIndex]) {
+                                                       if ($rowspacing && $noRows && $a) { // Puts distance between the images IF "noRows" is set and this is the first iteration of the loop
+                                                               $tablecode .= '<img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' .
+                                                                       $rowspacing . '" alt="" title="" /><br />';
                                                        }
-                                                       if ($legacyCaptionSplit)        {
+                                                       if ($legacyCaptionSplit) {
                                                                $thisCaption = $captionArray[$imgIndex];
-                                                       } else if ($conf['captionSplit'] || $conf['imageTextSplit'])    {
+                                                       } else if ($conf['captionSplit'] || $conf['imageTextSplit']) {
                                                                $thisCaption = $this->stdWrap($this->cObjGet($conf['caption.'], 'caption.'), $conf['caption.']);
                                                        }
-                                                       $imageHTML = $imgsTag[$imgIndex].'<br />';
-                                                       $Talign = (!trim($thisCaption) && !$noRows) ? ' align="left"' : '';  // this is necessary if the tablerows are supposed to space properly together! "noRows" is excluded because else the images "layer" together.
-                                                       if ($border)    {$imageHTML='<table border="0" cellpadding="'.$borderThickness.'" cellspacing="0" bgcolor="'.$borderColor.'"'.$Talign.'><tr><td>'.$imageHTML.'</td></tr></table>';}
-                                                       $imageHTML.=$editIconsHTML;
-                                                       $editIconsHTML='';
-                                                       $imageHTML.=$thisCaption;       // Adds caption.
-                                                       if ($noCols)    {$imageHTML='<td valign="top">'.$imageHTML.'</td>';}            // If noCols, put in table cell.
-                                                       $tablecode.=$imageHTML;
+                                                       $imageHTML = $imgsTag[$imgIndex] . '<br />';
+                                                       $Talign = (!trim($thisCaption) && !$noRows) ? ' align="left"' : ''; // this is necessary if the tablerows are supposed to space properly together! "noRows" is excluded because else the images "layer" together.
+                                                       if ($border) {
+                                                               $imageHTML = '<table border="0" cellpadding="' . $borderThickness . '" cellspacing="0" bgcolor="' .
+                                                                       $borderColor . '"' . $Talign . '><tr><td>' . $imageHTML . '</td></tr></table>';
+                                                       }
+                                                       $imageHTML .= $editIconsHTML;
+                                                       $editIconsHTML = '';
+                                                       $imageHTML .= $thisCaption; // Adds caption.
+                                                       if ($noCols) {
+                                                               $imageHTML = '<td valign="top">' . $imageHTML . '</td>';
+                                                       } // If noCols, put in table cell.
+                                                       $tablecode .= $imageHTML;
                                                }
                                        }
                                        $index++;
-                                       if (!$noCols || ($noCols && $b+1==$colCount_temp))      {
-                                               if ($noCols)    {$tablecode.='</tr></table>';}  // In case of "noCols" we must finish the table that surrounds the images in the row.
-                                               $tablecode.='</td>';    // Ending the cell. In case of "noCols" the cell holds all pictures!
+                                       if (!$noCols || ($noCols && $b + 1 == $colCount_temp)) {
+                                               if ($noCols) {
+                                                       $tablecode .= '</tr></table>';
+                                               } // In case of "noCols" we must finish the table that surrounds the images in the row.
+                                               $tablecode .= '</td>'; // Ending the cell. In case of "noCols" the cell holds all pictures!
                                        }
                                }
-                               $tablecode.='</tr>';    // ending row
+                               $tablecode .= '</tr>'; // ending row
                        }
-                       if ($c) {
-                               switch ($contentPosition)       {
-                                       case '0':       // above
-                                       case '8':       // below
-                                               switch ($align)        {        // These settings are needed for Firefox
-                                                       case 'center':
+                       if ($c) {
+                               switch ($contentPosition) {
+                                       case '0' : // above
+                                       case '8' : // below
+                                               switch ($align) { // These settings are needed for Firefox
+                                                       case 'center' :
                                                                $table_align = 'margin-left: auto; margin-right: auto';
                                                        break;
-                                                       case 'right':
+                                                       case 'right' :
                                                                $table_align = 'margin-left: auto; margin-right: 0px';
                                                        break;
-                                                       default:        // Most of all: left
+                                                       default : // Most of all: left
                                                                $table_align = 'margin-left: 0px; margin-right: auto';
                                                }
-                                               $table_align = 'style="'.$table_align.'"';
+                                               $table_align = 'style="' . $table_align . '"';
                                        break;
-                                       case '16':      // in text
-                                               $table_align = 'align="'.$align.'"';
+                                       case '16' : // in text
+                                               $table_align = 'align="' . $align . '"';
                                        break;
-                                       default:
+                                       default :
                                                $table_align = '';
                                }
 
                                        // Table-tag is inserted
-                               $tablecode = '<table'.($tableWidth?' width="'.$tableWidth.'"':'').' border="0" cellspacing="0" cellpadding="0" '.$table_align.' class="imgtext-table">'.$tablecode;
-                               if ($editIconsHTML)     {       // IF this value is not long since reset.
-                                       $tablecode.='<tr><td colspan="'.$colspan.'">'.$editIconsHTML.'</td></tr>';
-                                       $editIconsHTML='';
+                               $tablecode = '<table' . ($tableWidth ? ' width="' . $tableWidth . '"' : '') . ' border="0" cellspacing="0" cellpadding="0" ' . $table_align . ' class="imgtext-table">' . $tablecode;
+                               if ($editIconsHTML) { // IF this value is not long since reset.
+                                       $tablecode .= '<tr><td colspan="' . $colspan . '">' . $editIconsHTML . '</td></tr>';
+                                       $editIconsHTML = '';
+                               }
+                               if ($cap) {
+                                       $tablecode .= '<tr><td colspan="' . $colspan . '" align="' . $caption_align . '">' . $caption . '</td></tr>';
                                }
-                               if ($cap)       {
-                                       $tablecode.='<tr><td colspan="'.$colspan.'" align="'.$caption_align.'">'.$caption.'</td></tr>';
+                               $tablecode .= '</table>';
+                               if ($conf['tableStdWrap.']) {
+                                       $tablecode = $this->stdWrap($tablecode, $conf['tableStdWrap.']);
                                }
-                               $tablecode.='</table>';
-                               if ($conf['tableStdWrap.'])     {$tablecode=$this->stdWrap($tablecode,$conf['tableStdWrap.']);}
                        }
 
-                       $spaceBelowAbove = intval($this->stdWrap($conf['spaceBelowAbove'],$conf['spaceBelowAbove.']));
-                       switch ($contentPosition)       {
-                               case '0':       // above
-                                       $output= '<div style="text-align:'.$align.';">'.$tablecode.'</div>'.$this->wrapSpace($content, $spaceBelowAbove.'|0');
+                       $spaceBelowAbove = intval($this->stdWrap($conf['spaceBelowAbove'], $conf['spaceBelowAbove.']));
+                       switch ($contentPosition) {
+                               case '0' : // above
+                                       $output = '<div style="text-align:' . $align . ';">' . $tablecode . '</div>' .
+                                               $this->wrapSpace($content, $spaceBelowAbove . '|0');
                                break;
-                               case '8':       // below
-                                       $output= $this->wrapSpace($content, '0|'.$spaceBelowAbove).'<div style="text-align:'.$align.';">'.$tablecode.'</div>';
+                               case '8' : // below
+                                       $output = $this->wrapSpace($content, '0|' . $spaceBelowAbove) .
+                                               '<div style="text-align:' . $align . ';">' . $tablecode . '</div>';
                                break;
-                               case '16':      // in text
-                                       $output= $tablecode.$content;
+                               case '16' : // in text
+                                       $output = $tablecode . $content;
                                break;
-                               case '24':      // in text, no wrap
+                               case '24' : // in text, no wrap
                                        $theResult = '';
-                                       $theResult.= '<table border="0" cellspacing="0" cellpadding="0" class="imgtext-nowrap"><tr>';
-                                       if ($align=='right')    {
-                                               $theResult.= '<td valign="top">'.$content.'</td><td valign="top">'.$tablecode.'</td>';
+                                       $theResult .= '<table border="0" cellspacing="0" cellpadding="0" class="imgtext-nowrap"><tr>';
+                                       if ($align == 'right') {
+                                               $theResult .= '<td valign="top">' . $content . '</td><td valign="top">' . $tablecode . '</td>';
                                        } else {
-                                               $theResult.= '<td valign="top">'.$tablecode.'</td><td valign="top">'.$content.'</td>';
+                                               $theResult .= '<td valign="top">' . $tablecode . '</td><td valign="top">' . $content . '</td>';
                                        }
-                                       $theResult.= '</tr></table>';
-                                       $output= $theResult;
+                                       $theResult .= '</tr></table>';
+                                       $output = $theResult;
                                break;
                        }
                } else {
-                       $output= $content;
+                       $output = $content;
                }
 
                if ($conf['stdWrap.']) {
@@ -1298,59 +1391,59 @@ class tslib_cObj {
        /**
         * Rendering the cObject, CONTENT
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=356&cHash=9f3b5c6ba2
         */
-       function CONTENT($conf) {
-               $theValue='';
+       function CONTENT($conf) {
+               $theValue = '';
 
                $originalRec = $GLOBALS['TSFE']->currentRecord;
-               if ($originalRec)       {               // If the currentRecord is set, we register, that this record has invoked this function. It's should not be allowed to do this again then!!
+               if ($originalRec) { // If the currentRecord is set, we register, that this record has invoked this function. It's should not be allowed to do this again then!!
                        $GLOBALS['TSFE']->recordRegister[$originalRec]++;
                }
 
                $conf['table'] = trim($this->stdWrap($conf['table'], $conf['table.']));
-               if ($conf['table']=='pages' || substr($conf['table'],0,3)=='tt_' || substr($conf['table'],0,3)=='fe_' || substr($conf['table'],0,3)=='tx_' || substr($conf['table'],0,4)=='ttx_' || substr($conf['table'],0,5)=='user_' || substr($conf['table'],0,7)=='static_')       {
+               if ($conf['table'] == 'pages' || substr($conf['table'], 0, 3) == 'tt_' || substr($conf['table'], 0, 3) == 'fe_' || substr($conf['table'], 0, 3) == 'tx_' || substr($conf['table'], 0, 4) == 'ttx_' || substr($conf['table'], 0, 5) == 'user_' || substr($conf['table'], 0, 7) == 'static_') {
 
-                       $renderObjName = $conf['renderObj'] ? $conf['renderObj'] : '<'.$conf['table'];
+                       $renderObjName = $conf['renderObj'] ? $conf['renderObj'] : '<' . $conf['table'];
                        $renderObjKey = $conf['renderObj'] ? 'renderObj' : '';
                        $renderObjConf = $conf['renderObj.'];
 
-                       $slide = intval($conf['slide'])?intval($conf['slide']):0;
-                       $slideCollect = intval($conf['slide.']['collect'])?intval($conf['slide.']['collect']):0;
-                       $slideCollectReverse = intval($conf['slide.']['collectReverse'])?true:false;
-                       $slideCollectFuzzy = $slideCollect?(intval($conf['slide.']['collectFuzzy'])?true:false):true;
-                       $again = false;
+                       $slide = intval($conf['slide']) ? intval($conf['slide']) : 0;
+                       $slideCollect = intval($conf['slide.']['collect']) ? intval($conf['slide.']['collect']) : 0;
+                       $slideCollectReverse = intval($conf['slide.']['collectReverse']) ? TRUE : FALSE;
+                       $slideCollectFuzzy = $slideCollect ? (intval($conf['slide.']['collectFuzzy']) ? TRUE : FALSE) : TRUE;
+                       $again = FALSE;
 
                        do {
-                               $res = $this->exec_getQuery($conf['table'],$conf['select.']);
+                               $res = $this->exec_getQuery($conf['table'], $conf['select.']);
                                if ($error = $GLOBALS['TYPO3_DB']->sql_error()) {
-                                       $GLOBALS['TT']->setTSlogMessage($error,3);
+                                       $GLOBALS['TT']->setTSlogMessage($error, 3);
                                } else {
                                        $this->currentRecordTotal = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
-                                       $GLOBALS['TT']->setTSlogMessage('NUMROWS: '.$GLOBALS['TYPO3_DB']->sql_num_rows($res));
-                                       $cObj =t3lib_div::makeInstance('tslib_cObj');
-                                       $cObj->setParent($this->data,$this->currentRecord);
-                                       $this->currentRecordNumber=0;
+                                       $GLOBALS['TT']->setTSlogMessage('NUMROWS: ' . $GLOBALS['TYPO3_DB']->sql_num_rows($res));
+                                       $cObj = t3lib_div::makeInstance('tslib_cObj');
+                                       $cObj->setParent($this->data, $this->currentRecord);
+                                       $this->currentRecordNumber = 0;
                                        $cobjValue = '';
                                        while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
 
                                                        // Versioning preview:
-                                               $GLOBALS['TSFE']->sys_page->versionOL($conf['table'],$row,TRUE);
+                                               $GLOBALS['TSFE']->sys_page->versionOL($conf['table'], $row, TRUE);
 
                                                        // Language overlay:
                                                if (is_array($row) && $GLOBALS['TSFE']->sys_language_contentOL) {
-                                                       $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($conf['table'],$row,$GLOBALS['TSFE']->sys_language_content,$GLOBALS['TSFE']->sys_language_contentOL);
+                                                       $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($conf['table'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL);
                                                }
 
                                                if (is_array($row)) { // Might be unset in the sys_language_contentOL
-                                                       if (!$GLOBALS['TSFE']->recordRegister[$conf['table'].':'.$row['uid']]) {
+                                                       if (!$GLOBALS['TSFE']->recordRegister[$conf['table'] . ':' . $row['uid']]) {
                                                                $this->currentRecordNumber++;
                                                                $cObj->parentRecordNumber = $this->currentRecordNumber;
-                                                               $GLOBALS['TSFE']->currentRecord = $conf['table'].':'.$row['uid'];
+                                                               $GLOBALS['TSFE']->currentRecord = $conf['table'] . ':' . $row['uid'];
                                                                $this->lastChanged($row['tstamp']);
-                                                               $cObj->start($row,$conf['table']);
+                                                               $cObj->start($row, $conf['table']);
                                                                $tmpValue = $cObj->cObjGetSingle($renderObjName, $renderObjConf, $renderObjKey);
                                                                $cobjValue .= $tmpValue;
                                                        }
@@ -1359,59 +1452,61 @@ class tslib_cObj {
                                        $GLOBALS['TYPO3_DB']->sql_free_result($res);
                                }
                                if ($slideCollectReverse) {
-                                       $theValue = $cobjValue.$theValue;
+                                       $theValue = $cobjValue . $theValue;
                                } else {
                                        $theValue .= $cobjValue;
                                }
-                               if ($slideCollect>0) {
+                               if ($slideCollect > 0) {
                                        $slideCollect--;
                                }
                                if ($slide) {
-                                       if ($slide>0) {
+                                       if ($slide > 0) {
                                                $slide--;
                                        }
                                        $conf['select.']['pidInList'] = $this->getSlidePids($conf['select.']['pidInList'], $conf['select.']['pidInList.']);
-                                       $again = strlen($conf['select.']['pidInList'])?true:false;
+                                       $again = strlen($conf['select.']['pidInList']) ? TRUE : FALSE;
                                }
-                       } while ($again&&(($slide&&!strlen($tmpValue)&&$slideCollectFuzzy)||($slide&&$slideCollect)));
+                       } while ($again && (($slide && !strlen($tmpValue) && $slideCollectFuzzy) || ($slide && $slideCollect)));
                }
 
-               $theValue = $this->wrap($theValue,$conf['wrap']);
-               if ($conf['stdWrap.']) $theValue = $this->stdWrap($theValue,$conf['stdWrap.']);
+               $theValue = $this->wrap($theValue, $conf['wrap']);
+               if ($conf['stdWrap.'])
+                       $theValue = $this->stdWrap($theValue, $conf['stdWrap.']);
 
-               $GLOBALS['TSFE']->currentRecord = $originalRec; // Restore
+               $GLOBALS['TSFE']->currentRecord = $originalRec; // Restore
                return $theValue;
        }
 
        /**
         * Rendering the cObject, RECORDS
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=357&cHash=303e959472
         */
-       function RECORDS($conf) {
-               $theValue='';
+       function RECORDS($conf) {
+               $theValue = '';
 
                $originalRec = $GLOBALS['TSFE']->currentRecord;
-               if ($originalRec)       {               // If the currentRecord is set, we register, that this record has invoked this function. It's should not be allowed to do this again then!!
+               if ($originalRec) { // If the currentRecord is set, we register, that this record has invoked this function. It's should not be allowed to do this again then!!
                        $GLOBALS['TSFE']->recordRegister[$originalRec]++;
                }
 
-               $conf['source'] = $this->stdWrap($conf['source'],$conf['source.']);
+               $conf['source'] = $this->stdWrap($conf['source'], $conf['source.']);
                if ($conf['tables'] && $conf['source']) {
                        $allowedTables = $conf['tables'];
-                       if (is_array($conf['conf.']))   {
+                       if (is_array($conf['conf.'])) {
                                foreach ($conf['conf.'] as $k => $v) {
-                                       if (substr($k,-1)!='.')         $allowedTables.=','.$k;
+                                       if (substr($k, -1) != '.')
+                                               $allowedTables .= ',' . $k;
                                }
                        }
 
                        $loadDB = t3lib_div::makeInstance('FE_loadDBGroup');
                        $loadDB->start($conf['source'], $allowedTables);
                        foreach ($loadDB->tableArray as $table => $v) {
-                               if (is_array($GLOBALS['TCA'][$table]))  {
-                                       $loadDB->additionalWhere[$table]=$this->enableFields($table);
+                               if (is_array($GLOBALS['TCA'][$table])) {
+                                       $loadDB->additionalWhere[$table] = $this->enableFields($table);
                                }
                        }
                        $loadDB->getFromDB();
@@ -1419,75 +1514,84 @@ class tslib_cObj {
                        reset($loadDB->itemArray);
                        $data = $loadDB->results;
 
-                       $cObj =t3lib_div::makeInstance('tslib_cObj');
-                       $cObj->setParent($this->data,$this->currentRecord);
-                       $this->currentRecordNumber=0;
+                       $cObj = t3lib_div::makeInstance('tslib_cObj');
+                       $cObj->setParent($this->data, $this->currentRecord);
+                       $this->currentRecordNumber = 0;
                        $this->currentRecordTotal = count($loadDB->itemArray);
                        foreach ($loadDB->itemArray as $val) {
                                $row = $data[$val['table']][$val['id']];
 
                                        // Versioning preview:
-                               $GLOBALS['TSFE']->sys_page->versionOL($val['table'],$row);
+                               $GLOBALS['TSFE']->sys_page->versionOL($val['table'], $row);
 
                                        // Language overlay:
-                               if (is_array($row) && $GLOBALS['TSFE']->sys_language_contentOL) {
-                                       $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($val['table'],$row,$GLOBALS['TSFE']->sys_language_content,$GLOBALS['TSFE']->sys_language_contentOL);
+                               if (is_array($row) && $GLOBALS['TSFE']->sys_language_contentOL) {
+                                       $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay(
+                                               $val['table'],
+                                               $row,
+                                               $GLOBALS['TSFE']->sys_language_content,
+                                               $GLOBALS['TSFE']->sys_language_contentOL
+                                       );
                                }
 
-                               if (is_array($row))     {       // Might be unset in the content overlay things...
-                                       if (!$conf['dontCheckPid'])     {
+                               if (is_array($row)) { // Might be unset in the content overlay things...
+                                       if (!$conf['dontCheckPid']) {
                                                $row = $this->checkPid($row['pid']) ? $row : '';
                                        }
-                                       if ($row && !$GLOBALS['TSFE']->recordRegister[$val['table'].':'.$val['id']])    {
-                                               $renderObjName = $conf['conf.'][$val['table']] ? $conf['conf.'][$val['table']] : '<'.$val['table'];
-                                               $renderObjKey = $conf['conf.'][$val['table']] ? 'conf.'.$val['table'] : '';
-                                               $renderObjConf = $conf['conf.'][$val['table'].'.'];
+                                       if ($row && !$GLOBALS['TSFE']->recordRegister[$val['table'] . ':' . $val['id']]) {
+                                               $renderObjName = $conf['conf.'][$val['table']] ? $conf['conf.'][$val['table']] : '<' . $val['table'];
+                                               $renderObjKey = $conf['conf.'][$val['table']] ? 'conf.' . $val['table'] : '';
+                                               $renderObjConf = $conf['conf.'][$val['table'] . '.'];
                                                $this->currentRecordNumber++;
-                                               $cObj->parentRecordNumber=$this->currentRecordNumber;
-                                               $GLOBALS['TSFE']->currentRecord = $val['table'].':'.$val['id'];
+                                               $cObj->parentRecordNumber = $this->currentRecordNumber;
+                                               $GLOBALS['TSFE']->currentRecord = $val['table'] . ':' . $val['id'];
                                                $this->lastChanged($row['tstamp']);
-                                               $cObj->start($row,$val['table']);
+                                               $cObj->start($row, $val['table']);
                                                $tmpValue = $cObj->cObjGetSingle($renderObjName, $renderObjConf, $renderObjKey);
                                                $theValue .= $tmpValue;
-                                       }# else debug($GLOBALS['TSFE']->recordRegister,'RECORDS');
+                                       }
                                }
                        }
                }
-               if ($conf['wrap'])      $theValue = $this->wrap($theValue,$conf['wrap']);
-               if ($conf['stdWrap.'])  $theValue = $this->stdWrap($theValue,$conf['stdWrap.']);
+               if ($conf['wrap'])
+                       $theValue = $this->wrap($theValue, $conf['wrap']);
+               if ($conf['stdWrap.'])
+                       $theValue = $this->stdWrap($theValue, $conf['stdWrap.']);
 
-               $GLOBALS['TSFE']->currentRecord = $originalRec; // Restore
+               $GLOBALS['TSFE']->currentRecord = $originalRec; // Restore
                return $theValue;
        }
 
        /**
         * Rendering the cObject, HMENU
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=358&cHash=5400c1c06a
         */
-       function HMENU($conf)   {
-               $content='';
-               if ($this->checkIf($conf['if.']))       {
+       function HMENU($conf) {
+               $content = '';
+               if ($this->checkIf($conf['if.'])) {
                        $cls = strtolower($conf[1]);
-                       if (t3lib_div::inList($GLOBALS['TSFE']->tmpl->menuclasses,$cls))        {
-                               if ($conf['special.']['value.'])        {
-                                       $conf['special.']['value']  = $this->stdWrap($conf['special.']['value'], $conf['special.']['value.']);
+                       if (t3lib_div::inList($GLOBALS['TSFE']->tmpl->menuclasses, $cls)) {
+                               if ($conf['special.']['value.']) {
+                                       $conf['special.']['value'] = $this->stdWrap($conf['special.']['value'], $conf['special.']['value.']);
                                }
                                $GLOBALS['TSFE']->register['count_HMENU']++;
-                               $GLOBALS['TSFE']->register['count_HMENU_MENUOBJ']=0;
-                               $GLOBALS['TSFE']->applicationData['GMENU_LAYERS']['WMid']=array();
-                               $GLOBALS['TSFE']->applicationData['GMENU_LAYERS']['WMparentId']=array();
+                               $GLOBALS['TSFE']->register['count_HMENU_MENUOBJ'] = 0;
+                               $GLOBALS['TSFE']->applicationData['GMENU_LAYERS']['WMid'] = array();
+                               $GLOBALS['TSFE']->applicationData['GMENU_LAYERS']['WMparentId'] = array();
 
-                               $menu = t3lib_div::makeInstance('tslib_'.$cls);
+                               $menu = t3lib_div::makeInstance('tslib_' . $cls);
                                $menu->parent_cObj = $this;
                                $menu->start($GLOBALS['TSFE']->tmpl, $GLOBALS['TSFE']->sys_page, '', $conf, 1);
                                $menu->makeMenu();
-                               $content.=$menu->writeMenu();
+                               $content .= $menu->writeMenu();
                        }
-                       if ($conf['wrap'])              $content=$this->wrap($content, $conf['wrap']);
-                       if ($conf['stdWrap.'])  $content = $this->stdWrap($content, $conf['stdWrap.']);
+                       if ($conf['wrap'])
+                               $content = $this->wrap($content, $conf['wrap']);
+                       if ($conf['stdWrap.'])
+                               $content = $this->stdWrap($content, $conf['stdWrap.']);
                }
                return $content;
        }
@@ -1495,129 +1599,133 @@ class tslib_cObj {
        /**
         * Rendering the cObject, CTABLE
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=359&cHash=2e0065b4e7
         */
-       function CTABLE ($conf) {
+       function CTABLE($conf) {
                $controlTable = t3lib_div::makeInstance('tslib_controlTable');
-                       if ($conf['tableParams'])       {
+               if ($conf['tableParams']) {
                        $controlTable->tableParams = $conf['tableParams'];
                }
                        // loads the pagecontent
                $controlTable->contentW = $conf['cWidth'];
-                       // loads the menues if any
-               if (is_array($conf['c.']))      {
-                       $controlTable->content = $this->cObjGet($conf['c.'],'c.');
+               // loads the menues if any
+               if (is_array($conf['c.'])) {
+                       $controlTable->content = $this->cObjGet($conf['c.'], 'c.');
                        $controlTable->contentTDparams = isset($conf['c.']['TDParams']) ? $conf['c.']['TDParams'] : 'valign="top"';
                }
-               if (is_array($conf['lm.']))     {
-                       $controlTable->lm = $this->cObjGet($conf['lm.'],'lm.');
+               if (is_array($conf['lm.'])) {
+                       $controlTable->lm = $this->cObjGet($conf['lm.'], 'lm.');
                        $controlTable->lmTDparams = isset($conf['lm.']['TDParams']) ? $conf['lm.']['TDParams'] : 'valign="top"';
                }
-               if (is_array($conf['tm.']))     {
-                       $controlTable->tm = $this->cObjGet($conf['tm.'],'tm.');
+               if (is_array($conf['tm.'])) {
+                       $controlTable->tm = $this->cObjGet($conf['tm.'], 'tm.');
                        $controlTable->tmTDparams = isset($conf['tm.']['TDParams']) ? $conf['tm.']['TDParams'] : 'valign="top"';
                }
-               if (is_array($conf['rm.']))     {
-                       $controlTable->rm = $this->cObjGet($conf['rm.'],'rm.');
+               if (is_array($conf['rm.'])) {
+                       $controlTable->rm = $this->cObjGet($conf['rm.'], 'rm.');
                        $controlTable->rmTDparams = isset($conf['rm.']['TDParams']) ? $conf['rm.']['TDParams'] : 'valign="top"';
                }
-               if (is_array($conf['bm.']))     {
-                       $controlTable->bm = $this->cObjGet($conf['bm.'],'bm.');
+               if (is_array($conf['bm.'])) {
+                       $controlTable->bm = $this->cObjGet($conf['bm.'], 'bm.');
                        $controlTable->bmTDparams = isset($conf['bm.']['TDParams']) ? $conf['bm.']['TDParams'] : 'valign="top"';
                }
-               return $controlTable->start($conf['offset'],$conf['cMargins']);
+               return $controlTable->start($conf['offset'], $conf['cMargins']);
        }
 
        /**
         * Rendering the cObject, OTABLE
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=360&cHash=02c9552d38
         */
-       function OTABLE ($conf) {
+       function OTABLE($conf) {
                $controlTable = t3lib_div::makeInstance('tslib_tableOffset');
-               if ($conf['tableParams'])       {
+               if ($conf['tableParams']) {
                        $controlTable->tableParams = $conf['tableParams'];
                }
-               return $controlTable->start($this->cObjGet($conf),$conf['offset']);
+               return $controlTable->start($this->cObjGet($conf), $conf['offset']);
        }
 
        /**
         * Rendering the cObject, COLUMNS
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=361&cHash=7e4e228cad
         */
-       function COLUMNS ($conf)        {
-               $content='';
-               if (is_array($conf) && $this->checkIf($conf['if.']))    {
-                       $tdRowCount=0;
-                       $tableParams = $conf['tableParams'] ? ' '.$conf['tableParams'] : ' border="0" cellspacing="0" cellpadding="0"';
-                       $TDparams = $conf['TDparams'] ? ' '.$conf['TDparams']:' valign="top"';
-                       $rows = t3lib_div::intInRange($conf['rows'],2,20);
+       function COLUMNS($conf) {
+               $content = '';
+               if (is_array($conf) && $this->checkIf($conf['if.'])) {
+                       $tdRowCount = 0;
+                       $tableParams = $conf['tableParams'] ? ' ' . $conf['tableParams'] : ' border="0" cellspacing="0" cellpadding="0"';
+                       $TDparams = $conf['TDparams'] ? ' ' . $conf['TDparams'] : ' valign="top"';
+                       $rows = t3lib_div::intInRange($conf['rows'], 2, 20);
                        $totalWidth = intval($conf['totalWidth']);
-                       $columnWidth=0;
-
-                       $totalGapWidth=0;
-                       $gapData = Array(
-                               'gapWidth' => $this->stdWrap($conf['gapWidth'],$conf['gapWidth.']),
-                               'gapBgCol' => $this->stdWrap($conf['gapBgCol'],$conf['gapBgCol.']),
-                               'gapLineThickness' => $this->stdWrap($conf['gapLineThickness'],$conf['gapLineThickness.']),
-                               'gapLineCol' => $this->stdWrap($conf['gapLineCol'],$conf['gapLineCol.'])
+                       $columnWidth = 0;
+
+                       $totalGapWidth = 0;
+                       $gapData = array(
+                               'gapWidth' => $this->stdWrap($conf['gapWidth'], $conf['gapWidth.']),
+                               'gapBgCol' => $this->stdWrap($conf['gapBgCol'], $conf['gapBgCol.']),
+                               'gapLineThickness' => $this->stdWrap($conf['gapLineThickness'], $conf['gapLineThickness.']),
+                               'gapLineCol' => $this->stdWrap($conf['gapLineCol'], $conf['gapLineCol.']),
                        );
-                       $gapData = $GLOBALS['TSFE']->tmpl->splitConfArray($gapData,$rows-1);
+                       $gapData = $GLOBALS['TSFE']->tmpl->splitConfArray($gapData, $rows - 1);
                        foreach ($gapData as $val) {
-                               $totalGapWidth+=intval($val['gapWidth']);
+                               $totalGapWidth += intval($val['gapWidth']);
                        }
 
-                       if ($totalWidth)        {
-                               $columnWidth = ceil(($totalWidth-$totalGapWidth)/$rows);
-                               $TDparams.=' width="'.$columnWidth.'"';
-                               $tableParams.=' width="'.$totalWidth.'"';
+                       if ($totalWidth) {
+                               $columnWidth = ceil(($totalWidth - $totalGapWidth) / $rows);
+                               $TDparams .= ' width="' . $columnWidth . '"';
+                               $tableParams .= ' width="' . $totalWidth . '"';
                        } else {
-                               $TDparams.=' width="'.floor(100/$rows).'%"';
-                               $tableParams.=' width="100%"';
+                               $TDparams .= ' width="' . floor(100 / $rows) . '%"';
+                               $tableParams .= ' width="100%"';
                        }
 
-                       for ($a=1;$a<=$rows;$a++)       {
+                       for ($a = 1; $a <= $rows; $a++) {
                                $tdRowCount++;
-                               $content.='<td'.$TDparams.'>';
-                               $content.=$this->cObjGetSingle($conf[$a],$conf[$a.'.'], $a);
-                               $content.='</td>';
-                               if ($a < $rows) {
-                                       $gapConf = $gapData[($a-1)];
+                               $content .= '<td' . $TDparams . '>';
+                               $content .= $this->cObjGetSingle($conf[$a], $conf[$a . '.'], $a);
+                               $content .= '</td>';
+                               if ($a < $rows) {
+                                       $gapConf = $gapData[($a - 1)];
                                        $gapWidth = intval($gapConf['gapWidth']);
-                                       if ($gapWidth)  {
-                                               $tdPar = $gapConf['gapBgCol'] ? ' bgcolor="'.$gapConf['gapBgCol'].'"' : '';
+                                       if ($gapWidth) {
+                                               $tdPar = $gapConf['gapBgCol'] ? ' bgcolor="' . $gapConf['gapBgCol'] . '"' : '';
                                                $gapLine = intval($gapConf['gapLineThickness']);
-                                               if ($gapLine)   {
-                                                       $gapSurround = t3lib_div::intInRange(($gapWidth-$gapLine)/2, 1, 1000);
-                                                               // right gap
-                                                       $content.='<td'.$tdPar.'><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$gapSurround.'" height="1" alt="" title="" /></td>';
+                                               if ($gapLine) {
+                                                       $gapSurround = t3lib_div::intInRange(($gapWidth - $gapLine) / 2, 1, 1000);
+                                                       // right gap
+                                                       $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' .
+                                                               $gapSurround . '" height="1" alt="" title="" /></td>';
                                                        $tdRowCount++;
-                                                               // line:
-                                                       $GtdPar = $gapConf['gapLineCol'] ? ' bgcolor="'.$gapConf['gapLineCol'].'"' : ' bgcolor="black"';
-                                                       $content.='<td'.$GtdPar.'><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$gapLine.'" height="1" alt="" title="" /></td>';
+                                                       // line:
+                                                       $GtdPar = $gapConf['gapLineCol'] ? ' bgcolor="' . $gapConf['gapLineCol'] . '"' : ' bgcolor="black"';
+                                                       $content .= '<td' . $GtdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' .
+                                                               $gapLine . '" height="1" alt="" title="" /></td>';
                                                        $tdRowCount++;
-                                                               // left gap
-                                                       $content.='<td'.$tdPar.'><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$gapSurround.'" height="1" alt="" title="" /></td>';
+                                                       // left gap
+                                                       $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' .
+                                                               $gapSurround . '" height="1" alt="" title="" /></td>';
                                                        $tdRowCount++;
                                                } else {
-                                                       $content.='<td'.$tdPar.'><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$gapWidth.'" height="1" alt="" title="" /></td>';
+                                                       $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' .
+                                                               $gapWidth . '" height="1" alt="" title="" /></td>';
                                                        $tdRowCount++;
                                                }
                                        }
                                }
                        }
-                       $content = '<tr>'.$content.'</tr>';
-                       $content = '<table'.$tableParams.'>'.$content.'</table>';
-                       $content.= $this->cObjGetSingle($conf['after'],$conf['after.'], 'after');
-                       if ($conf['stdWrap.'])  {
-                               $content = $this->stdWrap($content,$conf['stdWrap.']);
+                       $content = '<tr>' . $content . '</tr>';
+                       $content = '<table' . $tableParams . '>' . $content . '</table>';
+                       $content .= $this->cObjGetSingle($conf['after'], $conf['after.'], 'after');
+                       if ($conf['stdWrap.']) {
+                               $content = $this->stdWrap($content, $conf['stdWrap.']);
                        }
                }
                return $content;
@@ -1626,23 +1734,30 @@ class tslib_cObj {
        /**
         * Rendering the cObject, HRULER
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=362&cHash=2a462aa084
         */
-       function HRULER ($conf) {
-               $lineThickness = t3lib_div::intInRange($this->stdWrap($conf['lineThickness'],$conf['lineThickness.']),1,50);
+       function HRULER($conf) {
+               $lineThickness = t3lib_div::intInRange($this->stdWrap($conf['lineThickness'], $conf['lineThickness.']), 1, 50);
                $lineColor = $conf['lineColor'] ? $conf['lineColor'] : 'black';
                $spaceBefore = intval($conf['spaceLeft']);
                $spaceAfter = intval($conf['spaceRight']);
                $tableWidth = $conf['tableWidth'] ? $conf['tableWidth'] : '99%';
-               $content='';
+               $content = '';
 
-               $content.='<table border="0" cellspacing="0" cellpadding="0" width="'.htmlspecialchars($tableWidth).'" summary=""><tr>';
-               if ($spaceBefore)       {$content.='<td width="1"><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$spaceBefore.'" height="1" alt="" title="" /></td>'; }
-               $content.='<td bgcolor="'.$lineColor.'"><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="1" height="'.$lineThickness.'" alt="" title="" /></td>';
-               if ($spaceAfter)        {$content.='<td width="1"><img src="'.$GLOBALS['TSFE']->absRefPrefix.'clear.gif" width="'.$spaceAfter.'" height="1" alt="" title="" /></td>'; }
-               $content.='</tr></table>';
+               $content .= '<table border="0" cellspacing="0" cellpadding="0" width="' . htmlspecialchars($tableWidth) . '" summary=""><tr>';
+               if ($spaceBefore) {
+                       $content .= '<td width="1"><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' .
+                               $spaceBefore . '" height="1" alt="" title="" /></td>';
+               }
+               $content .= '<td bgcolor="' . $lineColor . '"><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' .
+                       $lineThickness . '" alt="" title="" /></td>';
+               if ($spaceAfter) {
+                       $content .= '<td width="1"><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' .
+                               $spaceAfter . '" height="1" alt="" title="" /></td>';
+               }
+               $content .= '</tr></table>';
 
                $content = $this->stdWrap($content, $conf['stdWrap.']);
                return $content;
@@ -1651,22 +1766,24 @@ class tslib_cObj {
        /**
         * Rendering the cObject, CASE
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=364&cHash=cffedd09e3
         */
-       function CASEFUNC ($conf){
-               $content='';
-               if ($this->checkIf($conf['if.']))       {
-                       if ($conf['setCurrent'] || $conf['setCurrent.']){$this->data[$this->currentValKey] = $this->stdWrap($conf['setCurrent'], $conf['setCurrent.']);}
-                       $key = $this->stdWrap($conf['key'],$conf['key.']);
-                       $key = strlen($conf[$key]) ? $key : 'default';
-                       $name = $conf[$key];
-                       $theValue = $this->cObjGetSingle($name,$conf[$key.'.'], $key);
-                       if ($conf['stdWrap.'])  {
-                               $theValue = $this->stdWrap($theValue,$conf['stdWrap.']);
-                       }
-                       return $theValue;
+       function CASEFUNC($conf) {
+               $content = '';
+               if ($this->checkIf($conf['if.'])) {
+                       if ($conf['setCurrent'] || $conf['setCurrent.']) {
+                               $this->data[$this->currentValKey] = $this->stdWrap($conf['setCurrent'], $conf['setCurrent.']);
+                       }
+                       $key = $this->stdWrap($conf['key'], $conf['key.']);
+                       $key = strlen($conf[$key]) ? $key : 'default';
+                       $name = $conf[$key];
+                       $theValue = $this->cObjGetSingle($name, $conf[$key . '.'], $key);
+                       if ($conf['stdWrap.']) {
+                               $theValue = $this->stdWrap($theValue, $conf['stdWrap.']);
+                       }
+                       return $theValue;
                }
        }
 
@@ -1674,24 +1791,24 @@ class tslib_cObj {
         * Rendering the cObject, LOAD_REGISTER and RESTORE_REGISTER
         * NOTICE: This cObject does NOT return any content since it just sets internal data based on the TypoScript properties.
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @param       string          If "RESTORE_REGISTER" then the cObject rendered is "RESTORE_REGISTER", otherwise "LOAD_REGISTER"
         * @return      string          Empty string (the cObject only sets internal data!)
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=365&cHash=4935524e2e
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=366&cHash=4f9485e8cc
         */
-       function LOAD_REGISTER($conf,$name)     {
-               if ($name=='RESTORE_REGISTER')  {
+       function LOAD_REGISTER($conf, $name) {
+               if ($name == 'RESTORE_REGISTER') {
                        $GLOBALS['TSFE']->register = array_pop($GLOBALS['TSFE']->registerStack);
                } else {
-                       array_push($GLOBALS['TSFE']->registerStack,$GLOBALS['TSFE']->register);
-                       if (is_array($conf))    {
+                       array_push($GLOBALS['TSFE']->registerStack, $GLOBALS['TSFE']->register);
+                       if (is_array($conf)) {
                                foreach ($conf as $theKey => $theValue) {
-                                       if (!strstr($theKey,'.') || !isset($conf[substr($theKey,0,-1)]))        {               // Only if 1) the property is set but not the value itself, 2) the value and/or any property
-                                               if (strstr($theKey,'.'))        {
-                                                       $theKey = substr($theKey,0,-1);
+                                       if (!strstr($theKey, '.') || !isset($conf[substr($theKey, 0, -1)])) { // Only if 1) the property is set but not the value itself, 2) the value and/or any property
+                                               if (strstr($theKey, '.')) {
+                                                       $theKey = substr($theKey, 0, -1);
                                                }
-                                               $GLOBALS['TSFE']->register[$theKey] = $this->stdWrap($conf[$theKey],$conf[$theKey.'.']);
+                                               $GLOBALS['TSFE']->register[$theKey] = $this->stdWrap($conf[$theKey], $conf[$theKey . '.']);
                                        }
                                }
                        }
@@ -1714,55 +1831,57 @@ class tslib_cObj {
         *
         * If $formData is an array the value of $conf['data'] is ignored.
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @param       array           Alternative formdata overriding whatever comes from TypoScript
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=367&cHash=bbc518d930
         */
-       function FORM($conf,$formData='') {
-               $content='';
+       function FORM($conf, $formData = '') {
+               $content = '';
                if (is_array($formData)) {
                        $dataArr = $formData;
                } else {
-                       $data = $this->stdWrap($conf['data'],$conf['data.']);
+                       $data = $this->stdWrap($conf['data'], $conf['data.']);
                                // Clearing dataArr
                        $dataArr = array();
                                // Getting the original config
-                       if (trim($data))        {
-                               $data = str_replace(chr(10),'||',$data);
-                               $dataArr = explode('||',$data);
+                       if (trim($data)) {
+                               $data = str_replace(LF, '||', $data);
+                               $dataArr = explode('||', $data);
                        }
                                // Adding the new dataArray config form:
-                       if (is_array($conf['dataArray.'])) {    // dataArray is supplied
+                       if (is_array($conf['dataArray.'])) { // dataArray is supplied
                                $sKeyArray = t3lib_TStemplate::sortedKeyList($conf['dataArray.'], TRUE);
-                               foreach ($sKeyArray as $theKey) {
-                                       $dAA = $conf['dataArray.'][$theKey.'.'];
-                                       if (is_array($dAA))     {
+                               foreach ($sKeyArray as $theKey) {
+                                       $dAA = $conf['dataArray.'][$theKey . '.'];
+                                       if (is_array($dAA)) {
                                                $temp = array();
-                                               list($temp[0]) = explode('|',$dAA['label.'] ? $this->stdWrap($dAA['label'],$dAA['label.']) : $dAA['label']);
-                                               list($temp[1]) = explode('|',$dAA['type']);
+                                               list ($temp[0]) = explode('|', $dAA['label.'] ? $this->stdWrap($dAA['label'], $dAA['label.']) : $dAA['label']);
+                                               list ($temp[1]) = explode('|', $dAA['type']);
                                                if ($dAA['required']) {
-                                                       $temp[1] = '*'.$temp[1];
+                                                       $temp[1] = '*' . $temp[1];
                                                }
-                                               list($temp[2]) = explode('|',$dAA['value.'] ? $this->stdWrap($dAA['value'],$dAA['value.']) : $dAA['value']);
-                                                       // If value Array is set, then implode those values.
+                                               list ($temp[2]) = explode('|', $dAA['value.'] ? $this->stdWrap($dAA['value'], $dAA['value.']) : $dAA['value']);
+                                                       // If value array is set, then implode those values.
                                                if (is_array($dAA['valueArray.'])) {
                                                        $temp_accum = array();
                                                        foreach ($dAA['valueArray.'] as $dAKey_vA => $dAA_vA) {
-                                                               if (is_array($dAA_vA) && !strcmp(intval($dAKey_vA).'.',$dAKey_vA))      {
-                                                                       $temp_vA=array();
-                                                                       list($temp_vA[0])= explode('=',$dAA_vA['label.'] ? $this->stdWrap($dAA_vA['label'],$dAA_vA['label.']) : $dAA_vA['label']);
-                                                                       if ($dAA_vA['selected'])        {$temp_vA[0]='*'.$temp_vA[0];}
-                                                                       list($temp_vA[1])= explode(',',$dAA_vA['value']);
+                                                               if (is_array($dAA_vA) && !strcmp(intval($dAKey_vA) . '.', $dAKey_vA)) {
+                                                                       $temp_vA = array();
+                                                                       list ($temp_vA[0]) = explode('=', $dAA_vA['label.'] ? $this->stdWrap($dAA_vA['label'], $dAA_vA['label.']) : $dAA_vA['label']);
+                                                                       if ($dAA_vA['selected']) {
+                                                                               $temp_vA[0] = '*' . $temp_vA[0];
+                                                                       }
+                                                                       list ($temp_vA[1]) = explode(',', $dAA_vA['value']);
                                                                }
-                                                               $temp_accum[] = implode('=',$temp_vA);
+                                                               $temp_accum[] = implode('=', $temp_vA);
                                                        }
-                                                       $temp[2] = implode(',',$temp_accum);
+                                                       $temp[2] = implode(',', $temp_accum);
                                                }
-                                               list($temp[3]) = explode('|',$dAA['specialEval.'] ? $this->stdWrap($dAA['specialEval'],$dAA['specialEval.']) : $dAA['specialEval']);
+                                               list ($temp[3]) = explode('|', $dAA['specialEval.'] ? $this->stdWrap($dAA['specialEval'], $dAA['specialEval.']) : $dAA['specialEval']);
 
                                                        // adding the form entry to the dataArray
-                                               $dataArr[] = implode('|',$temp);
+                                               $dataArr[] = implode('|', $temp);
                                        }
                                }
                        }
@@ -1770,18 +1889,18 @@ class tslib_cObj {
 
                $attachmentCounter = '';
                $hiddenfields = '';
-               $fieldlist = Array();
-               $propertyOverride = Array();
-               $fieldname_hashArray = Array();
+               $fieldlist = array();
+               $propertyOverride = array();
+               $fieldname_hashArray = array();
                $cc = 0;
 
-               $xhtmlStrict = t3lib_div::inList('xhtml_strict,xhtml_11,xhtml_2',$GLOBALS['TSFE']->xhtmlDoctype);
+               $xhtmlStrict = t3lib_div::inList('xhtml_strict,xhtml_11,xhtml_2', $GLOBALS['TSFE']->xhtmlDoctype);
                        // Formname
                if ($conf['formName']) {
                        $formname = $this->cleanFormName($conf['formName']);
                } else {
                        $formname = $GLOBALS['TSFE']->uniqueHash();
-                       $formname = 'a'.$formname;      // form name has to start with a letter to reach XHTML compliance
+                       $formname = 'a' . $formname; // form name has to start with a letter to reach XHTML compliance
                }
 
                if (isset($conf['fieldPrefix'])) {
@@ -1794,62 +1913,67 @@ class tslib_cObj {
                        $prefix = $formname;
                }
 
-               foreach ($dataArr as $val)      {
+               foreach ($dataArr as $val) {
 
                        $cc++;
-                       $confData=Array();
+                       $confData = array();
                        if (is_array($formData)) {
                                $parts = $val;
-                               $val = 1;    // true...
+                               $val = 1; // TRUE...
                        } else {
                                $val = trim($val);
-                               $parts = explode('|',$val);
+                               $parts = explode('|', $val);
                        }
-                       if ($val && strcspn($val,'#/')) {
+                       if ($val && strcspn($val, '#/')) {
                                        // label:
                                $confData['label'] = trim($parts[0]);
                                        // field:
-                               $fParts = explode(',',$parts[1]);
-                               $fParts[0]=trim($fParts[0]);
-                               if (substr($fParts[0],0,1)=='*')        {
-                                       $confData['required']=1;
-                                       $fParts[0] = substr($fParts[0],1);
+                               $fParts = explode(',', $parts[1]);
+                               $fParts[0] = trim($fParts[0]);
+                               if (substr($fParts[0], 0, 1) == '*') {
+                                       $confData['required'] = 1;
+                                       $fParts[0] = substr($fParts[0], 1);
                                }
-                               $typeParts = explode('=',$fParts[0]);
+                               $typeParts = explode('=', $fParts[0]);
                                $confData['type'] = trim(strtolower(end($typeParts)));
-                               if (count($typeParts)==1)       {
+                               if (count($typeParts) == 1) {
                                        $confData['fieldname'] = $this->cleanFormName($parts[0]);
-                                       if (strtolower(preg_replace('/[^[:alnum:]]/','',$confData['fieldname']))=='email')      {$confData['fieldname']='email';}
+                                       if (strtolower(preg_replace('/[^[:alnum:]]/', '', $confData['fieldname'])) == 'email') {
+                                               $confData['fieldname'] = 'email';
+                                       }
                                                // Duplicate fieldnames resolved
-                                       if (isset($fieldname_hashArray[md5($confData['fieldname'])]))   {
-                                               $confData['fieldname'].='_'.$cc;
+                                       if (isset($fieldname_hashArray[md5($confData['fieldname'])])) {
+                                               $confData['fieldname'] .= '_' . $cc;
                                        }
-                                       $fieldname_hashArray[md5($confData['fieldname'])]=$confData['fieldname'];
+                                       $fieldname_hashArray[md5($confData['fieldname'])] = $confData['fieldname'];
                                                // Attachment names...
-                                       if ($confData['type']=='file')  {
-                                               $confData['fieldname']='attachment'.$attachmentCounter;
-                                               $attachmentCounter=intval($attachmentCounter)+1;
+                                       if ($confData['type'] == 'file') {
+                                               $confData['fieldname'] = 'attachment' . $attachmentCounter;
+                                               $attachmentCounter = intval($attachmentCounter) + 1;
                                        }
                                } else {
-                                       $confData['fieldname'] = str_replace(' ','_',trim($typeParts[0]));
+                                       $confData['fieldname'] = str_replace(' ', '_', trim($typeParts[0]));
                                }
-                               $fieldCode='';
+                               $fieldCode = '';
 
-                               if ($conf['wrapFieldName'])     {
-                                       $confData['fieldname'] = $this->wrap($confData['fieldname'],$conf['wrapFieldName']);
+                               if ($conf['wrapFieldName']) {
+                                       $confData['fieldname'] = $this->wrap($confData['fieldname'], $conf['wrapFieldName']);
                                }
 
                                        // Set field name as current:
                                $this->setCurrentVal($confData['fieldname']);
 
                                        // Additional parameters
-                               if (trim($confData['type']))    {
-                                       $addParams=trim($conf['params']);
-                                       if (is_array($conf['params.']) && isset($conf['params.'][$confData['type']]))   {
-                                               $addParams=trim($conf['params.'][$confData['type']]);
+                               if (trim($confData['type'])) {
+                                       $addParams = trim($conf['params']);
+                                       if (is_array($conf['params.']) && isset($conf['params.'][$confData['type']])) {
+                                               $addParams = trim($conf['params.'][$confData['type']]);
+                                       }
+                                       if (strcmp('', $addParams)) {
+                                               $addParams = ' ' . $addParams;
                                        }
-                                       if (strcmp('',$addParams))      { $addParams=' '.$addParams; }
-                               } else $addParams='';
+                               } else
+                                       $addParams = '';
 
                                if ($conf['dontMd5FieldNames']) {
                                        $fName = $confData['fieldname'];
@@ -1858,150 +1982,210 @@ class tslib_cObj {
                                }
 
                                        // Accessibility: Set id = fieldname attribute:
-                               if ($conf['accessibility'] || $xhtmlStrict)     {
-                                       $elementIdAttribute = ' id="'.$prefix.$fName.'"';
+                               if ($conf['accessibility'] || $xhtmlStrict) {
+                                       $elementIdAttribute = ' id="' . $prefix . $fName . '"';
                                } else {
                                        $elementIdAttribute = '';
                                }
 
                                        // Create form field based on configuration/type:
-                               switch ($confData['type'])      {
-                                       case 'textarea':
-                                               $cols=trim($fParts[1]) ? intval($fParts[1]) : 20;
-                                               $compWidth = doubleval($conf['compensateFieldWidth'] ? $conf['compensateFieldWidth'] : $GLOBALS['TSFE']->compensateFieldWidth);
+                               switch ($confData['type']) {
+                                       case 'textarea' :
+                                               $cols = trim($fParts[1]) ? intval($fParts[1]) : 20;
+                                               $compWidth = doubleval($conf['compensateFieldWidth']
+                                                                               ? $conf['compensateFieldWidth']
+                                                                               : $GLOBALS['TSFE']->compensateFieldWidth
+                                                                       );
                                                $compWidth = $compWidth ? $compWidth : 1;
-                                               $cols = t3lib_div::intInRange($cols*$compWidth, 1, 120);
+                                               $cols = t3lib_div::intInRange($cols * $compWidth, 1, 120);
 
-                                               $rows=trim($fParts[2]) ? t3lib_div::intInRange($fParts[2],1,30) : 5;
-                                               $wrap=trim($fParts[3]);
-                                               if ($conf['noWrapAttr'] || $wrap === 'disabled')        {
-                                                       $wrap='';
+                                               $rows = trim($fParts[2]) ? t3lib_div::intInRange($fParts[2], 1, 30) : 5;
+                                               $wrap = trim($fParts[3]);
+                                               if ($conf['noWrapAttr'] || $wrap === 'disabled') {
+                                                       $wrap = '';
                                                } else {
-                                                       $wrap = $wrap ? ' wrap="'.$wrap.'"' : ' wrap="virtual"';
+                                                       $wrap = $wrap ? ' wrap="' . $wrap . '"' : ' wrap="virtual"';
                                                }
-                                               $default = $this->getFieldDefaultValue($conf['noValueInsert'], $confData['fieldname'], str_replace('\n',chr(10),trim($parts[2])));
-                                               $fieldCode=sprintf('<textarea name="%s"%s cols="%s" rows="%s"%s%s>%s</textarea>',
-                                                       $confData['fieldname'], $elementIdAttribute, $cols, $rows, $wrap, $addParams, t3lib_div::formatForTextarea($default));
+                                               $default = $this->getFieldDefaultValue(
+                                                       $conf['noValueInsert'],
+                                                       $confData['fieldname'],
+                                                       str_replace('\n', LF, trim($parts[2]))
+                                               );
+                                               $fieldCode = sprintf(
+                                                       '<textarea name="%s"%s cols="%s" rows="%s"%s%s>%s</textarea>',
+                                                       $confData['fieldname'],
+                                                       $elementIdAttribute,
+                                                       $cols,
+                                                       $rows,
+                                                       $wrap,
+                                                       $addParams,
+                                                       t3lib_div::formatForTextarea($default)
+                                               );
                                        break;
-                                       case 'input':
-                                       case 'password':
-                                               $size=trim($fParts[1]) ? intval($fParts[1]) : 20;
-                                               $compWidth = doubleval($conf['compensateFieldWidth'] ? $conf['compensateFieldWidth'] : $GLOBALS['TSFE']->compensateFieldWidth);
+                                       case 'input' :
+                                       case 'password' :
+                                               $size = trim($fParts[1]) ? intval($fParts[1]) : 20;
+                                               $compWidth = doubleval($conf['compensateFieldWidth']
+                                                                               ? $conf['compensateFieldWidth']
+                                                                               : $GLOBALS['TSFE']->compensateFieldWidth
+                                                                       );
                                                $compWidth = $compWidth ? $compWidth : 1;
-                                               $size = t3lib_div::intInRange($size*$compWidth, 1, 120);
+                                               $size = t3lib_div::intInRange($size * $compWidth, 1, 120);
                                                $default = $this->getFieldDefaultValue($conf['noValueInsert'], $confData['fieldname'], trim($parts[2]));
 
-                                               if ($confData['type']=='password')      {
-                                                       $default='';
+                                               if ($confData['type'] == 'password') {
+                                                       $default = '';
                                                }
 
-                                               $max=trim($fParts[2]) ? ' maxlength="'.t3lib_div::intInRange($fParts[2],1,1000).'"' : "";
-                                               $theType = $confData['type']=='input' ? 'text' : 'password';
-
-                                               $fieldCode=sprintf('<input type="%s" name="%s"%s size="%s"%s value="%s"%s />',
-                                                       $theType, $confData['fieldname'], $elementIdAttribute, $size, $max, htmlspecialchars($default), $addParams);
+                                               $max = trim($fParts[2]) ? ' maxlength="' . t3lib_div::intInRange($fParts[2], 1, 1000) . '"' : "";
+                                               $theType = $confData['type'] == 'input' ? 'text' : 'password';
+
+                                               $fieldCode = sprintf(
+                                                       '<input type="%s" name="%s"%s size="%s"%s value="%s"%s />',
+                                                       $theType,
+                                                       $confData['fieldname'],
+                                                       $elementIdAttribute,
+                                                       $size,
+                                                       $max,
+                                                       htmlspecialchars($default),
+                                                       $addParams
+                                               );
 
                                        break;
-                                       case 'file':
-                                               $size=trim($fParts[1]) ? t3lib_div::intInRange($fParts[1],1,60) : 20;
-                                               $fieldCode=sprintf('<input type="file" name="%s"%s size="%s"%s />',
-                                                       $confData['fieldname'], $elementIdAttribute, $size, $addParams);
+                                       case 'file' :
+                                               $size = trim($fParts[1]) ? t3lib_div::intInRange($fParts[1], 1, 60) : 20;
+                                               $fieldCode = sprintf(
+                                                       '<input type="file" name="%s"%s size="%s"%s />',
+                                                       $confData['fieldname'],
+                                                       $elementIdAttribute,
+                                                       $size,
+                                                       $addParams
+                                               );
                                        break;
-                                       case 'check':
+                                       case 'check' :
                                                        // alternative default value:
                                                $default = $this->getFieldDefaultValue($conf['noValueInsert'], $confData['fieldname'], trim($parts[2]));
                                                $checked = $default ? ' checked="checked"' : '';
-                                               $fieldCode=sprintf('<input type="checkbox" value="%s" name="%s"%s%s%s />',
-                                                       1, $confData['fieldname'], $elementIdAttribute, $checked, $addParams);
+                                               $fieldCode = sprintf(
+                                                       '<input type="checkbox" value="%s" name="%s"%s%s%s />',
+                                                       1,
+                                                       $confData['fieldname'],
+                                                       $elementIdAttribute,
+                                                       $checked,
+                                                       $addParams
+                                               );
                                        break;
-                                       case 'select':
-                                               $option='';
-                                               $valueParts = explode(',',$parts[2]);
+                                       case 'select' :
+                                               $option = '';
+                                               $valueParts = explode(',', $parts[2]);
                                                        // size
-                                               if (strtolower(trim($fParts[1]))=='auto')       {$fParts[1]=count($valueParts);}                // Auto size set here. Max 20
-                                               $size=trim($fParts[1]) ? t3lib_div::intInRange($fParts[1],1,20) : 1;
+                                               if (strtolower(trim($fParts[1])) == 'auto') {
+                                                       $fParts[1] = count($valueParts);
+                                               } // Auto size set here. Max 20
+                                               $size = trim($fParts[1]) ? t3lib_div::intInRange($fParts[1], 1, 20) : 1;
                                                        // multiple
-                                               $multiple = strtolower(trim($fParts[2]))=='m' ? ' multiple="multiple"' : '';
+                                               $multiple = strtolower(trim($fParts[2])) == 'm' ? ' multiple="multiple"' : '';
 
-                                               $items=array();         // Where the items will be
-                                               $defaults=array(); //RTF
+                                               $items = array(); // Where the items will be
+                                               $defaults = array(); //RTF
                                                $pCount = count($valueParts);
-                                               for($a=0;$a<$pCount;$a++)       {
-                                                       $valueParts[$a]=trim($valueParts[$a]);
-                                                       if (substr($valueParts[$a],0,1)=='*')   {       // Finding default value
-                                                               $sel='selected';
-                                                               $valueParts[$a] = substr($valueParts[$a],1);
-                                                       } else $sel='';
+                                               for ($a = 0; $a < $pCount; $a++) {
+                                                       $valueParts[$a] = trim($valueParts[$a]);
+                                                       if (substr($valueParts[$a], 0, 1) == '*') { // Finding default value
+                                                               $sel = 'selected';
+                                                               $valueParts[$a] = substr($valueParts[$a], 1);
+                                                       } else
+                                                               $sel = '';
                                                                // Get value/label
-                                                       $subParts=explode('=',$valueParts[$a]);
-                                                       $subParts[1] = (isset($subParts[1])?trim($subParts[1]):trim($subParts[0]));             // Sets the value
-                                                       $items[] = $subParts;   // Adds the value/label pair to the items-array
-                                                       if ($sel) {$defaults[]=$subParts[1];}   // Sets the default value if value/label pair is marked as default.
+                                                       $subParts = explode('=', $valueParts[$a]);
+                                                       $subParts[1] = (isset($subParts[1]) ? trim($subParts[1]) : trim($subParts[0])); // Sets the value
+                                                       $items[] = $subParts; // Adds the value/label pair to the items-array
+                                                       if ($sel) {
+                                                               $defaults[] = $subParts[1];
+                                                       } // Sets the default value if value/label pair is marked as default.
                                                }
                                                        // alternative default value:
                                                $default = $this->getFieldDefaultValue($conf['noValueInsert'], $confData['fieldname'], $defaults);
                                                if (!is_array($default)) {
-                                                       $defaults=array();
+                                                       $defaults = array();
                                                        $defaults[] = $default;
-                                               } else $defaults=$default;
+                                               } else {
+                                                       $defaults = $default;
+                                               }
                                                        // Create the select-box:
                                                $iCount = count($items);
-                                               for($a=0;$a<$iCount;$a++)       {
-                                                       $option.='<option value="'.$items[$a][1].'"'.(in_array($items[$a][1],$defaults)?' selected="selected"':'').'>'.trim($items[$a][0]).'</option>'; //RTF
+                                               for ($a = 0; $a < $iCount; $a++) {
+                                                       $option .= '<option value="' . $items[$a][1] . '"' . (in_array($items[$a][1], $defaults) ? ' selected="selected"' : '') . '>' . trim($items[$a][0]) . '</option>'; //RTF
                                                }
 
-                                               if ($multiple)  $confData['fieldname'].='[]';   // The fieldname must be prepended '[]' if multiple select. And the reason why it's prepended is, because the required-field list later must also have [] prepended.
-                                               $fieldCode=sprintf('<select name="%s"%s size="%s"%s%s>%s</select>',
-                                                       $confData['fieldname'], $elementIdAttribute, $size, $multiple, $addParams, $option); //RTF
+                                               if ($multiple) {
+                                                               // The fieldname must be prepended '[]' if multiple select. And the reason why it's prepended is, because the required-field list later must also have [] prepended.
+                                                       $confData['fieldname'] .= '[]';
+                                               }
+                                               $fieldCode = sprintf(
+                                                       '<select name="%s"%s size="%s"%s%s>%s</select>',
+                                                       $confData['fieldname'],
+                                                       $elementIdAttribute,
+                                                       $size,
+                                                       $multiple,
+                                                       $addParams,
+                                                       $option
+                                               ); //RTF
                                        break;
-                                       case 'radio':
-                                               $option='';
+                                       case 'radio' :
+                                               $option = '';
 
-                                               $valueParts = explode(',',$parts[2]);
-                                               $items=array();         // Where the items will be
-                                               $default='';
+                                               $valueParts = explode(',', $parts[2]);
+                                               $items = array(); // Where the items will be
+                                               $default = '';
                                                $pCount = count($valueParts);
-                                               for($a=0;$a<$pCount;$a++)       {
-                                                       $valueParts[$a]=trim($valueParts[$a]);
-                                                       if (substr($valueParts[$a],0,1)=='*')   {
-                                                               $sel='checked';
-                                                               $valueParts[$a] = substr($valueParts[$a],1);
-                                                       } else $sel='';
+                                               for ($a = 0; $a < $pCount; $a++) {
+                                                       $valueParts[$a] = trim($valueParts[$a]);
+                                                       if (substr($valueParts[$a], 0, 1) == '*') {
+                                                               $sel = 'checked';
+                                                               $valueParts[$a] = substr($valueParts[$a], 1);
+                                                       } else
+                                                               $sel = '';
                                                                // Get value/label
-                                                       $subParts=explode('=',$valueParts[$a]);
-                                                       $subParts[1] = (isset($subParts[1])?trim($subParts[1]):trim($subParts[0]));             // Sets the value
-                                                       $items[] = $subParts;   // Adds the value/label pair to the items-array
-                                                       if ($sel) {$default=$subParts[1];}      // Sets the default value if value/label pair is marked as default.
+                                                       $subParts = explode('=', $valueParts[$a]);
+                                                       $subParts[1] = (isset($subParts[1]) ? trim($subParts[1]) : trim($subParts[0])); // Sets the value
+                                                       $items[] = $subParts; // Adds the value/label pair to the items-array
+                                                       if ($sel) {
+                                                               $default = $subParts[1];
+                                                       } // Sets the default value if value/label pair is marked as default.
                                                }
                                                        // alternative default value:
                                                $default = $this->getFieldDefaultValue($conf['noValueInsert'], $confData['fieldname'], $default);
                                                        // Create the select-box:
                                                $iCount = count($items);
-                                               for($a=0;$a<$iCount;$a++)       {
-                                                       $radioId = $prefix.$fName.$this->cleanFormName($items[$a][0]);
-                                                       if ($conf['accessibility'])     {
-                                                               $radioLabelIdAttribute = ' id="'.$radioId.'"';
+                                               for ($a = 0; $a < $iCount; $a++) {
+                                                       $radioId = $prefix . $fName . $this->cleanFormName($items[$a][0]);
+                                                       if ($conf['accessibility']) {
+                                                               $radioLabelIdAttribute = ' id="' . $radioId . '"';
                                                        } else {
                                                                $radioLabelIdAttribute = '';
                                                        }
-                                                       $option .= '<input type="radio" name="'.$confData['fieldname'].'"'.$radioLabelIdAttribute.' value="'.$items[$a][1].'"'.(!strcmp($items[$a][1],$default)?' checked="checked"':'').$addParams.' />';
-                                                       if ($conf['accessibility'])     {
-                                                               $option .= '<label for="'.$radioId.'">' . $this->stdWrap(trim($items[$a][0]), $conf['radioWrap.']) . '</label>';
+                                                       $option .= '<input type="radio" name="' . $confData['fieldname'] . '"' .
+                                                               $radioLabelIdAttribute . ' value="' . $items[$a][1] . '"' .
+                                                               (!strcmp($items[$a][1], $default) ? ' checked="checked"' : '') .
+                                                               $addParams . ' />';
+                                                       if ($conf['accessibility']) {
+                                                               $option .= '<label for="' . $radioId . '">' .
+                                                                       $this->stdWrap(trim($items[$a][0]), $conf['radioWrap.']) .
+                                                                       '</label>';
                                                        } else {
                                                                $option .= $this->stdWrap(trim($items[$a][0]), $conf['radioWrap.']);
                                                        }
-                                               }
+                                               }
 
-                                               if ($conf['accessibility'])     {
+                                               if ($conf['accessibility']) {
                                                        $accessibilityWrap = $conf['radioWrap.']['accessibilityWrap'];
 
                                                        $search = array(
-                                                               '###RADIO_FIELD_ID###',
-                                                               '###RADIO_GROUP_LABEL###'
+                                                               '###RADIO_FIELD_ID###', '###RADIO_GROUP_LABEL###'
                                                        );
                                                        $replace = array(
-                                                               $elementIdAttribute,
-                                                               $confData['label']
+                                                               $elementIdAttribute, $confData['label']
                                                        );
                                                        $accessibilityWrap = str_replace($search, $replace, $accessibilityWrap);
 
@@ -2010,83 +2194,115 @@ class tslib_cObj {
 
                                                $fieldCode = $option;
                                        break;
-                                       case 'hidden':
+                                       case 'hidden' :
                                                $value = trim($parts[2]);
-                                               if (strlen($value) && t3lib_div::inList('recipient_copy,recipient',$confData['fieldname']) && $GLOBALS['TYPO3_CONF_VARS']['FE']['secureFormmail'])      {
+
+                                                       // If this form includes an auto responder message, include a HMAC checksum field
+                                                       // in order to verify potential abuse of this feature.
+                                               if (strlen($value) && t3lib_div::inList($confData['fieldname'], 'auto_respond_msg')) {
+                                                       $hmacChecksum = t3lib_div::hmac($value);
+                                                       $hiddenfields .= sprintf(
+                                                               '<input type="hidden" name="auto_respond_checksum" id="%sauto_respond_checksum" value="%s" />',
+                                                               $prefix,
+                                                               $hmacChecksum
+                                                       );
+                                               }
+
+                                               if (strlen($value) && t3lib_div::inList('recipient_copy,recipient',
+                                                       $confData['fieldname']) && $GLOBALS['TYPO3_CONF_VARS']['FE']['secureFormmail']) {
                                                        break;
                                                }
-                                               if (strlen($value) && t3lib_div::inList('recipient_copy,recipient',$confData['fieldname']))     {
+                                               if (strlen($value) && t3lib_div::inList('recipient_copy,recipient', $confData['fieldname'])) {
                                                        $value = $GLOBALS['TSFE']->codeString($value);
                                                }
-                                               $hiddenfields.= sprintf('<input type="hidden" name="%s"%s value="%s" />',
-                                                       $confData['fieldname'], $elementIdAttribute, htmlspecialchars($value));
+                                               $hiddenfields .= sprintf(
+                                                       '<input type="hidden" name="%s"%s value="%s" />',
+                                                       $confData['fieldname'],
+                                                       $elementIdAttribute,
+                                                       htmlspecialchars($value)
+                                               );
                                        break;
-                                       case 'property':
-                                               if (t3lib_div::inList('type,locationData,goodMess,badMess,emailMess',$confData['fieldname']))   {
-                                                       $value=trim($parts[2]);
+                                       case 'property' :
+                                               if (t3lib_div::inList('type,locationData,goodMess,badMess,emailMess', $confData['fieldname'])) {
+                                                       $value = trim($parts[2]);
                                                        $propertyOverride[$confData['fieldname']] = $value;
                                                        $conf[$confData['fieldname']] = $value;
                                                }
                                        break;
-                                       case 'submit':
-                                               $value=trim($parts[2]);
-                                               if ($conf['image.'])    {
+                                       case 'submit' :
+                                               $value = trim($parts[2]);
+                                               if ($conf['image.']) {
                                                        $this->data[$this->currentValKey] = $value;
                                                        $image = $this->IMG_RESOURCE($conf['image.']);
-                                                       $params = $conf['image.']['params'] ? ' '.$conf['image.']['params'] : '';
-                                                       $params.= $this->getAltParam($conf['image.'], false);
-                                                       $params.= $addParams;
+                                                       $params = $conf['image.']['params'] ? ' ' . $conf['image.']['params'] : '';
+                                                       $params .= $this->getAltParam($conf['image.'], FALSE);
+                                                       $params .= $addParams;
                                                } else {
                                                        $image = '';
                                                }
-                                               if ($image)     {
-                                                       $fieldCode=sprintf('<input type="image" name="%s"%s src="%s"%s />',
-                                                               $confData['fieldname'], $elementIdAttribute, $image, $params);
-                                               } else  {
-                                                       $fieldCode=sprintf('<input type="submit" name="%s"%s value="%s"%s />',
-                                                               $confData['fieldname'], $elementIdAttribute, t3lib_div::deHSCentities(htmlspecialchars($value)), $addParams);
+                                               if ($image) {
+                                                       $fieldCode = sprintf(
+                                                               '<input type="image" name="%s"%s src="%s"%s />',
+                                                               $confData['fieldname'],
+                                                               $elementIdAttribute,
+                                                               $image,
+                                                               $params
+                                                       );
+                                               } else {
+                                                       $fieldCode = sprintf(
+                                                               '<input type="submit" name="%s"%s value="%s"%s />',
+                                                               $confData['fieldname'],
+                                                               $elementIdAttribute,
+                                                               t3lib_div::deHSCentities(htmlspecialchars($value)),
+                                                               $addParams
+                                                       );
                                                }
                                        break;
-                                       case 'reset':
-                                               $value=trim($parts[2]);
-                                               $fieldCode=sprintf('<input type="reset" name="%s"%s value="%s"%s />',
-                                                       $confData['fieldname'], $elementIdAttribute, t3lib_div::deHSCentities(htmlspecialchars($value)), $addParams);
+                                       case 'reset' :
+                                               $value = trim($parts[2]);
+                                               $fieldCode = sprintf(
+                                                       '<input type="reset" name="%s"%s value="%s"%s />',
+                                                       $confData['fieldname'],
+                                                       $elementIdAttribute,
+                                                       t3lib_div::deHSCentities(htmlspecialchars($value)),
+                                                       $addParams
+                                               );
                                        break;
-                                       case 'label':
+                                       case 'label' :
                                                $fieldCode = nl2br(htmlspecialchars(trim($parts[2])));
                                        break;
-                                       default:
+                                       default :
                                                $confData['type'] = 'comment';
-                                               $fieldCode = trim($parts[2]).'&nbsp;';
+                                               $fieldCode = trim($parts[2]) . '&nbsp;';
                                        break;
                                }
-                               if ($fieldCode) {
+                               if ($fieldCode) {
 
                                                // Checking for special evaluation modes:
-                                       if (t3lib_div::inList('textarea,input,password',$confData['type']) && strlen(trim($parts[3])))  {
-                                               $modeParameters = t3lib_div::trimExplode(':',$parts[3]);
+                                       if (t3lib_div::inList('textarea,input,password', $confData['type']) && strlen(trim($parts[3]))) {
+                                               $modeParameters = t3lib_div::trimExplode(':', $parts[3]);
                                        } else {
                                                $modeParameters = array();
                                        }
 
-                                               // Adding evaluation based on settings:
-                                       switch ((string)$modeParameters[0])     {
-                                               case 'EREG':
+                                       // Adding evaluation based on settings:
+                                       switch ((string) $modeParameters[0]) {
+                                               case 'EREG' :
                                                        $fieldlist[] = '_EREG';
                                                        $fieldlist[] = $modeParameters[1];
                                                        $fieldlist[] = $modeParameters[2];
                                                        $fieldlist[] = $confData['fieldname'];
                                                        $fieldlist[] = $confData['label'];
-                                                       $confData['required'] = 1;      // Setting this so "required" layout is used.
+                                                       $confData['required'] = 1; // Setting this so "required" layout is used.
                                                break;
-                                               case 'EMAIL':
+                                               case 'EMAIL' :
                                                        $fieldlist[] = '_EMAIL';
                                                        $fieldlist[] = $confData['fieldname'];
                                                        $fieldlist[] = $confData['label'];
-                                                       $confData['required'] = 1;      // Setting this so "required" layout is used.
+                                                       $confData['required'] = 1; // Setting this so "required" layout is used.
                                                break;
-                                               default:
-                                                       if ($confData['required'])      {
+                                               default :
+                                                       if ($confData['required']) {
                                                                $fieldlist[] = $confData['fieldname'];
                                                                $fieldlist[] = $confData['label'];
                                                        }
@@ -2095,8 +2311,8 @@ class tslib_cObj {
 
                                                // Field:
                                        $fieldLabel = $confData['label'];
-                                       if ($conf['accessibility'] && trim($fieldLabel) && !preg_match('/^(label|hidden|comment)$/',$confData['type'])) {
-                                               $fieldLabel = '<label for="'.$prefix.$fName.'">'.$fieldLabel.'</label>';
+                                       if ($conf['accessibility'] && trim($fieldLabel) && !preg_match('/^(label|hidden|comment)$/', $confData['type'])) {
+                                               $fieldLabel = '<label for="' . $prefix . $fName . '">' . $fieldLabel . '</label>';
                                        }
 
                                                // Getting template code:
@@ -2104,209 +2320,255 @@ class tslib_cObj {
                                        $labelCode = $this->stdWrap($fieldLabel, $conf['labelWrap.']);
                                        $commentCode = $this->stdWrap($confData['label'], $conf['commentWrap.']); // RTF
                                        $result = $conf['layout'];
-                                       if ($conf['REQ'] && $confData['required'])      {
+                                       if ($conf['REQ'] && $confData['required']) {
                                                if (is_array($conf['REQ.']['fieldWrap.']))
                                                        $fieldCode = $this->stdWrap($fieldCode, $conf['REQ.']['fieldWrap.']);
                                                if (is_array($conf['REQ.']['labelWrap.']))
                                                        $labelCode = $this->stdWrap($fieldLabel, $conf['REQ.']['labelWrap.']);
-                                               if ($conf['REQ.']['layout'])    {
+                                               if ($conf['REQ.']['layout']) {
                                                        $result = $conf['REQ.']['layout'];
                                                }
                                        }
-                                       if ($confData['type']=='comment' && $conf['COMMENT.']['layout'])        {
+                                       if ($confData['type'] == 'comment' && $conf['COMMENT.']['layout']) {
                                                $result = $conf['COMMENT.']['layout'];
                                        }
-                                       if ($confData['type']=='check' && $conf['CHECK.']['layout'])    {
+                                       if ($confData['type'] == 'check' && $conf['CHECK.']['layout']) {
                                                $result = $conf['CHECK.']['layout'];
                                        }
-                                       if ($confData['type']=='radio' && $conf['RADIO.']['layout'])    {
+                                       if ($confData['type'] == 'radio' && $conf['RADIO.']['layout']) {
                                                $result = $conf['RADIO.']['layout'];
                                        }
-                                       if ($confData['type']=='label' && $conf['LABEL.']['layout']) {
+                                       if ($confData['type'] == 'label' && $conf['LABEL.']['layout']) {
                                                $result = $conf['LABEL.']['layout'];
                                        }
-                                       $result = str_replace('###FIELD###',$fieldCode,$result);
-                                       $result = str_replace('###LABEL###',$labelCode,$result);
-                                       $result = str_replace('###COMMENT###',$commentCode,$result); //RTF
-                                       $content.= $result;
+                                       $result = str_replace('###FIELD###', $fieldCode, $result);
+                                       $result = str_replace('###LABEL###', $labelCode, $result);
+                                       $result = str_replace('###COMMENT###', $commentCode, $result); //RTF
+                                       $content .= $result;
                                }
                        }
                }
-               if ($conf['stdWrap.'])  { $content = $this->stdWrap($content, $conf['stdWrap.']); }
+               if ($conf['stdWrap.']) {
+                       $content = $this->stdWrap($content, $conf['stdWrap.']);
+               }
 
 
                        // redirect (external: where to go afterwards. internal: where to submit to)
-               $theRedirect = $this->stdWrap($conf['redirect'], $conf['redirect.']);                   // redirect should be set to the page to redirect to after an external script has been used. If internal scripts is used, and if no 'type' is set that dictates otherwise, redirect is used as the url to jump to as long as it's an integer (page)
+               $theRedirect = $this->stdWrap($conf['redirect'], $conf['redirect.']); // redirect should be set to the page to redirect to after an external script has been used. If internal scripts is used, and if no 'type' is set that dictates otherwise, redirect is used as the url to jump to as long as it's an integer (page)
                $page = $GLOBALS['TSFE']->page;
-               if (!$theRedirect)      {               // Internal: Just submit to current page
-                       $LD = $GLOBALS['TSFE']->tmpl->linkData($page, $conf['target'], $conf['no_cache'],'index.php', '', $this->getClosestMPvalueForPage($page['uid']));
-               } elseif (t3lib_div::testInt($theRedirect))     {               // Internal: Submit to page with ID $theRedirect
+               if (!$theRedirect) { // Internal: Just submit to current page
+                       $LD = $GLOBALS['TSFE']->tmpl->linkData(
+                               $page,
+                               $conf['target'],
+                               $conf['no_cache'],
+                               'index.php',
+                               '',
+                               $this->getClosestMPvalueForPage($page['uid'])
+                       );
+               } elseif (t3lib_div::testInt($theRedirect)) { // Internal: Submit to page with ID $theRedirect
                        $page = $GLOBALS['TSFE']->sys_page->getPage_noCheck($theRedirect);
-                       $LD = $GLOBALS['TSFE']->tmpl->linkData($page, $conf['target'], $conf['no_cache'],'index.php', '', $this->getClosestMPvalueForPage($page['uid']));
-               } else {        // External URL, redirect-hidden field is rendered!
-                       $LD = $GLOBALS['TSFE']->tmpl->linkData($page, $conf['target'], $conf['no_cache'],'', '', $this->getClosestMPvalueForPage($page['uid']));
+                       $LD = $GLOBALS['TSFE']->tmpl->linkData(
+                               $page,
+                               $conf['target'],
+                               $conf['no_cache'],
+                               'index.php',
+                               '',
+                               $this->getClosestMPvalueForPage($page['uid'])
+                       );
+               } else { // External URL, redirect-hidden field is rendered!
+                       $LD = $GLOBALS['TSFE']->tmpl->linkData(
+                               $page,
+                               $conf['target'],
+                               $conf['no_cache'],
+                               '',
+                               '',
+                               $this->getClosestMPvalueForPage($page['uid'])
+                       );
                        $LD['totalURL'] = $theRedirect;
-                       $hiddenfields.= '<input type="hidden" name="redirect" value="'.htmlspecialchars($LD['totalURL']).'" />';                // 18-09-00 added
+                       $hiddenfields .= '<input type="hidden" name="redirect" value="' . htmlspecialchars($LD['totalURL']) . '" />'; // 18-09-00 added
                }
 
                        // Formtype (where to submit to!):
                $formtype = $propertyOverride['type'] ? $propertyOverride['type'] : $this->stdWrap($conf['type'], $conf['type.']);
-               if (t3lib_div::testInt($formtype))      {       // Submit to a specific page
+               if (t3lib_div::testInt($formtype)) { // Submit to a specific page
                        $page = $GLOBALS['TSFE']->sys_page->getPage_noCheck($formtype);
-                       $LD_A = $GLOBALS['TSFE']->tmpl->linkData($page, $conf['target'], $conf['no_cache'], '', '', $this->getClosestMPvalueForPage($page['uid']));
+                       $LD_A = $GLOBALS['TSFE']->tmpl->linkData(
+                               $page,
+                               $conf['target'],
+                               $conf['no_cache'],
+                               '',
+                               '',
+                               $this->getClosestMPvalueForPage($page['uid'])
+                       );
                        $action = $LD_A['totalURL'];
-               } elseif ($formtype)    {       // Submit to external script
+               } elseif ($formtype) { // Submit to external script
                        $LD_A = $LD;
                        $action = $formtype;
-               } elseif (t3lib_div::testInt($theRedirect))     {
+               } elseif (t3lib_div::testInt($theRedirect)) {
                        $LD_A = $LD;
                        $action = $LD_A['totalURL'];
-               } else {                // Submit to "nothing" - which is current page
-                       $LD_A = $GLOBALS['TSFE']->tmpl->linkData($GLOBALS['TSFE']->page, $conf['target'], $conf['no_cache'], '', '', $this->getClosestMPvalueForPage($page['uid']));
+               } else { // Submit to "nothing" - which is current page
+                       $LD_A = $GLOBALS['TSFE']->tmpl->linkData(
+                               $GLOBALS['TSFE']->page,
+                               $conf['target'],
+                               $conf['no_cache'],
+                               '',
+                               '',
+                               $this->getClosestMPvalueForPage($page['uid'])
+                       );
                        $action = $LD_A['totalURL'];
                }
 
                        // Recipient:
                $theEmail = $this->stdWrap($conf['recipient'], $conf['recipient.']);
-               if ($theEmail && !$GLOBALS['TYPO3_CONF_VARS']['FE']['secureFormmail'])  {
+               if ($theEmail && !$GLOBALS['TYPO3_CONF_VARS']['FE']['secureFormmail']) {
                        $theEmail = $GLOBALS['TSFE']->codeString($theEmail);
-                       $hiddenfields.= '<input type="hidden" name="recipient" value="'.htmlspecialchars($theEmail).'" />';
+                       $hiddenfields .= '<input type="hidden" name="recipient" value="' . htmlspecialchars($theEmail) . '" />';
                }
 
                        // location data:
-               if ($conf['locationData'])      {
-                       if ($conf['locationData']=='HTTP_POST_VARS' && isset($_POST['locationData']))   {
+               if ($conf['locationData']) {
+                       if ($conf['locationData'] == 'HTTP_POST_VARS' && isset($_POST['locationData'])) {
                                $locationData = t3lib_div::_POST('locationData');
                        } else {
-                               $locationData = $GLOBALS['TSFE']->id.':'.$this->currentRecord;  // locationData is [hte page id]:[tablename]:[uid of record]. Indicates on which page the record (from tablename with uid) is shown. Used to check access.
+                                       // locationData is [hte page id]:[tablename]:[uid of record]. Indicates on which page the record (from tablename with uid) is shown. Used to check access.
+                               $locationData = $GLOBALS['TSFE']->id . ':' . $this->currentRecord;
                        }
-                       $hiddenfields.='<input type="hidden" name="locationData" value="'.htmlspecialchars($locationData).'" />';
+                       $hiddenfields .= '<input type="hidden" name="locationData" value="' . htmlspecialchars($locationData) . '" />';
                }
 
                        // hidden fields:
-               if (is_array($conf['hiddenFields.']))   {
+               if (is_array($conf['hiddenFields.'])) {
                        foreach ($conf['hiddenFields.'] as $hF_key => $hF_conf) {
-                               if (substr($hF_key,-1)!='.')    {
-                                       $hF_value = $this->cObjGetSingle($hF_conf,$conf['hiddenFields.'][$hF_key.'.'],'hiddenfields');
-                                       if (strlen($hF_value) && t3lib_div::inList('recipient_copy,recipient',$hF_key)) {
-                                               if ($GLOBALS['TYPO3_CONF_VARS']['FE']['secureFormmail'])        {
+                               if (substr($hF_key, -1) != '.') {
+                                       $hF_value = $this->cObjGetSingle($hF_conf, $conf['hiddenFields.'][$hF_key . '.'], 'hiddenfields');
+                                       if (strlen($hF_value) && t3lib_div::inList('recipient_copy,recipient', $hF_key)) {
+                                               if ($GLOBALS['TYPO3_CONF_VARS']['FE']['secureFormmail']) {
                                                        continue;
                                                }
                                                $hF_value = $GLOBALS['TSFE']->codeString($hF_value);
                                        }
-                                       $hiddenfields.= '<input type="hidden" name="'.$hF_key.'" value="'.htmlspecialchars($hF_value).'" />';
+                                       $hiddenfields .= '<input type="hidden" name="' . $hF_key . '" value="' . htmlspecialchars($hF_value) . '" />';
                                }
                        }
                }
 
                        // Wrap all hidden fields in a div tag (see http://bugs.typo3.org/view.php?id=678)
-               $hiddenfields = '<div style="display:none;">'.$hiddenfields.'</div>';
-
-               if ($conf['REQ'])       {
-                       $validateForm=' onsubmit="return validateForm(\''.$formname.'\',\''.implode(',',$fieldlist).'\','.t3lib_div::quoteJSvalue($conf['goodMess']).','.t3lib_div::quoteJSvalue($conf['badMess']).','.t3lib_div::quoteJSvalue($conf['emailMess']).')"';
-                       $GLOBALS['TSFE']->additionalHeaderData['JSFormValidate'] = '<script type="text/javascript" src="'.$GLOBALS['TSFE']->absRefPrefix.'t3lib/jsfunc.validateform.js"></script>';
-               } else $validateForm='';
+               $hiddenfields = '<div style="display:none;">' . $hiddenfields . '</div>';
+
+               if ($conf['REQ']) {
+                       $validateForm = ' onsubmit="return validateForm(\'' . $formname . '\',\'' . implode(',', $fieldlist)
+                               . '\',' . t3lib_div::quoteJSvalue($conf['goodMess']) . ',' .
+                               t3lib_div::quoteJSvalue($conf['badMess']) . ',' .
+                               t3lib_div::quoteJSvalue($conf['emailMess']) . ')"';
+                       $GLOBALS['TSFE']->additionalHeaderData['JSFormValidate'] = '<script type="text/javascript" src="' .
+                               t3lib_div::createVersionNumberedFilename($GLOBALS['TSFE']->absRefPrefix .
+                               't3lib/jsfunc.validateform.js') . '"></script>';
+               } else {
+                       $validateForm = '';
+               }
 
                        // Create form tag:
-               $theTarget = ($theRedirect?$LD['target']:$LD_A['target']);
+               $theTarget = ($theRedirect ? $LD['target'] : $LD_A['target']);
                $content = array(
-                       '<form'.
-                               ' action="'.htmlspecialchars($action).'"'.
-                               ' id="'.$formname.'"'.($xhtmlStrict ? '' : ' name="'.$formname.'"').
-                               ' enctype="'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'].'"'.
-                               ' method="'.($conf['method']?$conf['method']:'post').'"'.
-                               ($theTarget ? ' target="'.$theTarget.'"' : '').
-                               $validateForm.
-                               '>',
-                       $hiddenfields.$content,
+                       '<form' . ' action="' . htmlspecialchars($action) . '"' . ' id="' .
+                       $formname . '"' . ($xhtmlStrict ? '' : ' name="' . $formname . '"') .
+                       ' enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '"' .
+                       ' method="' . ($conf['method'] ? $conf['method'] : 'post') . '"' .
+                       ($theTarget ? ' target="' . $theTarget . '"' : '') .
+                       $validateForm . '>', $hiddenfields . $content,
                        '</form>'
                );
 
-               if ($conf['arrayReturnMode'])   {
-                       $content['validateForm']=$validateForm;
-                       $content['formname']=$formname;
+               if ($conf['arrayReturnMode']) {
+                       $content['validateForm'] = $validateForm;
+                       $content['formname'] = $formname;
                        return $content;
                } else {
-                       return implode('',$content);
+                       return implode('', $content);
                }
        }
 
        /**
         * Rendering the cObject, SEARCHRESULT
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=368&cHash=d00731cd7b
         */
-       function SEARCHRESULT($conf)    {
-               if (t3lib_div::_GP('sword') && t3lib_div::_GP('scols')) {
+       function SEARCHRESULT($conf) {
+               if (t3lib_div::_GP('sword') && t3lib_div::_GP('scols')) {
                        $search = t3lib_div::makeInstance('tslib_search');
                        $search->register_and_explode_search_string(t3lib_div::_GP('sword'));
-                       $search->register_tables_and_columns(t3lib_div::_GP('scols'),$conf['allowedCols']);
+                       $search->register_tables_and_columns(t3lib_div::_GP('scols'), $conf['allowedCols']);
                                // depth
-                       $depth=100;
+                       $depth = 100;
                                // the startId is found
-                       $theStartId=0;
-                       if (t3lib_div::testInt(t3lib_div::_GP('stype')))        {
-                               $temp_theStartId=t3lib_div::_GP('stype');
+                       $theStartId = 0;
+                       if (t3lib_div::testInt(t3lib_div::_GP('stype'))) {
+                               $temp_theStartId = t3lib_div::_GP('stype');
                                $rootLine = $GLOBALS['TSFE']->sys_page->getRootLine($temp_theStartId);
                                        // The page MUST have a rootline with the Level0-page of the current site inside!!
                                foreach ($rootLine as $val) {
-                                       if($val['uid']==$GLOBALS['TSFE']->tmpl->rootLine[0]['uid'])     {
+                                       if ($val['uid'] == $GLOBALS['TSFE']->tmpl->rootLine[0]['uid']) {
                                                $theStartId = $temp_theStartId;
                                        }
                                }
-                       } else if (t3lib_div::_GP('stype'))     {
-                               if (substr(t3lib_div::_GP('stype'),0,1)=='L')   {
-                                       $pointer = intval(substr(t3lib_div::_GP('stype'),1));
+                       } else if (t3lib_div::_GP('stype')) {
+                               if (substr(t3lib_div::_GP('stype'), 0, 1) == 'L') {
+                                       $pointer = intval(substr(t3lib_div::_GP('stype'), 1));
                                        $theRootLine = $GLOBALS['TSFE']->tmpl->rootLine;
                                                // location Data:
-                                       $locDat_arr = explode(':',t3lib_div::_POST('locationData'));
+                                       $locDat_arr = explode(':', t3lib_div::_POST('locationData'));
                                        $pId = intval($locDat_arr[0]);
-                                       if ($pId)       {
+                                       if ($pId) {
                                                $altRootLine = $GLOBALS['TSFE']->sys_page->getRootLine($pId);
                                                ksort($altRootLine);
-                                               if (count($altRootLine))        {
+                                               if (count($altRootLine)) {
                                                                // check if the rootline has the real Level0 in it!!
-                                                       $hitRoot=0;
-                                                       $theNewRoot=array();
+                                                       $hitRoot = 0;
+                                                       $theNewRoot = array();
                                                        foreach ($altRootLine as $val) {
-                                                               if($hitRoot || $val['uid']==$GLOBALS['TSFE']->tmpl->rootLine[0]['uid']) {
-                                                                       $hitRoot=1;
-                                                                       $theNewRoot[]=$val;
+                                                               if ($hitRoot || $val['uid'] == $GLOBALS['TSFE']->tmpl->rootLine[0]['uid']) {
+                                                                       $hitRoot = 1;
+                                                                       $theNewRoot[] = $val;
                                                                }
                                                        }
-                                                       if ($hitRoot)   {
-                                                               $theRootLine = $theNewRoot;             // Override the real rootline if any thing
+                                                       if ($hitRoot) {
+                                                               $theRootLine = $theNewRoot; // Override the real rootline if any thing
                                                        }
                                                }
                                        }
-                                       $key = $this->getKey($pointer,$theRootLine);
+                                       $key = $this->getKey($pointer, $theRootLine);
                                        $theStartId = $theRootLine[$key]['uid'];
                                }
                        }
-                       if (!$theStartId)       {
+                       if (!$theStartId) {
                                        // If not set, we use current page
                                $theStartId = $GLOBALS['TSFE']->id;
                        }
                                // generate page-tree
-                       $search->pageIdList.= $this->getTreeList(-1*$theStartId,$depth);
+                       $search->pageIdList .= $this->getTreeList(-1 * $theStartId, $depth);
 
-                       $endClause = 'pages.uid IN ('.$search->pageIdList.')
-                               AND pages.doktype in ('.$GLOBALS['TYPO3_CONF_VARS']['FE']['content_doktypes'].($conf['addExtUrlsAndShortCuts']?',3,4':'').')
-                               AND pages.no_search=0'.
-                               $this->enableFields($search->fTable).
-                               $this->enableFields('pages');
+                       $endClause = 'pages.uid IN (' . $search->pageIdList . ')
+                               AND pages.doktype in (' .
+                                       $GLOBALS['TYPO3_CONF_VARS']['FE']['content_doktypes'] . ($conf['addExtUrlsAndShortCuts'] ? ',3,4' : '') .
+                               ')
+                               AND pages.no_search=0' . $this->enableFields($search->fTable) . $this->enableFields('pages');
 
-                       if ($conf['languageField.'][$search->fTable])   {
-                               $endClause.= ' AND '.$search->fTable.'.'.$conf['languageField.'][$search->fTable].' = '.intval($GLOBALS['TSFE']->sys_language_uid);     // (using sys_language_uid which is the ACTUAL language of the page. sys_language_content is only for selecting DISPLAY content!)
+                       if ($conf['languageField.'][$search->fTable]) {
+                                       // (using sys_language_uid which is the ACTUAL language of the page.
+                                       // sys_language_content is only for selecting DISPLAY content!)
+                               $endClause .= ' AND ' . $search->fTable . '.' . $conf['languageField.'][$search->fTable] .
+                                       ' = ' .
+                               intval($GLOBALS['TSFE']->sys_language_uid);
                        }
 
                                // build query
                        $search->build_search_query($endClause);
 
                                // count...
-                       if (t3lib_div::testInt(t3lib_div::_GP('scount')))       {
+                       if (t3lib_div::testInt(t3lib_div::_GP('scount'))) {
                                $search->res_count = t3lib_div::_GP('scount');
                        } else {
                                $search->count_query();
@@ -2314,78 +2576,94 @@ class tslib_cObj {
 
                                // range
                        $spointer = intval(t3lib_div::_GP('spointer'));
-                       if (isset($conf['range']))      {
+                       if (isset($conf['range'])) {
                                $theRange = intval($conf['range']);
                        } else {
                                $theRange = 20;
                        }
 
                                // Order By:
-                       if (!$conf['noOrderBy'])        {
+                       if (!$conf['noOrderBy']) {
                                $search->queryParts['ORDERBY'] = 'pages.lastUpdated, pages.tstamp';
                        }
 
-                       $search->queryParts['LIMIT'] = $spointer.','.$theRange;
+                       $search->queryParts['LIMIT'] = $spointer . ',' . $theRange;
 
                                // search...
                        $search->execute_query();
-                       if ($GLOBALS['TYPO3_DB']->sql_num_rows($search->result))        {
+                       if ($GLOBALS['TYPO3_DB']->sql_num_rows($search->result)) {
                                $GLOBALS['TSFE']->register['SWORD_PARAMS'] = $search->get_searchwords();
 
                                $total = $search->res_count;
-                               $rangeLow = t3lib_div::intInRange($spointer+1,1,$total);
-                               $rangeHigh = t3lib_div::intInRange($spointer+$theRange,1,$total);
+                               $rangeLow = t3lib_div::intInRange($spointer + 1, 1, $total);
+                               $rangeHigh = t3lib_div::intInRange($spointer + $theRange, 1, $total);
                                        // prev/next url:
-                               $LD = $GLOBALS['TSFE']->tmpl->linkData($GLOBALS['TSFE']->page,$conf['target'],1,'', '', $this->getClosestMPvalueForPage($GLOBALS['TSFE']->page['uid']));
-                               $targetPart = $LD['target'] ? ' target="'.htmlspecialchars($LD['target']).'"' : '';
-                               $urlParams = $this->URLqMark($LD['totalURL'],
-                                               '&sword='.rawurlencode(t3lib_div::_GP('sword')).
-                                               '&scols='.rawurlencode(t3lib_div::_GP('scols')).
-                                               '&stype='.rawurlencode(t3lib_div::_GP('stype')).
-                                               '&scount='.$total);
+                               $LD = $GLOBALS['TSFE']->tmpl->linkData(
+                                       $GLOBALS['TSFE']->page,
+                                       $conf['target'],
+                                       1,
+                                       '',
+                                       '',
+                                       $this->getClosestMPvalueForPage($GLOBALS['TSFE']->page['uid'])
+                               );
+                               $targetPart = $LD['target'] ? ' target="' . htmlspecialchars($LD['target']) . '"' : '';
+                               $urlParams = $this->URLqMark(
+                                       $LD['totalURL'],
+                                       '&sword=' . rawurlencode(t3lib_div::_GP('sword')) .
+                                       '&scols=' . rawurlencode(t3lib_div::_GP('scols')) .
+                                       '&stype=' . rawurlencode(t3lib_div::_GP('stype')) .
+                                       '&scount=' . $total
+                               );
                                        // substitution:
-                               $result= $this->cObjGetSingle($conf['layout'],$conf['layout.'], 'layout');
-                               $result = str_replace('###RANGELOW###',$rangeLow,$result);
-                               $result = str_replace('###RANGEHIGH###',$rangeHigh,$result);
-                               $result = str_replace('###TOTAL###',$total,$result);
+                               $result = $this->cObjGetSingle($conf['layout'], $conf['layout.'], 'layout');
+                               $result = str_replace('###RANGELOW###', $rangeLow, $result);
+                               $result = str_replace('###RANGEHIGH###', $rangeHigh, $result);
+                               $result = str_replace('###TOTAL###', $total, $result);
 
-                               if ($rangeHigh<$total)  {
+                               if ($rangeHigh < $total) {
                                        $next = $this->cObjGetSingle($conf['next'], $conf['next.'], 'next');
-                                       $next = '<a href="'.htmlspecialchars($urlParams.'&spointer='.($spointer+$theRange)).'"'.$targetPart.$GLOBALS['TSFE']->ATagParams.'>'.$next.'</a>';
-                               } else $next='';
-                               $result = str_replace('###NEXT###',$next,$result);
-
-                               if ($rangeLow>1)        {
+                                       $next = '<a href="' . htmlspecialchars($urlParams .
+                                               '&spointer=' . ($spointer + $theRange)) . '"' .
+                                               $targetPart . $GLOBALS['TSFE']->ATagParams . '>' . $next . '</a>';
+                               } else
+                                       $next = '';
+                               $result = str_replace('###NEXT###', $next, $result);
+
+                               if ($rangeLow > 1) {
                                        $prev = $this->cObjGetSingle($conf['prev'], $conf['prev.'], 'prev');
-                                       $prev = '<a href="'.htmlspecialchars($urlParams.'&spointer='.($spointer-$theRange)).'"'.$targetPart.$GLOBALS['TSFE']->ATagParams.'>'.$prev.'</a>';
-                               } else $prev='';
-                               $result = str_replace('###PREV###',$prev,$result);
+                                       $prev = '<a href="' . htmlspecialchars($urlParams .
+                                               '&spointer=' . ($spointer - $theRange)) . '"' .
+                                               $targetPart . $GLOBALS['TSFE']->ATagParams . '>' . $prev . '</a>';
+                               } else
+                                       $prev = '';
+                               $result = str_replace('###PREV###', $prev, $result);
 
                                        // searching result
-                               $theValue = $this->cObjGetSingle($conf['resultObj'], $conf['resultObj.'],'resultObj');
+                               $theValue = $this->cObjGetSingle($conf['resultObj'], $conf['resultObj.'], 'resultObj');
                                $cObj = t3lib_div::makeInstance('tslib_cObj');
-                               $cObj->setParent($this->data,$this->currentRecord);
-                               $renderCode='';
-                               while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($search->result))   {
-                                               // versionOL() here? This is search result displays, is that possible to preview anyway? Or are records selected here already future versions?
+                               $cObj->setParent($this->data, $this->currentRecord);
+                               $renderCode = '';
+                               while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($search->result)) {
+                                               // versionOL() here? This is search result displays, is that possible to preview anyway?
+                                               // Or are records selected here already future versions?
                                        $cObj->start($row);
-                                       $renderCode.=$cObj->cObjGetSingle($conf['renderObj'], $conf['renderObj.'],'renderObj');
+                                       $renderCode .= $cObj->cObjGetSingle($conf['renderObj'], $conf['renderObj.'], 'renderObj');
                                }
-                               $theValue.=$this->wrap($renderCode,$conf['renderWrap']);
-                               $theValue = str_replace('###RESULT###',$theValue,$result);
+                               $theValue .= $this->wrap($renderCode, $conf['renderWrap']);
+                               $theValue = str_replace('###RESULT###', $theValue, $result);
                        } else {
-                               $theValue = $this->cObjGetSingle($conf['noResultObj'], $conf['noResultObj.'],'noResultObj');
+                               $theValue = $this->cObjGetSingle($conf['noResultObj'], $conf['noResultObj.'], 'noResultObj');
                        }
 
-                       $GLOBALS['TT']->setTSlogMessage('Search in fields:   '.$search->listOfSearchFields);
+                       $GLOBALS['TT']->setTSlogMessage('Search in fields:   ' . $search->listOfSearchFields);
 
                                // wrapping
-                       $content=$theValue;
+                       $content = $theValue;
                        if ($conf['wrap']) {
-                               $content=$this->wrap($content, $conf['wrap']);
+                               $content = $this->wrap($content, $conf['wrap']);
                        }
                        if ($conf['stdWrap.']) {
-                               $content=$this->stdWrap($content, $conf['stdWrap.']);
+                               $content = $this->stdWrap($content, $conf['stdWrap.']);
                        }
                                // returning
                        $GLOBALS['TSFE']->set_no_cache();
@@ -2396,40 +2674,39 @@ class tslib_cObj {
        /**
         * Rendering the cObject, PHP_SCRIPT, PHP_SCRIPT_INT and PHP_SCRIPT_EXT
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @param       string          If "INT", then rendering "PHP_SCRIPT_INT"; If "EXT", then rendering "PHP_SCRIPT_EXT"; Default is rendering "PHP_SCRIPT" (cached)
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=370&cHash=aa107f2ad8
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=371&cHash=53f71d025e
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=372&cHash=91fe391e1c
         */
-       function PHP_SCRIPT($conf,$ext='')      {
+       function PHP_SCRIPT($conf, $ext = '') {
                $incFile = $GLOBALS['TSFE']->tmpl->getFileName($conf['file']);
-               $content='';
-               if ($incFile && $GLOBALS['TSFE']->checkFileInclude($incFile))   {
-                       switch($ext)    {
-                               case 'INT':
-                               case 'EXT':
-                                       $substKey = $ext.'_SCRIPT.'.$GLOBALS['TSFE']->uniqueHash();
-                                       $content.='<!--'.$substKey.'-->';
-                                       $GLOBALS['TSFE']->config[$ext.'incScript'][$substKey] = array(
-                                               'file'=>$incFile,
-                                               'conf'=>$conf,
-                                               'type'=>'SCRIPT'
+               $content = '';
+               if ($incFile && $GLOBALS['TSFE']->checkFileInclude($incFile)) {
+                       switch ($ext) {
+                               case 'INT' :
+                               case 'EXT' :
+                                       $substKey = $ext . '_SCRIPT.' . $GLOBALS['TSFE']->uniqueHash();
+                                       $content .= '<!--' . $substKey . '-->';
+                                       $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey] = array(
+                                               'file' => $incFile, 'conf' => $conf, 'type' => 'SCRIPT'
                                        );
-                                       if ($ext=='INT')        {
-                                               $GLOBALS['TSFE']->config[$ext.'incScript'][$substKey]['cObj'] = serialize($this);
+                                       if ($ext == 'INT') {
+                                               $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey]['cObj'] = serialize($this);
                                        } else {
-                                               $GLOBALS['TSFE']->config[$ext.'incScript'][$substKey]['data'] = $this->data;
+                                               $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey]['data'] = $this->data;
                                        }
                                break;
-                               default:
+                               default :
                                                // Added 31-12-00: Make backup...
                                        $this->oldData = $this->data;
+                                       $RESTORE_OLD_DATA = FALSE;
                                                // Include file..
-                                       include('./'.$incFile);
+                                       include ('./' . $incFile);
                                                // Added 31-12-00: restore...
-                                       if ($RESTORE_OLD_DATA)  {
+                                       if ($RESTORE_OLD_DATA) {
                                                $this->data = $this->oldData;
                                        }
                                break;
@@ -2441,140 +2718,165 @@ class tslib_cObj {
        /**
         * Rendering the cObject, TEMPLATE
         *
-        * @param       array           Array of TypoScript properties
+        * @param       array           array of TypoScript properties
         * @return      string          Output
         * @link http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=373&cHash=109a171b1e
         * @see substituteMarkerArrayCached()
         */
-       function TEMPLATE($conf)        {
-               $subparts = Array();
-               $marks = Array();
-               $wraps = Array();
-               $content='';
+       function TEMPLATE($conf) {
+               $subparts = array();
+               $marks = array();
+               $wraps = array();
+               $content = '';
 
-               list($PRE,$POST) = explode('|',$conf['markerWrap'] ? $conf['markerWrap'] : '### | ###');
+               list ($PRE, $POST) = explode('|', $conf['markerWrap'] ? $conf['markerWrap'] : '### | ###');
                $POST = trim($POST);
-               $PRE  = trim($PRE);
+               $PRE = trim($PRE);
 
                        // Getting the content
-               $content = $this->cObjGetSingle($conf['template'],$conf['template.'],'template');
-               if ($conf['workOnSubpart'])     {
-                       $content = $this->getSubpart($content, $PRE.$conf['workOnSubpart'].$POST);
+               $content = $this->cObjGetSingle($conf['template'], $conf['template.'], 'template');
+               if ($conf['workOnSubpart']) {
+                       $content = $this->getSubpart($content, $PRE . $conf['workOnSubpart'] . $POST);
                }
 
                        // Fixing all relative paths found:
-               if ($conf['relPathPrefix'])     {
+               if ($conf['relPathPrefix']) {
                        $htmlParser = t3lib_div::makeInstance('t3lib_parsehtml');
-                       $content = $htmlParser->prefixResourcePath($conf['relPathPrefix'],$content,$conf['relPathPrefix.']);
+                       $content = $htmlParser->prefixResourcePath($conf['relPathPrefix'], $content, $conf['relPathPrefix.']);
                }
 
-               if ($content)   {
-                       if ($conf['nonCachedSubst'])    {               // NON-CACHED:
+               if ($content) {
+                       if ($conf['nonCachedSubst']) { // NON-CACHED:
                                        // Getting marks
-                               if (is_array($conf['marks.']))  {
+                               if (is_array($conf['marks.'])) {
                                        foreach ($conf['marks.'] as $theKey => $theValue) {
-                                               if (!strstr($theKey,'.'))       {
+                                               if (!strstr($theKey, '.')) {
                                                        $content = str_replace(
-                                                               $PRE.$theKey.$POST,
-                                                               $this->cObjGetSingle($theValue,$conf['marks.'][$theKey.'.'],'marks.'.$theKey),
+                                                               $PRE . $theKey . $POST,
+                                                               $this->cObjGetSingle(
+                                                                       $theValue, $conf['marks.'][$theKey . '.'],
+                                                                       'marks.' . $theKey
+                                                               ),
                                                                $content);
                                                }
                                        }
                                }
 
                                        // Getting subparts.
-                               if (is_array($conf['subparts.']))       {
+                               if (is_array($conf['subparts.'])) {
                                        foreach ($conf['subparts.'] as $theKey => $theValue) {
-                                               if (!strstr($theKey,'.'))       {
-                                                       $subpart = $this->getSubpart($content, $PRE.$theKey.$POST);
-                                                       if ($subpart)   {
+                                               if (!strstr($theKey, '.')) {
+                                                       $subpart = $this->getSubpart($content, $PRE . $theKey . $POST);
+                                                       if ($subpart) {
                                                                $this->setCurrentVal($subpart);
                                                                $content = $this->substituteSubpart(
                                                                        $content,
-                                                                       $PRE.$theKey.$POST,
-                                                                       $this->cObjGetSingle($theValue,$conf['subparts.'][$theKey.'.'],'subparts.'.$theKey),
-                                                                       1
-                                                               );
+                                                                       $PRE . $theKey . $POST,
+                                                                       $this->cObjGetSingle(
+                                                                               $theValue,
+                                                                               $conf['subparts.'][$theKey . '.'],
+                                                                               'subparts.' . $theKey),
+                                                                               TRUE
+                                                                       );
                                                        }
                                                }
                                        }
                                }
                                        // Getting subpart wraps
-                               if (is_array($conf['wraps.']))  {
+                               if (is_array($conf['wraps.'])) {
                                        foreach ($conf['wraps.'] as $theKey => $theValue) {
-                                               if (!strstr($theKey,'.'))       {
-                                                       $subpart = $this->getSubpart($content, $PRE.$theKey.$POST);
-                                                       if ($subpart)   {
+                                               if (!strstr($theKey, '.')) {
+                                                       $subpart = $this->getSubpart($content, $PRE . $theKey . $POST);
+                                                       if ($subpart) {
                                                                $this->setCurrentVal($subpart);
                                                                $content = $this->substituteSubpart(
                                                                        $content,
-                                                                       $PRE.$theKey.$POST,
-                                                                       explode('|',$this->cObjGetSingle($theValue,$conf['wraps.'][$theKey.'.'],'wraps.'.$theKey)),
-                                                                       1
+                                                                       $PRE . $theKey . $POST,
+                                                                       explode('|', $this->cObjGetSingle(
+                                                                               $theValue, $conf['wraps.'][$theKey . '.'],
+                                                                               'wraps.' . $theKey)
+                                                                       ),
+                                                                       TRUE
                                                                );
                                                        }
                                                }
                                        }
                                }
-                       } else {        // CACHED
+                       } else { // CACHED
                                        // Getting subparts.
-                               if (is_array($conf['subparts.']))       {
+                               if (is_array($conf['subparts.'])) {
                                        foreach ($conf['subparts.'] as $theKey => $theValue) {
-                                               if (!strstr($theKey,'.'))       {
-                                                       $subpart = $this->getSubpart($content, $PRE.$theKey.$POST);
-                                                       if ($subpart)   {
-                                                               $GLOBALS['TSFE']->register['SUBPART_'.$theKey] = $subpart;
+                                               if (!strstr($theKey, '.')) {
+                                                       $subpart = $this->getSubpart($content, $PRE . $theKey . $POST);
+                                                       if ($subpart) {
+                                                               $GLOBALS['TSFE']->register['SUBPART_' . $theKey] = $subpart;
                                                                $subparts[$theKey]['name'] = $theValue;
-                                                               $subparts[$theKey]['conf'] = $conf['subparts.'][$theKey.'.'];
+                                                               $subparts[$theKey]['conf'] = $conf['subparts.'][$theKey . '.'];
                                                        }
                                                }
                                        }
                                }
-                                       // Getting marks
-                               if (is_array($conf['marks.']))  {
+                               // Getting marks
+                               if (is_array($conf['marks.'])) {
                                        foreach ($conf['marks.'] as $theKey => $theValue) {
-                                               if (!strstr($theKey,'.'))       {
+                                               if (!strstr($theKey, '.')) {
                                                        $marks[$theKey]['name'] = $theValue;
-                                                       $marks[$theKey]['conf'] = $conf['marks.'][$theKey.'.'];
+                                                       $marks[$theKey]['conf'] = $conf['marks.'][$theKey . '.'];
                                                }
                                        }
                                }
                                        // Getting subpart wraps
-                               if (is_array($conf['wraps.']))  {
+                               if (is_array($conf['wraps.'])) {
                                        foreach ($conf['wraps.'] as $theKey => $theValue) {
-                                               if (!strstr($theKey,'.'))       {
+                                               if (!strstr($theKey, '.')) {
                                                        $wraps[$theKey]['name'] = $theValue;
-                                                       $wraps[$theKey]['conf'] = $conf['wraps.'][$theKey.'.'];
+                                                       $wraps[$theKey]['conf'] = $conf['wraps.'][$theKey . '.'];
                                                }
                                        }
                                }
                                        // Getting subparts
-                               $subpartArray =array();
+                               $subpartArray = array();
                                foreach ($subparts as $theKey => $theValue) {
-                                               // Set current with the content of the subpart...
-                             &n