﻿//*************************************************************************************
// File     : lye_calculator.js
// Version  : 0.3.2
// Requires : jquery.js (version 1.3.2+)
// Author   : Kyle Weems (ksw)
// Origin   : mindfly.com
// Created  : June 3, 2009
// Modified : June 17, 2009
// Purpose  : Controls a lye calculator for determing lye levels for soap.
//*************************************************************************************

var data = null;

$(document).ready(function() {
    lyeJson();
    lyeButtons();
});

function lyeJson() {
    if ($('.oils.list').length > 0) {
        $.getJSON('/lye_json.txt', function(json) {
            data = json;
            var i = null;
            var oil = null;
            for (i = 0; i < data.oil.length; i++) {
                oil = data.oil[i];
                $('.oils.list').append('<li><label for="txtOil' + i + '"><input type="text" id="txtOil' + i + '"/>' + oil.name + '</label></li>');
            }
        });
    }
}

function lyeButtons() {
    $('.button.calculate').bind('click', function() {
    $('#results tbody').html('<tr class="header"><th>Oil(s) Selected</th><th class="amount">Amount (oz)</th><th id="sv">Sap Value</th><th id="lye">&nbsp;&nbsp;&nbsp;&nbsp;</th></tr>');
        var oilName = new Array();
        var oilSV = new Array();
        var oilAmount = new Array();
        var lyeAmount = new Array()
        var i = null;
        var c = 0;
        var totalOil = 0;
        var totalLye = 0;
        var totalWater = 0;
        var superFatAmount;
        for (i = 0; i < $('input[id^="txtOil"]').length; i++) {
            var elem = 'input[id^="txtOil"]:eq(' + i + ')';
            if ($(elem).attr('value') != "" && !isNaN($(elem).attr('value') * 1)) {
                oilName[c] = data.oil[i].name;
                oilSV[c] = data.oil[i].sap;
                oilAmount[c] = $(elem).attr('value');
                c = c + 1;
            }
        }
        for (i = 0; i < c; i++) {
            lyeAmount[i] = oilSV[i] * oilAmount[i];
            lyeAmount[i] = Math.round(lyeAmount[i] * 1000) / 1000;
            totalOil = totalOil + (oilAmount[i] * 1);
            totalLye = totalLye + lyeAmount[i];
            $('#results tbody').append('<tr><td>' + oilName[i] + '</td><td class="amount">' + oilAmount[i] + '</td><td>' + oilSV[i] + '</td><td>' + /*lyeAmount[i]*/ '' + '</td></tr>');
        }
        superFatAmount = (1 - ($('#superFatting option:selected').attr('value') * 1)) * totalLye;
        superFatAmount = Math.round(superFatAmount * 1000) / 1000;
        totalWater = totalOil * .33;
        totalWater = Math.round(totalWater * 1000) / 1000;
        // $('#results tbody').append('<tr class="totals"><td>Totals</td><td class="amount">' + totalOil + '</td><td></td><td>' + /*totalLye*/ ' ' + ' </td></tr>');
        $('#results tbody').append('<tr class="recommended"><td colspan="2">' + $('#superFatting option:selected').html() + ' Superfatted Recommended Lye Amount</td><td>' + superFatAmount + ' oz</td></tr>');
        $('#results tbody').append('<tr class="water"><td colspan="2">Ounces of liquid recommended</td><td>' + totalWater + ' oz</td></tr>');
    });
    $('.button.reset').bind('click', function() {
        $('#results tbody').html('<tr class="header"><th>Oil(s) Selected</th><th class="amount">Amount (oz)</th><th id="sv">SV</th><th id="lye">Lye (oz)</th></tr>');
        $('input[id^="txtOil"]').attr('value', '');
    });
}