protected function updateTemplate_Cost(HTML_Indexer $index = null, Kiwi_Product $product_data = null)
 {
     if ($index === null) {
         $index = $this->_index;
     }
     if ($product_data === null) {
         $product_data = $this->_product_data;
     }
     $vars = array('ma_starou_cenu', 'nema_starou_cenu', 'ma_novou_cenu', 'nema_novou_cenu', 'stara_cena_bez_dph', 'nova_cena_bez_dph', 'stara_cena_s_dph', 'nova_cena_s_dph', 'stara_cena_dph', 'nova_cena_dph', 'ma_zmenu_ceny', 'nema_zmenu_ceny', 'zmena_ceny', 'zmena_ceny_procent');
     foreach ($vars as $varname) {
         ${$varname} = $index->{$varname};
     }
     $conf = new Project_Config();
     $costs_with_vat = $conf->costs_with_vat;
     $vat_coefs = $conf->vat_coefs;
     $monetary_format = $conf->monetary_format;
     foreach ($ma_starou_cenu as $elem) {
         $elem->active = $product_data->OriginalCost != 0;
     }
     foreach ($nema_starou_cenu as $elem) {
         $elem->active = $product_data->OriginalCost == 0;
     }
     foreach ($ma_novou_cenu as $elem) {
         $elem->active = $product_data->NewCost != 0;
     }
     foreach ($nema_novou_cenu as $elem) {
         $elem->active = $product_data->NewCost == 0;
     }
     if (!empty($stara_cena_bez_dph)) {
         if ($product_data->OriginalCost) {
             if ($costs_with_vat) {
                 $vat = round($product_data->OriginalCost * $vat_coefs['top'], 2);
                 $orig_cost_value_novat = $product_data->OriginalCost - $vat;
             } else {
                 $orig_cost_value_novat = $product_data->OriginalCost;
             }
             $orig_cost = new Money_Value($orig_cost_value_novat, $monetary_format);
             $html_cost = new HTML_Text($orig_cost->format());
             foreach ($stara_cena_bez_dph as $elem) {
                 $elem->add($html_cost);
             }
         } else {
             foreach ($stara_cena_bez_dph as $elem) {
                 $elem->active = false;
             }
         }
     }
     if (!empty($nova_cena_bez_dph)) {
         if ($costs_with_vat) {
             $vat = round($product_data->NewCost * $vat_coefs['top'], 2);
             $new_cost_value_novat = $product_data->NewCost - $vat;
         } else {
             $new_cost_value_novat = $product_data->NewCost;
         }
         $new_cost = new Money_Value($new_cost_value_novat, $monetary_format);
         $html_cost = new HTML_Text($new_cost->format());
         foreach ($nova_cena_bez_dph as $elem) {
             $elem->add($html_cost);
         }
     }
     if (!empty($stara_cena_s_dph)) {
         if ($product_data->OriginalCost) {
             if ($costs_with_vat) {
                 $orig_cost_value_vat = $product_data->OriginalCost;
             } else {
                 $vat = round($product_data->OriginalCost * $vat_coefs['bottom'], 2);
                 $orig_cost_value_vat = $product_data->OriginalCost + $vat;
             }
             $orig_cost = new Money_Value($orig_cost_value_vat, $monetary_format);
             $html_cost = new HTML_Text($orig_cost->format());
             foreach ($stara_cena_s_dph as $elem) {
                 $elem->add($html_cost);
             }
         } else {
             foreach ($stara_cena_s_dph as $elem) {
                 $elem->active = false;
             }
         }
     }
     if (!empty($nova_cena_s_dph)) {
         if ($costs_with_vat) {
             $new_cost_value_vat = $product_data->NewCost;
         } else {
             $vat = round($product_data->NewCost * $vat_coefs['bottom'], 2);
             $new_cost_value_vat = $product_data->NewCost + $vat;
         }
         $new_cost = new Money_Value($new_cost_value_vat, $monetary_format);
         $html_cost = new HTML_Text($new_cost->format());
         foreach ($nova_cena_s_dph as $elem) {
             $elem->add($html_cost);
         }
     }
     if (!empty($stara_cena_dph)) {
         $vat = round($product_data->OriginalCost * $vat_coefs[$costs_with_vat ? 'top' : 'bottom']);
         $vat_mv = new Money_Value($vat, $monetary_format);
         $html_vat = new HTML_Text($vat_mv->format());
         foreach ($stara_cena_dph as $elem) {
             $elem->add($html_vat);
         }
     }
     if (!empty($nova_cena_dph)) {
         $vat = round($product_data->NewCost * $vat_coefs[$costs_with_vat ? 'top' : 'bottom']);
         $vat_mv = new Money_Value($vat, $monetary_format);
         $html_vat = new HTML_Text($vat_mv->format());
         foreach ($nova_cena_dph as $elem) {
             $elem->add($html_vat);
         }
     }
     $cost_change = $product_data->OriginalCost != 0 && $product_data->OriginalCost != $product_data->NewCost;
     foreach ($ma_zmenu_ceny as $elem) {
         $elem->active = $cost_change;
     }
     foreach ($nema_zmenu_ceny as $elem) {
         $elem->active = !$cost_change;
     }
     if (!empty($zmena_ceny)) {
         $dif = $product_data->NewCost - $product_data->OriginalCost;
         $dif_mv = new Money_Value($dif, $monetary_format);
         $html_dif = new HTML_Text($dif_mv->format());
         foreach ($zmena_ceny as $elem) {
             $elem->add($html_dif);
         }
     }
     if (!empty($zmena_ceny_procent)) {
         $dif = $product_data->NewCost - $product_data->OriginalCost;
         if ($product_data->OriginalCost != 0) {
             $dif_pct = round($dif * 100 / $product_data->OriginalCost);
         } else {
             $dif_pct = 0;
         }
         $html_dif_pct = new HTML_Text($dif_pct);
         foreach ($zmena_ceny_procent as $elem) {
             $elem->add($html_dif_pct);
         }
     }
 }
 public static function setDefaultFormat($preset = null)
 {
     if ($preset === null) {
         self::$default_format = $this->_format;
     } else {
         $val = strtolower($preset);
         if (array_key_exists($val, self::$format_presets)) {
             self::$default_format = self::$format_presets[$val];
         } else {
             self::$default_format = $this->_format;
         }
     }
 }