<? global $lang, $lang_id;?>
<?
$text = $this -> article['language']['text'];
$text = \front\factory\Articles::generateHeadersIds( $text );
?>
<div class="article article-<?= $this -> article['id'];?>">
  <?
    if ( $main_img = $this -> article['language']['main_image'] ):
      ?>
        <div class="main-image">
          <img src="<?= $main_img;?>" alt="<?= htmlspecialchars( $this -> article['language']['title'] );?>">
        </div>
      <?
    endif;

    $this -> article['language']['seo_link'] ? $url = $this -> article['language']['seo_link'] : $url = 'a-' . $this -> article['id'] . '-' . \S::seo( $this -> article['language']['title'] );

    if ( $this -> article['show_title'] )
      echo '<h3 class="article-title">' . $this -> article['language']['title'] . '</h3>';

    if ( $this -> article['social_icons'] ):
      ?>
      <div class="social-icons">
        <a class="fb" href="http://www.facebook.com/sharer.php?u=<?= \S::get_domain_url( $_SERVER['SERVER_NAME'] );?>/<?= $url;?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" title="facebook" target="_blank" rel="nofollow">
          <img src="/images/system/logo-facebook.jpg" alt="facebook" />
        </a>
        <a class="pinterest" href="http://pinterest.com/pin/create/button/?url=<?= \S::get_domain_url( $_SERVER['SERVER_NAME'] );?>/<?= $url;?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" title="pinterest" target="_blank" rel="nofollow">
          <img src="/images/system/logo-pinterest.jpg" alt="pinterest" />
        </a>
        <a class="twitter" href="http://twitter.com/share?url=<?= \S::get_domain_url( $_SERVER['SERVER_NAME'] );?>/<?= $url;?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=450,width=600');return false;" title="twitter" target="_blank" rel="nofollow">
          <img src="/images/system/logo-twitter.jpg" alt="twitter" />
        </a>
        <a class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=<?= \S::get_domain_url( $_SERVER['SERVER_NAME'] );?>/<?= $url;?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=500,width=850');return false;" title="linked in" target="_blank" rel="nofollow">
          <img src="/images/system/logo-linkedin.jpg" alt="linkedin" />
        </a>
        <a class="gp" href="https://plus.google.com/share?url=<?= \S::get_domain_url( $_SERVER['SERVER_NAME'] );?>/<?= $url;?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" title="google+" target="_blank" rel="nofollow">
          <img src="/images/system/logo-google.jpg" alt="google+" />
        </a>
      </div>
      <?
    endif;

    if ( $this -> article['show_date_add'] )
      echo '<div class="date-add">' . $lang['data-dodania'] . ': ' . $this -> article['date_add'] . '</div>';

    if ( $this -> article['show_date_modify'] )
      echo '<div class="date-add">' . $lang['data-modyfikacji'] . ': ' . $this -> article['date_modify'] . '</div>';

    if ( is_array( $this -> article['tags'] ) and !empty( $this -> article['tags'] ) ):
      echo '<div class="article-tags">';
        echo '<ul>';
          foreach ( $this -> article['tags'] as $tag ):
            echo '<li>';
              echo '<a href="/tag,' . \S::seo( $tag ) . '">'. $tag . '</a>';
            echo '</li>';
          endforeach;
        echo '</ul>';
      echo '</div>';
    endif;
  ?>
  <? if ( $this -> article['show_table_of_contents'] ):?>
    <? if ( $this -> article['language']['table_of_contents'] ):?>
      <div class="table-of-contents">
        <div class="title">
          <?= \S::lang( 'spis-tresci' );?>
        </div>
        <?= $this -> article['language']['table_of_contents'];?>
      </div>
    <? else:?>
      <div class="table-of-contents">
        <div class="title">
          <?= \S::lang( 'spis-tresci' );?>
        </div>
        <?= \front\factory\Articles::generateTableOfContents( $text );?>
      </div>
    <? endif;?>
  <? endif;?>
  <? if ( $this -> article['repeat_entry'] ):?>
    <div class="entry">
      <?= $this -> article['language']['entry'];?>
    </div>
  <? endif;?>
  <div class="text">
    <?

      /* artykuł wewnątrz innego artykułu */
      preg_match_all( '/ARTYKUL:[0-9]*/', $this -> article['language']['text'], $articles_list );
      if ( is_array( $articles_list[0] ) ) foreach( $articles_list[0] as $article_tmp )
      {
        $article_tmp  = explode( ':', $article_tmp );
        if ( $article_tmp[1] != $this -> article['id'] )
          $text = str_replace( '[ARTYKUL:' . $article_tmp[1] . ']', \front\view\Articles::article_full( $article_tmp[1], $lang_id ), $text );
        else
          $text = str_replace( '[ARTYKUL:' . $article_tmp[1] . ']', '', $text );
      }

      /* galeria w innym miejscu niż na końcu */
      if ( strpos( $this -> article['language']['text'], '[GALERIA]' ) !== false )
      {
        if ( is_array( $this -> article['images'] ) ):
          $tpl = new \Tpl;
          $tpl -> article = $this -> article;
          $tpl -> images = $this -> article['images'];
          $gallery = $tpl -> render( 'articles/article-gallery' );
        endif;
        $text = preg_replace('/(<p(.*)>\[GALERIA\]<\/p>|<div(.*)>\[GALERIA\]<\/div>)/', $gallery, $text );
      }

      /* załączniki w innym miejscu niż na końcu */
      if ( strpos( $this -> article['language']['text'], '[ZALACZNIKI]' ) !== false )
      {
        if ( is_array( $this -> article['files'] ) ):
          $tpl = new \Tpl;
          $tpl -> article = $this -> article;
          $tpl -> files = $this -> article['files'];
          $files = $tpl -> render( 'articles/article-files' );
        endif;
        $text = preg_replace('/(<p(.*)>\[ZALACZNIKI\]<\/p>|<div(.*)>\[ZALACZNIKI\]<\/div>)/', $files, $text );
      }

      /* slider */
      if ( strpos( $text, '[SLIDER]' ) !== false )
      {
        while ( strpos( $text, '[SLIDER]' ) !== false )
        {
          $text_tmp = explode( '[SLIDER]', $text );
          $before = $text_tmp[0];
          for ( $i = 1; $i < count( $text_tmp ); $i++ )
          {
            $temp   = explode( '[/SLIDER]' , $text_tmp[$i] );
            $code   = $temp[0];

            ob_start();

            $images_tmp = explode( '|', $code );
            if ( is_array( $images_tmp ) and !empty( $images_tmp ) ) foreach ( $images_tmp as $image_tmp )
            {
              $image = explode( ';', $image_tmp );
              $images[] = $image;
            }

            $tpl = new \Tpl;
            $tpl -> images      = $images;
            $tpl -> article_id  = $this -> article['id'];
            $tpl -> i           = $i;
            echo $tpl -> render( 'articles/slider' );

            $out .= ob_get_contents();
            ob_end_clean();

            $out .= $temp[1];
          }
          $text = $before . $out;
        }
      }

      $dom = new DomDocument('1.0', 'UTF-8');
      $dom -> loadHTML( '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . $text );
      $elements = $dom -> getElementsByTagName( 'img' );
      foreach ( $elements as $element )
      {
        if ( strpos( $element -> getAttribute( 'class' ), 'zoom' ) !== false )
        {
          $element_tmp = $dom -> createElement( 'a', '' );
          $element_tmp -> setAttribute( 'href', $element -> getAttribute( 'src' ) );
          $element_tmp -> setAttribute( 'rel', 'article-' . $this -> article['id'] );
          $element_tmp -> setAttribute( 'class', 'fancybox' );

          $element_tmp_2 = $element -> cloneNode( false );

          $element_tmp -> appendChild( $element_tmp_2 );

          $element -> parentNode -> replaceChild( $element_tmp, $element );
        }
      }

      echo $dom -> saveHTML();
    ?>
  </div>
  <?
    if ( is_array( $this -> article['images'] ) and strpos( $this -> article['language']['text'], '[GALERIA]' ) === false ):
      $tpl = new \Tpl;
      $tpl -> article = $this -> article;
      $tpl -> images = $this -> article['images'];
      echo $tpl -> render( 'articles/article-gallery' );
    endif;

    if ( is_array( $this -> article['files'] )  and strpos( $this -> article['language']['text'], '[ZALACZNIKI]' ) === false ):
      $tpl = new \Tpl;
      $tpl -> article = $this -> article;
      $tpl -> files = $this -> article['files'];
      echo $tpl -> render( 'articles/article-files' );
    endif;
  ?>
  <?
    if ( $this -> article['id_author'] ):
      $author = \front\factory\Authors::get_single_author( $this -> article['id_author'] );
    endif;
    ?>
    <div class="author">
      <div class="row">
        <div class="col-md-2">
          <? if ( $author['image'] ):?><img src="<?= $author['image'];?>" alt="<?= $author['author'];?>"><? endif;?>
        </div>
        <div class="col-md-10">
          <?= $author['languages'][ $lang_id ]['description'];?>
        </div>
      </div>
    </div>
    <?
  ?>
</div>
<link class="footer" href="/libraries/fancyBox/jquery.fancybox.css" rel="stylesheet" type="text/css">
<link class="footer" href="/libraries/fancyBox/helpers/jquery.fancybox-buttons.css" rel="stylesheet" type="text/css">
<script class="footer" type="text/javascript" src="/libraries/fancyBox/jquery.fancybox.js"></script>
<script class="footer" type="text/javascript" src="/libraries/fancyBox/helpers/jquery.fancybox-buttons.js"></script>
<script class="footer" type="text/javascript">
  $( document ).ready(function()
  {
    $( ".gallery a.image" ).fancybox({
      closeBtn		: false,
      helpers		: {
        buttons	: {}
      }
    });

    <? if ( $this -> article['language']['table_of_contents'] ):?>
      window.addEventListener('DOMContentLoaded', () => {
        const observer = new IntersectionObserver(entries => {
          entries.forEach(entry => {
            const id = entry.target.getAttribute('id');
            if ( entry.intersectionRatio > 0) {
              document.querySelector('.article-<?= $this -> article['id'];?> .table-of-contents li a[href$="#' + id + '"]').parentElement.classList.add('active');
            } else {
              document.querySelector('.article-<?= $this -> article['id'];?> .table-of-contents li a[href$="#' + id + '"]').parentElement.classList.remove('active');
            }
          });
        });
        document.querySelectorAll( '.article-<?= $this -> article['id'];?> .text div[id]' ).forEach((div) => {
          observer.observe(div);
        });
      });
    <? endif;?>
  });
</script>