Sat, 29 Feb 2020 15:42:12 +0100
Version 0.3.29
/***************************************************************************** * Copyright (C) 2018-2020 * * Michiel Broek <mbroek at mbse dot eu> * * This file is part of BMS * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * BrewCloud is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with ThermFerm; see the file COPYING. If not, write to the Free * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *****************************************************************************/ $(document).ready(function() { // Tab 1, base $('#name').jqxTooltip({ content: 'De naam voor dit brouw project.' }); $('#name').jqxInput({ theme: theme, width: 640, height: 23 }); $('#code').jqxTooltip({ content: 'Het unieke code nummer van dit brouw project.' }); $('#code').jqxInput({ theme: theme, width: 100, height: 23 }); $('#notes').jqxTooltip({ content: 'De uitgebreide opmerkingen over dit project.' }); $('#notes').jqxInput({ theme: theme, width: 960, height: 200 }); $('#type').jqxDropDownList({ theme: theme, source: RecipeTypeAdapter, valueMember: 'id', displayMember: 'nl', width: 180, height: 23, autoDropDownHeight: true }); $('#type').jqxDropDownList('selectItem', 2); $('#type').on('select', function(event) { if (event.args) { recipe_type = event.args.index; } }); // Tab 2, style $('#st_name').jqxTooltip({ content: 'De bierstijl naam voor dit recept.'}); $('#st_name').jqxInput({ theme: theme, width: 250, height: 23 }); $('#st_category').jqxTooltip({ content: 'De Amerikaanse bierstijl categorie.'}); $('#st_category').jqxInput({ theme: theme, width: 250, height: 23 }); $('#st_category_number').jqxTooltip({ content: 'De Amerikaanse bierstijl categorie sub nummer.'}); $('#st_category_number').jqxInput({ theme: theme, width: 70, height: 23 }); $('#st_letter').jqxTooltip({ content: 'De bierstijl letter voor dit recept.'}); $('#st_letter').jqxInput({ theme: theme, width: 250, height: 23 }); $('#st_guide').jqxTooltip({ content: 'De bierstijl gids voor dit recept.'}); $('#st_guide').jqxInput({ theme: theme, width: 250, height: 23 }); $('#st_notes').jqxInput({ theme: theme, width: 800, height: 100 }); $('#st_type').jqxTooltip({ content: 'Het bierstijl type.'}); $('#st_type').jqxInput({ theme: theme, width: 250, height: 23 }); $('#st_og_min').jqxTooltip({ content: 'Het minimum begin SG voor deze bierstijl.'}); $('#st_og_min').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 3, readOnly: true }); $('#st_og_max').jqxTooltip({ content: 'Het maximum begin SG voor deze bierstijl.'}); $('#st_og_max').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 3, readOnly: true }); $('#st_fg_min').jqxTooltip({ content: 'Het minimum eind SG voor deze bierstijl.'}); $('#st_fg_min').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 3, readOnly: true }); $('#st_fg_max').jqxTooltip({ content: 'Het maximum eind SG voor deze bierstijl.'}); $('#st_fg_max').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 3, readOnly: true }); $('#st_ibu_min').jqxTooltip({ content: 'De minimum bitterheid voor deze bierstijl.'}); $('#st_ibu_min').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 0, readOnly: true }); $('#st_ibu_max').jqxTooltip({ content: 'De maximum bitterheid voor deze bierstijl.'}); $('#st_ibu_max').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 0, readOnly: true }); $('#st_color_min').jqxTooltip({ content: 'De minimum kleur voor deze bierstijl.'}); $('#st_color_min').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 0, readOnly: true }); $('#st_color_max').jqxTooltip({ content: 'De maximum kleur voor deze bierstijl.'}); $('#st_color_max').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 0, readOnly: true }); $('#st_carb_min').jqxTooltip({ content: 'Het minimum koolzuur volume voor deze bierstijl.'}); $('#st_carb_min').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 1, readOnly: true }); $('#st_carb_max').jqxTooltip({ content: 'Het maximum koolzuur volume voor deze bierstijl.'}); $('#st_carb_max').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 1, readOnly: true }); $('#st_abv_min').jqxTooltip({ content: 'Het minimum alcohol volume % voor deze bierstijl.'}); $('#st_abv_min').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 1, readOnly: true }); $('#st_abv_max').jqxTooltip({ content: 'Het maximum alcohol volume % voor deze bierstijl.'}); $('#st_abv_max').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 1, readOnly: true }); $('#st_profile').jqxInput({ theme: theme, width: 800, height: 48 }); $('#st_ingredients').jqxInput({ theme: theme, width: 800, height: 23 }); $('#st_examples').jqxInput({ theme: theme, width: 800, height: 48 }); $('#styleSelect').jqxDropDownList({ placeHolder: 'Kies bierstijl:', theme: theme, source: styleslist, displayMember: 'name', width: 250, height: 27, dropDownWidth: 500, dropDownHeight: 500, renderer: function(index, label, value) { var datarecord = styleslist.records[index]; return datarecord.style_guide + ' ' + datarecord.style_letter + ' ' + datarecord.name; } }); $('#styleSelect').on('select', function(event) { if (event.args) { var index = event.args.index, datarecord = styleslist.records[index]; $('#st_name').val(datarecord.name); $('#st_category').val(datarecord.category); $('#st_category_number').val(datarecord.category_number); $('#st_letter').val(datarecord.style_letter); $('#st_guide').val(datarecord.style_guide); style_type = datarecord.type; $('#st_type').val(StyleTypeData[datarecord.type].nl); $('#st_og_min').val(datarecord.og_min); $('#st_og_max').val(datarecord.og_max); $('#st_fg_min').val(datarecord.fg_min); $('#st_fg_max').val(datarecord.fg_max); $('#st_ibu_min').val(datarecord.ibu_min); $('#st_ibu_max').val(datarecord.ibu_max); $('#st_color_min').val(datarecord.color_min); $('#st_color_max').val(datarecord.color_max); $('#st_carb_min').val(datarecord.carb_min); $('#st_carb_max').val(datarecord.carb_max); $('#st_abv_min').val(datarecord.abv_min); $('#st_abv_max').val(datarecord.abv_max); $('#st_notes').val(datarecord.notes); $('#st_profile').val(datarecord.profile); $('#st_ingredients').val(datarecord.ingredients); $('#st_examples').val(datarecord.examples); } }); // Tab 3, equipment $('#eq_name').jqxTooltip({ content: 'De naam van deze brouw apparatuur.' }); $('#eq_name').jqxInput({ theme: theme, width: 250, height: 23 }); $('#eq_calc_boil_volume').jqxCheckBox({ theme: theme, width: 120, height: 23, disabled: true }); $('#eq_boil_size').jqxTooltip({ content: 'Normaal kook volume in liters' }); $('#eq_boil_size').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_batch_size').jqxTooltip({ content: 'Berekende batch grootte in liters aan het eind van de kook.' }); $('#eq_batch_size').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_tun_volume').jqxTooltip({ content: 'Maisch ketel volume.' }); $('#eq_tun_volume').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_tun_weight').jqxTooltip({ content: 'Maisch ketel gewicht.' }); $('#eq_tun_weight').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_tun_height').jqxTooltip({ content: 'Maisch ketel hoogte.' }); $('#eq_tun_height').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_tun_material').jqxTooltip({ content: 'Maisch ketel materiaal.' }); $('#eq_tun_material').jqxInput({ theme: theme, width: 180, height: 23 }); $('#eq_tun_specific_heat').jqxTooltip({ content: 'Maisch ketel warmte geleiding.' }); $('#eq_tun_specific_heat').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 3 }); $('#eq_top_up_water').jqxTooltip({ content: 'Extra water in het gistvat.' }); $('#eq_top_up_water').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_trub_chiller_loss').jqxTooltip({ content: 'Standaard verlies bij het overbrengen naar het gistvat.' }); $('#eq_trub_chiller_loss').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_evap_rate').jqxTooltip({ content: 'Verdamping in liters per uur.' }); $('#eq_evap_rate').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 2 }); $('#eq_boil_time').jqxTooltip({ content: 'Normale kooktijd in minuten.' }); $('#eq_boil_time').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 0 }); $('#eq_top_up_kettle').jqxTooltip({ content: 'Extra water toevoegen tijdens de kook.' }); $('#eq_top_up_kettle').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_hop_utilization').jqxTooltip({ content: '100% voor kleine installaties, hoger voor grote brouwerijen.' }); $('#eq_hop_utilization').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 0 }); $('#eq_notes').jqxTooltip({ content: 'Opmerkingen over deze apparatuur.' }); $('#eq_notes').jqxInput({ theme: theme, width: 960, height: 100 }); $('#eq_lauter_volume').jqxTooltip({ content: 'Filterkuip volume.' }); $('#eq_lauter_volume').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_lauter_height').jqxTooltip({ content: 'Filterkuip hoogte.' }); $('#eq_lauter_height').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_lauter_deadspace').jqxTooltip({ content: 'Filterkuip verlies in liters.' }); $('#eq_lauter_deadspace').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_kettle_volume').jqxTooltip({ content: 'Kook ketel volume in liters.' }); $('#eq_kettle_volume').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_kettle_height').jqxTooltip({ content: 'Kook ketel hoogte in cm.' }); $('#eq_kettle_height').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_mash_volume').jqxTooltip({ content: 'Maisch water voor de eerste stap.' }); $('#eq_mash_volume').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_mash_max').jqxTooltip({ content: 'De maximale moutstort in Kg.' }); $('#eq_mash_max').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#eq_efficiency').jqxTooltip({ content: 'Gemiddeld brouwzaal rendement.' }); $('#eq_efficiency').jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); $('#equipmentSelect').jqxDropDownList({ placeHolder: 'Kies apparatuur:', theme: theme, source: equipmentlist, displayMember: 'name', width: 250, height: 27, dropDownWidth: 300, renderer: function(index, label, value) { var datarecord = equipmentlist.records[index]; return datarecord.batch_size + ' liter ' + datarecord.name; } }); $('#equipmentSelect').on('select', function(event) { if (event.args) { var index = event.args.index, datarecord = equipmentlist.records[index]; $('#eq_name').val(datarecord.name); $('#eq_boil_size').val(datarecord.boil_size); $('#eq_batch_size').val(datarecord.batch_size); $('#eq_tun_volume').val(datarecord.tun_volume); $('#eq_tun_weight').val(datarecord.tun_weight); $('#eq_tun_specific_heat').val(datarecord.tun_specific_heat); tun_material = datarecord.tun_material; $('#eq_tun_material').val(MaterialData[datarecord.tun_material].nl); $('#eq_tun_height').val(datarecord.tun_height); $('#eq_top_up_water').val(datarecord.top_up_water); $('#eq_trub_chiller_loss').val(datarecord.trub_chiller_loss); $('#eq_evap_rate').val(datarecord.evap_rate); $('#eq_boil_time').val(datarecord.boil_time); $('#eq_calc_boil_volume').val(datarecord.calc_boil_volume); $('#eq_top_up_kettle').val(datarecord.top_up_kettle); $('#eq_hop_utilization').val(datarecord.hop_utilization); $('#eq_notes').val(datarecord.notes); $('#eq_lauter_volume').val(datarecord.lauter_volume); $('#eq_lauter_height').val(datarecord.lauter_height); $('#eq_lauter_deadspace').val(datarecord.lauter_deadspace); $('#eq_kettle_volume').val(datarecord.kettle_volume); $('#eq_kettle_height').val(datarecord.kettle_height); $('#eq_mash_volume').val(datarecord.mash_volume); $('#eq_mash_max').val(datarecord.mash_max); $('#eq_efficiency').val(datarecord.efficiency); } }); var recipe_type = 2, style_type = 0, tun_material = 0, wizard = (function() { // Creating wizard module //Adding event listeners var _addHandlers = function() { $('#name').on('change', function(event) { wizard.validate(true); }); $('#code').on('change', function(event) { wizard.validate(true); }); $('#type').on('change', function(event) { wizard.validate(true); }); $('#styleSelect').on('change', function(event) { wizard.validate(true); }); $('#equipmentSelect').on('change', function(event) { wizard.validate(true); }); $('#nextButtonCompleted').click(function() { var d = new Date(), m = d.getMonth() + 1, b = d.getFullYear() + '-', newrow, data; if (m < 10) b = b + '0'; b = b + m + '-'; if (d.getDate() < 10) b = b + '0'; b = b + d.getDate(); newrow = { record: -1, name: $('#name').val(), code: $('#code').val(), birth: b, stage: 0, notes: $('#notes').val(), log_brew: 0, log_fermentation: 0, log_ispindel: 0, inventory_reduced: 0, locked: 0, eq_name: $('#eq_name').val(), eq_boil_size: parseFloat($('#eq_boil_size').jqxNumberInput('decimal')), eq_batch_size: parseFloat($('#eq_batch_size').jqxNumberInput('decimal')), eq_tun_volume: parseFloat($('#eq_tun_volume').jqxNumberInput('decimal')), eq_tun_weight: parseFloat($('#eq_tun_weight').jqxNumberInput('decimal')), eq_tun_specific_heat: parseFloat($('#eq_tun_specific_heat').jqxNumberInput('decimal')), eq_tun_material: tun_material, eq_tun_height: parseFloat($('#eq_tun_height').jqxNumberInput('decimal')) / 100, eq_top_up_water: parseFloat($('#eq_top_up_water').jqxNumberInput('decimal')), eq_trub_chiller_loss: parseFloat($('#eq_trub_chiller_loss').jqxNumberInput('decimal')), eq_evap_rate: parseFloat($('#eq_evap_rate').jqxNumberInput('decimal')), eq_boil_time: parseFloat($('#eq_boil_time').jqxNumberInput('decimal')), eq_calc_boil_volume: $('#eq_calc_boil_volume').val(), eq_top_up_kettle: parseFloat($('#eq_top_up_kettle').jqxNumberInput('decimal')), eq_hop_utilization: parseFloat($('#eq_hop_utilization').jqxNumberInput('decimal')), eq_notes: $('#eq_notes').val(), eq_lauter_volume: parseFloat($('#eq_lauter_volume').jqxNumberInput('decimal')), eq_lauter_height: parseFloat($('#eq_lauter_height').jqxNumberInput('decimal')) / 100, eq_lauter_deadspace: parseFloat($('#eq_lauter_deadspace').jqxNumberInput('decimal')), eq_kettle_volume: parseFloat($('#eq_kettle_volume').jqxNumberInput('decimal')), eq_kettle_height: parseFloat($('#eq_kettle_height').jqxNumberInput('decimal')) / 100, eq_mash_volume: parseFloat($('#eq_mash_volume').jqxNumberInput('decimal')), eq_mash_max: parseFloat($('#eq_mash_max').jqxNumberInput('decimal')), eq_efficiency: parseFloat($('#eq_efficiency').jqxNumberInput('decimal')), brew_date_start: '', brew_mash_ph: 0.0, brew_mash_sg: 1.000, brew_mash_efficiency: 0, brew_sparge_ph: 0.0, brew_sparge_temperature: 85, brew_sparge_est: 0, brew_preboil_volume: 0, brew_preboil_sg: 0, brew_preboil_ph: 0.0, brew_preboil_efficiency: 0, brew_aboil_volume: 0, brew_aboil_sg: 0, brew_aboil_ph: 0.0, brew_aboil_efficiency: 0, brew_cooling_method: 0, brew_cooling_time: 0, brew_cooling_to: 20, brew_whirlpool9: 0, brew_whirlpool7: 0, brew_whirlpool6: 0, brew_whirlpool2: 0, brew_fermenter_volume: parseFloat($('#eq_batch_size').jqxNumberInput('decimal')) - parseFloat($('#eq_trub_chiller_loss').jqxNumberInput('decimal')) + parseFloat($('#eq_top_up_water').jqxNumberInput('decimal')), brew_fermenter_extrawater: parseFloat($('#eq_top_up_water').jqxNumberInput('decimal')), brew_fermenter_tcloss: parseFloat($('#eq_trub_chiller_loss').jqxNumberInput('decimal')), brew_aeration_time: 0, brew_aeration_speed: 0, brew_aeration_type: 0, brew_fermenter_sg: 0, brew_fermenter_ibu: 0, brew_fermenter_color: 0, brew_date_end: '', og: 0, fg: 0, primary_start_temp: 0, primary_max_temp: 0, primary_end_temp: 0, primary_end_sg: 0, primary_end_date: '', secondary_temp: 0, secondary_end_date: '', tertiary_temp: 0, package_date: '', package_volume: 0, package_infuse_amount: 0, package_infuse_abv: 0, package_infuse_notes: '', package_abv: 0, package_ph: 0, bottle_amount: 0, bottle_carbonation: 0, bottle_priming_water: 0, bottle_priming_amount: 0, bottle_carbonation_temp: 23, keg_amount: 0, keg_carbonation: 0, keg_priming_water: 0, keg_priming_amount: 0, keg_carbonation_temp: 23, keg_forced_carb: 1, keg_pressure: 0, taste_notes: '', taste_rate: 0, taste_date: '', taste_color: '', taste_transparency: '', taste_head: '', taste_aroma: '', taste_taste: '', taste_mouthfeel: '', taste_aftertaste: '', st_name: $('#st_name').val(), st_letter: $('#st_letter').val(), st_guide: $('#st_guide').val(), st_type: style_type, st_category: $('#st_category').val(), st_category_number: parseFloat($('#st_category_number').jqxNumberInput('decimal')), st_og_min: parseFloat($('#st_og_min').jqxNumberInput('decimal')), st_og_max: parseFloat($('#st_og_max').jqxNumberInput('decimal')), st_fg_min: parseFloat($('#st_fg_min').jqxNumberInput('decimal')), st_fg_max: parseFloat($('#st_fg_max').jqxNumberInput('decimal')), st_ibu_min: parseFloat($('#st_ibu_min').jqxNumberInput('decimal')), st_ibu_max: parseFloat($('#st_ibu_max').jqxNumberInput('decimal')), st_color_min: parseFloat($('#st_color_min').jqxNumberInput('decimal')), st_color_max: parseFloat($('#st_color_max').jqxNumberInput('decimal')), st_carb_min: parseFloat($('#st_carb_min').jqxNumberInput('decimal')), st_carb_max: parseFloat($('#st_carb_max').jqxNumberInput('decimal')), st_abv_min: parseFloat($('#st_abv_min').jqxNumberInput('decimal')), st_abv_max: parseFloat($('#st_abv_max').jqxNumberInput('decimal')), type: recipe_type, batch_size: parseFloat($('#eq_batch_size').jqxNumberInput('decimal')), boil_size: parseFloat($('#eq_boil_size').jqxNumberInput('decimal')), boil_time: parseFloat($('#eq_boil_time').jqxNumberInput('decimal')), efficiency: parseFloat($('#eq_efficiency').jqxNumberInput('decimal')), est_og: 0.000, est_fg: 0.000, est_color: 0, est_abv: 0.0, est_carb: 0.0, color_method: 0, est_ibu: 0, ibu_method: 0, mash_name: '', mash_ph: 5.4, sparge_temp: 85.0, sparge_volume: parseFloat($('#eq_boil_size').jqxNumberInput('decimal')) / 2, sparge_ph: 5.8, sparge_source: 0, sparge_acid_type: 0, sparge_acid_perc: 80, sparge_acid_amount: 0, calc_acid: 1, w1_name: 'Tap water', w1_amount: parseFloat($('#eq_mash_volume').jqxNumberInput('decimal')), w1_calcium: 0, w1_sulfate: 0, w1_chloride: 0, w1_sodium: 0, w1_magnesium: 0, w1_total_alkalinity: 0, w1_ph: 7.0, w1_cost: 0.0, wa_acid_name: 0, // Lactic acid wa_acid_perc: 80, wa_base_name: 0, wg_amount: parseFloat($('#eq_mash_volume').jqxNumberInput('decimal')), wg_calcium: 0, wg_sulfate: 0, wg_chloride: 0, wg_sodium: 0, wg_magnesium: 0, wg_total_alkalinity: 0, wg_ph: 7.0, wb_calcium: 0, wb_sulfate: 0, wb_sodium: 0, wb_chloride: 0, wb_magnesium: 0, wb_total_alkalinity: 0, wb_ph: 0, starter_enable: 0, divide_type: 0, divide_size: 0, divide_factor: 1, divide_parts: 0, divide_part: 0 }; data = 'insert=true&return=' + my_return + '&' + $.param(newrow); $.ajax({ dataType: 'json', url: 'includes/db_product.php', cache: false, data: data, type: 'POST', success: function(data, status, xhr) { window.location.href = my_return; }, error: function(jqXHR, textStatus, errorThrown) { } }); }); $('.nextButton').click(function() { wizard.validate(true); $('#jqxTabs').jqxTabs('next'); }); $('.backButton').click(function() { wizard.validate(true); $('#jqxTabs').jqxTabs('previous'); }); }; return { //Initializing the wizzard - creating all elements, adding event handlers and starting the validation init: function() { $('#jqxTabs').jqxTabs({ theme: theme, height: 630, width: 1280, autoHeight: false, position: 'top', keyboardNavigation: false }); $('#nextButtonBase').jqxButton({ theme: theme, width: 150 }); $('#nextButtonStyle').jqxButton({ theme: theme, width: 150}); $('#backButtonStyle').jqxButton({ theme: theme, template: 'success', width: 150}); $('#nextButtonEq').jqxButton({ theme: theme, width: 150}); $('#backButtonEq').jqxButton({ theme: theme, template: 'success', width: 150}); $('#nextButtonCompleted').jqxButton({ theme: theme, template: 'success', width: 150}); $('#backButtonCompleted').jqxButton({ theme: theme, template: 'success', width: 150}); _addHandlers(); this.validate(); this.showHint('Validation hints.'); }, //Validating all wizard tabs validate: function(notify) { if (!this.firstTab(notify)) { $('#jqxTabs').jqxTabs('disableAt', 1); $('#jqxTabs').jqxTabs('disableAt', 2); $('#jqxTabs').jqxTabs('disableAt', 3); return; } else { $('#jqxTabs').jqxTabs('enableAt', 1); } if (!this.secondTab(notify)) { $('#jqxTabs').jqxTabs('disableAt', 2); $('#jqxTabs').jqxTabs('disableAt', 3); return; } else { $('#jqxTabs').jqxTabs('enableAt', 2); } if (!this.thirdTab(notify)) { $('#jqxTabs').jqxTabs('disableAt', 3); return; } else { $('#jqxTabs').jqxTabs('enableAt', 3); } }, //Displaying message to the user showHint: function(message, selector) { if (typeof selector === 'undefined') { selector = '.hint'; } if (message === '') { message = 'Ok, je mag doorgaan.'; } $(selector).html('<strong>' + message + '</strong>'); }, //Validating the first tab firstTab: function(notify) { var name = $('#name').val(), code = $('#code').val(), message = ''; if (name.length < 3) { message += 'Je moet een brouw project naam invullen. <br />'; } if (code.length < 3) { message += 'Je moet een brouw project code invullen. <br />'; } // Check if code already exists. if (message !== '') { if (notify) { this.showHint(message, '#hintBase'); } return false; } this.showHint('Ok, je mag doorgaan.', '#hintBase'); $('#nextButtonBase').jqxButton({ template: 'success' }); return true; }, //Validating the second tab secondTab: function(notify) { var stylesel = $('#styleSelect').val(), message = ''; if (stylesel.length < 3) { message += 'Je moet een bierstijl kiezen. <br />'; } if (message !== '') { if (notify) { this.showHint(message, '#hintStyle'); } return false; } this.showHint('Ok, je mag doorgaan.', '#hintStyle'); $('#nextButtonStyle').jqxButton({ template: 'success' }); return true; }, //Validating the third tab thirdTab: function(notify) { var equipsel = $('#equipmentSelect').val(), message = ''; if (equipsel.length < 3) { message += 'Je moet een brouw installatie kiezen. <br />'; } if (message !== '') { if (notify) { this.showHint(message, '#hintEq'); } return false; } this.showHint('Ok, je mag doorgaan.', '#hintEq'); $('#nextButtonEq').jqxButton({ template: 'success' }); return true; } }; } ()); //Initializing the wizard wizard.init(); });