polygon.item = { data: { id: $(".purchase-item-prompt").attr("data-item-id"), thumbnail: $(".purchase-item-prompt").attr("data-item-thumbnail"), name: $(".purchase-item-prompt").attr("data-item-name"), type: $(".purchase-item-prompt").attr("data-asset-type"), seller: $(".purchase-item-prompt").attr("data-seller-name"), price: $(".purchase-item-prompt").attr("data-expected-price") }, PromptPurchase: function() { if (!polygon.user.logged_in) { window.location = "/login?ReturnUrl="+encodeURI(window.location.pathname+window.location.search); return; } var RemainingBalance = polygon.user.money - polygon.item.data.price; var NeededFunds = polygon.item.data.price - polygon.user.money; var Price = polygon.item.data.price == 0 ? "Free" : ' ' + polygon.item.data.price; if (RemainingBalance < 0) { polygon.buildModal({ header: "Insufficient Funds", image: "/img/error.png", body: 'You need ' + NeededFunds + ' more to purchase this item.', buttons: [{'class':'btn btn-secondary', 'dismiss':true, 'text':'Cancel'}], options: {'show':true, 'backdrop':'static'} }); } else { polygon.buildModal({ header: "Buy Item", image: polygon.item.data.thumbnail, body: 'Would you like to buy the '+polygon.item.data.name+' '+polygon.item.data.type+' from '+polygon.item.data.seller+' for '+(polygon.item.data.price != false ? ' '+polygon.item.data.price : 'Free')+'?', buttons: [{'class':'btn btn-success purchase-item-confirm', 'text':'Buy Now'}, {'class':'btn btn-secondary', 'dismiss':true, 'text':'Cancel'}], options: {'show':true, 'backdrop':'static'}, footer: 'Your balance after this transaction will be ' + RemainingBalance }); } }, Purchase: function() { $(".modal-content").hide(); $(".modal-dialog").append('

processing transaction...

'); $.post('/api/catalog/purchase', polygon.item.data, function(data) { $(".processing").remove(); $(".modal-content").show(); if (data.success) { polygon.buildModal({ header: data.header, image: data.image ? data.image : undefined, body: data.text, buttons: data.buttons, options: {'show':true, 'backdrop':'static'}, footer: data.footer }); } else { polygon.buildModal({ header: "Error", image: "/img/error.png", body: "An error occurred while processing this transaction. No money has been taken out of your account. Please try again.", buttons: [{class: 'btn btn-primary px-4', dismiss: true, text: 'OK'}], options: {'show':true, 'backdrop':'static'} }); } if(data.newprice) polygon.item.data.price = data.newprice; }); }, PromptDelete: function() { polygon.buildModal({ header: "Delete Item", body: "Are you sure you want to permanently DELETE this item from your inventory?", buttons: [{class: 'btn btn-primary px-4 delete-item-confirm', dismiss: true, text: 'OK'}, {class: 'btn btn-secondary px-4', dismiss: true, text: 'No'}], options: {'show':true, 'backdrop':'static'} }); }, Delete: function() { $.post('/api/account/asset/delete', { AssetID: $(".delete-item-prompt").attr("data-item-id") }, function(){ location.reload(); }); }, GoBack: function() { window.history.back(); window.location = "/catalog"; }, comments: { Page: 1, ReachedEnd: false, Loading: true, Control: "comments", Display: function(append) { if(!$(".comments-container").length) return; if(append) polygon.item.comments.Page += 1; else polygon.item.comments.Page = 1; $(".comments-container .loading").removeClass("d-none"); $(".comments-container .no-items").addClass("d-none"); $(".comments-container .show-more").addClass("d-none"); if(!append) $(".comments-container .items").empty(); polygon.item.comments.Loading = true; $.get('/api/catalog/get-comments', {assetID: $(".app").attr("data-asset-id"), page: polygon.item.comments.Page}, function(data) { $(".comments-container .loading").addClass("d-none"); polygon.item.comments.Loading = false; if(data.items == undefined) { $(".comments-container .no-items").removeClass("d-none"); polygon.item.comments.ReachedEnd = true; return; } polygon.populateRow("comments", data.items); polygon.appendination.handle(polygon.item.comments, data); }); }, Initialize: function() { if (!$(".comments-container").length) return; $(function() { polygon.appendination.register(polygon.item.comments, 300); $(".comments-container .post-comment").click(polygon.item.comments.post); }); }, post: function() { if(!polygon.user.logged_in) return; polygon.button.busy(".comments-container .post-comment"); $(".comments-container .post-error").addClass("d-none"); $.post('/api/catalog/post-comment', {assetID: $(".app").attr("data-asset-id"), content: $(".comments-container textarea").val()}, function(data) { if(data.success) polygon.item.comments.load(false); else $(".comments-container .post-error").removeClass("d-none").text(data.message); polygon.button.active(".comments-container .post-comment"); }); } } }; $(".purchase-item-prompt").click(polygon.item.PromptPurchase); $("body").on('click', '.purchase-item-confirm', polygon.item.Purchase); $("body").on('click', '.continue-shopping', polygon.item.GoBack); $(".delete-item-prompt").click(polygon.item.PromptDelete); $("body").on("click", ".delete-item-confirm", polygon.item.Delete); polygon.item.comments.Initialize();