if ($help_plausi_failed) {
                    echo '<div id="' . $element_widget_warning . '" class="error" ><p><b>Code did not pass the plausibility check. Please review your code!</b> <br><i>(' . $help_plausi_failed . ')</i></p></div>';
                }
                $cache_widget = array();
            }
        }
    }
}
$backup_available = MCW_get_widget_backup();
//print_r($backup_available);
$backup_available = !empty($backup_available[0]);
$javascript_is_allowed = MCW_get_option('allow_js');
if (empty($cache_widget)) {
    $cache_widget['filter'] = array('all' => 1);
    //hopefully filter "all" does exist
    $cache_widget['kind'] = MCW_get_option('std_kind');
}
?>


<!-- display existing widgets -->

<?php 
if ($javascript_is_allowed) {
    echo '<script type="text/javascript" src="' . MCW_get_url('js_1') . '"></script>';
    echo '<script type="text/javascript" src="' . MCW_get_url('js_2') . '"></script>';
    echo '<script type="text/javascript" src="' . MCW_get_url('js_tooltip') . '"></script>';
    // thanks to http://www.walterzorn.de/tooltip/tooltip.htm
    ?>

<script type="text/javascript">
function MCW_plugin_init()
{
    if (!function_exists('register_widget')) {
        return;
    }
    /******************************/
    /*** deinstallation routine ***/
    /******************************/
    function MCW_deinstall()
    {
        global $mcw_prefix;
        global $mcw_widgetsoption;
        global $mcw_configoption;
        global $mcw_metaoption;
        global $mcw_backup_postfix;
        delete_option($mcw_prefix . $mcw_metaoption);
        //delete all productive data
        $all_widget_IDs = get_option($mcw_prefix . $mcw_widgetsoption);
        $max = count($all_widget_IDs);
        for ($i = 0; $i < $max; ++$i) {
            delete_option($mcw_prefix . 'w_' . $all_widget_IDs[$i]['name']);
        }
        delete_option($mcw_prefix . $mcw_widgetsoption);
        delete_option($mcw_prefix . $mcw_configoption);
        //delete all backup data
        $all_backup_widget_IDs = get_option($mcw_prefix . $mcw_widgetsoption . $mcw_backup_postfix);
        $max = count($all_backup_widget_IDs);
        for ($i = 0; $i < $max; ++$i) {
            delete_option($mcw_prefix . $mcw_backup_postfix . 'w_' . $all_backup_widget_IDs[$i]['name']);
        }
        delete_option($mcw_prefix . $mcw_widgetsoption . $mcw_backup_postfix);
        delete_option($mcw_prefix . $mcw_configoption . $mcw_backup_postfix);
    }
    /************************************/
    /***     initialize widgets       ***/
    /************************************/
    $myWidget_IDs_all = MCW_get_all_widget_IDs();
    $maxindex = count($myWidget_IDs_all);
    // Register widgets
    if (!empty($myWidget_IDs_all)) {
        if (MCW_generaterequired() == true) {
            echo MCW_generate_class();
        }
        //include_once( "my_custom_widget_classes.php" );
        global $mcw_path;
        include_once $mcw_path["include_class"];
        $tag = MCW_get_option('outfilter');
        add_filter($tag, MCW_make_available_outside);
    }
    /*************************************************************************/
    /***  single widget-implementation as it has to be according to WP 2.8 ***/
    /*************************************************************************/
    include_once "my_custom_widget_addon.php";
}
function MCW_generate_class_content($mcwname)
{
    //convert widget-name into class-name
    $classname = 'MCW_' . MCW_make_name_acceptable($mcwname);
    $classname = eregi_replace('-', '_', $classname);
    MCW_logfile('widgetname "' . $mcwname . '" converted into classname "' . $classname . '"');
    $res = "<?" . "php";
    $res = $res . "\n" . "class " . $classname . " extends WP_Widget";
    $res = $res . "\n" . "{";
    $res = $res . "\n" . "\tfunction " . $classname . "(){";
    $res = $res . "\n" . "\t\t\$" . "widget_ops = array('classname' => '" . $classname . "', 'description' => 'CustomWidget generated with MCW &raquo;' );";
    $max_width = MCW_get_option('filter_width') * 4 + 30 + 15;
    //4*filters+margin+padding+"IE-bug"
    $res = $res . "\n" . "\t\t\$" . "control_ops = array('width' => " . $max_width . ");";
    $res = $res . "\n" . "\t\t\$" . "this->WP_Widget('" . $classname . "', 'MCW: " . $mcwname . "', \$" . "widget_ops, \$" . "control_ops);";
    $res = $res . "\n" . "\t}";
    $res = $res . "\n" . "\tfunction widget(\$" . "args, \$" . "instance){";
    $res = $res . "\n" . "\t\t\$" . "args['name'] = '" . $mcwname . "';";
    $res = $res . "\n" . "\t\tMCW_eval_code(\$" . "args);";
    $res = $res . "\n" . "\t}";
    $res = $res . "\n" . "\tfunction update(\$" . "new_instance, \$" . "old_instance){";
    $res = $res . "\n" . "\t  \$" . "new_instance['title'] = MCW_get_widget_info('" . $mcwname . "', 'title');";
    $res = $res . "\n" . "\t\treturn \$" . "new_instance;";
    $res = $res . "\n" . "\t}";
    $res = $res . "\n" . "\tfunction form(\$" . "instance){";
    $res = $res . "\n" . "    MCW_get_official_form('" . $mcwname . "');\t  ";
    $res = $res . "\n" . "  }";
    $res = $res . "\n" . "}";
    $res = $res . "\n" . "\tfunction " . $classname . "Init() {";
    $res = $res . "\n" . "\t  register_widget('" . $classname . "');";
    $res = $res . "\n" . "\t}";
    $res = $res . "\n" . "\tadd_action('widgets_init', '" . $classname . "Init');";
    $res = $res . "\n" . "?" . ">";
    return $res;
}
 /**
  * Creates the edit form for the widget.
  *
  */
 function form($instance)
 {
     global $mcw_prefix;
     global $mcw_path;
     //if (!empty($instance)){
     include_once MCW_get_url('style');
     //}
     //Defaults
     $defaults = MCW_get_default_options();
     $instance = wp_parse_args((array) $instance, array('title' => '', 'kind' => $defaults['std_kind'], 'name' => $this->id, 'filter-all' => 1));
     $title = htmlspecialchars($instance['title']);
     echo '<div class="mcw-row-"><label for="' . $this->get_field_name('title') . '"><input type="text" id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" value="' . $title . '" size="13" ></label></div>';
     echo '<div class="mcw-row-small"><nobr><label for="' . $this->get_field_name('kind') . '_php"><input type="radio" id="' . $this->get_field_id('kind') . '_php" name="' . $this->get_field_name('kind') . '" value="php" checked="checked"> PHP</label></nobr>';
     echo '<nobr><label for="' . $this->get_field_name('kind') . '_html"><input type="radio" id="' . $this->get_field_id('kind') . '_html" name="' . $this->get_field_name('kind') . '" value="html"' . MCW_check($instance['kind'], "html") . '> HTML</label></nobr></div><br>';
     //echo '<div class="mcw-row">'.MCW_get_input_code($instance, $this).'</div>';
     echo '<div class="mcw-row"><textarea cols="60" id="' . $this->get_field_id('code') . '" name="' . $this->get_field_name('code') . '" style="height:' . MCW_get_option('code_height') . 'px; font-family:Courier, Monaco, monospace;" >' . stripslashes($instance["code"]) . '</textarea><br></div>';
     //echo '<div class="mcw-row-small">'.MCW_get_input_filters($instance, $this).'</div>';
     $myfilteroptions = MCW_get_option('filters');
     // get all filters
     if (empty($myfilteroptions)) {
         $myfilteroptions = array('all' => '1');
     }
     $max = count($myfilteroptions);
     echo '<div class="mcw-row-small">';
     for ($i = 0; $i < $max; ++$i) {
         echo '<nobr><label for="' . $this->get_field_id('filter' . '-' . $myfilteroptions[$i][0]) . '">';
         echo '<input type="checkbox" id="' . $this->get_field_id('filter' . '-' . $myfilteroptions[$i][0]) . '" name="' . $this->get_field_name('filter' . '-' . $myfilteroptions[$i][0]) . '" value="1" ';
         echo MCW_check($instance['filter-' . $myfilteroptions[$i][0]], "1");
         //active or not
         echo '> ' . $myfilteroptions[$i][0] . ' </label></nobr>';
     }
     echo '</div>';
 }
   <?php 
         }
     }
 } else {
     if ($_POST[$button_name_submit . '_add'] == $button_text_add) {
         //add filter
         $cache_filters = MCW_get_all_filters();
         if ($add_cache[0] == "" || $add_cache[1] == "") {
             echo '<div class="error"><p><b>Please enter a name and a check to create a new filter!</b></p></div>';
         } else {
             if (MCW_filter_already_exist($add_cache[0])) {
                 echo '<div class="error"><p><b>Filter "' . $add_cache[0] . '" allready exists!</b></p></div>';
             } else {
                 $cache_filters[] = $add_cache;
                 MCW_set_filters($cache_filters);
                 $cache_options = MCW_get_option();
                 ?>
   <div id="message" class="updated fade">
     <p>
       <strong>
         <?php 
                 echo 'Filter "' . $add_cache[0] . '" added';
                 ?>
       </strong>
     </p>
   </div>
   <?php 
                 $add_cache = array();
             }
         }
     }