public static function create_dad_buble($data, $inside_template = 0, $fields_array = array(), $style = array())
 {
     global $ch_bubble_create_js_code, $ch_bubble_modify_js_code;
     if (!count($data)) {
         return;
     }
     //el data tiene que ser un array valido
     if ($data['name'] != "box" and (!$data["name"] or !$data["box_name"] or !$data["type"])) {
         return;
     }
     //aseguramos que tenemos los minimos
     $return = "";
     if (!$inside_template and isset($data["box_info"])) {
         $return .= "<li class='draggable info' title='" . $data["box_info"] . "'> <span class='title'>" . __($data["box_name"], "chronosly") . "</span>";
     } else {
         if (!$inside_template) {
             $return .= "<li class='draggable'> <span class='title'>" . $data["box_name"] . "</span>";
         }
     }
     //añadimos el d&d si es una box
     if ($data['name'] != "box") {
         $return .= "<div class='ev-hidden'>\n                            <div class='vars'>";
         if (isset($fields_array["bubble_value"])) {
             $data["value"] = $fields_array["bubble_value"];
         }
         $return .= Chronosly_Extend::create_field($data, 1);
         //creamos el campo
         if ($data['js_function']) {
             //si no la hemos añadido ya antes
             if (stripos($ch_bubble_create_js_code, $data["name"] . "chseparator1") === FALSE) {
                 //si existe la funcion llamamos para generar el array de funciones que imprimiremos en el js al crear el elemento o eliminarlo
                 if (!is_array($data['js_function'])) {
                     if (function_exists($data['js_function'])) {
                         $ch_bubble_create_js_code .= $data["name"] . "chseparator1" . call_user_func($data['js_function'], "create") . "chseparator2";
                         $ch_bubble_modify_js_code .= $data["name"] . "chseparator1" . call_user_func($data['js_function'], "modify") . "chseparator2";
                     }
                 } else {
                     if (class_exists($data['js_function'][0]) and method_exists($data['js_function'][0], $data['js_function'][1])) {
                         $ch_bubble_create_js_code .= $data["name"] . "chseparator1" . call_user_func($data['js_function'], "create") . "chseparator2";
                         $ch_bubble_modify_js_code .= $data["name"] . "chseparator1" . call_user_func($data['js_function'], "modify") . "chseparator2";
                     }
                 }
             }
         }
         //llamamos a los fields associados a este value
         if (isset($data['fields_associated'])) {
             foreach ($data['fields_associated'] as $field) {
                 if (has_filter("chronosly_field_" . $field["name"])) {
                     $default = $field;
                     if (count($fields_array) and isset($fields_array[$field["name"]])) {
                         $default = array_merge($default, $fields_array[$field["name"]]);
                     }
                     //setting values to fields
                     $return .= apply_filters("chronosly_field_" . $field["name"], $default);
                 }
             }
         }
         $return .= "</div>";
     }
     /* STYLE BOXES */
     $styleboxes = Chronosly_Paint::default_style_boxes();
     foreach ($styleboxes as $id => $box) {
         $return .= "<div class='{$id}'>";
         $cont = "";
         $cont .= apply_filters("chronosly_style_box_" . $id . "_fields", $cont, $style);
         //genramos los inputs de los stylers
         $return .= $cont;
         $return .= "</div>";
     }
     if ($data['name'] != "box") {
         $return .= "</div>";
         if (!$inside_template) {
             $return .= "</li>";
         }
         //creamos el filter para hacer render en el frontend
         if ($data['php_function']) {
             if (!has_filter("chronosly_bubble_render_" . $data['name'])) {
                 add_filter("chronosly_bubble_render_" . $data["name"], $data['php_function'], 10, 3);
             }
         }
     }
     return $return;
 }
</span>
    <span class='delete infot' title="<?php 
        _e("Delete selected item", "chronosly");
        ?>
" ><?php 
        _e("Delete", "chronosly");
        ?>
</span>

    <div class="box vars"><?php 
        _e("Variables", "chronosly");
        ?>
<div class="ev-hidden"><div class="close">X</div><div class="vars"></div></div></div>

    <?php 
        $styleboxes = Chronosly_Paint::default_style_boxes();
        foreach ($styleboxes as $id => $box) {
            echo "<div class='box {$id}'>" . __($box, "chronosly") . '<div class="ev-hidden"><div class="close">X</div><div class="vars"></div></div></div>';
        }
        ?>
</div>

<div class="after-style" style="clear:both;">
    <?php 
        _e("Custom css", "chronosly");
        ?>
	<textarea name="custom-css" class="extra-custom-css"  rows="6" cols="100" ><?php 
        echo str_replace("#plus#", "+", urldecode($temp->style));
        ?>
</textarea><br/>
</div>