{var $instance_name = OPENVK_ROOT_CONF['openvk']['appearance']['name']}
{if !isset($parentModule) || substr($parentModule, 0, 21) === 'libchandler:absolute.'}
<!DOCTYPE html>
<html>
    <head>
        <title>
            {ifset title}{include title} - {/ifset}{$instance_name}
        </title>
        <meta charset="utf-8" />
        <link rel="shortcut icon" href="/assets/packages/static/openvk/img/icon.ico" />
        <meta name="application-name" content="{$instance_name}" />
        <meta n:ifset="$csrfToken" name="csrf" value="{$csrfToken}" />

        <script src="/language/{php echo getLanguage()}.js" crossorigin="anonymous"></script>
        {script "js/node_modules/jquery/dist/jquery.min.js"}
        {script "js/node_modules/umbrellajs/umbrella.min.js"}
        {script "js/l10n.js"}
        {script "js/openvk.cls.js"}

        {if $isTimezoned == NULL}
            {script "js/timezone.js"}
        {/if}

        {ifset $thisUser}
            {if $thisUser->getNsfwTolerance() < 2}
                {css "css/nsfw-posts.css"}
            {/if}

            {if $theme !== NULL}
                {if $theme->inheritDefault()}
                    {css "css/style.css"}
                    {css "css/dialog.css"}
                    {css "css/notifications.css"}
                    
                    {if $isXmas}
                        {css "css/xmas.css"}
                    {/if}
                {/if}

                <link rel="stylesheet" href="/themepack/{$theme->getId()}/{$theme->getVersion()}/stylesheet/styles.css" />
                
                {if $isXmas}
                    <link rel="stylesheet" href="/themepack/{$theme->getId()}/{$theme->getVersion()}/resource/xmas.css" />
                {/if}
            {else}
                {css "css/style.css"}
                {css "css/dialog.css"}
                {css "css/notifications.css"}
                
                {if $isXmas}
                    {css "css/xmas.css"}
                {/if}
            {/if}

            {if $thisUser->getStyleAvatar() == 1}
                {css "css/avatar.1.css"}
            {/if}
            
            {if $thisUser->getStyleAvatar() == 2}
                {css "css/avatar.2.css"}
            {/if}

            {if $thisUser->hasMicroblogEnabled() == 1}
                {css "css/microblog.css"}
            {/if}
        {else}
            {css "css/style.css"}
            {css "css/dialog.css"}
            {css "css/nsfw-posts.css"}
            {css "css/notifications.css"}

            {if $isXmas}
                {css "css/xmas.css"}
            {/if}
        {/ifset}

        {ifset headIncludes}
            {include headIncludes}
        {/ifset}
    </head>
    <body>
        <div id="sudo-banner" n:if="isset($thisUser) && $userTainted">
            <p>
                Вы вошли как <b>{$thisUser->getCanonicalName()}</b>. Пожалуйста, уважайте
                право на тайну переписки других людей и не злоупотребляйте подменой пользователя.
                Нажмите <a href="/setSID/unset?hash={rawurlencode($csrfToken)}">здесь</a>, чтобы выйти.
            </p>
        </div>

        <div n:if="OPENVK_ROOT_CONF['openvk']['preferences']['bellsAndWhistles']['testLabel']" id="test-label">FOR TESTING PURPOSES ONLY</div>

        <div class="notifications_global_wrap"></div>
        <div class="dimmer"></div>

        <div class="toTop">
            ⬆ {_to_top}
        </div>

        <div class="layout">
            <div id="xhead" class="dm"></div>
            <div class="page_header{if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME} page_custom_header{/if}">
                <a href="/" class="home_button{if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME} home_button_custom{/if}" title="{$instance_name}">{if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME}{$instance_name}{/if}</a>
                <div n:if="isset($thisUser) ? (!$thisUser->isBanned() XOR !$thisUser->isActivated()) : true" class="header_navigation">
                    {ifset $thisUser}
                        {if $thisUser->isDeactivated()}
                            <div class="link">
                                <a href="/logout?hash={urlencode($csrfToken)}">{_header_log_out}</a>
                            </div>
                        {else}
                            <div class="link">
                                <a href="/">{_header_home}</a>
                            </div>
                            <div class="link">
                                <a href="/search?type=groups">{_header_groups}</a>
                            </div>
                            <div class="link">
                                <a href="/search">{_header_search}</a>
                            </div>
                            <div class="link">
                                <a href="/invite">{_header_invite}</a>
                            </div>
                            <div class="link">
                                <a href="/support">{_header_help} <b n:if="$ticketAnsweredCount > 0">({$ticketAnsweredCount})</b></a>
                            </div>
                            <div class="link">
                                <a href="/logout?hash={urlencode($csrfToken)}">{_header_log_out}</a>
                            </div>
                            <div class="link">
                                <form action="/search" method="get">
                                    <input type="search" name="query" placeholder="{_header_search}" style="height: 20px;background: url('/assets/packages/static/openvk/img/search_icon.png') no-repeat 3px 4px; background-color: #fff; padding-left: 18px;width: 120px;" title="{_header_search} [Alt+Shift+F]" accesskey="f" />
                                </form>
                            </div>
                        {/if}
                    {else}
                        <div class="link">
                            <a href="/login">{_header_login}</a>
                        </div>
                        <div class="link">
                            <a href="/reg">{_header_registration}</a>
                        </div>
                        <div class="link">
                            <a href="/support">{_header_help}</a>
                        </div>
                    {/ifset}
                </div>
            </div>

            <div class="sidebar">
                <div class="navigation">
                    {ifset $thisUser}
                        {if !$thisUser->isBanned() XOR !$thisUser->isActivated() XOR $thisUser->isDeactivated()}
                            <a href="/edit" class="link edit-button">{_edit_button}</a>
                            <a href="{$thisUser->getURL()}" class="link" title="{_my_page} [Alt+Shift+.]" accesskey=".">{_my_page}</a>
                            <a href="/friends{$thisUser->getId()}" class="link">{_my_friends}
                                <object type="internal/link" n:if="$thisUser->getFollowersCount() > 0">
                                    <a href="/friends{$thisUser->getId()}?act=incoming">
                                       (<b>{$thisUser->getFollowersCount()}</b>)
                                    </a>
                                </object>
                            </a>
                            <a n:if="$thisUser->getLeftMenuItemStatus('photos')" href="/albums{$thisUser->getId()}" class="link">{_my_photos}</a>
                            <a n:if="$thisUser->getLeftMenuItemStatus('videos')" href="/videos{$thisUser->getId()}" class="link">{_my_videos}</a>
                            <a n:if="$thisUser->getLeftMenuItemStatus('messages')" href="/im" class="link">{_my_messages}
                                <object type="internal/link" n:if="$thisUser->getUnreadMessagesCount() > 0">
                                    (<b>{$thisUser->getUnreadMessagesCount()}</b>)
                                </object>
                            </a>
                            <a n:if="$thisUser->getLeftMenuItemStatus('notes')" href="/notes{$thisUser->getId()}" class="link">{_my_notes}</a>
                            <a n:if="$thisUser->getLeftMenuItemStatus('groups')" href="/groups{$thisUser->getId()}" class="link">{_my_groups}</a>
                            <a n:if="$thisUser->getLeftMenuItemStatus('news')" href="/feed" class="link" title="{_my_feed} [Alt+Shift+,]" accesskey=",">{_my_feed}</a>
                            <a href="/notifications" class="link" title="{_my_feedback} [Alt+Shift+N]" accesskey="n">{_my_feedback}
                                {if $thisUser->getNotificationsCount() > 0}
                                    (<b>{$thisUser->getNotificationsCount()}</b>)
                                {/if}
                            </a>
                            <a href="/apps?act=installed" class="link">{_my_apps}</a>
                            <a href="/settings" class="link">{_my_settings}</a>
                            
                            {var $canAccessAdminPanel = $thisUser->getChandlerUser()->can("access")->model("admin")->whichBelongsTo(NULL)}
                            {var $canAccessHelpdesk   = $thisUser->getChandlerUser()->can("write")->model('openvk\Web\Models\Entities\TicketReply')->whichBelongsTo(0)}
                            {var $menuLinksAvaiable   = sizeof(OPENVK_ROOT_CONF['openvk']['preferences']['menu']['links']) > 0 && $thisUser->getLeftMenuItemStatus('links')}
                            <div n:if="$canAccessAdminPanel || $canAccessHelpdesk || $menuLinksAvaiable" class="menu_divider"></div>
                            <a href="/admin" class="link" n:if="$canAccessAdminPanel" title="{_admin} [Alt+Shift+A]" accesskey="a">{_admin}</a>
                            <a href="/support/tickets" class="link" n:if="$canAccessHelpdesk">Helpdesk
                                {if $helpdeskTicketNotAnsweredCount > 0}
                                    (<b>{$helpdeskTicketNotAnsweredCount}</b>)
                                {/if}
                            </a>

                            <a n:if="$thisUser->getLeftMenuItemStatus('links')" n:foreach="OPENVK_ROOT_CONF['openvk']['preferences']['menu']['links'] as $menuItem" href="{$menuItem['url']}" target="_blank" class="link">{strpos($menuItem["name"], "@") === 0 ? tr(substr($menuItem["name"], 1)) : $menuItem["name"]}</a>

                            <div id="_groupListPinnedGroups">
                                <div n:if="$thisUser->getPinnedClubCount() > 0" class="menu_divider"></div>
                                <a n:foreach="$thisUser->getPinnedClubs() as $club" href="{$club->getURL()}" class="link group_link">{$club->getName()}</a>
                            </div>
                            
                            <div n:if="OPENVK_ROOT_CONF['openvk']['preferences']['commerce'] && $thisUser->getCoins() != 0" id="votesBalance">
                                {tr("you_still_have_x_points", $thisUser->getCoins())|noescape}
                                <br /><br />
                                
                                <a href="/settings?act=finance">{_top_up_your_account} &#xbb;</a>
                            </div>
                            
                            <a n:if="OPENVK_ROOT_CONF['openvk']['preferences']['adPoster']['enable'] && $thisUser->getLeftMenuItemStatus('poster')" href="{php echo OPENVK_ROOT_CONF['openvk']['preferences']['adPoster']['link']}" >
                                <img src="{php echo OPENVK_ROOT_CONF['openvk']['preferences']['adPoster']['src']}" alt="{php echo OPENVK_ROOT_CONF['openvk']['preferences']['adPoster']['caption']}" class="psa-poster" style="max-width: 100%; margin-top: 10px;" />
                            </a>

                            <div class="floating_sidebar">
                                <a class="minilink" href="/friends{$thisUser->getId()}">
                                    <object type="internal/link" n:if="$thisUser->getFollowersCount() > 0">
                                        <div class="counter">
                                            +{$thisUser->getFollowersCount()}
                                        </div>
                                    </object>
                                    <img src="/assets/packages/static/openvk/img/friends.svg">
                                </a>
                                <a class="minilink" href="/albums{$thisUser->getId()}">
                                    <img src="/assets/packages/static/openvk/img/photos.svg">
                                </a>
                                <a class="minilink" href="/im">
                                    <object type="internal/link" n:if="$thisUser->getUnreadMessagesCount() > 0">
                                        <div class="counter">
                                            +{$thisUser->getUnreadMessagesCount()}
                                        </div>
                                    </object>
                                    <img src="/assets/packages/static/openvk/img/messages.svg">
                                </a>
                                <a class="minilink" href="/groups{$thisUser->getId()}">
                                    <img src="/assets/packages/static/openvk/img/groups.svg">
                                </a>
                                <a class="minilink" href="/notifications">
                                    <object type="internal/link" n:if="$thisUser->getNotificationsCount() > 0">
                                        <div class="counter">
                                            +{$thisUser->getNotificationsCount()}
                                        </div>
                                    </object>
                                    <img src="/assets/packages/static/openvk/img/feedback.svg">
                                </a>
                            </div>
                        {elseif !$thisUser->isActivated()}
                            <a href="/logout?hash={urlencode($csrfToken)}" class="link">{_menu_logout}</a>
                        {else}
                            <a href="/support" class="link">{_menu_support}
                                {if $ticketAnsweredCount > 0}
                                    (<b>{$ticketAnsweredCount}</b>)
                                {/if}
                            </a>
                            <a href="/logout?hash={urlencode($csrfToken)}" class="link">{_menu_logout}</a>
                        {/if}
                    {else}
                        <form id="fastLogin" action="/login" method="POST" enctype="multipart/form-data">
                            <label for="login"><span>{_email}:</span></label>
                            <input id="login" type="text" name="login" required />
                            <label for="password"><span>{_password}:</span></label>
                            <input id="password" type="password" name="password" required />
                            <input type="hidden" name="jReturnTo" value="{$_SERVER['REQUEST_URI']}" />
                            <input type="hidden" name="hash" value="{$csrfToken}" />
                            <input type="submit" value="{_log_in}" class="button" style="display: inline-block;" />
                            <a href="/reg" class="button" style="display: inline-block;">{_registration}</a><br><br>
                            <a href="/restore">{_forgot_password}</a>
                        </form>
                    {/ifset}
                </div>
            </div>

            <div class="page_body">
                <div id="wrapH">
                    <div id="wrapHI">
                        <div n:ifcontent class="page_yellowheader">
                           {include header}
                        </div>
                    </div>
                </div>

                {ifset wrap}
                    <div class="msg msg_{$flashMessage->type}" n:ifset="$flashMessage">
                        <b>{$flashMessage->title}</b><br/>
                        {$flashMessage->msg|noescape}
                    </div>

                    {include wrap}
                {else}
                    <div class="wrap2">
                        <div class="wrap1">
                            <div id="auth" class="page-wrap">
                                <div class="page_content">
                                    <div class="msg msg_{$flashMessage->type}" n:ifset="$flashMessage">
                                        <b>{$flashMessage->title}</b><br/>
                                        {$flashMessage->msg|noescape}
                                    </div>

                                    {include content}
                                </div>
                            </div>
                        </div>
                    </div>
                {/ifset}
            </div>
        </div>

        <div class="page_footer">
            {var $dbVersion = \Chandler\Database\DatabaseConnection::i()->getConnection()->getPdo()->getAttribute(\PDO::ATTR_SERVER_VERSION)}

            <div class="navigation_footer">
                <a href="/about" class="link">{_footer_about_instance}</a>
                <a href="/blog" class="link">{_footer_blog}</a>
                <a href="/support" class="link">{_footer_help}</a>
                <a href="/dev" target="_blank" class="link">{_footer_developers}</a>
                <a href="/language" class="link">{_footer_choose_language}</a>
                <a href="/privacy" class="link">{_footer_privacy}</a>
            </div>
            <p>OpenVK <a href="/about:openvk">{php echo OPENVK_VERSION}</a> | PHP: {phpversion()} | DB: {$dbVersion}</p>
            <p n:ifcontent>
                {php echo OPENVK_ROOT_CONF["openvk"]["appearance"]["motd"]}
            </p>
        </div>

        {include "components/cookies.xml"}

        {script "js/node_modules/msgpack-lite/dist/msgpack.min.js"}
        {script "js/node_modules/soundjs/lib/soundjs.min.js"}
        {script "js/node_modules/ky/umd.js"}
        {script "js/messagebox.js"}
        {script "js/notifications.js"}
        {script "js/scroll.js"}
        {script "js/al_wall.js"}
        {script "js/al_api.js"}

        {ifset $thisUser}
            {script "js/al_notifs.js"}
        {/ifset}

        {if OPENVK_ROOT_CONF['openvk']['preferences']['bellsAndWhistles']['fartscroll']}
            <script src="https://unpkg.com/fartscroll@1.0.0/fartscroll.js"></script>
            <script>
                fartscroll(400);
            </script>
        {/if}

        <script n:if="OPENVK_ROOT_CONF['openvk']['telemetry']['plausible']['enable']" async defer data-domain="{php echo OPENVK_ROOT_CONF['openvk']['telemetry']['plausible']['domain']}" src="{php echo OPENVK_ROOT_CONF['openvk']['telemetry']['plausible']['server']}js/plausible.js"></script>
        
        <script n:if="OPENVK_ROOT_CONF['openvk']['telemetry']['piwik']['enable']">
            {var $piwik = (object) OPENVK_ROOT_CONF['openvk']['telemetry']['piwik']}
            
            //<![CDATA[
            (function(window,document,dataLayerName,id){ 
            window[dataLayerName]=window[dataLayerName]||[],window[dataLayerName].push({ start:(new Date).getTime(),event:"stg.start" });var scripts=document.getElementsByTagName('script')[0],tags=document.createElement('script');
            function stgCreateCookie(a,b,c){ var d="";if(c){ var e=new Date;e.setTime(e.getTime()+24*c*60*60*1e3),d=";expires="+e.toUTCString() }document.cookie=a+"="+b+d+";path=/" }
            var isStgDebug=(window.location.href.match("stg_debug")||document.cookie.match("stg_debug"))&&!window.location.href.match("stg_disable_debug");stgCreateCookie("stg_debug",isStgDebug?1:"",isStgDebug?14:-1);
            var qP=[];dataLayerName!=="dataLayer"&&qP.push("data_layer_name="+dataLayerName),isStgDebug&&qP.push("stg_debug");var qPString=qP.length>0?("?"+qP.join("&")):"";
            tags.async=!0,tags.src={$piwik->container . "/"}+id+".js"+qPString,scripts.parentNode.insertBefore(tags,scripts);
            !function(a,n,i){ a[n]=a[n]||{  };for(var c=0;c<i.length;c++)!function(i){ a[n][i]=a[n][i]||{  },a[n][i].api=a[n][i].api||function(){ var a=[].slice.call(arguments,0);"string"==typeof a[0]&&window[dataLayerName].push({ event:n+"."+i+":"+a[0],parameters:[].slice.call(arguments,1) }) } }(i[c]) }(window,"ppms",["tm","cm"]);
             })(window,document,{$piwik->layer}, {$piwik->site});
            //]]>
        </script>
        
        <script n:if="OPENVK_ROOT_CONF['openvk']['telemetry']['matomo']['enable']">
            {var $matomo = (object) OPENVK_ROOT_CONF['openvk']['telemetry']['matomo']}
            //<![CDATA[
            var _paq = window._paq = window._paq || [];
            _paq.push(['trackPageView']);
            _paq.push(['enableLinkTracking']);
            (function() {
                var u="//" + {$matomo->container} + "/";
                _paq.push(['setTrackerUrl', u+'matomo.php']);
                _paq.push(['setSiteId', {$matomo->site}]);
                var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
                g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
            })();
            //]]>
        </script>

        {ifset bodyScripts}
            {include bodyScripts}
        {/ifset}
    </body>
</html>
{/if}

{if isset($parentModule) && substr($parentModule, 0, 21) !== 'libchandler:absolute.'}
    <!-- INCLUDING TEMPLATE FROM PARENTMODULE: {$parentModule} -->

    {include content}
{/if}