/*! * Dialogs Manager v4.9.3 * https://github.com/kobizz/dialogs-manager * * Copyright Kobi Zaltzberg * Released under the MIT license * https://github.com/kobizz/dialogs-manager/blob/master/LICENSE.txt */ (function($, global) { 'use strict'; /* * Dialog Manager */ var DialogsManager = { widgetsTypes: {}, createWidgetType: function(typeName, properties, Parent) { if (!Parent) { Parent = this.Widget; } var WidgetType = function() { Parent.apply(this, arguments); }; var prototype = WidgetType.prototype = new Parent(typeName); prototype.types = prototype.types.concat([typeName]); $.extend(prototype, properties); prototype.constructor = WidgetType; WidgetType.extend = function(typeName, properties) { return DialogsManager.createWidgetType(typeName, properties, WidgetType); }; return WidgetType; }, addWidgetType: function(typeName, properties, Parent) { if (properties && properties.prototype instanceof this.Widget) { return this.widgetsTypes[typeName] = properties; } return this.widgetsTypes[typeName] = this.createWidgetType(typeName, properties, Parent); }, getWidgetType: function(widgetType) { return this.widgetsTypes[widgetType]; } }; /* * Dialog Manager instances constructor */ DialogsManager.Instance = function() { var self = this, elements = {}, settings = {}; var initElements = function() { elements.body = $('body'); }; var initSettings = function(options) { var defaultSettings = { classPrefix: 'dialog', effects: { show: 'fadeIn', hide: 'fadeOut' } }; $.extend(settings, defaultSettings, options); }; this.createWidget = function(widgetType, properties) { var WidgetTypeConstructor = DialogsManager.getWidgetType(widgetType), widget = new WidgetTypeConstructor(widgetType); properties = properties || {}; widget.init(self, properties); return widget; }; this.getSettings = function(property) { if (property) { return settings[property]; } return Object.create(settings); }; this.init = function(settings) { initSettings(settings); initElements(); return self; }; self.init(); }; /* * Widget types constructor */ DialogsManager.Widget = function(widgetName) { var self = this, settings = {}, events = {}, elements = {}, hideTimeOut = 0, baseClosureMethods = ['refreshPosition']; var bindEvents = function() { var windows = [elements.window]; if (elements.iframe) { windows.push(jQuery(elements.iframe[0].contentWindow)); } windows.forEach(function(window) { if (settings.hide.onEscKeyPress) { window.on('keyup', onWindowKeyUp); } if (settings.hide.onOutsideClick) { window[0].addEventListener('click', hideOnOutsideClick, true); } if (settings.hide.onOutsideContextMenu) { window[0].addEventListener('contextmenu', hideOnOutsideClick, true); } if (settings.position.autoRefresh) { window.on('resize', self.refreshPosition); } }); if (settings.hide.onClick || settings.hide.onBackgroundClick) { elements.widget.on('click', hideOnClick); } }; var callEffect = function(intent, params) { var effect = settings.effects[intent], $widget = elements.widget; if ('function' === typeof effect) { effect.apply($widget, params); } else { if ($widget[effect]) { $widget[effect].apply($widget, params); } else { throw 'Reference Error: The effect ' + effect + ' not found'; } } }; var ensureClosureMethods = function() { var closureMethodsNames = baseClosureMethods.concat(self.getClosureMethods()); $.each(closureMethodsNames, function() { var methodName = this, oldMethod = self[methodName]; self[methodName] = function() { oldMethod.apply(self, arguments); }; }); }; var fixIframePosition = function(position) { if (! position.my) { return; } var horizontalOffsetRegex = /left|right/, extraOffsetRegex = /([+-]\d+)?$/, iframeOffset = elements.iframe.offset(), iframeWindow = elements.iframe[0].contentWindow, myParts = position.my.split(' '), fixedParts = []; if (myParts.length === 1) { if (horizontalOffsetRegex.test(myParts[0])) { myParts.push('center'); } else { myParts.unshift('center'); } } myParts.forEach(function(part, index) { var fixedPart = part.replace(extraOffsetRegex, function(partOffset) { partOffset = +partOffset || 0; if (! index) { partOffset += iframeOffset.left - iframeWindow.scrollX; } else { partOffset += iframeOffset.top - iframeWindow.scrollY; } if (partOffset >= 0) { partOffset = '+' + partOffset; } return partOffset; }); fixedParts.push(fixedPart); }); position.my = fixedParts.join(' '); }; var hideOnClick = function(event) { if (isContextMenuClickEvent(event)) { return; } if (settings.hide.onClick) { if ($(event.target).closest(settings.selectors.preventClose).length) { return; } } else if (event.target !== this) { return; } self.hide(); }; var isIgnoredTarget = function(event) { if (! settings.hide.ignore) { return false; } return !! $(event.target).closest(settings.hide.ignore).length; }; var hideOnOutsideClick = function(event) { if (isContextMenuClickEvent(event) || $(event.target).closest(elements.widget).length || isIgnoredTarget(event)) { return; } self.hide(); }; var initElements = function() { self.addElement('widget'); self.addElement('header'); self.addElement('message'); self.addElement('window', window); self.addElement('body', document.body); self.addElement('container', settings.container); if (settings.iframe) { self.addElement('iframe', settings.iframe); } if (settings.closeButton) { if ( settings.closeButtonClass ) { // Backwards compatibility settings.closeButtonOptions.iconClass = settings.closeButtonClass; } const $button = $('', settings.closeButtonOptions.attributes), $buttonIcon = $(settings.closeButtonOptions.iconElement).addClass(settings.closeButtonOptions.iconClass); $button.append($buttonIcon); self.addElement('closeButton', $button); } var id = self.getSettings('id'); if (id) { self.setID(id); } var classes = []; $.each(self.types, function() { classes.push(settings.classes.globalPrefix + '-type-' + this); }); classes.push(self.getSettings('className')); elements.widget .addClass(classes.join(' ')) .attr({ 'aria-modal': true, 'role': 'document', 'tabindex': 0, }); }; var initSettings = function(parent, userSettings) { var parentSettings = $.extend(true, {}, parent.getSettings()); settings = { headerMessage: '', message: '', effects: parentSettings.effects, classes: { globalPrefix: parentSettings.classPrefix, prefix: parentSettings.classPrefix + '-' + widgetName, preventScroll: parentSettings.classPrefix + '-prevent-scroll', }, selectors: { preventClose: '.' + parentSettings.classPrefix + '-prevent-close', }, container: 'body', preventScroll: false, iframe: null, closeButton: false, closeButtonOptions: { iconClass: parentSettings.classPrefix + '-close-button-icon', attributes: { role: 'button', 'tabindex': 0, 'aria-label': 'Close', href: '#', }, iconElement: '', }, position: { element: 'widget', my: 'center', at: 'center', enable: true, autoRefresh: false, }, hide: { auto: false, autoDelay: 5000, onClick: false, onOutsideClick: true, onOutsideContextMenu: false, onBackgroundClick: true, onEscKeyPress: true, ignore: '', }, }; $.extend(true, settings, self.getDefaultSettings(), userSettings); initSettingsEvents(); }; var initSettingsEvents = function() { $.each(settings, function(settingKey) { var eventName = settingKey.match(/^on([A-Z].*)/); if (!eventName) { return; } eventName = eventName[1].charAt(0).toLowerCase() + eventName[1].slice(1); self.on(eventName, this); }); }; var isContextMenuClickEvent = function(event) { // Firefox fires `click` event on every `contextmenu` event. return event.type === 'click' && event.button === 2; }; var normalizeClassName = function(name) { return name.replace(/([a-z])([A-Z])/g, function() { return arguments[1] + '-' + arguments[2].toLowerCase(); }); }; var onWindowKeyUp = function(event) { var ESC_KEY = 27, keyCode = event.which; if (ESC_KEY === keyCode) { self.hide(); } }; var unbindEvents = function() { var windows = [elements.window]; if (elements.iframe) { windows.push(jQuery(elements.iframe[0].contentWindow)); } windows.forEach(function(window) { if (settings.hide.onEscKeyPress) { window.off('keyup', onWindowKeyUp); } if (settings.hide.onOutsideClick) { window[0].removeEventListener('click', hideOnOutsideClick, true); } if (settings.hide.onOutsideContextMenu) { window[0].removeEventListener('contextmenu', hideOnOutsideClick, true); } if (settings.position.autoRefresh) { window.off('resize', self.refreshPosition); } }); if (settings.hide.onClick || settings.hide.onBackgroundClick) { elements.widget.off('click', hideOnClick); } }; this.addElement = function(name, element, classes) { var $newElement = elements[name] = $(element || '
'), normalizedName = normalizeClassName(name); classes = classes ? classes + ' ' : ''; classes += settings.classes.globalPrefix + '-' + normalizedName; classes += ' ' + settings.classes.prefix + '-' + normalizedName; $newElement.addClass(classes); return $newElement; }; this.destroy = function() { unbindEvents(); elements.widget.remove(); self.trigger('destroy'); return self; }; this.getElements = function(item) { return item ? elements[item] : elements; }; this.getSettings = function(setting) { var copy = Object.create(settings); if (setting) { return copy[setting]; } return copy; }; this.hide = function() { if (! self.isVisible()) { return; } clearTimeout(hideTimeOut); callEffect('hide', arguments); unbindEvents(); if (settings.preventScroll) { self.getElements('body').removeClass(settings.classes.preventScroll); } self.trigger('hide'); return self; }; this.init = function(parent, properties) { if (!(parent instanceof DialogsManager.Instance)) { throw 'The ' + self.widgetName + ' must to be initialized from an instance of DialogsManager.Instance'; } ensureClosureMethods(); self.trigger('init', properties); initSettings(parent, properties); initElements(); self.buildWidget(); self.attachEvents(); self.trigger('ready'); return self; }; this.isVisible = function() { return elements.widget.is(':visible'); }; this.on = function(eventName, callback) { if ('object' === typeof eventName) { $.each(eventName, function(singleEventName) { self.on(singleEventName, this); }); return self; } var eventNames = eventName.split(' '); eventNames.forEach(function(singleEventName) { if (!events[singleEventName]) { events[singleEventName] = []; } events[singleEventName].push(callback); }); return self; }; this.off = function(eventName, callback) { if (! events[ eventName ]) { return self; } if (! callback) { delete events[eventName]; return self; } var callbackIndex = events[eventName].indexOf(callback); if (-1 !== callbackIndex) { events[eventName].splice(callbackIndex, 1); } return self; }; this.refreshPosition = function() { if (! settings.position.enable) { return; } var position = $.extend({}, settings.position); if (elements[position.of]) { position.of = elements[position.of]; } if (! position.of) { position.of = window; } if (settings.iframe) { fixIframePosition(position); } elements[position.element].position(position); }; this.setID = function(id) { elements.widget.attr('id', id); return self; }; this.setHeaderMessage = function(message) { self.getElements('header').html(message); return self; }; this.setMessage = function(message) { elements.message.html(message); return self; }; this.setSettings = function(key, value) { if (jQuery.isPlainObject(value)) { $.extend(true, settings[key], value); } else { settings[key] = value; } return self; }; this.show = function() { clearTimeout(hideTimeOut); elements.widget.appendTo(elements.container).hide(); callEffect('show', arguments); self.refreshPosition(); if (settings.hide.auto) { hideTimeOut = setTimeout(self.hide, settings.hide.autoDelay); } bindEvents(); if (settings.preventScroll) { self.getElements('body').addClass(settings.classes.preventScroll); } self.trigger('show'); return self; }; this.trigger = function(eventName, params) { var methodName = 'on' + eventName[0].toUpperCase() + eventName.slice(1); if (self[methodName]) { self[methodName](params); } var callbacks = events[eventName]; if (!callbacks) { return; } $.each(callbacks, function(index, callback) { callback.call(self, params); }); return self; }; }; DialogsManager.Widget.prototype.types = []; // Inheritable widget methods DialogsManager.Widget.prototype.buildWidget = function() { var elements = this.getElements(), settings = this.getSettings(); elements.widget.append(elements.header, elements.message); this.setHeaderMessage(settings.headerMessage); this.setMessage(settings.message); if (this.getSettings('closeButton')) { elements.widget.prepend(elements.closeButton); } }; DialogsManager.Widget.prototype.attachEvents = function() { var self = this; if (self.getSettings('closeButton')) { self.getElements('closeButton').on('click', function(event) { event.preventDefault(); self.hide(); }); } }; DialogsManager.Widget.prototype.getDefaultSettings = function() { return {}; }; DialogsManager.Widget.prototype.getClosureMethods = function() { return []; }; DialogsManager.Widget.prototype.onHide = function() { }; DialogsManager.Widget.prototype.onShow = function() { }; DialogsManager.Widget.prototype.onInit = function() { }; DialogsManager.Widget.prototype.onReady = function() { }; DialogsManager.widgetsTypes.simple = DialogsManager.Widget; DialogsManager.addWidgetType('buttons', { activeKeyUp: function(event) { var TAB_KEY = 9; if (event.which === TAB_KEY) { event.preventDefault(); } if (this.hotKeys[event.which]) { this.hotKeys[event.which](this); } }, activeKeyDown: function(event) { if (!this.focusedButton) { return; } var TAB_KEY = 9; if (event.which === TAB_KEY) { event.preventDefault(); var currentButtonIndex = this.focusedButton.index(), nextButtonIndex; if (event.shiftKey) { nextButtonIndex = currentButtonIndex - 1; if (nextButtonIndex < 0) { nextButtonIndex = this.buttons.length - 1; } } else { nextButtonIndex = currentButtonIndex + 1; if (nextButtonIndex >= this.buttons.length) { nextButtonIndex = 0; } } this.focusedButton = this.buttons[nextButtonIndex].trigger('focus'); } }, addButton: function(options) { var self = this, settings = self.getSettings(), buttonSettings = jQuery.extend(settings.button, options); var classes = options.classes ? options.classes + ' ' : ''; classes += settings.classes.globalPrefix + '-button'; var $button = self.addElement(options.name, $('<' + buttonSettings.tag + '>').html(options.text), classes); self.buttons.push($button); var buttonFn = function() { if (settings.hide.onButtonClick) { self.hide(); } if ('function' === typeof options.callback) { options.callback.call(this, self); } }; $button.on('click', buttonFn); if (options.hotKey) { this.hotKeys[options.hotKey] = buttonFn; } this.getElements('buttonsWrapper').append($button); if (options.focus) { this.focusedButton = $button; } return self; }, bindHotKeys: function() { this.getElements('window').on({ keyup: this.activeKeyUp, keydown: this.activeKeyDown }); }, buildWidget: function() { DialogsManager.Widget.prototype.buildWidget.apply(this, arguments); var $buttonsWrapper = this.addElement('buttonsWrapper'); this.getElements('widget').append($buttonsWrapper); }, getClosureMethods: function() { return [ 'activeKeyUp', 'activeKeyDown' ]; }, getDefaultSettings: function() { return { hide: { onButtonClick: true }, button: { tag: 'button' } }; }, onHide: function() { this.unbindHotKeys(); }, onInit: function() { this.buttons = []; this.hotKeys = {}; this.focusedButton = null; }, onShow: function() { this.bindHotKeys(); if (!this.focusedButton) { this.focusedButton = this.buttons[0]; } if (this.focusedButton) { this.focusedButton.trigger('focus'); } }, unbindHotKeys: function() { this.getElements('window').off({ keyup: this.activeKeyUp, keydown: this.activeKeyDown }); } }); DialogsManager.addWidgetType('lightbox', DialogsManager.getWidgetType('buttons').extend('lightbox', { getDefaultSettings: function() { var settings = DialogsManager.getWidgetType('buttons').prototype.getDefaultSettings.apply(this, arguments); return $.extend(true, settings, { contentWidth: 'auto', contentHeight: 'auto', position: { element: 'widgetContent', of: 'widget', autoRefresh: true } }); }, buildWidget: function() { DialogsManager.getWidgetType('buttons').prototype.buildWidget.apply(this, arguments); var $widgetContent = this.addElement('widgetContent'), elements = this.getElements(); $widgetContent.append(elements.header, elements.message, elements.buttonsWrapper); elements.widget.html($widgetContent); if (elements.closeButton) { $widgetContent.prepend(elements.closeButton); } }, onReady: function() { var elements = this.getElements(), settings = this.getSettings(); if ('auto' !== settings.contentWidth) { elements.message.width(settings.contentWidth); } if ('auto' !== settings.contentHeight) { elements.message.height(settings.contentHeight); } } })); DialogsManager.addWidgetType('confirm', DialogsManager.getWidgetType('lightbox').extend('confirm', { onReady: function() { DialogsManager.getWidgetType('lightbox').prototype.onReady.apply(this, arguments); var strings = this.getSettings('strings'), isDefaultCancel = this.getSettings('defaultOption') === 'cancel'; this.addButton({ name: 'cancel', text: strings.cancel, callback: function(widget) { widget.trigger('cancel'); }, focus: isDefaultCancel }); this.addButton({ name: 'ok', text: strings.confirm, callback: function(widget) { widget.trigger('confirm'); }, focus: !isDefaultCancel }); }, getDefaultSettings: function() { var settings = DialogsManager.getWidgetType('lightbox').prototype.getDefaultSettings.apply(this, arguments); settings.strings = { confirm: 'OK', cancel: 'Cancel' }; settings.defaultOption = 'cancel'; return settings; } })); DialogsManager.addWidgetType('alert', DialogsManager.getWidgetType('lightbox').extend('alert', { onReady: function() { DialogsManager.getWidgetType('lightbox').prototype.onReady.apply(this, arguments); var strings = this.getSettings('strings'); this.addButton({ name: 'ok', text: strings.confirm, callback: function(widget) { widget.trigger('confirm'); } }); }, getDefaultSettings: function() { var settings = DialogsManager.getWidgetType('lightbox').prototype.getDefaultSettings.apply(this, arguments); settings.strings = { confirm: 'OK' }; return settings; } })); // Exporting the DialogsManager variable to global global.DialogsManager = DialogsManager; })( typeof jQuery !== 'undefined' ? jQuery : typeof require === 'function' && require('jquery'), (typeof module !== 'undefined' && typeof module.exports !== 'undefined') ? module.exports : window ); {"id":13557,"date":"2023-08-22T22:36:11","date_gmt":"2023-08-22T22:36:11","guid":{"rendered":"https:\/\/weeklypostgazette.com\/?p=13557"},"modified":"2023-08-22T22:36:11","modified_gmt":"2023-08-22T22:36:11","slug":"half-price-books","status":"publish","type":"post","link":"https:\/\/weeklypostgazette.com\/half-price-books\/","title":{"rendered":"Half Price Books A Treasure Trove for Avid Readers"},"content":{"rendered":"

In today’s digital age, the allure of a physical book, the rustling of pages, and the scent of ink can still captivate the heart of any book enthusiast. Half Price Books stands as a haven for those who cherish the written word while seeking incredible deals. Whether you’re an avid reader, a collector, or a casual browser, this article delves into the realm of Half Price Books, uncovering its treasures, sharing insights, and providing answers to common queries.<\/span><\/p>\n

Half Price Books: More Than Just a Bookstore<\/span><\/h2>\n

As the name suggests, Half Price Books<\/a> is not your typical bookstore. Established in 1972, it has grown into a chain of stores across the United States, offering an unparalleled collection of new and used books, music, movies, and more. The concept is simple yet brilliant\u2014providing readers with an extensive range of items at half the price or less, making the joy of reading and exploring more accessible to everyone.<\/span><\/p>\n

Exploring the Shelves of Half Price Books<\/span><\/h2>\n

At Half Price Books, the shelves are a treasure trove waiting to be discovered. From classic literature to contemporary bestsellers, from vinyl records to vintage movie posters, the selection is diverse and thrilling. Whether you’re hunting for a specific title or simply seeking inspiration, you’ll find yourself lost in the maze of aisles, each offering a unique glimpse into the world of creativity and imagination.<\/span><\/p>\n

Unveiling the Gems: Rare Finds and Collectibles<\/span><\/h3>\n

While the name might imply budget buys alone, Half Price Books often surprises patrons with rare and valuable finds. Collectors of first editions, signed copies, and out-of-print titles are in for a treat. The thrill of stumbling upon a cherished edition or an unexpected gem adds an element of excitement to every visit.<\/span><\/p>\n

A Haven for Bookworms: Creating a Community<\/span><\/h2>\n

Half Price Books isn’t merely a retail space\u2014it’s a community hub for book enthusiasts. Regular events such as author signings, book clubs, and reading challenges foster a sense of belonging among like-minded individuals. It’s a place where conversations flow as freely as recommendations, and where lifelong friendships are formed over shared literary interests.<\/span><\/p>\n

Embracing the Digital Age: Online Presence<\/span><\/h3>\n

In an era dominated by online shopping, Half Price Books has seamlessly embraced the digital age. Their website offers a user-friendly interface for browsing, purchasing, and even selling items. The convenience of exploring their inventory from the comfort of your home is an added advantage, ensuring that the love for physical books never wanes.<\/span><\/p>\n

The Cycle of Giving: Selling and Trading<\/span><\/h3>\n

Have books, music, or movies you no longer need? Half Price Books encourages recycling your beloved items by buying them back. This sustainable approach not only allows you to declutter but also lets someone else discover joy in your preloved possessions. It’s a cycle of giving that benefits both you and the next reader.<\/span><\/p>\n

FAQs<\/span><\/h3>\n

Can I sell my books at Half Price Books?<\/b><\/p>\n

Absolutely! Half Price Book offers cash or store credit for items you’re willing to sell. Just bring your items to the store, and the friendly staff will assist you in the selling process.<\/span><\/p>\n

Are the books in good condition?<\/b><\/p>\n

Yes, Half Price Book ensures that all items in their collection are in good condition. While you can find both new and used books, their quality control ensures that you receive value for your money.<\/span><\/p>\n

Can I find rare titles at Half Price Book?<\/b><\/p>\n

Certainly! Half Price Book often surprises customers with rare and unique titles. While availability may vary, the thrill of discovering a hidden treasure is part of the experience.<\/span><\/p>\n

Do they only sell books?<\/b><\/p>\n

No, in addition to books, Half Price Book offers an array of other items, including music<\/a>, movies, vinyl records, and even collectibles. The diverse selection caters to various interests.<\/span><\/p>\n

Is Half Price Book only for budget shoppers?<\/b><\/p>\n

Not at all! While the affordability is a significant draw, Half Price Book appeals to a wide range of customers, from budget-conscious individuals to collectors and enthusiasts.<\/span><\/p>\n

Can I order online?<\/b><\/p>\n

Yes, Half Price Book has an online platform that allows you to explore their collection, make purchases, and even sell items. The website offers a convenient way to engage with their offerings.<\/span><\/p>\n

Conclusion<\/span><\/h2>\n

Half Price Books stands as a beacon for all who revel in the magic of literature and the allure of budget-friendly shopping. With a diverse collection, a commitment to community, and the thrill of unexpected finds, it has solidified its place in the hearts of book enthusiasts. Whether you’re seeking your next literary adventure or embarking on a treasure hunt for unique titles, Half Price Book promises an experience like no other.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"

In today’s digital age, the allure of a physical book, the rustling of pages, and the scent of ink can still captivate the heart of any book enthusiast. Half Price Books stands as a haven for those who cherish the written word while seeking incredible deals. Whether you’re an avid reader, a collector, or a […]<\/p>\n","protected":false},"author":1,"featured_media":13565,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-13557","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-latest"],"yoast_head":"\nHalf Price Books A Treasure Trove for Avid Readers<\/title>\n<meta name=\"description\" content=\"Half Price Books stands as a beacon for all who revel in the magic of literature and the allure of budget-friendly shopping. With a diverse\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/weeklypostgazette.com\/half-price-books\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Half Price Books A Treasure Trove for Avid Readers\" \/>\n<meta property=\"og:description\" content=\"Half Price Books stands as a beacon for all who revel in the magic of literature and the allure of budget-friendly shopping. With a diverse\" \/>\n<meta property=\"og:url\" content=\"https:\/\/weeklypostgazette.com\/half-price-books\/\" \/>\n<meta property=\"og:site_name\" content=\"Weekly Post Gazette\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-22T22:36:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png\" \/>\n\t<meta property=\"og:image:width\" content=\"803\" \/>\n\t<meta property=\"og:image:height\" content=\"497\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/weeklypostgazette.com\/#\/schema\/person\/ec7256dded682538a10ff4fdd9738316\"},\"headline\":\"Half Price Books A Treasure Trove for Avid Readers\",\"datePublished\":\"2023-08-22T22:36:11+00:00\",\"dateModified\":\"2023-08-22T22:36:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/\"},\"wordCount\":778,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/weeklypostgazette.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png\",\"articleSection\":[\"Latest\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/weeklypostgazette.com\/half-price-books\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/\",\"url\":\"https:\/\/weeklypostgazette.com\/half-price-books\/\",\"name\":\"Half Price Books A Treasure Trove for Avid Readers\",\"isPartOf\":{\"@id\":\"https:\/\/weeklypostgazette.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png\",\"datePublished\":\"2023-08-22T22:36:11+00:00\",\"dateModified\":\"2023-08-22T22:36:11+00:00\",\"description\":\"Half Price Books stands as a beacon for all who revel in the magic of literature and the allure of budget-friendly shopping. With a diverse\",\"breadcrumb\":{\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/weeklypostgazette.com\/half-price-books\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/#primaryimage\",\"url\":\"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png\",\"contentUrl\":\"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png\",\"width\":803,\"height\":497,\"caption\":\"Half Price Books\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/weeklypostgazette.com\/half-price-books\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/weeklypostgazette.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Half Price Books A Treasure Trove for Avid Readers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/weeklypostgazette.com\/#website\",\"url\":\"https:\/\/weeklypostgazette.com\/\",\"name\":\"Weekly Post Gazette\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/weeklypostgazette.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/weeklypostgazette.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/weeklypostgazette.com\/#organization\",\"name\":\"Weekly Post Gazette\",\"url\":\"https:\/\/weeklypostgazette.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/weeklypostgazette.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/05\/weekly-post-gazette-logo.png\",\"contentUrl\":\"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/05\/weekly-post-gazette-logo.png\",\"width\":170,\"height\":45,\"caption\":\"Weekly Post Gazette\"},\"image\":{\"@id\":\"https:\/\/weeklypostgazette.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/weeklypostgazette.com\/#\/schema\/person\/ec7256dded682538a10ff4fdd9738316\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/weeklypostgazette.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/02a42c746d0e94d995d0b094754efdf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/02a42c746d0e94d995d0b094754efdf4?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/weeklypostgazette.com\"],\"url\":\"https:\/\/weeklypostgazette.com\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Half Price Books A Treasure Trove for Avid Readers","description":"Half Price Books stands as a beacon for all who revel in the magic of literature and the allure of budget-friendly shopping. With a diverse","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/weeklypostgazette.com\/half-price-books\/","og_locale":"en_US","og_type":"article","og_title":"Half Price Books A Treasure Trove for Avid Readers","og_description":"Half Price Books stands as a beacon for all who revel in the magic of literature and the allure of budget-friendly shopping. With a diverse","og_url":"https:\/\/weeklypostgazette.com\/half-price-books\/","og_site_name":"Weekly Post Gazette","article_published_time":"2023-08-22T22:36:11+00:00","og_image":[{"width":803,"height":497,"url":"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/weeklypostgazette.com\/half-price-books\/#article","isPartOf":{"@id":"https:\/\/weeklypostgazette.com\/half-price-books\/"},"author":{"name":"admin","@id":"https:\/\/weeklypostgazette.com\/#\/schema\/person\/ec7256dded682538a10ff4fdd9738316"},"headline":"Half Price Books A Treasure Trove for Avid Readers","datePublished":"2023-08-22T22:36:11+00:00","dateModified":"2023-08-22T22:36:11+00:00","mainEntityOfPage":{"@id":"https:\/\/weeklypostgazette.com\/half-price-books\/"},"wordCount":778,"commentCount":0,"publisher":{"@id":"https:\/\/weeklypostgazette.com\/#organization"},"image":{"@id":"https:\/\/weeklypostgazette.com\/half-price-books\/#primaryimage"},"thumbnailUrl":"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png","articleSection":["Latest"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/weeklypostgazette.com\/half-price-books\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/weeklypostgazette.com\/half-price-books\/","url":"https:\/\/weeklypostgazette.com\/half-price-books\/","name":"Half Price Books A Treasure Trove for Avid Readers","isPartOf":{"@id":"https:\/\/weeklypostgazette.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/weeklypostgazette.com\/half-price-books\/#primaryimage"},"image":{"@id":"https:\/\/weeklypostgazette.com\/half-price-books\/#primaryimage"},"thumbnailUrl":"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png","datePublished":"2023-08-22T22:36:11+00:00","dateModified":"2023-08-22T22:36:11+00:00","description":"Half Price Books stands as a beacon for all who revel in the magic of literature and the allure of budget-friendly shopping. With a diverse","breadcrumb":{"@id":"https:\/\/weeklypostgazette.com\/half-price-books\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/weeklypostgazette.com\/half-price-books\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/weeklypostgazette.com\/half-price-books\/#primaryimage","url":"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png","contentUrl":"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/08\/Screenshot_22.png","width":803,"height":497,"caption":"Half Price Books"},{"@type":"BreadcrumbList","@id":"https:\/\/weeklypostgazette.com\/half-price-books\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/weeklypostgazette.com\/"},{"@type":"ListItem","position":2,"name":"Half Price Books A Treasure Trove for Avid Readers"}]},{"@type":"WebSite","@id":"https:\/\/weeklypostgazette.com\/#website","url":"https:\/\/weeklypostgazette.com\/","name":"Weekly Post Gazette","description":"","publisher":{"@id":"https:\/\/weeklypostgazette.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/weeklypostgazette.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/weeklypostgazette.com\/#organization","name":"Weekly Post Gazette","url":"https:\/\/weeklypostgazette.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/weeklypostgazette.com\/#\/schema\/logo\/image\/","url":"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/05\/weekly-post-gazette-logo.png","contentUrl":"https:\/\/weeklypostgazette.com\/wp-content\/uploads\/2023\/05\/weekly-post-gazette-logo.png","width":170,"height":45,"caption":"Weekly Post Gazette"},"image":{"@id":"https:\/\/weeklypostgazette.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/weeklypostgazette.com\/#\/schema\/person\/ec7256dded682538a10ff4fdd9738316","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/weeklypostgazette.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/02a42c746d0e94d995d0b094754efdf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/02a42c746d0e94d995d0b094754efdf4?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/weeklypostgazette.com"],"url":"https:\/\/weeklypostgazette.com\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/posts\/13557"}],"collection":[{"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/comments?post=13557"}],"version-history":[{"count":0,"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/posts\/13557\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/media\/13565"}],"wp:attachment":[{"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/media?parent=13557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/categories?post=13557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/weeklypostgazette.com\/wp-json\/wp\/v2\/tags?post=13557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}