<?php

class renderSpecialContentClass extends renderClass_abstract
{
	public function createSpecialContent($id, $popupData, $type)
	{
		$html = file_get_contents($this->_pathTpl . $this->_layout . '/tpl_' . $this->_template . '_' . $id . '.php');
		$html = str_replace($this->_renderSearch, $this->_renderReplace, $html);
		$subTpl = new DOMDocument ();
		$subTpl->preserveWhitespace = false;
		$subTpl->formatOutput = true;
		$subTpl->loadHTML($html);

		$xpath = new DOMXpath ($subTpl);
		$subCont = $xpath->query(".//*[contains(concat(' ', @class, ' '), ' " . $id . " ')]")->item(0);

		foreach ($popupData as $singleData)
		{
			$tmp_node = $subCont->firstChild->cloneNode(true);
			if (isset ($singleData['id']))
			{
				$subCont->setAttributeNode(new DOMAttr ('id', $type . '_' . $singleData['id']));
			}

			foreach ($singleData as $key => $data)
			{
				$nodeList = $xpath->query(".//*[contains(concat(' ', @class, ' '), ' " . $key . " ')]", $tmp_node);
				if ($nodeList->length !== 0)
				{

					foreach ($nodeList as $node)
					{
						switch ($key)
						{
							case 'link'        :
								$node->setAttributeNode(new DOMAttr ('href', $data));
								break;

							default            :
								$node->appendChild(new DOMCdataSection ($data));
								break;
						}
					}

				}
			}

			$subCont->appendChild($tmp_node);
		}

		$subCont->removeChild($subCont->firstChild);


		$new_node = $this->_tpl->importNode($subCont, true);
		return $new_node;
	}

}