addStyleSheet($cssfile);
		
		parent::__construct();		
	}
	function display($tpl = null){				
		parent::display($tpl);
	}	
	
	function displayNew($tpl = null) {
		global $option, $mainframe;
        $return_urls = array();
		
		$model = $this->getModel();
		$ruleset = $model->getRuleset();				
		$model->getReturnURLs($return_urls);				
		
		$rule = array(
			'edit'=> false,			
			'rule_id' => count($ruleset['rules']),
			'ruleset_name' => $ruleset['name'],  
			'filename' => $ruleset['filename']						
		);
		$lists = $this->getEditRuleLists($rule);																
		
		$this->assignRef('lists', $lists);			
		$this->assignRef('return_urls', $return_urls);			
		
		parent::display($tpl);	
	}
	function displayEdit($tpl = null){		
		global $option, $mainframe;
        $return_urls = array();
		
		$model = $this->getModel();
		$rule = $model->getRule();		
		$model->getReturnURLs($return_urls);				
		
		$rule['edit'] = true;
		$lists = $this->getEditRuleLists($rule);
		
		$this->assignRef('lists', $lists);			
		$this->assignRef('return_urls', $return_urls);			
		
		parent::display($tpl);
	}	
	
	function getEditRuleLists($rule){		
		$lists = array();					
		
		$select_selected = 'selected="selected"';
		$checkbox_selected = 'checked="checked"';
				
		$row_selected = $column_selected = $cell_selected = '';
		$element_value = $element_section = $range_value = $style_value = $graph_value = $prepend_value = $append_value = '';
		$split_value = $filter_value = $column_filter_value = $sort_value = $pagination_value = $scroll_value = $theme_value = $responsive_value = $format_value = $calculation_value = $modification_value = $add_files = null;
		$data_type = DATA_TYPE_UNDEFINED; 
		$data_type_params = '';
		$autospan_selected = false;
        $th_tag_selected = false;
        $remove_selected = false;
		$range_key = 0;
        $priority = 0;
		
		# element
		$selected_value = (empty($rule['element']))?'row':$rule['element'];
		$options = array('none'=>JText::_('COM_TABULIZER_ELEMENT_TYPE_SELECT'), 'row'=>JText::_('COM_TABULIZER_ROW'), 'column'=>JText::_('COM_TABULIZER_COLUMN'), 'cell'=>JText::_('COM_TABULIZER_CELL'), 'table'=>JText::_('COM_TABULIZER_TABLE'));
		$attributes = array('onchange'=>'updateElementType(this)');
		$lists['element'] = TabulizerForm::getSelectCtrl('element', $selected_value, $options,$attributes);				
		$lists['element_type_value'] = $selected_value;
				
		# element section
		if (!empty($rule['element_section'])) {				
			$element_section = $rule['element_section'];												
		}
		$lists['element_section'] = TabulizerForm::getTextCtrl('element_section', $element_section);
				
		# range		
		if (!empty($rule['range'])) {				
			$range_value = $rule['range'];												
		}
		$lists['range'] = TabulizerForm::getTextCtrl('range', $range_value);
		
		# range key
		if (!empty($rule['range_key'])) {
			$range_key = $rule['range_key'];												
		}
		$lists['range_key'] = TabulizerForm::getTextCtrl('range_key', $range_key);
        # priority
        if (!empty($rule['priority'])) {
            $priority = $rule['priority'];
        }
        $lists['priority'] = TabulizerForm::getTextCtrl('priority', $priority);
		
		# style		
		if (!empty($rule['style'])) {
			$style_value = $rule['style'];		
		}		
		$lists['style'] = TabulizerForm::getTextCtrl('style', $style_value);
        # attribute
        if (!empty($rule['attribute'])) {
            list($attribute_name,$attribute_value) = explode(ATTRIBUTE_SEPARATOR,$rule['attribute'],2);
        } else {
            $attribute_name = $attribute_value = '';
        }
        $lists['attribute'] = '
';
		
		# autospan
		if (!empty($rule['autospan'])) {
			$autospan_selected = true;	
		}					
		$lists['autospan'] = TabulizerForm::getCheckboxCtrl('autospan', '1', $autospan_selected) . JText::_('COM_TABULIZER_AUTOSPAN_SELECTED');
        # th tag
        if (!empty($rule['th_tag'])) {
            $th_tag_selected = true;
        }
        $lists['th_tag'] = TabulizerForm::getCheckboxCtrl('th_tag', '1', $th_tag_selected) . JText::_('COM_TABULIZER_TH_TAG_SELECTED');
        # remove
        if (!empty($rule['remove'])) {
            $remove_selected = true;
        }
        $lists['remove'] = TabulizerForm::getCheckboxCtrl('remove', '1', $remove_selected) . JText::_('COM_TABULIZER_REMOVE_SELECTED');
		# format
		$format_vars = array('text_format','numeric_decimals', 'numeric_dec_point', 'numeric_thousands_sep', 'currency_decimals', 'currency_dec_point', 'currency_thousands_sep', 'currency_symbol', 'currency_symbol_order','date_format');
		foreach ($format_vars as $format_var) {
			$$format_var = null;
		}
		
		if (!empty($rule['format'])) {
			$format_value = $rule['format'];
			list($data_type,$data_type_params) = explode(DATA_TYPE_SEPARATOR,$format_value);
			$data_type_params = html_entity_decode($data_type_params,ENT_QUOTES,'UTF-8');
			
			switch ($data_type) {
				case DATA_TYPE_TEXT: 					
					$text_format = $data_type_params;
					break;
				case DATA_TYPE_NUMERIC: 
					list($numeric_decimals, $numeric_dec_point, $numeric_thousands_sep) = explode(FORMAT_NUMERIC_SEPARATOR, $data_type_params);
					break;
				case DATA_TYPE_CURRENCY: 
					list($currency_decimals, $currency_dec_point, $currency_thousands_sep, $currency_symbol, $currency_symbol_order) = explode(FORMAT_CURRENCY_SEPARATOR, $data_type_params);
					break;
				case DATA_TYPE_DATE: 
					$date_format = $data_type_params;
					break;
			}
		}						
					
		$lists['format'] = '';	
			
		$options = array(DATA_TYPE_UNDEFINED => JText::_('COM_TABULIZER_DATA_TYPE_UNDEFINED'), 
						DATA_TYPE_TEXT => JText::_('COM_TABULIZER_DATA_TYPE_TEXT'), 
						DATA_TYPE_NUMERIC => JText::_('COM_TABULIZER_DATA_TYPE_NUMERIC'), 
						DATA_TYPE_CURRENCY => JText::_('COM_TABULIZER_DATA_TYPE_CURRENCY'), 
						DATA_TYPE_DATE => JText::_('COM_TABULIZER_DATA_TYPE_DATE'));	
		$selected_value = empty($data_type)?DATA_TYPE_UNDEFINED:$data_type;
		$attributes = array('onChange'=>'updateDataType(this)');
		$lists['format'] .= TabulizerForm::getSelectCtrl('format_data_type',$selected_value,$options,$attributes);				
		
		$format_text_params_div_class = $format_numeric_params_div_class = $format_currency_params_div_class = $format_date_params_div_class = 'hidden_span';
		switch ($data_type) {
			case DATA_TYPE_TEXT: $format_text_params_div_class = ''; break;
			case DATA_TYPE_NUMERIC: $format_numeric_params_div_class = ''; break;
			case DATA_TYPE_CURRENCY: $format_currency_params_div_class = ''; break;
			case DATA_TYPE_DATE: $format_date_params_div_class = ''; break; 			
		}		
			
		$options = array(FORMAT_TEXT_UPPERCASE => JText::_('COM_TABULIZER_FORMAT_TEXT_UPPERCASE'),
						FORMAT_TEXT_LOWERCASE => JText::_('COM_TABULIZER_FORMAT_TEXT_LOWERCASE'),
						FORMAT_TEXT_UCFIRST => JText::_('COM_TABULIZER_FORMAT_TEXT_UCFIRST'),
						FORMAT_TEXT_UCWORDS => JText::_('COM_TABULIZER_FORMAT_TEXT_UCWORDS'));	
		$selected_value = empty($text_format)?FORMAT_TEXT_UPPERCASE:$text_format;
		$format_text_params_options = $this->getSelectOptions($options, $selected_value);					
		
		$numeric_decimals_options = '';
		$currency_decimals_options = '';
		for ($i=0;$i<10;$i++) {
			if ($i==$numeric_decimals) {
				$numeric_decimals_options .= '';
			} else {
				$numeric_decimals_options .= '';
			}	
			if ($i==$currency_decimals) {
				$currency_decimals_options .= '';
			} else {
				$currency_decimals_options .= '';
			}	
		}				
					
		$options = array(FORMAT_NUMERIC_DEC_POINT_COMMA => JText::_('COM_TABULIZER_FORMAT_NUMERIC_DEC_POINT_COMMA'), FORMAT_NUMERIC_DEC_POINT_PERIOD => JText::_('COM_TABULIZER_FORMAT_NUMERIC_DEC_POINT_PERIOD'));
		
		$selected_value = empty($numeric_dec_point)?FORMAT_NUMERIC_DEC_POINT_PERIOD:$numeric_dec_point;
		$numeric_dec_point_options = $this->getSelectOptions($options, $selected_value);				
		
		$selected_value = empty($numeric_thousands_sep)?FORMAT_NUMERIC_DEC_POINT_COMMA:$numeric_thousands_sep;
		$numeric_thousands_sep_options = $this->getSelectOptions($options, $selected_value);	
		
		$selected_value = empty($currency_dec_point)?FORMAT_NUMERIC_DEC_POINT_PERIOD:$currency_dec_point;
		$currency_dec_point_options = $this->getSelectOptions($options, $selected_value);		
		
		$selected_value = empty($currency_thousands_sep)?FORMAT_NUMERIC_DEC_POINT_COMMA:$currency_thousands_sep;
		$currency_thousands_sep_options = $this->getSelectOptions($options, $selected_value);
		
		$currency_symbol = empty($currency_symbol)?'€':$currency_symbol;
			
		$options = array(FORMAT_CURRENCY_SYMBOL_ORDER_NONE => JText::_('COM_TABULIZER_FORMAT_CURRENCY_SYMBOL_ORDER_NONE'), FORMAT_CURRENCY_SYMBOL_ORDER_BEFORE => JText::_('COM_TABULIZER_FORMAT_CURRENCY_SYMBOL_ORDER_BEFORE'), FORMAT_CURRENCY_SYMBOL_ORDER_AFTER => 	JText::_('COM_TABULIZER_FORMAT_CURRENCY_SYMBOL_ORDER_AFTER'));
		$selected_value = empty($currency_symbol_order)?FORMAT_CURRENCY_SYMBOL_ORDER_NONE:$currency_symbol_order;
		$currency_symbol_order_options = $this->getSelectOptions($options, $selected_value);			
		
		$options = array(FORMAT_DATE_DDMMYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYY_1'),
						FORMAT_DATE_DDMMYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYY_2'),
                        FORMAT_DATE_DDMMYY_3 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYY_3'),
						FORMAT_DATE_MMDDYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYY_1'),
						FORMAT_DATE_MMDDYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYY_2'),									
						FORMAT_DATE_DDMMYYYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYYYY_1'),
						FORMAT_DATE_DDMMYYYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYYYY_2'),
                        FORMAT_DATE_DDMMYYYY_4 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYYYY_4'),
						FORMAT_DATE_DDMMYYYY_3 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYYYY_3'),
						FORMAT_DATE_MMDDYYYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYYYY_1'),									
						FORMAT_DATE_MMDDYYYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYYYY_2'),
						FORMAT_DATE_MMDDYYYY_3 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYYYY_3'),
						FORMAT_DATE_dDDMMYYYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DDDMMYYYY_1'),
						FORMAT_DATE_dDDMMYYYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_DDDMMYYYY_2'),									
						FORMAT_DATE_dMMDDYYYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DMMDDYYYY_1'),
						FORMAT_DATE_dMMDDYYYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_DMMDDYYYY_2'),
						FORMAT_DATE_dDDm_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DDDM_1'),
						FORMAT_DATE_dmDD_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DMDD_1'));
		$selected_value = empty($date_format)?FORMAT_DATE_DDMMYY_1:$date_format;				
		$format_date_params_options = $this->getSelectOptions($options, $selected_value);				
						
		$lists['format'] .= '
		';
		
		$lists['format'] .= '';							
				
		# replacement
		$replace_cs = 'checked="checked"';
		$replace_from = $replace_to = '';
		if (!empty($rule['replacement'])) {
			list($case_sensitive, $replace_from, $replace_to) = explode(REPLACEMENT_SEPARATOR, $rule['replacement'], 3);
			if ($case_sensitive) $replace_cs = 'checked="checked"'; else $replace_cs = '';
			if (!empty($replace_from)) $replace_from = htmlspecialchars($replace_from,ENT_QUOTES,'UTF-8'); 
			if (!empty($replace_to)) $replace_to = htmlspecialchars($replace_to,ENT_QUOTES,'UTF-8'); 
		}	
										
		$lists['replacement'] = '';
        # table modification
        if (!empty($rule['modification'])) {
            $modification_value = $rule['modification'];
        }
        $lists['modification'] = $this->getModificationHTML($modification_value);
		# calculation
		if (!empty($rule['calculation'])) {
			$calculation_value = $rule['calculation'];
		}		
		$lists['calculation'] = $this->getCalculationHTML($calculation_value);
		
		# prepend table
		if (!empty($rule['prepend'])) {
			$prepend_value = $rule['prepend'];
		}
		$lists['prepend'] = TabulizerForm::getTextareaCtrl('table_prepend',$prepend_value,array('class'=>'textarea_param'));
		# append table
		if (!empty($rule['append'])) {
			$append_value = $rule['append'];
		}
		$lists['append'] = TabulizerForm::getTextareaCtrl('table_append',$append_value,array('class'=>'textarea_param'));
        # add files
        if (!empty($rule['add_files'])) {
            $add_files_value = $rule['add_files'];
        } else {
            $add_files_value = '';
        }
        $lists['add_files'] = $this->getAddFilesHTML($add_files_value);
		
		TabulizerPath::requireLib('ruleset','common');
        $ruleset = new RulesetLoader();
				
		# split table
		if (!empty($rule['split'])) {
			if (!$ruleset->parseSplitValue($rule['split'], $split_value)) $split_value = null;
		}
		$lists['split'] = $this->getSplitHTML('table_split',$split_value);
		
		# sort
		if (!empty($rule['sort'])) {
			if (!$ruleset->parseSortValue($rule['sort'],$sort_value)) $sort_value = null;
		}
		$lists['sort'] = $this->getSortHTML('table_sort',$sort_value);
		
		# pagination
		if (!empty($rule['pagination'])) {
			if (!$ruleset->parsePaginationValue($rule['pagination'],$pagination_value)) $pagination_value = null;
		}
		$lists['pagination'] = $this->getPaginationHTML('table_pagination',$pagination_value);
		
		# scroll
		if (!empty($rule['scroll'])) {
			if (!$ruleset->parseScrollValue($rule['scroll'],$scroll_value)) $scroll_value = null;
		}
		$lists['scroll'] = $this->getScrollHTML('table_scroll',$scroll_value);
				
		# filter
		if (!empty($rule['filter'])) {
			if (!$ruleset->parseFilterValue($rule['filter'],$filter_value)) $filter_value = null;
		}
        if (!empty($rule['column_filter'])) {
            if (!$ruleset->parseColumnFilterValue($rule['column_filter'],$column_filter_value)) $column_filter_value = null;
        }
		$lists['filter'] = $this->getFilterHTML('table_filter',$filter_value,'table_column_filter',$column_filter_value);
        if (!empty($rule['theme'])) {
            if (!$ruleset->parseThemeValue($rule['theme'],$theme_value)) $theme_value = null;
        }
        $lists['theme'] = $this->getThemeHTML('table_theme',$theme_value);
		
		# responsive
		if (!empty($rule['responsive'])) {
			if (!$ruleset->parseResponsiveValue($rule['responsive'],$responsive_value)) $responsive_value = null;
		}
		$lists['responsive'] = $this->getResponsiveHTML('table_responsive',$responsive_value);
		
		# export table data
        $export_table_value = null;
		if (!empty($rule['export_table'])) {
			if (!$ruleset->parseExportTableValue($rule['export_table'],$export_table_value)) $export_table_value = null;
		}
		$lists['export_table'] = $this->getExportTableHTML('table_export_table',$export_table_value);				
		
		# convert table to graph
		if (!empty($rule['graph'])) {
			$graph_value = $rule['graph'];		
		}		
		$lists['graph'] = '';				
		
		$lists['base64_tools'] = $this->getBase64Tools();
		
		# edit flag
		$lists['edit'] = $rule['edit'];																	
		
		$lists['rule_id'] = '';
		$lists['ruleset_name'] = '';
		$lists['filename'] = '';
		
		$lists['rule_id_value'] = $rule['rule_id'];
		$lists['ruleset_name_value'] = $rule['ruleset_name']; // $ruleset['name'];
		$lists['filename_value'] = $rule['filename'];
		
		return $lists;
	}	
	
	function getCalculationHTML($calculation_value) {
		$function_name = null;				
		$arg_range = null;	
		$custom_arg = null;
											
		if (!empty($calculation_value)) {			
			// backward compatibility
			if (is_numeric($calculation_value)) {	
				switch ($calculation_value) {
					case CALCULATION_ADD_ABOVE: $function_name = 'add'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above';  break;
					case CALCULATION_ADD_BELOW: $function_name = 'add'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below';  break;
					case CALCULATION_ADD_LEFT: $function_name = 'add'; $element = 'column'; $arg_range = '[SAME],[1-P1]'; $custom_arg = 'left';  break;
					case CALCULATION_ADD_RIGHT: $function_name = 'add'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right';  break;
					case CALCULATION_MUL_ABOVE: $function_name = 'mul'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above';  break;
					case CALCULATION_MUL_BELOW: $function_name = 'mul'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below';  break;
					case CALCULATION_MUL_LEFT: $function_name = 'mul'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left';  break;
					case CALCULATION_MUL_RIGHT: $function_name = 'mul'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right';  break;
					case CALCULATION_AVG_ABOVE: $function_name = 'avg'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above';  break;
					case CALCULATION_AVG_BELOW: $function_name = 'avg'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below';  break;
					case CALCULATION_AVG_LEFT: $function_name = 'avg'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left';  break;
					case CALCULATION_AVG_RIGHT: $function_name = 'avg'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right';  break;
					case CALCULATION_MED_ABOVE: $function_name = 'med'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above';  break;
					case CALCULATION_MED_BELOW: $function_name = 'med'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below';  break;
					case CALCULATION_MED_LEFT: $function_name = 'med'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left';  break;
					case CALCULATION_MED_RIGHT: $function_name = 'med'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right';  break;
					case CALCULATION_MIN_ABOVE: $function_name = 'min'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above';  break;
					case CALCULATION_MIN_BELOW: $function_name = 'min'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below';  break;
					case CALCULATION_MIN_LEFT: $function_name = 'min'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left';  break;
					case CALCULATION_MIN_RIGHT: $function_name = 'min'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right';  break;
					case CALCULATION_MAX_ABOVE: $function_name = 'max'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above';  break;
					case CALCULATION_MAX_BELOW: $function_name = 'max'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below';  break;
					case CALCULATION_MAX_LEFT: $function_name = 'max'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left';  break;
					case CALCULATION_MAX_RIGHT: $function_name = 'max'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right';  break;
					default: return null;
				}
				
				$calculation_value = $function_name.CALCULATION_SEP.CALCULATION_SEP.$arg_range.CALCULATION_SEP.$custom_arg;
			}			
		
			$parts = explode(CALCULATION_SEP,$calculation_value);
			if (count($parts)==3) {
				$function_name = $parts[0];
				$arg_range = $parts[1];								
				$custom_arg = $parts[2];
			}	
		}			
						
		$html = '' . 
			TabulizerForm::getHiddenCtrl('calculation','');
		
		return $html;		
		
	}
    # table modification
    function getModificationHTML($modification_value) {
        $function_name = '';
        $function_args = '';
        $parts = explode(MODIFICATION_SEP,$modification_value);
        if (count($parts)==2) {
            $function_name = $parts[0];
            $function_args = $parts[1];
        }
        $html = '' .
            TabulizerForm::getHiddenCtrl('modification','');
        return $html;
    }
    # add files
    function getAddFilesHTML($add_files_value) {
        $add_files_css =  $add_files_js = '';
        $add_jquery_support = 0;
        $add_jqueryui_support = 0;
        $add_scroll_support = 0;
        $file_types = array('js','css','jquery','jquery-ui','scroll-support');
        foreach ($file_types as $file_type) {
            if (preg_match('/'.$file_type.'\[([^\]]+)\]/i',$add_files_value,$matches)) {
                if ($file_type == 'css') $add_files_css = $matches[1];
                else if ($file_type == 'js') $add_files_js = $matches[1];
                else if ($file_type == 'jquery') $add_jquery_support = 1;
                else if ($file_type == 'jquery-ui') $add_jqueryui_support = 1;
                else if ($file_type == 'scroll-support') $add_scroll_support = 1;
            }
        }
        $html = ''.
            TabulizerForm::getHiddenCtrl('add_files','');
        return $html;
    }
	
	# split	
	function getSplitHTML($name,$value) {
		$html = '';
		
		$split_type = 0;
		$split_rows = 0;
        $split_groupby = 0;
		$split_top_header = 0;		
		$split_bottom_header = 0;				
		$split_index = 0;
		$split_caption = '';						
		
		if (!empty($value)) {			
			$split_type = $value['type'];
			$split_rows = $value['rows'];
            $split_groupby = $value['groupby'];
			if (!empty($value['top_header'])) $split_top_header = $value['top_header']; 
			if (!empty($value['bottom_header'])) $split_bottom_header = $value['bottom_header']; 
			if (!empty($value['index'])) $split_index = $value['index']; 
			if (!empty($value['caption'])) $split_caption = $value['caption']; 
		}										
		
		$options = array(0=>JText::_('COM_TABULIZER_NONE'),SPLIT_MULTIPART=>JText::_('COM_TABULIZER_SPLIT_MULTIPART'),SPLIT_MULTIPAGE=>JText::_('COM_TABULIZER_SPLIT_MULTIPAGE'),SPLIT_HIDE=>JText::_('COM_TABULIZER_SPLIT_HIDE'));
		$html .= '| '.JText::_('COM_TABULIZER_SPLIT_TYPE').': | '.TabulizerForm::getSelectCtrl($name.'_type',$split_type,$options,array('onchange'=>'updateSplitType(this)')).' | 
'."\n";
		
		$options = array(0=>JText::_('COM_TABULIZER_NONE'));
		for ($i=1;$i<=SPLIT_MAX_ROWS_SELECTION;) {
			$options[$i] = $i;			
			if ($i<10) $i=$i+1;
			else if ($i<30) $i=$i+5;
			else $i = $i + 10;
		}
        $options2 = array(0=>JText::_('COM_TABULIZER_NONE'));
        for ($i=1;$i<=SPLIT_MAX_GROUPBY_SELECTION;$i++) {
            $options2[$i] = $i;
        }
		$html .= '| '.
            JText::_('COM_TABULIZER_SPLIT_ROWS_TYPE').': | '.
            ' 
            '.
            '| '.JText::_('COM_TABULIZER_SPLIT_ROWS_HEADER').': | '.TabulizerForm::getSelectCtrl($name.'_rows',$split_rows,$options,array('onchange'=>'updateSplitBy(\'rows\')')).' |  | '.JText::_('COM_TABULIZER_SPLIT_GROUPBY_HEADER').': | '.TabulizerForm::getSelectCtrl($name.'_groupby',$split_groupby,$options2,array('onchange'=>'updateSplitBy(\'groupby\')')).' |  | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_SPLIT_TOP_HEADER').': | '.TabulizerForm::getSelectCtrl($name.'_top_header',$split_top_header,$options).' | 
'."\n";
		$html .= '| '.JText::_('COM_TABULIZER_SPLIT_BOTTOM_HEADER').': | '.TabulizerForm::getSelectCtrl($name.'_bottom_header',$split_bottom_header,$options).' | 
'."\n";
        $tr_split_index_class = ($split_type == SPLIT_MULTIPAGE)?'hidden_tr':'tr_hi';
		$html .= '| '.JText::_('COM_TABULIZER_SPLIT_INDEX').': | '.TabulizerForm::getCheckboxCtrl($name.'_index', '1', $split_index).' '.JText::_('COM_TABULIZER_YES').' | 
'."\n";
		$html .= '| '.JText::_('COM_TABULIZER_SPLIT_CAPTION').': | '.TabulizerForm::getTextCtrl($name.'_caption', $split_caption).' '.JText::_('COM_TABULIZER_SPLIT_CAPTION_BASE64_ENCODE_TIP').$this->getEncodingMenu($name.'_caption').' | 
'."\n";
		
		$html = '';
		
		$html .= TabulizerForm::getHiddenCtrl($name, '');
		
		return $html;
	}
	
	# sort	
	function getSortHTML($name,$value) {
		$html = '';
        $enabled = 0;
		$orderby_id = 0;
		$orderby_direction = 'asc';
        $header_size = 1;
        $footer_size = 0;
        $header_top = 'auto';
        $exclude = '';
        $datatypes = '';
		if (!empty($value)) {
            if (!empty($value['enabled'])) $enabled = 1;
            $orderby_id = $value['orderby']['id'];
			$orderby_direction = $value['orderby']['direction'];
            if (!empty($value['header_size'])) $header_size = $value['header_size'];
            if (!empty($value['header_top'])) $header_top = $value['header_top'];
            if (!empty($value['footer_size'])) $footer_size = $value['footer_size'];
            if (!empty($value['exclude_str'])) $exclude = str_replace(' ','',$value['exclude_str']);
            if (!empty($value['datatypes_str'])) $datatypes = str_replace(' ','',$value['datatypes_str']);
		}
        $html .= '| '.JText::_('COM_TABULIZER_SORT_ENABLED').': | '.TabulizerForm::getCheckboxCtrl($name .'_enabled','1',$enabled).' '.JText::_('COM_TABULIZER_YES').' | 
'."\n";
		$options = array();
        $options[-1] = JText::_('COM_TABULIZER_SORT_NO_INITIAL_ORDER');
		for ($i=1;$i<=SORT_MAX_ORDERBYID_SELECTION;$i++) $options[$i] = $i;
		$html .= '| '.JText::_('COM_TABULIZER_SORT_ORDERBYID').': | '.TabulizerForm::getSelectCtrl($name.'_id',$orderby_id,$options).' | 
'."\n";
		
		$options = array('asc'=>JText::_('COM_TABULIZER_SORT_ASC'),'desc'=>JText::_('COM_TABULIZER_SORT_DESC'));		
		$html .= '| '.JText::_('COM_TABULIZER_SORT_ORDERBYDIRECTION').': | '.TabulizerForm::getSelectCtrl($name.'_direction',$orderby_direction,$options).' | 
'."\n";
        $options = array();
        for ($i=1;$i<=SORT_MAX_DATATABLES_HEADERS;$i++) $options[$i] = $i;
        $html .= '| '.JText::_('COM_TABULIZER_SORT_HEADER_SIZE').': | '.TabulizerForm::getSelectCtrl($name.'_header_size',$header_size,$options).' | 
'."\n";
        $options = array('auto'=>JText::_('COM_TABULIZER_SORT_HEADER_TOP_AUTO'),'true'=>JText::_('COM_TABULIZER_SORT_HEADER_TOP_TRUE'),'false'=>JText::_('COM_TABULIZER_SORT_HEADER_TOP_FALSE'));
        $html .= '| '.JText::_('COM_TABULIZER_SORT_HEADER_TOP').': | '.TabulizerForm::getSelectCtrl($name.'_header_top',$header_top,$options).' | 
'."\n";
        $options = array();
        for ($i=0;$i<=SORT_MAX_DATATABLES_HEADERS;$i++) $options[$i] = $i;
        $html .= '| '.JText::_('COM_TABULIZER_SORT_FOOTER_SIZE').': | '.TabulizerForm::getSelectCtrl($name.'_footer_size',$footer_size,$options).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_SORT_EXCLUDE_COLUMNS').': | '.TabulizerForm::getTextCtrl($name.'_exclude', $exclude).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_SORT_DATATYPES_COLUMNS').': | '.TabulizerForm::getTextCtrl($name.'_datatypes', $datatypes).' | 
'."\n";
		
		$html = '';
		
		$html .= TabulizerForm::getHiddenCtrl($name, '');
		
		return $html;
	}
	
	# pagination
	function getPaginationHTML($name,$value) {
		$html = '';				
		
		$enabled = 0;
		$type = 0;
        $position_vertical = 'bottom';
        $position_horizontal = 'right';
        $header_size = 0;
        $footer_size = 0;
		$limit = 10;
        $limitchange = array('vertical'=>'top','horizontal'=>'left');
        $info = array('vertical'=>'bottom','horizontal'=>'left');
				
		if (!empty($value)) {
			$enabled = $value['enabled'];
			if ($enabled) {
				if (!empty($value['limit'])) $limit = $value['limit'];
                if (empty($value['limitchange'])) $limitchange = 0;
                if (empty($value['info'])) $info = 0;
				if (!empty($value['type'])) $type = $value['type'];
				if (!empty($value['position'])) {
					if (!empty($value['position']['vertical'])) $position_vertical = $value['position']['vertical'];
					if (!empty($value['position']['horizontal'])) $position_horizontal = $value['position']['horizontal'];
				}
                if (!empty($value['header_size'])) $header_size = $value['header_size'];
                if (!empty($value['footer_size'])) $footer_size = $value['footer_size'];
			} else {
				$type = 0;
			}	
		}				
        // type
		$options = array(0=>JText::_('COM_TABULIZER_NONE'),'basic'=>JText::_('COM_TABULIZER_PAGINATION_TYPE_BASIC'),'full'=>JText::_('COM_TABULIZER_PAGINATION_TYPE_FULL'));
		$html .= '| '.JText::_('COM_TABULIZER_PAGINATION_TYPE').': | '.TabulizerForm::getSelectCtrl($name.'_type',$type,$options).' | 
'."\n";
        // position
		$position_value = $position_vertical.'-'.$position_horizontal;
		$options = array('top-left'=>JText::_('COM_TABULIZER_POSITION_TOP_LEFT'),'top-right'=>JText::_('COM_TABULIZER_POSITION_TOP_RIGHT'),
								  'bottom-left'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_LEFT'),'bottom-right'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_RIGHT'));
		$html .= '| '.JText::_('COM_TABULIZER_PAGINATION_POSITION').': | '.TabulizerForm::getSelectCtrl($name.'_position',$position_value,$options).' | 
'."\n";
        // limit (rows/table)
        $user_preferences = TabulizerInfo::getUserPreferences($error_msg);
        if ($user_preferences) {
            $menu_length_values = explode(',',$user_preferences['pagination_length_menu']);
        } else {
            $menu_length_values = explode(',',PAGINATION_LENGTH_MENU);
        }
        $options = array(0=>JText::_('COM_TABULIZER_DEFAULT'));
        foreach ($menu_length_values as $i) {
            $options[$i] = $i;
        }
        $options[-1] = JText::_('COM_TABULIZER_ALL');
        $html .= '| '.JText::_('COM_TABULIZER_PAGINATION_LIMIT').': | '.TabulizerForm::getSelectCtrl($name.'_limit',$limit,$options).' | 
'."\n";
        // change limit
        $position_value = empty($limitchange)?0:$limitchange['vertical'].'-'.$limitchange['horizontal'];
        $options = array(0=>JText::_('COM_TABULIZER_NONE'),'top-left'=>JText::_('COM_TABULIZER_POSITION_TOP_LEFT'),'top-right'=>JText::_('COM_TABULIZER_POSITION_TOP_RIGHT'),
            'bottom-left'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_LEFT'),'bottom-right'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_RIGHT'));
        $html .= '| '.JText::_('COM_TABULIZER_PAGINATION_LIMITCHANGE').': | '.TabulizerForm::getSelectCtrl($name.'_limitchange',$position_value,$options).' | 
'."\n";
        // info (page # or total)
        $position_value = empty($info)?0:$info['vertical'].'-'.$info['horizontal'];
        $options = array(0=>JText::_('COM_TABULIZER_NONE'),'top-left'=>JText::_('COM_TABULIZER_POSITION_TOP_LEFT'),'top-right'=>JText::_('COM_TABULIZER_POSITION_TOP_RIGHT'),
            'bottom-left'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_LEFT'),'bottom-right'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_RIGHT'));
        $html .= '| '.JText::_('COM_TABULIZER_PAGINATION_INFO').': | '.TabulizerForm::getSelectCtrl($name.'_info',$position_value,$options).' | 
'."\n";
        // header size
        $options = array();
        for ($i=0;$i<=PAGINATION_MAX_DATATABLES_HEADERS;$i++) $options[$i] = $i;
        $html .= '| '.JText::_('COM_TABULIZER_PAGINATION_HEADER_SIZE').': | '.TabulizerForm::getSelectCtrl($name.'_header_size',$header_size,$options).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_PAGINATION_FOOTER_SIZE').': | '.TabulizerForm::getSelectCtrl($name.'_footer_size',$footer_size,$options).' | 
'."\n";
        // combine all together
		$html = '';
		
		$html .= TabulizerForm::getHiddenCtrl($name, '');
		
		return $html;
	}
	
	# scroll
	function getScrollHTML($name,$value) {
		$xaxis_scroll = $yaxis_scroll = '';
        $xaxis_enabled = $yaxis_enabled = false;
		
		if (!empty($value)) {
			if (!empty($value['xaxis'])) { $xaxis_scroll = $value['xaxis']; $xaxis_enabled = true; }
			if (!empty($value['yaxis'])) { $yaxis_scroll = $value['yaxis']; $yaxis_enabled = true; }
		}
        $html = '| '.JText::_('COM_TABULIZER_FILTER_ENABLED').': | '.TabulizerForm::getCheckboxCtrl($name .'_yaxis_enabled','1',$yaxis_enabled).' '.JText::_('COM_TABULIZER_YES').' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_SCROLL_SIZE').': | '.TabulizerForm::getTextCtrl($name.'_yaxis',$yaxis_scroll).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_SCROLL_YAXIS_TIP').' | 
';
        $vertical_scroll_html = '';
        $html = '| '.JText::_('COM_TABULIZER_FILTER_ENABLED').': | '.TabulizerForm::getCheckboxCtrl($name .'_xaxis_enabled','1',$xaxis_enabled).' '.JText::_('COM_TABULIZER_YES').' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_SCROLL_SIZE').': | '.TabulizerForm::getTextCtrl($name.'_xaxis',$xaxis_scroll).' | 
'."\n";
        $html .= '| '.sprintf(JText::_('COM_TABULIZER_SCROLL_XAXIS_TIP'),JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_1')).' | 
';
        $horizontal_scroll_html = '';
        $html = '';
		
		$html .= TabulizerForm::getHiddenCtrl($name, '');
		
		return $html;
	}
			
	# filter
	function getFilterHTML($filter_name,$filter_value,$column_filter_name,$column_filter_value) {
        $options_0 = array();
        $options_1 = array();
        for ($i=0;$i<=FILTER_MAX_DATATABLES_HEADERS;$i++) {
            $options_0[$i] = $i;
            if ($i>0) $options_1[$i] = $i;
        }
        // table wide filtering (all columns)
        $html = '';
        $name = $filter_name;
		$value = $filter_value;
		$enabled = 0;
        $header_size = 1;
        $footer_size = 0;
		$position_vertical = 'top';
		$position_horizontal = 'right';
        $highlight = 0;
		if (!empty($value)) {
			$enabled = $value['enabled'];
            if (!empty($value['header_size'])) $header_size = $value['header_size'];
            if (!empty($value['footer_size'])) $footer_size = $value['footer_size'];
			if (!empty($value['position'])) {
				if (!empty($value['position']['vertical'])) $position_vertical = $value['position']['vertical'];
				if (!empty($value['position']['horizontal'])) $position_horizontal = $value['position']['horizontal'];
			}
            if (!empty($value['highlight'])) $highlight = $value['highlight'];
		}
		$position_value = $position_vertical.'-'.$position_horizontal;
		$position_options = array('top-left'=>JText::_('COM_TABULIZER_POSITION_TOP_LEFT'),'top-right'=>JText::_('COM_TABULIZER_POSITION_TOP_RIGHT'),
								  'bottom-left'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_LEFT'),'bottom-right'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_RIGHT'));
		
		$html .= '| '.JText::_('COM_TABULIZER_FILTER_ENABLED').': | '.TabulizerForm::getCheckboxCtrl($name .'_enabled','1',$enabled).' '.JText::_('COM_TABULIZER_YES').' | 
'."\n";
		$html .= '| '.JText::_('COM_TABULIZER_FILTER_POSITION').': | '.TabulizerForm::getSelectCtrl($name.'_position',$position_value,$position_options).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_FILTER_HIGHLIGHT').': | '.TabulizerForm::getCheckboxCtrl($name .'_highlight','1',$highlight).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_FILTER_HEADER_SIZE').': | '.TabulizerForm::getSelectCtrl($name.'_header_size',$header_size,$options_0).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_FILTER_FOOTER_SIZE').': | '.TabulizerForm::getSelectCtrl($name.'_footer_size',$footer_size,$options_0).' | 
'."\n";
        $filter_html = '';
        // specific column filtering
        $html = '';
        $name = $column_filter_name;
        $value = $column_filter_value;
        $enabled = 0;
        $headerrow = 1;
        $header_size = 1;
        $footer_size = 0;
        $columns = '';
        if (!empty($value)) {
            $enabled = $value['enabled'];
            if (!empty($value['headerrow'])) $headerrow = $value['headerrow'];
            if (!empty($value['header_size'])) $header_size = $value['header_size'];
            if (!empty($value['footer_size'])) $footer_size = $value['footer_size'];
            if (!empty($value['columns'])) {
                $columns = $value['columns_str'];
            }
        }
        $html .= '| '.JText::_('COM_TABULIZER_FILTER_ENABLED').': | '.TabulizerForm::getCheckboxCtrl($name .'_enabled','1',$enabled).' '.JText::_('COM_TABULIZER_YES').' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_FILTER_HEADER_ROW').': | '.TabulizerForm::getSelectCtrl($name.'_headerrow',$headerrow,$options_1).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_FILTER_COLUMN_LIST').': | '.TabulizerForm::getTextCtrl($name.'_columns',$columns).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_FILTER_HEADER_SIZE').': | '.TabulizerForm::getSelectCtrl($name.'_header_size',$header_size,$options_1).' | 
'."\n";
        $html .= '| '.JText::_('COM_TABULIZER_FILTER_FOOTER_SIZE').': | '.TabulizerForm::getSelectCtrl($name.'_footer_size',$footer_size,$options_0).' | 
'."\n";
        $column_filter_html = '';
		
		$html = '';
		
		$html .= TabulizerForm::getHiddenCtrl($filter_name, '');
        $html .= TabulizerForm::getHiddenCtrl($column_filter_name, '');
		
		return $html;
	}
    # theme
    function getThemeHTML($name,$value) {
        $options = array(0=>JText::_('COM_TABULIZER_NONE'));
        $dir = TabulizerPath::getDirPath('themes');
        if (is_dir($dir)) {
            if ($dh = opendir($dir)) {
                while (($file = readdir($dh)) !== false) {
                    if (is_file($dir . $file)) {
                        if (preg_match('/css$/i',$file)) {
                            $parts = pathinfo($file);
                            $options[$file] = ucwords(preg_replace('/a-z/i',' ',$parts['filename']));
                        }
                    }
                }
                closedir($dh);
            }
        }
        $options['themeroller'] = 'Themeroller - jQuery UI';
        $html = TabulizerForm::getSelectCtrl($name,$value,$options);
        return $html;
    }
	
	# responsive
	function getResponsiveHTML($name,$value) {
		$html = '';				
		
		$pattern_id = 0;
        $pattern_params = null;
		$params = array(RESPONSIVE_PATTERN_1 => array('width'=>'','height'=>'','nicescroll'=>0,'zoom'=>0,'touch'=>0,'cursor'=>array('display'=>1,'width'=>0,'color'=>'')),
                        RESPONSIVE_PATTERN_3 => array('priorities'=>array(1=>'essential',2=>'essential',3=>'optional',4=>'optional',5=>'optional')),
						RESPONSIVE_PATTERN_4 => array('expand'=>1, 'hides'=>array(2=>'phone',3=>'phone',4=>'tablet',5=>'tablet'))
						);
		
		if (!empty($value)) {		
			$pattern_id = $value['pattern'];			
			if (!empty($value['params'])) $pattern_params = $value['params'];
		}
        $pattern_1_div_class = $pattern_3_div_class = $pattern_4_div_class = 'hidden_span';
		switch ($pattern_id) {
            case RESPONSIVE_PATTERN_1: $pattern_1_div_class = ''; $params[$pattern_id] = $pattern_params; break;
			case RESPONSIVE_PATTERN_3: $pattern_3_div_class = ''; $params[$pattern_id] = $pattern_params; break;
			case RESPONSIVE_PATTERN_4: $pattern_4_div_class = ''; $params[$pattern_id] = $pattern_params; break;
		}
        // pattern #1 params
        $pattern_scrollbars_params = '';
        $pattern_scrollbars_params .= '| '.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_WIDTH').': | '.TabulizerForm::getTextCtrl($name.'_width',$params[RESPONSIVE_PATTERN_1]['width'],array('class'=>'short_param')).' '.JText::_('COM_TABULIZER_OPTIONAL_INPUT_FIELD').' | 
';
        $pattern_scrollbars_params .= '| '.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_HEIGHT').': | '.TabulizerForm::getTextCtrl($name.'_height',$params[RESPONSIVE_PATTERN_1]['height'],array('class'=>'short_param')).' '.JText::_('COM_TABULIZER_OPTIONAL_INPUT_FIELD').' | 
';
        $nicescroll_enabled = empty($params[RESPONSIVE_PATTERN_1]['nicescroll'])?0:1;
        if ($nicescroll_enabled) {
            $nicescroll_tr_class = 'tr_hi';
        } else {
            $nicescroll_tr_class = 'hidden';
        }
        $cursor_width_options = array(0=>JText::_('COM_TABULIZER_DEFAULT'));
        for ($i=1;$i<15;$i++) $cursor_width_options[$i] = "{$i}px";
        $cursor_options = ''.
            '| '.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_CURSOR_DISPLAY').': | '.TabulizerForm::getCheckboxCtrl($name.'_cursor_display','1',$params[RESPONSIVE_PATTERN_1]['cursor']['display']).' '.JText::_('COM_TABULIZER_YES').' | 
' .
            '| '.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_CURSOR_WIDTH').': | '. TabulizerForm::getSelectCtrl($name.'_cursor_width',$params[RESPONSIVE_PATTERN_1]['cursor']['width'],$cursor_width_options).' | 
' .
            '| '.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_CURSOR_COLOR').': | '.TabulizerForm::getTextCtrl($name.'_cursor_color',$params[RESPONSIVE_PATTERN_1]['cursor']['color'],array('class'=>'short_param')).' '.JText::_('COM_TABULIZER_OPTIONAL_INPUT_FIELD').' | 
' .
            '
';
        $nicescroll_params = '
        ';
        $pattern_scrollbars_params .= '| '.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_NICESCROLL').': | '.$nicescroll_params.' | 
';
        $pattern_scrollbars_params = ''.$pattern_scrollbars_params.'
';
        $pattern_scrollbars_params_html = '
		' .
            '| '.JText::_('COM_TABULIZER_RESPONSIVE_PARAMS_1').': | '.$pattern_scrollbars_params.' | 
' .
            '
            ';
        // pattern #3 params
		$options = array(0=>JText::_('COM_TABULIZER_NONE'), 'persist'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_PERSIST'), 'essential'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_ESSENTIAL'), 'optional'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_OPTIONAL'),'invisible_column'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_INVISIBLE'));
		$top_row = $bottom_row = '';
		for ($i=1;$i<=RESPONSIVE_PATTERN_PARAMS_MAX_COLUMNS;$i++) {
			$column_value = (isset($params[RESPONSIVE_PATTERN_3]['priorities'][$i]))?$params[RESPONSIVE_PATTERN_3]['priorities'][$i]:0;
			$column_selection = TabulizerForm::getSelectCtrl($name.'_header_selection_params_'.$i,$column_value,$options);			
			$top_row .= ''.sprintf(JText::_('COM_TABULIZER_RESPONSIVE_COLUMN_PRIORITY'),$i).'';
			$bottom_row .= ' | '.$column_selection.'';
		}
		$pattern_header_selection_params = ' | '.$top_row.'
'.$bottom_row.'
';
		
		$pattern_header_selection_params_html = '
		' .
			'| '.JText::_('COM_TABULIZER_RESPONSIVE_PARAMS_3').': | '.$pattern_header_selection_params.' | 
' .		
		'
		';		
		// pattern #4 params
		$options = array(0=>JText::_('COM_TABULIZER_NONE'), 'expand'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_EXPAND'), 'phone'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_PHONE'), 'tablet'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_TABLET'),'all'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_ALL'));
		$top_row = $bottom_row = '';
		for ($i=1;$i<=RESPONSIVE_PATTERN_PARAMS_MAX_COLUMNS;$i++) {
			if (!empty($params[RESPONSIVE_PATTERN_4]['expand'])&&($params[RESPONSIVE_PATTERN_4]['expand'] == $i)) $column_value = 'expand'; 
			else $column_value = (isset($params[RESPONSIVE_PATTERN_4]['hides'][$i]))?$params[RESPONSIVE_PATTERN_4]['hides'][$i]:0;			
			$column_selection = TabulizerForm::getSelectCtrl($name.'_expand_params_'.$i,$column_value,$options);			
			$top_row .= ''.sprintf(JText::_('COM_TABULIZER_RESPONSIVE_COLUMN_PRIORITY'),$i).'';
			$bottom_row .= ' | '.$column_selection.'';
		}
		$pattern_expand_params = ' | '.$top_row.'
'.$bottom_row.'
';
		
		$pattern_expand_params_html = '
		' .
			'| '.JText::_('COM_TABULIZER_RESPONSIVE_PARAMS_4').': | '.$pattern_expand_params.' | 
' .
		'
		';
					
		$options = array(0=>JText::_('COM_TABULIZER_NONE'),
						RESPONSIVE_PATTERN_1 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_1'),
						RESPONSIVE_PATTERN_2 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_2'),
						RESPONSIVE_PATTERN_3 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_3'),
						RESPONSIVE_PATTERN_4 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_4'),
						RESPONSIVE_PATTERN_5 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_5'),
						RESPONSIVE_PATTERN_6 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_6'));
		$attributes = array('onchange'=>'updateResponsivePattern(this)');				
		$html .= ''.TabulizerForm::getSelectCtrl($name.'_patternid',$pattern_id,$options,$attributes) . '
' .
				$pattern_scrollbars_params_html .
				$pattern_header_selection_params_html . 
				$pattern_expand_params_html . '
';
				
		$html .= TabulizerForm::getHiddenCtrl($name, '');
        $responsive_wrapper_tip_class = empty($pattern_id)?'hidden_span':'';
        $responsive_wrapper_tip_html = ''.JText::_('COM_TABULIZER_RESPONSIVE_WRAPPER_TIP').'
'.JText::_('COM_TABULIZER_RESPONSIVE_WRAPPER_ADD').'';
        $html .= $responsive_wrapper_tip_html;
		
		return $html;
	}
	
	function getExportTableHTML($name,$value) {
		$html = '';
				
		$enabled = 0;
		$view_value = 0;
		$download_value = 1;
		$email_value = 1;
		$strip_tags_value = 'all';
		if (!empty($value)) {
			$enabled = $value['enabled'];
			$view_value = $value['view'];
			$download_value = $value['download'];
			$email_value = $value['email'];
			$strip_tags_value = $value['strip_tags'];			
		}
		$strip_tags_options = array( 'none' => JText::_('COM_TABULIZER_EXPORT_TABLE_STRIP_TAGS_NONE'), 'all' => JText::_('COM_TABULIZER_EXPORT_TABLE_STRIP_TAGS_ALL')); 
		
		$html .= '| '.JText::_('COM_TABULIZER_EXPORT_TABLE_ENABLED').': | '.TabulizerForm::getCheckboxCtrl($name .'_enabled','1',$enabled).' '.JText::_('COM_TABULIZER_YES').' | 
'."\n";
		//$html .= '| '.JText::_('COM_TABULIZER_EXPORT_TABLE_VIEW').': | '.TabulizerForm::getCheckboxCtrl($name .'_view','1',$view_value).' | 
'."\n";
		$html .= '| '.JText::_('COM_TABULIZER_EXPORT_TABLE_DOWNLOAD').': | '.TabulizerForm::getCheckboxCtrl($name .'_download','1',$download_value).' | 
'."\n";
		$html .= '| '.JText::_('COM_TABULIZER_EXPORT_TABLE_EMAIL').': | '.TabulizerForm::getCheckboxCtrl($name .'_email','1',$email_value).' | 
'."\n";
		$html .= '| '.JText::_('COM_TABULIZER_EXPORT_TABLE_STRIP_TAGS').': | '.TabulizerForm::getSelectCtrl($name.'_strip_tags',$strip_tags_value,$strip_tags_options).' | 
'."\n";
		
		$html = '';
		
		$html .= TabulizerForm::getHiddenCtrl($name, '');		
		
		return $html;		
	}		
	
	function getSelectOptions($options, $selected_value) {
		$options_html = '';
		foreach ($options as $value => $label) {
			if ($value == $selected_value) {
				$options_html .= '';
			} else {
				$options_html .= '';
			}
		}
		return $options_html;
	}
    function getEncodingMenu($name) {
        $html = '';
        return $html;
    }
	
	function getBase64Tools() {
		$document = JFactory::getDocument();
		$js_url = TabulizerPath::getURLPath('base64_tools.js','admin_js'); // JURI::base() . '/components/com_tabulizer/assets/js/base64_tools.js';
		$document->addScript($js_url);
		$html = '';
				
		return $html;				
	}
}
?>