/**
  * Provides hook for decorators, so that they can overwrite css
  * and other definitions.
  * 
  * @param bool $skipUpdateInit Set to true to skip the parents updateInit extension
  * 
  * @return void
  *
  * @author Sascha Koehler <*****@*****.**>, Sebastian Diel <*****@*****.**>
  * @since 14.03.2013
  */
 public function init($skipUpdateInit = false)
 {
     parent::init(true);
     Requirements::javascript(FRAMEWORK_DIR . '/thirdparty/jquery-ui/jquery.datepicker.js');
     Requirements::javascript('silvercart/admin/javascript/jquery-ui/date-range-picker/js/date.js');
     Requirements::javascript('silvercart/admin/javascript/jquery-ui/date-range-picker/js/daterangepicker.jQuery.js');
     Requirements::css('silvercart/admin/javascript/jquery-ui/date-range-picker/css/ui.daterangepicker.css');
     Requirements::customScript(sprintf("\n            (function(\$) {\n                \$(document).ready(function() { \n                    //Date picker\n                    \$('#Form_SearchForm_q_Created').daterangepicker({\n                        arrows: false,\n                        dateFormat: 'dd.mm.yy',\n                        presetRanges: [\n                            {text: '%s', dateStart: 'today', dateEnd: 'today' },\n                            {text: '%s', dateStart: 'today-7days', dateEnd: 'today' },\n                            {text: '%s', dateStart: function(){ return Date.parse('today').moveToFirstDayOfMonth();  }, dateEnd: 'today' },\n                            {text: '%s', dateStart: function(){ var x= Date.parse('today'); x.setMonth(0); x.setDate(1); return x; }, dateEnd: 'today' },\n                            {text: '%s', dateStart: function(){ return Date.parse('1 month ago').moveToFirstDayOfMonth();  }, dateEnd: function(){ return Date.parse('1 month ago').moveToLastDayOfMonth();  } }\n                        ],\n                        presets: {\n                            specificDate: '%s',\n                            allDatesBefore: '%s',\n                            allDatesAfter: '%s',\n                            dateRange: '%s'\n                        },\n                        rangeStartTitle: '%s',\n                        rangeEndTitle: '%s',\n                        nextLinkText: '%s',\n                        prevLinkText: '%s'\n                    });\n                });\n            })(jQuery);", _t('SilvercartDateRangePicker.TODAY'), _t('SilvercartDateRangePicker.LAST_7_DAYS'), _t('SilvercartDateRangePicker.THIS_MONTH'), _t('SilvercartDateRangePicker.THIS_YEAR'), _t('SilvercartDateRangePicker.LAST_MONTH'), _t('SilvercartDateRangePicker.DATE'), _t('SilvercartDateRangePicker.ALL_BEFORE'), _t('SilvercartDateRangePicker.ALL_AFTER'), _t('SilvercartDateRangePicker.PERIOD'), _t('SilvercartDateRangePicker.START_DATE'), _t('SilvercartDateRangePicker.END_DATE'), _t('SilvercartDateRangePicker.NEXT'), _t('SilvercartDateRangePicker.PREVIOUS')));
     $this->extend('updateInit');
 }
 /**
  * Provides hook for decorators, so that they can overwrite css
  * and other definitions.
  * 
  * @param bool $skipUpdateInit Set to true to skip the parents updateInit extension
  * 
  * @return void
  *
  * @author Sascha Koehler <*****@*****.**>, Roland Lehmann <*****@*****.**>, Sebastian Diel <*****@*****.**>
  * @since 14.03.2013
  */
 public function init($skipUpdateInit = false)
 {
     /*
      * we tweeked the backend behavior so that when you press the button 'add' on the
      * tab files the file object will be created. This was neccessary because we
      * want to use the fileiframefield without saving. If this created file
      * is not saved by the user it must be deleted because it is an empty entry.
      */
     $request = $this->getRequest();
     $postVars = $request->postVars();
     if (array_key_exists('update', $postVars)) {
         $productID = $postVars['update'];
         $currentProduct = DataObject::get_by_id('SilvercartProduct', $productID);
         if ($currentProduct) {
             if ($currentProduct->SilvercartFiles()) {
                 foreach ($currentProduct->SilvercartFiles() as $file) {
                     if ($file->isEmptyObject()) {
                         $file->delete();
                     }
                 }
             }
             if ($currentProduct->SilvercartImages()) {
                 foreach ($currentProduct->SilvercartImages() as $image) {
                     if ($image->isEmptyObject()) {
                         $image->delete();
                     }
                 }
             }
         }
     }
     parent::init($skipUpdateInit);
 }