function btnsx_content_sort(array $sorted, $tabs_id, $i)
            {
                $output = '';
                $j = 0;
                foreach ($sorted as $og) {
                    $og['id'] = $tabs_id . '-' . $i . '-' . $j;
                    echo '<section id="' . esc_attr($og['id']) . '">';
                    echo '<ul id="" class="collapsible" data-collapsible="custom">';
                    // proceed only if elements are not empty
                    if (isset($og['elements']) && $og['elements'] != NULL) {
                        echo '<div class="row btnsx-collapsible-content-padding">';
                        // for each element in outer group generate form fields (outside collapsibles)
                        foreach ($og['elements'] as $el) {
                            $btnsx_form = new BtnsxFormElements();
                            $btnsx_form->input(array('type' => isset($el['type']) ? $el['type'] : NULL, 'cpt' => isset($el['cpt']) ? $el['cpt'] : NULL, 'id' => isset($el['id']) ? $el['id'] : NULL, 'placeholder' => isset($el['placeholder']) ? $el['placeholder'] : NULL, 'label' => isset($el['label']) ? $el['label'] : NULL, 'tooltip' => isset($el['tooltip']) ? $el['tooltip'] : NULL, 'name' => isset($el['name']) ? $el['name'] : NULL, 'class' => isset($el['class']) ? $el['class'] : NULL, 'multiselect' => isset($el['multiselect']) ? $el['multiselect'] : NULL, 'title' => isset($el['title']) ? $el['title'] : NULL, 'min' => isset($el['min']) ? $el['min'] : NULL, 'max' => isset($el['max']) ? $el['max'] : NULL, 'step' => isset($el['step']) ? $el['step'] : NULL, 'on_text' => isset($el['on_text']) ? $el['on_text'] : __('On', 'buttons-x'), 'off_text' => isset($el['off_text']) ? $el['off_text'] : __('Off', 'buttons-x'), 'data' => isset($el['data']) ? $el['data'] : NULL, 'value' => isset($el['value']) ? $el['value'] : NULL, 'options' => isset($el['options']) ? $el['options'] : array(), 'copy' => isset($el['copy']) ? $el['copy'] : NULL, 'copy_text' => isset($el['copy_text']) ? $el['copy_text'] : NULL, 'copy_ids' => isset($el['copy_ids']) ? $el['copy_ids'] : array(), 'pro' => isset($el['pro']) ? $el['pro'] : FALSE));
                        }
                        echo '</div>';
                    }
                    // proceed only if elements are not empty
                    if (isset($og['inner_group']) && $og['inner_group'] != NULL) {
                        // generate form fields inside collapsibles
                        foreach ($og['inner_group'] as $ig) {
                            $ig['id'] = isset($ig['id']) ? $ig['id'] : '';
                            $collapsible_header = isset($ig['id']) ? $ig['id'] . '_header' : '';
                            $collapsible_body = isset($ig['id']) ? $ig['id'] . '_body' : '';
                            $copy_btn = isset($ig['id']) ? $ig['id'] . '_copy_btn' : '';
                            $multiple = isset($ig['multiple']) && $ig['multiple'] === true ? true : false;
                            $multiple_btn_class = isset($ig['multiple_btn_class']) ? $ig['multiple_btn_class'] : '';
                            $copy = isset($ig['copy']) && $ig['copy'] === true ? true : false;
                            ?>
													<li id="<?php 
                            echo esc_attr($ig['id']);
                            ?>
" class="<?php 
                            echo isset($ig['clone_class']) ? esc_attr($ig['clone_class']) : '';
                            ?>
">
														<?php 
                            if ($multiple === true && $copy === false || $multiple === false && $copy === true) {
                                ?>

														<div class="row">
															<div class="col m10" style="padding:0;">
																<div id="<?php 
                                echo esc_attr($collapsible_header);
                                ?>
" id="<?php 
                                echo esc_attr($ig['elements'][0]['id']) . '_collapsible_header';
                                ?>
" class="collapsible-header" style=""><i class=""></i><?php 
                                echo sanitize_text_field($ig['text']);
                                ?>
																</div>
															</div>
															<div class="col m2" style="padding:0;">
																<button id="<?php 
                                echo esc_attr($copy_btn);
                                ?>
" class="<?php 
                                echo isset($ig['multiple']) ? 'btnsx-duplicate btnsx-btn-add' : '';
                                echo isset($ig['copy']) ? ' btnsx-copy ' : '';
                                echo isset($ig['clone_class']) ? ' btn-' . esc_attr($ig['clone_class']) : '';
                                ?>
" data-highlight="<?php 
                                echo isset($ig['copy_ids']['highlight']) ? $ig['copy_ids']['highlight'] : '';
                                ?>
" data-old-input="<?php 
                                echo isset($ig['copy_ids']['old_input']) ? $ig['copy_ids']['old_input'] : '';
                                ?>
" data-new-input="<?php 
                                echo isset($ig['copy_ids']['new_input']) ? $ig['copy_ids']['new_input'] : '';
                                ?>
" data-old-select="<?php 
                                echo isset($ig['copy_ids']['old_select']) ? $ig['copy_ids']['old_select'] : '';
                                ?>
" data-new-select="<?php 
                                echo isset($ig['copy_ids']['new_select']) ? $ig['copy_ids']['new_select'] : '';
                                ?>
" data-old-color="<?php 
                                echo isset($ig['copy_ids']['old_color']) ? $ig['copy_ids']['old_color'] : '';
                                ?>
" data-new-color="<?php 
                                echo isset($ig['copy_ids']['new_color']) ? $ig['copy_ids']['new_color'] : '';
                                ?>
"><?php 
                                echo isset($ig['multiple']) ? __('Add More', 'buttons-x') : '';
                                echo isset($ig['copy_text']) && $ig['copy_text'] === 'normal' ? __('Copy to normal', 'buttons-x') : '';
                                echo isset($ig['copy_text']) && $ig['copy_text'] === 'hover' ? __('Copy to hover', 'buttons-x') : '';
                                ?>
</button>
															</div>
														</div>

														<?php 
                            } elseif ($multiple === true && $copy === true) {
                                ?>

														<div class="row">
															<div class="col m8" style="padding:0;">
																<div id="<?php 
                                echo esc_attr($collapsible_header);
                                ?>
" id="<?php 
                                echo esc_attr($ig['elements'][0]['id']) . '_collapsible_header';
                                ?>
" class="collapsible-header" style=""><i class=""></i><?php 
                                echo sanitize_text_field($ig['text']);
                                ?>
																</div>
															</div>
															<div class="col m2" style="padding:0;">
																<button id="<?php 
                                echo esc_attr($copy_btn);
                                ?>
" class="<?php 
                                echo isset($ig['copy']) ? ' btnsx-copy ' : '';
                                ?>
" data-highlight="<?php 
                                echo isset($ig['copy_ids']['highlight']) ? $ig['copy_ids']['highlight'] : '';
                                ?>
" data-old-input="<?php 
                                echo isset($ig['copy_ids']['old_input']) ? $ig['copy_ids']['old_input'] : '';
                                ?>
" data-new-input="<?php 
                                echo isset($ig['copy_ids']['new_input']) ? $ig['copy_ids']['new_input'] : '';
                                ?>
" data-old-select="<?php 
                                echo isset($ig['copy_ids']['old_select']) ? $ig['copy_ids']['old_select'] : '';
                                ?>
" data-new-select="<?php 
                                echo isset($ig['copy_ids']['new_select']) ? $ig['copy_ids']['new_select'] : '';
                                ?>
" data-old-color="<?php 
                                echo isset($ig['copy_ids']['old_color']) ? $ig['copy_ids']['old_color'] : '';
                                ?>
" data-new-color="<?php 
                                echo isset($ig['copy_ids']['new_color']) ? $ig['copy_ids']['new_color'] : '';
                                ?>
"><?php 
                                echo isset($ig['copy_text']) && $ig['copy_text'] === 'normal' ? __('Copy to normal', 'buttons-x') : '';
                                echo isset($ig['copy_text']) && $ig['copy_text'] === 'hover' ? __('Copy to hover', 'buttons-x') : '';
                                ?>
</button>
															</div>
															<div class="col m2" style="padding:0;">
																<button id="<?php 
                                echo esc_attr($copy_btn);
                                ?>
" class="<?php 
                                echo isset($ig['multiple']) ? 'btnsx-duplicate btnsx-btn-add' : '';
                                echo isset($ig['clone_class']) ? ' btn-' . esc_attr($ig['clone_class']) : '';
                                ?>
"><?php 
                                echo isset($ig['multiple']) ? __('Add More', 'buttons-x') : '';
                                ?>
</button>
															</div>
														</div>
														
														<?php 
                            } else {
                                ?>
															<div id="<?php 
                                echo esc_attr($collapsible_header);
                                ?>
" class="collapsible-header"><i class=""></i><?php 
                                echo sanitize_text_field($ig['text']);
                                ?>
																</div>
														<?php 
                            }
                            ?>
														<div id="<?php 
                            echo esc_attr($collapsible_body);
                            ?>
" class="collapsible-body">
															<div class="row btnsx-collapsible-content-padding">
															<?php 
                            if (isset($ig['elements']) && $ig['elements'] != NULL) {
                                foreach ($ig['elements'] as $el) {
                                    $btnsx_form = new BtnsxFormElements();
                                    $btnsx_form->input(array('type' => isset($el['type']) ? $el['type'] : NULL, 'cpt' => isset($el['cpt']) ? $el['cpt'] : NULL, 'id' => isset($el['id']) ? $el['id'] : NULL, 'placeholder' => isset($el['placeholder']) ? $el['placeholder'] : NULL, 'label' => isset($el['label']) ? $el['label'] : NULL, 'tooltip' => isset($el['tooltip']) ? $el['tooltip'] : NULL, 'name' => isset($el['name']) ? $el['name'] : NULL, 'class' => isset($el['class']) ? $el['class'] : NULL, 'multiselect' => isset($el['multiselect']) ? $el['multiselect'] : NULL, 'title' => isset($el['title']) ? $el['title'] : NULL, 'min' => isset($el['min']) ? $el['min'] : NULL, 'max' => isset($el['max']) ? $el['max'] : NULL, 'step' => isset($el['step']) ? $el['step'] : NULL, 'on_text' => isset($el['on_text']) ? $el['on_text'] : __('On', 'buttons-x'), 'off_text' => isset($el['off_text']) ? $el['off_text'] : __('Off', 'buttons-x'), 'data' => isset($el['data']) ? $el['data'] : NULL, 'value' => isset($el['value']) ? $el['value'] : NULL, 'options' => isset($el['options']) ? $el['options'] : array(), 'copy' => isset($el['copy']) ? $el['copy'] : NULL, 'copy_text' => isset($el['copy_text']) ? $el['copy_text'] : NULL, 'copy_ids' => isset($el['copy_ids']) ? $el['copy_ids'] : array(), 'pro' => isset($el['pro']) ? $el['pro'] : FALSE));
                                }
                            }
                            ?>
															</div>
														</div>
													</li>
														
											<?php 
                        }
                    }
                    echo '</ul></section>';
                    $j++;
                }
            }
 /**
  * Adds a box to the side column on Buttons edit screens.
  * @since  1.3
  * @return string
  */
 public function preview_settings_callback($post)
 {
     // Add a nonce field so we can check for it later.
     wp_nonce_field('btnsx_preview_settings_meta', 'btnsx_preview_settings_meta_nonce');
     $meta_values = array();
     $meta_values = get_post_meta($post->ID, 'btnsx', true);
     $btnsx_form = new BtnsxFormElements();
     echo '<div style="min-height:150px;"><div class="btnsx btnsx-side">';
     echo $btnsx_form->input(array('type' => 'color', 'id' => 'btnsx_opt_preview_background', 'name' => 'btnsx_opt_preview_background', 'placeholder' => ' ', 'label' => __('Background Color', 'buttons-x'), 'value' => $this->meta_values($post->ID, array('field' => 'btnsx_preview_background')), 'tooltip' => __('Changing the color will change the preview background. If you intend to use this button on a coloured background then changing the preview background will give you exact look of the button over a color.', 'buttons-x')));
     echo '<br>';
     echo $btnsx_form->input(array('type' => 'preview-bg-img-banner'));
     echo '</div></div>';
 }