Exemplo n.º 1
0
 /**
  * Process options data and build option fields
  *
  * @uses get_theme_mod()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function optionsframework_machine($options)
 {
     global $smof_output, $smof_details, $smof_data;
     if (empty($options)) {
         return;
     }
     if (empty($smof_data)) {
         $smof_data = of_get_options();
     }
     $data = $smof_data;
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     $update_data = false;
     do_action('optionsframework_machine_before', array('options' => $options, 'smof_data' => $smof_data));
     if ($smof_output != "") {
         $output .= $smof_output;
         $smof_output = "";
     }
     foreach ($options as $value) {
         // sanitize option
         if ($value['type'] != "heading") {
             $value = self::sanitize_option($value);
         }
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         /* condition start */
         if (!empty($smof_data) || !empty($data)) {
             if (array_key_exists('id', $value) && !isset($smof_data[$value['id']])) {
                 $smof_data[$value['id']] = $value['std'];
                 if ($value['type'] == "checkbox" && $value['std'] == 0) {
                     $smof_data[$value['id']] = 0;
                 } else {
                     $update_data = true;
                 }
             }
             if (array_key_exists('id', $value) && !isset($smof_details[$value['id']])) {
                 $smof_details[$value['id']] = $smof_data[$value['id']];
             }
             //Start Heading
             if ($value['type'] != "heading") {
                 $class = '';
                 if (isset($value['class'])) {
                     $class = $value['class'];
                 }
                 //hide items in checkbox group
                 $fold = '';
                 if (array_key_exists("fold", $value)) {
                     if (isset($smof_data[$value['fold']]) && $smof_data[$value['fold']]) {
                         $fold = "f_" . $value['fold'] . " ";
                     } else {
                         $fold = "f_" . $value['fold'] . " temphide ";
                     }
                 }
                 $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
                 //only show header if 'name' value exists
                 if ($value['name']) {
                     $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
                 }
                 $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
             }
             //End Heading
             //if (!isset($smof_data[$value['id']]) && $value['type'] != "heading")
             //	continue;
             //switch statement to handle various options type
             switch ($value['type']) {
                 //text input
                 case 'text':
                     $t_value = '';
                     $t_value = stripslashes($smof_data[$value['id']]);
                     $mini = '';
                     if (!isset($value['mod'])) {
                         $value['mod'] = '';
                     }
                     if ($value['mod'] == 'mini') {
                         $mini = 'mini';
                     }
                     $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                     break;
                     //select option
                 //select option
                 case 'select':
                     $mini = '';
                     if (!isset($value['mod'])) {
                         $value['mod'] = '';
                     }
                     if ($value['mod'] == 'mini') {
                         $mini = 'mini';
                     }
                     $multiple = '';
                     if (!isset($value['multiple'])) {
                         $value['multiple'] = false;
                     }
                     if ($value['multiple'] == true) {
                         $multiple = 'multiple';
                     }
                     $output .= '<div class="select_wrapper ' . $mini . '">';
                     $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" ' . $multiple . '>';
                     foreach ($value['options'] as $select_ID => $option) {
                         $theValue = $option;
                         if (!is_numeric($select_ID)) {
                             $theValue = $select_ID;
                         }
                         $output .= '<option id="' . $select_ID . '" value="' . $theValue . '" ' . selected($smof_data[$value['id']], $theValue, false) . ' />' . $option . '</option>';
                     }
                     $output .= '</select></div>';
                     break;
                     //textarea option
                 //textarea option
                 case 'textarea':
                     $cols = '8';
                     $ta_value = '';
                     if (isset($value['options'])) {
                         $ta_options = $value['options'];
                         if (isset($ta_options['cols'])) {
                             $cols = $ta_options['cols'];
                         }
                     }
                     $ta_value = stripslashes($smof_data[$value['id']]);
                     $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                     break;
                     //radiobox option
                 //radiobox option
                 case "radio":
                     $checked = isset($smof_data[$value['id']]) ? checked($smof_data[$value['id']], $options, false) : '';
                     foreach ($value['options'] as $option => $name) {
                         $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($smof_data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                     }
                     break;
                     //checkbox option
                 //checkbox option
                 case 'checkbox':
                     if (!isset($smof_data[$value['id']])) {
                         $smof_data[$value['id']] = 0;
                     }
                     $fold = '';
                     if (array_key_exists("folds", $value)) {
                         $fold = "fld ";
                     }
                     $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                     $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                     break;
                     //multiple checkbox option
                 //multiple checkbox option
                 case 'multicheck':
                     $multi_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : "";
                     foreach ($value['options'] as $key => $option) {
                         $mstored_value = '';
                         $mstored_value = isset($multi_stored[$key]) ? $multi_stored[$key] : '';
                         $of_key_string = $value['id'] . '_' . $key;
                         $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($mstored_value, 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label><br />';
                     }
                     break;
                     // Color picker
                 // Color picker
                 case "color":
                     $default_color = '';
                     if (isset($value['std'])) {
                         $default_color = ' data-default-color="' . $value['std'] . '" ';
                     }
                     $output .= '<input name="' . $value['id'] . '" id="' . $value['id'] . '" class="of-color"  type="text" value="' . $smof_data[$value['id']] . '"' . $default_color . ' />';
                     break;
                     //typography option
                 //typography option
                 case 'typography':
                     $typography_stored = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : $value['std'];
                     /* Font Size */
                     if (isset($typography_stored['size'])) {
                         $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                         $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                         for ($i = 9; $i < 20; $i++) {
                             $test = $i . 'px';
                             $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                         }
                         $output .= '</select></div>';
                     }
                     /* Line Height */
                     if (isset($typography_stored['height'])) {
                         $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                         $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                         for ($i = 20; $i < 38; $i++) {
                             $test = $i . 'px';
                             $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                         }
                         $output .= '</select></div>';
                     }
                     /* Font Face */
                     if (isset($typography_stored['face'])) {
                         $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                         $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                         $faces = array('arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica');
                         foreach ($faces as $i => $face) {
                             $output .= '<option value="' . $i . '" ' . selected($typography_stored['face'], $i, false) . '>' . $face . '</option>';
                         }
                         $output .= '</select></div>';
                     }
                     /* Font Weight */
                     if (isset($typography_stored['style'])) {
                         $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                         $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                         $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                         foreach ($styles as $i => $style) {
                             $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                         }
                         $output .= '</select></div>';
                     }
                     /* Font Color */
                     if (isset($typography_stored['color'])) {
                         $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                         $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                     }
                     break;
                     //border option
                 //border option
                 case 'border':
                     /* Border Width */
                     $border_stored = $smof_data[$value['id']];
                     $output .= '<div class="select_wrapper border-width">';
                     $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                     for ($i = 0; $i < 21; $i++) {
                         $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                     }
                     $output .= '</select></div>';
                     /* Border Style */
                     $output .= '<div class="select_wrapper border-style">';
                     $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                     /* Border Color */
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                     break;
                     //images checkbox - use image as checkboxes
                 //images checkbox - use image as checkboxes
                 case 'images':
                     $i = 0;
                     $select_value = isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                     foreach ($value['options'] as $key => $option) {
                         $i++;
                         $checked = '';
                         $selected = '';
                         if (NULL != checked($select_value, $key, false)) {
                             $checked = checked($select_value, $key, false);
                             $selected = 'of-radio-img-selected';
                         }
                         $output .= '<span>';
                         $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                         $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                         $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                         $output .= '</span>';
                     }
                     break;
                     //info (for small intro box etc)
                 //info (for small intro box etc)
                 case "info":
                     $info_text = $value['std'];
                     $output .= '<div class="of-info">' . $info_text . '</div>';
                     break;
                     //display a single image
                 //display a single image
                 case "image":
                     $src = $value['std'];
                     $output .= '<img src="' . $src . '">';
                     break;
                     //tab heading
                 //tab heading
                 case 'heading':
                     if ($counter >= 2) {
                         $output .= '</div>' . "\n";
                     }
                     //custom icon
                     $icon = '';
                     if (isset($value['icon'])) {
                         $icon = ' style="background-image: url(' . $value['icon'] . ');"';
                     }
                     $header_class = str_replace(' ', '', strtolower($value['name']));
                     $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                     $jquery_click_hook = "of-option-" . trim(preg_replace('/ +/', '', preg_replace('/[^A-Za-z0-9 ]/', '', urldecode(html_entity_decode(strip_tags($jquery_click_hook))))));
                     $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '"' . $icon . '>' . $value['name'] . '</a></li>';
                     $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                     break;
                     //drag & drop slide manager
                 //drag & drop slide manager
                 case 'slider':
                     $output .= '<div class="slider"><ul id="' . $value['id'] . '">';
                     $slides = $smof_data[$value['id']];
                     $count = count($slides);
                     if ($count < 2) {
                         $oldorder = 1;
                         $order = 1;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order);
                     } else {
                         $i = 0;
                         foreach ($slides as $slide) {
                             $oldorder = $slide['order'];
                             $i++;
                             $order = $i;
                             $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order);
                         }
                     }
                     $output .= '</ul>';
                     $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                     break;
                     //drag & drop block manager
                 //drag & drop block manager
                 case 'sorter':
                     // Make sure to get list of all the default blocks first
                     $all_blocks = $value['std'];
                     $temp = array();
                     // holds default blocks
                     $temp2 = array();
                     // holds saved blocks
                     foreach ($all_blocks as $blocks) {
                         $temp = array_merge($temp, $blocks);
                     }
                     $sortlists = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                     foreach ($sortlists as $sortlist) {
                         $temp2 = array_merge($temp2, $sortlist);
                     }
                     // now let's compare if we have anything missing
                     foreach ($temp as $k => $v) {
                         if (!array_key_exists($k, $temp2)) {
                             $sortlists['disabled'][$k] = $v;
                         }
                     }
                     // now check if saved blocks has blocks not registered under default blocks
                     foreach ($sortlists as $key => $sortlist) {
                         foreach ($sortlist as $k => $v) {
                             if (!array_key_exists($k, $temp)) {
                                 unset($sortlist[$k]);
                             }
                         }
                         $sortlists[$key] = $sortlist;
                     }
                     // assuming all sync'ed, now get the correct naming for each block
                     foreach ($sortlists as $key => $sortlist) {
                         foreach ($sortlist as $k => $v) {
                             $sortlist[$k] = $temp[$k];
                         }
                         $sortlists[$key] = $sortlist;
                     }
                     $output .= '<div id="' . $value['id'] . '" class="sorter">';
                     if ($sortlists) {
                         foreach ($sortlists as $group => $sortlist) {
                             $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                             $output .= '<h3>' . $group . '</h3>';
                             foreach ($sortlist as $key => $list) {
                                 $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                                 if ($key != "placebo") {
                                     $output .= '<li id="' . $key . '" class="sortee">';
                                     $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                     $output .= $list;
                                     $output .= '</li>';
                                 }
                             }
                             $output .= '</ul>';
                         }
                     }
                     $output .= '</div>';
                     break;
                     //background images option
                 //background images option
                 case 'tiles':
                     $i = 0;
                     $select_value = isset($smof_data[$value['id']]) && !empty($smof_data[$value['id']]) ? $smof_data[$value['id']] : '';
                     if (is_array($value['options'])) {
                         foreach ($value['options'] as $key => $option) {
                             $i++;
                             $checked = '';
                             $selected = '';
                             if (NULL != checked($select_value, $option, false)) {
                                 $checked = checked($select_value, $option, false);
                                 $selected = 'of-radio-tile-selected';
                             }
                             $output .= '<span>';
                             $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                             $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                             $output .= '</span>';
                         }
                     }
                     break;
                     //backup and restore options data
                 //backup and restore options data
                 case 'backup':
                     $instructions = $value['desc'];
                     $backup = of_get_options(BACKUPS);
                     $init = of_get_options('smof_init');
                     if (!isset($backup['backup_log'])) {
                         $log = 'No backups yet';
                     } else {
                         $log = $backup['backup_log'];
                     }
                     $output .= '<div class="backup-box">';
                     $output .= '<div class="instructions">' . $instructions . "\n";
                     $output .= '<p><strong>' . __('Last Backup : ', 'themeton') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                     $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                     $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                     $output .= '</div>';
                     break;
                     //export or import data between different installs
                 //export or import data between different installs
                 case 'transfer':
                     global $color_options;
                     ThemetonTheme_Customize::init_data();
                     $mods_array = array();
                     foreach ($color_options as $color_option) {
                         $items = $color_option['items'];
                         foreach ($items as $item) {
                             $mods_array[$item['id']] = get_theme_mod($item['id']);
                         }
                     }
                     $mods_array = array_merge($smof_data, $mods_array);
                     $instructions = $value['desc'];
                     $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($mods_array)) . '</textarea>' . "\n";
                     $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                     break;
                     // google font field
                 // google font field
                 case 'select_google_font':
                     $output .= '<div class="select_wrapper">';
                     $output .= '<select class="select of-input google_font_select" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                     foreach ($value['options'] as $select_key => $option) {
                         $output .= '<option value="' . $select_key . '" ' . selected(isset($smof_data[$value['id']]) ? $smof_data[$value['id']] : "", $option, false) . ' />' . $option . '</option>';
                     }
                     $output .= '</select></div>';
                     if (isset($value['preview']['text'])) {
                         $g_text = $value['preview']['text'];
                     } else {
                         $g_text = '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz';
                     }
                     if (isset($value['preview']['size'])) {
                         $g_size = 'style="font-size: ' . $value['preview']['size'] . ';"';
                     } else {
                         $g_size = '';
                     }
                     $hide = " hide";
                     if ($smof_data[$value['id']] != "none" && $smof_data[$value['id']] != "") {
                         $hide = "";
                     }
                     $output .= '<p class="' . $value['id'] . '_ggf_previewer google_font_preview' . $hide . '" ' . $g_size . '>' . $g_text . '</p>';
                     break;
                     //JQuery UI Slider
                 //JQuery UI Slider
                 case 'sliderui':
                     $s_val = $s_min = $s_max = $s_step = $s_edit = '';
                     //no errors, please
                     $s_val = stripslashes($smof_data[$value['id']]);
                     if (!isset($value['min'])) {
                         $s_min = '0';
                     } else {
                         $s_min = $value['min'];
                     }
                     if (!isset($value['max'])) {
                         $s_max = $s_min + 1;
                     } else {
                         $s_max = $value['max'];
                     }
                     if (!isset($value['step'])) {
                         $s_step = '1';
                     } else {
                         $s_step = $value['step'];
                     }
                     if (!isset($value['edit'])) {
                         $s_edit = ' readonly="readonly"';
                     } else {
                         $s_edit = '';
                     }
                     if ($s_val == '') {
                         $s_val = $s_min;
                     }
                     //values
                     $s_data = 'data-id="' . $value['id'] . '" data-val="' . $s_val . '" data-min="' . $s_min . '" data-max="' . $s_max . '" data-step="' . $s_step . '"';
                     //html output
                     $output .= '<input type="text" name="' . $value['id'] . '" id="' . $value['id'] . '" value="' . $s_val . '" class="mini" ' . $s_edit . ' />';
                     $output .= '<div id="' . $value['id'] . '-slider" class="smof_sliderui" style="margin-left: 7px;" ' . $s_data . '></div>';
                     break;
                 case 'sidebar':
                     $_id = strip_tags(strtolower($value['id']));
                     $int = '';
                     //$int = optionsframework_mlu_get_silentpost($_id);
                     $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                     $slides = isset($data[$value['id']]) ? $data[$value['id']] : '';
                     $count = count($slides);
                     if ($count < 2) {
                         $oldorder = 1;
                         $order = 1;
                         $output .= Options_Machine::optionsframework_sidebar_function($value['id'], $value['std'], $oldorder, $order, $int);
                     } else {
                         $i = 0;
                         foreach ($slides as $slide) {
                             $oldorder = $slide['order'];
                             $i++;
                             $order = $i;
                             $output .= Options_Machine::optionsframework_sidebar_function($value['id'], $value['std'], $oldorder, $order, $int);
                         }
                     }
                     $output .= '</ul>';
                     $output .= '<a href="#" class="button sidebar_add_button">Add New Sidebar</a>';
                     $output .= '</div>';
                     break;
                 case 'adsense':
                     $_id = strip_tags(strtolower($value['id']));
                     $int = '';
                     //$int = optionsframework_mlu_get_silentpost($_id);
                     $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                     $slides = isset($data[$value['id']]) ? $data[$value['id']] : 0;
                     $count = count($slides);
                     if ($count < 2) {
                         $oldorder = 1;
                         $order = 1;
                         $output .= Options_Machine::optionsframework_ads_function($value['id'], $value['std'], $oldorder, $order, $int);
                     } else {
                         $i = 0;
                         foreach ($slides as $slide) {
                             $oldorder = $slide['order'];
                             $i++;
                             $order = $i;
                             $output .= Options_Machine::optionsframework_ads_function($value['id'], $value['std'], $oldorder, $order, $int);
                         }
                     }
                     $output .= '</ul>';
                     $output .= '<a href="#" class="button ads_add_button">Add New Ads</a></div>';
                     break;
                     //Switch option
                 //Switch option
                 case 'switch':
                     if (!isset($smof_data[$value['id']])) {
                         $smof_data[$value['id']] = 0;
                     }
                     $fold = '';
                     if (array_key_exists("folds", $value)) {
                         $fold = "s_fld ";
                     }
                     $cb_enabled = $cb_disabled = '';
                     //no errors, please
                     //Get selected
                     if ($smof_data[$value['id']] == 1) {
                         $cb_enabled = ' selected';
                         $cb_disabled = '';
                     } else {
                         $cb_enabled = '';
                         $cb_disabled = ' selected';
                     }
                     //Label ON
                     if (!isset($value['on'])) {
                         $on = "On";
                     } else {
                         $on = $value['on'];
                     }
                     //Label OFF
                     if (!isset($value['off'])) {
                         $off = "Off";
                     } else {
                         $off = $value['off'];
                     }
                     $output .= '<p class="switch-options">';
                     $output .= '<label class="' . $fold . 'cb-enable' . $cb_enabled . '" data-id="' . $value['id'] . '"><span>' . $on . '</span></label>';
                     $output .= '<label class="' . $fold . 'cb-disable' . $cb_disabled . '" data-id="' . $value['id'] . '"><span>' . $off . '</span></label>';
                     $output .= '<input type="hidden" class="' . $fold . 'checkbox of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                     $output .= '<input type="checkbox" id="' . $value['id'] . '" class="' . $fold . 'checkbox of-input main_checkbox" name="' . $value['id'] . '"  value="1" ' . checked($smof_data[$value['id']], 1, false) . ' />';
                     $output .= '</p>';
                     break;
                     // Uploader 3.5
                 // Uploader 3.5
                 case "upload":
                 case "media":
                     if (!isset($value['mod'])) {
                         $value['mod'] = '';
                     }
                     $u_val = '';
                     if ($smof_data[$value['id']]) {
                         $u_val = stripslashes($smof_data[$value['id']]);
                     }
                     $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $u_val, $value['mod']);
                     break;
                     //text input
                 //text input
                 case 'button':
                     $href = 'javascript:;';
                     $href = isset($value['href']) ? $value['href'] : $href;
                     $btn_class = 'button';
                     $btn_class = isset($value['mode']) && $value['mode'] == 'primary' ? 'button-primary' : $btn_class;
                     $output .= '<a href="' . $href . '" class="' . $btn_class . '" name="' . $value['id'] . '" id="' . $value['id'] . '">' . $value['name'] . '</a>';
                     break;
                     //text input
                 //text input
                 case 'file_importer':
                     foreach ($value['options'] as $option => $name) {
                         $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($smof_data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                     }
                     $output .= '<br><a href="javascript:;" class="button-primary" id="themeton_file_importer">Import Selected File</a>';
                     break;
             }
             do_action('optionsframework_machine_loop', array('options' => $options, 'smof_data' => $smof_data, 'defaults' => $defaults, 'counter' => $counter, 'menu' => $menu, 'output' => $output, 'value' => $value));
             if ($smof_output != "") {
                 $output .= $smof_output;
                 $smof_output = "";
             }
             //description of each option
             if ($value['type'] != 'heading') {
                 if (!isset($value['desc'])) {
                     $explain_value = '';
                 } else {
                     $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
                 }
                 $output .= '</div>' . $explain_value . "\n";
                 $output .= '<div class="clear"> </div></div></div>' . "\n";
             }
         }
         /* condition empty end */
     }
     if ($update_data == true) {
         of_save_options($smof_data);
     }
     $output .= '</div>';
     do_action('optionsframework_machine_after', array('options' => $options, 'smof_data' => $smof_data, 'defaults' => $defaults, 'counter' => $counter, 'menu' => $menu, 'output' => $output, 'value' => $value));
     if ($smof_output != "") {
         $output .= $smof_output;
         $smof_output = "";
     }
     return array($output, $menu, $defaults);
 }
 /**
  * Process options data and build option fields
  *
  * @uses get_option()
  *
  * @access public
  * @since 1.0.0
  *
  * @return array
  */
 public static function optionsframework_machine($options, $type)
 {
     if ($type == 'data') {
         $data = get_option(OPTIONS);
     } else {
         if ($type == 'seo') {
             $data = get_option(SEO_OPTIONS);
         } else {
             if ($type == 'comp') {
                 $data = get_option(COMP_OPTIONS);
             }
         }
     }
     $defaults = array();
     $counter = 0;
     $menu = '';
     $output = '';
     foreach ($options as $value) {
         $counter++;
         $val = '';
         //create array of defaults
         if ($value['type'] == 'multicheck') {
             if (is_array($value['std'])) {
                 foreach ($value['std'] as $i => $key) {
                     $defaults[$value['id']][$key] = true;
                 }
             } else {
                 $defaults[$value['id']][$value['std']] = true;
             }
         } else {
             if (isset($value['id'])) {
                 $defaults[$value['id']] = $value['std'];
             }
         }
         //Start Heading
         if ($value['type'] != "heading") {
             $class = '';
             if (isset($value['class'])) {
                 $class = $value['class'];
             }
             //hide items in checkbox group
             $fold = '';
             if (array_key_exists("fold", $value)) {
                 if ($data[$value['fold']]) {
                     $fold = "f_" . $value['fold'] . " ";
                 } else {
                     $fold = "f_" . $value['fold'] . " temphide ";
                 }
             }
             $output .= '<div id="section-' . $value['id'] . '" class="' . $fold . 'section section-' . $value['type'] . ' ' . $class . '">' . "\n";
             //only show header if 'name' value exists
             if ($value['name']) {
                 $output .= '<h3 class="heading">' . $value['name'] . '</h3>' . "\n";
             }
             $output .= '<div class="option">' . "\n" . '<div class="controls">' . "\n";
         }
         //End Heading
         //switch statement to handle various options type
         switch ($value['type']) {
             //text input
             case 'text':
                 $t_value = '';
                 $t_value = stripslashes($data[$value['id']]);
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<input class="of-input ' . $mini . '" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 break;
                 //select option
             //select option
             case 'select':
                 $mini = '';
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 if ($value['mod'] == 'mini') {
                     $mini = 'mini';
                 }
                 $output .= '<div class="select_wrapper ' . $mini . '">';
                 $output .= '<select class="select of-input" name="' . $value['id'] . '" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $output .= '<option id="' . $select_ID . '" value="' . $select_ID . '" ' . selected($data[$value['id']], $select_ID, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 //textarea option
             //textarea option
             case 'textarea':
                 $cols = '8';
                 $ta_value = '';
                 if (isset($value['options'])) {
                     $ta_options = $value['options'];
                     if (isset($ta_options['cols'])) {
                         $cols = $ta_options['cols'];
                     }
                 }
                 $ta_value = stripslashes($data[$value['id']]);
                 $output .= '<textarea class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" cols="' . $cols . '" rows="8">' . $ta_value . '</textarea>';
                 break;
                 //radiobox option
             //radiobox option
             case "radio":
                 foreach ($value['options'] as $option => $name) {
                     $output .= '<input class="of-input of-radio" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($data[$value['id']], $option, false) . ' /><label class="radio">' . $name . '</label><br/>';
                 }
                 break;
                 //checkbox option
             //checkbox option
             case 'checkbox':
                 if (!isset($data[$value['id']])) {
                     $data[$value['id']] = 0;
                 }
                 $fold = '';
                 if (array_key_exists("folds", $value)) {
                     $fold = "fld ";
                 }
                 if (array_key_exists("class", $value)) {
                     $fold .= $value['class'] . " ";
                 }
                 $output .= '<input type="hidden" class="' . $fold . 'checkbox aq-input" name="' . $value['id'] . '" id="' . $value['id'] . '" value="0"/>';
                 $output .= '<input type="checkbox" class="' . $fold . 'checkbox of-input theme_check_optional" name="' . $value['id'] . '" id="' . $value['id'] . '" value="1" ' . checked($data[$value['id']], 1, false) . ' />';
                 break;
                 //multiple checkbox option
             //multiple checkbox option
             case 'multicheck':
                 if (isset($data[$value['id']])) {
                     $multi_stored = $data[$value['id']];
                 } else {
                     $multi_stored = "";
                 }
                 foreach ($value['options'] as $key => $option) {
                     if (!isset($multi_stored[$key])) {
                         $multi_stored[$key] = '';
                     }
                     $of_key_string = $value['id'] . '_' . $key;
                     $output .= '<input type="checkbox" class="checkbox of-input" name="' . $value['id'] . '[' . $key . ']' . '" id="' . $of_key_string . '" value="1" ' . checked($multi_stored[$key], 1, false) . ' /><label class="multicheck" for="' . $of_key_string . '">' . $option . '</label>';
                 }
                 break;
                 //ajax image upload option
             //ajax image upload option
             case 'upload':
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_uploader_function($value['id'], $value['std'], $value['mod']);
                 break;
                 // native media library uploader - @uses optionsframework_media_uploader_function()
             // native media library uploader - @uses optionsframework_media_uploader_function()
             case 'media':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 if (!isset($value['mod'])) {
                     $value['mod'] = '';
                 }
                 $output .= Options_Machine::optionsframework_media_uploader_function($value['id'], $value['std'], $int, $value['mod']);
                 // New AJAX Uploader using Media Library
                 break;
                 //colorpicker option
             //colorpicker option
             case 'color':
                 $output .= '<div id="' . $value['id'] . '_picker" class="colorSelector"><div style="background-color: ' . $data[$value['id']] . '"></div></div>';
                 $output .= '<input class="of-color" name="' . $value['id'] . '" id="' . $value['id'] . '" type="text" value="' . $data[$value['id']] . '" />';
                 break;
                 //typography option
             //typography option
             case 'typography':
                 $typography_stored = isset($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 /* Font Size */
                 if (isset($typography_stored['size'])) {
                     $output .= '<div class="select_wrapper typography-size" original-title="Font size">';
                     $output .= '<select class="of-typography of-typography-size select" name="' . $value['id'] . '[size]" id="' . $value['id'] . '_size">';
                     for ($i = 9; $i < 31; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['size'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Line Height */
                 if (isset($typography_stored['height'])) {
                     $output .= '<div class="select_wrapper typography-height" original-title="Line height">';
                     $output .= '<select class="of-typography of-typography-height select" name="' . $value['id'] . '[height]" id="' . $value['id'] . '_height">';
                     for ($i = 20; $i < 61; $i++) {
                         $test = $i . 'px';
                         $output .= '<option value="' . $i . 'px" ' . selected($typography_stored['height'], $test, false) . '>' . $i . 'px</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Face */
                 if (isset($typography_stored['face'])) {
                     $output .= '<div class="select_wrapper typography-face" original-title="Font family">';
                     $output .= '<select class="of-typography of-typography-face select" name="' . $value['id'] . '[face]" id="' . $value['id'] . '_face">';
                     $faces = array('oswald' => 'Oswald', 'hevletica' => 'Helvetica', 'arial narrow' => 'Arial Narrow', 'arial' => 'Arial', 'sans-serif' => 'Sans serif', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica');
                     foreach ($faces as $face) {
                         $output .= '<option value="' . $face . '" ' . selected($typography_stored['face'], $face, false) . '>' . $face . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Weight */
                 if (isset($typography_stored['style'])) {
                     $output .= '<div class="select_wrapper typography-style" original-title="Font style">';
                     $output .= '<select class="of-typography of-typography-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                     $styles = array('normal' => 'Normal', 'italic' => 'Italic', 'bold' => 'Bold', 'bold italic' => 'Bold Italic');
                     foreach ($styles as $i => $style) {
                         $output .= '<option value="' . $i . '" ' . selected($typography_stored['style'], $i, false) . '>' . $style . '</option>';
                     }
                     $output .= '</select></div>';
                 }
                 /* Font Color */
                 if (isset($typography_stored['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $typography_stored['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $typography_stored['color'] . '" />';
                 }
                 break;
                 //border option
             //border option
             case 'border':
                 /* Border Width */
                 $border_stored = $data[$value['id']];
                 $output .= '<div class="select_wrapper border-width">';
                 $output .= '<select class="of-border of-border-width select" name="' . $value['id'] . '[width]" id="' . $value['id'] . '_width">';
                 for ($i = 0; $i < 21; $i++) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['width'], $i, false) . '>' . $i . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Style */
                 $output .= '<div class="select_wrapper border-style">';
                 $output .= '<select class="of-border of-border-style select" name="' . $value['id'] . '[style]" id="' . $value['id'] . '_style">';
                 $styles = array('none' => 'None', 'solid' => 'Solid', 'dashed' => 'Dashed', 'dotted' => 'Dotted');
                 foreach ($styles as $i => $style) {
                     $output .= '<option value="' . $i . '" ' . selected($border_stored['style'], $i, false) . '>' . $style . '</option>';
                 }
                 $output .= '</select></div>';
                 /* Border Color */
                 $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector"><div style="background-color: ' . $border_stored['color'] . '"></div></div>';
                 $output .= '<input class="of-color of-border of-border-color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $border_stored['color'] . '" />';
                 break;
                 //images checkbox - use image as checkboxes
             //images checkbox - use image as checkboxes
             case 'images':
                 $i = 0;
                 $select_value = $data[$value['id']];
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $key, false)) {
                         $checked = checked($select_value, $key, false);
                         $selected = 'of-radio-img-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-img-' . $value['id'] . $i . '" class="checkbox of-radio-img-radio" value="' . $key . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-img-label">' . $key . '</div>';
                     $output .= '<img src="' . $option . '" alt="" class="of-radio-img-img ' . $selected . '" onClick="document.getElementById(\'of-radio-img-' . $value['id'] . $i . '\').checked = true;" />';
                     $output .= '</span>';
                 }
                 break;
                 //info (for small intro box etc)
             //info (for small intro box etc)
             case "info":
                 $info_text = $value['std'];
                 $output .= '<div class="of-info">' . $info_text . '</div>';
                 break;
                 //display a single image
             //display a single image
             case "image":
                 $src = $value['std'];
                 $output .= '<img src="' . $src . '">';
                 break;
                 //tab heading
             //tab heading
             case 'heading':
                 if ($counter >= 2) {
                     $output .= '</div>' . "\n";
                 }
                 $header_class = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = str_replace(' ', '', strtolower($value['name']));
                 $jquery_click_hook = "of-option-" . $jquery_click_hook;
                 $menu .= '<li class="' . $header_class . '"><a title="' . $value['name'] . '" href="#' . $jquery_click_hook . '">' . $value['name'] . '</a></li>';
                 $output .= '<div class="group" id="' . $jquery_click_hook . '"><h2>' . $value['name'] . '</h2>' . "\n";
                 break;
                 //drag & drop slide manager
             //drag & drop slide manager
             case 'slider':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_slider_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button slide_add_button">Add New Slide</a></div>';
                 break;
                 //drag & drop block manager
             //drag & drop block manager
             case 'sorter':
                 $sortlists = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : $value['std'];
                 $output .= '<div id="' . $value['id'] . '" class="sorter">';
                 if ($sortlists) {
                     foreach ($sortlists as $group => $sortlist) {
                         $output .= '<ul id="' . $value['id'] . '_' . $group . '" class="sortlist_' . $value['id'] . '">';
                         $output .= '<h3>' . $group . '</h3>';
                         foreach ($sortlist as $key => $list) {
                             $output .= '<input class="sorter-placebo" type="hidden" name="' . $value['id'] . '[' . $group . '][placebo]" value="placebo">';
                             if ($key != "placebo") {
                                 $output .= '<li id="' . $key . '" class="sortee">';
                                 $output .= '<input class="position" type="hidden" name="' . $value['id'] . '[' . $group . '][' . $key . ']" value="' . $list . '">';
                                 $output .= $list;
                                 $output .= '</li>';
                             }
                         }
                         $output .= '</ul>';
                     }
                 }
                 $output .= '</div>';
                 break;
                 //background images option
             //background images option
             case 'tiles':
                 $i = 0;
                 $select_value = isset($data[$value['id']]) && !empty($data[$value['id']]) ? $data[$value['id']] : '';
                 foreach ($value['options'] as $key => $option) {
                     $i++;
                     $checked = '';
                     $selected = '';
                     if (NULL != checked($select_value, $option, false)) {
                         $checked = checked($select_value, $option, false);
                         $selected = 'of-radio-tile-selected';
                     }
                     $output .= '<span>';
                     $output .= '<input type="radio" id="of-radio-tile-' . $value['id'] . $i . '" class="checkbox of-radio-tile-radio" value="' . $option . '" name="' . $value['id'] . '" ' . $checked . ' />';
                     $output .= '<div class="of-radio-tile-img ' . $selected . '" style="background: url(' . $option . ')" onClick="document.getElementById(\'of-radio-tile-' . $value['id'] . $i . '\').checked = true;"></div>';
                     $output .= '</span>';
                 }
                 break;
                 //backup and restore options data
             //backup and restore options data
             case 'backup':
                 $instructions = $value['desc'];
                 $backup = get_option(BACKUPS);
                 if (!isset($backup['backup_log'])) {
                     $log = 'No backups yet';
                 } else {
                     $log = $backup['backup_log'];
                 }
                 $output .= '<div class="backup-box">';
                 $output .= '<div class="instructions">' . $instructions . "\n";
                 $output .= '<p><strong>' . __('Last Backup : ') . '<span class="backup-log">' . $log . '</span></strong></p></div>' . "\n";
                 $output .= '<a href="#" id="of_backup_button" class="button" title="Backup Options">Backup Options</a>';
                 $output .= '<a href="#" id="of_restore_button" class="button" title="Restore Options">Restore Options</a>';
                 $output .= '</div>';
                 break;
                 //export or import data between different installs
             //export or import data between different installs
             case 'transfer':
                 $instructions = $value['desc'];
                 $output .= '<textarea id="export_data" rows="8">' . base64_encode(serialize($data)) . '</textarea>' . "\n";
                 $output .= '<a href="#" id="of_import_button" class="button" title="Restore Options">Import Options</a>';
                 break;
             case 'seo':
                 $t_value = '';
                 $t_value = stripslashes($data[$value['id']]);
                 $output .= '<input class="of-input" name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="' . $t_value . '" />';
                 $output .= '<div class="select_wrapper">';
                 $output .= '<select class="select of-input seo-select" name="' . $value['id'] . 'x" id="' . $value['id'] . '">';
                 foreach ($value['options'] as $select_ID => $option) {
                     $output .= '<option id="' . $select_ID . '" value="' . $option . '" ' . selected($data[$value['id']], $option, false) . ' />' . $option . '</option>';
                 }
                 $output .= '</select></div>';
                 break;
                 // Background
             // Background
             case 'background':
                 $background = $data[$value['id']];
                 /* Background Color */
                 if (isset($background['color'])) {
                     $output .= '<div id="' . $value['id'] . '_color_picker" class="colorSelector typography-color"><div style="background-color: ' . $background['color'] . '"></div></div>';
                     $output .= '<input class="of-color of-typography of-typography-color" original-title="Font color" name="' . $value['id'] . '[color]" id="' . $value['id'] . '_color" type="text" value="' . $background['color'] . '" />';
                 }
                 $class = 'of-background-properties';
                 $output .= '<div class="' . esc_attr($class) . '">';
                 // Background Repeat
                 if (isset($background['repeat'])) {
                     $output .= '<select class="of-background of-background-repeat" name="' . $value['id'] . '[repeat]" id="' . $value['id'] . '_repeat">';
                     $repeats = array('repeat' => 'Repeat', 'no-repeat' => 'No-Repeat', 'repeat-x' => 'Repeat-X', 'repeat-y' => 'Repeat-Y');
                     foreach ($repeats as $i => $repeat) {
                         $output .= '<option value="' . $i . '" ' . selected($background['repeat'], $i, false) . '>' . $repeat . '</option>';
                     }
                     $output .= '</select>';
                 }
                 // Background Position
                 if (isset($background['position'])) {
                     $output .= '<select class="of-background of-background-position" name="' . $value['id'] . '[position]" id="' . $value['id'] . '_position">';
                     $positions = array('left top' => 'Left Top', 'left center' => 'Left Center', 'left bottom' => 'Left Bottom', 'center top' => 'Center Top', 'center center' => 'Center Center', 'center bottom' => 'Center Bottom', 'right top' => 'Right Top', 'right center' => 'Right Center', 'right bottom' => 'Right Bottom');
                     foreach ($positions as $i => $position) {
                         $output .= '<option value="' . $i . '" ' . selected($background['position'], $i, false) . '>' . $position . '</option>';
                     }
                     $output .= '</select>';
                 }
                 // Background Attachment
                 if (isset($background['attachment'])) {
                     $output .= '<select class="of-background of-background-attachment" name="' . $value['id'] . '[attachment]" id="' . $value['id'] . '_attachment">';
                     $attachments = array('scroll' => 'Scroll', 'fixed' => 'Fixed');
                     foreach ($attachments as $i => $attachment) {
                         $output .= '<option value="' . $i . '" ' . selected($background['attachment'], $i, false) . '>' . $attachment . '</option>';
                     }
                     $output .= '</select>';
                 }
                 $output .= '</div>';
                 break;
             case 'sidebar':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = $data[$value['id']];
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_sidebar_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_sidebar_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button sidebar_add_button">Add New Sidebar</a></div>';
                 break;
             case 'adsense':
                 $_id = strip_tags(strtolower($value['id']));
                 $int = '';
                 $int = optionsframework_mlu_get_silentpost($_id);
                 $output .= '<div class="slider"><ul id="' . $value['id'] . '" rel="' . $int . '">';
                 $slides = isset($data[$value['id']]) ? $data[$value['id']] : 0;
                 $count = count($slides);
                 if ($count < 2) {
                     $oldorder = 1;
                     $order = 1;
                     $output .= Options_Machine::optionsframework_ads_function($value['id'], $value['std'], $oldorder, $order, $int);
                 } else {
                     $i = 0;
                     foreach ($slides as $slide) {
                         $oldorder = $slide['order'];
                         $i++;
                         $order = $i;
                         $output .= Options_Machine::optionsframework_ads_function($value['id'], $value['std'], $oldorder, $order, $int);
                     }
                 }
                 $output .= '</ul>';
                 $output .= '<a href="#" class="button ads_add_button">Add New Ads</a></div>';
                 break;
         }
         //description of each option
         if ($value['type'] != 'heading') {
             if (!isset($value['desc'])) {
                 $explain_value = '';
             } else {
                 $explain_value = '<div class="explain">' . $value['desc'] . '</div>' . "\n";
             }
             $output .= '</div>' . $explain_value . "\n";
             $output .= '<div class="clear"> </div></div></div>' . "\n";
         }
     }
     $output .= '</div>';
     return array($output, $menu, $defaults);
 }