# HG changeset patch # User Michiel Broek # Date 1568113818 -7200 # Node ID c34d71572023bed2f200dadbe7ca735a360f7195 # Parent 7b7df475e67d14b09866711667b7d93153a25057 code cleanup checked bu gjslint diff -r 7b7df475e67d -r c34d71572023 www/js/global-min.js --- a/www/js/global-min.js Mon Sep 09 20:03:50 2019 +0200 +++ b/www/js/global-min.js Tue Sep 10 13:10:18 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"}],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 +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,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:"includes/db_profile_styles.php"},styleslist=new $.jqx.dataAdapter(stylesSource),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:"includes/db_inventory_equipments.php"},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 7b7df475e67d -r c34d71572023 www/js/global.js --- a/www/js/global.js Mon Sep 09 20:03:50 2019 +0200 +++ b/www/js/global.js Tue Sep 10 13:10:18 2019 +0200 @@ -24,689 +24,687 @@ // dropdownlists arrays 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" } + { 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' }] + 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 } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } -// { id: 5, en: 'Brett', nl: 'Brett' }, -// { id: 6, en: 'Kveik', nl: 'Kveik' }, -// { id: 7, en: 'Mixed', nl: 'Mixed' }, -// { id: 8, en: 'Spontaneous', nl: 'Spontaan' }, -// { id: 9, en: 'Other', nl: 'Overig' } + { 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' } +// { id: 5, en: 'Brett', nl: 'Brett' }, +// { id: 6, en: 'Kveik', nl: 'Kveik' }, +// { id: 7, en: 'Mixed', nl: 'Mixed' }, +// { id: 8, en: 'Spontaneous', nl: 'Spontaan' }, +// { id: 9, en: 'Other', nl: 'Overig' } ], YeastTypeSource = { - localdata: YeastTypeData, - datatype: "array", - datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] + 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 } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } -// { id: 3, en: 'Garetz', nl: 'Garetz' }, // Not yet supported. -// { id: 4, en: 'Mosher', nl: 'Mosher' }, -// { id: 5, en: 'Noonan', nl: 'Noonan' } + { 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' } ], IBUmethodSource = { - localdata: IBUmethodData, - datatype: "array", - datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + 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' } + { 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' }] + localdata: SpargeSourceData, + datatype: 'array', + datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] }, SpargeSourceAdapter = new $.jqx.dataAdapter(SpargeSourceSource), // options for editors -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 }, +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 }, + 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 }, + 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 + 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 + 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, //kg/l in solution // Styles dropdown list -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 + 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: 'includes/db_profile_styles.php' }, styleslist = new $.jqx.dataAdapter(stylesSource), // Equipemnt dropdown list -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 + 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: 'includes/db_inventory_equipments.php' }, equipmentlist = new $.jqx.dataAdapter(equipmentSource), // dropdownlist datasource from inventory_fermentables 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" + 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 (records) { - var row, i, data = new Array(); - for (i = 0; i < records.length; i++) { - row = records[i]; - if (row.inventory || ! fermentableinstock) - data.push(row); - } - return data; - }, - loadError: function(jqXHR, status, error) { - console.log(status + ' ' + error); - }, + beforeLoadComplete: function(records) { + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; + if (row.inventory || ! fermentableinstock) + data.push(row); + } + return data; + }, + loadError: function(jqXHR, status, error) { + console.log(status + ' ' + error); + }, }), fermentablesugars = new $.jqx.dataAdapter(fermentableInvSource, { - beforeLoadComplete: function (records) { - 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); - } - return data; - }, - loadError: function(jqXHR, status, error) { - console.log(status + ' ' + error); - }, + beforeLoadComplete: function(records) { + 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); + } + return data; + }, + loadError: function(jqXHR, status, error) { + console.log(status + ' ' + error); + }, }), // dropdownlist datasource from inventory_hops hopInvSource = { - datatype: "json", - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'origin', type: 'string' }, - { name: 'type', type: 'int' }, - { name: 'alpha', type: 'float' }, - { name: 'beta', type: 'float' }, - { name: 'humulene', type: 'float' }, - { name: 'caryophyllene', type: 'float' }, - { name: 'cohumulone', type: 'float' }, - { name: 'myrcene', type: 'float' }, - { name: 'hsi', type: 'float' }, - { name: 'useat', type: 'int' }, - { name: 'form', type: 'int' }, - { name: 'total_oil', type: 'float' }, - { name: 'inventory', type: 'float' }, - { name: 'cost', type: 'float' } - ], - url: "gethopsources.php" + datatype: 'json', + datafields: [ + { name: 'record', type: 'number' }, + { name: 'name', type: 'string' }, + { name: 'origin', type: 'string' }, + { name: 'type', type: 'int' }, + { name: 'alpha', type: 'float' }, + { name: 'beta', type: 'float' }, + { name: 'humulene', type: 'float' }, + { name: 'caryophyllene', type: 'float' }, + { name: 'cohumulone', type: 'float' }, + { name: 'myrcene', type: 'float' }, + { name: 'hsi', type: 'float' }, + { name: 'useat', type: 'int' }, + { name: 'form', type: 'int' }, + { name: 'total_oil', type: 'float' }, + { name: 'inventory', type: 'float' }, + { name: 'cost', type: 'float' } + ], + url: 'gethopsources.php' }, hopinstock = false, hoplist = new $.jqx.dataAdapter(hopInvSource, { - beforeLoadComplete: function (records) { - var row, i, data = new Array(); - for (i = 0; i < records.length; i++) { - row = records[i]; - if (row.inventory || ! hopinstock) - data.push(row); - } - return data; - }, - loadError: function(jqXHR, status, error) { - console.log(status + ' ' + error); - }, + beforeLoadComplete: function(records) { + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; + if (row.inventory || ! hopinstock) + data.push(row); + } + return data; + }, + loadError: function(jqXHR, status, error) { + console.log(status + ' ' + error); + }, }), // dropdownlist datasource from inventory_miscs miscInvSource = { - datatype: "json", - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'type', type: 'int' }, - { name: 'use_use', type: 'int' }, - { name: 'amount_is_weight', type: 'int' }, - { name: 'time', type: 'float' }, - { name: 'inventory', type: 'float' }, - { name: 'cost', type: 'float' } - ], - url: "getmiscsources.php" + datatype: 'json', + datafields: [ + { name: 'record', type: 'number' }, + { name: 'name', type: 'string' }, + { name: 'type', type: 'int' }, + { name: 'use_use', type: 'int' }, + { name: 'amount_is_weight', type: 'int' }, + { name: 'time', type: 'float' }, + { name: 'inventory', type: 'float' }, + { name: 'cost', type: 'float' } + ], + url: 'getmiscsources.php' }, miscinstock = false, misclist = new $.jqx.dataAdapter(miscInvSource, { - beforeLoadComplete: function (records) { - var row, i, data = new Array(); - for (i = 0; i < records.length; i++) { - row = records[i]; - if (row.inventory || ! miscinstock) - data.push(row); - } - return data; - }, - loadError: function(jqXHR, status, error) { - console.log(status + ' ' + error); - }, + beforeLoadComplete: function(records) { + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; + if (row.inventory || ! miscinstock) + data.push(row); + } + return data; + }, + loadError: function(jqXHR, status, error) { + console.log(status + ' ' + error); + }, }), // dropdownlist datasource from inventory_yeasts yeastInvSource = { - datatype: "json", - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'type', type: 'int' }, - { name: 'form', type: 'int' }, - { name: 'laboratory', type: 'string' }, - { name: 'product_id', type: 'string' }, - { name: 'min_temperature', type: 'float' }, - { name: 'max_temperature', type: 'float' }, - { name: 'flocculation', type: 'int' }, - { name: 'attenuation', type: 'float' }, - { name: 'cells', type: 'float' }, - { name: 'inventory', type: 'float' }, - { name: 'cost', type: 'float' }, - { name: 'tolerance', type: 'float' } - ], - url: "getyeastsources.php" + datatype: 'json', + datafields: [ + { name: 'record', type: 'number' }, + { name: 'name', type: 'string' }, + { name: 'type', type: 'int' }, + { name: 'form', type: 'int' }, + { name: 'laboratory', type: 'string' }, + { name: 'product_id', type: 'string' }, + { name: 'min_temperature', type: 'float' }, + { name: 'max_temperature', type: 'float' }, + { name: 'flocculation', type: 'int' }, + { name: 'attenuation', type: 'float' }, + { name: 'cells', type: 'float' }, + { name: 'inventory', type: 'float' }, + { name: 'cost', type: 'float' }, + { name: 'tolerance', type: 'float' } + ], + url: 'getyeastsources.php' }, yeastinstock = false, yeastlist = new $.jqx.dataAdapter(yeastInvSource, { - beforeLoadComplete: function (records) { - var row, i, data = new Array(); - for (i = 0; i < records.length; i++) { - row = records[i]; - if (row.inventory || ! yeastinstock) - data.push(row); - } - return data; - }, - loadError: function(jqXHR, status, error) { - console.log(status + ' ' + error); - }, + beforeLoadComplete: function(records) { + var row, i, data = new Array(); + for (i = 0; i < records.length; i++) { + row = records[i]; + if (row.inventory || ! yeastinstock) + data.push(row); + } + return data; + }, + loadError: function(jqXHR, status, error) { + console.log(status + ' ' + error); + }, }), // dropdownlist datasource from inventory_waters waterInvSource = { - datatype: "json", - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'unlimited_stock', type: 'int' }, - { name: 'calcium', type: 'float' }, - { name: 'sulfate', type: 'float' }, - { name: 'chloride', type: 'float' }, - { name: 'sodium', type: 'float' }, - { name: 'magnesium', type: 'float' }, - { name: 'ph', type: 'float' }, - { name: 'total_alkalinity', type: 'float' }, - { name: 'inventory', type: 'float' }, - { name: 'cost', type: 'float' }, - ], - url: "getwatersources.php" + datatype: 'json', + datafields: [ + { name: 'record', type: 'number' }, + { name: 'name', type: 'string' }, + { name: 'unlimited_stock', type: 'int' }, + { name: 'calcium', type: 'float' }, + { name: 'sulfate', type: 'float' }, + { name: 'chloride', type: 'float' }, + { name: 'sodium', type: 'float' }, + { name: 'magnesium', type: 'float' }, + { name: 'ph', type: 'float' }, + { name: 'total_alkalinity', type: 'float' }, + { name: 'inventory', type: 'float' }, + { name: 'cost', type: 'float' }, + ], + url: 'getwatersources.php' }, waterinstock = false, waterlist = new $.jqx.dataAdapter(waterInvSource, { - beforeLoadComplete: function (records) { - 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); - } - return data; - }, - loadError: function(jqXHR, status, error) { - console.log(status + ' ' + error); - }, + beforeLoadComplete: function(records) { + 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); + } + return data; + }, + loadError: function(jqXHR, status, error) { + console.log(status + ' ' + error); + }, }), // dropdownlist datasource from profile_water waterProfileSource = { - datatype: "json", - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'calcium', type: 'float' }, - { name: 'bicarbonate', type: 'float' }, - { name: 'sulfate', type: 'float' }, - { name: 'chloride', type: 'float' }, - { name: 'sodium', type: 'float' }, - { name: 'magnesium', type: 'float' }, - { name: 'ph', type: 'float' }, - { name: 'total_alkalinity', type: 'float' }, - ], - url: "includes/db_profile_water.php" + datatype: 'json', + datafields: [ + { name: 'record', type: 'number' }, + { name: 'name', type: 'string' }, + { name: 'calcium', type: 'float' }, + { name: 'bicarbonate', type: 'float' }, + { name: 'sulfate', type: 'float' }, + { name: 'chloride', type: 'float' }, + { name: 'sodium', type: 'float' }, + { name: 'magnesium', type: 'float' }, + { name: 'ph', type: 'float' }, + { name: 'total_alkalinity', type: 'float' }, + ], + url: 'includes/db_profile_water.php' }, waterprofiles = new $.jqx.dataAdapter(waterProfileSource), // dropdownlist datasource from profile_mash mashProfileSource = { - datatype: "json", - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'steps', type: 'array' } - ], - url: "includes/db_profile_mash.php" + datatype: 'json', + datafields: [ + { name: 'record', type: 'number' }, + { name: 'name', type: 'string' }, + { name: 'steps', type: 'array' } + ], + url: 'includes/db_profile_mash.php' }, mashlist = new $.jqx.dataAdapter(mashProfileSource), @@ -715,130 +713,126 @@ /* * From "Rekenen aan bier" by Hans Halberstadt. */ -K1s = 0.384, K1a = -0.177, K1e = 0.241, K1g = 0.247, Ks = 0.1415, Ka1 = 0.058, Ka2 = 0.078, Ke = 0.174, Kg = 0.109; +K1s = 0.384, K1a = -0.177, K1e = 0.241, K1g = 0.247, Ks = 0.1415, Ka1 = 0.058, Ka2 = 0.078, Ke = 0.174, Kg = 0.109; // =E2/E6+(E3/E6)*$B$24/$B$23+(E3/E6)*(E3/E6)*$B$25/$B$23+E4/E6*$B$26/$B$23+E5/E6*$B$27/$B$23 // For Brix function A(sugar, volume, alc, eiwit, glycerol) { - var vol, A; + var vol, A; - vol = volume * 1000; - A = sugar/vol + (alc/vol)*Ka1/Ks + (alc/vol)*(alc/vol) * Ka2/Ks + eiwit/vol * Ke/Ks + glycerol/vol * Kg/Ks; - console.log("A("+sugar+"."+volume+","+alc+","+eiwit+","+glycerol+"):"+A); - return A; + vol = volume * 1000; + A = sugar / vol + (alc / vol) * Ka1 / Ks + (alc / vol) * (alc / vol) * Ka2 / Ks + eiwit / vol * Ke / Ks + glycerol / vol * Kg / Ks; + console.log('A(' + sugar + ',' + volume + ',' + alc + ',' + eiwit + ',' + glycerol + '):' + A); + return A; } // =E2/E6+(E3/E6)*$B$20/$B$19+E4/E6*$B$21/$B$19+E5/E6*$B$22/$B$19 // for Plato function B(sugar, volume, alc, eiwit, glycerol) { - var vol, B; + var vol, B; - vol = volume * 1000; - B = sugar/vol + (alc/vol)*K1a/K1s + eiwit/vol*K1e/K1s + glycerol/vol*K1g/K1s; - console.log("B("+sugar+"."+volume+","+alc+","+eiwit+","+glycerol+"):"+B); - return B; + vol = volume * 1000; + B = sugar / vol + (alc / vol) * K1a / K1s + eiwit / vol * K1e / K1s + glycerol / vol * K1g / K1s; + console.log('B(' + sugar + ',' + volume + ',' + alc + ',' + eiwit + ',' + glycerol + '):' + B); + return B; } -$(document).ready(function(){ +$(document).ready(function() { - $("#jqxMenu").jqxMenu({ - width:1280, - height:'30px', - autoOpen:false, - clickToOpen:true, - theme:theme - }); - $("#jqxWidget").css('visibility','visible'); + $('#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; i 299) - i=299; + i = Math.round(srm * 10); + if (i < 0) + i = 0; + if (i > 299) + i = 299; + + /* Table copied from Brouwhulp/BrewBuddy */ - /* 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]; + 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]; + 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]; + 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; + 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 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 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 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_brix(sg){ - return sg_to_plato(sg)*my_brix_correction; +function estimate_sg(sugars, batch_size) { + + 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_sg(sugars,batch_size){ - - var plato, sg, i; +function estimate_fg(percSugar, percCara, WGratio, TotTme, Temp, attenuation, og) { - 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, AttBeer, fg; + 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 - 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); + // 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, r2d, r3d, dd, f2d, f3d, f4d; + 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; + 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; + return (3.5 * lintner) - 16; } function kolbach_to_lintner(kolbach) { - - return (kolbach + 16) / 3.5; + return (kolbach + 16) / 3.5; }