var basket = null;$(document).ready(function(){    basket = new Basket();    basket.init();});function Basket(){    var self = this;        Basket.prototype.init = function(){                $('.buybutton').click(function(){            self.addToBasket();        });                $('.basketDelete').click(function(){            if(confirm("Вы уверены, что хотите удалить данный товар из корзины?")){                var id = $(this).attr('rel');                self.deleteFromBasket(id);            }        });                $('.countBasket').change(function(){            var id = $(this).attr('rel');            self.refreshItemPrice(id);            self.recalculateBasket();        });            };        Basket.prototype.getItemCount = function(){        var itemCount = 0;        $('.countBasket').each(function(){            var count = $(this).val();            itemCount += Number(Number(count) > 0 ? count : 0);        });        return itemCount;    };        Basket.prototype.refreshItemPrice = function(id){        var count = $('.countBasket[rel=' + id + ']').val();        var price = $('.countBasket[rel=' + id + ']').attr('price');                var summ = (count * price);                $.post('/basket/', {            id: id,            count: count        }, function(){            $('#goods').html(self.getItemCount());        });                $('.itemPrice[rel=' + id + ']').html( Number(summ) > 0 ? self.numberFormat(summ, 2, '.', '') : "Уточняется" );    };        Basket.prototype.recalculateBasket = function(){        var wholeCount = 0;        $('.itemPrice').each(function(){            var price = $(this).html();            wholeCount += Number(Number(price) > 0 ? price : 0);        });        $('#overallPrice').html(wholeCount > 0 ? self.numberFormat(wholeCount, 2, '.', '') : "Уточняется");    };        Basket.prototype.addToBasket = function(){        $('#addBasket').submit();    };        Basket.prototype.deleteFromBasket = function(id){        $.post('/basket/', {            id: id        }, function(){            window.location.reload();        });    };        Basket.prototype.numberFormat = function (number, decimals, dec_point, thousands_sep) {        number = (number + '').replace(/[^0-9+\-Ee.]/g, '');        var n = !isFinite(+number) ? 0 : +number,        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,        s = '',        toFixedFix = function (n, prec) {            var k = Math.pow(10, prec);            return '' + Math.round(n * k) / k;        };        // Fix for IE parseFloat(0.55).toFixed(0) = 0;        s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');        if (s[0].length > 3) {            s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);        }        if ((s[1] || '').length < prec) {            s[1] = s[1] || '';            s[1] += new Array(prec - s[1].length + 1).join('0');        }        return s.join(dec);    }}
