- Home
- Art
- The Seven Deadly Sins and Seven Heavenly Virtues (A Visual History)
ISBN: 9781419774102
List Price
Up to % OFF
FREE Ground Shipping in US
Expect Delivery in 4-10 weekdays
Brand New Books
Lock in your price today! Prices tomorrow are NOT GUARANTEED.
$45.00
List Price
Your Price Per Book
Discount
Total for copies: Save
Found a lower price on another site? Request a Price Match
`);
Add to Quote
Select QTYQuantity:
Quantity
Price
Discount
Minimum Order $100 / 25 copies per title, no exceptions
Not ready to place your order?
ADD TO QUOTE
Prices change daily. Order now!
Request a quote
$45.00
- SKU:
- 9781419774102
- Minimum Purchase:
- 25 units
- Bulk Pricing:
- Buy in bulk and save
- Buy 25 - 99 and get 35% off
- Buy 100 - 249 and get 40% off
- Buy 250 - 499 and get 42% off
- Buy 500 - 999 and get 45% off
- Buy 1000 or above and get 49% off
Bulk discount rates
×
Below are the available bulk discount rates for each individual item when you purchase a certain amount
Overview
A captivating artistic and philosophic exploration of humankind’s complex moral codes
A companion piece to Pandemonium: A Visual History of Demonology and Elysium: A Visual History of Angelology, Seven Sins and Seven Virtues will complete this moral trilogy and finally consider God’s most enigmatic of creations: None of the conundrums of metaphysics are as baroque as the motivations of the human soul. Unlike the devils condemned to perdition and the angels compelled to paradise, humans are divine creatures that house within them warring impulses.
Seven Sins and Seven Virtues will examine the literary, philosophical, theological, and most of all artistic expressions of the seven deadly sins and their respective seven cardinal virtues, drawing upon millennia of history to gather a compendium of humanity at its best and its worst. As a volume, the book will explore the Manichean nature of the human animal in all of its grandeur and canker, motivated by the faith that tales of damnation and salvation are the only stories that are ultimately worth telling.
This book title, The Seven Deadly Sins and Seven Heavenly Virtues (A Visual History), ISBN: 9781419774102, by Ed Simon, published by Harry N. Abrams (November 12, 2024) is available in hardcover. Our minimum order quantity is 25 copies. All standard bulk book orders ship FREE in the continental USA and delivered in 4-10 business days.
Unlike Amazon and other retailers who may also offer The Seven Deadly Sins and Seven Heavenly Virtues (A Visual History) books on their website, we specialize in large quantities and provide personal service, from trusted, experienced, friendly people in Portland, Oregon. We offer a Price Match Guarantee, and QuickQuote form, to make purchasing quick and easy.
Prefer to work with a human being when you order The Seven Deadly Sins and Seven Heavenly Virtues (A Visual History) books in bulk? Our Book Specialists are standing by Monday-Friday 8-5 PST, ready to help!
Product Details
Ordering Details
- Product Availability: Typically, all books are in stock and ready to ship. If a title becomes unavailable unexpectedly, you will be contacted with 24 business hours.
- Standard Shipping: FREE Shipping via ground transportation within the continental United States.
- Estimated Delivery: Most orders deliver within 4-10 business days from order date (excluding weekends and holidays). Orders shipping to Alaska or Hawaii should allow a minimum of 3 weeks for delivery.
- Rush Shipping: Deliver in 5 business days from order date (excluding weekends and holidays).
- Important Note: Books ship from various warehouses and may receive multiple cartons to fill the complete order. Do not assume your order is shipping from Portland, OR.
- Payment Terms: Visa, MC, Amex, PayPal, Purchase Orders and P-Cards can be used to purchase online. Check and wire-transfer payments are available offline through Customer Service
×
Submit a product page URL from any BULK bookseller\'s website, including Amazon, and we\'ll try our best to match or beat the price. Order Minimums: $100/25 copies per title We do not offer Price Matching for: A Book Specialist will respond via email later today or early tomorrow (weekdays only). | ||
The Seven Deadly Sins and Seven Heavenly Virtues (A Visual History) |
'; var content = '
PRICE MATCH REQUEST FORM
Submit a product page URL from any BULK bookseller\'s website, including Amazon, and we\'ll try our best to match or beat the price. Order Minimums: $100/25 copies per title A Book Specialist will respond via email later today or early tomorrow (weekdays only). | ||
The Seven Deadly Sins and Seven Heavenly Virtues (A Visual History) |
';$.featherlight(content);Reamaze.reload();return false;}); // Pricing Grid var prices = [{"type":"percent","min":25,"max":99,"discount":{"formatted":"35%","value":35}},{"type":"percent","min":100,"max":249,"discount":{"formatted":"40%","value":40}},{"type":"percent","min":250,"max":499,"discount":{"formatted":"42%","value":42}},{"type":"percent","min":500,"max":999,"discount":{"formatted":"45%","value":45}},{"type":"percent","min":1000,"max":0,"discount":{"formatted":"49%","value":49}}]; prices.sort(function(a, b) { return a.min - b.min; }); console.log(prices); var price_lowest = 0; var discount_max = ""; var $grid = $('.PricingGridInner'); var $selector = $('.PricingGridSelectorLine'); for(var i in prices) { var price = prices[i]; //if(i == 0 && price.min < quantity_minimum) quantity_minimum = price.min; if(i == 0 && price.min != quantity_minimum) quantity_minimum = price.min; // Allow to be greater or less than console.log('quantity_minimum: '+quantity_minimum); // Price console.log('price.type: '+price.type); if(price.type == "fixed") price.price = price.discount.value; else price.price = toFixed(global_price - (price.type == "percent" ? global_price * (price.discount.value / 100) : price.discount.value),2); if(!price_lowest || price.price < price_lowest) { price_lowest = price.price; discount_max = (price.type != "fixed" ? price.discount.value : ""); } console.log(price.min+': '+ price.price); // Store bulk_prices[price.min] = price; bulk_discounts[price.min] = (price.type != "fixed" ? price.discount.value : ""); // Display var row = '
'+price.min+''+(price.max ? '-'+price.max+'' : '+')+'
$'+numberWithCommas(toFixed(price.price,2))+'
'+(price.type != "fixed" ? price.discount.value+"%" : "")+'
'; $grid.append(row); // Selector Dot var row_dot = '
'; $selector.append(row_dot); }$grid.append('
');if(discount_max) { $('.discount-max-value').text(discount_max); $('.discount-max').show();}else $('.discount-max').hide();// Selector slider$(".PricingGridSelectorSlider").slider({ value:0, min: 0, max: (prices.length - 1), slide: function(event, ui) { var quantity = $('.PGSD-x-'+ui.value).data('qty'); console.log('slide. x: '+ui.value+', quantity: '+quantity); // Want to actually update quantity, do that then run normal process $(".form-atc-qty").val(quantity); CheckQTY(); // Just select quantity in slider //QtySelect(quantity,0); } }); // Click Qty Selector $('.PGSD-d-o').click(function() { var d = $(this).closest('.PricingGridSelectorDot'); var quantity = d.data('qty'); var x = d.data('x'); console.log('PricingGridSelectorDot clicked, qty: '+quantity+', x: '+x); // Want to actually update quantity, do that then run normal process $(".form-atc-qty").val(quantity); CheckQTY(); // Just select quantity in slider //QtySelect(quantity,0); }); // Minimum Quantity console.log('case_qty: '+case_qty+', case_select: '+case_select);if(case_select && case_qty) quantity_minimum = case_qty;else case_select = 0;console.log('quantity_minimum: '+quantity_minimum);$('.minimum_qty').html(quantity_minimum); // Message below input$('.form-atc-qty') // Add to Cart Input .val(quantity_minimum) .keydown(function (e) { if ( $.inArray(e.keyCode, [46, 8, 9, 27, 110, 190]) !== -1 || (e.keyCode == 65 && ( e.ctrlKey === true || e.metaKey === true ) ) || (e.keyCode >= 35 && e.keyCode <= 40) ) return; if(e.keyCode == 13) { CheckQTY(); e.preventDefault(); } if((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); } }) .keyup(function(e){ //console.log("key: "+e.keyCode); if(parseFloat($(this).val()) >= quantity_minimum) { CheckQTY(); } }).blur(function() { CheckQTY(1); }); // Check Quantity / Totals CheckQTY();// Reviews headerif("0" == "1") $('.ReviewsLabel').html('Review'); /** * Product Options *//** * !!!!!!!!!!!!!!!!!!!!!! NOTE: !!!!!!!!!!!!!!!!!!!!!! * NEED TO ALSO UPDATE THIS IN /bigcommerce/tbc/template/Snippets/ProductAddToCart.html AND THE $publisher_identifiers ARRAY IN config.php */// Publisher Identifiervar files_publishers = {// Feed file substring"-hbgusa": {// Publisher (case insensitive): Identifier'Aurum': 'P-QUARTO','Carnival': 'P-QUARTO','Chartwell Books': 'P-QUARTO','Crestline Books': 'P-QUARTO','Clever Publishing': 'P-QUARTO','Cool Springs Press': 'P-QUARTO','Epic Ink': 'P-QUARTO','becker&mayer': 'P-QUARTO','Evro Publishing Limited': 'P-QUARTO','Fair Winds Press': 'P-QUARTO','Frances Lincoln': 'P-QUARTO',"Frances Lincoln Children's Books": 'P-QUARTO','Giorgio Nada Editore': 'P-QUARTO','Happy Yak': 'P-QUARTO','Harvard Common Press': 'P-QUARTO','Voyageur Press': 'P-QUARTO','Zenith Press': 'P-QUARTO','Haynes Publishing UK': 'P-QUARTO','Ivy Kids': 'P-QUARTO','Ivy Kids Eco': 'P-QUARTO','Ivy Press': 'P-QUARTO','Kaddo': 'P-QUARTO','Leaping Hare Press': 'P-QUARTO','Motorbooks': 'P-QUARTO','Murdoch Books': 'P-QUARTO','New Shoe Press': 'P-QUARTO','Quarry Books': 'P-QUARTO','Rock Point': 'P-QUARTO','Rockport Publishers': 'P-QUARTO','Time Home Entertainment Inc.': 'P-QUARTO','Walter Foster Publishing': 'P-QUARTO','MoonDance Press': 'P-QUARTO','Walter Foster Jr': 'P-QUARTO','Wellfleet Press': 'P-QUARTO','Race Point Publishing': 'P-QUARTO','White Lion Publishing': 'P-QUARTO','Wide Eyed Editions': 'P-QUARTO','words & pictures': 'P-QUARTO',},};var publishers = {// These are the actual listed 'Publisher' listed under 'Publisher' Custom Field (which also includes (date published)"Albert Whitman & Company": "P-AW", // Was P-IPG, now their own thing"Allworth Press": "P-SS", // Used to be P-SKYH"Arcade": "P-SS", // Used to be P-SKYH"Arcadia": "P-ARCA","Atlas": "P-ATLAS","B&H Publishing Group": "P-B&H","B&H Publishing Group": "P-B&H","Carrell Books": "P-SS", // Used to be P-SKYH"Carson Dellosa": "P-CARSON", //"Callisto Media": "P-CALL", // Part of Sourcebooks now so P-SOURCEBK (2024-06-01)...but some old ones may be a part of P-CALL still. Just letting this one use the custom field instead.//"Callisto Publishing": "P-CALL", // Part of Sourcebooks now so P-SOURCEBK (2024-06-01)...but some old ones may be a part of P-CALL still. Just letting this one use the custom field instead."Chronicle Books": "P-CHRONICLE","Clydesdale Press": "P-SS", // Used to be P-SKYH"Crossway": "P-CROSS",//"DK": "P-DK", // Is now P-RH"DK": "P-RH","Enslow Publishing, LLC": "P-ROSEN","Federal Street Press": "P-FSP","Free Spirit Publishing": "P-FREESPIRIT",//"Gallup": "P-GALP", // Switched back to SS (below)"Gallup": "P-SS","Gareth Stevens Publishing LLLP": "P-ROSEN","Gary Null": "P-SS", // Used to be P-SKYH"Good Books": "P-SS", // Used to be P-SKYH"Good Night books": "P-RH", // Used to be P-PER"Hardie Grant": "P-CHRONICLE","Helios Press": "P-SS", // Used to be P-SKYH"Hot Books": "P-SS", // Used to be P-SKYH"Ignatius Press": "P-MISC", // Comes in through IPG folder (P-IPG), but want it to be MISC"Lee & Low": "P-LEE","Lexham Press": "P-MISC", // Comes in through ATLAS-BTPS feeds, but want it to be MISC"Merriam Webster": "P-MW","Merriam-Webster": "P-MW","Night Shade": "P-SS", // Used to be P-SKYH"Not for Tourist": "P-SS", // Used to be P-SKYH"Peter Pauper": "P-PEPAUP","Racehorse for Young Readers": "P-SS", // Used to be P-SKYH"Racehorse Publishing": "P-SS", // Used to be P-SKYH"Redleaf Press": "P-MISC", // Comes in through CONSORTIUM folder (P-PER), but want it to be MISC"Regnery Publishing": "P-MISC", // Yep, want to force it to be MISC (would be SS otherwise)"Research & Education Association": "P-MISC","Rosen": "P-ROSEN","Rourke Educational Media": "P-ROURKE","Seahorse Publishing": "P-SS", // Used to be P-SKYH"Sky Pony": "P-SS", // Used to be P-SKYH"Skyhorse": "P-SS", // Used to be P-SKYH"Sporting Classics": "P-SS", // Used to be P-SKYH"Sports Publishing": "P-SS", // Used to be P-SKYH"Talos Press": "P-SS", // Used to be P-SKYH"Teacher Created Materials": "P-TCM","The Creative Company": "P-MISC","Yucca": "P-SKYH"};// Commented out all the "P-MISC" as that'll be the defaultvar files = {"Chronicle": "P-CHRONICLE", // Want before the hbgusa match as the feed file comes from them and may include that term too, but his feed file is Chronicle specific"-hbgusa": "P-HACH", // All hbgusa whould be HACH, even if placed in Macmillan Trade folder//"HC (Harper Collins)-sourcebooks_05_19_2017-20170519.xml": "P-SOURCEBK", // Using below instead"sourcebooks": "P-SOURCEBK", // So it catches anything with sourcebooks"Wiley": "P-WIL", // Sometimes also matches 'Collins' if uploaded to that directory"Workman": "P-WORK", // Sometimes also matches 'Harper Collins' if uploaded to that directory, should be in Eloquence directory"BTPS": "P-BTPS", // Needs to come before 'ATLAS' (it's in that folder)...or used to, comes in as its own feed in BTPS folder now, but keeping here just in case//"-DEMOSDemos_Health": "P-MISC","-hc_onix_full": "P-HC","-hc_onix_delta": "P-HC","-hcus_onix_full": "P-HC","-NortonNorton": "P-WWN","-REA_": "P-DOVER","AlbertWhitman": "P-AW", // Was P-AW, then P-IPG, now back to P-AW//"ALL_BOOK_IMAGES-Greenleaf": "P-MISC","ALL_BOOK_IMAGES-Simon": "P-SS",//"Amacom": "P-MISC",//"ARBORDALE": "P-MISC",//"Arcadia": "P-MISC","ASCD": "P-ASCD","ATLAS": "P-ATLAS","B_and_H": "P-B&H","BAKER": "P-BAKER","BAREFOOT": "P-BAREF","Barrons": "P-BARR","BerrettKoehler": "P-BERRETT","CAPSTONE": "P-CAP",//"Carson Dellosa": "P-CARSON","CHILDSPLAY": "P-CHILDSPLAY","Compendium": "P-COMP","CONSORTIUM": "P-PER","Corwin": "P-CORWIN","CRABTREE": "P-CRAB", "Dellosa": "P-CARSON", // Carson Dellosa"Dover": "P-DOVER", // Was P-DOV"Eloquence-Time": "P-HACH", // Keeping 'Eloquence-' on this one as 'Time' might be used on others// These used to be "Eloquence-...", but sometimes in Macmillian Trade folder"FreeSpirit": "P-FREESPIRIT","FWMedia": "P-FW", "EERDMANS": "P-EERD", //"Eloquence-Greenleaf": "P-MISC","HNA": "P-ABRAMS", // Used to be Eloquence-HNA, but sometimes in Macmillian Trade folder"Houghton": "P-HM","IPG": "P-IPG","LERNER": "P-LERN", // Lerner"NewHarbinger": "P-NWHARB","PEACHTREE": "P-PEACH", // Peachtree"Perseus": "P-PER", // Needs to be before IPS"IPS": "P-IPS","PRH": "P-RH","Scholastic": "P-SCH","Sterling": "P-STER", // Used to be 'Eloquence-Sterling', but sometimes in 'Macmillian Trade' folder//"WhitakerHouse": "P-MISC",// End 'Eloquence' section//"FoxChapel": "P-MISC","Greenleaf": "P-GLEAF", // Usually in Eloquence folder, used to be MISC"HarperChristian-Nelson": "P-TNELSON","HarperChristian-THEBOOKCOMPANY": "P-TNELSON","HarperChristian-Tyndale": "P-TNELSON","HarperCollins": "P-HC","HarvestHouse": "P-HARVEST", "HayHouse": "P-HAYH","Houghton": "P-HM","Perseus": "P-PER", // Sometimes gets something like "HC (Harper Collins)-Perseus_Distribution_02012017_complete_onix21-20170203a.xml", need Perseus catch to be before the next "Collins" match // Could also replace the Eloquence-Perseus match above"Collins": "P-HC", // HC%20(Harper%20Collins)-wiley.1.20161115-20161118.xml//"HCI-": "P-MISC","McGrawHill": "P-MCGRAW",//"MIDPOINT": "P-MISC","MOODY": "P-MOOD","NationalBookNetwork": "P-NBN","ORCA-": "P-ORCA", // Used to be P-Misc//"Paraclete": "P-MISC",//"Parragon": "P-MISC","PGW-LEGATO": "P-PER","Propulsion-cherrylake": "P-CHERRY", // Used to be P-MISC"Propulsion-sleepingbear": "P-CHERRY", // Used to be P-MISC//"RandomHouse-PRH": "P-RH", // Now caught by 'PRH' above//"Sellers-sourcebooks": "P-MISC","Simon": "P-SS","SolutionTreePress": "P-STREE","TAYLORFRANCIS": "P-CRC","TCM": "P-TCM","TWO RIVERS-PERSEUS": "P-PER","TYNDALE-Tyndale": "P-TYNDALE", // Was P-TNELSON//"WILLOWCREEK": "P-MISC","Macmillan": "P-STM" // NOTE: this can catch a lot of things mistakenly put in the Macmillian folder (Scholastic, etc.) so keep at bottom};var publisher_identifier;if(publisher && file) {publisher = publisher.toLowerCase();file = file.toLowerCase();console.log('Publisher: '+publisher+', File: '+file);for(var f in files_publishers) {if(files_publishers.hasOwnProperty(f)) {//console.log(f+": "+files[f]);if(file.indexOf(f.toLowerCase()) > -1) { var _publishers = files_publishers[f]; for(var p in _publishers) { if(_publishers.hasOwnProperty(p)) { //console.log(p+": "+publishers[p]); if(publisher.indexOf(p.toLowerCase()) > -1) { console.log('match (file+publisher)'); publisher_identifier = _publishers[p]; break; } } } if(publisher_identifier) break;}}}}if(!publisher_identifier && publisher) {publisher = publisher.toLowerCase();console.log('Publisher: '+publisher);for(var p in publishers) {if(publishers.hasOwnProperty(p)) {//console.log(p+": "+publishers[p]);if(publisher.indexOf(p.toLowerCase()) > -1) {console.log('match (publisher)');publisher_identifier = publishers[p];break;}}}}if(!publisher_identifier && file) {file = file.toLowerCase();console.log('File: '+file);for(var f in files) {if(files.hasOwnProperty(f)) {//console.log(f+": "+files[f]);if(file.indexOf(f.toLowerCase()) > -1) {console.log('match (file)');publisher_identifier = files[f];break;}}}}if(!publisher_identifier) publisher_identifier = "P-MISC"; // Defaultpublisher_identifier = "BOOKS:"+publisher_identifier;console.log('option - publisher identifier - '+publisher_identifier);// List Price (text field) / Retail Price (dropdown)console.log('option - list price - '+global_price);// Set$('.PurchaseCart .form-field, .productView-options .form-field').each(function() { // Do for '.productView-options' too. Not used when adding to cart, but other scripts (QN) aren't determining which field to use correctly so just make sure it's set correctly in all places it appearsvar field = $(this);var label = $.trim($('.form-label',field).text());console.log('label: `'+label+'`');// Publisher Identifierif(label == "Publisher Identifier:") { console.log('setting '+label+' to `'+publisher_identifier+'`');$('.form-select option',field).filter(function() {console.log($(this).text()); return $(this).text() == publisher_identifier;}).prop('selected',true);}// Retail Priceelse if(label == "Retail Price:") { console.log('setting '+label+' to `'+global_price+'`');$('.form-select option',field).filter(function() { //console.log(($(this).text() * 1)+' == '+global_price+' = '+(($(this).text() * 1) == global_price ? "Yes" : "No")); return ($(this).text() * 1) == global_price;}).prop('selected',true);}// List Priceelse if(label == "List Price:") { console.log('setting '+label+' to `'+global_price.toFixed(2)+'`');$('.form-input',field).val(global_price.toFixed(2));}});/*$('#sold-count').load(url, function(){ $('#sold').show();});*/// NOW// a search by class and not by id is made for test 6$.get('https://scripts.bulkbookstore.com/bc-sold.php?isbn=9781419774102',function(result) { console.log('>>>>>>>>>> SOLD >>>>>>>: '+sold); console.log('>>>>>' + result) console.log('CONTROL VERSION') console.log(result) if(result) { $('.sold-count').text(result); $('.sold').show(); } console.log('END VERSION') }); // $.get('https://scripts.bulkbookstore.com/bc-sold.php?isbn=9781419774102&data=units',function(result) { // if(result) { // $('#sold-count-units').text(result); // //$('#sold-units').show(); // } // }); // $.get('https://scripts.bulkbookstore.com/bc-sold.php?isbn=9781419774102&data=units', function(result) { // console.log('TEST VERSION') // console.log(result) // if (result) { // var modifiedResult = result.replace("Units", "Copies"); // $('#sold-count-units').text(modifiedResult); // Actualiza el texto en el elemento // } // console.log('END VERSION') // }); $.get('https://scripts.bulkbookstore.com/bc-sold.php?isbn=9781419774102&data=units', function(result) { console.log('TEST VERSION') console.log(result) if (result) { var modifiedResultUnits = parseInt(result.replace(/[^\d]/g, ''), 10); if (modifiedResultUnits >= 1000) { var modifiedResult = result.replace("Units", "Copies"); $('.sold-count-units').text(modifiedResult); // Actualiza el texto en el elemento } else { $('.sold-units .fas').hide(); } } console.log('END VERSION') });});function CheckQTY(blur) { var error_minimum = 0; var error_multiples = 0; // Get quantity = quantity_original = parseFloat($(".form-atc-qty").val()); console.log('quantity: '+quantity+', quantity_minimum: '+quantity_minimum); // Nothing entered if(quantity == "" ) { quantity = quantity_minimum;error_minimum = 1; } // Less than minimum else if (quantity < quantity_minimum || quantity == "NaN") { quantity = quantity_minimum;error_minimum = 1; } // Case Pack Select - must select in multiples else if(case_select) { var QtyMultiple = Math.floor(quantity / quantity_minimum) * quantity_minimum; if(QtyMultiple != quantity) { quantity = QtyMultiple; $('.ProductMultiples').show(); error_multiples = 1; } else $('.ProductMultiples').hide(); } // Add to Quote if(quantity_original < 15) $('.AddToQuoteLink').hide(); else $('.AddToQuoteLink').show(); // Quantity Minimum errorif(error_minimum) $('.ProductMinimum').addClass('form-field--error');else $('.ProductMinimum').removeClass('form-field--error'); // Pre-order - make button orange // Will check date validity (can't order more than 30 days out) in another scriptif($('.ProductRelease').length) {$('.PurchaseCart #form-action-addToCart').addClass('button--orange');} // Error? var error = 0;if(quantity != quantity_original) {error = 1;// Flash//$("#text_qty_2").css('background','#D26418').animate({backgroundColor:'white'},500);// Disable submitconsole.log('disabling submit (quantity issue)');$('.PurchaseCart #form-action-addToCart').attr('disabled','disabled');$('.ProductQty').addClass('form-field--error');}else if(!$('.PurchaseCart #form-action-addToCart').hasClass('disabled')) { // If disabled by something else (preorder date is too far in future) don't re-enable// Enable submitconsole.log('enabling submit');$('.PurchaseCart #form-action-addToCart').removeAttr('disabled');$('.ProductQty').removeClass('form-field--error');} // Set // No longer doing, just error, disable submit //$(".form-atc-qty").val(quantity); // Total Price QtySelect(quantity); // Shipping savingsvar shipping_per = 1.27;$('.PricingShippingSavings').html('$'+numberWithCommas(toFixed(shipping_per * quantity,2)));}function QtySelect(quantity,total) { if(typeof total == 'undefined') total = 1; //console.log('QtySelect, quantity: '+quantity+', total: '+total); var x_selected = 0; var x = 0; for(var i in bulk_prices) { var price = bulk_prices[i]; if(quantity >= price.min) { if(quantity <= price.max || !price.max) { //console.log('quantity selecting. i: '+i+', min: '+price.min+', max: '+price.max); if(total) { $('.PPB-value').html('$'+numberWithCommas(toFixed(price.price,2))); if(bulk_discounts[i]) { $('.PPB-discount').html(bulk_discounts[i]+'%'); $('.price-box-discount').show(); } else $('.price-box-discount').hide(); $('.PTC-qty').html(quantity); $('.PTC-value').html('$'+numberWithCommas(toFixed(price.price * quantity,2))); $('.PTC-save-value').html('$'+numberWithCommas(toFixed((global_price - price.price) * quantity,2))); } $('.PricingGridItemSelected').removeClass('PricingGridItemSelected'); $('.PricingGridItem-'+i).addClass('PricingGridItemSelected'); $('.PGSD-selected').removeClass('PGSD-selected'); $('.PGSD-qty-'+i).removeClass('PGSD-past').addClass('PGSD-selected'); x_selected = x; } else $('.PGSD-qty-'+i).addClass('PGSD-past'); } else $('.PGSD-qty-'+i).removeClass('PGSD-past'); x++; } // Selector Slider $(".PricingGridSelectorSlider").slider("value",x_selected); /*var left_dot = $('.PGSD-selected .PGSD-d').offset().left; var left_container = $('.PricingGridSelectorLine').offset().left; var left = left_dot - left_container - 10; //console.log('left_dot: '+left_dot+', left_container: '+left_container+', left: '+left); $('.PricingGridSelectorMarker').css({left:left+'px'});*/ // Quantity - if slid/clicked on selector slider, update quantity //if(!total) $(".form-atc-qty").val(quantity);}// http://stackoverflow.com/questions/10015027/javascript-tofixed-not-roundingfunction toFixed(num,precision) {return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision);}// https://stackoverflow.com/a/2901298function numberWithCommas(x) {return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");}var google_tag_params = { ecomm_prodid: '2292424', ecomm_pagetype: 'Product', //ecomm_totalvalue: new Array(global_price) ecomm_totalvalue: [global_price]};var product_code = "9781419774102";// AdRoll Product ID - https://help.adroll.com/hc/en-us/articles/216673657-Getting-Started-with-Dynamic-Creative// Old code - removed on 2024-04-01, using just the new version (below) now//adroll_custom_data = {"product_id":"9781419774102"};// AdRoll Product ID - new version - 2024-03-27try { __adroll.record_user({"product_id": "9781419774102"});} catch (err) {}