<?php
/**
 * Banner features
 *
 * Author: Gian MR - http://www.gianmr.com
 *
 * @since 1.0.0
 * @package Majalahpro Core
 */

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

if ( ! function_exists( 'majalahpro_core_top_banner' ) ) {
	/**
	 * Adding banner at top via hook
	 *
	 * @since 1.0.0
	 * @return void
	 */
	function majalahpro_core_top_banner() {
		$majpro_ads = get_option( 'majpro_ads' );
		$majpro_amp = get_option( 'majpro_amp' );
		if ( majalahpro_core_is_amp() ) {
			if ( isset( $majpro_amp['amp_ads_topbanner'] ) && ! empty( $majpro_amp['amp_ads_topbanner'] ) ) {
				echo '<div class="container">';
					echo '<div class="clearfix gmr-headwrapper">';
						echo '<div class="majalahpro-core-topbanner">';
						echo do_shortcode( $majpro_amp['amp_ads_topbanner'] );
						echo '</div>';
					echo '</div>';
				echo '</div>';
			}
		} else {
			if ( isset( $majpro_ads['ads_topbanner'] ) && ! empty( $majpro_ads['ads_topbanner'] ) ) {
				echo '<div class="container">';
					echo '<div class="clearfix gmr-headwrapper">';
						echo '<div class="majalahpro-core-topbanner">';
						echo do_shortcode( $majpro_ads['ads_topbanner'] );
						echo '</div>';
					echo '</div>';
				echo '</div>';
			}
		}
	}
}
add_action( 'majalahpro_core_top_banner', 'majalahpro_core_top_banner', 10 );

if ( ! function_exists( 'majalahpro_core_top_banner_after_menu' ) ) {
	/**
	 * Adding banner at top via hook
	 *
	 * @since 1.0.0
	 * @return void
	 */
	function majalahpro_core_top_banner_after_menu() {
		$majpro_ads = get_option( 'majpro_ads' );
		if ( isset( $majpro_ads['ads_topbanner_aftermenu'] ) && ! empty( $majpro_ads['ads_topbanner_aftermenu'] ) ) {
			echo '<div class="container">';
				echo '<div class="majalahpro-core-topbanner-aftermenu">';
				echo do_shortcode( $majpro_ads['ads_topbanner_aftermenu'] );
				echo '</div>';
			echo '</div>';
		}
	}
}
add_action( 'majalahpro_core_top_banner_after_menu', 'majalahpro_core_top_banner_after_menu', 10 );

if ( ! function_exists( 'majalahpro_core_banner_before_content' ) ) {
	/**
	 * Adding banner at before content via hook
	 *
	 * @since 1.0.0
	 * @return void
	 */
	function majalahpro_core_banner_before_content() {
		$majpro_ads = get_option( 'majpro_ads' );
		$majpro_amp = get_option( 'majpro_amp' );
		if ( majalahpro_core_is_amp() ) {
			if ( isset( $majpro_amp['amp_ads_before_content'] ) && ! empty( $majpro_amp['amp_ads_before_content'] ) ) {
				echo '<div class="majalahpro-core-banner-beforecontent majalahpro-core-center-ads">';
				echo do_shortcode( $majpro_amp['amp_ads_before_content'] );
				echo '</div>';
			}
		} else {
			if ( isset( $majpro_ads['ads_before_content'] ) && ! empty( $majpro_ads['ads_before_content'] ) ) {
				if ( isset( $majpro_ads['ads_before_content_position'] ) && 'left' === $majpro_ads['ads_before_content_position'] ) {
					$class = ' pull-left';
				} elseif ( isset( $majpro_ads['ads_before_content_position'] ) && 'right' === $majpro_ads['ads_before_content_position'] ) {
					$class = ' pull-right';
				} elseif ( isset( $majpro_ads['ads_before_content_position'] ) && 'center' === $majpro_ads['ads_before_content_position'] ) {
					$class = ' majalahpro-core-center-ads';
				} else {
					$class = '';
				}
				echo '<div class="majalahpro-core-banner-beforecontent' . esc_html( $class ) . '">';
				echo do_shortcode( $majpro_ads['ads_before_content'] );
				echo '</div>';
			}
		}
	}
}

if ( ! function_exists( 'majalahpro_core_add_banner_before_content' ) ) :
	/**
	 * Insert content after box content single
	 *
	 * @since 1.0.0
	 * @param string $content Content Posts.
	 * @return string
	 */
	function majalahpro_core_add_banner_before_content( $content ) {
		if ( is_singular( array( 'post' ) ) && in_the_loop() ) {
			$content = majalahpro_core_banner_before_content() . $content;
		}
		return $content;
	}
endif; // endif majalahpro_core_add_banner_before_content.
add_filter( 'the_content', 'majalahpro_core_add_banner_before_content', 30, 1 );

if ( ! function_exists( 'majalahpro_core_banner_after_content' ) ) {
	/**
	 * Adding banner at before content via hook
	 *
	 * @since 1.0.0
	 * @return string
	 */
	function majalahpro_core_banner_after_content() {
		$majpro_ads = get_option( 'majpro_ads' );
		$majpro_amp = get_option( 'majpro_amp' );
		$banner     = '';
		if ( majalahpro_core_is_amp() ) {
			if ( isset( $majpro_amp['amp_ads_after_content'] ) && ! empty( $majpro_amp['amp_ads_after_content'] ) ) {
				$banner .= '<div class="majalahpro-core-banner-aftercontent majalahpro-core-center-ads">';
				$banner .= do_shortcode( $majpro_amp['amp_ads_after_content'] );
				$banner .= '</div>';
			}
		} else {
			if ( isset( $majpro_ads['ads_after_content'] ) && ! empty( $majpro_ads['ads_after_content'] ) ) {
				if ( isset( $majpro_ads['ads_after_content_position'] ) && 'right' === $majpro_ads['ads_after_content_position'] ) {
					$class = ' majalahpro-core-center-right';
				} elseif ( isset( $majpro_ads['ads_after_content_position'] ) && 'center' === $majpro_ads['ads_after_content_position'] ) {
					$class = ' majalahpro-core-center-ads';
				} else {
					$class = '';
				}
				$banner .= '<div class="majalahpro-core-banner-aftercontent' . $class . '">';
				$banner .= do_shortcode( $majpro_ads['ads_after_content'] );
				$banner .= '</div>';
			}
		}
		return $banner;
	}
}

if ( ! function_exists( 'majalahpro_core_add_banner_after_content' ) ) :
	/**
	 * Insert content after box content single
	 *
	 * @since 1.0.0
	 * @param string $content Content Posts.
	 * @return string
	 */
	function majalahpro_core_add_banner_after_content( $content ) {
		if ( is_singular( array( 'post' ) ) && in_the_loop() ) {
			$content = $content . majalahpro_core_banner_after_content();
		}
		return $content;
	}
endif; // endif majalahpro_core_add_banner_after_content.
add_filter( 'the_content', 'majalahpro_core_add_banner_after_content', 30 );

if ( ! function_exists( 'majalahpro_core_helper_after_paragraph' ) ) :
	/**
	 * Helper add content after paragprah
	 *
	 * @param String $insertion Code.
	 * @param Number $paragraph_id ID Paraghrap.
	 * @param String $content Code.
	 * @since 1.0.0
	 * @link http://stackoverflow.com/questions/25888630/place-ads-in-between-text-only-paragraphs
	 * @return string
	 */
	function majalahpro_core_helper_after_paragraph( $insertion, $paragraph_id, $content ) {
		if ( is_singular( array( 'post' ) ) && in_the_loop() ) {
			$closing_p  = '</p>';
			$paragraphs = explode( $closing_p, wptexturize( $content ) );
			$count      = count( $paragraphs );

			foreach ( $paragraphs as $index => $paragraph ) {
				$word_count = count( explode( ' ', $paragraph ) );
				if ( trim( $paragraph ) ) {
					$paragraphs[ $index ] .= $closing_p;
				}
				if ( $paragraph_id == $index + 1 && $count >= 4 ) {
					$paragraphs[ $index ] .= $insertion;
				}
			}
		}
		return implode( '', $paragraphs );
	}
endif; // endif majalahpro_core_helper_after_paragraph.

if ( ! function_exists( 'majalahpro_core_add_banner_inside_content' ) ) :
	/**
	 * Insert content inside content single
	 *
	 * @since 1.0.0
	 * @param string $content Content Posts.
	 * @return string
	 */
	function majalahpro_core_add_banner_inside_content( $content ) {
		$majpro_ads = get_option( 'majpro_ads' );
		$majpro_amp = get_option( 'majpro_amp' );

		if ( isset( $majpro_ads['ads_inside_content_position_paragraf'] ) && '1' === $majpro_ads['ads_inside_content_position_paragraf'] ) {
			$numb = 1;
		} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf'] ) && '2' === $majpro_ads['ads_inside_content_position_paragraf'] ) {
			$numb = 2;
		} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf'] ) && '3' === $majpro_ads['ads_inside_content_position_paragraf'] ) {
			$numb = 3;
		} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf'] ) && '4' === $majpro_ads['ads_inside_content_position_paragraf'] ) {
			$numb = 4;
		} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf'] ) && '5' === $majpro_ads['ads_inside_content_position_paragraf'] ) {
			$numb = 5;
		} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf'] ) && '6' === $majpro_ads['ads_inside_content_position_paragraf'] ) {
			$numb = 6;
		} else {
			$numb = 2;
		}

		if ( majalahpro_core_is_amp() ) {
			if ( isset( $majpro_amp['amp_ads_inside_content'] ) && ! empty( $majpro_amp['amp_ads_inside_content'] ) ) {
				$ad_code = '<div class="majalahpro-core-banner-insidecontent majalahpro-core-center-ads">' . do_shortcode( $majpro_amp['amp_ads_inside_content'] ) . '</div>';
				if ( is_singular( array( 'post' ) ) && in_the_loop() ) {
					return majalahpro_core_helper_after_paragraph( $ad_code, $numb, $content );
				}
			}
		} else {
			if ( isset( $majpro_ads['ads_inside_content'] ) && ! empty( $majpro_ads['ads_inside_content'] ) ) {
				if ( isset( $majpro_ads['ads_inside_content_position'] ) && 'right' === $majpro_ads['ads_inside_content_position'] ) {
					$class = ' majalahpro-core-center-right';
				} elseif ( isset( $majpro_ads['ads_inside_content_position'] ) && 'center' === $majpro_ads['ads_inside_content_position'] ) {
					$class = ' majalahpro-core-center-ads';
				} else {
					$class = '';
				}

				$ad_code = '<div class="majalahpro-core-banner-insidecontent' . $class . '">' . do_shortcode( $majpro_ads['ads_inside_content'] ) . '</div>';
				if ( is_singular( array( 'post' ) ) && in_the_loop() ) {
					return majalahpro_core_helper_after_paragraph( $ad_code, $numb, $content );
				}
			}
		}
		return $content;
	}
endif; // endif majalahpro_core_add_banner_inside_content.
add_filter( 'the_content', 'majalahpro_core_add_banner_inside_content' );

if ( ! function_exists( 'majalahpro_core_add_banner_inside_content_other' ) ) :
	/**
	 * Insert content inside content single other
	 *
	 * @since 1.0.0
	 * @param string $content Content Posts.
	 * @return string
	 */
	function majalahpro_core_add_banner_inside_content_other( $content ) {
		$majpro_ads = get_option( 'majpro_ads' );
		if ( ! majalahpro_core_is_amp() ) {
			if ( isset( $majpro_ads['ads_inside_content_other'] ) && ! empty( $majpro_ads['ads_inside_content_other'] ) ) {
				if ( isset( $majpro_ads['ads_inside_content_position_other'] ) && 'right' === $majpro_ads['ads_inside_content_position_other'] ) {
					$class = ' majalahpro-core-center-right';
				} elseif ( isset( $majpro_ads['ads_inside_content_position_other'] ) && 'center' === $majpro_ads['ads_inside_content_position_other'] ) {
					$class = ' majalahpro-core-center-ads';
				} else {
					$class = '';
				}

				if ( isset( $majpro_ads['ads_inside_content_position_paragraf_other'] ) && '7' === $majpro_ads['ads_inside_content_position_paragraf_other'] ) {
					$numb = 7;
				} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf_other'] ) && '8' === $majpro_ads['ads_inside_content_position_paragraf_other'] ) {
					$numb = 8;
				} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf_other'] ) && '9' === $majpro_ads['ads_inside_content_position_paragraf_other'] ) {
					$numb = 9;
				} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf_other'] ) && '10' === $majpro_ads['ads_inside_content_position_paragraf_other'] ) {
					$numb = 10;
				} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf_other'] ) && '11' === $majpro_ads['ads_inside_content_position_paragraf_other'] ) {
					$numb = 11;
				} elseif ( isset( $majpro_ads['ads_inside_content_position_paragraf_other'] ) && '12' === $majpro_ads['ads_inside_content_position_paragraf_other'] ) {
					$numb = 12;
				} else {
					$numb = 7;
				}

				$ad_code = '<div class="majalahpro-core-banner-insidecontent' . $class . '">' . do_shortcode( $majpro_ads['ads_inside_content_other'] ) . '</div>';
				if ( is_singular( array( 'post' ) ) && in_the_loop() ) {
					return majalahpro_core_helper_after_paragraph( $ad_code, $numb, $content );
				}
			}
		}
		return $content;
	}
endif; // endif majalahpro_core_add_banner_inside_content.
add_filter( 'the_content', 'majalahpro_core_add_banner_inside_content_other' );

if ( ! function_exists( 'majalahpro_core_banner_before_content_attachment' ) ) {
	/**
	 * Adding banner at before content via hook
	 *
	 * @since 1.0.0
	 * @return void
	 */
	function majalahpro_core_banner_before_content_attachment() {
		$majpro_ads = get_option( 'majpro_ads' );
		if ( ! majalahpro_core_is_amp() ) {
			if ( isset( $majpro_ads['ads_before_content_attachment'] ) && ! empty( $majpro_ads['ads_before_content_attachment'] ) ) {
				if ( isset( $majpro_ads['ads_before_content_attachment_position'] ) && 'left' === $majpro_ads['ads_before_content_attachment_position'] ) {
					$class = ' pull-left';
				} elseif ( isset( $majpro_ads['ads_before_content_attachment_position'] ) && 'right' === $majpro_ads['ads_before_content_attachment_position'] ) {
					$class = ' pull-right';
				} elseif ( isset( $majpro_ads['ads_before_content_attachment_position'] ) && 'center' === $majpro_ads['ads_before_content_attachment_position'] ) {
					$class = ' majalahpro-core-center-ads';
				} else {
					$class = '';
				}
				echo '<div class="majalahpro-core-banner-beforecontent' . esc_html( $class ) . '">';
				echo do_shortcode( $majpro_ads['ads_before_content_attachment'] );
				echo '</div>';
			}
		}
	}
}

if ( ! function_exists( 'majalahpro_core_add_banner_before_content_attachment' ) ) :
	/**
	 * Insert content after box content single
	 *
	 * @since 1.0.0
	 * @param string $content Content Posts.
	 * @return string
	 */
	function majalahpro_core_add_banner_before_content_attachment( $content ) {
		if ( is_attachment() && in_the_loop() ) {
			$content = majalahpro_core_banner_before_content_attachment() . $content;
		}
		return $content;
	}
endif; // endif majalahpro_core_add_banner_before_content_attachment.
add_filter( 'the_content', 'majalahpro_core_add_banner_before_content_attachment', 30, 1 );

if ( ! function_exists( 'majalahpro_core_banner_after_content_attachment' ) ) {
	/**
	 * Adding banner at before content via hook
	 *
	 * @since 1.0.0
	 * @return string
	 */
	function majalahpro_core_banner_after_content_attachment() {
		$majpro_ads = get_option( 'majpro_ads' );
		$banner     = '';
		if ( ! majalahpro_core_is_amp() ) {
			if ( isset( $majpro_ads['ads_after_content_attachment'] ) && ! empty( $majpro_ads['ads_after_content_attachment'] ) ) {
				if ( isset( $majpro_ads['ads_after_content_attachment_position'] ) && 'right' === $majpro_ads['ads_after_content_attachment_position'] ) {
					$class = ' majalahpro-core-center-right';
				} elseif ( isset( $majpro_ads['ads_after_content_attachment_position'] ) && 'center' === $majpro_ads['ads_after_content_attachment_position'] ) {
					$class = ' majalahpro-core-center-ads';
				} else {
					$class = '';
				}
				$banner .= '<div class="majalahpro-core-banner-aftercontent' . $class . '">';
				$banner .= do_shortcode( $majpro_ads['ads_after_content_attachment'] );
				$banner .= '</div>';
			}
		}
		return $banner;
	}
}

if ( ! function_exists( 'majalahpro_core_add_banner_after_content_attachment' ) ) :
	/**
	 * Insert content after box content single
	 *
	 * @since 1.0.0
	 * @param string $content Content Posts.
	 * @return string
	 */
	function majalahpro_core_add_banner_after_content_attachment( $content ) {
		if ( is_attachment() && in_the_loop() ) {
			$content = $content . majalahpro_core_banner_after_content_attachment();
		}
		return $content;
	}
endif; // endif majalahpro_core_add_banner_after_content_attachment.
add_filter( 'the_content', 'majalahpro_core_add_banner_after_content_attachment', 30 );

if ( ! function_exists( 'majalahpro_core_floating_banner_left' ) ) {
	/**
	 * Adding banner at top via hook
	 *
	 * @since 1.0.0
	 * @return void
	 */
	function majalahpro_core_floating_banner_left() {
		$majpro_ads = get_option( 'majpro_ads' );

		if ( isset( $majpro_ads['ads_floatbanner_left'] ) && ! empty( $majpro_ads['ads_floatbanner_left'] ) ) {
			echo '<div class="majalahpro-core-floatbanner majalahpro-core-floatbanner-left">';
			echo '<button onclick="parentNode.remove()" title="' . esc_html__( 'close', 'majalahpro-core' ) . '">' . esc_html__( 'close', 'majalahpro-core' ) . '</button>';
			echo do_shortcode( $majpro_ads['ads_floatbanner_left'] );
			echo '</div>';
		}
	}
}
add_action( 'majalahpro_core_floating_banner_left', 'majalahpro_core_floating_banner_left', 10 );

if ( ! function_exists( 'majalahpro_core_floating_banner_right' ) ) {
	/**
	 * Adding floating banner
	 *
	 * @since 1.0.0
	 * @return void
	 */
	function majalahpro_core_floating_banner_right() {
		$majpro_ads = get_option( 'majpro_ads' );

		if ( isset( $majpro_ads['ads_floatbanner_right'] ) && ! empty( $majpro_ads['ads_floatbanner_right'] ) ) {
			echo '<div class="majalahpro-core-floatbanner majalahpro-core-floatbanner-right">';
			echo '<button onclick="parentNode.remove()" title="' . esc_html__( 'close', 'majalahpro-core' ) . '">' . esc_html__( 'close', 'majalahpro-core' ) . '</button>';
			echo do_shortcode( $majpro_ads['ads_floatbanner_right'] );
			echo '</div>';
		}
	}
}
add_action( 'majalahpro_core_floating_banner_right', 'majalahpro_core_floating_banner_right', 15 );

if ( ! function_exists( 'majalahpro_core_floating_banner_footer' ) ) {
	/**
	 * Adding floating banner
	 *
	 * @since 1.0.0
	 * @return void
	 */
	function majalahpro_core_floating_banner_footer() {
		$majpro_ads = get_option( 'majpro_ads' );

		if ( isset( $majpro_ads['ads_floatbanner_footer'] ) && ! empty( $majpro_ads['ads_floatbanner_footer'] ) ) {

			echo '<div class="majalahpro-core-floatbanner majalahpro-core-floatbanner-footer">';
				echo '<div class="container">';
					echo '<div class="inner-floatbanner-bottom">';
					echo '<button onclick="parentNode.remove()" title="' . esc_html__( 'close', 'majalahpro-core' ) . '">' . esc_html__( 'close', 'majalahpro-core' ) . '</button>';
					echo do_shortcode( $majpro_ads['ads_floatbanner_footer'] );
					echo '</div>';
				echo '</div>';
			echo '</div>';

		}
	}
}
add_action( 'majalahpro_core_floating_footer', 'majalahpro_core_floating_banner_footer', 20 );

if ( ! function_exists( 'majalahpro_core_banner_between_posts' ) ) {

	/**
	 * Adding banner between posts in archive and index post
	 *
	 * @since 1.0.5
	 * @return void
	 */
	function majalahpro_core_banner_between_posts() {
		global $wp_query;

		$majpro_ads = get_option( 'majpro_ads' );
		$majpro_amp = get_option( 'majpro_amp' );
		if ( majalahpro_core_is_amp() ) {
			// Check if we're at the right position and option not empty.
			if ( isset( $majpro_amp['amp_ads_after_betweenpost'] ) && ! empty( $majpro_amp['amp_ads_after_betweenpost'] ) ) {
				if ( isset( $majpro_amp['amp_ads_after_betweenpost_position'] ) && '2' === $majpro_amp['amp_ads_after_betweenpost_position'] ) {
					$numb = 1;
				} elseif ( isset( $majpro_amp['amp_ads_after_betweenpost_position'] ) && '3' === $majpro_amp['amp_ads_after_betweenpost_position'] ) {
					$numb = 2;
				} elseif ( isset( $majpro_amp['amp_ads_after_betweenpost_position'] ) && '4' === $majpro_amp['amp_ads_after_betweenpost_position'] ) {
					$numb = 3;
				} else {
					$numb = 0;
				}

				if ( $wp_query->current_post == intval( $numb ) ) {
					// Display the banner.
					echo '<div class="gmr-between-post-banner item">';
						echo '<div class="gmr-box-content">';
							echo do_shortcode( $majpro_amp['amp_ads_after_betweenpost'] );
						echo '</div>';
					echo '</div>';

				}
			}
		} else {
			// Check if we're at the right position and option not empty.
			if ( isset( $majpro_ads['ads_after_betweenpost'] ) && ! empty( $majpro_ads['ads_after_betweenpost'] ) ) {
				if ( isset( $majpro_ads['ads_after_betweenpost_position'] ) && '2' === $majpro_ads['ads_after_betweenpost_position'] ) {
					$numb = 1;
				} elseif ( isset( $majpro_ads['ads_after_betweenpost_position'] ) && '3' === $majpro_ads['ads_after_betweenpost_position'] ) {
					$numb = 2;
				} elseif ( isset( $majpro_ads['ads_after_betweenpost_position'] ) && '4' === $majpro_ads['ads_after_betweenpost_position'] ) {
					$numb = 3;
				} else {
					$numb = 0;
				}

				if ( $wp_query->current_post == intval($numb) ) {
					// Display the banner.
					echo '<div class="gmr-between-post-banner item">';
						echo '<div class="gmr-box-content">';
							echo do_shortcode( $majpro_ads['ads_after_betweenpost'] );
						echo '</div>';
					echo '</div>';

				}
			}
		}
	}
}
add_action( 'majalahpro_core_banner_between_posts', 'majalahpro_core_banner_between_posts', 20 );
