protected static function _addElementsToHtmlPurifierWhitelist($htmlPurifierWhitelist)
	{
		$styleElement = [
			'name' => 'style',
			'contentSet' => 'Block',
			'allowedChildren' => 'Flow',
			'attributeCollection' => 'Common',
			'attributes' => [],
			'excludes' => []
		];

		$mapElement = [
			'name' => 'map',
			'contentSet' => 'Block',
			'allowedChildren' => 'Flow',
			'attributeCollection' => 'Common',
			'attributes' => [
				'name'  => 'CDATA',
				'id'    => 'ID',
				'title' => 'CDATA',
			],
			'excludes' => ['map' => true]
		];

		$areaElement = [
			'name' => 'area',
			'contentSet' => 'Block',
			'allowedChildren' => 'Empty',
			'attributeCollection' => 'Common',
			'attributes' => [
				'name'      => 'CDATA',
				'id'        => 'ID',
				'alt'       => 'Text',
				'coords'    => 'CDATA',
				'accesskey' => 'Character',
				'nohref'    => new \HTMLPurifier_AttrDef_Enum(['nohref']),
				'href'      => 'URI',
				'shape'     => new \HTMLPurifier_AttrDef_Enum(['rect','circle','poly','default']),
				'tabindex'  => 'Number',
				'target'    => new \HTMLPurifier_AttrDef_Enum(['_blank','_self','_target','_top'])
			],
			'excludes' => ['area' => true]
		];

		$elementSettings = [$styleElement, $mapElement, $areaElement];

		foreach ($elementSettings as $settings)
		{
			$element = $htmlPurifierWhitelist->addElement(
				$settings['name'],
				$settings['contentSet'],
				$settings['allowedChildren'],
				$settings['attributeCollection'],
				$settings['attributes']
			);

			$element->excludes = $settings['excludes'];
		}
	}