<?php
/**
 * Form Single template.
 *
 * @package SureForms
 */

use SRFM\Inc\Generate_Form_Markup;
use SRFM\Inc\Helper;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

$srfm_custom_post_id = absint( get_the_ID() );
$srfm_form_preview   = isset( $_GET['form_preview'] ) ? boolval( wp_unslash( $_GET['form_preview'] ) ) : false;  // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Nonce verification is not required here.
$srfm_live_mode_data = Helper::get_instant_form_live_data();

$instant_form_settings         = ! empty( $srfm_live_mode_data ) ? $srfm_live_mode_data : Helper::get_array_value( Helper::get_post_meta( $srfm_custom_post_id, '_srfm_instant_form_settings' ) );
$site_logo                     = $instant_form_settings['site_logo'];
$bg_type                       = $instant_form_settings['bg_type'];
$bg_color                      = $instant_form_settings['bg_color'];
$cover_type                    = $instant_form_settings['cover_type'];
$cover_color                   = $instant_form_settings['cover_color'];
$cover_image                   = $instant_form_settings['cover_image'];
$enable_instant_form           = $instant_form_settings['enable_instant_form'];
$form_container_width          = $instant_form_settings['form_container_width'];
$single_page_form_title        = $instant_form_settings['single_page_form_title'];
$use_banner_as_page_background = $instant_form_settings['use_banner_as_page_background'];

$srfm_cover_image_url = $cover_image ? rawurldecode( strval( $cover_image ) ) : '';

// Filter to use custom bg image and color combination on the Instant Form page.
if ( apply_filters( 'srfm_use_color_or_image_as_bg', true ) ) {
	if ( 'image' === $bg_type ) {
		$bg_color = '#ffffff';
	} else {
		$bg_color = $bg_color ? $bg_color : '';
	}
}

$body_classes = [];

if ( $use_banner_as_page_background ) {
	$body_classes[] = 'srfm-has-banner-page-bg';

	if ( 'image' === $cover_type && ! empty( $srfm_cover_image_url ) ) {
		$body_classes[] = 'srfm-has-cover-img';
	}
}

?>
<!DOCTYPE html>
<html class="srfm-html" <?php language_attributes(); ?>>

<head>
	<meta charset="<?php bloginfo( 'charset' ); ?>">
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<?php if ( ! wp_is_block_theme() ) { ?>
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<?php
	}
	?>
	<style>
		<?php
		echo wp_kses_post( Helper::get_meta_value( $srfm_custom_post_id, '_srfm_form_custom_css' ) );

		if ( $srfm_live_mode_data ) {
			?>
			html {
				margin: 0 !important;
				opacity: 0;
				transition: all 0.5s ease-in-out;
			}
			#wpadminbar {
				display: none;
			}
			body {
				pointer-events: none;
			}
			<?php
		}

		if ( ! $srfm_form_preview ) {
			?>
			body * {
				/* Maintain consistent box-sizing for different themes. */
				box-sizing: border-box;
			}
			#srfm-single-page-container {
				--srfm-form-container-width: <?php echo esc_attr( $form_container_width . 'px' ); ?>;
				--srfm-bg-color: <?php echo $bg_color && is_string( $bg_color ) ? esc_html( $bg_color ) : ''; ?>;
			}
			<?php
			$selector = '.single-sureforms_form .srfm-single-page-container .srfm-page-banner';

			if ( $use_banner_as_page_background ) {
				$selector = 'html body.single-sureforms_form';
			}
			?>
			<?php echo esc_html( $selector ); ?> {
				<?php if ( 'image' === $cover_type && ! empty( $srfm_cover_image_url ) ) { ?>
					background-image: url(<?php echo esc_attr( $srfm_cover_image_url ); ?> );
					background-position: center;
					background-repeat: no-repeat;
					background-size: cover;
					<?php if ( $use_banner_as_page_background ) { ?>
						background-attachment: fixed;
					<?php } ?>
				<?php } else { ?>
					background-color: <?php echo esc_attr( $cover_color ); ?>;
				<?php } ?>
			}
			<?php
		} else {
			?>
			html.srfm-html {
				margin-top: 0 !important;
				/* make the background transparent for the sureforms/form block preview */
				background-color: transparent;
				/* Needs to be important to remove margin-top added by WordPress admin bar  */
			}
			body.single.single-sureforms_form {
				background-color: transparent;
			}
			.srfm-form-container~div,
			.srfm-instant-form-wrn-ctn {
				display: none !important;
				/* Needs to be important to remove any blocks added by external plugins in wp_footer() */
			}
			<?php
		}
		?>
	</style>

	<?php wp_head(); ?>
</head>

	<?php
	// Filter to use custom body content on the Instant Form page.
	if ( ! apply_filters( 'srfm_use_custom_body_template', false ) ) {
		?>
		<body <?php body_class( $body_classes ); ?>>
		<?php if ( ! $srfm_form_preview ) { ?>
				<div id="srfm-single-page-container" class="srfm-single-page-container <?php echo (bool) $single_page_form_title ? 'has-form-title' : ''; ?>">
					<div class="srfm-page-banner">
						<?php
						if ( ! empty( $site_logo ) ) {
							?>
							<a href="<?php echo esc_url( home_url() ); ?>" aria-label="<?php esc_attr_e( 'Link to homepage', 'sureforms' ); ?>">
								<img class="srfm-site-logo" src="<?php echo esc_url( $site_logo ); ?>" alt="<?php esc_attr_e( 'Instant form site logo', 'sureforms' ); ?>">
							</a>
							<?php
						}

						if ( ! empty( $single_page_form_title ) ) {
							?>
							<h1 class="srfm-single-banner-title"><?php echo esc_html( get_the_title() ); ?></h1>
							<?php
						}
						?>
					</div>
					<div class="srfm-form-wrapper">
						<?php
						// phpcs:ignore
						echo Generate_Form_Markup::get_form_markup( $srfm_custom_post_id, false, '', 'sureforms_form' );
						// phpcs:ignoreEnd
						?>
					</div>
					<?php
					if ( ! Helper::has_pro() ) {
						// Display SureForms branding if SureForms Pro is not activated.
						echo wp_kses_post(
							sprintf(
								'<a href="%1$s" class="srfm-branding" target="_blank">%2$s</a>',
								esc_url( SRFM_WEBSITE ),
								/* translators: Here %s is the plugin's name. */
									sprintf( esc_html__( 'Crafted with ♡ %s', 'sureforms' ), 'SureForms' )
							)
						);
					}
					?>
				</div>
		<?php } else { ?>
				<?php
				show_admin_bar( false );
				// phpcs:ignore
				echo Generate_Form_Markup::get_form_markup( $srfm_custom_post_id, false, 'sureforms_form' );
				// phpcs:ignoreEnd
		}
			wp_footer();
		?>
		</body>
		<?php
	}

	if ( ! $srfm_form_preview && empty( $enable_instant_form ) ) {
		?>
		<div class="srfm-form-status-badge"><?php esc_html_e( 'Instant Form Disabled', 'sureforms' ); ?></div>
		<?php
	}

	// Action to load custom body content on the Instant Form page.
	do_action( 'srfm_after_instant_form_body', $srfm_custom_post_id, $instant_form_settings, $body_classes );

	if ( $srfm_live_mode_data ) {
		?>
			<script>
				(function() {
					document.addEventListener('DOMContentLoaded', function() {
						document.querySelector('html').style.opacity = 1;
					});
				}());
			</script>
		<?php
	}
	?>

</html>
<?php
