<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */
namespace BlackSheepResearch\Component\UserPoints\Administrator\Viewers;

defined('JPATH_PLATFORM') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Log\Log;
use Joomla\CMS\HTML\HTMLHelper;
use BlackSheepResearch\Component\UserPoints\Site\WebAssetManager;

/**
 * UPJPanelTabs class to to draw parameter panes.
 *
 * @package     Joomla.Platform
 * @subpackage  HTML
 * @since       11.1
 * @deprecated  Use HTMLHelper::_ static helpers
 */
class UPJPaneTabs extends UPJPane
{
	/**
	 * Constructor.
	 *
	 * @param   array  $params  Associative array of values
	 *
	 * @since   11.1
	 */
	public function __construct($params = array())
	{
		// Deprecation warning.
		Log::add('UPJPaneTabs is deprecated.', Log::WARNING, 'deprecated');

		static $loaded = false;

		parent::__construct($params);

		if (!$loaded)
		{
			$this->_loadBehavior($params);
			$loaded = true;
		}
	}

	/**
	 * Creates a pane and creates the javascript object for it.
	 *
	 * @param   string  $id  The pane identifier.
	 *
	 * @return  string  HTML to start the pane dl
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1
	 */
	public function startPane($id)
	{

		// Deprecation warning.
		Log::add('UPJPane::startPane is deprecated.', Log::WARNING, 'deprecated');

		return '<dl class="tabs" id="' . $id . '">';
	}

	/**
	 * Ends the pane.
	 *
	 * @return  string  HTML to end the pane dl
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1
	 */
	public function endPane()
	{
		// Deprecation warning.
		Log::add('UPJPaneTabs::endPane is deprecated.', Log::WARNING, 'deprecated');

		return "</dl>";
	}

	/**
	 * Creates a tab panel with title text and starts that panel.
	 *
	 * @param   string  $text  The name of the tab
	 * @param   string  $id    The tab identifier
	 *
	 * @return  string  HTML for the dt tag.
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1
	 */
	public function startPanel($text, $id)
	{
		// Deprecation warning.
		Log::add('UPJPaneTabs::startPanel is deprecated.', Log::WARNING, 'deprecated');

		return '<dt class="' . $id . '"><span>' . $text . '</span></dt><dd>';
	}

	/**
	 * Ends a tab page.
	 *
	 * @return  string   HTML for the dd tag.
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1
	 */
	public function endPanel()
	{
		// Deprecation warning.
		Log::add('UPJPaneTabs::endPanel is deprecated.', Log::WARNING, 'deprecated');

		return "</dd>";
	}

	/**
	 * Load the javascript behavior and attach it to the document.
	 *
	 * @param   array  $params  Associative array of values
	 *
	 * @return  void
	 *
	 * @since   11.1
	 * @deprecated    12.1
	 */
	protected function _loadBehavior($params = array())
	{
		// Deprecation warning.
		Log::add('UPJPaneTabs::_loadBehavior is deprecated.', Log::WARNING, 'deprecated');

		// Include mootools framework
		// HTMLHelper::_('behavior.framework', true);

		$document = Factory::getDocument();

		$options = '{';
		$opt['onActive'] = (isset($params['onActive'])) ? $params['onActive'] : null;
		$opt['onBackground'] = (isset($params['onBackground'])) ? $params['onBackground'] : null;
		$opt['display'] = (isset($params['startOffset'])) ? (int) $params['startOffset'] : null;
		foreach ($opt as $k => $v)
		{
			if ($v)
			{
				$options .= $k . ': ' . $v . ',';
			}
		}
		if (substr($options, -1) == ',')
		{
			$options = substr($options, 0, -1);
		}
		$options .= '}';

		$js = '	window.addEvent(\'domready\', function(){ $$(\'dl.tabs\').each(function(tabs){ new JTabs(tabs, ' . $options . '); }); });';

		$document->addScriptDeclaration($js);
		HTMLHelper::_('script', 'com_userpoints/tabs.js', false, true);
	}
}

