<?php

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

// Login Editor
add_action('customize_register', 'ds_register_login_editor');

function ds_register_login_editor($wp_customize) {

	// New Login Editor Panel
	$wp_customize->add_panel('ds_login_editor_panel', array(
		'priority'    => 30,
		'capability'  => 'edit_theme_options',
		'title'       => __('Login Editor'),
		'description' => __('Customize the login of your website.'),
	));

	// New Sections
	$wp_customize->add_section('ds_login_logo_section', array(
		'priority' => 5,
		'title'    => __('Logo'),
		'panel'    => 'ds_login_editor_panel',
	));

	$wp_customize->add_section('ds_login_text_section', array(
		'priority' => 10,
		'title'    => __('Text Options'),
		'panel'    => 'ds_login_editor_panel',
	));

	$wp_customize->add_section('ds_login_background_section', array(
		'priority' => 15,
		'title'    => __('Background'),
		'panel'    => 'ds_login_editor_panel',
	));

	$wp_customize->add_section('ds_login_form_bg_section', array(
		'priority' => 20,
		'title'    => __('Form Background'),
		'panel'    => 'ds_login_editor_panel',
	));

	$wp_customize->add_section('ds_login_form_section', array(
		'priority' => 25,
		'title'    => __('Form Style'),
		'panel'    => 'ds_login_editor_panel',
	));

	$wp_customize->add_section('ds_login_field_section', array(
		'priority' => 30,
		'title'    => __('Fields Style'),
		'panel'    => 'ds_login_editor_panel',
	));

	$wp_customize->add_section('ds_login_button_section', array(
		'priority' => 35,
		'title'    => __('Edit Button'),
		'panel'    => 'ds_login_editor_panel',
	));

	$wp_customize->add_section('ds_login_advanced_section', array(
		'priority' => 40,
		'title'    => __('Custom CSS'),
		'panel'    => 'ds_login_editor_panel',
	));

	// TEXT OPTIONS
	$wp_customize->add_setting('ds_login_text_color', array(
		'default'    => '#999',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_text_color', array(
		'label'    => __('Text Color'),
		'section'  => 'ds_login_text_section',
		'priority' => 5,
		'settings' => 'ds_login_text_color'
	)));

	$wp_customize->add_setting('ds_login_text_color_hover', array(
		'default'    => '#2EA2CC',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_text_color_hover', array(
		'label'    => __('Text Color (Hover)'),
		'section'  => 'ds_login_text_section',
		'priority' => 10,
		'settings' => 'ds_login_text_color_hover'
	)));

	// LOGO OPTIONS
	$wp_customize->add_setting('ds_login_logo', array(
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'ds_login_logo', array(
		'label'    => __('Login Logo'),
		'section'  => 'ds_login_logo_section',
		'priority' => 5,
		'settings' => 'ds_login_logo'
	)));

	$wp_customize->add_setting('ds_login_logo_width', array(
		'default'    => '84px',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_logo_width', array(
		'label'    => __('Logo Width'),
		'section'  => 'ds_login_logo_section',
		'priority' => 10,
		'settings' => 'ds_login_logo_width'
	));

	$wp_customize->add_setting('ds_login_logo_height', array(
		'default'    => '84px',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_logo_height', array(
		'label'    => __('Logo Height'),
		'section'  => 'ds_login_logo_section',
		'priority' => 15,
		'settings' => 'ds_login_logo_height'
	));

	$wp_customize->add_setting('ds_login_logo_padding', array(
		'default'    => '5px',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_logo_padding', array(
		'label'    => __('Padding Bottom'),
		'section'  => 'ds_login_logo_section',
		'priority' => 20,
		'settings' => 'ds_login_logo_padding'
	));

	$wp_customize->add_setting('ds_login_bg_image', array(
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	// BACKGROUND IMAGE EDITS

	$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'ds_login_bg_image', array(
		'label'    => __('Background Image'),
		'section'  => 'ds_login_background_section',
		'priority' => 5,
		'settings' => 'ds_login_bg_image'
	)));

	$wp_customize->add_setting('ds_login_bg_color', array(
		'default'    => '#F1F1F1',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_bg_color', array(
		'label'    => __('Background Color'),
		'section'  => 'ds_login_background_section',
		'priority' => 10,
		'settings' => 'ds_login_bg_color'
	)));

	$wp_customize->add_setting('ds_login_bg_size', array(
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_bg_size', array(
		'label'    => __('Background Size'),
		'section'  => 'ds_login_background_section',
		'priority' => 15,
		'settings' => 'ds_login_bg_size'
	));

	// FORM BACKGROUND EDITS

	$wp_customize->add_setting('ds_login_form_bg_image', array(
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'ds_login_form_bg_image', array(
		'label'    => __('Background Image'),
		'section'  => 'ds_login_form_bg_section',
		'priority' => 5,
		'settings' => 'ds_login_form_bg_image'
	)));

	$wp_customize->add_setting('ds_login_form_bg_color', array(
		'default'    => '#FFF',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_form_bg_color', array(
		'label'    => __('Background Color'),
		'section'  => 'ds_login_form_bg_section',
		'priority' => 10,
		'settings' => 'ds_login_form_bg_color'
	)));

	$wp_customize->add_setting('ds_login_form_width', array(
		'default'    => '320px',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_form_width', array(
		'label'    => __('Width'),
		'section'  => 'ds_login_form_section',
		'priority' => 15,
		'settings' => 'ds_login_form_width'
	));

	$wp_customize->add_setting('ds_login_form_height', array(
		'default'    => '194px',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_form_height', array(
		'label'    => __('Height'),
		'section'  => 'ds_login_form_section',
		'priority' => 20,
		'settings' => 'ds_login_form_height'
	));

	$wp_customize->add_setting('ds_login_form_padding', array(
		'default'    => '26px 24px 46px',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_form_padding', array(
		'label'    => __('Padding'),
		'section'  => 'ds_login_form_section',
		'priority' => 25,
		'settings' => 'ds_login_form_padding'
	));

	$wp_customize->add_setting('ds_login_form_border', array(
		'default'    => '#c3c4c7',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_form_border', array(
		'label'    => __('Border Color'),
		'section'  => 'ds_login_form_section',
		'priority' => 30,
		'settings' => 'ds_login_form_border'
	));

	// FORM FIELDS

	$wp_customize->add_setting('ds_login_field_width', array(
		'default'    => '100%',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_field_width', array(
		'label'    => __('Input Field Width'),
		'section'  => 'ds_login_field_section',
		'priority' => 5,
		'settings' => 'ds_login_field_width'
	));

	$wp_customize->add_setting('ds_login_field_margin', array(
		'default'    => '2px 6px 16px 0px',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_field_margin', array(
		'label'    => __('Input Field Margin'),
		'section'  => 'ds_login_field_section',
		'priority' => 10,
		'settings' => 'ds_login_field_margin'
	));

	$wp_customize->add_setting('ds_login_field_bg', array(
		'default'    => '#FFF',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_field_bg', array(
		'label'    => __('Input Field Background'),
		'section'  => 'ds_login_field_section',
		'priority' => 15,
		'settings' => 'ds_login_field_bg'
	)));

	$wp_customize->add_setting('ds_login_field_border', array(
		'default'    => '#8c8f94',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_field_border', array(
		'label'    => __('Input Field Border Color'),
		'section'  => 'ds_login_field_section',
		'priority' => 20,
		'settings' => 'ds_login_field_border'
	)));

	$wp_customize->add_setting('ds_login_field_color', array(
		'default'    => '#333',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_field_color', array(
		'label'    => __('Input Field Color'),
		'section'  => 'ds_login_field_section',
		'priority' => 25,
		'settings' => 'ds_login_field_color'
	)));

	$wp_customize->add_setting('ds_login_field_label', array(
		'default'    => '#777',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_field_label', array(
		'label'    => __('Label Color'),
		'section'  => 'ds_login_field_section',
		'priority' => 30,
		'settings' => 'ds_login_field_label'
	)));

	// BUTTON STYLES

	$wp_customize->add_setting('ds_login_button_bg', array(
		'default'    => '#2EA2CC',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_button_bg', array(
		'label'    => __('Button Background'),
		'section'  => 'ds_login_button_section',
		'priority' => 5,
		'settings' => 'ds_login_button_bg'
	)));

	$wp_customize->add_setting('ds_login_button_border', array(
		'default'    => '#0074A2',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_button_border', array(
		'label'    => __('Button Border'),
		'section'  => 'ds_login_button_section',
		'priority' => 10,
		'settings' => 'ds_login_button_border'
	)));

	$wp_customize->add_setting('ds_login_button_hover_bg', array(
		'default'    => '#1E8CBE',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_button_hover_bg', array(
		'label'    => __('Button Background (Hover)'),
		'section'  => 'ds_login_button_section',
		'priority' => 15,
		'settings' => 'ds_login_button_hover_bg'
	)));

	$wp_customize->add_setting('ds_login_button_hover_border', array(
		'default'    => '#0074A2',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_button_hover_border', array(
		'label'    => __('Button Border (Hover)'),
		'section'  => 'ds_login_button_section',
		'priority' => 20,
		'settings' => 'ds_login_button_hover_border'
	)));

	$wp_customize->add_setting('ds_login_button_shadow', array(
		'default'    => '#78C8E6',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_button_shadow', array(
		'label'    => __('Button Box Shadow'),
		'section'  => 'ds_login_button_section',
		'priority' => 25,
		'settings' => 'ds_login_button_shadow'
	)));

	$wp_customize->add_setting('ds_login_button_color', array(
		'default'    => '#FFF',
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'ds_login_button_color', array(
		'label'    => __('Button Color'),
		'section'  => 'ds_login_button_section',
		'priority' => 30,
		'settings' => 'ds_login_button_color'
	)));

	// CUSTOM CSS
	$wp_customize->add_setting('ds_login_custom_css', array(
		'type'       => 'option',
		'capability' => 'edit_theme_options',
	));

	$wp_customize->add_control('ds_login_custom_css', array(
		'label'    => __('Not found the option you wanted? Add your own CSS here...'),
		'type'     => 'textarea',
		'section'  => 'ds_login_advanced_section',
		'priority' => 5,
		'settings' => 'ds_login_custom_css'
	));
}


add_action('login_enqueue_scripts', 'ds_login_customizer');

function ds_login_customizer() {

	$logo_url            = esc_html(get_option('ds_login_logo'));
	$logo_width          = esc_html(get_option('ds_login_logo_width'));
	$logo_height         = esc_html(get_option('ds_login_logo_height'));
	$logo_padding        = esc_html(get_option('ds_login_logo_padding'));
	$bg_img              = esc_html(get_option('ds_login_bg_image'));
	$bg_color            = esc_html(get_option('ds_login_bg_color'));
	$bg_size             = esc_html(get_option('ds_login_bg_size'));
	$form_bg_image       = esc_html(get_option('ds_login_form_bg_image'));
	$form_bg_color       = esc_html(get_option('ds_login_form_bg_color'));
	$form_width          = esc_html(get_option('ds_login_form_width'));
	$form_height         = esc_html(get_option('ds_login_form_height'));
	$form_padding        = esc_html(get_option('ds_login_form_padding'));
	$form_border         = esc_html(get_option('ds_login_form_border'));
	$field_width         = esc_html(get_option('ds_login_field_width'));
	$field_margin        = esc_html(get_option('ds_login_field_margin'));
	$field_bg            = esc_html(get_option('ds_login_field_bg'));
	$field_color         = esc_html(get_option('ds_login_field_color'));
	$field_border        = esc_html(get_option('ds_login_field_border'));
	$field_label         = esc_html(get_option('ds_login_field_label'));
	$button_bg           = esc_html(get_option('ds_login_button_bg'));
	$button_border       = esc_html(get_option('ds_login_button_border'));
	$button_shadow       = esc_html(get_option('ds_login_button_shadow'));
	$button_color        = esc_html(get_option('ds_login_button_color'));
	$button_hover_bg     = esc_html(get_option('ds_login_button_hover_bg'));
	$button_hover_border = esc_html(get_option('ds_login_button_hover_border'));
	$other_color         = esc_html(get_option('ds_login_text_color'));
	$other_color_hover   = esc_html(get_option('ds_login_text_color_hover'));
	$other_css           = get_option('ds_login_custom_css');
	?>

    <style type="text/css">

        body.login {
        <?php if( !empty($bg_img)) : ?>
            background-image: url(<?php echo $bg_img; ?>) !important;
        <?php endif; ?>
        <?php if( !empty($bg_color)) : ?>
            background-color: <?php echo $bg_color; ?> !important;
        <?php endif; ?>
        <?php if( !empty($bg_size)) : ?>
            background-size: <?php echo $bg_size; ?> !important;
        <?php endif; ?>
        }

        body.login #login h1 a {
        <?php if( !empty($logo_url)) : ?>
            background-image: url(<?php echo $logo_url; ?>) !important;
        <?php endif; ?>
        <?php if( !empty($logo_width)) : ?>
            width: <?php echo $logo_width; ?> !important;
        <?php endif; ?>
        <?php if( !empty($logo_height)) : ?>
            height: <?php echo $logo_height; ?> !important;
        <?php endif; ?>
        <?php if( !empty($logo_width) || !empty($logo_height)) : ?>
            background-size: <?php echo $logo_width; ?> <?php echo $logo_height; ?> !important;
        <?php endif; ?>
        <?php if( !empty($logo_padding)) : ?>
            padding-bottom: <?php echo $logo_padding; ?> !important;
        <?php endif; ?>
        }

        #loginform {
        <?php if( !empty($form_bg_image)) : ?>
            background-image: url(<?php echo $form_bg_image; ?>) !important;
        <?php endif; ?>
        <?php if( !empty($form_bg_color)) : ?>
            background-color: <?php echo $form_bg_color; ?> !important;
        <?php endif; ?>
        <?php if( !empty($form_height)) : ?>
            height: <?php echo $form_height; ?> !important;
        <?php endif; ?>
        <?php if( !empty($form_padding)) : ?>
            padding: <?php echo $form_padding; ?> !important;
        <?php endif; ?>
        <?php if( !empty($form_border)) : ?>
            border-color: <?php echo $form_border; ?> !important;
        <?php endif; ?>
        }

        #login {
        <?php if( !empty($form_width)) : ?>
            width: <?php echo $form_width; ?> !important;
        <?php endif; ?>
        }

        .login form .input, .login input[type="text"] {
        <?php if( !empty($field_width)) : ?>
            width: <?php echo $field_width; ?> !important;
        <?php endif; ?>
        <?php if( !empty($field_margin)) : ?>
            margin: <?php echo $field_margin; ?> !important;
        <?php endif; ?>
        <?php if( !empty($field_bg)) : ?>
            background: <?php echo $field_bg; ?> !important;
        <?php endif; ?>
        <?php if( !empty($field_color)) : ?>
            color: <?php echo $field_color; ?> !important;
        <?php endif; ?>
        <?php if( !empty($field_border)) : ?>
            border-color: <?php echo $field_border; ?> !important;
        <?php endif; ?>
        }

        .login label {
        <?php if( !empty($field_label)) : ?>
            color: <?php echo $field_label; ?> !important;
        <?php endif; ?>
        }

        .wp-core-ui .button-primary {
        <?php if( !empty($button_bg)) : ?>
            background: <?php echo $button_bg; ?> !important;
        <?php endif; ?>
        <?php if( !empty($button_border)) : ?>
            border-color: <?php echo $button_border; ?> !important;
        <?php endif; ?>
        <?php if( !empty($button_shadow)) : ?>
            box-shadow: 0px 1px 0px <?php echo $button_shadow; ?> inset, 0px 1px 0px rgba(0, 0, 0, 0.15);
        <?php endif; ?>
        <?php if( !empty($button_color)) : ?>
            color: <?php echo $button_color; ?> !important;
        <?php endif; ?>
        }

        .wp-core-ui .button-primary.focus, .wp-core-ui .button-primary.hover, .wp-core-ui .button-primary:focus, .wp-core-ui .button-primary:hover {
        <?php if( !empty($button_hover_bg)) : ?>
            background: <?php echo $button_hover_bg; ?> !important;
        <?php endif; ?>
        <?php if( !empty($button_hover_border)) : ?>
            border-color: <?php echo $button_hover_border; ?> !important;
        <?php endif; ?>
        }

        .login #backtoblog a, .login #nav a {
        <?php if( !empty($other_color)) : ?>
            color: <?php echo $other_color; ?> !important;
        <?php endif; ?>
        }

        .login #backtoblog a:hover, .login #nav a:hover, .login h1 a:hover {
        <?php if( !empty($other_color_hover)) : ?>
            color: <?php echo $other_color_hover; ?> !important;
        <?php endif; ?>
        }

        <?php if( !empty($other_css)) : ?>
        <?php echo $other_css; ?>
        <?php endif; ?>

    </style>
	<?php
}


add_filter('login_headerurl', 'ds_login_login_logo_url');

function ds_login_login_logo_url() {
	return get_bloginfo('url');
}


add_filter('login_headertitle', 'ds_login_login_logo_url_title');

function ds_login_login_logo_url_title() {
	$title = get_bloginfo('name', 'display');

	return $title;
}

?>