<?php
/**
 * Custom CSS & JS output to customize login page.
 *
 *
 * @author 			WPBrigade
 * @copyright 		Copyright (c) 2021, WPBrigade
 * @link 			https://loginpress.pro/
 * @license			https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*/

namespace LoginCustomizer\Customizer\Panel;
 
 class Custom_Code {

	function __construct() {
		add_action( 'login_enqueue_scripts', array( $this, 'logincust_render_styles' ) );
		add_action( 'login_footer', 		 array( $this, 'logincust_render_script' ) );
	}

	function logincust_render_styles() {
		// Enqueue stylesheet for login styles
		wp_enqueue_style( 'logincust_styles', LOGINCUST_FREE_URL . 'Customizer/Panel/Assets/CSS/customizer.css' );

		// Get plugin options array
		$options = get_option( 'login_customizer_options' );

		// Initialize empty string
		$custom_css = '';

		// Login Page Background CSS
		$custom_css .= 'body.login {';
		if ( ! empty( $options['logincust_bg_image'] ) ) {
			$custom_css .= 'background-image: url(" ' . $options['logincust_bg_image'] . ' ");';
		}
		if ( ! empty( $options['logincust_bg_color'] ) ) {
			$custom_css .= 'background-color: ' . $options['logincust_bg_color'] . ';';
		}
		if ( ! empty( $options['logincust_bg_image_size'] ) ) {
			if ( $options['logincust_bg_image_size'] === 'custom' ) {
				$custom_css .= 'background-size: ' . $options['logincust_bg_size'] . ';';
			} else {
				$custom_css .= 'background-size: ' . $options['logincust_bg_image_size'] . ';';
			}
		}
		if ( ! empty( $options['logincust_bg_image_repeat'] ) ) {
			$custom_css .= 'background-repeat: ' . $options['logincust_bg_image_repeat'] . ';';
		}
		if ( ! empty( $options['logincust_bg_image_position_x'] ) && ! empty( $options['logincust_bg_image_position_y'] ) ) {
			$custom_css .= 'background-position: ' . $options['logincust_bg_image_position_x'] . ' ' . $options['logincust_bg_image_position_y'] . ';';
		}
		$custom_css .= '}';

		// Login Page Logo CSS
		$custom_css .= 'body.login div#login h1 a {';
		if ( ! empty( $options['logincust_logo_show'] ) && $options['logincust_logo_show'] === 1 ) {
			$custom_css .= 'display: none;';
		} else {
			if ( ! empty( $options['logincust_logo'] ) ) {
				$custom_css .= 'background-image: url(" ' . $options['logincust_logo'] . ' ");';
			}
			if ( ! empty( $options['logincust_logo_width'] ) ) {
				$custom_css .= 'width: ' . $options['logincust_logo_width'] . ';';
			}
			if ( ! empty( $options['logincust_logo_height'] ) ) {
				$custom_css .= 'height: ' . $options['logincust_logo_height'] . ';';
			}
			if ( ! empty( $options['logincust_logo_width'] ) || ! empty( $options['logincust_logo_height'] ) ) {

				$options['logincust_logo_height'] 	= isset( $options['logincust_logo_height'] ) ? $options['logincust_logo_height'] : '84px';
				$options['logincust_logo_width'] 	= isset( $options['logincust_logo_width'] ) ? $options['logincust_logo_width'] : '84px';
				
				$custom_css .= 'background-size: ' . $options['logincust_logo_width'] . ' ' . $options['logincust_logo_height'] . ';';
			}
			if ( ! empty( $options['logincust_logo_padding'] ) ) {
				$custom_css .= 'padding-bottom: ' . $options['logincust_logo_padding'] . ';';
			}
		}
		$custom_css .= '}';

		// Login Page Form CSS
		$custom_css .= '#login form#loginform, #login form#registerform, #login form#lostpasswordform, #login form#resetpassform {';
		if ( ! empty( $options['logincust_form_bg_image'] ) ) {
			$custom_css .= 'background-image: url(" ' . $options['logincust_form_bg_image'] . ' ");';
		}
		if ( ! empty( $options['logincust_form_bg_color'] ) ) {
			$custom_css .= 'background-color: ' . $options['logincust_form_bg_color'] . ';';
		}
		if ( ! empty( $options['logincust_form_height'] ) ) {
			$custom_css .= 'min-height: ' . $options['logincust_form_height'] . ';';
		}
		if ( ! empty( $options['logincust_form_padding'] ) ) {
			$custom_css .= 'padding: ' . $options['logincust_form_padding'] . ';';
		}
		if ( ! empty( $options['logincust_form_radius'] ) ) {
			$custom_css .= 'border-radius: ' . $options['logincust_form_radius'] . ';';
		}
		if ( ! empty( $options['logincust_form_shadow_spread'] ) && ! empty( $options['logincust_form_shadow'] ) ) {
			$custom_css .= 'box-shadow: 0 1px ' . $options['logincust_form_shadow_spread'] . ' ' . $options['logincust_form_shadow'] . ';';
		}
		$custom_css .= '}';

		// Login Form Width CSS
		if ( ! empty( $options['logincust_form_width'] ) ) {
			$custom_css .= 'div#login {';
				$custom_css .= 'width: ' . $options['logincust_form_width'] . ';';
			$custom_css .= '}';
		}

		// Rememer Me Link CSS
		if ( ! empty( $options['logincust_field_remember_me'] ) && $options['logincust_field_remember_me'] === 1 ) {
			$custom_css .= '#login form .forgetmenot {';
				$custom_css .= 'display: none;';
			$custom_css .= '}';
		}
		if ( ! empty( $options['logincust_privacy_policy_link'] ) && $options['logincust_privacy_policy_link'] === 1 ) {
			$custom_css .= '.login .privacy-policy-page-link {';
				$custom_css .= 'display: none;';
			$custom_css .= '}';
		}
		// Register Link CSS
		if ( is_customize_preview() ) {
			if ( ! empty( $options['logincust_field_register_link'] ) && $options['logincust_field_register_link'] === 1 ) {
				$custom_css .= '#login #nav a:first-child {';
					$custom_css .= 'display: none;';
				$custom_css .= '}';
			}
			if ( ! empty( $options['logincust_privacy_policy_link'] ) && $options['logincust_privacy_policy_link'] === 1 ) {
				$custom_css .= '.login .privacy-policy-page-link {';
					$custom_css .= 'display: none;';
				$custom_css .= '}';
			}
		}

		// Lost Password Link CSS
		if ( ! empty( $options['logincust_field_lost_password'] ) && $options['logincust_field_lost_password'] === 1 ) {
			$custom_css .= '#login #nav a:last-child {';
				$custom_css .= 'display: none;';
			$custom_css .= '}';
		}

		// Login Page Fields CSS
		$custom_css .= '#login form#loginform .input, #login form#registerform .input, #login form#lostpasswordform .input, #login form#resetpassform .input {';
		if ( ! empty( $options['logincust_field_width'] ) ) {
			$custom_css .= 'width: ' . $options['logincust_field_width'] . ';';
		}
		if ( ! empty( $options['logincust_field_font_size'] ) ) {
			$custom_css .= 'font-size: ' . $options['logincust_field_font_size'] . ';';
		}
		if ( ! empty( $options['logincust_field_border_width'] ) ) {
			$custom_css .= 'border-width: ' . $options['logincust_field_border_width'] . ';';
		}
		if ( ! empty( $options['logincust_field_border_color'] ) ) {
			$custom_css .= 'border-color: ' . $options['logincust_field_border_color'] . ';';
		}
		if ( ! empty( $options['logincust_field_radius'] ) ) {
			$custom_css .= 'border-radius: ' . $options['logincust_field_radius'] . ';';
		}
		if ( ! empty( $options['logincust_field_box_shadow'] ) && $options['logincust_field_box_shadow'] === 1 ) {
			$custom_css .= 'box-shadow: unset;';
		}
		if ( ! empty( $options['logincust_field_margin'] ) ) {
			$custom_css .= 'margin: ' . $options['logincust_field_margin'] . ';';
		}
		if ( ! empty( $options['logincust_field_padding'] ) ) {
			$custom_css .= 'padding: ' . $options['logincust_field_padding'] . ';';
		}
		if ( ! empty( $options['logincust_field_bg'] ) ) {
			$custom_css .= 'background-color: ' . $options['logincust_field_bg'] . ';';
		}
		if ( ! empty( $options['logincust_field_color'] ) ) {
			$custom_css .= 'color: ' . $options['logincust_field_color'] . ';';
		}
		$custom_css .= '}';

		// Login Form Labels CSS
		$custom_css .= '#login form#loginform label, #login form#registerform label, #login form#lostpasswordform label, #login form#resetpassform label {';
		if ( ! empty( $options['logincust_field_label'] ) ) {
			$custom_css .= 'color: ' . $options['logincust_field_label'] . ';';
		}
		if ( ! empty( $options['logincust_field_label_font_size'] ) ) {
			$custom_css .= 'font-size: ' . $options['logincust_field_label_font_size'] . ';';
		}
		$custom_css .= '}';
		$custom_css .= '#login form#loginform .forgetmenot label, #login form#registerform .forgetmenot label, #login form#lostpasswordform .forgetmenot label {';
		if ( ! empty( $options['logincust_field_label_font_size'] ) ) {
			$custom_css .= 'font-size: ' . ( intval( $options['logincust_field_label_font_size'] ) - 2 ) . 'px;';
		}
		$custom_css .= '}';

		// Login Button CSS
		$custom_css .= '#login form .submit .button {';
			$custom_css .= 'height: auto;';
		if ( ! empty( $options['logincust_button_bg'] ) ) {
			$custom_css .= 'background-color: ' . $options['logincust_button_bg'] . ';';
		}
		if ( ! empty( $options['logincust_button_font_size'] ) ) {
			$custom_css .= 'font-size: ' . $options['logincust_button_font_size'] . ';';
		}
		if ( ! empty( $options['logincust_button_height_width'] ) && $options['logincust_button_height_width'] === 'custom' ) {
			if ( ! empty( $options['logincust_button_width_size'] ) ) {
				$custom_css .= 'width: ' . $options['logincust_button_width_size'] . ';';
			}
			if ( ! empty( $options['logincust_button_height_size'] ) ) {
				$custom_css .= 'height: ' . $options['logincust_button_height_size'] . ';';
			}
		}
		if ( ! empty( $options['logincust_button_color'] ) ) {
			$custom_css .= 'color: ' . $options['logincust_button_color'] . ';';
		}
		if ( ! empty( $options['logincust_button_padding'] ) ) {
			$custom_css .= 'padding: ' . $options['logincust_button_padding'] . ';';
		}
		if ( ! empty( $options['logincust_button_border_width'] ) ) {
			$custom_css .= 'border-width: ' . $options['logincust_button_border_width'] . ';';
		}
		if ( ! empty( $options['logincust_button_border_radius'] ) ) {
			$custom_css .= 'border-radius: ' . $options['logincust_button_border_radius'] . ';';
		}
		if ( ! empty( $options['logincust_button_border'] ) ) {
			$custom_css .= 'border-color: ' . $options['logincust_button_border'] . ';';
		}
		if ( ! empty( $options['logincust_button_shadow'] ) && ! empty( $options['logincust_button_shadow_spread'] ) ) {
			$custom_css .= 'box-shadow: 0px 1px ' . $options['logincust_button_shadow_spread'] . ' ' . $options['logincust_button_shadow'] . ';';
		}
		if ( ! empty( $options['logincust_button_text_shadow'] ) ) {
			$custom_css .= 'text-shadow: 0 -1px 1px ' . $options['logincust_button_text_shadow'] . ',1px 0 1px ' . $options['logincust_button_text_shadow'] . ',0 1px 1px ' . $options['logincust_button_text_shadow'] . ',-1px 0 1px ' . $options['logincust_button_text_shadow'] . ';';
		}
		$custom_css .= '}';

		// Login Button on Hover CSS
		$custom_css .= '#login form .submit .button:hover, #login form .submit .button:focus {';
		if ( ! empty( $options['logincust_button_hover_bg'] ) ) {
			$custom_css .= 'background-color: ' . $options['logincust_button_hover_bg'] . ';';
		}
		if ( ! empty( $options['logincust_button_hover_border'] ) ) {
			$custom_css .= 'border-color: ' . $options['logincust_button_hover_border'] . ';';
		}
		$custom_css .= '}';

		// Other Styling
		if ( ! empty( $options['logincust_field_back_blog'] ) && $options['logincust_field_back_blog'] === 1 ) {
			$custom_css .= '#login #backtoblog {';
				$custom_css .= 'display: none;';
			$custom_css .= '}';
		}
		if ( ! empty( $options['logincust_other_font_size'] ) ) {
			$custom_css .= '.login #nav, .login #nav a, .login #backtoblog a {';
				$custom_css .= 'font-size: ' . $options['logincust_other_font_size'] . ';';
			$custom_css .= '}';
		}
		if ( ! empty( $options['logincust_other_color'] ) ) {
			$custom_css .= '.login #nav, .login #nav a, .login #backtoblog a, .login .privacy-policy-page-link a {';
				$custom_css .= 'color: ' . $options['logincust_other_color'] . ';';
			$custom_css .= '}';
		}
		if ( ! empty( $options['logincust_other_color_hover'] ) ) {
			$custom_css .= '.login #backtoblog a:hover, .login #nav a:hover, .login .privacy-policy-page-link a:hover {';
				$custom_css .= 'color: ' . $options['logincust_other_color_hover'] . ';';
			$custom_css .= '}';
		}

		// Custom CSS
		if ( ! empty( $options['logincust_other_css'] ) ) {
			$custom_css .= $options['logincust_other_css'];
		}

		// Hook inline styles to stylesheet
		wp_add_inline_style( 'logincust_styles', $custom_css );

	}

// Hook stylesheet to login page

	function logincust_render_script() {
		// Get plugin options array
		$options = get_option( 'login_customizer_options' );
		if ( ! empty( $options['logincust_other_js'] ) ) {
			echo '<script>' . "\n" . $options['logincust_other_js'] . "\n" . '</script>' . "\n";
		}
	}
 }


// Hook script to login page
