<?php
/**
 * Maho
 *
 * @category    design
 * @package     base_default
 * @copyright   Copyright (c) 2006-2020 Magento, Inc. (https://magento.com)
 * @copyright   Copyright (c) 2021-2024 The OpenMage Contributors (https://openmage.org)
 * @copyright   Copyright (c) 2024 Maho (https://mahocommerce.com)
 * @license     https://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */

/**
 * Template for displaying product price at product view page, gift registry and wishlist
 *
 * @var Mage_Catalog_Block_Product_Price $this
 */
?>
<?php
    /** @var Mage_Core_Helper_Data $_coreHelper */
    $_coreHelper = $this->helper('core');
    /** @var Mage_Catalog_Helper_Data $_catalogHelper */
    $_catalogHelper = $this->helper('catalog');

    /** @var Mage_Catalog_Model_Product $_product */
    $_product = $this->getProduct();
    $_id = $_product->getId();
    $_msrpPrice = '';
    $priceElementIdPrefix = $this->getPriceElementIdPrefix() ? $this->getPriceElementIdPrefix() : 'product-price-';
?>
    <div class="price-box map-info">
    <?php $_price = $this->helper('tax')->getPrice($_product, $_product->getMsrp()) ?>
        <?php if($_product->getMsrp()): ?>
            <?php $_msrpPrice = $_coreHelper->currency($_product->getMsrp(),true,true) ?>
            <span class="old-price" ><?= $_msrpPrice ?></span>
        <?php endif ?>

        <?php if ($_catalogHelper->isShowPriceOnGesture($_product)): ?>
            <?php $priceElementId = $priceElementIdPrefix . $_id . $this->getIdSuffix(); ?>
            <span id="<?= $priceElementId ?>" style="display:none"></span>
            <?php $popupId = 'msrp-popup-' . $_id . $_coreHelper->getRandomString(20); ?>
            <a href="#" id="<?php echo($popupId);?>"><?= $this->__('Click for price') ?></a>
            <script type="text/javascript">
                window.addEventListener('load', function() {
                    const priceElement = document.getElementById("<?= $priceElementId ?>");
                    const realPrice = <?= $this->getRealPriceJs($_product) ?>;

                    // Create a temporary div to safely parse HTML
                    const tempDiv = document.createElement('div');
                    tempDiv.innerHTML = realPrice;
                    const priceHtml = tempDiv.innerHTML; // This replaces stripScripts()
                    priceElement.innerHTML = priceHtml;

                    const scripts = tempDiv.getElementsByTagName('script');
                    Array.from(scripts).forEach(script => {
                        eval(script.innerHTML);
                    });

                    let originalOptionPriceReload;
                    if (typeof optionsPrice !== 'undefined' && optionsPrice && optionsPrice.reload) {
                        originalOptionPriceReload = optionsPrice.reload;
                        Product.OptionsPrice.prototype.reload = function() {
                            if (originalOptionPriceReload) {
                                originalOptionPriceReload.call(this);
                            }

                            const popupElement = document.getElementById('<?= $popupId ?>');
                            if (popupElement === Catalog.Map.active) {
                                const mapPopupPrice = document.getElementById('map-popup-price');
                                mapPopupPrice.innerHTML = document.getElementById("<?= $priceElementId ?>").innerHTML;
                            }
                        }
                        optionsPrice.reload();
                    }
                });

                Catalog.Map.addHelpLink(
                    '<?= $popupId ?>',
                    "<?= $this->escapeHtml($_product->getName()) ?>",
                    document.getElementById("<?= $priceElementId ?>"),
                    '<?= $_msrpPrice ?>',
                    "<?= $_product->isSalable() ? $this->getAddToCartUrlCustom($_product, [], false) : '' ?>"
                );
            </script>
        <?php else: ?>
            <span class="msrp-price-hide-message">
                <?= $_catalogHelper->getMsrpPriceMessage($_product) ?>
            </span>
        <?php endif ?>

        <?php $helpLinkId = 'msrp-help-' . $_id . $_coreHelper->getRandomString(20); ?>
        <a href="#" id="<?php echo($helpLinkId);?>"><?= $this->__("What's this?") ?></a>
        <script type="text/javascript">
            Catalog.Map.addHelpLink(
                '<?= $helpLinkId ?>',
                '<?= Mage::helper('core')->jsQuoteEscape($this->__("What's this?")) ?>'
            );
        </script>
    </div>
