Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 12 volt div
- var input_12_volt = $('.12_volt_wrapper').html();
- var count_12_volt = 1;
- // Initialise remove button to hidden
- var remove_hidden_12 = true;
- $('.remove-12').css("display", "none");
- // 240 volt div
- var input_240_volt = $('.240_volt_wrapper').html();
- var count_240_volt = 1;
- // Initialise remove button to hidden
- var remove_hidden_240 = true;
- $('.remove-240').css("display", "none");
- // usb appliance div variables
- var input_USB = $('.USB_appliance_wrapper').html();
- var count_USB = 1;
- // Initialise remove button to hidden
- var remove_hidden_USB = true;
- $('.remove-USB').css("display", "none");
- /**
- * Master Button Controls
- */
- // clear inputs
- $('#clear_button').on('click', function() {
- $('#input_batterySize_AH').val(0);
- $('#input_batterySize_WH').val(0);
- $('#dropdown_batterySize').val("");
- $('#input_solarSize').val(0);
- $('#input_sunlight').val(0);
- $('#dropdown_sunlight').val("");
- $(document).find('input[name="input_12_volt"]').val(0);
- $(document).find('input[name="input_12_volt_runtime"]').val(0);
- $(document).find('input[name="input_240_volt"]').val(0);
- $(document).find('input[name="input_240_volt_runtime"]').val(0);
- $(document).find('input[name="input_USB"]').val(0);
- $(document).find('input[name="input_USB_runtime"]').val(0);
- update();
- });
- // scroll to top of page
- $('#scroll_to_top').on('click', function() {
- $(document).scrollTop(0);
- });
- /**
- * 12 Volt Appliance Button Controls
- */
- // add div [+]
- $('#row_12_volt_controls .btn-success').on('click', function() {
- $( input_12_volt ).appendTo( ".12_volt_wrapper" );
- count_12_volt++;
- if (remove_hidden_12) {
- remove_hidden_12 = false;
- $(document).find(".remove-12").css("display", "block");
- }
- });
- // remove div [-]
- $(document).on('click', ".remove-12", function() {
- if (count_12_volt > 1) {
- $(this).closest('.vertical-align').remove();
- count_12_volt--;
- }
- if (count_12_volt == 1) {
- $(document).find(".remove-12").css("display", "none");
- remove_hidden_12 = true;
- }
- });
- /**
- * 240 Volt Appliance Button Controls
- */
- // add div [+]
- $('#row_240_volt_controls .btn-success').on('click', function() {
- $( input_240_volt ).appendTo( ".240_volt_wrapper" );
- count_240_volt++;
- if (remove_hidden_240) {
- remove_hidden_240 = false;
- $(document).find(".remove-240").css("display", "block");
- }
- });
- // remove div [-]
- $(document).on('click', ".remove-240", function() {
- if (count_240_volt > 1) {
- $(this).closest('.vertical-align').remove();
- count_240_volt--;
- }
- if (count_240_volt == 1) {
- $(document).find(".remove-240").css("display", "none");
- remove_hidden_240 = true;
- }
- });
- /**
- * USB Appliance Button Controls
- */
- // add div [+]
- $('#row_USB_controls .btn-success').on('click', function() {
- $( input_USB ).appendTo( ".USB_appliance_wrapper" );
- count_USB++;
- if (remove_hidden_USB) {
- remove_hidden_USB = false;
- $(document).find(".remove-USB").css("display", "block");
- }
- });
- // remove div [-]
- $(document).on('click', ".remove-USB", function() {
- if (count_USB > 1) {
- $(this).closest('.vertical-align').remove();
- count_USB--;
- }
- if (count_USB == 1) {
- $(document).find(".remove-USB").css("display", "none");
- remove_hidden_USB = true;
- }
- });
- /**
- * Input functions
- */
- function validateInput(el, min) {
- if (!$.isNumeric(el.val())) {
- el.val(0);
- return;
- }
- if (el.val() < 0) {
- el.val(0);
- }
- }
- function validateInput(el, min, max) {
- if (!$.isNumeric(el.val())) {
- el.val(0);
- return;
- }
- if (el.val() < min) {
- el.val(0);
- return;
- }
- if (el.val() > max) {
- el.val(max);
- }
- }
- // battery size dropdown selection
- // value for each option has two numbers
- // seperated by a ',' (amp hours, watt hours)
- $('#dropdown_batterySize').on('change', function() {
- var arr = $(this).val().split(",");
- $('#input_batterySize_AH').val(arr[0]);
- $('#input_batterySize_WH').val(arr[1]);
- update();
- });
- // solar size dropdown selection
- $('#dropdown_solarSize').on('change', function() {
- $('#input_solarSize').val($(this).val());
- update();
- });
- // If user manually enters solar size wattage
- // reset dropdown selection,
- // then validate input,
- $('#input_solarSize').on('change', function() {
- $('#dropdown_solarSize').val("");
- validateInput($(this), 0);
- update();
- });
- // daily sunlight dropdown selection
- $('#dropdown_sunlight').on('change', function() {
- $('#input_sunlight').val($(this).val());
- update();
- });
- // If user manually enters sunlight hours
- // reset dropdown selection,
- // then validate input
- $('#input_sunlight').on('change', function() {
- $('#dropdown_sunlight').val("");
- validateInput($(this), 0, 11);
- update();
- });
- // 12V appliance dropdown selection
- $(document).on('change', 'select[name="dropdown_12_volt"]', function() {
- $(this).closest('.row').find('input[name="input_12_volt"]').val($(this).val());
- update();
- });
- // If user manually enters 12V appliance wattage
- // reset dropdown selection,
- // then validate input
- $(document).on('change', 'input[name="input_12_volt"]', function() {
- $(this).closest('.row').find('select[name="dropdown_12_volt"]').val("");
- validateInput($(this), 0);
- update();
- });
- // Validate 12V runtime input
- $(document).on('change', 'input[name="input_12_volt_runtime"]', function() {
- validateInput($(this), 0, 24);
- update();
- });
- // 240V appliance dropdown selection
- $(document).on('change', 'select[name="dropdown_240_volt"]', function() {
- $(this).closest('.row').find('input[name="input_240_volt"]').val($(this).val());
- update();
- });
- // If user manually enters 240V appliance wattage
- // reset dropdown selection,
- // then validate input
- $(document).on('change', 'input[name="input_240_volt"]', function() {
- $(this).closest('.row').find('select[name="dropdown_240_volt"]').val("");
- validateInput($(this), 0);
- update();
- });
- // Validate 240V runtime input
- $(document).on('change', 'input[name="input_240_volt_runtime"]', function() {
- validateInput($(this), 0, 24);
- update();
- });
- // USB appliance dropdown selection
- $(document).on('change', 'select[name="dropdown_USB"]', function() {
- $(this).closest('.row').find('input[name="input_USB"]').val($(this).val());
- update();
- });
- // If user manually enters USB appliance wattage
- // reset dropdown selection,
- // then validate input
- $(document).on('change', 'input[name="input_USB"]', function() {
- $(this).closest('.row').find('select[name="dropdown_USB"]').val("");
- validateInput($(this), 0);
- update();
- });
- // Validate USB runtime input
- $(document).on('change', 'input[name="input_USB_runtime"]', function() {
- validateInput($(this), 0, 24);
- update();
- });
- /**
- * Result Calculation
- */
- function update() {
- // OUTPUT VAR
- var powerDemandWatts = $('#power_demand_watts');
- var powerDemandAH = $('#power_demand_AH');
- var solarPerDay = $('#solar_per_day');
- var recSolarSize = $('#recommended_solar_size');
- var recBatWatts = $('#rec_battery_watts');
- var recBatAH = $('#rec_battery_AH');
- // INPUT VAR
- var batteryWH = $('#input_batterySize_WH').val();
- var batteryAH = $('#input_batterySize_AH').val();
- var solarWattage = $('#input_solarSize').val();
- var dailySun = $('#input_sunlight').val();
- var wattage12v = 0;
- var ampHour12v = 0;
- var wattage240v = 0;
- var ampHour240v = 0;
- var wattageUSB = 0;
- var ampHourUSB = 0;
- $(document).find('input[name="input_12_volt"]').each(function() {
- var runtime = $(this).closest('.row').find('input[name="input_12_volt_runtime"]').val();
- wattage12v += $(this).val() * runtime;
- ampHour12v += wattage12v / 12;
- });
- $(document).find('input[name="input_240_volt"]').each(function() {
- var runtime = $(this).closest('.row').find('input[name="input_240_volt_runtime"]').val();
- wattage240v += $(this).val() * runtime;
- ampHour240v += wattage240v / 240;
- });
- $(document).find('input[name="input_USB"]').each(function() {
- var runtime = $(this).closest('.row').find('input[name="input_USB_runtime"]').val();
- wattageUSB += $(this).val() * runtime;
- ampHourUSB += wattageUSB / 5;
- });
- var wattDemand = (wattage12v + wattage240v + wattageUSB).toFixed(2);
- var ampDemand = (ampHour12v + ampHour240v + ampHourUSB).toFixed(2);
- var spd = (solarWattage*dailySun).toFixed(2);
- var rss = (wattDemand/dailySun).toFixed(2);
- var rbw = (wattDemand - batteryWH).toFixed(2);
- var rbah = (ampDemand - batteryAH).toFixed(2);
- powerDemandWatts.html(wattDemand);
- powerDemandAH.html(ampDemand);
- solarPerDay.html(spd);
- recSolarSize.html(rss);
- recBatWatts.html(rbw);
- recBatAH.html(rbah);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement