Vn.Basket = new Class ({ Extends: Vn.Form ,open: function () { if (this.basketChecked) this.parent (); } ,activate: function () { Vn.BasketChecker.check (this.conn, this.onBasketCheck.bind (this)); } ,onBasketCheck: function (isOk) { if (!isOk) return; this.basketChecked = true; this.open (); } ,onConfigureClick: function () { Htk.Toast.showWarning (_('RememberReconfiguringImpact')); this.hash.set ({'form': 'ecomerce/checkout'}); } ,onCatalogClick: function () { this.hash.set ({'form': 'ecomerce/catalog'}); } ,onCheckoutClick: function () { this.hash.set ({'form': 'ecomerce/confirm'}); } ,amountRender: function (renderer, form) { var amount = form.get ('amount'); var grouping = form.get ('grouping'); if (amount && grouping) renderer.value = amount / grouping; else renderer.value = null; } ,onAmountChange: function (renderer, row, newValue) { var model = this.$('items'); model.set (row, 'amount', newValue * model.get (row, 'grouping')); } ,featuresRender: function (renderer, form) { renderer.value = form.get ('Medida') +' '+ form.get ('Categoria') +' '+ form.get ('Color'); } ,stemsRender: function (renderer, form) { renderer.value = Vn.Value.format (form.get ('price'), '%.2d€') +' x '+ form.get ('amount'); if (form.get ('amount') > form.get ('available')) renderer.td.className = 'available-exceeded'; else renderer.td.className = ''; } ,subtotalRender: function (renderer, form) { renderer.value = this.subtotal (form); } ,subtotal: function (form) { return form.get ('amount') * form.get ('price'); } ,availableRender: function (renderer, form) { if (form.get ('amount') > form.get ('avail')) renderer.value = 'unavailable'; else renderer.value = 'invisible'; } });