if (window.TP == null) {
    var TP = {};
}

TP.ProfitTool = {
    calculateProfits: function(divElement) {
        var price = parseInt(divElement.find("select.bookprice :selected").text());
        var stocks = parseInt(divElement.find(".stocks").val());
        var investment = stocks * 5;
        var books = parseInt(divElement.find(".books").val());
//        var profits = ((stocks / 2000) * 0.10 * price * books) + (stocks * 2) - investment;
        var profits = ((stocks / 2000) * 0.10 * price * books);
        if (profits < 0) {
            profits = 0;
        }

        var profitTxt = this.formatNumber(profits);
        divElement.find(".profit").text(profitTxt);

        var investTxt = this.formatNumber(stocks * 5);
        divElement.find(".investment").text(investTxt);
    },

    formatNumber: function(number) {
        var numberI = Math.floor(number.toFixed(2));

        while(String(numberI).match(/\d{4}/)) {
            numberI = String(numberI).replace(/(\d)(\d{3})($|\.)/, '$1.$2$3');
        }
        
        number = number.toFixed(2);
        var afterComma = number.replace(/.*\.(\d{2})/, '$1');

        if (afterComma == '00') {
            afterComma = '-';
        }

        return numberI + ',' + afterComma;
    }
}

$(document).ready(function() {
    $("a.incStocks").bind("click", function() {
        var divElement = $($(this).closest('div.profittool'));

        var stocks = parseInt(divElement.find(".stocks").val());
        if ( stocks >= 20 ) {
            stocks = stocks + 10;
        } else {
            stocks = stocks + 1;
        }
        if ( stocks > 200 ) {stocks = 200;}
        divElement.find(".stocks").val(stocks);
        TP.ProfitTool.calculateProfits(divElement);
    });

    $("a.decStocks").bind("click", function() {
        var divElement = $($(this).closest('div.profittool'));

        var stocks = parseInt(divElement.find(".stocks").val());
        if ( stocks >= 20 ) {
            stocks = stocks - 10;
        } else {
            stocks = stocks - 1;
        }
        if ( stocks < 0 ) {stocks = 0;}
        divElement.find(".stocks").val(stocks);
        TP.ProfitTool.calculateProfits(divElement);
    });

    $("a.incBooks").bind("click", function() {
        var divElement = $($(this).closest('div.profittool'));

        var books = parseInt(divElement.find(".books").val());
        if ( books >= 20000 ) {
            books = books + 10000;
        } else {
            books = books + 1000;
        }
        if ( books > 500000 ) {books = 500000;}
        divElement.find(".books").val(books);
        TP.ProfitTool.calculateProfits(divElement);
    });

    $("a.decBooks").bind("click", function() {
        var divElement = $($(this).closest('div.profittool'));

        var books = parseInt(divElement.find(".books").val());
        if ( books >= 20000 ) {
            books = books - 10000;
        } else {
            books = books - 1000;
        }
        if ( books < 0 ) {books = 0;}
        divElement.find(".books").val(books);
        TP.ProfitTool.calculateProfits(divElement);
    });

    $(".stocks").bind("change", function() {
        var divElement = $($(this).closest('div.profittool'));

        var stocks = parseInt(divElement.find(".stocks").val());
        if ( stocks > 200 ) {stocks = 200;}
        if ( stocks < 0  || isNaN(stocks) ) {stocks = 0;}
        divElement.find(".stocks").val(stocks);
        TP.ProfitTool.calculateProfits(divElement);
    });

    $(".books").bind("blur", function() {
        var divElement = $($(this).closest('div.profittool'));

        var books = parseInt(divElement.find(".books").val());
        if ( books > 500000 ) {books = 500000;}
        if ( books < 0 || isNaN(books) ) {books = 0;}
        divElement.find(".books").val(books);
        TP.ProfitTool.calculateProfits(divElement);
    });

    $("select.bookprice").bind("change", function() {
        TP.ProfitTool.calculateProfits($($(this).closest('div.profittool')));
    });

    $('div.profittool').each(function() {
        TP.ProfitTool.calculateProfits($(this));
    });
});

