<?php
/**
 * @package Helix3 Framework
 * @author JoomShaper https://www.joomshaper.com
 * @copyright (c) 2010 - 2021 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later
 */

//no direct accees
defined ('_JEXEC') or die ('resticted aceess');

use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;

$rowSettings = array(
	'type'=>'general',
	'title'=>'',
	'attr'=>array(

		'name' => array(
			'type'		=> 'text',
			'title'		=> Text::_('HELIX_SECTION_TITLE'),
			'desc'		=> Text::_('HELIX_SECTION_TITLE_DESC'),
			'std'		=> ''
			),
		'background_color' => array(
			'type'		=> 'color',
			'title'		=> Text::_('HELIX_SECTION_BACKGROUND_COLOR'),
			'desc'		=> Text::_('HELIX_SECTION_BACKGROUND_COLOR_DESC')
			),
		'color' => array(
			'type'		=> 'color',
			'title'		=> Text::_('HELIX_SECTION_TEXT_COLOR'),
			'desc'		=> Text::_('HELIX_SECTION_TEXT_COLOR_DESC')
			),
		'background_image' => array(
			'type'		=> 'media',
			'title'		=> Text::_('HELIX_SECTION_BACKGROUND_IMAGE'),
			'desc'		=> Text::_('HELIX_SECTION_BACKGROUND_IMAGE_DESC'),
			'std'		=> '',
			),
		'background_repeat'=>array(
			'type'=>'select',
			'title'=>Text::_('HELIX_BG_REPEAT'),
			'desc'=>Text::_('HELIX_BG_REPEAT_DESC'),
			'values'=>array(
				'no-repeat'=>Text::_('HELIX_BG_REPEAT_NO'),
				'repeat'=>Text::_('HELIX_BG_REPEAT_ALL'),
				'repeat-x'=>Text::_('HELIX_BG_REPEAT_HORIZ'),
				'repeat-y'=>Text::_('HELIX_BG_REPEAT_VERTI'),
				'inherit'=>Text::_('HELIX_BG_REPEAT_INHERIT'),
				),
			'std'=>'no-repeat',
			),
		'background_size' => array(
			'type'		=> 'select',
			'title'=>Text::_('HELIX_BG_SIZE'),
			'desc'=>Text::_('HELIX_BG_SIZE_DESC'),
			'values'=>array(
				'cover'=>Text::_('HELIX_BG_COVER'),
				'contain'=>Text::_('HELIX_BG_CONTAIN'),
				'inherit'=>Text::_('HELIX_BG_INHERIT'),
				),
			'std'=>'cover',
			),
		'background_attachment'=>array(
			'type'=>'select',
			'title'=>Text::_('HELIX_BG_ATTACHMENT'),
			'desc'=>Text::_('HELIX_BG_ATTACHMENT_DESC'),
			'values'=>array(
				'fixed'=>Text::_('HELIX_BG_ATTACHMENT_FIXED'),
				'scroll'=>Text::_('HELIX_BG_ATTACHMENT_SCROLL'),
				'inherit'=>Text::_('HELIX_BG_ATTACHMENT_INHERIT'),
				),
			'std'=>'fixed',
			),
		'background_position' => array(
			'type'		=> 'select',
			'title'=>Text::_('HELIX_BG_POSITION'),
			'desc'=>Text::_('HELIX_BG_POSITION_DESC'),
			'values'=>array(
				'0 0'=>Text::_('HELIX_BG_POSITION_LEFT_TOP'),
				'0 50%'=>Text::_('HELIX_BG_POSITION_LEFT_CENTER'),
				'0 100%'=>Text::_('HELIX_BG_POSITION_LEFT_BOTTOM'),
				'50% 0'=>Text::_('HELIX_BG_POSITION_CENTER_TOP'),
				'50% 50%'=>Text::_('HELIX_BG_POSITION_CENTER_CENTER'),
				'50% 100%'=>Text::_('HELIX_BG_POSITION_CENTER_BOTTOM'),
				'100% 0'=>Text::_('HELIX_BG_POSITION_RIGHT_TOP'),
				'100% 50%'=>Text::_('HELIX_BG_POSITION_RIGHT_CENTER'),
				'100% 100%'=>Text::_('HELIX_BG_POSITION_RIGHT_BOTTOM'),
				),
			'std'=>'0 0',
			),
		'link_color' => array(
			'type'		=> 'color',
			'title'		=> Text::_('HELIX_LINK_COLOR'),
			'desc'		=> Text::_('HELIX_LINK_COLOR_DESC')
			),
		'link_hover_color' => array(
			'type'		=> 'color',
			'title'		=> Text::_('HELIX_LINK_HOVER_COLOR'),
			'desc'		=> Text::_('HELIX_LINK_HOVER_COLOR_DESC')
			),
		'hidden_xs' 		=> array(
			'type'		=> 'checkbox',
			'title'		=> Text::_('HELIX_HIDDEN_MOBILE'),
			'desc'		=> Text::_('HELIX_HIDDEN_MOBILE_DESC'),
			'std'		=> '',
			),
		'hidden_sm' 		=> array(
			'type'		=> 'checkbox',
			'title'		=> Text::_('HELIX_HIDDEN_TABLET'),
			'desc'		=> Text::_('HELIX_HIDDEN_TABLET_DESC'),
			'std'		=> '',
			),
		'hidden_md' 		=> array(
			'type'		=> 'checkbox',
			'title'		=> Text::_('HELIX_HIDDEN_DESKTOP'),
			'desc'		=> Text::_('HELIX_HIDDEN_DESKTOP_DESC'),
			'std'		=> '',
			),
		'padding' => array(
			'type'		=> 'text',
			'title'		=> Text::_('HELIX_PADDING'),
			'desc'		=> Text::_('HELIX_PADDING_DESC'),
			'std'		=> ''
			),
		'margin' => array(
			'type'		=> 'text',
			'title'		=> Text::_('HELIX_MARGIN'),
			'desc'		=> Text::_('HELIX_MARGIN_DESC'),
			'std'		=> ''
			),
		'fluidrow' 		=> array(
			'type'		=> 'checkbox',
			'title'		=> Text::_('HELIX_ROW_FULL_WIDTH'),
			'desc'		=> Text::_('HELIX_ROW_FULL_WIDTH_DESC'),
			'std'		=> '',
			),
		'custom_class' => array(
			'type'		=> 'text',
			'title'		=> Text::_('HELIX_CUSTOM_CLASS'),
			'desc'		=> Text::_('HELIX_CUSTOM_CLASS_DESC'),
			'std'		=> ''
			),
		)
	);

$columnSettings = array(
	'type'=>'general',
	'title'=>'',
	'attr'=>array(

		'column_type' => array(
			'type'		=> 'checkbox',
			'title'		=> Text::_('HELIX_COMPONENT'),
			'desc'		=> Text::_('HELIX_COMPONENT_DESC'),
			'std'=>'',
			),
		'name' => array(
			'type'		=> 'select',
			'title'		=> Text::_('HELIX_MODULE_POSITION'),
			'desc'		=> Text::_('HELIX_MODULE_POSITION_DESC'),
			'values'	=> array(),
			'std'=>'none',
			),
		'hidden_xs' 		=> array(
			'type'		=> 'checkbox',
			'title'		=> Text::_('HELIX_HIDDEN_MOBILE'),
			'desc'		=> Text::_('HELIX_HIDDEN_MOBILE_DESC'),
			'std'		=> '',
			),
		'hidden_sm' 		=> array(
			'type'		=> 'checkbox',
			'title'		=> Text::_('HELIX_HIDDEN_TABLET'),
			'desc'		=> Text::_('HELIX_HIDDEN_TABLET_DESC'),
			'std'		=> '',
			),
		'hidden_md' 		=> array(
			'type'		=> 'checkbox',
			'title'		=> Text::_('HELIX_HIDDEN_DESKTOP'),
			'desc'		=> Text::_('HELIX_HIDDEN_DESKTOP_DESC'),
			'std'		=> '',
			),
		'sm_col' 		=> array(
			'type'		=> 'select',
			'title'		=> Text::_('HELIX_TABLET_LAYOUT'),
			'desc'		=> Text::_('HELIX_TABLET_LAYOUT_DESC'),
			'values'	=> array(
				'' => "",
				'col-sm-1' => 'col-md-1',
				'col-sm-2' => 'col-md-2',
				'col-sm-3' => 'col-md-3',
				'col-sm-4' => 'col-md-4',
				'col-sm-5' => 'col-md-5',
				'col-sm-6' => 'col-md-6',
				'col-sm-7' => 'col-md-7',
				'col-sm-8' => 'col-md-8',
				'col-sm-9' => 'col-md-9',
				'col-sm-10' => 'col-md-10',
				'col-sm-11' => 'col-md-11',
				'col-sm-12' => 'col-md-12',
				),
			'std'		=> '',
			),
		'xs_col' 		=> array(
			'type'		=> 'select',
			'title'		=> Text::_('HELIX_MOBILE_LAYOUT'),
			'desc'		=> Text::_('HELIX_MOBILE_LAYOUT_DESC'),
			'values'	=> array(
				'' => "",
				'col-xs-1' => 'col-1',
				'col-xs-2' => 'col-2',
				'col-xs-3' => 'col-3',
				'col-xs-4' => 'col-4',
				'col-xs-5' => 'col-5',
				'col-xs-6' => 'col-6',
				'col-xs-7' => 'col-7',
				'col-xs-8' => 'col-8',
				'col-xs-9' => 'col-9',
				'col-xs-10' => 'col-10',
				'col-xs-11' => 'col-11',
				'col-xs-12' => 'col-12',
				),
			'std'		=> '',
			),
		'custom_class' => array(
			'type'		=> 'text',
			'title'		=> Text::_('HELIX_CUSTOM_CLASS'),
			'desc'		=> Text::_('HELIX_CUSTOM_CLASS_DESC'),
			'std'		=> ''
			),
		)
	);

class RowColumnSettings{

	private static function getInputElements( $key, $attr )
	{
		return call_user_func(array( 'SpType' . ucfirst( $attr['type'] ), 'getInput'), $key, $attr );
	}

	public static function getRowSettings($row_settings = array())
	{

		$output = '<div class="hidden">';
		$output .= '<div class="row-settings">';

		foreach ($row_settings['attr'] as $key => $rowAttr) {
			$output .= self::getInputElements( $key, $rowAttr );
		}

		$output .= '</div>';
		$output .= '</div>';

		return $output;
	}

	public static function getColumnSettings($col_settings = array())
	{

		$col_settings['attr']['name']['values'] = self::getPositionss();

		$output = '<div class="hidden">';
		$output .= '<div class="column-settings">';

		foreach ($col_settings['attr'] as $key => $rowAttr) {
			$output .= self::getInputElements( $key, $rowAttr );
		}

		$output .= '</div>';
		$output .= '</div>';

		return $output;
	}

	public static function getTemplateName()
	{
		$db = Factory::getDbo();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('template')));
		$query->from($db->quoteName('#__template_styles'));
		$query->where($db->quoteName('client_id') . ' = 0');
		$query->where($db->quoteName('home') . ' = 1');
		$db->setQuery($query);

		return $db->loadObject()->template;
	}


	public static function getPositionss() {

	    $db = Factory::getDbo();
	    $query = 'SELECT `position` FROM `#__modules` WHERE  `client_id`=0 AND ( `published` !=-2 AND `published` !=0 ) GROUP BY `position` ORDER BY `position` ASC';

	    $db->setQuery($query);
	    $dbpositions = (array) $db->loadAssocList();

		$template  = self::getTemplateName();

	    $templateXML = JPATH_SITE.'/templates/'.$template.'/templateDetails.xml';
	    $template = simplexml_load_file( $templateXML );
	    $options = array();

	    foreach($dbpositions as $positions) $options[] = $positions['position'];

	    foreach($template->positions[0] as $position)  $options[] =  (string) $position;

	    $options = array_unique($options);

	    $selectOption = array();
	    sort($selectOption);

	    foreach($options as $option) $selectOption[$option] = $option;

	    return $selectOption;
	}

	public static function getSettings($config = null){
		$data = '';
		if ($config) {
			foreach ($config as $key => $value) {
				$data .= ' data-'.$key.'="'.$value.'"';
			}
		}
		return $data;
	}
}