<?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;


/**
 * UPJPanelSliders class to to draw parameter panes.
 *
 * @package     Joomla.Platform
 * @subpackage  HTML
 * @since       11.1
 *
 * @deprecated  Use JHtml::_ static helpers
 */
class UPJPaneSliders extends UPJPane
{
	/**
	 * Constructor.
	 *
	 * @param   array  $params  Associative array of values.
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1
	 */
	public function __construct($params = array())
	{
		// Deprecation warning.
		Log::add('UPJPanelSliders::__construct 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 slider div.
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1
	 */
	public function startPane($id)
	{
		// Deprecation warning.
		Log::add('UPJPaneSliders::startPane is deprecated.', Log::WARNING, 'deprecated');

		return '<div id="' . $id . '" class="pane-sliders">';
	}

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

		return '</div>';
	}

	/**
	 * 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 to start the tab panel div.
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1
	 */
	public function startPanel($text, $id)
	{
		// Deprecation warning.
		Log::add('UPJPaneSliders::startPanel is deprecated.', Log::WARNING, 'deprecated');

		return '<div class="panel">' . '<h3 class="pane-toggler title" id="' . $id . '"><a href="javascript:void(0);"><span>' . $text
			. '</span></a></h3>' . '<div class="pane-slider content">';
	}

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

		return '</div></div>';
	}

	/**
	 * 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('UPJPaneSliders::_loadBehavior is deprecated.', Log::WARNING, 'deprecated');

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

		$document = Factory::getDocument();

		$options = '{';
		$opt['onActive'] = 'function(toggler, i) { toggler.addClass(\'pane-toggler-down\');' .
			' toggler.removeClass(\'pane-toggler\');i.addClass(\'pane-down\');i.removeClass(\'pane-hide\'); }';
		$opt['onBackground'] = 'function(toggler, i) { toggler.addClass(\'pane-toggler\');' .
			' toggler.removeClass(\'pane-toggler-down\');i.addClass(\'pane-hide\');i.removeClass(\'pane-down\'); }';
		$opt['duration'] = (isset($params['duration'])) ? (int) $params['duration'] : 300;
		$opt['display'] = (isset($params['startOffset']) && ($params['startTransition'])) ? (int) $params['startOffset'] : null;
		$opt['show'] = (isset($params['startOffset']) && (!$params['startTransition'])) ? (int) $params['startOffset'] : null;
		$opt['opacity'] = (isset($params['opacityTransition']) && ($params['opacityTransition'])) ? 'true' : 'false';
		$opt['alwaysHide'] = (isset($params['allowAllClose']) && (!$params['allowAllClose'])) ? 'false' : 'true';
		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(){ new Fx.Accordion($$(\'.panel h3.pane-toggler\'), $$(\'.panel div.pane-slider\'), '
			. $options . '); });';

		$document->addScriptDeclaration($js);
	}
}
