Index: t3lib/class.t3lib_parsehtml.php
===================================================================
--- t3lib/class.t3lib_parsehtml.php	(revision 9501)
+++ t3lib/class.t3lib_parsehtml.php	(revision )
@@ -1,29 +1,29 @@
 <?php
 /***************************************************************
-*  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!
-***************************************************************/
+ *  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 class with functions for parsing HTML code.
  *
@@ -38,38 +38,38 @@
  *
  *
  *  106: class t3lib_parsehtml
- *  123:     function getSubpart($content, $marker)
+ *  123:	 function getSubpart($content, $marker)
- *  156:     function substituteSubpart($content,$marker,$subpartContent,$recursive=1,$keepMarker=0)
+ *  156:	 function substituteSubpart($content,$marker,$subpartContent,$recursive=1,$keepMarker=0)
  *
- *              SECTION: Parsing HTML code
+ *			  SECTION: Parsing HTML code
- *  247:     function splitIntoBlock($tag,$content,$eliminateExtraEndTags=0)
+ *  247:	 function splitIntoBlock($tag,$content,$eliminateExtraEndTags=0)
- *  308:     function splitIntoBlockRecursiveProc($tag,$content,&$procObj,$callBackContent,$callBackTags,$level=0)
+ *  308:	 function splitIntoBlockRecursiveProc($tag,$content,&$procObj,$callBackContent,$callBackTags,$level=0)
- *  344:     function splitTags($tag,$content)
+ *  344:	 function splitTags($tag,$content)
- *  378:     function getAllParts($parts,$tag_parts=1,$include_tag=1)
+ *  378:	 function getAllParts($parts,$tag_parts=1,$include_tag=1)
- *  396:     function removeFirstAndLastTag($str)
+ *  396:	 function removeFirstAndLastTag($str)
- *  412:     function getFirstTag($str)
+ *  412:	 function getFirstTag($str)
- *  426:     function getFirstTagName($str,$preserveCase=FALSE)
+ *  426:	 function getFirstTagName($str,$preserveCase=FALSE)
- *  445:     function get_tag_attributes($tag,$deHSC=0)
+ *  445:	 function get_tag_attributes($tag,$deHSC=0)
- *  486:     function split_tag_attributes($tag)
+ *  486:	 function split_tag_attributes($tag)
- *  524:     function checkTagTypeCounts($content,$blockTags='a,b,blockquote,body,div,em,font,form,h1,h2,h3,h4,h5,h6,i,li,map,ol,option,p,pre,select,span,strong,table,td,textarea,tr,u,ul', $soloTags='br,hr,img,input,area')
+ *  524:	 function checkTagTypeCounts($content,$blockTags='a,b,blockquote,body,div,em,font,form,h1,h2,h3,h4,h5,h6,i,li,map,ol,option,p,pre,select,span,strong,table,td,textarea,tr,u,ul', $soloTags='br,hr,img,input,area')
  *
- *              SECTION: Clean HTML code
+ *			  SECTION: Clean HTML code
- *  617:     function HTMLcleaner($content, $tags=array(),$keepAll=0,$hSC=0,$addConfig=array())
+ *  617:	 function HTMLcleaner($content, $tags=array(),$keepAll=0,$hSC=0,$addConfig=array())
- *  814:     function bidir_htmlspecialchars($value,$dir)
+ *  814:	 function bidir_htmlspecialchars($value,$dir)
- *  837:     function prefixResourcePath($main_prefix,$content,$alternatives=array(),$suffix='')
+ *  837:	 function prefixResourcePath($main_prefix,$content,$alternatives=array(),$suffix='')
- *  919:     function prefixRelPath($prefix,$srcVal,$suffix='')
+ *  919:	 function prefixRelPath($prefix,$srcVal,$suffix='')
- *  937:     function cleanFontTags($value,$keepFace=0,$keepSize=0,$keepColor=0)
+ *  937:	 function cleanFontTags($value,$keepFace=0,$keepSize=0,$keepColor=0)
- *  967:     function mapTags($value,$tags=array(),$ltChar='<',$ltChar2='<')
+ *  967:	 function mapTags($value,$tags=array(),$ltChar='<',$ltChar2='<')
- *  982:     function unprotectTags($content,$tagList='')
+ *  982:	 function unprotectTags($content,$tagList='')
- * 1015:     function stripTagsExcept($value,$tagList)
+ * 1015:	 function stripTagsExcept($value,$tagList)
- * 1038:     function caseShift($str,$flag,$cacheKey='')
+ * 1038:	 function caseShift($str,$flag,$cacheKey='')
- * 1065:     function compileTagAttribs($tagAttrib,$meta=array(), $xhtmlClean=0)
+ * 1065:	 function compileTagAttribs($tagAttrib,$meta=array(), $xhtmlClean=0)
- * 1093:     function get_tag_attributes_classic($tag,$deHSC=0)
+ * 1093:	 function get_tag_attributes_classic($tag,$deHSC=0)
- * 1106:     function indentLines($content, $number=1, $indentChar=TAB)
+ * 1106:	 function indentLines($content, $number=1, $indentChar=TAB)
- * 1123:     function HTMLparserConfig($TSconfig,$keepTags=array())
+ * 1123:	 function HTMLparserConfig($TSconfig,$keepTags=array())
- * 1247:     function XHTML_clean($content)
+ * 1247:	 function XHTML_clean($content)
- * 1269:     function processTag($value,$conf,$endTag,$protected=0)
+ * 1269:	 function processTag($value,$conf,$endTag,$protected=0)
- * 1315:     function processContent($value,$dir,$conf)
+ * 1315:	 function processContent($value,$dir,$conf)
  *
  * TOTAL FUNCTIONS: 28
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -77,24 +77,6 @@
  */
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 /**
  * Functions for parsing HTML.
  * You are encouraged to use this class in your own applications
@@ -103,7 +85,7 @@
  * @package TYPO3
  * @subpackage t3lib
  */
-class t3lib_parsehtml	{
+class t3lib_parsehtml {
 
 	protected $caseShift_cache = array();
 
@@ -118,20 +100,20 @@
 	public static function getSubpart($content, $marker) {
 		$start = strpos($content, $marker);
 
-		if ($start === false) {
+		if ($start === FALSE) {
 			return '';
 		}
 
 		$start += strlen($marker);
-		$stop   = strpos($content, $marker, $start);
+		$stop = strpos($content, $marker, $start);
 
 			// Q: What shall get returned if no stop marker is given
 			// /*everything till the end*/ or nothing?
-		if ($stop===false) {
+		if ($stop === FALSE) {
 			return ''; /*substr($content, $start)*/
 		}
 
-		$content = substr($content, $start, $stop-$start);
+		$content = substr($content, $start, $stop - $start);
 
 		$matches = array();
 		if (preg_match('/^([^\<]*\-\-\>)(.*)(\<\!\-\-[^\>]*)$/s', $content, $matches) === 1) {
@@ -164,21 +146,21 @@
 	public static function substituteSubpart($content, $marker, $subpartContent, $recursive = 1, $keepMarker = 0) {
 		$start = strpos($content, $marker);
 
-		if ($start === false) {
+		if ($start === FALSE) {
 			return $content;
 		}
 
 		$startAM = $start + strlen($marker);
-		$stop    = strpos($content, $marker, $startAM);
+		$stop = strpos($content, $marker, $startAM);
 
-		if ($stop===false) {
+		if ($stop === FALSE) {
 			return $content;
 		}
 
-		$stopAM  = $stop + strlen($marker);
+		$stopAM = $stop + strlen($marker);
-		$before  = substr($content, 0, $start);
+		$before = substr($content, 0, $start);
-		$after   = substr($content, $stopAM);
+		$after = substr($content, $stopAM);
-		$between = substr($content, $startAM, $stop-$startAM);
+		$between = substr($content, $startAM, $stop - $startAM);
 
 		if ($recursive) {
 			$after = self::substituteSubpart(
@@ -193,20 +175,20 @@
 		if ($keepMarker) {
 			$matches = array();
 			if (preg_match('/^([^\<]*\-\-\>)(.*)(\<\!\-\-[^\>]*)$/s', $between, $matches) === 1) {
-				$before  .= $marker.$matches[1];
+				$before .= $marker . $matches[1];
-				$between  = $matches[2];
+				$between = $matches[2];
-				$after    = $matches[3] . $marker . $after;
+				$after = $matches[3] . $marker . $after;
 			} elseif (preg_match('/^(.*)(\<\!\-\-[^\>]*)$/s', $between, $matches) === 1) {
-				$before  .= $marker;
+				$before .= $marker;
-				$between  = $matches[1];
+				$between = $matches[1];
-				$after    = $matches[2] . $marker . $after;
+				$after = $matches[2] . $marker . $after;
 			} elseif (preg_match('/^([^\<]*\-\-\>)(.*)$/s', $between, $matches) === 1) {
-				$before  .= $marker . $matches[1];
+				$before .= $marker . $matches[1];
-				$between  = $matches[2];
+				$between = $matches[2];
-				$after    = $marker . $after;
+				$after = $marker . $after;
-			} else	{
+			} else {
 				$before .= $marker;
-				$after   = $marker . $after;
+				$after = $marker . $after;
 			}
 
 		} else {
@@ -219,9 +201,9 @@
 				$matches = array();
 				if (preg_match('/^([^\<]*\-\-\>)(.*)(\<\!\-\-[^\>]*)$/s', $between, $matches) === 1) {
 					$between = $matches[2];
-				} elseif (preg_match('/^(.*)(\<\!\-\-[^\>]*)$/s', $between, $matches)===1) {
+				} elseif (preg_match('/^(.*)(\<\!\-\-[^\>]*)$/s', $between, $matches) === 1) {
 					$between = $matches[1];
-				} elseif (preg_match('/^([^\<]*\-\-\>)(.*)$/s', $between, $matches)===1) {
+				} elseif (preg_match('/^([^\<]*\-\-\>)(.*)$/s', $between, $matches) === 1) {
 					$between = $matches[2];
 				}
 			}
@@ -234,7 +216,7 @@
 
 		if (is_array($subpartContent)) {
 			$between = $subpartContent[0] . $between . $subpartContent[1];
-		} else	{
+		} else {
 			$between = $subpartContent;
 		}
 
@@ -328,11 +310,6 @@
 	}
 
 
-
-
-
-
-
 	/************************************
 	 *
 	 * Parsing HTML code
@@ -350,52 +327,52 @@
 	 * @return	array		Even numbers in the array are outside the blocks, Odd numbers are block-content.
 	 * @see splitTags(), getAllParts(), removeFirstAndLastTag()
 	 */
-	function splitIntoBlock($tag,$content,$eliminateExtraEndTags=0)	{
+	function splitIntoBlock($tag, $content, $eliminateExtraEndTags = 0) {
-		$tags=array_unique(t3lib_div::trimExplode(',',$tag,1));
+		$tags = array_unique(t3lib_div::trimExplode(',', $tag, 1));
-		$regexStr = '/\<\/?('.implode('|', $tags).')(\s*\>|\s[^\>]*\>)/si';
+		$regexStr = '/\<\/?(' . implode('|', $tags) . ')(\s*\>|\s[^\>]*\>)/si';
 
 		$parts = preg_split($regexStr, $content);
 
-		$newParts=array();
+		$newParts = array();
-		$pointer=strlen($parts[0]);
+		$pointer = strlen($parts[0]);
-		$buffer=$parts[0];
+		$buffer = $parts[0];
-		$nested=0;
+		$nested = 0;
 		reset($parts);
 		next($parts);
-		while(list($k,$v)=each($parts))	{
+		while (list($k, $v) = each($parts)) {
-			$isEndTag= substr($content,$pointer,2)=='</' ? 1 : 0;
+			$isEndTag = substr($content, $pointer, 2) == '</' ? 1 : 0;
-			$tagLen = strcspn(substr($content,$pointer),'>')+1;
+			$tagLen = strcspn(substr($content, $pointer), '>') + 1;
 
-			if (!$isEndTag)	{	// We meet a start-tag:
+			if (!$isEndTag) { // We meet a start-tag:
-				if (!$nested)	{	// Ground level:
+				if (!$nested) { // Ground level:
-					$newParts[]=$buffer;	// previous buffer stored
+					$newParts[] = $buffer; // previous buffer stored
-					$buffer='';
+					$buffer = '';
 				}
-				$nested++;	// We are inside now!
+				$nested++; // We are inside now!
-				$mbuffer=substr($content,$pointer,strlen($v)+$tagLen);	// New buffer set and pointer increased
+				$mbuffer = substr($content, $pointer, strlen($v) + $tagLen); // New buffer set and pointer increased
-				$pointer+=strlen($mbuffer);
+				$pointer += strlen($mbuffer);
-				$buffer.=$mbuffer;
+				$buffer .= $mbuffer;
-			} else {	// If we meet an endtag:
+			} else { // If we meet an endtag:
-				$nested--;	// decrease nested-level
+				$nested--; // decrease nested-level
-				$eliminated=0;
+				$eliminated = 0;
-				if ($eliminateExtraEndTags && $nested<0)	{
+				if ($eliminateExtraEndTags && $nested < 0) {
-					$nested=0;
+					$nested = 0;
-					$eliminated=1;
+					$eliminated = 1;
 				} else {
-					$buffer.=substr($content,$pointer,$tagLen);	// In any case, add the endtag to current buffer and increase pointer
+					$buffer .= substr($content, $pointer, $tagLen); // In any case, add the endtag to current buffer and increase pointer
 				}
-				$pointer+=$tagLen;
+				$pointer += $tagLen;
-				if (!$nested && !$eliminated)	{	// if we're back on ground level, (and not by eliminating tags...
+				if (!$nested && !$eliminated) { // if we're back on ground level, (and not by eliminating tags...
-					$newParts[]=$buffer;
+					$newParts[] = $buffer;
-					$buffer='';
+					$buffer = '';
 				}
-				$mbuffer=substr($content,$pointer,strlen($v));	// New buffer set and pointer increased
+				$mbuffer = substr($content, $pointer, strlen($v)); // New buffer set and pointer increased
-				$pointer+=strlen($mbuffer);
+				$pointer += strlen($mbuffer);
-				$buffer.=$mbuffer;
+				$buffer .= $mbuffer;
 			}
 
 		}
-		$newParts[]=$buffer;
+		$newParts[] = $buffer;
 		return $newParts;
 	}
 
@@ -411,30 +388,34 @@
 	 * @return	string		Processed content
 	 * @see splitIntoBlock()
 	 */
-	function splitIntoBlockRecursiveProc($tag,$content,&$procObj,$callBackContent,$callBackTags,$level=0)	{
+	function splitIntoBlockRecursiveProc($tag, $content, &$procObj, $callBackContent, $callBackTags, $level = 0) {
-		$parts = $this->splitIntoBlock($tag,$content,TRUE);
+		$parts = $this->splitIntoBlock($tag, $content, TRUE);
-		foreach($parts as $k => $v)	{
+		foreach ($parts as $k => $v) {
-			if ($k%2)	{
+			if ($k % 2) {
 				$firstTagName = $this->getFirstTagName($v, TRUE);
 				$tagsArray = array();
 				$tagsArray['tag_start'] = $this->getFirstTag($v);
-				$tagsArray['tag_end'] = '</'.$firstTagName.'>';
+				$tagsArray['tag_end'] = '</' . $firstTagName . '>';
 				$tagsArray['tag_name'] = strtolower($firstTagName);
 				$tagsArray['add_level'] = 1;
-				$tagsArray['content'] = $this->splitIntoBlockRecursiveProc($tag,$this->removeFirstAndLastTag($v),$procObj,$callBackContent,$callBackTags,$level+$tagsArray['add_level']);
+				$tagsArray['content'] = $this->splitIntoBlockRecursiveProc($tag, $this->removeFirstAndLastTag($v), $procObj, $callBackContent, $callBackTags, $level + $tagsArray['add_level']);
 
-				if ($callBackTags)	$tagsArray = $procObj->$callBackTags($tagsArray,$level);
+				if ($callBackTags) {
+					$tagsArray = $procObj->$callBackTags($tagsArray, $level);
+				}
 
 				$parts[$k] =
-					$tagsArray['tag_start'].
+						$tagsArray['tag_start'] .
-					$tagsArray['content'].
+						$tagsArray['content'] .
-					$tagsArray['tag_end'];
+						$tagsArray['tag_end'];
 			} else {
-				if ($callBackContent)	$parts[$k] = $procObj->$callBackContent($parts[$k],$level);
+				if ($callBackContent) {
+					$parts[$k] = $procObj->$callBackContent($parts[$k], $level);
-			}
-		}
+				}
+			}
+		}
 
-		return implode('',$parts);
+		return implode('', $parts);
 	}
 
 	/**
@@ -447,9 +428,9 @@
 	 * @return	array		Even numbers in the array are outside the blocks, Odd numbers are block-content.
 	 * @see splitIntoBlock(), getAllParts(), removeFirstAndLastTag()
 	 */
-	function splitTags($tag,$content)	{
+	function splitTags($tag, $content) {
-		$tags = t3lib_div::trimExplode(',',$tag,1);
+		$tags = t3lib_div::trimExplode(',', $tag, 1);
-		$regexStr = '/\<('.implode('|', $tags).')(\s[^>]*)?\/?>/si';
+		$regexStr = '/\<(' . implode('|', $tags) . ')(\s[^>]*)?\/?>/si';
 		$parts = preg_split($regexStr, $content);
 
 		$pointer = strlen($parts[0]);
@@ -457,17 +438,17 @@
 		$newParts[] = $parts[0];
 		reset($parts);
 		next($parts);
-		while(list($k,$v)=each($parts))	{
+		while (list($k, $v) = each($parts)) {
-			$tagLen = strcspn(substr($content,$pointer),'>')+1;
+			$tagLen = strcspn(substr($content, $pointer), '>') + 1;
 
 				// Set tag:
-			$tag = substr($content,$pointer,$tagLen);	// New buffer set and pointer increased
+			$tag = substr($content, $pointer, $tagLen); // New buffer set and pointer increased
 			$newParts[] = $tag;
-			$pointer+= strlen($tag);
+			$pointer += strlen($tag);
 
 				// Set content:
 			$newParts[] = $v;
-			$pointer+= strlen($v);
+			$pointer += strlen($v);
 		}
 		return $newParts;
 	}
@@ -481,12 +462,14 @@
 	 * @return	array		Tag-parts/Non-tag-parts depending on input argument settings
 	 * @see splitIntoBlock(), splitTags()
 	 */
-	function getAllParts($parts,$tag_parts=1,$include_tag=1)	{
+	function getAllParts($parts, $tag_parts = 1, $include_tag = 1) {
-		$newParts=array();
+		$newParts = array();
-		foreach ($parts as $k => $v)	{
+		foreach ($parts as $k => $v) {
-			if (($k+($tag_parts?0:1))%2)	{
+			if (($k + ($tag_parts ? 0 : 1)) % 2) {
-				if (!$include_tag)	$v=$this->removeFirstAndLastTag($v);
+				if (!$include_tag) {
+					$v = $this->removeFirstAndLastTag($v);
+				}
-				$newParts[]=$v;
+				$newParts[] = $v;
 			}
 		}
 		return $newParts;
@@ -499,13 +482,13 @@
 	 * @param	string		String to process
 	 * @return	string
 	 */
-	function removeFirstAndLastTag($str)	{
+	function removeFirstAndLastTag($str) {
 			// End of first tag:
-		$start = strpos($str,'>');
+		$start = strpos($str, '>');
 			// Begin of last tag:
-		$end = strrpos($str,'<');
+		$end = strrpos($str, '<');
 			// return
-		return substr($str, $start+1, $end-$start-1);
+		return substr($str, $start + 1, $end - $start - 1);
 	}
 
 	/**
@@ -515,10 +498,10 @@
 	 * @param	string		HTML string with tags
 	 * @return	string
 	 */
-	function getFirstTag($str)	{
+	function getFirstTag($str) {
 			// First:
-		$endLen = strpos($str,'>')+1;
+		$endLen = strpos($str, '>') + 1;
-		return substr($str,0,$endLen);
+		return substr($str, 0, $endLen);
 	}
 
 	/**
@@ -529,10 +512,10 @@
 	 * @return	string		Tag name in upper case
 	 * @see getFirstTag()
 	 */
-	function getFirstTagName($str,$preserveCase=FALSE)	{
+	function getFirstTagName($str, $preserveCase = FALSE) {
 		$matches = array();
-		if (preg_match('/^\s*\<([^\s\>]+)(\s|\>)/', $str, $matches)===1)	{
+		if (preg_match('/^\s*\<([^\s\>]+)(\s|\>)/', $str, $matches) === 1) {
-			if (!$preserveCase)	{
+			if (!$preserveCase) {
 				return strtoupper($matches[1]);
 			}
 			return $matches[1];
@@ -548,35 +531,35 @@
 	 * @param	boolean		If set, the attribute values are de-htmlspecialchar'ed. Should actually always be set!
 	 * @return	array		array(Tag attributes,Attribute meta-data)
 	 */
-	function get_tag_attributes($tag,$deHSC=0)	{
+	function get_tag_attributes($tag, $deHSC = 0) {
-		list($components,$metaC) = $this->split_tag_attributes($tag);
+		list($components, $metaC) = $this->split_tag_attributes($tag);
-		$name = '';	 // attribute name is stored here
+		$name = ''; // attribute name is stored here
-		$valuemode = false;
+		$valuemode = FALSE;
 		$attributes = array();
 		$attributesMeta = array();
-		if (is_array($components))	{
+		if (is_array($components)) {
-			foreach ($components as $key => $val)	{
+			foreach ($components as $key => $val) {
-				if ($val != '=')	{	// Only if $name is set (if there is an attribute, that waits for a value), that valuemode is enabled. This ensures that the attribute is assigned it's value
+				if ($val != '=') { // Only if $name is set (if there is an attribute, that waits for a value), that valuemode is enabled. This ensures that the attribute is assigned it's value
-					if ($valuemode)	{
+					if ($valuemode) {
-						if ($name)	{
+						if ($name) {
-							$attributes[$name] = $deHSC?t3lib_div::htmlspecialchars_decode($val):$val;
+							$attributes[$name] = $deHSC ? t3lib_div::htmlspecialchars_decode($val) : $val;
-							$attributesMeta[$name]['dashType']=$metaC[$key];
+							$attributesMeta[$name]['dashType'] = $metaC[$key];
 							$name = '';
 						}
 					} else {
-						if ($namekey = preg_replace('/[^[:alnum:]_\:\-]/','',$val))	{
+						if ($namekey = preg_replace('/[^[:alnum:]_\:\-]/', '', $val)) {
 							$name = strtolower($namekey);
-							$attributesMeta[$name]=array();
+							$attributesMeta[$name] = array();
-							$attributesMeta[$name]['origTag']=$namekey;
+							$attributesMeta[$name]['origTag'] = $namekey;
 							$attributes[$name] = '';
 						}
 					}
-					$valuemode = false;
+					$valuemode = FALSE;
 				} else {
-					$valuemode = true;
+					$valuemode = TRUE;
 				}
 			}
-			return array($attributes,$attributesMeta);
+			return array($attributes, $attributesMeta);
 		}
 	}
 
@@ -589,9 +572,9 @@
 	 * @access private
 	 * @see t3lib_div::split_tag_attributes()
 	 */
-	function split_tag_attributes($tag)	{
+	function split_tag_attributes($tag) {
 		$matches = array();
-		if (preg_match('/(\<[^\s]+\s+)?(.*?)\s*(\>)?$/s', $tag, $matches)!==1)	{
+		if (preg_match('/(\<[^\s]+\s+)?(.*?)\s*(\>)?$/s', $tag, $matches) !== 1) {
 			return array(array(), array());
 		}
 		$tag_tmp = $matches[2];
@@ -599,19 +582,19 @@
 		$metaValue = array();
 		$value = array();
 		$matches = array();
-		if (preg_match_all('/("[^"]*"|\'[^\']*\'|[^\s"\'\=]+|\=)/s', $tag_tmp, $matches)>0)	{
+		if (preg_match_all('/("[^"]*"|\'[^\']*\'|[^\s"\'\=]+|\=)/s', $tag_tmp, $matches) > 0) {
-			foreach ($matches[1] as $part)	{
+			foreach ($matches[1] as $part) {
 				$firstChar = substr($part, 0, 1);
-				if ($firstChar=='"' || $firstChar=="'")	{
+				if ($firstChar == '"' || $firstChar == "'") {
 					$metaValue[] = $firstChar;
 					$value[] = substr($part, 1, -1);
-				} else	{
+				} else {
 					$metaValue[] = '';
 					$value[] = $part;
 				}
 			}
 		}
-		return array($value,$metaValue);
+		return array($value, $metaValue);
 	}
 
 	/**
@@ -627,40 +610,44 @@
 	 * @param	string		Tag names for solo tags (eg. img, br or input) in lowercase, commalist ("img,br,input")
 	 * @return	array		Analyse data.
 	 */
-	function checkTagTypeCounts($content,$blockTags='a,b,blockquote,body,div,em,font,form,h1,h2,h3,h4,h5,h6,i,li,map,ol,option,p,pre,select,span,strong,table,td,textarea,tr,u,ul', $soloTags='br,hr,img,input,area')	{
+	function checkTagTypeCounts($content, $blockTags = 'a,b,blockquote,body,div,em,font,form,h1,h2,h3,h4,h5,h6,i,li,map,ol,option,p,pre,select,span,strong,table,td,textarea,tr,u,ul', $soloTags = 'br,hr,img,input,area') {
 		$content = strtolower($content);
-		$analyzedOutput=array();
+		$analyzedOutput = array();
-		$analyzedOutput['counts']=array();	// Counts appearances of start-tags
+		$analyzedOutput['counts'] = array(); // Counts appearances of start-tags
-		$analyzedOutput['errors']=array();	// Lists ERRORS
+		$analyzedOutput['errors'] = array(); // Lists ERRORS
-		$analyzedOutput['warnings']=array();	// Lists warnings.
+		$analyzedOutput['warnings'] = array(); // Lists warnings.
-		$analyzedOutput['blocks']=array();	// Lists stats for block-tags
+		$analyzedOutput['blocks'] = array(); // Lists stats for block-tags
-		$analyzedOutput['solo']=array();	// Lists stats for solo-tags
+		$analyzedOutput['solo'] = array(); // Lists stats for solo-tags
 
 			// Block tags, must have endings...
-		$blockTags = explode(',',$blockTags);
+		$blockTags = explode(',', $blockTags);
-		foreach($blockTags as $tagName)	{
+		foreach ($blockTags as $tagName) {
-			$countBegin = count(preg_split('/\<'.$tagName.'(\s|\>)/s',$content))-1;
+			$countBegin = count(preg_split('/\<' . $tagName . '(\s|\>)/s', $content)) - 1;
-			$countEnd = count(preg_split('/\<\/'.$tagName.'(\s|\>)/s',$content))-1;
+			$countEnd = count(preg_split('/\<\/' . $tagName . '(\s|\>)/s', $content)) - 1;
-			$analyzedOutput['blocks'][$tagName]=array($countBegin,$countEnd,$countBegin-$countEnd);
+			$analyzedOutput['blocks'][$tagName] = array($countBegin, $countEnd, $countBegin - $countEnd);
-			if ($countBegin)	$analyzedOutput['counts'][$tagName]=$countBegin;
+			if ($countBegin) {
+				$analyzedOutput['counts'][$tagName] = $countBegin;
+			}
-			if ($countBegin-$countEnd)	{
+			if ($countBegin - $countEnd) {
-				if ($countBegin-$countEnd > 0)	{
+				if ($countBegin - $countEnd > 0) {
-					$analyzedOutput['errors'][$tagName]='There were more start-tags ('.$countBegin.') than end-tags ('.$countEnd.') for the element "'.$tagName.'". There should be an equal amount!';
+					$analyzedOutput['errors'][$tagName] = 'There were more start-tags (' . $countBegin . ') than end-tags (' . $countEnd . ') for the element "' . $tagName . '". There should be an equal amount!';
 				} else {
-					$analyzedOutput['warnings'][$tagName]='There were more end-tags ('.$countEnd.') than start-tags ('.$countBegin.') for the element "'.$tagName.'". There should be an equal amount! However the problem is not fatal.';
+					$analyzedOutput['warnings'][$tagName] = 'There were more end-tags (' . $countEnd . ') than start-tags (' . $countBegin . ') for the element "' . $tagName . '". There should be an equal amount! However the problem is not fatal.';
 				}
 			}
 		}
 
 			// Solo tags, must NOT have endings...
-		$soloTags = explode(',',$soloTags);
+		$soloTags = explode(',', $soloTags);
-		foreach($soloTags as $tagName)	{
+		foreach ($soloTags as $tagName) {
-			$countBegin = count(preg_split('/\<'.$tagName.'(\s|\>)/s',$content))-1;
+			$countBegin = count(preg_split('/\<' . $tagName . '(\s|\>)/s', $content)) - 1;
-			$countEnd = count(preg_split('/\<\/'.$tagName.'(\s|\>)/s',$content))-1;
+			$countEnd = count(preg_split('/\<\/' . $tagName . '(\s|\>)/s', $content)) - 1;
-			$analyzedOutput['solo'][$tagName]=array($countBegin,$countEnd);
+			$analyzedOutput['solo'][$tagName] = array($countBegin, $countEnd);
-			if ($countBegin)	$analyzedOutput['counts'][$tagName]=$countBegin;
+			if ($countBegin) {
+				$analyzedOutput['counts'][$tagName] = $countBegin;
+			}
-			if ($countEnd)	{
+			if ($countEnd) {
-				$analyzedOutput['warnings'][$tagName]='There were end-tags found ('.$countEnd.') for the element "'.$tagName.'". This was not expected (although XHTML technically allows it).';
+				$analyzedOutput['warnings'][$tagName] = 'There were end-tags found (' . $countEnd . ') for the element "' . $tagName . '". This was not expected (although XHTML technically allows it).';
 			}
 		}
 
@@ -668,16 +655,6 @@
 	}
 
 
-
-
-
-
-
-
-
-
-
-
 	/*********************************
 	 *
 	 * Clean HTML code
@@ -690,28 +667,28 @@
 	 * Initializing the $tags array to allow a list of tags (in this case <B>,<I>,<U> and <A>), set it like this:		 $tags = array_flip(explode(',','b,a,i,u'))
 	 * If the value of the $tags[$tagname] entry is an array, advanced processing of the tags is initialized. These are the options:
 	 *
-	 * 	$tags[$tagname] = Array(
+	 *	 $tags[$tagname] = Array(
-	 * 		'overrideAttribs' => ''		If set, this string is preset as the attributes of the tag
+	 *		 'overrideAttribs' => ''		If set, this string is preset as the attributes of the tag
-	 * 		'allowedAttribs' =>   '0' (zero) = no attributes allowed, '[commalist of attributes]' = only allowed attributes. If blank, all attributes are allowed.
+	 *		 'allowedAttribs' =>   '0' (zero) = no attributes allowed, '[commalist of attributes]' = only allowed attributes. If blank, all attributes are allowed.
-	 * 		'fixAttrib' => Array(
+	 *		 'fixAttrib' => Array(
-	 * 			'[attribute name]' => Array (
+	 *			 '[attribute name]' => Array (
-	 * 				'set' => Force the attribute value to this value.
+	 *				 'set' => Force the attribute value to this value.
-	 * 				'unset' => Boolean: If set, the attribute is unset.
+	 *				 'unset' => Boolean: If set, the attribute is unset.
-	 * 				'default' => 	If no attribute exists by this name, this value is set as default value (if this value is not blank)
+	 *				 'default' =>	 If no attribute exists by this name, this value is set as default value (if this value is not blank)
-	 * 				'always' => 	Boolean. If set, the attribute is always processed. Normally an attribute is processed only if it exists
+	 *				 'always' =>	 Boolean. If set, the attribute is always processed. Normally an attribute is processed only if it exists
-	 * 				'trim,intval,lower,upper' => 	All booleans. If any of these keys are set, the value is passed through the respective PHP-functions.
+	 *				 'trim,intval,lower,upper' =>	 All booleans. If any of these keys are set, the value is passed through the respective PHP-functions.
-	 * 				'range' => Array ('[low limit]','[high limit, optional]')		Setting integer range.
+	 *				 'range' => Array ('[low limit]','[high limit, optional]')		Setting integer range.
-	 * 				'list' => Array ('[value1/default]','[value2]','[value3]')		Attribute must be in this list. If not, the value is set to the first element.
+	 *				 'list' => Array ('[value1/default]','[value2]','[value3]')		Attribute must be in this list. If not, the value is set to the first element.
-	 * 				'removeIfFalse' => 	Boolean/'blank'.	If set, then the attribute is removed if it is 'false'. If this value is set to 'blank' then the value must be a blank string (that means a 'zero' value will not be removed)
+	 *				 'removeIfFalse' =>	 Boolean/'blank'.	If set, then the attribute is removed if it is 'false'. If this value is set to 'blank' then the value must be a blank string (that means a 'zero' value will not be removed)
-	 * 				'removeIfEquals' => 	[value]	If the attribute value matches the value set here, then it is removed.
+	 *				 'removeIfEquals' =>	 [value]	If the attribute value matches the value set here, then it is removed.
-	 * 				'casesensitiveComp' => 1	If set, then the removeIfEquals and list comparisons will be case sensitive. Otherwise not.
+	 *				 'casesensitiveComp' => 1	If set, then the removeIfEquals and list comparisons will be case sensitive. Otherwise not.
-	 * 			)
+	 *			 )
-	 * 		),
+	 *		 ),
-	 * 		'protect' => '',	Boolean. If set, the tag <> is converted to &lt; and &gt;
+	 *		 'protect' => '',	Boolean. If set, the tag <> is converted to &lt; and &gt;
-	 * 		'remap' => '',		String. If set, the tagname is remapped to this tagname
+	 *		 'remap' => '',		String. If set, the tagname is remapped to this tagname
-	 * 		'rmTagIfNoAttrib' => '',	Boolean. If set, then the tag is removed if no attributes happend to be there.
+	 *		 'rmTagIfNoAttrib' => '',	Boolean. If set, then the tag is removed if no attributes happend to be there.
-	 * 		'nesting' => '',	Boolean/'global'. If set true, then this tag must have starting and ending tags in the correct order. Any tags not in this order will be discarded. Thus '</B><B><I></B></I></B>' will be converted to '<B><I></B></I>'. Is the value 'global' then true nesting in relation to other tags marked for 'global' nesting control is preserved. This means that if <B> and <I> are set for global nesting then this string '</B><B><I></B></I></B>' is converted to '<B></B>'
+	 *		 'nesting' => '',	Boolean/'global'. If set true, then this tag must have starting and ending tags in the correct order. Any tags not in this order will be discarded. Thus '</B><B><I></B></I></B>' will be converted to '<B><I></B></I>'. Is the value 'global' then true nesting in relation to other tags marked for 'global' nesting control is preserved. This means that if <B> and <I> are set for global nesting then this string '</B><B><I></B></I></B>' is converted to '<B></B>'
-	 * 	)
+	 *	 )
 	 *
 	 * @param	string		$content; is the HTML-content being processed. This is also the result being returned.
 	 * @param	array		$tags; is an array where each key is a tagname in lowercase. Only tags present as keys in this array are preserved. The value of the key can be an array with a vast number of options to configure.
@@ -720,94 +697,112 @@
 	 * @param	array		Configuration array send along as $conf to the internal functions ->processContent() and ->processTag()
 	 * @return	string		Processed HTML content
 	 */
-	function HTMLcleaner($content, $tags=array(),$keepAll=0,$hSC=0,$addConfig=array())	{
+	function HTMLcleaner($content, $tags = array(), $keepAll = 0, $hSC = 0, $addConfig = array()) {
 		$newContent = array();
-		$tokArr = explode('<',$content);
+		$tokArr = explode('<', $content);
-		$newContent[] = $this->processContent(current($tokArr),$hSC,$addConfig);
+		$newContent[] = $this->processContent(current($tokArr), $hSC, $addConfig);
 		next($tokArr);
 
 		$c = 1;
 		$tagRegister = array();
 		$tagStack = array();
-		$inComment = false; $skipTag = false;
+		$inComment = FALSE;
+		$skipTag = FALSE;
-		while(list(,$tok)=each($tokArr))	{
+		while (list(, $tok) = each($tokArr)) {
 			if ($inComment) {
-				if (($eocPos = strpos($tok, '-->')) === false) {
+				if (($eocPos = strpos($tok, '-->')) === FALSE) {
-					// End of comment is not found in the token. Go futher until end of comment is found in other tokens.
+						// End of comment is not found in the token. Go futher until end of comment is found in other tokens.
 					$newContent[$c++] = '<' . $tok;
 					continue;
 				}
-				// Comment ends in the middle of the token: add comment and proceed with rest of the token
+					// Comment ends in the middle of the token: add comment and proceed with rest of the token
 				$newContent[$c++] = '<' . substr($tok, 0, $eocPos + 3);
 				$tok = substr($tok, $eocPos + 3);
-				$inComment = false; $skipTag = true;
+				$inComment = FALSE;
+				$skipTag = TRUE;
 			}
 			elseif (substr($tok, 0, 3) == '!--') {
-				if (($eocPos = strpos($tok, '-->')) === false) {
+				if (($eocPos = strpos($tok, '-->')) === FALSE) {
-					// Comment started in this token but it does end in the same token. Set a flag to skip till the end of comment
+						// Comment started in this token but it does end in the same token. Set a flag to skip till the end of comment
 					$newContent[$c++] = '<' . $tok;
-					$inComment = true;
+					$inComment = TRUE;
 					continue;
 				}
-				// Start and end of comment are both in the current token. Add comment and proceed with rest of the token
+					// Start and end of comment are both in the current token. Add comment and proceed with rest of the token
 				$newContent[$c++] = '<' . substr($tok, 0, $eocPos + 3);
 				$tok = substr($tok, $eocPos + 3);
-				$skipTag = true;
+				$skipTag = TRUE;
 			}
-			$firstChar = substr($tok,0,1);
+			$firstChar = substr($tok, 0, 1);
-			if (!$skipTag && preg_match('/[[:alnum:]\/]/',$firstChar)==1)	{		// It is a tag... (first char is a-z0-9 or /) (fixed 19/01 2004). This also avoids triggering on <?xml..> and <!DOCTYPE..>
+			if (!$skipTag && preg_match('/[[:alnum:]\/]/', $firstChar) == 1) { // It is a tag... (first char is a-z0-9 or /) (fixed 19/01 2004). This also avoids triggering on <?xml..> and <!DOCTYPE..>
-				$tagEnd = strpos($tok,'>');
+				$tagEnd = strpos($tok, '>');
-				if ($tagEnd)	{	// If there is and end-bracket...	tagEnd can't be 0 as the first character can't be a >
+				if ($tagEnd) { // If there is and end-bracket...	tagEnd can't be 0 as the first character can't be a >
-					$endTag = $firstChar=='/' ? 1 : 0;
+					$endTag = $firstChar == '/' ? 1 : 0;
-					$tagContent = substr($tok,$endTag,$tagEnd-$endTag);
+					$tagContent = substr($tok, $endTag, $tagEnd - $endTag);
-					$tagParts = preg_split('/\s+/s',$tagContent,2);
+					$tagParts = preg_split('/\s+/s', $tagContent, 2);
 					$tagName = strtolower($tagParts[0]);
-					if (isset($tags[$tagName]))	{
+					if (isset($tags[$tagName])) {
-						if (is_array($tags[$tagName]))	{	// If there is processing to do for the tag:
+						if (is_array($tags[$tagName])) { // If there is processing to do for the tag:
 
-							if (!$endTag)	{	// If NOT an endtag, do attribute processing (added dec. 2003)
+							if (!$endTag) { // If NOT an endtag, do attribute processing (added dec. 2003)
 									// Override attributes
-								if (strcmp($tags[$tagName]['overrideAttribs'],''))	{
+								if (strcmp($tags[$tagName]['overrideAttribs'], '')) {
-									$tagParts[1]=$tags[$tagName]['overrideAttribs'];
+									$tagParts[1] = $tags[$tagName]['overrideAttribs'];
 								}
 
 									// Allowed tags
-								if (strcmp($tags[$tagName]['allowedAttribs'],''))	{
+								if (strcmp($tags[$tagName]['allowedAttribs'], '')) {
-									if (!strcmp($tags[$tagName]['allowedAttribs'],'0'))	{	// No attribs allowed
+									if (!strcmp($tags[$tagName]['allowedAttribs'], '0')) { // No attribs allowed
-										$tagParts[1]='';
+										$tagParts[1] = '';
 									} elseif (trim($tagParts[1])) {
 										$tagAttrib = $this->get_tag_attributes($tagParts[1]);
-										$tagParts[1]='';
+										$tagParts[1] = '';
 										$newTagAttrib = array();
-										if (!($tList = $tags[$tagName]['_allowedAttribs']))	{
+										if (!($tList = $tags[$tagName]['_allowedAttribs'])) {
 												// Just explode attribts for tag once
-											$tList = $tags[$tagName]['_allowedAttribs'] = t3lib_div::trimExplode(',',strtolower($tags[$tagName]['allowedAttribs']),1);
+											$tList = $tags[$tagName]['_allowedAttribs'] = t3lib_div::trimExplode(',', strtolower($tags[$tagName]['allowedAttribs']), 1);
 										}
-										foreach ($tList as $allowTag)	{
+										foreach ($tList as $allowTag) {
-											if (isset($tagAttrib[0][$allowTag]))	$newTagAttrib[$allowTag]=$tagAttrib[0][$allowTag];
+											if (isset($tagAttrib[0][$allowTag])) {
+												$newTagAttrib[$allowTag] = $tagAttrib[0][$allowTag];
-										}
+											}
+										}
-										$tagParts[1]=$this->compileTagAttribs($newTagAttrib,$tagAttrib[1]);
+										$tagParts[1] = $this->compileTagAttribs($newTagAttrib, $tagAttrib[1]);
 									}
 								}
 
 									// Fixed attrib values
-								if (is_array($tags[$tagName]['fixAttrib']))	{
+								if (is_array($tags[$tagName]['fixAttrib'])) {
 									$tagAttrib = $this->get_tag_attributes($tagParts[1]);
-									$tagParts[1]='';
+									$tagParts[1] = '';
 									foreach ($tags[$tagName]['fixAttrib'] as $attr => $params) {
-										if (strlen($params['set']))	$tagAttrib[0][$attr] = $params['set'];
-										if (strlen($params['unset']))	unset($tagAttrib[0][$attr]);
-										if (strcmp($params['default'],'') && !isset($tagAttrib[0][$attr]))	$tagAttrib[0][$attr]=$params['default'];
+										if (strlen($params['set'])) {
+											$tagAttrib[0][$attr] = $params['set'];
+										}
+										if (strlen($params['unset'])) {
+											unset($tagAttrib[0][$attr]);
+										}
+										if (strcmp($params['default'], '') && !isset($tagAttrib[0][$attr])) {
+											$tagAttrib[0][$attr] = $params['default'];
+										}
-										if ($params['always'] || isset($tagAttrib[0][$attr]))	{
+										if ($params['always'] || isset($tagAttrib[0][$attr])) {
-											if ($params['trim'])	{$tagAttrib[0][$attr]=trim($tagAttrib[0][$attr]);}
-											if ($params['intval'])	{$tagAttrib[0][$attr]=intval($tagAttrib[0][$attr]);}
-											if ($params['lower'])	{$tagAttrib[0][$attr]=strtolower($tagAttrib[0][$attr]);}
-											if ($params['upper'])	{$tagAttrib[0][$attr]=strtoupper($tagAttrib[0][$attr]);}
+											if ($params['trim']) {
+												$tagAttrib[0][$attr] = trim($tagAttrib[0][$attr]);
+											}
+											if ($params['intval']) {
+												$tagAttrib[0][$attr] = intval($tagAttrib[0][$attr]);
+											}
+											if ($params['lower']) {
+												$tagAttrib[0][$attr] = strtolower($tagAttrib[0][$attr]);
+											}
+											if ($params['upper']) {
+												$tagAttrib[0][$attr] = strtoupper($tagAttrib[0][$attr]);
+											}
-											if ($params['range'])	{
+											if ($params['range']) {
-												if (isset($params['range'][1]))	{
+												if (isset($params['range'][1])) {
-													$tagAttrib[0][$attr]=t3lib_div::intInRange($tagAttrib[0][$attr],intval($params['range'][0]),intval($params['range'][1]));
+													$tagAttrib[0][$attr] = t3lib_div::intInRange($tagAttrib[0][$attr], intval($params['range'][0]), intval($params['range'][1]));
 												} else {
-													$tagAttrib[0][$attr]=t3lib_div::intInRange($tagAttrib[0][$attr],intval($params['range'][0]));
+													$tagAttrib[0][$attr] = t3lib_div::intInRange($tagAttrib[0][$attr], intval($params['range'][0]));
 												}
 											}
 											if (is_array($params['list'])) {
@@ -827,71 +822,77 @@
 														$tagAttrib[0][$attr] = '';
 													}
 												} else {
-													if (!in_array($this->caseShift($tagAttrib[0][$attr],$params['casesensitiveComp']),$this->caseShift($params['list'],$params['casesensitiveComp'],$tagName))) {
+													if (!in_array($this->caseShift($tagAttrib[0][$attr], $params['casesensitiveComp']), $this->caseShift($params['list'], $params['casesensitiveComp'], $tagName))) {
-														$tagAttrib[0][$attr]=$params['list'][0];
+														$tagAttrib[0][$attr] = $params['list'][0];
 													}
 												}
 											}
-											if (($params['removeIfFalse'] && $params['removeIfFalse']!='blank' && !$tagAttrib[0][$attr]) || ($params['removeIfFalse']=='blank' && !strcmp($tagAttrib[0][$attr],'')))	{
+											if (($params['removeIfFalse'] && $params['removeIfFalse'] != 'blank' && !$tagAttrib[0][$attr]) || ($params['removeIfFalse'] == 'blank' && !strcmp($tagAttrib[0][$attr], ''))) {
 												unset($tagAttrib[0][$attr]);
 											}
-											if (strcmp($params['removeIfEquals'],'') && !strcmp($this->caseShift($tagAttrib[0][$attr],$params['casesensitiveComp']),$this->caseShift($params['removeIfEquals'],$params['casesensitiveComp'])))	{
+											if (strcmp($params['removeIfEquals'], '') && !strcmp($this->caseShift($tagAttrib[0][$attr], $params['casesensitiveComp']), $this->caseShift($params['removeIfEquals'], $params['casesensitiveComp']))) {
 												unset($tagAttrib[0][$attr]);
 											}
-											if ($params['prefixLocalAnchors'])	{
+											if ($params['prefixLocalAnchors']) {
-												if (substr($tagAttrib[0][$attr],0,1)=='#')	{
+												if (substr($tagAttrib[0][$attr], 0, 1) == '#') {
 													$prefix = t3lib_div::getIndpEnv('TYPO3_REQUEST_URL');
-													$tagAttrib[0][$attr] = $prefix.$tagAttrib[0][$attr];
+													$tagAttrib[0][$attr] = $prefix . $tagAttrib[0][$attr];
-													if ($params['prefixLocalAnchors']==2 && t3lib_div::isFirstPartOfStr($prefix,t3lib_div::getIndpEnv('TYPO3_SITE_URL')))		{
+													if ($params['prefixLocalAnchors'] == 2 && t3lib_div::isFirstPartOfStr($prefix, t3lib_div::getIndpEnv('TYPO3_SITE_URL'))) {
-														$tagAttrib[0][$attr] = substr($tagAttrib[0][$attr],strlen(t3lib_div::getIndpEnv('TYPO3_SITE_URL')));
+														$tagAttrib[0][$attr] = substr($tagAttrib[0][$attr], strlen(t3lib_div::getIndpEnv('TYPO3_SITE_URL')));
 													}
 												}
 											}
-											if ($params['prefixRelPathWith'])	{
+											if ($params['prefixRelPathWith']) {
 												$urlParts = parse_url($tagAttrib[0][$attr]);
-												if (!$urlParts['scheme'] && substr($urlParts['path'],0,1)!='/')	{	// If it is NOT an absolute URL (by http: or starting "/")
+												if (!$urlParts['scheme'] && substr($urlParts['path'], 0, 1) != '/') { // If it is NOT an absolute URL (by http: or starting "/")
-													$tagAttrib[0][$attr] = $params['prefixRelPathWith'].$tagAttrib[0][$attr];
+													$tagAttrib[0][$attr] = $params['prefixRelPathWith'] . $tagAttrib[0][$attr];
 												}
 											}
-											if ($params['userFunc'])	{
+											if ($params['userFunc']) {
-												$tagAttrib[0][$attr] = t3lib_div::callUserFunction($params['userFunc'],$tagAttrib[0][$attr],$this);
+												$tagAttrib[0][$attr] = t3lib_div::callUserFunction($params['userFunc'], $tagAttrib[0][$attr], $this);
 											}
 										}
 									}
-									$tagParts[1]=$this->compileTagAttribs($tagAttrib[0],$tagAttrib[1]);
+									$tagParts[1] = $this->compileTagAttribs($tagAttrib[0], $tagAttrib[1]);
 								}
-							} else {	// If endTag, remove any possible attributes:
+							} else { // If endTag, remove any possible attributes:
-								$tagParts[1]='';
+								$tagParts[1] = '';
 							}
 
 								// Protecting the tag by converting < and > to &lt; and &gt; ??
-							if ($tags[$tagName]['protect'])	{
+							if ($tags[$tagName]['protect']) {
-								$lt = '&lt;';	$gt = '&gt;';
+								$lt = '&lt;';
+								$gt = '&gt;';
 							} else {
-								$lt = '<';	$gt = '>';
+								$lt = '<';
+								$gt = '>';
 							}
 								// Remapping tag name?
-							if ($tags[$tagName]['remap'])	$tagParts[0] = $tags[$tagName]['remap'];
+							if ($tags[$tagName]['remap']) {
+								$tagParts[0] = $tags[$tagName]['remap'];
+							}
 
 								// rmTagIfNoAttrib
-							if ($endTag || trim($tagParts[1]) || !$tags[$tagName]['rmTagIfNoAttrib'])	{
+							if ($endTag || trim($tagParts[1]) || !$tags[$tagName]['rmTagIfNoAttrib']) {
 								$setTag = !$tags[$tagName]['rmTagIfNoAttrib'];
 
-								if ($tags[$tagName]['nesting'])	{
+								if ($tags[$tagName]['nesting']) {
-									if (!is_array($tagRegister[$tagName]))	$tagRegister[$tagName]=array();
+									if (!is_array($tagRegister[$tagName])) {
+										$tagRegister[$tagName] = array();
+									}
 
-									if ($endTag)	{
+									if ($endTag) {
-/*										if ($tags[$tagName]['nesting']=='global')	{
-											$lastEl = end($tagStack);
-											$correctTag = !strcmp($tagName,$lastEl);
-										} else $correctTag=1;
-	*/
+										/*										if ($tags[$tagName]['nesting']=='global')	{
+													 $lastEl = end($tagStack);
+													 $correctTag = !strcmp($tagName,$lastEl);
+												 } else $correctTag=1;
+			 */
-										$correctTag=1;
+										$correctTag = 1;
-										if ($tags[$tagName]['nesting']=='global')	{
+										if ($tags[$tagName]['nesting'] == 'global') {
 											$lastEl = end($tagStack);
-											if (strcmp($tagName,$lastEl))	{
+											if (strcmp($tagName, $lastEl)) {
-												if (in_array($tagName,$tagStack))	{
+												if (in_array($tagName, $tagStack)) {
-													while(count($tagStack) && strcmp($tagName,$lastEl))	{
+													while (count($tagStack) && strcmp($tagName, $lastEl)) {
 														$elPos = end($tagRegister[$lastEl]);
 														unset($newContent[$elPos]);
 
@@ -900,56 +901,62 @@
 														$lastEl = end($tagStack);
 													}
 												} else {
-													$correctTag=0;	// In this case the
+													$correctTag = 0; // In this case the
 												}
 											}
 										}
-										if (!count($tagRegister[$tagName]) || !$correctTag)	{
+										if (!count($tagRegister[$tagName]) || !$correctTag) {
-											$setTag=0;
+											$setTag = 0;
 										} else {
 											array_pop($tagRegister[$tagName]);
-											if ($tags[$tagName]['nesting']=='global')	{array_pop($tagStack);}
+											if ($tags[$tagName]['nesting'] == 'global') {
+												array_pop($tagStack);
-										}
+											}
+										}
 									} else {
-										array_push($tagRegister[$tagName],$c);
+										array_push($tagRegister[$tagName], $c);
-										if ($tags[$tagName]['nesting']=='global')	{array_push($tagStack,$tagName);}
+										if ($tags[$tagName]['nesting'] == 'global') {
+											array_push($tagStack, $tagName);
-									}
-								}
+										}
+									}
+								}
 
-								if ($setTag)	{
+								if ($setTag) {
 										// Setting the tag
-									$newContent[$c++]=$this->processTag($lt.($endTag?'/':'').trim($tagParts[0].' '.$tagParts[1]).$gt,$addConfig,$endTag,$lt=='&lt;');
+									$newContent[$c++] = $this->processTag($lt . ($endTag ? '/' : '') . trim($tagParts[0] . ' ' . $tagParts[1]) . $gt, $addConfig, $endTag, $lt == '&lt;');
 								}
 							}
 						} else {
-							$newContent[$c++]=$this->processTag('<'.($endTag?'/':'').$tagContent.'>',$addConfig,$endTag);
+							$newContent[$c++] = $this->processTag('<' . ($endTag ? '/' : '') . $tagContent . '>', $addConfig, $endTag);
 						}
-					} elseif ($keepAll) {	// This is if the tag was not defined in the array for processing:
+					} elseif ($keepAll) { // This is if the tag was not defined in the array for processing:
-						if (!strcmp($keepAll,'protect'))	{
+						if (!strcmp($keepAll, 'protect')) {
-							$lt = '&lt;';	$gt = '&gt;';
+							$lt = '&lt;';
+							$gt = '&gt;';
 						} else {
-							$lt = '<';	$gt = '>';
+							$lt = '<';
+							$gt = '>';
 						}
-						$newContent[$c++]=$this->processTag($lt.($endTag?'/':'').$tagContent.$gt,$addConfig,$endTag,$lt=='&lt;');
+						$newContent[$c++] = $this->processTag($lt . ($endTag ? '/' : '') . $tagContent . $gt, $addConfig, $endTag, $lt == '&lt;');
 					}
-					$newContent[$c++]=$this->processContent(substr($tok,$tagEnd+1),$hSC,$addConfig);
+					$newContent[$c++] = $this->processContent(substr($tok, $tagEnd + 1), $hSC, $addConfig);
 				} else {
-					$newContent[$c++]=$this->processContent('<'.$tok,$hSC,$addConfig);	// There were not end-bracket, so no tag...
+					$newContent[$c++] = $this->processContent('<' . $tok, $hSC, $addConfig); // There were not end-bracket, so no tag...
 				}
 			} else {
-				$newContent[$c++]=$this->processContent(($skipTag ? '' : '<') . $tok, $hSC, $addConfig);	// It was not a tag anyways
+				$newContent[$c++] = $this->processContent(($skipTag ? '' : '<') . $tok, $hSC, $addConfig); // It was not a tag anyways
-				$skipTag = false;
+				$skipTag = FALSE;
 			}
 		}
 
 			// Unsetting tags:
-		foreach ($tagRegister as $tag => $positions)	{
+		foreach ($tagRegister as $tag => $positions) {
-			foreach ($positions as $pKey)	{
+			foreach ($positions as $pKey) {
 				unset($newContent[$pKey]);
 			}
 		}
 
-		return implode('',$newContent);
+		return implode('', $newContent);
 	}
 
 	/**
@@ -959,16 +966,16 @@
 	 * @param	integer		Direction: forth ($dir=1, dir=2 for preserving entities) AND back ($dir=-1)
 	 * @return	string		Output value
 	 */
-	function bidir_htmlspecialchars($value,$dir)	{
+	function bidir_htmlspecialchars($value, $dir) {
-		if ($dir==1)	{
+		if ($dir == 1) {
 			$value = htmlspecialchars($value);
-		} elseif ($dir==2)	{
+		} elseif ($dir == 2) {
 			$value = t3lib_div::deHSCentities(htmlspecialchars($value));
-		} elseif ($dir==-1) {
+		} elseif ($dir == -1) {
-			$value = str_replace('&gt;','>',$value);
+			$value = str_replace('&gt;', '>', $value);
-			$value = str_replace('&lt;','<',$value);
+			$value = str_replace('&lt;', '<', $value);
-			$value = str_replace('&quot;','"',$value);
+			$value = str_replace('&quot;', '"', $value);
-			$value = str_replace('&amp;','&',$value);
+			$value = str_replace('&amp;', '&', $value);
 		}
 		return $value;
 	}
@@ -982,25 +989,25 @@
 	 * @param	string		Suffix string (put after the resource).
 	 * @return	string		Processed HTML content
 	 */
-	function prefixResourcePath($main_prefix,$content,$alternatives=array(),$suffix='')	{
+	function prefixResourcePath($main_prefix, $content, $alternatives = array(), $suffix = '') {
 
-		$parts = $this->splitTags('embed,td,table,body,img,input,form,link,script,a,param',$content);
+		$parts = $this->splitTags('embed,td,table,body,img,input,form,link,script,a,param', $content);
-		foreach ($parts as $k => $v)	{
+		foreach ($parts as $k => $v) {
-			if ($k%2)	{
+			if ($k % 2) {
 				$params = $this->get_tag_attributes($v);
-				$tagEnd = substr($v,-2)=='/>' ? ' />' : '>';	// Detect tag-ending so that it is re-applied correctly.
+				$tagEnd = substr($v, -2) == '/>' ? ' />' : '>'; // Detect tag-ending so that it is re-applied correctly.
-				$firstTagName = $this->getFirstTagName($v);	// The 'name' of the first tag
+				$firstTagName = $this->getFirstTagName($v); // The 'name' of the first tag
-				$somethingDone=0;
+				$somethingDone = 0;
 				$prefix = isset($alternatives[strtoupper($firstTagName)]) ? $alternatives[strtoupper($firstTagName)] : $main_prefix;
-				switch(strtolower($firstTagName))	{
+				switch (strtolower($firstTagName)) {
 						// background - attribute:
 					case 'td':
 					case 'body':
 					case 'table':
 						$src = $params[0]['background'];
-						if ($src)	{
+						if ($src) {
-							$params[0]['background'] = $this->prefixRelPath($prefix,$params[0]['background'],$suffix);
+							$params[0]['background'] = $this->prefixRelPath($prefix, $params[0]['background'], $suffix);
-							$somethingDone=1;
+							$somethingDone = 1;
 						}
 					break;
 						// src attribute
@@ -1009,25 +1016,25 @@
 					case 'script':
 					case 'embed':
 						$src = $params[0]['src'];
-						if ($src)	{
+						if ($src) {
-							$params[0]['src'] = $this->prefixRelPath($prefix,$params[0]['src'],$suffix);
+							$params[0]['src'] = $this->prefixRelPath($prefix, $params[0]['src'], $suffix);
-							$somethingDone=1;
+							$somethingDone = 1;
 						}
 					break;
 					case 'link':
 					case 'a':
 						$src = $params[0]['href'];
-						if ($src)	{
+						if ($src) {
-							$params[0]['href'] = $this->prefixRelPath($prefix,$params[0]['href'],$suffix);
+							$params[0]['href'] = $this->prefixRelPath($prefix, $params[0]['href'], $suffix);
-							$somethingDone=1;
+							$somethingDone = 1;
 						}
 					break;
 						// action attribute
 					case 'form':
 						$src = $params[0]['action'];
-						if ($src)	{
+						if ($src) {
-							$params[0]['action'] = $this->prefixRelPath($prefix,$params[0]['action'],$suffix);
+							$params[0]['action'] = $this->prefixRelPath($prefix, $params[0]['action'], $suffix);
-							$somethingDone=1;
+							$somethingDone = 1;
 						}
 					break;
 						// value attribute
@@ -1041,25 +1048,25 @@
 						}
 					break;
 				}
-				if ($somethingDone)	{
+				if ($somethingDone) {
-					$tagParts = preg_split('/\s+/s',$v,2);
+					$tagParts = preg_split('/\s+/s', $v, 2);
-					$tagParts[1]=$this->compileTagAttribs($params[0],$params[1]);
+					$tagParts[1] = $this->compileTagAttribs($params[0], $params[1]);
-					$parts[$k] = '<'.trim(strtolower($firstTagName).' '.$tagParts[1]).$tagEnd;
+					$parts[$k] = '<' . trim(strtolower($firstTagName) . ' ' . $tagParts[1]) . $tagEnd;
 				}
 			}
 		}
-		$content = implode('',$parts);
+		$content = implode('', $parts);
 
 			// Fix <style> section:
 		$prefix = isset($alternatives['style']) ? $alternatives['style'] : $main_prefix;
-		if (strlen($prefix))	{
+		if (strlen($prefix)) {
-			$parts = $this->splitIntoBlock('style',$content);
+			$parts = $this->splitIntoBlock('style', $content);
-			foreach($parts as $k => $v)	{
+			foreach ($parts as $k => $v) {
-				if ($k%2)	{
+				if ($k % 2) {
-					$parts[$k] = preg_replace('/(url[[:space:]]*\([[:space:]]*["\']?)([^"\')]*)(["\']?[[:space:]]*\))/i','\1'.$prefix.'\2'.$suffix.'\3',$parts[$k]);
+					$parts[$k] = preg_replace('/(url[[:space:]]*\([[:space:]]*["\']?)([^"\')]*)(["\']?[[:space:]]*\))/i', '\1' . $prefix . '\2' . $suffix . '\3', $parts[$k]);
 				}
 			}
-			$content = implode('',$parts);
+			$content = implode('', $parts);
 		}
 
 		return $content;
@@ -1097,25 +1104,31 @@
 	 * @param	boolean		If set, keep "color" attribute
 	 * @return	string		Processed HTML content
 	 */
-	function cleanFontTags($value,$keepFace=0,$keepSize=0,$keepColor=0)	{
+	function cleanFontTags($value, $keepFace = 0, $keepSize = 0, $keepColor = 0) {
-		$fontSplit = $this->splitIntoBlock('font',$value);	// ,1 ?? - could probably be more stable if splitTags() was used since this depends on end-tags being properly set!
+		$fontSplit = $this->splitIntoBlock('font', $value); // ,1 ?? - could probably be more stable if splitTags() was used since this depends on end-tags being properly set!
-		foreach ($fontSplit as $k => $v)	{
+		foreach ($fontSplit as $k => $v) {
-			if ($k%2)	{	// font:
+			if ($k % 2) { // font:
-				$attribArray=$this->get_tag_attributes_classic($this->getFirstTag($v));
+				$attribArray = $this->get_tag_attributes_classic($this->getFirstTag($v));
-				$newAttribs=array();
+				$newAttribs = array();
-				if ($keepFace && $attribArray['face'])	$newAttribs[]='face="'.$attribArray['face'].'"';
-				if ($keepSize && $attribArray['size'])	$newAttribs[]='size="'.$attribArray['size'].'"';
-				if ($keepColor && $attribArray['color'])	$newAttribs[]='color="'.$attribArray['color'].'"';
+				if ($keepFace && $attribArray['face']) {
+					$newAttribs[] = 'face="' . $attribArray['face'] . '"';
+				}
+				if ($keepSize && $attribArray['size']) {
+					$newAttribs[] = 'size="' . $attribArray['size'] . '"';
+				}
+				if ($keepColor && $attribArray['color']) {
+					$newAttribs[] = 'color="' . $attribArray['color'] . '"';
+				}
 
-				$innerContent = $this->cleanFontTags($this->removeFirstAndLastTag($v),$keepFace,$keepSize,$keepColor);
+				$innerContent = $this->cleanFontTags($this->removeFirstAndLastTag($v), $keepFace, $keepSize, $keepColor);
-				if (count($newAttribs))	{
+				if (count($newAttribs)) {
-					$fontSplit[$k]='<font '.implode(' ',$newAttribs).'>'.$innerContent.'</font>';
+					$fontSplit[$k] = '<font ' . implode(' ', $newAttribs) . '>' . $innerContent . '</font>';
 				} else {
-					$fontSplit[$k]=$innerContent;
+					$fontSplit[$k] = $innerContent;
 				}
 			}
 		}
-		return implode('',$fontSplit);
+		return implode('', $fontSplit);
 	}
 
 	/**
@@ -1127,10 +1140,10 @@
 	 * @param	string		Alternative less-than char to replace with (replace regex string)
 	 * @return	string		Processed HTML content
 	 */
-	function mapTags($value,$tags=array(),$ltChar='<',$ltChar2='<')	{
+	function mapTags($value, $tags = array(), $ltChar = '<', $ltChar2 = '<') {
 
-		foreach($tags as $from => $to)	{
+		foreach ($tags as $from => $to) {
-			$value = preg_replace('/'.preg_quote($ltChar).'(\/)?'.$from.'\s([^\>])*(\/)?\>/', $ltChar2.'$1'.$to.' $2$3>', $value);
+			$value = preg_replace('/' . preg_quote($ltChar) . '(\/)?' . $from . '\s([^\>])*(\/)?\>/', $ltChar2 . '$1' . $to . ' $2$3>', $value);
 		}
 		return $value;
 	}
@@ -1142,28 +1155,34 @@
 	 * @param	string		Tag list, separated by comma. Lowercase!
 	 * @return	string		Processed HTML content
 	 */
-	function unprotectTags($content,$tagList='')	{
+	function unprotectTags($content, $tagList = '') {
-		$tagsArray = t3lib_div::trimExplode(',',$tagList,1);
+		$tagsArray = t3lib_div::trimExplode(',', $tagList, 1);
-		$contentParts = explode('&lt;',$content);
+		$contentParts = explode('&lt;', $content);
-		next($contentParts);	// bypass the first
+		next($contentParts); // bypass the first
-		while(list($k,$tok)=each($contentParts))	{
+		while (list($k, $tok) = each($contentParts)) {
-			$firstChar = substr($tok,0,1);
+			$firstChar = substr($tok, 0, 1);
-			if (strcmp(trim($firstChar),''))	{
+			if (strcmp(trim($firstChar), '')) {
-				$subparts = explode('&gt;',$tok,2);
+				$subparts = explode('&gt;', $tok, 2);
 				$tagEnd = strlen($subparts[0]);
-				if (strlen($tok)!=$tagEnd)	{
+				if (strlen($tok) != $tagEnd) {
-					$endTag = $firstChar=='/' ? 1 : 0;
+					$endTag = $firstChar == '/' ? 1 : 0;
-					$tagContent = substr($tok,$endTag,$tagEnd-$endTag);
+					$tagContent = substr($tok, $endTag, $tagEnd - $endTag);
-					$tagParts = preg_split('/\s+/s',$tagContent,2);
+					$tagParts = preg_split('/\s+/s', $tagContent, 2);
 					$tagName = strtolower($tagParts[0]);
-					if (!strcmp($tagList,'') || in_array($tagName,$tagsArray))	{
+					if (!strcmp($tagList, '') || in_array($tagName, $tagsArray)) {
-						$contentParts[$k] = '<'.$subparts[0].'>'.$subparts[1];
+						$contentParts[$k] = '<' . $subparts[0] . '>' . $subparts[1];
-					} else $contentParts[$k] = '&lt;'.$tok;
-				} else $contentParts[$k] = '&lt;'.$tok;
-			} else $contentParts[$k] = '&lt;'.$tok;
+					} else {
+						$contentParts[$k] = '&lt;' . $tok;
-		}
+					}
+				} else {
+					$contentParts[$k] = '&lt;' . $tok;
+				}
+			} else {
+				$contentParts[$k] = '&lt;' . $tok;
+			}
+		}
 
-		return implode('',$contentParts);
+		return implode('', $contentParts);
 	}
 
 	/**
@@ -1175,17 +1194,17 @@
 	 * @return	string		Output value
 	 * @ignore
 	 */
-	function stripTagsExcept($value,$tagList)	{
+	function stripTagsExcept($value, $tagList) {
-		$tags=t3lib_div::trimExplode(',',$tagList,1);
+		$tags = t3lib_div::trimExplode(',', $tagList, 1);
-		$forthArr=array();
+		$forthArr = array();
-		$backArr=array();
+		$backArr = array();
-		foreach ($tags as $theTag)	{
+		foreach ($tags as $theTag) {
-			$forthArr[$theTag]=md5($theTag);
+			$forthArr[$theTag] = md5($theTag);
-			$backArr[md5($theTag)]=$theTag;
+			$backArr[md5($theTag)] = $theTag;
 		}
-		$value = $this->mapTags($value,$forthArr,'<','_');
+		$value = $this->mapTags($value, $forthArr, '<', '_');
-		$value=strip_tags($value);
+		$value = strip_tags($value);
-		$value = $this->mapTags($value,$backArr,'_','<');
+		$value = $this->mapTags($value, $backArr, '_', '<');
 		return $value;
 	}
 
@@ -1198,21 +1217,25 @@
 	 * @return	string		Output string, processed
 	 * @access private
 	 */
-	function caseShift($str,$flag,$cacheKey='')	{
+	function caseShift($str, $flag, $cacheKey = '') {
-		$cacheKey .= $flag?1:0;
+		$cacheKey .= $flag ? 1 : 0;
-		if (is_array($str))	{
+		if (is_array($str)) {
-			if (!$cacheKey || !isset($this->caseShift_cache[$cacheKey]))	{
+			if (!$cacheKey || !isset($this->caseShift_cache[$cacheKey])) {
 				reset($str);
-				foreach ($str as $k => $v)	{
+				foreach ($str as $k => $v) {
-					if (!$flag)	{
+					if (!$flag) {
 						$str[$k] = strtoupper($v);
 					}
 				}
-				if ($cacheKey)	$this->caseShift_cache[$cacheKey]=$str;
+				if ($cacheKey) {
+					$this->caseShift_cache[$cacheKey] = $str;
+				}
 			} else {
 				$str = $this->caseShift_cache[$cacheKey];
 			}
-		} elseif (!$flag)	{ $str = strtoupper($str); }
+		} elseif (!$flag) {
+			$str = strtoupper($str);
+		}
 		return $str;
 	}
 
@@ -1225,24 +1248,24 @@
 	 * @return	string		Imploded attributes, eg: 'attribute="value" attrib2="value2"'
 	 * @access private
 	 */
-	function compileTagAttribs($tagAttrib,$meta=array(), $xhtmlClean=0)	{
+	function compileTagAttribs($tagAttrib, $meta = array(), $xhtmlClean = 0) {
-		$accu=array();
+		$accu = array();
-		foreach ($tagAttrib as $k =>$v)	{
+		foreach ($tagAttrib as $k => $v) {
-			if ($xhtmlClean)	{
+			if ($xhtmlClean) {
-				$attr=strtolower($k);
+				$attr = strtolower($k);
-				if (strcmp($v,'') || isset($meta[$k]['dashType']))	{
+				if (strcmp($v, '') || isset($meta[$k]['dashType'])) {
-					$attr.='="'.htmlspecialchars($v).'"';
+					$attr .= '="' . htmlspecialchars($v) . '"';
 				}
 			} else {
-				$attr=$meta[$k]['origTag']?$meta[$k]['origTag']:$k;
+				$attr = $meta[$k]['origTag'] ? $meta[$k]['origTag'] : $k;
-				if (strcmp($v,'') || isset($meta[$k]['dashType']))	{
+				if (strcmp($v, '') || isset($meta[$k]['dashType'])) {
-					$dash=$meta[$k]['dashType']?$meta[$k]['dashType']:(t3lib_div::testInt($v)?'':'"');
+					$dash = $meta[$k]['dashType'] ? $meta[$k]['dashType'] : (t3lib_div::testInt($v) ? '' : '"');
-					$attr.='='.$dash.$v.$dash;
+					$attr .= '=' . $dash . $v . $dash;
 				}
 			}
-			$accu[]=$attr;
+			$accu[] = $attr;
 		}
-		return implode(' ',$accu);
+		return implode(' ', $accu);
 	}
 
 	/**
@@ -1253,9 +1276,9 @@
 	 * @return	array
 	 * @access private
 	 */
-	function get_tag_attributes_classic($tag,$deHSC=0)	{
+	function get_tag_attributes_classic($tag, $deHSC = 0) {
-		$attr=$this->get_tag_attributes($tag,$deHSC);
+		$attr = $this->get_tag_attributes($tag, $deHSC);
-		return is_array($attr[0])?$attr[0]:array();
+		return is_array($attr[0]) ? $attr[0] : array();
 	}
 
 	/**
@@ -1266,11 +1289,11 @@
 	 * @param	string		Indent character/string
 	 * @return	string		Indented code (typ. HTML)
 	 */
-	function indentLines($content, $number=1, $indentChar=TAB)	{
+	function indentLines($content, $number = 1, $indentChar = TAB) {
-		$preTab = str_pad('', $number*strlen($indentChar), $indentChar);
+		$preTab = str_pad('', $number * strlen($indentChar), $indentChar);
-		$lines = explode(LF,str_replace(CR,'',$content));
+		$lines = explode(LF, str_replace(CR, '', $content));
-		foreach ($lines as $k => $v)	{
+		foreach ($lines as $k => $v) {
-			$lines[$k] = $preTab.$v;
+			$lines[$k] = $preTab . $v;
 		}
 		return implode(LF, $lines);
 	}
@@ -1283,97 +1306,113 @@
 	 * @return	array
 	 * @access private
 	 */
-	function HTMLparserConfig($TSconfig,$keepTags=array())	{
+	function HTMLparserConfig($TSconfig, $keepTags = array()) {
 			// Allow tags (base list, merged with incoming array)
-		$alTags = array_flip(t3lib_div::trimExplode(',',strtolower($TSconfig['allowTags']),1));
+		$alTags = array_flip(t3lib_div::trimExplode(',', strtolower($TSconfig['allowTags']), 1));
-		$keepTags = array_merge($alTags,$keepTags);
+		$keepTags = array_merge($alTags, $keepTags);
 
 			// Set config properties.
-		if (is_array($TSconfig['tags.']))	{
+		if (is_array($TSconfig['tags.'])) {
 			foreach ($TSconfig['tags.'] as $key => $tagC) {
-				if (!is_array($tagC) && $key==strtolower($key))	{
+				if (!is_array($tagC) && $key == strtolower($key)) {
-					if (!strcmp($tagC,'0'))	unset($keepTags[$key]);
-					if (!strcmp($tagC,'1') && !isset($keepTags[$key]))	$keepTags[$key]=1;
+					if (!strcmp($tagC, '0')) {
+						unset($keepTags[$key]);
-				}
+					}
+					if (!strcmp($tagC, '1') && !isset($keepTags[$key])) {
+						$keepTags[$key] = 1;
-			}
+					}
+				}
+			}
 
-			foreach ($TSconfig['tags.'] as $key => $tagC)	{
+			foreach ($TSconfig['tags.'] as $key => $tagC) {
-				if (is_array($tagC) && $key==strtolower($key))	{
+				if (is_array($tagC) && $key == strtolower($key)) {
-					$key=substr($key,0,-1);
+					$key = substr($key, 0, -1);
-					if (!is_array($keepTags[$key]))	$keepTags[$key]=array();
+					if (!is_array($keepTags[$key])) {
+						$keepTags[$key] = array();
+					}
-					if (is_array($tagC['fixAttrib.']))	{
+					if (is_array($tagC['fixAttrib.'])) {
 						foreach ($tagC['fixAttrib.'] as $atName => $atConfig) {
-							if (is_array($atConfig))	{
+							if (is_array($atConfig)) {
-								$atName=substr($atName,0,-1);
+								$atName = substr($atName, 0, -1);
-								if (!is_array($keepTags[$key]['fixAttrib'][$atName]))	{
+								if (!is_array($keepTags[$key]['fixAttrib'][$atName])) {
-									$keepTags[$key]['fixAttrib'][$atName]=array();
+									$keepTags[$key]['fixAttrib'][$atName] = array();
 								}
-								$keepTags[$key]['fixAttrib'][$atName] = array_merge($keepTags[$key]['fixAttrib'][$atName],$atConfig);		// Candidate for t3lib_div::array_merge() if integer-keys will some day make trouble...
+								$keepTags[$key]['fixAttrib'][$atName] = array_merge($keepTags[$key]['fixAttrib'][$atName], $atConfig); // Candidate for t3lib_div::array_merge() if integer-keys will some day make trouble...
-								if (strcmp($keepTags[$key]['fixAttrib'][$atName]['range'],''))	$keepTags[$key]['fixAttrib'][$atName]['range'] = t3lib_div::trimExplode(',',$keepTags[$key]['fixAttrib'][$atName]['range']);
-								if (strcmp($keepTags[$key]['fixAttrib'][$atName]['list'],''))	$keepTags[$key]['fixAttrib'][$atName]['list'] = t3lib_div::trimExplode(',',$keepTags[$key]['fixAttrib'][$atName]['list']);
+								if (strcmp($keepTags[$key]['fixAttrib'][$atName]['range'], '')) {
+									$keepTags[$key]['fixAttrib'][$atName]['range'] = t3lib_div::trimExplode(',', $keepTags[$key]['fixAttrib'][$atName]['range']);
-							}
+								}
+								if (strcmp($keepTags[$key]['fixAttrib'][$atName]['list'], '')) {
+									$keepTags[$key]['fixAttrib'][$atName]['list'] = t3lib_div::trimExplode(',', $keepTags[$key]['fixAttrib'][$atName]['list']);
-						}
-					}
+								}
+							}
+						}
+					}
 					unset($tagC['fixAttrib.']);
 					unset($tagC['fixAttrib']);
-					$keepTags[$key] = array_merge($keepTags[$key],$tagC);			// Candidate for t3lib_div::array_merge() if integer-keys will some day make trouble...
+					$keepTags[$key] = array_merge($keepTags[$key], $tagC); // Candidate for t3lib_div::array_merge() if integer-keys will some day make trouble...
 				}
 			}
 		}
 			// localNesting
-		if ($TSconfig['localNesting'])	{
+		if ($TSconfig['localNesting']) {
-			$lN = t3lib_div::trimExplode(',',strtolower($TSconfig['localNesting']),1);
+			$lN = t3lib_div::trimExplode(',', strtolower($TSconfig['localNesting']), 1);
 			foreach ($lN as $tn) {
-				if (isset($keepTags[$tn]))	{
+				if (isset($keepTags[$tn])) {
-					$keepTags[$tn]['nesting']=1;
+					$keepTags[$tn]['nesting'] = 1;
 				}
 			}
 		}
-		if ($TSconfig['globalNesting'])	{
+		if ($TSconfig['globalNesting']) {
-			$lN = t3lib_div::trimExplode(',',strtolower($TSconfig['globalNesting']),1);
+			$lN = t3lib_div::trimExplode(',', strtolower($TSconfig['globalNesting']), 1);
 			foreach ($lN as $tn) {
-				if (isset($keepTags[$tn]))	{
+				if (isset($keepTags[$tn])) {
-					if (!is_array($keepTags[$tn]))	$keepTags[$tn]=array();
+					if (!is_array($keepTags[$tn])) {
+						$keepTags[$tn] = array();
+					}
-					$keepTags[$tn]['nesting']='global';
+					$keepTags[$tn]['nesting'] = 'global';
 				}
 			}
 		}
-		if ($TSconfig['rmTagIfNoAttrib'])	{
+		if ($TSconfig['rmTagIfNoAttrib']) {
-			$lN = t3lib_div::trimExplode(',',strtolower($TSconfig['rmTagIfNoAttrib']),1);
+			$lN = t3lib_div::trimExplode(',', strtolower($TSconfig['rmTagIfNoAttrib']), 1);
 			foreach ($lN as $tn) {
-				if (isset($keepTags[$tn]))	{
+				if (isset($keepTags[$tn])) {
-					if (!is_array($keepTags[$tn]))	$keepTags[$tn]=array();
+					if (!is_array($keepTags[$tn])) {
+						$keepTags[$tn] = array();
+					}
-					$keepTags[$tn]['rmTagIfNoAttrib']=1;
+					$keepTags[$tn]['rmTagIfNoAttrib'] = 1;
 				}
 			}
 		}
-		if ($TSconfig['noAttrib'])	{
+		if ($TSconfig['noAttrib']) {
-			$lN = t3lib_div::trimExplode(',',strtolower($TSconfig['noAttrib']),1);
+			$lN = t3lib_div::trimExplode(',', strtolower($TSconfig['noAttrib']), 1);
 			foreach ($lN as $tn) {
-				if (isset($keepTags[$tn]))	{
+				if (isset($keepTags[$tn])) {
-					if (!is_array($keepTags[$tn]))	$keepTags[$tn]=array();
+					if (!is_array($keepTags[$tn])) {
+						$keepTags[$tn] = array();
+					}
-					$keepTags[$tn]['allowedAttribs']=0;
+					$keepTags[$tn]['allowedAttribs'] = 0;
 				}
 			}
 		}
-		if ($TSconfig['removeTags'])	{
+		if ($TSconfig['removeTags']) {
-			$lN = t3lib_div::trimExplode(',',strtolower($TSconfig['removeTags']),1);
+			$lN = t3lib_div::trimExplode(',', strtolower($TSconfig['removeTags']), 1);
 			foreach ($lN as $tn) {
-				$keepTags[$tn]=array();
+				$keepTags[$tn] = array();
-				$keepTags[$tn]['allowedAttribs']=0;
+				$keepTags[$tn]['allowedAttribs'] = 0;
-				$keepTags[$tn]['rmTagIfNoAttrib']=1;
+				$keepTags[$tn]['rmTagIfNoAttrib'] = 1;
 			}
 		}
 
 			// Create additional configuration:
-		$addConfig=array();
+		$addConfig = array();
-		if ($TSconfig['xhtml_cleaning'])	{
+		if ($TSconfig['xhtml_cleaning']) {
-			$addConfig['xhtml']=1;
+			$addConfig['xhtml'] = 1;
 		}
 
 		return array(
 			$keepTags,
-			''.$TSconfig['keepNonMatchedTags'],
+			'' . $TSconfig['keepNonMatchedTags'],
 			intval($TSconfig['htmlSpecialChars']),
 			$addConfig
 		);
@@ -1383,33 +1422,33 @@
 	 * Tries to convert the content to be XHTML compliant and other stuff like that.
 	 * STILL EXPERIMENTAL. See comments below.
 	 *
-	 * 			What it does NOT do (yet) according to XHTML specs.:
+	 *			 What it does NOT do (yet) according to XHTML specs.:
-	 * 			- Wellformedness: Nesting is NOT checked
+	 *			 - Wellformedness: Nesting is NOT checked
-	 * 			- name/id attribute issue is not observed at this point.
+	 *			 - name/id attribute issue is not observed at this point.
-	 * 			- Certain nesting of elements not allowed. Most interesting, <PRE> cannot contain img, big,small,sub,sup ...
+	 *			 - Certain nesting of elements not allowed. Most interesting, <PRE> cannot contain img, big,small,sub,sup ...
-	 * 			- Wrapping scripts and style element contents in CDATA - or alternatively they should have entitites converted.
+	 *			 - Wrapping scripts and style element contents in CDATA - or alternatively they should have entitites converted.
-	 * 			- Setting charsets may put some special requirements on both XML declaration/ meta-http-equiv. (C.9)
+	 *			 - Setting charsets may put some special requirements on both XML declaration/ meta-http-equiv. (C.9)
-	 * 			- UTF-8 encoding is in fact expected by XML!!
+	 *			 - UTF-8 encoding is in fact expected by XML!!
-	 * 			- stylesheet element and attribute names are NOT converted to lowercase
+	 *			 - stylesheet element and attribute names are NOT converted to lowercase
-	 * 			- ampersands (and entities in general I think) MUST be converted to an entity reference! (&amps;). This may mean further conversion of non-tag content before output to page. May be related to the charset issue as a whole.
+	 *			 - ampersands (and entities in general I think) MUST be converted to an entity reference! (&amps;). This may mean further conversion of non-tag content before output to page. May be related to the charset issue as a whole.
-	 * 			- Minimized values not allowed: Must do this: selected="selected"
+	 *			 - Minimized values not allowed: Must do this: selected="selected"
 	 *
-	 * 			What it does at this point:
+	 *			 What it does at this point:
-	 * 			- All tags (frame,base,meta,link + img,br,hr,area,input) is ended with "/>" - others?
+	 *			 - All tags (frame,base,meta,link + img,br,hr,area,input) is ended with "/>" - others?
-	 * 			- Lowercase for elements and attributes
+	 *			 - Lowercase for elements and attributes
-	 * 			- All attributes in quotes
+	 *			 - All attributes in quotes
-	 * 			- Add "alt" attribute to img-tags if it's not there already.
+	 *			 - Add "alt" attribute to img-tags if it's not there already.
 	 *
 	 * @param	string		Content to clean up
 	 * @return	string		Cleaned up content returned.
 	 * @access private
 	 */
-	function XHTML_clean($content)	{
+	function XHTML_clean($content) {
 		$content = $this->HTMLcleaner(
 			$content,
-			array(),	// No tags treated specially
+			array(), // No tags treated specially
-			1,			// Keep ALL tags.
+			1, // Keep ALL tags.
-			0,			// All content is htmlspecialchar()'ed (or ??) - if we do, <script> content will break...
+			0, // All content is htmlspecialchar()'ed (or ??) - if we do, <script> content will break...
 			array('xhtml' => 1)
 		);
 		return $content;
@@ -1426,34 +1465,40 @@
 	 * @return	string		Processed value.
 	 * @access private
 	 */
-	function processTag($value,$conf,$endTag,$protected=0)	{
+	function processTag($value, $conf, $endTag, $protected = 0) {
 			// Return immediately if protected or no parameters
-		if ($protected || !count($conf))	return $value;
+		if ($protected || !count($conf)) {
+			return $value;
+		}
 			// OK then, begin processing for XHTML output:
 			// STILL VERY EXPERIMENTAL!!
-		if ($conf['xhtml'])	{
+		if ($conf['xhtml']) {
-			if ($endTag)	{	// Endtags are just set lowercase right away
+			if ($endTag) { // Endtags are just set lowercase right away
 				$value = strtolower($value);
-			} elseif (substr($value,0,4)!='<!--') {	// ... and comments are ignored.
+			} elseif (substr($value, 0, 4) != '<!--') { // ... and comments are ignored.
-				$inValue = substr($value,1,(substr($value,-2)=='/>'?-2:-1));	// Finding inner value with out < >
+				$inValue = substr($value, 1, (substr($value, -2) == '/>' ? -2 : -1)); // Finding inner value with out < >
-				list($tagName,$tagP)=preg_split('/\s+/s',$inValue,2);	// Separate attributes and tagname
+				list($tagName, $tagP) = preg_split('/\s+/s', $inValue, 2); // Separate attributes and tagname
 				$tagName = strtolower($tagName);
 
-					// Process attributes
+				// Process attributes
 				$tagAttrib = $this->get_tag_attributes($tagP);
-				if (!strcmp($tagName,'img') && !isset($tagAttrib[0]['alt']))		$tagAttrib[0]['alt']='';	// Set alt attribute for all images (not XHTML though...)
-				if (!strcmp($tagName,'script') && !isset($tagAttrib[0]['type']))	$tagAttrib[0]['type']='text/javascript';	// Set type attribute for all script-tags
+				if (!strcmp($tagName, 'img') && !isset($tagAttrib[0]['alt'])) {
+					$tagAttrib[0]['alt'] = '';
+				} // Set alt attribute for all images (not XHTML though...)
+				if (!strcmp($tagName, 'script') && !isset($tagAttrib[0]['type'])) {
+					$tagAttrib[0]['type'] = 'text/javascript';
+				} // Set type attribute for all script-tags
-				$outA=array();
+				$outA = array();
 				foreach ($tagAttrib[0] as $attrib_name => $attrib_value) {
 						// Set attributes: lowercase, always in quotes, with htmlspecialchars converted.
-					$outA[]=$attrib_name.'="'.$this->bidir_htmlspecialchars($attrib_value,2).'"';
+					$outA[] = $attrib_name . '="' . $this->bidir_htmlspecialchars($attrib_value, 2) . '"';
 				}
-				$newTag='<'.trim($tagName.' '.implode(' ',$outA));
+				$newTag = '<' . trim($tagName . ' ' . implode(' ', $outA));
 					// All tags that are standalone (not wrapping, not having endtags) should be ended with '/>'
-				if (t3lib_div::inList('img,br,hr,meta,link,base,area,input,param,col',$tagName) || substr($value,-2)=='/>')	{
+				if (t3lib_div::inList('img,br,hr,meta,link,base,area,input,param,col', $tagName) || substr($value, -2) == '/>') {
-					$newTag.=' />';
+					$newTag .= ' />';
 				} else {
-					$newTag.='>';
+					$newTag .= '>';
 				}
 				$value = $newTag;
 			}
@@ -1471,15 +1516,16 @@
 	 * @return	string		The processed value.
 	 * @access private
 	 */
-	function processContent($value,$dir,$conf)	{
+	function processContent($value, $dir, $conf) {
-		if ($dir!=0)	$value = $this->bidir_htmlspecialchars($value,$dir);
+		if ($dir != 0) {
+			$value = $this->bidir_htmlspecialchars($value, $dir);
+		}
 		return $value;
 	}
 }
 
 
-
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_parsehtml.php'])	{
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_parsehtml.php']) {
 	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_parsehtml.php']);
 }
 
