<?php
class MFN_Options_social extends Mfn_Options_field
{

	/**
	 * Render
	 */

	public function render( $meta = false, $vb = false, $js = false )
	{
    // socials

    $socials = [
      'skype' => [
        'title' => 'Skype',
        'desc' => __('Skype login. You can use callto: or skype: prefix', 'mfn-opts'),
        'icon' => 'icon-skype',
      ],
      'whatsapp' => [
        'title' => 'WhatsApp',
        'desc' => __('WhatsApp URL. You can use whatsapp: prefix', 'mfn-opts'),
        'icon' => 'icon-whatsapp',
      ],
      'facebook' => [
        'title' => 'Facebook',
        'icon' => 'icon-facebook',
      ],
			'twitter' => [
        'title' => 'X (Twitter)',
        'icon' => 'icon-x-twitter',
      ],
      'vimeo' => [
        'title' => 'Vimeo',
        'icon' => 'icon-vimeo',
      ],
      'youtube' => [
        'title' => 'YouTube',
        'icon' => 'icon-play',
      ],
      'flickr' => [
        'title' => 'Flickr',
        'icon' => 'icon-flickr',
      ],
      'linkedin' => [
        'title' => 'LinkedIn',
        'icon' => 'icon-linkedin',
      ],
      'pinterest' => [
        'title' => 'Pinterest',
        'icon' => 'icon-pinterest',
      ],
      'dribbble' => [
        'title' => 'Dribbble',
        'icon' => 'icon-dribbble',
      ],
      'instagram' => [
        'title' => 'Instagram',
        'icon' => 'icon-instagram',
      ],
      'tiktok' => [
        'title' => 'TikTok',
        'icon' => 'icon-tiktok',
      ],
      'snapchat' => [
        'title' => 'Snapchat',
        'icon' => 'icon-snapchat',
      ],
      'behance' => [
        'title' => 'Behance',
        'icon' => 'icon-behance',
      ],
      'tumblr' => [
        'title' => 'Tumblr',
        'icon' => 'icon-tumblr',
      ],
      'tripadvisor' => [
        'title' => 'Tripadvisor',
        'icon' => 'icon-tripadvisor',
      ],
      'vkontakte' => [
        'title' => 'VKontakte',
        'icon' => 'icon-vkontakte',
      ],
      'viadeo' => [
        'title' => 'Viadeo',
        'icon' => 'icon-viadeo',
      ],
      'xing' => [
        'title' => 'Xing',
        'icon' => 'icon-xing',
      ],
			'custom' => true,
			'rss' => true,
    ];

    // order

      if( ! empty( $this->value['order'] ) ){

        $order = $this->value['order'];
        $order = explode( ',', $order );

        $order = array_unique( array_merge( $order, array_keys( $socials ) ) );

      } else {

        $order = array_keys( $socials );

      }



		// output -----

		echo '<div class="form-group social-icons">';

      echo '<ul class="social-wrapper">';

        foreach( $order as $key ){

					if( false !== strpos($key, 'custom') ){

						if( 'custom' === $key ){
							$option = 'social-custom-icon';
						} else {
							$option = str_replace('custom-', '', $key);
							$option = 'social-custom-icon-'. $option;
						}

						if( ! empty( mfn_opts_get($option) ) ){
							$icon = mfn_opts_get($option);
						} else {
							$icon = 'fas fa-question';
						}

						echo '<li data-key="'. esc_attr($key) .'">';
	            echo '<div class="drag"><i class="icon-arrow-combo"></i></div>';
	            echo '<div class="label"><i class="'. esc_attr($icon) .'"></i>'. str_replace('-', ' ', ucfirst($key)) .'</div>';
	            echo '<div class="form-control">';
	              echo '<span>'. sprintf( __('Custom icon selected <a href="%s">below</a>', 'mfn-opts'), 'admin.php?page=be-options#social&'. esc_attr($key) ) .'</span>';
	            echo '</div>';
	          echo '</li>';

					} elseif( 'rss' == $key ) {

						echo '<li data-key="rss">';
	            echo '<div class="drag"><i class="icon-arrow-combo"></i></div>';
	            echo '<div class="label"><i class="icon-rss"></i> RSS</div>';
	            echo '<div class="form-control">';
	              echo '<span>'. sprintf( __('Show the RSS icon if enabled <a href="%s">below</a>', 'mfn-opts'), 'admin.php?page=be-options#social&rss' ) .'<span>';
	            echo '</div>';
	          echo '</li>';

					} else {

						$social = $socials[$key];

	          if( ! empty( $this->value[$key] ) ){
	            $value = $this->value[$key];
	          } else {
	            $value = '';
	          }

	          if( ! empty( $social['desc'] ) ){
	            $desc = $social['desc'];
	          } else {
	            $desc = __('Link to the profile page', 'mfn-opts');
	          }

            if( $js ){

              echo '<li data-key="'. esc_attr($key) .'">';
                echo '<div class="drag"><i class="icon-arrow-combo"></i></div>';
                echo '<div class="label" data-tooltip="'. esc_attr($desc) .'"><i class="'. esc_attr( $social['icon'] ) .'"></i> '. esc_html( $social['title'] ) .'</div>';
                echo '<div class="form-control">';
                  echo '<input class="mfn-form-control mfn-field-value mfn-form-input" type="text" '. $this->get_name( $meta, $key ) .' value="\'+('.$js.' && typeof '.$js.'[\''.$key.'\'] !== \'undefined\' && '.$js.'[\''.$key.'\'].length ? '.$js.'[\''.$key.'\'] : "")+\'"/>';
                echo '</div>';
              echo '</li>';

            }else{

  	          echo '<li data-key="'. esc_attr($key) .'">';
  	            echo '<div class="drag"><i class="icon-arrow-combo"></i></div>';
  	            echo '<div class="label" data-tooltip="'. esc_attr($desc) .'"><i class="'. esc_attr( $social['icon'] ) .'"></i> '. esc_html( $social['title'] ) .'</div>';
  	            echo '<div class="form-control">';
  	              echo '<input class="mfn-form-control mfn-field-value mfn-form-input" type="text" '. $this->get_name( $meta, $key ) .' value="'. esc_attr( $value ) .'"/>';
  	            echo '</div>';
  	          echo '</li>';

            }

					}

        }

      echo '</ul>';

      if( $js ){
        echo '<input type="hidden" data-obj="order" class="social-order mfn-field-value" '. $this->get_name( $meta, 'order' ) .' value="\'+('.$js.' && typeof '.$js.'[\'order\'] !== \'undefined\' && '.$js.'[\'order\'].length ? '.$js.'[\'order\'] : "")+\'" />';
      }else{
        echo '<input type="hidden" data-obj="order" class="social-order mfn-field-value" '. $this->get_name( $meta, 'order' ) .' value="'. esc_attr( implode( ',', $order ) ) .'" />';
      }

		echo '</div>';

		echo $this->get_description();

    // enqueue

    $this->enqueue();

	}

  /**
   * Enqueue
   */

  public function enqueue()
  {
    wp_enqueue_script( 'mfn-opts-field-social', MFN_OPTIONS_URI .'fields/social/field_social.js', array( 'jquery' ), MFN_THEME_VERSION, true );
  }
}
