Fixed loading of the product edit page. A bit faster loading.

Mon, 16 Mar 2020 15:16:42 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 16 Mar 2020 15:16:42 +0100
changeset 633
ec4601ab3ed2
parent 632
8a2f2e76c727
child 634
903f4247f62b

Fixed loading of the product edit page. A bit faster loading.

www/js/prod_edit.js file | annotate | diff | comparison | revisions
--- a/www/js/prod_edit.js	Wed Mar 11 14:29:28 2020 +0100
+++ b/www/js/prod_edit.js	Mon Mar 16 15:16:42 2020 +0100
@@ -724,10 +724,7 @@
      calcIBUs();
     });
    },
-   ready: function() {
-    calcFermentables();
-    $('#jqxTabs').jqxTabs('next');
-   },
+   ready: function() { $('#jqxTabs').jqxTabs('next'); },
    columns: [
     { text: 'Vergistbaar ingredi&euml;nt', datafield: 'f_name',
      cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) {
@@ -922,11 +919,7 @@
      calcIBUs();
     });
    },
-   ready: function() {
-    whirlpoolHops();
-    calcIBUs();
-    $('#jqxTabs').jqxTabs('next');
-   },
+   ready: function() { $('#jqxTabs').jqxTabs('next'); },
    columns: [
     { text: 'Hop', datafield: 'h_name',
      cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) {
@@ -1180,10 +1173,7 @@
      }
     });
    },
-   ready: function() {
-    calcMiscs();
-    $('#jqxTabs').jqxTabs('next');
-   },
+   ready: function() { $('#jqxTabs').jqxTabs('next'); },
    columns: [
     { text: 'Ingredient', datafield: 'm_name' },
     { text: 'Type', width: 140, datafield: 'm_type',
@@ -1390,12 +1380,7 @@
      }
     });
    },
-   ready: function() {
-    calcFermentables();
-    showStarter();
-    calcYeast();
-    $('#jqxTabs').jqxTabs('next');
-   },
+   ready: function() { $('#jqxTabs').jqxTabs('next'); },
    columns: [
     { text: 'Gist', datafield: 'y_name' },
     { text: 'Laboratorium', width: 150, datafield: 'y_laboratory' },
@@ -1570,6 +1555,13 @@
     });
    },
    ready: function() {
+    /* Calculate the whole recipe */
+    calcFermentables();
+    whirlpoolHops();
+    calcIBUs();
+    calcMiscs();
+    showStarter();
+    calcYeast();
     calcInit();
     calcMash();
     $('#jqxLoader').jqxLoader('close');
@@ -1771,9 +1763,12 @@
    if (mashtime > 5)
     mashtime -= 5; //Correct last ramp > 75
    mashtemp = Round(mashtemp / mashtime, 2);
+  } else {
+   console.log("calcFermentables() mashGrid not loaded");
   }
 
   if (!(rows = $('#fermentableGrid').jqxGrid('getrows'))) {
+   console.log("calcFermentables() fermentableGrid not loaded");
    return; // grid not yet loaded.
   }
 
@@ -1833,7 +1828,7 @@
   fermentableInit = 0;
   $('#ferm_lintner').val(Math.round(parseFloat(lintner / mashkg)));
   $('#mash_kg').val(mashkg);
-  console.log('calcFermentables() supplies:' + ok_fermentables + ' moutsuiker:' + sugarsm + '/' + sugarsf);
+  console.log('calcFermentables() supplies:' + ok_fermentables + ' moutsuiker:' + Round(sugarsm, 3) + '/' + Round(sugarsf, 3));
   to_100 = my_100;
   if (to_100) {
    $('#wf_amount').jqxNumberInput({ width: 90, readOnly: true, spinButtons: false });
@@ -2178,7 +2173,6 @@
   ncells = Round(egrams * grate, 1),
   totcells = parseFloat(ncells) + start;
 
-  //console.log('svol:' + svol + ' start:' + start + ' irate:' + irate + ' egrams:' + egrams + ' grate:' + grate + ' ncells:' + ncells);
   return {
    svol: svol,
    irate: irate,
@@ -2209,26 +2203,16 @@
        parseFloat($('#prop3_volume').jqxNumberInput('decimal')) + parseFloat($('#prop4_volume').jqxNumberInput('decimal'))) == 0) {
    // clear by default
    for (i = 1; i < 5; i++) {
-    $('#prop' + i + '_type').hide();
+    $('#prop' + i + '_type,#prop' + i + '_volume,#prop' + i + '_irate,#prop' + i + '_ncells,#prop' + i + '_tcells,#prop' + i + '_growf').hide();
     $('#r' + i + '_pmpt').show();
     $('#prop' + i + '_type').val(stype);
-    $('#prop' + i + '_volume').hide();
     $('#prop' + i + '_volume').val(0);
-    $('#prop' + i + '_irate').hide();
-    $('#prop' + i + '_ncells').hide();
-    $('#prop' + i + '_tcells').hide();
-    $('#prop' + i + '_growf').hide();
    }
    if (start > needed) {
     return; // no starter needed
    }
-   $('#prop1_type').show();
+   $('#prop1_type,#prop1_volume,#prop1_irate,#prop1_ncells,#prop1_tcells,#prop1_growf').show();
    $('#r1_pmpt').hide();
-   $('#prop1_volume').show();
-   $('#prop1_irate').show();
-   $('#prop1_ncells').show();
-   $('#prop1_tcells').show();
-   $('#prop1_growf').show();
    for (i = lasti; i <= mvols; i++) {
     lasti = i;
     svol = uvols[lasti];
@@ -2255,12 +2239,7 @@
    // second stage
    $('#r2_pmpt').hide();
    $('#prop2_type').val(stype);
-   $('#prop2_type').show();
-   $('#prop2_volume').show();
-   $('#prop2_irate').show();
-   $('#prop2_ncells').show();
-   $('#prop2_tcells').show();
-   $('#prop2_growf').show();
+   $('#prop2_type,#prop2_volume,#prop2_irate,#prop2_ncells,#prop2_tcells,#prop2_growf').show();
    for (i = lasti; i <= mvols; i++) {
     lasti = i;
     svol = uvols[lasti];
@@ -2286,12 +2265,7 @@
    // third stage
    $('#r3_pmpt').hide();
    $('#prop3_type').val(stype);
-   $('#prop3_type').show();
-   $('#prop3_volume').show();
-   $('#prop3_irate').show();
-   $('#prop3_ncells').show();
-   $('#prop3_tcells').show();
-   $('#prop3_growf').show();
+   $('#prop3_type,#prop3_volume,#prop3_irate,#prop3_ncells,#prop3_tcells,#prop3_growf').show();
    for (i = lasti; i <= mvols; i++) {
     lasti = i;
     svol = uvols[lasti];
@@ -2317,12 +2291,7 @@
    // fourth stage
    $('#r4_pmpt').hide();
    $('#prop4_type').val(stype);
-   $('#prop4_type').show();
-   $('#prop4_volume').show();
-   $('#prop4_irate').show();
-   $('#prop4_ncells').show();
-   $('#prop4_tcells').show();
-   $('#prop4_growf').show();
+   $('#prop4_type,#prop4_volume,#prop4_irate,#prop4_ncells,#prop4_tcells,#prop4_growf').show();
    for (i = lasti; i <= mvols; i++) {
     lasti = i;
     svol = uvols[lasti];
@@ -2340,12 +2309,7 @@
    // recalculate
    if (dataRecord.prop1_volume > 0) {
     $('#r1_pmpt').hide();
-    $('#prop1_type').show();
-    $('#prop1_volume').show();
-    $('#prop1_irate').show();
-    $('#prop1_ncells').show();
-    $('#prop1_tcells').show();
-    $('#prop1_growf').show();
+    $('#prop1_type,#prop1_volume,#prop1_irate,#prop1_ncells,#prop1_tcells,#prop1_growf').show();
     result = calcStep($('#prop1_volume').val() * 1000, dataRecord.prop1_type, start);
     $('#prop1_irate').val(result.prate);
     $('#prop1_ncells').val(result.ncells);
@@ -2354,12 +2318,7 @@
    }
    if (dataRecord.prop2_volume > 0) {
     $('#r2_pmpt').hide();
-    $('#prop2_type').show();
-    $('#prop2_volume').show();
-    $('#prop2_irate').show();
-    $('#prop2_ncells').show();
-    $('#prop2_tcells').show();
-    $('#prop2_growf').show();
+    $('#prop2_type,#prop2_volume,#prop2_irate,#prop2_ncells,#prop2_tcells,#prop2_growf').show();
     result = calcStep($('#prop2_volume').val() * 1000, dataRecord.prop2_type, $('#prop1_tcells').val());
     $('#prop2_irate').val(result.prate);
     $('#prop2_ncells').val(result.ncells);
@@ -2368,12 +2327,7 @@
    }
    if (dataRecord.prop3_volume > 0) {
     $('#r3_pmpt').hide();
-    $('#prop3_type').show();
-    $('#prop3_volume').show();
-    $('#prop3_irate').show();
-    $('#prop3_ncells').show();
-    $('#prop3_tcells').show();
-    $('#prop3_growf').show();
+    $('#prop3_type,#prop3_volume,#prop3_irate,#prop3_ncells,#prop3_tcells,#prop3_growf').show();
     result = calcStep($('#prop3_volume').val() * 1000, dataRecord.prop3_type, $('#prop2_tcells').val());
     $('#prop3_irate').val(result.prate);
     $('#prop3_ncells').val(result.ncells);
@@ -2382,12 +2336,7 @@
    }
    if (dataRecord.prop4_volume > 0) {
     $('#r4_pmpt').hide();
-    $('#prop4_type').show();
-    $('#prop4_volume').show();
-    $('#prop4_irate').show();
-    $('#prop4_ncells').show();
-    $('#prop4_tcells').show();
-    $('#prop4_growf').show();
+    $('#prop4_type,#prop4_volume,#prop4_irate,#prop4_ncells,#prop4_tcells,#prop4_growf').show();
     result = calcStep($('#prop4_volume').val() * 1000, dataRecord.prop4_type, $('#prop3_tcells').val());
     $('#prop4_irate').val(result.prate);
     $('#prop4_ncells').val(result.ncells);
@@ -2505,6 +2454,7 @@
 
  function whirlpoolHops() {
   var row, i, time, rowscount;
+  console.log('whirlpoolHops()');
   if (!(rowscount = $('#hopGrid').jqxGrid('getdatainformation').rowscount))
    return;
   if (rowscount == 0)
@@ -3425,7 +3375,7 @@
   if (P < 0)
    P = 0;
   P = Round(P * 1.01325, 2); // atm to bar
-  console.log("GetPressure(" + CO2 + ", " + T1 + ", " + T2 + ")  V:" + V + "  Bar: " + P);
+  console.log("GetPressure(" + CO2 + ", " + T1 + ", " + T2 + ")  V:" + V + "  Bar: " + P + " ignored ResCO2: " + Round(ResCO2(CO2, T1), 2));
   return P;
  }
 
@@ -3736,17 +3686,13 @@
  }
 
  function calcInit() {
-  console.log('calcInit()');
 
   calcMashEfficiency();
   calcEfficiencyBeforeBoil();
   calcEfficiencyAfterBoil();
 
   $('#starter_try').click(function() {
-   $('#prop1_volume').val(0);
-   $('#prop2_volume').val(0);
-   $('#prop3_volume').val(0);
-   $('#prop4_volume').val(0);
+   $('#prop1_volume,#prop2_volume,#prop3_volume,#prop4_volume').val(0);
    calcYeast();
   });
   $('#starter_type').on('change', function(event) {
@@ -3844,7 +3790,7 @@
   });
   $('#wa_cacl2').on('change', function(event) {
    if (event.args) {
-    setWaterAgent('CaCl2', 0);      // This can prevent double entries.
+    setWaterAgent('CaCl2', 0);      // This prevents double entries.
     setWaterAgent('CaCl2', event.args.value);
     calcWater();
    }
@@ -4540,13 +4486,46 @@
  // initialize the input fields.
  // Tab 1, Algemeen
  $('#name').jqxTooltip({ content: 'De naam voor dit product.' });
- $('#name').jqxInput({ theme: theme, width: 640, height: 23 });
  $('#code').jqxTooltip({ content: 'Product code nummer.' });
- $('#code').jqxInput({ theme: theme, width: 100, height: 23 });
  $('#birth').jqxTooltip({ content: 'De ontwerp datum van dit product.' });
- $('#birth').jqxInput({ theme: theme, width: 120, height: 23 });
  $('#stage').jqxTooltip({ content: 'De productie fase van dit product.' });
- $('#stage').jqxInput({ theme: theme, width: 100, height: 23 });
+ $('#divide_batch').jqxTooltip({ content: 'Het aantal extra gesplitste batches.' });
+ $('#divide_type').jqxTooltip({ content: 'Het splitsing moment in het productie proces.' });
+ $('#notes').jqxTooltip({ content: 'De uitgebreide opmerkingen over dit product.' });
+ $('#type').jqxTooltip({ content: 'Het brouw type van dit recept.' });
+ $('#efficiency').jqxTooltip({ content: 'Het rendement van maischen en koken.' });
+ $('#batch_size').jqxTooltip({ content: 'Het volume van het gekoelde wort na het koken.' });
+ $('#boil_time').jqxTooltip({ content: 'De kooktijd in minuten.' });
+ $('#boil_size').jqxTooltip({ content: 'Het volume van het wort voor het koken.' });
+ $('#st_guide').jqxTooltip({ content: 'De bierstijl gids voor dit recept.'});
+ $('#st_name').jqxTooltip({ content: 'De bierstijl naam voor dit recept.'});
+ $('#st_letter').jqxTooltip({ content: 'De bierstijl letter voor dit recept.'});
+ $('#st_letter').jqxInput({ theme: theme, width: 90, height: 23 });
+ $('#st_type').jqxTooltip({ content: 'Het bierstijl type.'});
+ $('#st_category').jqxTooltip({ content: 'De Amerikaanse bierstijl categorie.'});
+ $('#st_category_number').jqxTooltip({ content: 'De Amerikaanse bierstijl categorie sub nummer.'});
+ $('#est_og').jqxTooltip({ content: 'Het begin SG wat je wilt bereiken. De moutstort wordt automatisch herberekend.' });
+ $('#st_og_min').jqxTooltip({ content: 'Het minimum begin SG voor deze bierstijl.'});
+ $('#st_og_max').jqxTooltip({ content: 'Het maximum begin SG voor deze bierstijl.'});
+ $('#est_fg').jqxTooltip({ content: 'Het verwachte eind SG. Dit wordt automatisch berekend.' });
+ $('#st_fg_min').jqxTooltip({ content: 'Het minimum eind SG voor deze bierstijl.'});
+ $('#st_fg_max').jqxTooltip({ content: 'Het maximum eind SG voor deze bierstijl.'});
+ $('#est_abv').jqxTooltip({ content: 'Alcohol volume %. Dit wordt automatisch berekend.' });
+ $('#st_abv_min').jqxTooltip({ content: 'Het minimum alcohol volume % voor deze bierstijl.'});
+ $('#st_abv_max').jqxTooltip({ content: 'Het maximum alcohol volume % voor deze bierstijl.'});
+ $('#est_color').jqxTooltip({ content: 'De kleur in EBC. Dit wordt automatisch berekend.' });
+ $('#st_color_min').jqxTooltip({ content: 'De minimum kleur voor deze bierstijl.'});
+ $('#st_color_max').jqxTooltip({ content: 'De maximum kleur voor deze bierstijl.'});
+ $('#est_ibu').jqxTooltip({ content: 'De bitterheid in IBU. Dit wordt automatisch berekend.' });
+ $('#st_ibu_min').jqxTooltip({ content: 'De minimum bitterheid voor deze bierstijl.'});
+ $('#st_ibu_max').jqxTooltip({ content: 'De maximum bitterheid voor deze bierstijl.'});
+ $('#kcal').jqxTooltip({ content: 'Energie-inhoud in kcal/liter.' });
+ $('#est_carb').jqxTooltip({ content: 'Koolzuur volume. Dit wordt automatisch berekend.' });
+ $('#st_carb_min').jqxTooltip({ content: 'Het minimum koolzuur volume voor deze bierstijl.'});
+ $('#st_carb_max').jqxTooltip({ content: 'Het maximum koolzuur volume voor deze bierstijl.'});
+
+ $('#name').jqxInput({ theme: theme, width: 640, height: 23 });
+ $('#code, #stage').jqxInput({ theme: theme, width: 100, height: 23 });
  $('#locked').jqxCheckBox({ theme: theme, width: 120, height: 23, disabled: true });
  $('#locked').on('checked', function(event) {
   if (dataRecord.stage >= 10) {
@@ -4562,13 +4541,8 @@
    calcStage();
   }
  });
- $('#divide_batch').jqxTooltip({ content: 'Het aantal extra gesplitste batches.' });
- $('#divide_type').jqxTooltip({ content: 'Het splitsing moment in het productie proces.' });
- $('#divide_batch,#divide_type').jqxInput({ theme: theme, width: 120, height: 23 });
-
- $('#notes').jqxTooltip({ content: 'De uitgebreide opmerkingen over dit product.' });
+ $('#birth,#divide_batch,#divide_type').jqxInput({ theme: theme, width: 120, height: 23 });
  $('#notes').jqxInput({ theme: theme, width: 960, height: 100 });
- $('#type').jqxTooltip({ content: 'Het brouw type van dit recept.' });
  $('#type').jqxDropDownList({
   theme: theme,
   source: RecipeTypeAdapter,
@@ -4578,48 +4552,17 @@
   height: 23,
   autoDropDownHeight: true
  });
- $('#efficiency').jqxTooltip({ content: 'Het rendement van maischen en koken.' });
  $('#efficiency').jqxNumberInput(Perc1dec);
- $('#batch_size').jqxTooltip({ content: 'Het volume van het gekoelde wort na het koken.' });
  $('#batch_size').jqxNumberInput(Spin1dec);
  $('#batch_size').jqxNumberInput({ min: 4 });
- $('#boil_time').jqxTooltip({ content: 'De kooktijd in minuten.' });
  $('#boil_time').jqxNumberInput(PosInt);
  $('#boil_time').jqxNumberInput({ min: 4, max: 360 });
- $('#boil_size').jqxTooltip({ content: 'Het volume van het wort voor het koken.' });
  $('#boil_size').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 2, readOnly: true });
-
- $('#st_guide').jqxTooltip({ content: 'De bierstijl gids voor dit recept.'});
- $('#st_name').jqxTooltip({ content: 'De bierstijl naam voor dit recept.'});
- $('#st_letter').jqxTooltip({ content: 'De bierstijl letter voor dit recept.'});
- $('#st_letter').jqxInput({ theme: theme, width: 90, height: 23 });
- $('#st_type').jqxTooltip({ content: 'Het bierstijl type.'});
- $('#st_category').jqxTooltip({ content: 'De Amerikaanse bierstijl categorie.'});
- $('#st_category_number').jqxTooltip({ content: 'De Amerikaanse bierstijl categorie sub nummer.'});
  $('#st_guide,#st_name,#st_type,#st_category').jqxInput({ theme: theme, width: 250, height: 23 });
- $('#st_category_number').jqxNumberInput(Smal0dec);
-
- $('#est_og').jqxTooltip({ content: 'Het begin SG wat je wilt bereiken. De moutstort wordt automatisch herberekend.' });
  $('#est_og').jqxNumberInput(SGopts);
- $('#st_og_min').jqxTooltip({ content: 'Het minimum begin SG voor deze bierstijl.'});
- $('#st_og_max').jqxTooltip({ content: 'Het maximum begin SG voor deze bierstijl.'});
-
- $('#est_fg').jqxTooltip({ content: 'Het verwachte eind SG. Dit wordt automatisch berekend.' });
  $('#est_fg').jqxNumberInput(Show3dec);
- $('#st_fg_min').jqxTooltip({ content: 'Het minimum eind SG voor deze bierstijl.'});
- $('#st_fg_max').jqxTooltip({ content: 'Het maximum eind SG voor deze bierstijl.'});
  $('#st_og_min,#st_og_max,#st_fg_min,#st_fg_max').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 3, readOnly: true });
-
- $('#est_abv').jqxTooltip({ content: 'Alcohol volume %. Dit wordt automatisch berekend.' });
- $('#st_abv_min').jqxTooltip({ content: 'Het minimum alcohol volume % voor deze bierstijl.'});
- $('#st_abv_max').jqxTooltip({ content: 'Het maximum alcohol volume % voor deze bierstijl.'});
- $('#est_abv,#st_abv_min,#st_abv_max').jqxNumberInput(Smal1dec);
-
- $('#est_color').jqxTooltip({ content: 'De kleur in EBC. Dit wordt automatisch berekend.' });
- $('#est_color').jqxNumberInput(Show0dec);
- $('#st_color_min').jqxTooltip({ content: 'De minimum kleur voor deze bierstijl.'});
- $('#st_color_max').jqxTooltip({ content: 'De maximum kleur voor deze bierstijl.'});
- $('#st_color_min,#st_color_max').jqxNumberInput(Smal0dec);
+ $('#est_ibu,#est_color').jqxNumberInput(Show0dec);
  $('#color_method').jqxDropDownList({
   theme: theme,
   source: ColorMethodAdapter,
@@ -4629,11 +4572,7 @@
   height: 23,
   autoDropDownHeight: true
  });
- $('#est_ibu').jqxTooltip({ content: 'De bitterheid in IBU. Dit wordt automatisch berekend.' });
- $('#est_ibu').jqxNumberInput(Show0dec);
- $('#st_ibu_min').jqxTooltip({ content: 'De minimum bitterheid voor deze bierstijl.'});
- $('#st_ibu_max').jqxTooltip({ content: 'De maximum bitterheid voor deze bierstijl.'});
- $('#st_ibu_min,#st_ibu_max').jqxNumberInput(Smal0dec);
+ $('#st_color_min,#st_color_max,#st_category_number,#st_ibu_min,#st_ibu_max,#kcal').jqxNumberInput(Smal0dec);
  $('#ibu_method').jqxDropDownList({
   theme: theme,
   source: IBUmethodAdapter,
@@ -4644,105 +4583,61 @@
   autoDropDownHeight: true,
   dropDownVerticalAlignment: 'top'
  });
- $('#kcal').jqxTooltip({ content: 'Energie-inhoud in kcal/liter.' });
- $('#kcal').jqxNumberInput(Smal0dec);
- $('#est_carb').jqxTooltip({ content: 'Koolzuur volume. Dit wordt automatisch berekend.' });
- $('#st_carb_min').jqxTooltip({ content: 'Het minimum koolzuur volume voor deze bierstijl.'});
- $('#st_carb_max').jqxTooltip({ content: 'Het maximum koolzuur volume voor deze bierstijl.'});
- $('#est_carb,#st_carb_min,#st_carb_max').jqxNumberInput(Smal1dec);
+ $('#est_abv,#st_abv_min,#st_abv_max,#est_carb,#st_carb_min,#st_carb_max').jqxNumberInput(Smal1dec);
 
  // Tab 2, Equipment
  $('#eq_name').jqxTooltip({ content: 'De naam van deze brouw apparatuur.' });
- $('#eq_name').jqxInput({ theme: theme, width: 250, height: 23 });
  $('#eq_boil_size').jqxTooltip({ content: 'Normaal kook volume in liters' });
  $('#eq_batch_size').jqxTooltip({ content: 'Berekende batch grootte in liters aan het eind van de kook.' });
  $('#eq_tun_volume').jqxTooltip({ content: 'Maisch ketel volume.' });
  $('#eq_top_up_water').jqxTooltip({ content: 'Extra water in het gistvat.' });
  $('#eq_trub_chiller_loss').jqxTooltip({ content: 'Standaard verlies bij het overbrengen naar het gistvat.' });
  $('#eq_evap_rate').jqxTooltip({ content: 'Verdamping in liters per uur.' });
- $('#eq_evap_rate').jqxNumberInput(Show2dec);
  $('#eq_boil_time').jqxTooltip({ content: 'Normale kooktijd in minuten.' });
  $('#eq_top_up_kettle').jqxTooltip({ content: 'Extra water toevoegen tijdens de kook.' });
  $('#eq_hop_utilization').jqxTooltip({ content: '100% voor kleine installaties, hoger voor grote brouwerijen.' });
- $('#eq_boil_time,#eq_hop_utilization').jqxNumberInput(Show0dec);
  $('#eq_notes').jqxTooltip({ content: 'Opmerkingen over deze apparatuur.' });
- $('#eq_notes').jqxInput({ theme: theme, width: 960, height: 200 });
  $('#eq_lauter_volume').jqxTooltip({ content: 'Filterkuip volume.' });
  $('#eq_lauter_deadspace').jqxTooltip({ content: 'Filterkuip verlies in liters.' });
  $('#eq_kettle_volume').jqxTooltip({ content: 'Kook ketel volume in liters.' });
  $('#eq_mash_volume').jqxTooltip({ content: 'Maisch water voor de eerste stap.' });
  $('#eq_mash_max').jqxTooltip({ content: 'De maximale moutstort in Kg.' });
  $('#eq_efficiency').jqxTooltip({ content: 'Gemiddeld brouwzaal rendement.' });
+
+ $('#eq_name').jqxInput({ theme: theme, width: 250, height: 23 });
+ $('#eq_evap_rate').jqxNumberInput(Show2dec);
+ $('#eq_boil_time,#eq_hop_utilization').jqxNumberInput(Show0dec);
+ $('#eq_notes').jqxInput({ theme: theme, width: 960, height: 200 });
  $('#eq_boil_size,#eq_batch_size,#eq_tun_volume,#eq_top_up_water,#eq_trub_chiller_loss,#eq_top_up_kettle').jqxNumberInput(Show1dec);
  $('#eq_lauter_volume,#eq_lauter_deadspace,#eq_kettle_volume,#eq_mash_volume,#eq_mash_max,#eq_efficiency').jqxNumberInput(Show1dec);
 
  // Tab 3, Fermentables
  $('#est_color2').jqxTooltip({ content: 'De kleur in EBC. Dit wordt automatisch berekend.' });
- $('#est_color2').jqxNumberInput(Show0dec);
  $('#est_og2').jqxTooltip({ content: 'Het geschatte begin SG van dit product.' });
  $('#mash_kg').jqxTooltip({ content: 'Het gewicht van alle mouten in de maisch.' });
+
+ $('#est_color2').jqxNumberInput(Show0dec);
  $('#est_og2,#mash_kg').jqxNumberInput(Show3dec);
+
  $('#perc_malts').jqxProgressBar({
-  width: 300,
-  height: 23,
-  theme: theme,
-  showText: true,
-  max: 120,
-  animationDuration: 0,
-  colorRanges: [
-   { stop: 90, color: '#008C00' },
-   { stop: 100, color: '#EB7331' },
-   { stop: 120, color: '#FF0000' }
-  ],
-  renderText: function(text) {
-   return (Math.round(parseInt(text) * 1.2)) + '%';
-  }
+  width: 300, height: 23, theme: theme, showText: true, max: 120, animationDuration: 0,
+  colorRanges: [{ stop: 90, color: '#008C00' },{ stop: 100, color: '#EB7331' },{ stop: 120, color: '#FF0000' }],
+  renderText: function(text) { return (Math.round(parseInt(text) * 1.2)) + '%'; }
  });
  $('#perc_sugars').jqxProgressBar({
-  width: 300,
-  height: 23,
-  theme: theme,
-  showText: true,
-  max: 50,
-  animationDuration: 0,
-  colorRanges: [
-   { stop: 20, color: '#008C00' },
-   { stop: 50, color: '#FF0000' }
-  ],
-  renderText: function(text) {
-   return (Math.round(parseInt(text) * 5) / 10) + '%';
-  }
+  width: 300, height: 23, theme: theme, showText: true, max: 50, animationDuration: 0,
+  colorRanges: [{ stop: 20, color: '#008C00' },{ stop: 50, color: '#FF0000' }],
+  renderText: function(text) { return (Math.round(parseInt(text) * 5) / 10) + '%'; }
  });
  $('#perc_cara').jqxProgressBar({
-  width: 300,
-  height: 23,
-  theme: theme,
-  showText: true,
-  max: 50,
-  animationDuration: 0,
-  colorRanges: [
-   { stop: 25, color: '#008C00' },
-   { stop: 50, color: '#FF0000' }
-  ],
-  renderText: function(text) {
-   return (Math.round(parseInt(text) * 5) / 10) + '%';
-  }
+  width: 300, height: 23, theme: theme, showText: true, max: 50, animationDuration: 0,
+  colorRanges: [{ stop: 25, color: '#008C00' },{ stop: 50, color: '#FF0000' }],
+  renderText: function(text) { return (Math.round(parseInt(text) * 5) / 10) + '%'; }
  });
  $('#ferm_lintner').jqxProgressBar({
-  width: 300,
-  height: 23,
-  theme: theme,
-  showText: true,
-  max: 200,
-  animationDuration: 0,
-  colorRanges: [
-   { stop: 30, color: '#FF0000' },
-   { stop: 40, color: '#EB7331' },
-   { stop: 200, color: '#008C00' }
-  ],
-  renderText: function(text) {
-   return (parseInt(text) * 2) + ' lintner';
-  }
+  width: 300, height: 23, theme: theme, showText: true, max: 200, animationDuration: 0,
+  colorRanges: [{ stop: 30, color: '#FF0000' },{ stop: 40, color: '#EB7331' },{ stop: 200, color: '#008C00' }],
+  renderText: function(text) { return (parseInt(text) * 2) + ' lintner'; }
  });
  $('#popupFermentable').jqxWindow({
   width: 800,
@@ -4965,11 +4860,7 @@
  $('#est_ibu2').jqxTooltip({ content: 'De bitterheid in IBU. Dit wordt automatisch berekend.' });
  $('#est_ibu2').jqxNumberInput(Smal0dec);
  $('#hop_flavour').jqxProgressBar({
-  width: 300,
-  height: 23,
-  theme: theme,
-  showText: true,
-  animationDuration: 0,
+  width: 300, height: 23, theme: theme, showText: true, animationDuration: 0,
   colorRanges: [
    { stop: 20, color: '#004D00' },
    { stop: 40, color: '#008C00' },
@@ -4992,8 +4883,7 @@
    }
  });
  $('#hop_aroma').jqxProgressBar({
-  width: 300, height: 23, theme: theme, showText: true,
-  animationDuration: 0,
+  width: 300, height: 23, theme: theme, showText: true, animationDuration: 0,
   colorRanges: [
    { stop: 20, color: '#004D00' },
    { stop: 40, color: '#008C00' },
@@ -5272,16 +5162,15 @@
 
  // Tab 6, Yeasts
  $('#est_fg2').jqxTooltip({ content: 'Het verwachte eind SG. Dit wordt automatisch berekend.' });
- $('#est_fg2').jqxNumberInput(Show3dec);
  $('#est_abv2').jqxTooltip({ content: 'Verwacht alcohol volume %. Dit wordt automatisch berekend.' });
- $('#est_abv2').jqxNumberInput(Show2dec);
  $('#yeast_cells').jqxTooltip({ content: 'Het aantal miljard beschikbare gistcellen zonder eventuele starter.' });
- $('#yeast_cells').jqxNumberInput(Show1dec);
  $('#need_cells').jqxTooltip({ content: 'Het aantal miljard nodige cellen is afhankelijk van het begin SG, biertype en volume.' });
- $('#need_cells').jqxNumberInput(Show1dec);
  $('#plato_cells').jqxTooltip({ content: 'De berekende pitchrate in miljard cellen per ml per graad Plato.' });
- $('#plato_cells').jqxNumberInput(Show2dec);
  $('#yeast_prod_date').jqxTooltip({ content: 'Bij korrelgisten is meestal "best voor" datum op het zakje gedrukt.<br>Gebruik die datum maar dan twee jaar eerder als productie datum.<br>Bij White Labs is de productie datum vier maanden voor de "Best by" datum die geprint op het buisje.<br>Bij Wyeast is dit de "manufacture date" die op het pak geprint is.<br>Voor schuine buis, slurry, opkweek en gedroogd is dit de datum dat je de gist geoogst hebt.' });
+
+ $('#est_fg2,#plato_cells').jqxNumberInput(Show3dec);
+ $('#est_abv2').jqxNumberInput(Show2dec);
+ $('#yeast_cells,#need_cells').jqxNumberInput(Show1dec);
  $('#yeast_prod_date').jqxDateTimeInput(Dateopts);
  $('#yeast_prod_date').on('close', function(event) {
   calcViability();
@@ -5420,6 +5309,12 @@
   }
  });
  for (i = 1; i < 5; i++) {
+  $('#prop' + i + '_volume').jqxTooltip({ content: 'Het volume van deze starter stap.' });
+  $('#prop' + i + '_irate').jqxTooltip({ content: 'Voor de beste gistgroei, houd de injectie factor tussen de 25 en 100 miljoen cellen per ml.' });
+  $('#prop' + i + '_ncells').jqxTooltip({ content: 'Het aantal miljard nieuwe gistcellen in deze stap.' });
+  $('#prop' + i + '_tcells').jqxTooltip({ content: 'Het totaal aantal miljard gistcellen na deze stap.' });
+  $('#prop' + i + '_growf').jqxTooltip({ content: 'De groeifactor, minstens 1. Ongeroerde starters komen meestal niet boven de 3.' });
+
   $('#prop' + i + '_type').jqxDropDownList({
    theme: theme,
    source: StarterTypeAdapter,
@@ -5429,20 +5324,10 @@
    height: 23,
    autoDropDownHeight: true
   });
-  $('#prop' + i + '_type').hide();
-  $('#prop' + i + '_volume').jqxTooltip({ content: 'Het volume van deze starter stap.' });
   $('#prop' + i + '_volume').jqxNumberInput(Spin3dec);
-  $('#prop' + i + '_volume').hide();
-  $('#prop' + i + '_irate').jqxTooltip({ content: 'Voor de beste gistgroei, houd de injectie factor tussen de 25 en 100 miljoen cellen per ml.' });
-  $('#prop' + i + '_irate').hide();
-  $('#prop' + i + '_ncells').jqxTooltip({ content: 'Het aantal miljard nieuwe gistcellen in deze stap.' });
-  $('#prop' + i + '_ncells').hide();
-  $('#prop' + i + '_tcells').jqxTooltip({ content: 'Het totaal aantal miljard gistcellen na deze stap.' });
   $('#prop' + i + '_irate,#prop' + i + '_ncells,#prop' + i + '_tcells').jqxNumberInput(Show1dec);
-  $('#prop' + i + '_tcells').hide();
-  $('#prop' + i + '_growf').jqxTooltip({ content: 'De groeifactor, minstens 1. Ongeroerde starters komen meestal niet boven de 3.' });
   $('#prop' + i + '_growf').jqxNumberInput(Show2dec);
-  $('#prop' + i + '_growf').hide();
+  $('#prop' + i + '_type,#prop' + i + '_volume,#prop' + i + '_irate,#prop' + i + '_ncells,#prop' + i + '_tcells,#prop' + i + '_growf').hide();
  }
  $('#starter_type').jqxTooltip({ content: 'starter_type' });
  $('#starter_type').jqxDropDownList({
@@ -5454,7 +5339,6 @@
   height: 23,
   autoDropDownHeight: true
  });
-// $('#starter_type').jqxTooltip({ content: 'starter_type' });
  $('#starter_sg').jqxTooltip({ content: 'Het ideale starter SG moet tussen de 1.030 en 1.040 zijn. Optimaal is 1.037.' });
  $('#starter_sg').jqxNumberInput(SGopts);
  $('#starter_viability').jqxTooltip({ content: 'De gist conditie.' });
@@ -5758,7 +5642,7 @@
   height: 23,
   autoDropDownHeight: true
  });
- $('#wa_base').jqxNumberInput(Spin2dec);
+ $('#wa_base,#wa_acid').jqxNumberInput(Spin2dec);
  $('#wa_base').jqxNumberInput({ symbol: ' gr', symbolPosition: 'right' });
  $('#wa_acid_name').jqxDropDownList({
   theme: theme,
@@ -5769,9 +5653,8 @@
   height: 23,
   autoDropDownHeight: true
  });
- $('#wa_acid').jqxNumberInput(Spin2dec);
  $('#wa_acid').jqxNumberInput({ symbol: ' ml', symbolPosition: 'right' });
- $('#wa_acid_perc').jqxNumberInput(Perc0);
+ $('#wa_acid_perc,#sparge_acid_perc').jqxNumberInput(Perc0);
  $('#wa_acid_perc').jqxNumberInput({ width: 70, symbol: '%', symbolPosition: 'right' });
  // Sparge water
  $('#sparge_temp,#sparge_volume').jqxNumberInput(Spin1dec);
@@ -5796,33 +5679,39 @@
   height: 23,
   autoDropDownHeight: true
  });
- $('#sparge_acid_perc').jqxNumberInput(Perc0);
  $('#sparge_acid_perc').jqxNumberInput({ symbol: '%', symbolPosition: 'right' });
 
  // Tab 9, Brewday
  $('#brew_date_start').jqxTooltip({ content: 'Brouw datum en tijd. Voor planning laat de tijd op 00:00:00 staan.' });
- $('#brew_date_start').on('close', function(event) { calcStage(); });
  $('#brew_date_end').jqxTooltip({ content: 'End datum en tijd van de brouw. Leeg laten als er nog niet gebrouwen is.' });
- $('#brew_date_start,#brew_date_end').jqxDateTimeInput(DateTimeopts);
- $('#brew_date_end').on('close', function(event) { calcStage(); });
  $('#brew_mash_ph').jqxTooltip({ content: 'De gemeten pH tijdens het maischen eventueel na correctie.' });
  $('#est_mash_ph').jqxTooltip({ content: 'De gewenste pH tijdens het maischen.' });
- $('#est_mash_ph').jqxNumberInput(Show1wat);
  $('#brew_preboil_ph').jqxTooltip({ content: 'De gemeten pH in de kookketel na het spoelen en voor de kook.' });
- // est_preboil_ph
  $('#brew_aboil_ph').jqxTooltip({ content: 'De gemeten pH na het koken.' });
- $('#brew_mash_ph,#brew_preboil_ph,#brew_aboil_ph').jqxNumberInput(SpinpH);
- // est_aboil_ph
  $('#brew_mash_sg').jqxTooltip({ content: 'Het bereikte SG na het maischen.' });
- $('#brew_mash_sg').on('valueChanged', function() { calcMashEfficiency(); });
  $('#est_mash_sg').jqxTooltip({ content: 'Het berekende verwachte SG na het maischen.' });
  $('#brew_preboil_sg').jqxTooltip({ content: 'Het gemeten SG in de kookketel na het spoelen en voor het koken.' });
+ $('#est_pre_sg').jqxTooltip({ content: 'Het berekende SG in de kookketel na het spoelen en voor het koken.' });
+ $('#brew_aboil_sg').jqxTooltip({ content: 'Het gemeten SG in de kookketel na het koken.' });
+ $('#est_og3').jqxTooltip({ content: 'Het gewenste SG in de kookketel na het koken zonder eventuele suikers die tijdens de vergisting toegevoegd worden.' });
+ $('#brew_mash_efficiency').jqxTooltip({ content: 'Het behaalde maisch rendement.' });
+ $('#brew_preboil_volume').jqxTooltip({ content: 'Het gemeten volume van het wort voor het koken.' });
+ $('#est_pre_vol').jqxTooltip({ content: 'Het berekende volume van het wort voor het koken.' });
+ $('#brew_aboil_volume').jqxTooltip({ content: 'Het gemeten volume van het wort na het koken.' });
+ $('#est_a_vol').jqxTooltip({ content: 'Het gewenste volume na het koken.' });
+ $('#brew_preboil_efficiency').jqxTooltip({ content: 'Het berekende rendement voor het koken.' });
+ $('#brew_aboil_efficiency').jqxTooltip({ content: 'Het bereikte rendement na het koken.' });
+ $('#brew_sparge_temperature').jqxTooltip({ content: 'De spoelwater temperatuur, in te stellen in de Water tab.' });
+ $('#brew_sparge_volume').jqxTooltip({ content: 'Het spoelwater voorraad volume, in te stellen in de Water tab.' });
+ $('#brew_date_start,#brew_date_end').jqxDateTimeInput(DateTimeopts);
+ $('#brew_date_start,#brew_date_end').on('close', function(event) { calcStage(); });
+ $('#est_mash_ph').jqxNumberInput(Show1wat);
+ $('#brew_mash_ph,#brew_preboil_ph,#brew_aboil_ph').jqxNumberInput(SpinpH);
+ $('#brew_mash_sg').on('valueChanged', function() { calcMashEfficiency(); });
  $('#brew_preboil_sg').on('valueChanged', function(event) {
   dataRecord.brew_preboil_sg = event.args.value;
   calcEfficiencyBeforeBoil();
  });
- $('#est_pre_sg').jqxTooltip({ content: 'Het berekende SG in de kookketel na het spoelen en voor het koken.' });
- $('#brew_aboil_sg').jqxTooltip({ content: 'Het gemeten SG in de kookketel na het koken.' });
  $('#brew_mash_sg,#brew_preboil_sg,#brew_aboil_sg').jqxNumberInput(SGopts);
  $('#brew_aboil_sg').on('valueChanged', function(event) {
   dataRecord.brew_aboil_sg = event.args.value;
@@ -5830,17 +5719,12 @@
   calcFermentables();
   calcIBUs();
  });
- $('#est_og3').jqxTooltip({ content: 'Het gewenste SG in de kookketel na het koken zonder eventuele suikers die tijdens de vergisting toegevoegd worden.' });
  $('#est_mash_sg,#est_pre_sg,#est_og3').jqxNumberInput(Show3wat);
- $('#brew_mash_efficiency').jqxTooltip({ content: 'Het behaalde maisch rendement.' });
  $('#brew_mash_efficiency').jqxNumberInput(Show1dec);
- $('#brew_preboil_volume').jqxTooltip({ content: 'Het gemeten volume van het wort voor het koken.' });
  $('#brew_preboil_volume').on('valueChanged', function(event) {
   dataRecord.brew_preboil_volume = event.args.value;
   calcEfficiencyBeforeBoil();
  });
- $('#est_pre_vol').jqxTooltip({ content: 'Het berekende volume van het wort voor het koken.' });
- $('#brew_aboil_volume').jqxTooltip({ content: 'Het gemeten volume van het wort na het koken.' });
  $('#brew_preboil_volume,#brew_aboil_volume').jqxNumberInput(Spin1dec);
  $('#brew_aboil_volume').on('valueChanged', function(event) {
   dataRecord.brew_aboil_volume = event.args.value;
@@ -5848,12 +5732,7 @@
   calcFermentables();
   calcIBUs();
  });
- $('#est_a_vol').jqxTooltip({ content: 'Het gewenste volume na het koken.' });
  $('#est_pre_vol,#est_a_vol').jqxNumberInput(Show1wat);
- $('#brew_preboil_efficiency').jqxTooltip({ content: 'Het berekende rendement voor het koken.' });
- $('#brew_aboil_efficiency').jqxTooltip({ content: 'Het bereikte rendement na het koken.' });
- $('#brew_sparge_temperature').jqxTooltip({ content: 'De spoelwater temperatuur, in te stellen in de Water tab.' });
- $('#brew_sparge_volume').jqxTooltip({ content: 'Het spoelwater voorraad volume, in te stellen in de Water tab.' });
  $('#brew_preboil_efficiency,#brew_aboil_efficiency,#brew_sparge_temperature,#brew_sparge_volume,#brew_sparge_est').jqxNumberInput(Show1dec);
  $('#brew_cooling_to').jqxNumberInput(Spin1dec);
  $('#brew_sparge_ph').jqxNumberInput(SpinpH);
@@ -5866,9 +5745,8 @@
   height: 23,
   autoDropDownHeight: true
  });
- $('#brew_cooling_time').jqxNumberInput(PosInt);
- $('#brew_cooling_time').jqxNumberInput({ max: 1440 });
- $('#brew_whirlpool9,#brew_whirlpool7,#brew_whirlpool6,#brew_whirlpool2').jqxNumberInput(PosInt);
+ $('#brew_cooling_time,#brew_whirlpool9,#brew_whirlpool7,#brew_whirlpool6,#brew_whirlpool2,#brew_aeration_time,#brew_aeration_speed').jqxNumberInput(PosInt);
+ $('#brew_cooling_time,#brew_aeration_time,#brew_aeration_speed').jqxNumberInput({ max: 1440 });
  $('#brew_whirlpool9,#brew_whirlpool7,#brew_whirlpool6,#brew_whirlpool2').jqxNumberInput({ max: 120 });
  $('#brew_aeration_type').jqxDropDownList({
   theme: theme,
@@ -5879,8 +5757,6 @@
   height: 23,
   autoDropDownHeight: true
  });
- $('#brew_aeration_time,#brew_aeration_speed').jqxNumberInput(PosInt);
- $('#brew_aeration_time,#brew_aeration_speed').jqxNumberInput({ max: 1440 });
  $('#brew_fermenter_volume').jqxNumberInput(Show1dec);
  $('#brew_fermenter_sg').jqxNumberInput(Show3dec);
  $('#brew_fermenter_extrawater,#brew_fermenter_tcloss').jqxNumberInput(Spin1dec);
@@ -5898,21 +5774,20 @@
  $('#primary_max_temp').jqxTooltip({ content: 'De hoogst bereikte piek temperatuur tijdens de hoofgvergisting.' });
  $('#primary_end_temp').jqxTooltip({ content: 'De eind temperatuur van de hoofdvergisting.' });
  $('#primary_end_sg').jqxTooltip({ content: 'Het gemeten SG aan het eind van de hoofdvergisting.' });
- $('#primary_end_brix').jqxTooltip({ content: 'Hulpfinctie: de afgelezen &deg;Brix RI waarde met een refractometer.' });
+ $('#primary_end_brix,#secondary_end_brix,#final_brix').jqxTooltip({ content: 'Hulpfinctie: de afgelezen &deg;Brix RI waarde met een refractometer.' });
  $('#primary_svg').jqxTooltip({ content: 'De schijnbare vergisting graad behaald na de hoofdgisting.' });
  $('#primary_end_date').jqxTooltip({ content: 'De eind datum van de hoofdvergisting en eventueel overhevelen.' });
  $('#secondary_end_sg').jqxTooltip({ content: 'Het gemeten SG aan het eind van de navergisting.' });
- $('#primary_end_sg,#secondary_end_sg').jqxNumberInput(SGopts);
- $('#secondary_end_brix').jqxTooltip({ content: 'Hulpfinctie: de afgelezen &deg;Brix RI waarde met een refractometer.' });
  $('#secondary_svg').jqxTooltip({ content: 'De schijnbare vergisting graad behaald na de nagisting.' });
  $('#secondary_end_date').jqxTooltip({ content: 'De eind datum van de navergisting en het begin van het lageren.' });
+ $('#est_fg3').jqxTooltip({ content: 'Het verwachte eind SG. Dit wordt automatisch berekend.' });
+
+ $('#primary_end_sg,#secondary_end_sg').jqxNumberInput(SGopts);
  $('#primary_end_date,#secondary_end_date').jqxDateTimeInput(Dateopts);
  $('#primary_end_date,#secondary_end_date').on('close', function(event) { calcStage(); });
  $('#primary_start_temp,#primary_max_temp,#primary_end_temp,#secondary_temp,#tertiary_temp').jqxNumberInput(YeastT);
  $('#fg').jqxNumberInput(Spin3dec);
- $('#est_fg3').jqxTooltip({ content: 'Het verwachte eind SG. Dit wordt automatisch berekend.' });
  $('#brew_fermenter_sg2,#est_fg3').jqxNumberInput(Show3dec);
- $('#final_brix').jqxTooltip({ content: 'Hulpfinctie: de afgelezen &deg;Brix RI waarde met een refractometer.' });
  $('#primary_end_brix,#secondary_end_brix,#final_brix').jqxNumberInput(Spin1dec);
  $('#final_abv').jqxNumberInput(Show2dec);
  $('#primary_svg,#secondary_svg,#final_svg').jqxNumberInput(Show1dec);
@@ -5930,26 +5805,28 @@
  // Tab 11, Packaging
  // TODO: high gravity packaging, extra water and recalc abv, color and ibu.
  $('#package_date').jqxTooltip({ content: 'De verpakkings datum van dit bier.' });
- $('#package_date').jqxDateTimeInput(Dateopts);
- $('#package_date').on('close', function(event) { calcStage(); });
  $('#package_volume').jqxTooltip({ content: 'Het beschikbare volume om te bottelen of op fust te zetten.' });
  $('#package_infuse_amount').jqxTooltip({ content: 'De hoeveelheid water of drank extra toe te voegen.' });
- $('#package_infuse_amount').jqxNumberInput(Spin3dec);
  $('#package_infuse_abv').jqxTooltip({ content: 'De hoeveelheid alcohol in de drank, of 0.0 als het water is.' });
  $('#package_infuse_notes').jqxTooltip({ content: 'Omschrijving van de extra toevoeging.' });
- $('#package_infuse_notes').jqxInput({ theme: theme, width: 640, height: 23 });
  $('#package_abv').jqxTooltip({ content: 'De uiteindelijke hoeveelheid alcohol volume %.' });
- $('#package_abv').jqxNumberInput(Show2dec);
  $('#package_ph').jqxTooltip({ content: 'De gemeten pH vlak voor het verpakken.' });
- $('#package_ph').jqxNumberInput(SpinpH);
  $('#st_carb_min2').jqxTooltip({ content: 'Het minimum aanbevolen koolzuur volume voor deze bierstijl.'});
  $('#st_carb_max2').jqxTooltip({ content: 'Het maximum aamnevolen koolzuur volume voor deze bierstijl.'});
- $('#st_carb_min2,#st_carb_max2').jqxNumberInput(Smal1dec);
  $('#bottle_amount').jqxTooltip({ content: 'De totale hoeveelheid te bottelen bier.' });
  $('#keg_amount').jqxTooltip({ content: 'De totale hoeveelheid op fust te zetten bier.' });
- $('#package_volume,#package_infuse_abv,#bottle_amount,#keg_amount').jqxNumberInput(Spin1dec);
  $('#bottle_carbonation').jqxTooltip({ content: 'Het gewenste CO2 volume in de flessen.' });
  $('#keg_carbonation').jqxTooltip({ content: 'Het gewenste CO2 volume door de suiker in de fusten.' });
+ $('#bottle_priming_water,#keg_priming_water').jqxTooltip({ content: 'De hoeveelheid water om de suiker op te lossen.' });
+ $('#bottle_pressure').jqxTooltip({ content: 'De maximaal te verwachten druk tijdens het hergisten.' });
+ $('#package_date').jqxDateTimeInput(Dateopts);
+ $('#package_date').on('close', function(event) { calcStage(); });
+ $('#package_infuse_amount').jqxNumberInput(Spin3dec);
+ $('#package_infuse_notes').jqxInput({ theme: theme, width: 640, height: 23 });
+ $('#package_abv').jqxNumberInput(Show2dec);
+ $('#package_ph').jqxNumberInput(SpinpH);
+ $('#st_carb_min2,#st_carb_max2').jqxNumberInput(Smal1dec);
+ $('#package_volume,#package_infuse_abv,#bottle_amount,#keg_amount').jqxNumberInput(Spin1dec);
  $('#bottle_carbonation,#keg_carbonation').jqxNumberInput(Spin2dec);
  $('#bottle_carbonation,#keg_carbonation').jqxNumberInput({ max: 5 });
  $('#bottle_priming_sugar').jqxDropDownList({
@@ -6058,9 +5935,7 @@
    calcCarbonation();
   }
  });
- $('#bottle_priming_water,#keg_priming_water').jqxTooltip({ content: 'De hoeveelheid water om de suiker op te lossen.' });
  $('#bottle_priming_water,#keg_priming_water').jqxNumberInput(Spin3dec);
- $('#bottle_pressure').jqxTooltip({ content: 'De maximaal te verwachten druk tijdens het hergisten.' });
  $('#keg_forced_carb').jqxCheckBox({ theme: theme, width: 120, height: 23 });
  $('#bottle_priming_amount,#keg_priming_amount,#bottle_priming_total,#bottle_pressure,#keg_priming_total,#keg_pressure').jqxNumberInput(Show1dec);
  $('#bottle_abv,#keg_abv').jqxNumberInput(Show2dec);

mercurial