# HG changeset patch # User Michiel Broek # Date 1567768492 -7200 # Node ID dc3e14b976be0087c57ae6697d3237df4b04a6cc # Parent fbd2a7cecaaa0eb73ccdbb5f05e4f49279d35310 Global javascript code cleanup and optimisation diff -r fbd2a7cecaaa -r dc3e14b976be www/js/global-min.js --- a/www/js/global-min.js Thu Sep 05 21:25:13 2019 +0200 +++ b/www/js/global-min.js Fri Sep 06 13:14:52 2019 +0200 @@ -1,1 +1,1 @@ -var StageData=[{id:0,en:"Plan",nl:"Plan"},{id:1,en:"Wait",nl:"Wacht"},{id:2,en:"Brew",nl:"Brouwen"},{id:3,en:"Primary",nl:"Hoofdgisting"},{id:4,en:"Secondary",nl:"Nagisting"},{id:5,en:"Tertiary",nl:"Lagering"},{id:6,en:"Package",nl:"Afvullen"},{id:7,en:"Carbonation",nl:"Hergisten"},{id:8,en:"Mature",nl:"Rijpen"},{id:9,en:"Taste",nl:"Proeven"},{id:10,en:"Ready",nl:"Gereed"},{id:11,en:"Closed",nl:"Afgesloten"}];var StageSource={localdata:StageData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var StageAdapter=new $.jqx.dataAdapter(StageSource);var MaterialData=[{id:0,en:"Stainless Steel",nl:"RVS",sh:0.11},{id:1,en:"Aluminium",nl:"Aluminium",sh:0.22},{id:2,en:"Plastics",nl:"Kunststof",sh:0.46},{id:3,en:"Copper",nl:"Koper",sh:0.092}];var MaterialSource={localdata:MaterialData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"},{name:"sh"}]};var MaterialAdapter=new $.jqx.dataAdapter(MaterialSource);var FermentableTypeData=[{id:0,en:"Grain",nl:"Mout"},{id:1,en:"Sugar",nl:"Suiker"},{id:2,en:"Extract",nl:"Vloeibaar extract"},{id:3,en:"Dry extract",nl:"Droog extract"},{id:4,en:"Adjunct",nl:"Ongemout graan"}];var FermentableTypeSource={localdata:FermentableTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var FermentableTypeAdapter=new $.jqx.dataAdapter(FermentableTypeSource);var GrainTypeData=[{id:0,en:"Base",nl:"Basismout"},{id:1,en:"Roast",nl:"Geroosterde mout"},{id:2,en:"Crystal",nl:"Cara- of crystalmout"},{id:3,en:"Kilned",nl:"Geëeste mout"},{id:4,en:"Sour malt",nl:"Zuurmout"},{id:5,en:"Special",nl:"Speciale mout"},{id:6,en:"No malt",nl:"Geen mout"}];var GrainTypeSource={localdata:GrainTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var GrainTypeAdapter=new $.jqx.dataAdapter(GrainTypeSource);var AddedData=[{id:0,en:"Mash",nl:"Maischen"},{id:1,en:"Boil",nl:"Koken"},{id:2,en:"Fermentation",nl:"Vergisten"},{id:3,en:"Lagering",nl:"Nagisten/lageren"},{id:4,en:"Bottle",nl:"Bottelen"},{id:5,en:"Kegs",nl:"Fust"}];var AddedSource={localdata:AddedData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var AddedAdapter=new $.jqx.dataAdapter(AddedSource);var HopTypeData=[{id:0,en:"Bittering",nl:"Bitterhop"},{id:1,en:"Aroma",nl:"Aromahop"},{id:2,en:"Both",nl:"Beide"}];var HopTypeSource={localdata:HopTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var HopTypeAdapter=new $.jqx.dataAdapter(HopTypeSource);var HopFormData=[{id:0,en:"Pellet",nl:"Pellets"},{id:1,en:"Plug",nl:"Plugs"},{id:2,en:"Leaf",nl:"Bloemen"},{id:3,en:"Leaf wet",nl:"Hop nat"},{id:4,en:"Cryo",nl:"Cryo"}];var HopFormSource={localdata:HopFormData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var HopFormAdapter=new $.jqx.dataAdapter(HopFormSource);var HopUseData=[{id:0,en:"Mash",nl:"Maischhop"},{id:1,en:"First wort",nl:"First wort hop"},{id:2,en:"Boil",nl:"Koken"},{id:3,en:"Aroma",nl:"Vlamuit"},{id:4,en:"Whirlpool",nl:"Whirlpool"},{id:5,en:"Dry hop",nl:"Koudhop"}];var HopUseSource={localdata:HopUseData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var HopUseAdapter=new $.jqx.dataAdapter(HopUseSource);var YeastTypeData=[{id:0,en:"Lager",nl:"Ondergist"},{id:1,en:"Ale",nl:"Bovengist"},{id:2,en:"Wheat",nl:"Tarwegist"},{id:3,en:"Wine",nl:"Wijngist"},{id:4,en:"Champagne",nl:"Champagnegist"}];var YeastTypeSource={localdata:YeastTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var YeastTypeAdapter=new $.jqx.dataAdapter(YeastTypeSource);var YeastFormData=[{id:0,en:"Liquid",nl:"Vloeibaar",cells:100000000000},{id:1,en:"Dry",nl:"Korrel",cells:15000000000},{id:2,en:"Slant",nl:"Schuine buis",cells:1700000000},{id:3,en:"Culture",nl:"Slurry",cells:1700000000},{id:4,en:"Frozen",nl:"Ingevroren",cells:1700000000},{id:5,en:"Bottle",nl:"Depot",cells:1700000000}];var YeastFormSource={localdata:YeastFormData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"},{name:"cells"}]};var YeastFormAdapter=new $.jqx.dataAdapter(YeastFormSource);var YeastUseData=[{id:0,en:"Primary",nl:"Hoofdgisting"},{id:1,en:"Secondary",nl:"Nagisting"},{id:2,en:"Tertiary",nl:"Lagering"},{id:3,en:"Bottle",nl:"Bottelen"}];var YeastUseSource={localdata:YeastUseData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"},{name:"cells"}]};var YeastUseAdapter=new $.jqx.dataAdapter(YeastUseSource);var FlocculationData=[{id:0,en:"Low",nl:"Laag"},{id:1,en:"Medium",nl:"Medium"},{id:2,en:"High",nl:"Hoog"},{id:3,en:"Very high",nl:"Zeer hoog"}];var FlocculationSource={localdata:FlocculationData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var FlocculationAdapter=new $.jqx.dataAdapter(FlocculationSource);var StarterTypeData=[{id:0,en:"Stirred",nl:"Geroerd"},{id:1,en:"Shaken",nl:"Geschud"},{id:2,en:"Simple",nl:"Simpel"}];var StarterTypeSource={localdata:StarterTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var StarterTypeAdapter=new $.jqx.dataAdapter(StarterTypeSource);var MiscTypeData=[{id:0,en:"Spice",nl:"Specerij"},{id:1,en:"Herb",nl:"Kruid"},{id:2,en:"Flavor",nl:"Smaakstof"},{id:3,en:"Fining",nl:"Klaringsmiddel"},{id:4,en:"Water agent",nl:"Brouwzout"},{id:5,en:"Yeast nutrient",nl:"Gistvoeding"},{id:6,en:"Other",nl:"Overig"}];var MiscTypeSource={localdata:MiscTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var MiscTypeAdapter=new $.jqx.dataAdapter(MiscTypeSource);var MiscUseData=[{id:0,en:"Starter",nl:"Starter"},{id:1,en:"Mash",nl:"Maischen"},{id:2,en:"Boil",nl:"Koken"},{id:3,en:"Primary",nl:"Hoofdvergisting"},{id:4,en:"Secondary",nl:"Nagisting/lagering"},{id:5,en:"Bottling",nl:"Bottelen"}];var MiscUseSource={localdata:MiscUseData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var MiscUseAdapter=new $.jqx.dataAdapter(MiscUseSource);var StyleTypeData=[{id:0,en:"Lager",nl:"Ondergistend bier"},{id:1,en:"Ale",nl:"Bovengistend bier"},{id:2,en:"Mead",nl:"Mede"},{id:3,en:"Wheat",nl:"Tarwebier"},{id:4,en:"Mixed",nl:"Gemengd"},{id:5,en:"Cider",nl:"Cider"}];var StyleTypeSource={localdata:StyleTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var StyleTypeAdapter=new $.jqx.dataAdapter(StyleTypeSource);var MashStepTypeData=[{id:0,en:"Infusion",nl:"Infusie"},{id:1,en:"Temperature",nl:"Verwarming"},{id:2,en:"Decoction",nl:"Decoctie"}];var MashStepTypeSource={localdata:MashStepTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var MashStepTypeAdapter=new $.jqx.dataAdapter(MashStepTypeSource);var RecipeTypeData=[{id:0,en:"Extract",nl:"Extract"},{id:1,en:"Partial Mash",nl:"Deelmaisch"},{id:2,en:"All Grain",nl:"Mout"}];var RecipeTypeSource={localdata:RecipeTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var RecipeTypeAdapter=new $.jqx.dataAdapter(RecipeTypeSource);var IBUmethodData=[{id:0,en:"Tinseth",nl:"Tinseth"},{id:1,en:"Rager",nl:"Rager"},{id:2,en:"Daniels",nl:"Daniels"}];var IBUmethodSource={localdata:IBUmethodData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var IBUmethodAdapter=new $.jqx.dataAdapter(IBUmethodSource);var ColorMethodData=[{id:0,en:"Morey",nl:"Morey"},{id:1,en:"Mosher",nl:"Mosher"},{id:2,en:"Daniels",nl:"Daniels"},{id:3,en:"Halberstadt",nl:"Halberstadt"},{id:4,en:"Naudts",nl:"Naudts"}];var ColorMethodSource={localdata:ColorMethodData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var ColorMethodAdapter=new $.jqx.dataAdapter(ColorMethodSource);var CoolingTypeData=[{id:0,en:"-",nl:"-"},{id:1,en:"Emersion chiller",nl:"Dompelkoeler"},{id:2,en:"Counterflow chiller",nl:"Tegenstroomkoeler"},{id:3,en:"Au bain marie",nl:"Au bain marie"},{id:4,en:"Natural",nl:"Laten afkoelen"}];var CoolingTypeSource={localdata:CoolingTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var CoolingTypeAdapter=new $.jqx.dataAdapter(CoolingTypeSource);var AerationTypeData=[{id:0,en:"None",nl:"Geen"},{id:1,en:"Air",nl:"Lucht"},{id:2,en:"Oxygen",nl:"Zuurstof"}];var AerationTypeSource={localdata:AerationTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var AerationTypeAdapter=new $.jqx.dataAdapter(AerationTypeSource);var AcidTypeData=[{id:0,en:"Lactic",nl:"Melkzuur"},{id:1,en:"Hydrochloric",nl:"Zoutzuur"},{id:2,en:"Phosphoric",nl:"Fosforzuur"},{id:3,en:"Sulfuric",nl:"Zwavelzuur"}];var AcidTypeSource={localdata:AcidTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var AcidTypeAdapter=new $.jqx.dataAdapter(AcidTypeSource);var BaseTypeData=[{id:0,en:"Sodiumbicarbonate",nl:"NaHCO3"},{id:1,en:"Sodiumcarbonate",nl:"Na2CO3"},{id:2,en:"Calciumcarbonate",nl:"CaCO3"},{id:3,en:"Calciumhydroxide",nl:"Ca(OH)2"}];var BaseTypeSource={localdata:BaseTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var BaseTypeAdapter=new $.jqx.dataAdapter(BaseTypeSource);var SpargeSourceData=[{id:0,en:"Source 1",nl:"Bron 1"},{id:1,en:"Source 2",nl:"Bron 2"},{id:2,en:"Mixed",nl:"Gemengd"}];var SpargeSourceSource={localdata:SpargeSourceData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]};var SpargeSourceAdapter=new $.jqx.dataAdapter(SpargeSourceSource);var Show1wat={inputMode:"simple",theme:theme,width:74,height:23,decimalDigits:1,readOnly:true};var Show2wat={inputMode:"simple",theme:theme,width:74,height:23,decimalDigits:2,readOnly:true};var Show3wat={inputMode:"simple",theme:theme,width:74,height:23,decimalDigits:3,readOnly:true};var Smal0dec={inputMode:"simple",theme:theme,width:50,height:23,decimalDigits:0,readOnly:true};var Smal1dec={inputMode:"simple",theme:theme,width:50,height:23,decimalDigits:1,readOnly:true};var Show0dec={inputMode:"simple",theme:theme,width:90,height:23,readOnly:true,decimalDigits:0};var Show1dec={inputMode:"simple",theme:theme,width:90,height:23,readOnly:true,decimalDigits:1};var Show2dec={inputMode:"simple",theme:theme,width:90,height:23,readOnly:true,decimalDigits:2};var Show3dec={inputMode:"simple",theme:theme,width:90,height:23,readOnly:true,decimalDigits:3};var SGopts={inputMode:"simple",theme:theme,width:110,height:23,min:0.99,max:1.199,decimalDigits:3,spinButtons:true};var Spin1dec={inputMode:"simple",theme:theme,width:110,height:23,min:0,decimalDigits:1,spinButtons:true};var Spin2dec={inputMode:"simple",theme:theme,width:110,height:23,min:0,decimalDigits:2,spinButtons:true};var Spin3dec={inputMode:"simple",theme:theme,width:110,height:23,min:0,decimalDigits:3,spinButtons:true};var SpinpH={inputMode:"simple",theme:theme,width:110,height:23,min:1,max:14,decimalDigits:1,spinButtons:true};var Spin2pH={inputMode:"simple",theme:theme,width:110,height:23,min:1,max:14,decimalDigits:2,spinButtons:true};var YeastT={inputMode:"simple",theme:theme,width:110,height:23,min:0,max:40,decimalDigits:1,spinButtons:true};var PosInt={inputMode:"simple",theme:theme,width:110,height:23,min:0,decimalDigits:0,spinButtons:true};var Perc1dec={inputMode:"simple",theme:theme,width:110,height:23,min:0,max:100,decimalDigits:1,spinButtons:true};var Perc0={inputMode:"simple",theme:theme,width:110,height:23,min:0,max:100,decimalDigits:0,spinButtons:true};var Dateopts={theme:theme,width:150,height:23,allowNullDate:true,todayString:"Vandaag",clearString:"Wissen",showFooter:true,formatString:"yyyy-MM-dd",enableBrowserBoundsDetection:true};var DateTimeopts={theme:theme,width:230,height:23,allowNullDate:true,todayString:"Vandaag",clearString:"Wissen",showFooter:true,formatString:"yyyy-MM-dd HH:mm:ss",enableBrowserBoundsDetection:true,showTimeButton:true};var sugardensity=1.611;var stylesUrl="includes/db_profile_styles.php";var stylesSource={datatype:"json",datafields:[{name:"record",type:"number"},{name:"name",type:"string"},{name:"category",type:"string"},{name:"category_number",type:"number"},{name:"style_letter",type:"string"},{name:"style_guide",type:"string"},{name:"type",type:"int"},{name:"og_min",type:"float"},{name:"og_max",type:"float"},{name:"fg_min",type:"float"},{name:"fg_max",type:"float"},{name:"ibu_min",type:"float"},{name:"ibu_max",type:"float"},{name:"color_min",type:"float"},{name:"color_max",type:"float"},{name:"carb_min",type:"float"},{name:"carb_max",type:"float"},{name:"abv_min",type:"float"},{name:"abv_max",type:"float"},{name:"notes",type:"string"},{name:"profile",type:"string"},{name:"ingredients",type:"string"},{name:"examples",type:"string"}],url:stylesUrl};var styleslist=new $.jqx.dataAdapter(stylesSource);var equipmentUrl="includes/db_inventory_equipments.php";var equipmentSource={datatype:"json",datafields:[{name:"name",type:"string"},{name:"boil_size",type:"float"},{name:"batch_size",type:"float"},{name:"tun_volume",type:"float"},{name:"tun_weight",type:"float"},{name:"tun_specific_heat",type:"float"},{name:"tun_material",type:"int"},{name:"tun_height",type:"float"},{name:"top_up_water",type:"float"},{name:"trub_chiller_loss",type:"float"},{name:"evap_rate",type:"float"},{name:"boil_time",type:"float"},{name:"calc_boil_volume",type:"int"},{name:"top_up_kettle",type:"float"},{name:"hop_utilization",type:"float"},{name:"notes",type:"string"},{name:"lauter_volume",type:"float"},{name:"lauter_height",type:"float"},{name:"lauter_deadspace",type:"float"},{name:"kettle_volume",type:"float"},{name:"kettle_height",type:"float"},{name:"mash_volume",type:"float"},{name:"mash_max",type:"float"},{name:"efficiency",type:"float"}],url:equipmentUrl};var equipmentlist=new $.jqx.dataAdapter(equipmentSource);var fermentableInvSource={datatype:"json",datafields:[{name:"record",type:"number"},{name:"name",type:"string"},{name:"type",type:"int"},{name:"yield",type:"float"},{name:"color",type:"float"},{name:"add_after_boil",type:"int"},{name:"origin",type:"string"},{name:"supplier",type:"string"},{name:"coarse_fine_diff",type:"float"},{name:"moisture",type:"float"},{name:"diastatic_power",type:"float"},{name:"protein",type:"float"},{name:"dissolved_protein",type:"float"},{name:"max_in_batch",type:"float"},{name:"recommend_mash",type:"int"},{name:"graintype",type:"int"},{name:"di_ph",type:"float"},{name:"acid_to_ph_57",type:"float"},{name:"inventory",type:"float"},{name:"cost",type:"float"}],url:"getfermentablesources.php"};var fermentableinstock=false;var fermentablelist=new $.jqx.dataAdapter(fermentableInvSource,{beforeLoadComplete:function(a){var c=new Array();for(var b=0;b299){c=299}var e=[250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,200,199,199,198,198,197,197,196,196,195,195,194,194,193,193,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,175,174,172,171,169,168,167,195,164,162,161,159,158,157,155,154,152,151,149,148,147,145,144,142,141,139,138,137,135,134,132,131,129,128,127,125,124,122,121,119,118,117,115,114,112,111,109,108,107,105,104,102,101,99,98,97,95,94,92,91,89,88,87,85,84,82,81,79,78,77,75,74,72,71,69,68,67,65,64,62,61,59,58,57,55,54,52,51,49,48,47,45,44,43,41,39,38,37,37,36,36,35,35,34,34,33,33,32,32,31,31,30,30,29,29,28,28,27,27,26,26,25,25,24,24,23,23,22,22,21,21,20,20,19,19,18,18,17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,8,8];var d=[250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,249,248,247,246,245,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214,212,210,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180,178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148,146,144,142,141,140,139,139,138,137,136,136,135,134,133,133,132,131,130,130,129,128,127,127,126,125,124,124,123,122,121,121,120,119,118,118,117,116,115,115,114,113,112,112,111,110,109,109,108,107,106,106,105,104,103,103,102,101,100,100,99,98,97,97,96,95,94,94,93,92,91,91,90,89,88,88,87,86,85,85,84,83,82,82,81,80,79,78,77,76,75,75,74,73,72,72,71,70,69,69,68,67,66,66,65,64,63,63,62,61,60,60,59,58,57,57,56,55,54,54,53,52,51,51,50,49,48,48,47,46,45,45,44,43,42,42,41,40,39,39,38,37,36,36,35,34,33,33,32,31,30,30,29,28,27,27,26,25,24,24,23,22,22,22,21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,16,16,16,15,15,15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3];var f=[210,204,199,193,188,182,177,171,166,160,155,149,144,138,133,127,122,116,111,105,100,94,89,83,78,72,67,61,56,50,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,55,55,55,55,54,54,54,54,53,53,53,53,52,52,52,52,51,51,51,51,50,50,50,50,49,49,48,47,47,46,45,45,44,43,43,42,41,41,40,39,39,38,37,37,36,35,34,33,32,31,29,28,27,26,25,24,23,21,20,19,18,17,16,15,13,12,11,10,9,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,17,16,16,15,15,15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2];var b=e[c]*65536+d[c]*256+f[c];var a=b.toString(16).toUpperCase();if(a.length<6){a="0"+a}return"#"+a}function sg_to_plato(a){return((135.997*a-630.272)*a+1111.14)*a-616.868}function plato_to_sg(a){return 1+(a/(258.6-((a/258.2)*227.1)))}function brix_to_sg(a){if(my_brix_correction>0){return plato_to_sg(a/my_brix_correction)}else{return plato_to_sg(a)}}function sg_to_brix(a){return sg_to_plato(a)*my_brix_correction}function estimate_sg(c,e){var a=100*c/e;var d=plato_to_sg(a);for(var b=0;b<20;b++){if(d>0){a=100*c/(e*d)}d=plato_to_sg(a)}return Round(d,4)}function estimate_fg(f,i,e,h,c,g,j){var b;if(f>40){f=0}if(i>50){i=0}if((e>0)&&(h>0)){b=e;if(b<2){b=2}if(b>5.5){b=5.5}if(c<60){c=60}if(c>72){c=72}}else{b=3.5;c=67;h=75}if(g<30){g=77}var d=0.00825*g+0.00817*b-0.00684*c+0.00026*h-0.00356*i+0.00553*f+0.547;var a=Round(1+(1-d)*(j-1),4);console.log("estimate_fg("+f+","+i+","+b+","+h+","+c+","+g+","+j+") AttBeer:"+d+" fg:"+a);return a}function CalcFrac(f,e,d,b){var g=Math.pow(10,f-e);var a=Math.pow(10,f-d);var i=Math.pow(10,f-b);var l=1/(1+g+g*a+g*a*i);var k=l;var h=g*l;var c=g*a*l;var j=g*a*i*l;return h+2*c+3*j}function lintner_to_kolbach(a){return(3.5*a)-16}function kolbach_to_lintner(a){return(a+16)/3.5}; \ No newline at end of file +var StageData=[{id:0,en:"Plan",nl:"Plan"},{id:1,en:"Wait",nl:"Wacht"},{id:2,en:"Brew",nl:"Brouwen"},{id:3,en:"Primary",nl:"Hoofdgisting"},{id:4,en:"Secondary",nl:"Nagisting"},{id:5,en:"Tertiary",nl:"Lagering"},{id:6,en:"Package",nl:"Afvullen"},{id:7,en:"Carbonation",nl:"Hergisten"},{id:8,en:"Mature",nl:"Rijpen"},{id:9,en:"Taste",nl:"Proeven"},{id:10,en:"Ready",nl:"Gereed"},{id:11,en:"Closed",nl:"Afgesloten"}],StageSource={localdata:StageData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},StageAdapter=new $.jqx.dataAdapter(StageSource),MaterialData=[{id:0,en:"Stainless Steel",nl:"RVS",sh:0.11},{id:1,en:"Aluminium",nl:"Aluminium",sh:0.22},{id:2,en:"Plastics",nl:"Kunststof",sh:0.46},{id:3,en:"Copper",nl:"Koper",sh:0.092}],MaterialSource={localdata:MaterialData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"},{name:"sh"}]},MaterialAdapter=new $.jqx.dataAdapter(MaterialSource),FermentableTypeData=[{id:0,en:"Grain",nl:"Mout"},{id:1,en:"Sugar",nl:"Suiker"},{id:2,en:"Extract",nl:"Vloeibaar extract"},{id:3,en:"Dry extract",nl:"Droog extract"},{id:4,en:"Adjunct",nl:"Ongemout graan"}],FermentableTypeSource={localdata:FermentableTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},FermentableTypeAdapter=new $.jqx.dataAdapter(FermentableTypeSource),GrainTypeData=[{id:0,en:"Base",nl:"Basismout"},{id:1,en:"Roast",nl:"Geroosterde mout"},{id:2,en:"Crystal",nl:"Cara- of crystalmout"},{id:3,en:"Kilned",nl:"Geëeste mout"},{id:4,en:"Sour malt",nl:"Zuurmout"},{id:5,en:"Special",nl:"Speciale mout"},{id:6,en:"No malt",nl:"Geen mout"}],GrainTypeSource={localdata:GrainTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},GrainTypeAdapter=new $.jqx.dataAdapter(GrainTypeSource),AddedData=[{id:0,en:"Mash",nl:"Maischen"},{id:1,en:"Boil",nl:"Koken"},{id:2,en:"Fermentation",nl:"Vergisten"},{id:3,en:"Lagering",nl:"Nagisten/lageren"},{id:4,en:"Bottle",nl:"Bottelen"},{id:5,en:"Kegs",nl:"Fust"}],AddedSource={localdata:AddedData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},AddedAdapter=new $.jqx.dataAdapter(AddedSource),HopTypeData=[{id:0,en:"Bittering",nl:"Bitterhop"},{id:1,en:"Aroma",nl:"Aromahop"},{id:2,en:"Both",nl:"Beide"}],HopTypeSource={localdata:HopTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},HopTypeAdapter=new $.jqx.dataAdapter(HopTypeSource),HopFormData=[{id:0,en:"Pellet",nl:"Pellets"},{id:1,en:"Plug",nl:"Plugs"},{id:2,en:"Leaf",nl:"Bloemen"},{id:3,en:"Leaf wet",nl:"Hop nat"},{id:4,en:"Cryo",nl:"Cryo"}],HopFormSource={localdata:HopFormData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},HopFormAdapter=new $.jqx.dataAdapter(HopFormSource),HopUseData=[{id:0,en:"Mash",nl:"Maischhop"},{id:1,en:"First wort",nl:"First wort hop"},{id:2,en:"Boil",nl:"Koken"},{id:3,en:"Aroma",nl:"Vlamuit"},{id:4,en:"Whirlpool",nl:"Whirlpool"},{id:5,en:"Dry hop",nl:"Koudhop"}],HopUseSource={localdata:HopUseData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},HopUseAdapter=new $.jqx.dataAdapter(HopUseSource),YeastTypeData=[{id:0,en:"Lager",nl:"Ondergist"},{id:1,en:"Ale",nl:"Bovengist"},{id:2,en:"Wheat",nl:"Tarwegist"},{id:3,en:"Wine",nl:"Wijngist"},{id:4,en:"Champagne",nl:"Champagnegist"}],YeastTypeSource={localdata:YeastTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},YeastTypeAdapter=new $.jqx.dataAdapter(YeastTypeSource),YeastFormData=[{id:0,en:"Liquid",nl:"Vloeibaar",cells:100000000000},{id:1,en:"Dry",nl:"Korrel",cells:15000000000},{id:2,en:"Slant",nl:"Schuine buis",cells:1700000000},{id:3,en:"Culture",nl:"Slurry",cells:1700000000},{id:4,en:"Frozen",nl:"Ingevroren",cells:1700000000},{id:5,en:"Bottle",nl:"Depot",cells:1700000000}],YeastFormSource={localdata:YeastFormData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"},{name:"cells"}]},YeastFormAdapter=new $.jqx.dataAdapter(YeastFormSource),YeastUseData=[{id:0,en:"Primary",nl:"Hoofdgisting"},{id:1,en:"Secondary",nl:"Nagisting"},{id:2,en:"Tertiary",nl:"Lagering"},{id:3,en:"Bottle",nl:"Bottelen"}],YeastUseSource={localdata:YeastUseData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"},{name:"cells"}]},YeastUseAdapter=new $.jqx.dataAdapter(YeastUseSource),FlocculationData=[{id:0,en:"Low",nl:"Laag"},{id:1,en:"Medium",nl:"Medium"},{id:2,en:"High",nl:"Hoog"},{id:3,en:"Very high",nl:"Zeer hoog"}],FlocculationSource={localdata:FlocculationData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},FlocculationAdapter=new $.jqx.dataAdapter(FlocculationSource),StarterTypeData=[{id:0,en:"Stirred",nl:"Geroerd"},{id:1,en:"Shaken",nl:"Geschud"},{id:2,en:"Simple",nl:"Simpel"}],StarterTypeSource={localdata:StarterTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},StarterTypeAdapter=new $.jqx.dataAdapter(StarterTypeSource),MiscTypeData=[{id:0,en:"Spice",nl:"Specerij"},{id:1,en:"Herb",nl:"Kruid"},{id:2,en:"Flavor",nl:"Smaakstof"},{id:3,en:"Fining",nl:"Klaringsmiddel"},{id:4,en:"Water agent",nl:"Brouwzout"},{id:5,en:"Yeast nutrient",nl:"Gistvoeding"},{id:6,en:"Other",nl:"Overig"}],MiscTypeSource={localdata:MiscTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},MiscTypeAdapter=new $.jqx.dataAdapter(MiscTypeSource),MiscUseData=[{id:0,en:"Starter",nl:"Starter"},{id:1,en:"Mash",nl:"Maischen"},{id:2,en:"Boil",nl:"Koken"},{id:3,en:"Primary",nl:"Hoofdvergisting"},{id:4,en:"Secondary",nl:"Nagisting/lagering"},{id:5,en:"Bottling",nl:"Bottelen"}],MiscUseSource={localdata:MiscUseData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},MiscUseAdapter=new $.jqx.dataAdapter(MiscUseSource),StyleTypeData=[{id:0,en:"Lager",nl:"Ondergistend bier"},{id:1,en:"Ale",nl:"Bovengistend bier"},{id:2,en:"Mead",nl:"Mede"},{id:3,en:"Wheat",nl:"Tarwebier"},{id:4,en:"Mixed",nl:"Gemengd"},{id:5,en:"Cider",nl:"Cider"}],StyleTypeSource={localdata:StyleTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},StyleTypeAdapter=new $.jqx.dataAdapter(StyleTypeSource),MashStepTypeData=[{id:0,en:"Infusion",nl:"Infusie"},{id:1,en:"Temperature",nl:"Verwarming"},{id:2,en:"Decoction",nl:"Decoctie"}],MashStepTypeSource={localdata:MashStepTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},MashStepTypeAdapter=new $.jqx.dataAdapter(MashStepTypeSource),RecipeTypeData=[{id:0,en:"Extract",nl:"Extract"},{id:1,en:"Partial Mash",nl:"Deelmaisch"},{id:2,en:"All Grain",nl:"Mout"}],RecipeTypeSource={localdata:RecipeTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},RecipeTypeAdapter=new $.jqx.dataAdapter(RecipeTypeSource),IBUmethodData=[{id:0,en:"Tinseth",nl:"Tinseth"},{id:1,en:"Rager",nl:"Rager"},{id:2,en:"Daniels",nl:"Daniels"}],IBUmethodSource={localdata:IBUmethodData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},IBUmethodAdapter=new $.jqx.dataAdapter(IBUmethodSource),ColorMethodData=[{id:0,en:"Morey",nl:"Morey"},{id:1,en:"Mosher",nl:"Mosher"},{id:2,en:"Daniels",nl:"Daniels"},{id:3,en:"Halberstadt",nl:"Halberstadt"},{id:4,en:"Naudts",nl:"Naudts"}],ColorMethodSource={localdata:ColorMethodData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},ColorMethodAdapter=new $.jqx.dataAdapter(ColorMethodSource),CoolingTypeData=[{id:0,en:"-",nl:"-"},{id:1,en:"Emersion chiller",nl:"Dompelkoeler"},{id:2,en:"Counterflow chiller",nl:"Tegenstroomkoeler"},{id:3,en:"Au bain marie",nl:"Au bain marie"},{id:4,en:"Natural",nl:"Laten afkoelen"}],CoolingTypeSource={localdata:CoolingTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},CoolingTypeAdapter=new $.jqx.dataAdapter(CoolingTypeSource),AerationTypeData=[{id:0,en:"None",nl:"Geen"},{id:1,en:"Air",nl:"Lucht"},{id:2,en:"Oxygen",nl:"Zuurstof"}],AerationTypeSource={localdata:AerationTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},AerationTypeAdapter=new $.jqx.dataAdapter(AerationTypeSource),AcidTypeData=[{id:0,en:"Lactic",nl:"Melkzuur"},{id:1,en:"Hydrochloric",nl:"Zoutzuur"},{id:2,en:"Phosphoric",nl:"Fosforzuur"},{id:3,en:"Sulfuric",nl:"Zwavelzuur"}],AcidTypeSource={localdata:AcidTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},AcidTypeAdapter=new $.jqx.dataAdapter(AcidTypeSource),BaseTypeData=[{id:0,en:"Sodiumbicarbonate",nl:"NaHCO3"},{id:1,en:"Sodiumcarbonate",nl:"Na2CO3"},{id:2,en:"Calciumcarbonate",nl:"CaCO3"},{id:3,en:"Calciumhydroxide",nl:"Ca(OH)2"}],BaseTypeSource={localdata:BaseTypeData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},BaseTypeAdapter=new $.jqx.dataAdapter(BaseTypeSource),SpargeSourceData=[{id:0,en:"Source 1",nl:"Bron 1"},{id:1,en:"Source 2",nl:"Bron 2"},{id:2,en:"Mixed",nl:"Gemengd"}],SpargeSourceSource={localdata:SpargeSourceData,datatype:"array",datafields:[{name:"id"},{name:"en"},{name:"nl"}]},SpargeSourceAdapter=new $.jqx.dataAdapter(SpargeSourceSource),Show1wat={inputMode:"simple",theme:theme,width:74,height:23,decimalDigits:1,readOnly:true},Show2wat={inputMode:"simple",theme:theme,width:74,height:23,decimalDigits:2,readOnly:true},Show3wat={inputMode:"simple",theme:theme,width:74,height:23,decimalDigits:3,readOnly:true},Smal0dec={inputMode:"simple",theme:theme,width:50,height:23,decimalDigits:0,readOnly:true},Smal1dec={inputMode:"simple",theme:theme,width:50,height:23,decimalDigits:1,readOnly:true},Show0dec={inputMode:"simple",theme:theme,width:90,height:23,readOnly:true,decimalDigits:0},Show1dec={inputMode:"simple",theme:theme,width:90,height:23,readOnly:true,decimalDigits:1},Show2dec={inputMode:"simple",theme:theme,width:90,height:23,readOnly:true,decimalDigits:2},Show3dec={inputMode:"simple",theme:theme,width:90,height:23,readOnly:true,decimalDigits:3},SGopts={inputMode:"simple",theme:theme,width:110,height:23,min:0.99,max:1.199,decimalDigits:3,spinButtons:true},Spin1dec={inputMode:"simple",theme:theme,width:110,height:23,min:0,decimalDigits:1,spinButtons:true},Spin2dec={inputMode:"simple",theme:theme,width:110,height:23,min:0,decimalDigits:2,spinButtons:true},Spin3dec={inputMode:"simple",theme:theme,width:110,height:23,min:0,decimalDigits:3,spinButtons:true},SpinpH={inputMode:"simple",theme:theme,width:110,height:23,min:1,max:14,decimalDigits:1,spinButtons:true},Spin2pH={inputMode:"simple",theme:theme,width:110,height:23,min:1,max:14,decimalDigits:2,spinButtons:true},YeastT={inputMode:"simple",theme:theme,width:110,height:23,min:0,max:40,decimalDigits:1,spinButtons:true},PosInt={inputMode:"simple",theme:theme,width:110,height:23,min:0,decimalDigits:0,spinButtons:true},Perc1dec={inputMode:"simple",theme:theme,width:110,height:23,min:0,max:100,decimalDigits:1,spinButtons:true},Perc0={inputMode:"simple",theme:theme,width:110,height:23,min:0,max:100,decimalDigits:0,spinButtons:true},Dateopts={theme:theme,width:150,height:23,allowNullDate:true,todayString:"Vandaag",clearString:"Wissen",showFooter:true,formatString:"yyyy-MM-dd",enableBrowserBoundsDetection:true},DateTimeopts={theme:theme,width:230,height:23,allowNullDate:true,todayString:"Vandaag",clearString:"Wissen",showFooter:true,formatString:"yyyy-MM-dd HH:mm:ss",enableBrowserBoundsDetection:true,showTimeButton:true},sugardensity=1.611,stylesUrl="includes/db_profile_styles.php",stylesSource={datatype:"json",datafields:[{name:"record",type:"number"},{name:"name",type:"string"},{name:"category",type:"string"},{name:"category_number",type:"number"},{name:"style_letter",type:"string"},{name:"style_guide",type:"string"},{name:"type",type:"int"},{name:"og_min",type:"float"},{name:"og_max",type:"float"},{name:"fg_min",type:"float"},{name:"fg_max",type:"float"},{name:"ibu_min",type:"float"},{name:"ibu_max",type:"float"},{name:"color_min",type:"float"},{name:"color_max",type:"float"},{name:"carb_min",type:"float"},{name:"carb_max",type:"float"},{name:"abv_min",type:"float"},{name:"abv_max",type:"float"},{name:"notes",type:"string"},{name:"profile",type:"string"},{name:"ingredients",type:"string"},{name:"examples",type:"string"}],url:stylesUrl},styleslist=new $.jqx.dataAdapter(stylesSource),equipmentUrl="includes/db_inventory_equipments.php",equipmentSource={datatype:"json",datafields:[{name:"name",type:"string"},{name:"boil_size",type:"float"},{name:"batch_size",type:"float"},{name:"tun_volume",type:"float"},{name:"tun_weight",type:"float"},{name:"tun_specific_heat",type:"float"},{name:"tun_material",type:"int"},{name:"tun_height",type:"float"},{name:"top_up_water",type:"float"},{name:"trub_chiller_loss",type:"float"},{name:"evap_rate",type:"float"},{name:"boil_time",type:"float"},{name:"calc_boil_volume",type:"int"},{name:"top_up_kettle",type:"float"},{name:"hop_utilization",type:"float"},{name:"notes",type:"string"},{name:"lauter_volume",type:"float"},{name:"lauter_height",type:"float"},{name:"lauter_deadspace",type:"float"},{name:"kettle_volume",type:"float"},{name:"kettle_height",type:"float"},{name:"mash_volume",type:"float"},{name:"mash_max",type:"float"},{name:"efficiency",type:"float"}],url:equipmentUrl},equipmentlist=new $.jqx.dataAdapter(equipmentSource),fermentableInvSource={datatype:"json",datafields:[{name:"record",type:"number"},{name:"name",type:"string"},{name:"type",type:"int"},{name:"yield",type:"float"},{name:"color",type:"float"},{name:"add_after_boil",type:"int"},{name:"origin",type:"string"},{name:"supplier",type:"string"},{name:"coarse_fine_diff",type:"float"},{name:"moisture",type:"float"},{name:"diastatic_power",type:"float"},{name:"protein",type:"float"},{name:"dissolved_protein",type:"float"},{name:"max_in_batch",type:"float"},{name:"recommend_mash",type:"int"},{name:"graintype",type:"int"},{name:"di_ph",type:"float"},{name:"acid_to_ph_57",type:"float"},{name:"inventory",type:"float"},{name:"cost",type:"float"}],url:"getfermentablesources.php"},fermentableinstock=false,fermentablelist=new $.jqx.dataAdapter(fermentableInvSource,{beforeLoadComplete:function(a){var d,b,c=new Array();for(b=0;b299){c=299}e=[250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,200,199,199,198,198,197,197,196,196,195,195,194,194,193,193,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,175,174,172,171,169,168,167,195,164,162,161,159,158,157,155,154,152,151,149,148,147,145,144,142,141,139,138,137,135,134,132,131,129,128,127,125,124,122,121,119,118,117,115,114,112,111,109,108,107,105,104,102,101,99,98,97,95,94,92,91,89,88,87,85,84,82,81,79,78,77,75,74,72,71,69,68,67,65,64,62,61,59,58,57,55,54,52,51,49,48,47,45,44,43,41,39,38,37,37,36,36,35,35,34,34,33,33,32,32,31,31,30,30,29,29,28,28,27,27,26,26,25,25,24,24,23,23,22,22,21,21,20,20,19,19,18,18,17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,8,8];d=[250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,249,248,247,246,245,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214,212,210,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180,178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148,146,144,142,141,140,139,139,138,137,136,136,135,134,133,133,132,131,130,130,129,128,127,127,126,125,124,124,123,122,121,121,120,119,118,118,117,116,115,115,114,113,112,112,111,110,109,109,108,107,106,106,105,104,103,103,102,101,100,100,99,98,97,97,96,95,94,94,93,92,91,91,90,89,88,88,87,86,85,85,84,83,82,82,81,80,79,78,77,76,75,75,74,73,72,72,71,70,69,69,68,67,66,66,65,64,63,63,62,61,60,60,59,58,57,57,56,55,54,54,53,52,51,51,50,49,48,48,47,46,45,45,44,43,42,42,41,40,39,39,38,37,36,36,35,34,33,33,32,31,30,30,29,28,27,27,26,25,24,24,23,22,22,22,21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,16,16,16,15,15,15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3];f=[210,204,199,193,188,182,177,171,166,160,155,149,144,138,133,127,122,116,111,105,100,94,89,83,78,72,67,61,56,50,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,55,55,55,55,54,54,54,54,53,53,53,53,52,52,52,52,51,51,51,51,50,50,50,50,49,49,48,47,47,46,45,45,44,43,43,42,41,41,40,39,39,38,37,37,36,35,34,33,32,31,29,28,27,26,25,24,23,21,20,19,18,17,16,15,13,12,11,10,9,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,17,16,16,15,15,15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2];b=e[c]*65536+d[c]*256+f[c];a=b.toString(16).toUpperCase();if(a.length<6){a="0"+a}return"#"+a}function sg_to_plato(a){return((135.997*a-630.272)*a+1111.14)*a-616.868}function plato_to_sg(a){return 1+(a/(258.6-((a/258.2)*227.1)))}function brix_to_sg(a){if(my_brix_correction>0){return plato_to_sg(a/my_brix_correction)}else{return plato_to_sg(a)}}function sg_to_brix(a){return sg_to_plato(a)*my_brix_correction}function estimate_sg(c,e){var a,d,b;a=100*c/e;d=plato_to_sg(a);for(b=0;b<20;b++){if(d>0){a=100*c/(e*d)}d=plato_to_sg(a)}return Round(d,4)}function estimate_fg(f,i,e,h,c,g,j){var b,d,a;if(f>40){f=0}if(i>50){i=0}if((e>0)&&(h>0)){b=e;if(b<2){b=2}if(b>5.5){b=5.5}if(c<60){c=60}if(c>72){c=72}}else{b=3.5;c=67;h=75}if(g<30){g=77}d=0.00825*g+0.00817*b-0.00684*c+0.00026*h-0.00356*i+0.00553*f+0.547;a=Round(1+(1-d)*(j-1),4);console.log("estimate_fg("+f+","+i+","+b+","+h+","+c+","+g+","+j+") AttBeer:"+d+" fg:"+a);return a}function CalcFrac(f,e,d,b){var g,a,i,k,h,c,j;g=Math.pow(10,f-e);a=Math.pow(10,f-d);i=Math.pow(10,f-b);k=1/(1+g+g*a+g*a*i);h=g*k;c=g*a*k;j=g*a*i*k;return h+2*c+3*j}function lintner_to_kolbach(a){return(3.5*a)-16}function kolbach_to_lintner(a){return(a+16)/3.5}; \ No newline at end of file diff -r fbd2a7cecaaa -r dc3e14b976be www/js/global.js --- a/www/js/global.js Thu Sep 05 21:25:13 2019 +0200 +++ b/www/js/global.js Fri Sep 06 13:14:52 2019 +0200 @@ -36,42 +36,42 @@ { id: 9, en: "Taste", nl: "Proeven" }, { id: 10, en: "Ready", nl: "Gereed" }, { id: 11, en: "Closed", nl: "Afgesloten" } -]; -var StageSource = { +], +StageSource = { localdata: StageData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var StageAdapter = new $.jqx.dataAdapter(StageSource); +}, +StageAdapter = new $.jqx.dataAdapter(StageSource), -var MaterialData = [ +MaterialData = [ { id: 0, en: "Stainless Steel", nl: "RVS", sh: 0.11 }, { id: 1, en: "Aluminium", nl: "Aluminium", sh: 0.22 }, { id: 2, en: "Plastics", nl: "Kunststof", sh: 0.46 }, { id: 3, en: "Copper", nl: "Koper", sh: 0.092 } -]; -var MaterialSource = { +], +MaterialSource = { localdata: MaterialData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }, { name: 'sh' }] -}; -var MaterialAdapter = new $.jqx.dataAdapter(MaterialSource); +}, +MaterialAdapter = new $.jqx.dataAdapter(MaterialSource), -var FermentableTypeData = [ +FermentableTypeData = [ { id: 0, en: 'Grain', nl: 'Mout' }, { id: 1, en: 'Sugar', nl: 'Suiker' }, { id: 2, en: 'Extract', nl: 'Vloeibaar extract' }, { id: 3, en: 'Dry extract', nl: 'Droog extract' }, { id: 4, en: 'Adjunct', nl: 'Ongemout graan' } -]; -var FermentableTypeSource = { +], +FermentableTypeSource = { localdata: FermentableTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var FermentableTypeAdapter = new $.jqx.dataAdapter(FermentableTypeSource); +}, +FermentableTypeAdapter = new $.jqx.dataAdapter(FermentableTypeSource), -var GrainTypeData = [ +GrainTypeData = [ { id: 0, en: 'Base', nl: 'Basismout' }, { id: 1, en: 'Roast', nl: 'Geroosterde mout' }, { id: 2, en: 'Crystal', nl: 'Cara- of crystalmout' }, @@ -79,71 +79,71 @@ { id: 4, en: 'Sour malt', nl: 'Zuurmout' }, { id: 5, en: 'Special', nl: 'Speciale mout' }, { id: 6, en: 'No malt', nl: 'Geen mout' } -]; -var GrainTypeSource = { +], +GrainTypeSource = { localdata: GrainTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var GrainTypeAdapter = new $.jqx.dataAdapter(GrainTypeSource); +}, +GrainTypeAdapter = new $.jqx.dataAdapter(GrainTypeSource), -var AddedData = [ +AddedData = [ { id: 0, en: 'Mash', nl: 'Maischen' }, { id: 1, en: 'Boil', nl: 'Koken' }, { id: 2, en: 'Fermentation', nl: 'Vergisten' }, { id: 3, en: 'Lagering', nl: 'Nagisten/lageren' }, { id: 4, en: 'Bottle', nl: 'Bottelen' }, { id: 5, en: 'Kegs', nl: 'Fust' } -]; -var AddedSource = { +], +AddedSource = { localdata: AddedData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var AddedAdapter = new $.jqx.dataAdapter(AddedSource); +}, +AddedAdapter = new $.jqx.dataAdapter(AddedSource), -var HopTypeData = [ +HopTypeData = [ { id: 0, en: 'Bittering', nl: 'Bitterhop' }, { id: 1, en: 'Aroma', nl: 'Aromahop' }, { id: 2, en: 'Both', nl: 'Beide' } -]; -var HopTypeSource = { +], +HopTypeSource = { localdata: HopTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var HopTypeAdapter = new $.jqx.dataAdapter(HopTypeSource); +}, +HopTypeAdapter = new $.jqx.dataAdapter(HopTypeSource), -var HopFormData = [ +HopFormData = [ { id: 0, en: 'Pellet', nl: 'Pellets' }, { id: 1, en: 'Plug', nl: 'Plugs' }, { id: 2, en: 'Leaf', nl: 'Bloemen' }, { id: 3, en: 'Leaf wet', nl: 'Hop nat' }, { id: 4, en: 'Cryo', nl: 'Cryo' } -]; -var HopFormSource = { +], +HopFormSource = { localdata: HopFormData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var HopFormAdapter = new $.jqx.dataAdapter(HopFormSource); +}, +HopFormAdapter = new $.jqx.dataAdapter(HopFormSource), -var HopUseData = [ +HopUseData = [ { id: 0, en: 'Mash', nl: 'Maischhop' }, { id: 1, en: 'First wort', nl: 'First wort hop' }, { id: 2, en: 'Boil', nl: 'Koken' }, { id: 3, en: 'Aroma', nl: 'Vlamuit' }, { id: 4, en: 'Whirlpool', nl: 'Whirlpool' }, { id: 5, en: 'Dry hop', nl: 'Koudhop' } -]; -var HopUseSource = { +], +HopUseSource = { localdata: HopUseData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var HopUseAdapter = new $.jqx.dataAdapter(HopUseSource); +}, +HopUseAdapter = new $.jqx.dataAdapter(HopUseSource), -var YeastTypeData = [ +YeastTypeData = [ { id: 0, en: 'Lager', nl: 'Ondergist' }, { id: 1, en: 'Ale', nl: 'Bovengist' }, { id: 2, en: 'Wheat', nl: 'Tarwegist' }, @@ -154,68 +154,68 @@ // { id: 7, en: 'Mixed', nl: 'Mixed' }, // { id: 8, en: 'Spontaneous', nl: 'Spontaan' }, // { id: 9, en: 'Other', nl: 'Overig' } -]; -var YeastTypeSource = { +], +YeastTypeSource = { localdata: YeastTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var YeastTypeAdapter = new $.jqx.dataAdapter(YeastTypeSource); +}, +YeastTypeAdapter = new $.jqx.dataAdapter(YeastTypeSource), -var YeastFormData = [ +YeastFormData = [ { id: 0, en: 'Liquid', nl: 'Vloeibaar', cells: 100000000000 }, { id: 1, en: 'Dry', nl: 'Korrel', cells: 15000000000 }, { id: 2, en: 'Slant', nl: 'Schuine buis', cells: 1700000000 }, { id: 3, en: 'Culture', nl: 'Slurry', cells: 1700000000 }, { id: 4, en: 'Frozen', nl: 'Ingevroren', cells: 1700000000 }, { id: 5, en: 'Bottle', nl: 'Depot', cells: 1700000000 } -]; -var YeastFormSource = { +], +YeastFormSource = { localdata: YeastFormData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }, { name: 'cells' }] -}; -var YeastFormAdapter = new $.jqx.dataAdapter(YeastFormSource); +}, +YeastFormAdapter = new $.jqx.dataAdapter(YeastFormSource), -var YeastUseData = [ +YeastUseData = [ { id: 0, en: 'Primary', nl: 'Hoofdgisting' }, { id: 1, en: 'Secondary', nl: 'Nagisting' }, { id: 2, en: 'Tertiary', nl: 'Lagering' }, { id: 3, en: 'Bottle', nl: 'Bottelen' } -]; -var YeastUseSource = { +], +YeastUseSource = { localdata: YeastUseData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }, { name: 'cells' }] -}; -var YeastUseAdapter = new $.jqx.dataAdapter(YeastUseSource); +}, +YeastUseAdapter = new $.jqx.dataAdapter(YeastUseSource), -var FlocculationData = [ +FlocculationData = [ { id: 0, en: 'Low', nl: 'Laag' }, { id: 1, en: 'Medium', nl: 'Medium' }, { id: 2, en: 'High', nl: 'Hoog' }, { id: 3, en: 'Very high', nl: 'Zeer hoog' } -]; -var FlocculationSource = { +], +FlocculationSource = { localdata: FlocculationData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var FlocculationAdapter = new $.jqx.dataAdapter(FlocculationSource); +}, +FlocculationAdapter = new $.jqx.dataAdapter(FlocculationSource), -var StarterTypeData = [ +StarterTypeData = [ { id: 0, en: 'Stirred', nl: 'Geroerd' }, { id: 1, en: 'Shaken', nl: 'Geschud' }, { id: 2, en: 'Simple', nl: 'Simpel' } -]; -var StarterTypeSource = { +], +StarterTypeSource = { localdata: StarterTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var StarterTypeAdapter = new $.jqx.dataAdapter(StarterTypeSource); +}, +StarterTypeAdapter = new $.jqx.dataAdapter(StarterTypeSource), -var MiscTypeData = [ +MiscTypeData = [ { id: 0, en: 'Spice', nl: 'Specerij' }, { id: 1, en: 'Herb', nl: 'Kruid' }, { id: 2, en: 'Flavor', nl: 'Smaakstof' }, @@ -223,198 +223,198 @@ { id: 4, en: 'Water agent', nl: 'Brouwzout' }, { id: 5, en: 'Yeast nutrient', nl: 'Gistvoeding' }, { id: 6, en: 'Other', nl: 'Overig' } -]; -var MiscTypeSource = { +], +MiscTypeSource = { localdata: MiscTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var MiscTypeAdapter = new $.jqx.dataAdapter(MiscTypeSource); +}, +MiscTypeAdapter = new $.jqx.dataAdapter(MiscTypeSource), -var MiscUseData = [ +MiscUseData = [ { id: 0, en: 'Starter', nl: 'Starter' }, { id: 1, en: 'Mash', nl: 'Maischen' }, { id: 2, en: 'Boil', nl: 'Koken' }, { id: 3, en: 'Primary', nl: 'Hoofdvergisting' }, { id: 4, en: 'Secondary', nl: 'Nagisting/lagering' }, { id: 5, en: 'Bottling', nl: 'Bottelen' } -]; -var MiscUseSource = { +], +MiscUseSource = { localdata: MiscUseData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var MiscUseAdapter = new $.jqx.dataAdapter(MiscUseSource); +}, +MiscUseAdapter = new $.jqx.dataAdapter(MiscUseSource), -var StyleTypeData = [ +StyleTypeData = [ { id: 0, en: 'Lager', nl: 'Ondergistend bier' }, { id: 1, en: 'Ale', nl: 'Bovengistend bier' }, { id: 2, en: 'Mead', nl: 'Mede' }, { id: 3, en: 'Wheat', nl: 'Tarwebier' }, { id: 4, en: 'Mixed', nl: 'Gemengd' }, { id: 5, en: 'Cider', nl: 'Cider' } -]; -var StyleTypeSource = { +], +StyleTypeSource = { localdata: StyleTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var StyleTypeAdapter = new $.jqx.dataAdapter(StyleTypeSource); +}, +StyleTypeAdapter = new $.jqx.dataAdapter(StyleTypeSource), -var MashStepTypeData = [ +MashStepTypeData = [ { id: 0, en: 'Infusion', nl: 'Infusie' }, { id: 1, en: 'Temperature', nl: 'Verwarming' }, { id: 2, en: 'Decoction', nl: 'Decoctie' } -]; -var MashStepTypeSource = { +], +MashStepTypeSource = { localdata: MashStepTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var MashStepTypeAdapter = new $.jqx.dataAdapter(MashStepTypeSource); +}, +MashStepTypeAdapter = new $.jqx.dataAdapter(MashStepTypeSource), -var RecipeTypeData = [ +RecipeTypeData = [ { id: 0, en: 'Extract', nl: 'Extract' }, { id: 1, en: 'Partial Mash', nl: 'Deelmaisch' }, { id: 2, en: 'All Grain', nl: 'Mout' } -]; -var RecipeTypeSource = { +], +RecipeTypeSource = { localdata: RecipeTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var RecipeTypeAdapter = new $.jqx.dataAdapter(RecipeTypeSource); +}, +RecipeTypeAdapter = new $.jqx.dataAdapter(RecipeTypeSource), -var IBUmethodData = [ +IBUmethodData = [ { id: 0, en: 'Tinseth', nl: 'Tinseth' }, { id: 1, en: 'Rager', nl: 'Rager' }, { id: 2, en: 'Daniels', nl: 'Daniels' } // { id: 3, en: 'Garetz', nl: 'Garetz' }, // Not yet supported. // { id: 4, en: 'Mosher', nl: 'Mosher' }, // { id: 5, en: 'Noonan', nl: 'Noonan' } -]; -var IBUmethodSource = { +], +IBUmethodSource = { localdata: IBUmethodData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var IBUmethodAdapter = new $.jqx.dataAdapter(IBUmethodSource); +}, +IBUmethodAdapter = new $.jqx.dataAdapter(IBUmethodSource), -var ColorMethodData = [ +ColorMethodData = [ { id: 0, en: 'Morey', nl: 'Morey' }, { id: 1, en: 'Mosher', nl: 'Mosher' }, { id: 2, en: 'Daniels', nl: 'Daniels' }, { id: 3, en: 'Halberstadt', nl: 'Halberstadt' }, { id: 4, en: 'Naudts', nl: 'Naudts' } -]; -var ColorMethodSource = { +], +ColorMethodSource = { localdata: ColorMethodData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var ColorMethodAdapter = new $.jqx.dataAdapter(ColorMethodSource); +}, +ColorMethodAdapter = new $.jqx.dataAdapter(ColorMethodSource), -var CoolingTypeData = [ +CoolingTypeData = [ { id: 0, en: '-', nl: '-' }, { id: 1, en: 'Emersion chiller', nl: 'Dompelkoeler' }, { id: 2, en: 'Counterflow chiller', nl: 'Tegenstroomkoeler' }, { id: 3, en: 'Au bain marie', nl: 'Au bain marie' }, { id: 4, en: 'Natural', nl: 'Laten afkoelen' } -]; -var CoolingTypeSource = { +], +CoolingTypeSource = { localdata: CoolingTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var CoolingTypeAdapter = new $.jqx.dataAdapter(CoolingTypeSource); +}, +CoolingTypeAdapter = new $.jqx.dataAdapter(CoolingTypeSource), -var AerationTypeData = [ +AerationTypeData = [ { id: 0, en: 'None', nl: 'Geen' }, { id: 1, en: 'Air', nl: 'Lucht' }, { id: 2, en: 'Oxygen', nl: 'Zuurstof' } -]; -var AerationTypeSource = { +], +AerationTypeSource = { localdata: AerationTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var AerationTypeAdapter = new $.jqx.dataAdapter(AerationTypeSource); +}, +AerationTypeAdapter = new $.jqx.dataAdapter(AerationTypeSource), -var AcidTypeData = [ +AcidTypeData = [ { id: 0, en: 'Lactic', nl: 'Melkzuur' }, { id: 1, en: 'Hydrochloric', nl: 'Zoutzuur' }, { id: 2, en: 'Phosphoric', nl: 'Fosforzuur' }, { id: 3, en: 'Sulfuric', nl: 'Zwavelzuur' } -]; -var AcidTypeSource = { +], +AcidTypeSource = { localdata: AcidTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var AcidTypeAdapter = new $.jqx.dataAdapter(AcidTypeSource); +}, +AcidTypeAdapter = new $.jqx.dataAdapter(AcidTypeSource), -var BaseTypeData = [ +BaseTypeData = [ { id: 0, en: 'Sodiumbicarbonate', nl: 'NaHCO3' }, { id: 1, en: 'Sodiumcarbonate', nl: 'Na2CO3' }, { id: 2, en: 'Calciumcarbonate', nl: 'CaCO3' }, { id: 3, en: 'Calciumhydroxide', nl: 'Ca(OH)2' } -]; -var BaseTypeSource = { +], +BaseTypeSource = { localdata: BaseTypeData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var BaseTypeAdapter = new $.jqx.dataAdapter(BaseTypeSource); +}, +BaseTypeAdapter = new $.jqx.dataAdapter(BaseTypeSource), -var SpargeSourceData = [ +SpargeSourceData = [ { id: 0, en: 'Source 1', nl: 'Bron 1' }, { id: 1, en: 'Source 2', nl: 'Bron 2' }, { id: 2, en: 'Mixed', nl: 'Gemengd' } -]; -var SpargeSourceSource = { +], +SpargeSourceSource = { localdata: SpargeSourceData, datatype: "array", datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] -}; -var SpargeSourceAdapter = new $.jqx.dataAdapter(SpargeSourceSource); +}, +SpargeSourceAdapter = new $.jqx.dataAdapter(SpargeSourceSource), // options for editors -var Show1wat = { inputMode: 'simple', theme: theme, width: 74, height: 23, decimalDigits: 1, readOnly: true }; -var Show2wat = { inputMode: 'simple', theme: theme, width: 74, height: 23, decimalDigits: 2, readOnly: true }; -var Show3wat = { inputMode: 'simple', theme: theme, width: 74, height: 23, decimalDigits: 3, readOnly: true }; -var Smal0dec = { inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 0, readOnly: true }; -var Smal1dec = { inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }; -var Show0dec = { inputMode: 'simple', theme: theme, width: 90, height: 23, readOnly: true, decimalDigits: 0 }; -var Show1dec = { inputMode: 'simple', theme: theme, width: 90, height: 23, readOnly: true, decimalDigits: 1 }; -var Show2dec = { inputMode: 'simple', theme: theme, width: 90, height: 23, readOnly: true, decimalDigits: 2 }; -var Show3dec = { inputMode: 'simple', theme: theme, width: 90, height: 23, readOnly: true, decimalDigits: 3 }; -var SGopts = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0.990, max: 1.199, decimalDigits: 3, spinButtons: true }; -var Spin1dec = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 1, spinButtons: true }; -var Spin2dec = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 2, spinButtons: true }; -var Spin3dec = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 3, spinButtons: true }; -var SpinpH = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 1, max: 14, decimalDigits: 1, spinButtons: true }; -var Spin2pH = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 1, max: 14, decimalDigits: 2, spinButtons: true }; -var YeastT = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, max: 40, decimalDigits: 1, spinButtons: true }; -var PosInt = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 0, spinButtons: true }; -var Perc1dec = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, max: 100, decimalDigits: 1, spinButtons: true }; -var Perc0 = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, max: 100, decimalDigits: 0, spinButtons: true }; -var Dateopts = { +Show1wat = { inputMode: 'simple', theme: theme, width: 74, height: 23, decimalDigits: 1, readOnly: true }, +Show2wat = { inputMode: 'simple', theme: theme, width: 74, height: 23, decimalDigits: 2, readOnly: true }, +Show3wat = { inputMode: 'simple', theme: theme, width: 74, height: 23, decimalDigits: 3, readOnly: true }, +Smal0dec = { inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 0, readOnly: true }, +Smal1dec = { inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }, +Show0dec = { inputMode: 'simple', theme: theme, width: 90, height: 23, readOnly: true, decimalDigits: 0 }, +Show1dec = { inputMode: 'simple', theme: theme, width: 90, height: 23, readOnly: true, decimalDigits: 1 }, +Show2dec = { inputMode: 'simple', theme: theme, width: 90, height: 23, readOnly: true, decimalDigits: 2 }, +Show3dec = { inputMode: 'simple', theme: theme, width: 90, height: 23, readOnly: true, decimalDigits: 3 }, +SGopts = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0.990, max: 1.199, decimalDigits: 3, spinButtons: true }, +Spin1dec = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 1, spinButtons: true }, +Spin2dec = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 2, spinButtons: true }, +Spin3dec = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 3, spinButtons: true }, +SpinpH = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 1, max: 14, decimalDigits: 1, spinButtons: true }, +Spin2pH = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 1, max: 14, decimalDigits: 2, spinButtons: true }, +YeastT = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, max: 40, decimalDigits: 1, spinButtons: true }, +PosInt = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 0, spinButtons: true }, +Perc1dec = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, max: 100, decimalDigits: 1, spinButtons: true }, +Perc0 = { inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, max: 100, decimalDigits: 0, spinButtons: true }, +Dateopts = { theme: theme, width: 150, height: 23, allowNullDate: true, todayString: 'Vandaag', clearString: 'Wissen', showFooter: true, formatString: 'yyyy-MM-dd', enableBrowserBoundsDetection: true -}; -var DateTimeopts = { +}, +DateTimeopts = { theme: theme, width: 230, height: 23, allowNullDate: true, todayString: 'Vandaag', clearString: 'Wissen', showFooter: true, formatString: 'yyyy-MM-dd HH:mm:ss', enableBrowserBoundsDetection: true, showTimeButton: true -}; +}, -var sugardensity = 1.611; //kg/l in solution +sugardensity = 1.611, //kg/l in solution // Styles dropdown list -var stylesUrl = "includes/db_profile_styles.php"; -var stylesSource = { +stylesUrl = "includes/db_profile_styles.php", +stylesSource = { datatype: "json", datafields: [ { name: 'record', type: 'number' }, @@ -442,12 +442,12 @@ { name: 'examples', type: 'string' } ], url: stylesUrl -}; -var styleslist = new $.jqx.dataAdapter(stylesSource); +}, +styleslist = new $.jqx.dataAdapter(stylesSource), // Equipemnt dropdown list -var equipmentUrl = "includes/db_inventory_equipments.php"; -var equipmentSource = { +equipmentUrl = "includes/db_inventory_equipments.php", +equipmentSource = { datatype: "json", datafields: [ { name: 'name', type: 'string' }, @@ -476,11 +476,11 @@ { name: 'efficiency', type: 'float' } ], url: equipmentUrl -}; -var equipmentlist = new $.jqx.dataAdapter(equipmentSource); +}, +equipmentlist = new $.jqx.dataAdapter(equipmentSource), // dropdownlist datasource from inventory_fermentables -var fermentableInvSource = { +fermentableInvSource = { datatype: "json", datafields: [ { name: 'record', type: 'number' }, @@ -505,13 +505,13 @@ { name: 'cost', type: 'float' } ], url: "getfermentablesources.php" -}; -var fermentableinstock = false; -var fermentablelist = new $.jqx.dataAdapter(fermentableInvSource, { +}, +fermentableinstock = false, +fermentablelist = new $.jqx.dataAdapter(fermentableInvSource, { beforeLoadComplete: function (records) { - var data = new Array(); - for (var i = 0; i < records.length; i++) { - var row = records[i]; + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; if (row.inventory || ! fermentableinstock) data.push(row); } @@ -520,12 +520,12 @@ loadError: function(jqXHR, status, error) { console.log(status + ' ' + error); }, -}); -var fermentablesugars = new $.jqx.dataAdapter(fermentableInvSource, { +}), +fermentablesugars = new $.jqx.dataAdapter(fermentableInvSource, { beforeLoadComplete: function (records) { - var data = new Array(); - for (var i = 0; i < records.length; i++) { - var row = records[i]; + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; if (row.type == 1 || row.type == 3) // Sugars or dry extract data.push(row); } @@ -534,10 +534,10 @@ loadError: function(jqXHR, status, error) { console.log(status + ' ' + error); }, -}); +}), // dropdownlist datasource from inventory_hops -var hopInvSource = { +hopInvSource = { datatype: "json", datafields: [ { name: 'record', type: 'number' }, @@ -558,13 +558,13 @@ { name: 'cost', type: 'float' } ], url: "gethopsources.php" -}; -var hopinstock = false; -var hoplist = new $.jqx.dataAdapter(hopInvSource, { +}, +hopinstock = false, +hoplist = new $.jqx.dataAdapter(hopInvSource, { beforeLoadComplete: function (records) { - var data = new Array(); - for (var i = 0; i < records.length; i++) { - var row = records[i]; + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; if (row.inventory || ! hopinstock) data.push(row); } @@ -573,10 +573,10 @@ loadError: function(jqXHR, status, error) { console.log(status + ' ' + error); }, -}); +}), // dropdownlist datasource from inventory_miscs -var miscInvSource = { +miscInvSource = { datatype: "json", datafields: [ { name: 'record', type: 'number' }, @@ -589,13 +589,13 @@ { name: 'cost', type: 'float' } ], url: "getmiscsources.php" -}; -var miscinstock = false; -var misclist = new $.jqx.dataAdapter(miscInvSource, { +}, +miscinstock = false, +misclist = new $.jqx.dataAdapter(miscInvSource, { beforeLoadComplete: function (records) { - var data = new Array(); - for (var i = 0; i < records.length; i++) { - var row = records[i]; + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; if (row.inventory || ! miscinstock) data.push(row); } @@ -604,10 +604,10 @@ loadError: function(jqXHR, status, error) { console.log(status + ' ' + error); }, -}); +}), // dropdownlist datasource from inventory_yeasts -var yeastInvSource = { +yeastInvSource = { datatype: "json", datafields: [ { name: 'record', type: 'number' }, @@ -626,13 +626,13 @@ { name: 'tolerance', type: 'float' } ], url: "getyeastsources.php" -}; -var yeastinstock = false; -var yeastlist = new $.jqx.dataAdapter(yeastInvSource, { +}, +yeastinstock = false, +yeastlist = new $.jqx.dataAdapter(yeastInvSource, { beforeLoadComplete: function (records) { - var data = new Array(); - for (var i = 0; i < records.length; i++) { - var row = records[i]; + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; if (row.inventory || ! yeastinstock) data.push(row); } @@ -641,10 +641,10 @@ loadError: function(jqXHR, status, error) { console.log(status + ' ' + error); }, -}); +}), // dropdownlist datasource from inventory_waters -var waterInvSource = { +waterInvSource = { datatype: "json", datafields: [ { name: 'record', type: 'number' }, @@ -661,13 +661,14 @@ { name: 'cost', type: 'float' }, ], url: "getwatersources.php" -}; -var waterinstock = false; -var waterlist = new $.jqx.dataAdapter(waterInvSource, { +}, +waterinstock = false, +waterlist = new $.jqx.dataAdapter(waterInvSource, { beforeLoadComplete: function (records) { - var data = new Array(); - for (var i = 0; i < records.length; i++) { - var row = records[i]; + var data, i, row; + data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; if (row.inventory || row.unlimited_stock || ! waterinstock) data.push(row); } @@ -676,10 +677,10 @@ loadError: function(jqXHR, status, error) { console.log(status + ' ' + error); }, -}); +}), // dropdownlist datasource from profile_water -var waterProfileSource = { +waterProfileSource = { datatype: "json", datafields: [ { name: 'record', type: 'number' }, @@ -694,11 +695,11 @@ { name: 'total_alkalinity', type: 'float' }, ], url: "includes/db_profile_water.php" -}; -var waterprofiles = new $.jqx.dataAdapter(waterProfileSource); +}, +waterprofiles = new $.jqx.dataAdapter(waterProfileSource), // dropdownlist datasource from profile_mash -var mashProfileSource = { +mashProfileSource = { datatype: "json", datafields: [ { name: 'record', type: 'number' }, @@ -706,42 +707,24 @@ { name: 'steps', type: 'array' } ], url: "includes/db_profile_mash.php" -}; -var mashlist = new $.jqx.dataAdapter(mashProfileSource); - - - +}, +mashlist = new $.jqx.dataAdapter(mashProfileSource), -$(document).ready(function(){ -$("#jqxMenu").jqxMenu({width:1280,height:'30px',autoOpen:false,clickToOpen:true,theme:theme}); -$("#jqxWidget").css('visibility','visible'); -}); - - - -function Round(n,d){for(var i=0,m=1;i299)i=299; -/* Table copied from Brouwhulp/BrewBuddy */ -var R=[ -250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,//0 -250,250,250,250,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,//2 -234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,//4 -214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,200,199,199,198,198,//6 -197,197,196,196,195,195,194,194,193,193,192,192,192,192,192,192,192,192,192,192,//8 -192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,//10 -192,192,192,192,192,192,192,192,191,190,189,188,187,186,185,184,183,182,181,180,//12 -179,178,177,175,174,172,171,169,168,167,195,164,162,161,159,158,157,155,154,152,//14 -151,149,148,147,145,144,142,141,139,138,137,135,134,132,131,129,128,127,125,124,//16 -122,121,119,118,117,115,114,112,111,109,108,107,105,104,102,101,99,98,97,95,//18 -94,92,91,89,88,87,85,84,82,81,79,78,77,75,74,72,71,69,68,67,//20 -65,64,62,61,59,58,57,55,54,52,51,49,48,47,45,44,43,41,39,38,//22 -37,37,36,36,35,35,34,34,33,33,32,32,31,31,30,30,29,29,28,28,//24 -27,27,26,26,25,25,24,24,23,23,22,22,21,21,20,20,19,19,18,18,//26 -17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,8,8]; -var G=[ -250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250, -250,250,250,250,250,250,249,248,247,246,245,244,242,240,238,236,234,232,230,228, -226,224,222,220,218,216,214,212,210,208,206,204,202,200,198,196,194,192,190,188, -186,184,182,180,178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148, -146,144,142,141,140,139,139,138,137,136,136,135,134,133,133,132,131,130,130,129, -128,127,127,126,125,124,124,123,122,121,121,120,119,118,118,117,116,115,115,114, -113,112,112,111,110,109,109,108,107,106,106,105,104,103,103,102,101,100,100,99, -98,97,97,96,95,94,94,93,92,91,91,90,89,88,88,87,86,85,85,84, -83,82,82,81,80,79,78,77,76,75,75,74,73,72,72,71,70,69,69,68, -67,66,66,65,64,63,63,62,61,60,60,59,58,57,57,56,55,54,54,53, -52,51,51,50,49,48,48,47,46,45,45,44,43,42,42,41,40,39,39,38, -37,36,36,35,34,33,33,32,31,30,30,29,28,27,27,26,25,24,24,23, -22,22,22,21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,16,16, -16,15,15,15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9, -9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3]; -var B=[ -210,204,199,193,188,182,177,171,166,160,155,149,144,138,133,127,122,116,111,105, -100,94,89,83,78,72,67,61,56,50,45,45,45,46,46,46,46,47,47,47, -47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52, -52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,56,56,56, -56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, -56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, -56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, -56,56,56,55,55,55,55,54,54,54,54,53,53,53,53,52,52,52,52,51, -51,51,51,50,50,50,50,49,49,48,47,47,46,45,45,44,43,43,42,41, -41,40,39,39,38,37,37,36,35,34,33,32,31,29,28,27,26,25,24,23, -21,20,19,18,17,16,15,13,12,11,10,9,8,9,9,10,10,11,11,12, -12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22, -21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,17,16,16,15,15, -15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8, -8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2]; -var color=R[i]*65536+G[i]*256+B[i]; -var result=color.toString(16).toUpperCase(); -if(result.length<6)result='0'+result; -return '#'+result; + + var i, R, G, B, color, result; + + i = Math.round(srm * 10); + if (i < 0) + i=0; + if (i > 299) + i=299; + + /* Table copied from Brouwhulp/BrewBuddy */ + R=[ + 250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,//0 + 250,250,250,250,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,//2 + 234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,//4 + 214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,200,199,199,198,198,//6 + 197,197,196,196,195,195,194,194,193,193,192,192,192,192,192,192,192,192,192,192,//8 + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,//10 + 192,192,192,192,192,192,192,192,191,190,189,188,187,186,185,184,183,182,181,180,//12 + 179,178,177,175,174,172,171,169,168,167,195,164,162,161,159,158,157,155,154,152,//14 + 151,149,148,147,145,144,142,141,139,138,137,135,134,132,131,129,128,127,125,124,//16 + 122,121,119,118,117,115,114,112,111,109,108,107,105,104,102,101,99,98,97,95,//18 + 94,92,91,89,88,87,85,84,82,81,79,78,77,75,74,72,71,69,68,67,//20 + 65,64,62,61,59,58,57,55,54,52,51,49,48,47,45,44,43,41,39,38,//22 + 37,37,36,36,35,35,34,34,33,33,32,32,31,31,30,30,29,29,28,28,//24 + 27,27,26,26,25,25,24,24,23,23,22,22,21,21,20,20,19,19,18,18,//26 + 17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,8,8]; + + G=[ + 250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250, + 250,250,250,250,250,250,249,248,247,246,245,244,242,240,238,236,234,232,230,228, + 226,224,222,220,218,216,214,212,210,208,206,204,202,200,198,196,194,192,190,188, + 186,184,182,180,178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148, + 146,144,142,141,140,139,139,138,137,136,136,135,134,133,133,132,131,130,130,129, + 128,127,127,126,125,124,124,123,122,121,121,120,119,118,118,117,116,115,115,114, + 113,112,112,111,110,109,109,108,107,106,106,105,104,103,103,102,101,100,100,99, + 98,97,97,96,95,94,94,93,92,91,91,90,89,88,88,87,86,85,85,84, + 83,82,82,81,80,79,78,77,76,75,75,74,73,72,72,71,70,69,69,68, + 67,66,66,65,64,63,63,62,61,60,60,59,58,57,57,56,55,54,54,53, + 52,51,51,50,49,48,48,47,46,45,45,44,43,42,42,41,40,39,39,38, + 37,36,36,35,34,33,33,32,31,30,30,29,28,27,27,26,25,24,24,23, + 22,22,22,21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,16,16, + 16,15,15,15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9, + 9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3]; + + B=[ + 210,204,199,193,188,182,177,171,166,160,155,149,144,138,133,127,122,116,111,105, + 100,94,89,83,78,72,67,61,56,50,45,45,45,46,46,46,46,47,47,47, + 47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52, + 52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,55,55,55,55,54,54,54,54,53,53,53,53,52,52,52,52,51, + 51,51,51,50,50,50,50,49,49,48,47,47,46,45,45,44,43,43,42,41, + 41,40,39,39,38,37,37,36,35,34,33,32,31,29,28,27,26,25,24,23, + 21,20,19,18,17,16,15,13,12,11,10,9,8,9,9,10,10,11,11,12, + 12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22, + 21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,17,16,16,15,15, + 15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8, + 8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2]; + + color = R[i]*65536 + G[i]*256 + B[i]; + result = color.toString(16).toUpperCase(); + if (result.length < 6) + result = '0'+result; + return '#'+result; } -function sg_to_plato(sg){return ((135.997*sg-630.272)*sg+1111.14)*sg-616.868;} -function plato_to_sg(plato){return 1+(plato/(258.6-((plato/258.2)*227.1)));} -function brix_to_sg(brix){if(my_brix_correction>0)return plato_to_sg(brix/my_brix_correction);else return plato_to_sg(brix);} -function sg_to_brix(sg){return sg_to_plato(sg)*my_brix_correction;} +function sg_to_plato(sg){ + return ((135.997*sg - 630.272) * sg + 1111.14) * sg - 616.868; +} + + + +function plato_to_sg(plato){ + return 1 + (plato / (258.6-((plato/258.2)*227.1))); +} + + + +function brix_to_sg(brix){ + if(my_brix_correction>0) + return plato_to_sg(brix/my_brix_correction); + else + return plato_to_sg(brix); +} + + + +function sg_to_brix(sg){ + return sg_to_plato(sg)*my_brix_correction; +} + + function estimate_sg(sugars,batch_size){ -var plato=100*sugars/batch_size; -var sg=plato_to_sg(plato); -for(var i=0;i<20;i++){if(sg>0)plato=100*sugars/(batch_size*sg);sg=plato_to_sg(plato);} -return Round(sg,4); + + var plato, sg, i; + + plato = 100*sugars / batch_size; + sg = plato_to_sg(plato); + for (i = 0; i < 20; i++) { + if (sg > 0) + plato = 100*sugars / (batch_size*sg); + sg = plato_to_sg(plato); + } + return Round(sg,4); } function estimate_fg(percSugar,percCara,WGratio,TotTme,Temp,attenuation,og){ -var BD; + var BD, AttBeer, fg; -if(percSugar>40)percSugar=0; -if(percCara>50)percCara=0; -if((WGratio>0)&&(TotTme>0)){ -BD=WGratio; -if(BD<2)BD=2; -if(BD>5.5)BD=5.5; -if(Temp<60)Temp=60; -if(Temp>72)Temp=72; -}else{ -BD=3.5; -Temp=67; -TotTme=75; -} -if(attenuation<30)attenuation=77; + if (percSugar > 40) + percSugar = 0; + if (percCara > 50) + percCara = 0; + if ((WGratio > 0) && (TotTme > 0)) { + BD = WGratio; + if(BD < 2) + BD=2; + if(BD > 5.5) + BD=5.5; + if(Temp < 60) + Temp=60; + if(Temp > 72) + Temp=72; + } else { + BD=3.5; + Temp=67; + TotTme=75; + } + if (attenuation < 30) + attenuation=77; -// 0.00825 Attenuation factor yeast -// 0.00817 Attenuation factor water/grain ration -// -0.00684 Attenuation factor mash temperature -// 0.00026 Attenuation factor total mash time (at some places this is 0.0026 this is wrong!) -// -0.00356 Attenuation factor percentage crystal malt -// 0.00553 Attenuation factor percentage simple sugars -// 0.547 Attenuation factor constant -var AttBeer=0.00825*attenuation+0.00817*BD-0.00684*Temp+0.00026*TotTme-0.00356*percCara+0.00553*percSugar+0.547; -var fg=Round(1+(1-AttBeer)*(og-1),4); + // 0.00825 Attenuation factor yeast + // 0.00817 Attenuation factor water/grain ration + // -0.00684 Attenuation factor mash temperature + // 0.00026 Attenuation factor total mash time (at some places this is 0.0026 this is wrong!) + // -0.00356 Attenuation factor percentage crystal malt + // 0.00553 Attenuation factor percentage simple sugars + // 0.547 Attenuation factor constant + AttBeer = 0.00825*attenuation + 0.00817*BD - 0.00684*Temp + 0.00026*TotTme - 0.00356*percCara + 0.00553*percSugar + 0.547; + fg = Round(1 + (1 - AttBeer) * (og - 1), 4); -console.log("estimate_fg("+percSugar+","+percCara+","+BD+","+TotTme+","+Temp+","+attenuation+","+og+") AttBeer:"+AttBeer+" fg:"+fg); -return fg; + console.log("estimate_fg("+percSugar+","+percCara+","+BD+","+TotTme+","+Temp+","+attenuation+","+og+") AttBeer:"+AttBeer+" fg:"+fg); + return fg; } function CalcFrac(TpH, pK1, pK2, pK3) { - var r1d = Math.pow(10, TpH - pK1); - var r2d = Math.pow(10, TpH - pK2); - var r3d = Math.pow(10, TpH - pK3); - var dd = 1/(1 + r1d + r1d*r2d + r1d*r2d*r3d); - var f1d = dd; - var f2d = r1d*dd; - var f3d = r1d*r2d*dd; - var f4d = r1d*r2d*r3d*dd; + var r1d, r2d, r3d, dd, f2d, f3d, f4d; + + r1d = Math.pow(10, TpH - pK1); + r2d = Math.pow(10, TpH - pK2); + r3d = Math.pow(10, TpH - pK3); + dd = 1/(1 + r1d + r1d*r2d + r1d*r2d*r3d); + f2d = r1d*dd; + f3d = r1d*r2d*dd; + f4d = r1d*r2d*r3d*dd; return f2d + 2*f3d + 3*f4d; } + function lintner_to_kolbach(lintner) { return (3.5 * lintner) - 16;