<?php
/**
 * Plugin Name: Fly Green Fund – Flygutsläppskalkylator
 * Description: Shortcode [flygkalkylator] som bäddar in Fly Green Funds utsläppskalkylator. Höjden anpassas automatiskt.
 * Version: 1.0.0
 * Author: Fly Green Fund
 */

if (!defined('ABSPATH')) { exit; }

define('FGF_CALC_DEFAULT_URL', 'https://kalkylator.flygreenfund.se/embed');

function fgf_calc_shortcode($atts) {
    $atts = shortcode_atts(array(
        'url'    => get_option('fgf_calc_url', FGF_CALC_DEFAULT_URL),
        'height' => '900',
    ), $atts, 'flygkalkylator');

    $id  = 'fgf-calc-' . wp_rand(1000, 999999);
    $url = esc_url($atts['url']);
    $h   = intval($atts['height']);

    ob_start(); ?>
    <div class="fgf-calc-wrap" style="width:100%">
      <iframe id="<?php echo esc_attr($id); ?>"
        src="<?php echo $url; ?>"
        title="Flygutsläppskalkylator – Fly Green Fund"
        style="width:100%;min-height:<?php echo $h; ?>px;border:0;display:block"
        loading="lazy"></iframe>
    </div>
    <script>
    (function(){
      var f = document.getElementById(<?php echo wp_json_encode($id); ?>);
      if (!f) return;
      var origin = (function(){ try { return new URL(f.src).origin; } catch(e){ return null; } })();
      window.addEventListener('message', function(e){
        if (origin && e.origin !== origin) return;
        var d = e.data;
        if (d && d.type === 'fgf-calculator-height' && d.height) {
          f.style.height = d.height + 'px';
          f.style.minHeight = '0px';
        }
      });
    })();
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('flygkalkylator', 'fgf_calc_shortcode');

/* Inställningssida: Inställningar → Flygkalkylator */
add_action('admin_menu', function () {
    add_options_page('Flygkalkylator', 'Flygkalkylator', 'manage_options', 'fgf-calc', 'fgf_calc_settings_page');
});
add_action('admin_init', function () {
    register_setting('fgf_calc', 'fgf_calc_url');
});
function fgf_calc_settings_page() { ?>
    <div class="wrap">
      <h1>Flygutsläppskalkylator</h1>
      <p>Använd shortcoden <code>[flygkalkylator]</code> på valfri sida eller inlägg.</p>
      <form method="post" action="options.php">
        <?php settings_fields('fgf_calc'); ?>
        <table class="form-table">
          <tr>
            <th scope="row"><label for="fgf_calc_url">Kalkylatorns URL</label></th>
            <td><input type="url" style="width:420px" id="fgf_calc_url" name="fgf_calc_url"
                 value="<?php echo esc_attr(get_option('fgf_calc_url', FGF_CALC_DEFAULT_URL)); ?>"></td>
          </tr>
        </table>
        <?php submit_button(); ?>
      </form>
    </div>
<?php }
