<?php
<?php

//SCRIPTS("cot","function cot(e){e.style.display='none';e.nextSibling.style.display='inline';};");

/*
$commentary=nl2br(htmlspecialchars($commentary));
$commentary=AddBB($commentary);
$commentary="\n$commentary\n";
$commentary=hyperlink($commentary);
$commentary=trim($commentary,"\n");
*/

// die("1");


function link_lj_var($t) {
    $t1=str_ireplace('&'.'quot;','"',$t[1]);
    $t2=str_ireplace('&'.'quot;','"',$t[2]);
    $t1=trim($t1,"'\"\n ");
    $t2=str_ireplace('&'.'lt;wbr&'.'gt;&'.'lt;/wbr&'.'gt;','',trim($t2,"'\"\n "));
    if($t2==$t1) return $t1;
    return $t2." (".$t1.")";
}

function AddBB($s) {
        $s=preg_replace_callback("/&"."lt;a href=(.*?)&"."gt;(.*?)&"."lt;\/a&"."gt;/si","link_lj_var",$s);
    $s = str_replace('&'.'quot;','"', $s);

        $search = array(
                '/\[big\](.*?)\[\/big\]/is',

                '/\[h\](.*?)\[\/h\]/is',
                '/\[b\](.*?)\[\/b\]/is',
                '/&'.'lt;b&'.'gt;(.*?)&'.'lt;\/b&'.'gt;/is',
                '/&'.'lt;strong&'.'gt;(.*?)&'.'lt;\/strong&'.'gt;/is',

                '/\[i\](.*?)\[\/i\]/is',
                '/&'.'lt;i&'.'gt;(.*?)&'.'lt;\/i&'.'gt;/is',
                '/&'.'lt;em&'.'gt;(.*?)&'.'lt;\/em&'.'gt;/is',

                '/\[u\](.*?)\[\/u\]/is',
                '/&'.'lt;u&'.'gt;(.*?)&'.'lt;\/u&'.'gt;/is',

                '/\[s\](.*?)\[\/s\]/is',
                '/&'.'lt;s&'.'gt;(.*?)&'.'lt;\/s&'.'gt;/is',

                '/&'.'lt;quote&'.'gt;(.*?)&'.'lt;\/quote&'.'gt;/is',
                '/&'.'lt;cite&'.'gt;(.*?)&'.'lt;\/cite&'.'gt;/is',

        '/&'.'gt;([^\&\n<]+)/is',

                '/\[img\](.*?)\[\/img\]/is',
                '/\[url\](.*?)\[\/url\]/is',

                '/\[tab\](.*?)\[\/tab\]/is', // табличка

                '/\[url\=([^\>\<\'\"\=\)\(\;\#]*?)\](.*?)\[\/url\]/is'
                );

        $replace = array(
        "<font size='+2'>$1</font>",
        "<div class=ll onclick='cot(this)'>[...]</div><div style='display:none'>$1</div>", // '/\[h\](.*?)\[\/h\]/is',
        '<b>$1</b>', //  '/\[b\](.*?)\[\/b\]/is',
                '<b>$1</b>', //  '/<b>(.*?)<\/b>/is',
                '<b>$1</b>', //  '/<strong>(.*?)<\/strong>/is',

                '<i>$1</i>', //  '/\[i\](.*?)\[\/i\]/is',
                '<i>$1</i>', //  '/<i>(.*?)<\/i>/is',
                '<i>$1</i>', //  '/<em>(.*?)<\/em>/is',

                '<u>$1</u>', //  '/\[u\](.*?)\[\/u\]/is',
                '<u>$1</u>', //  '/<u>(.*?)<\/u>/is',

                '<s>$1</s>', //  '/\[s\](.*?)\[\/s\]/is',
                '<s>$1</s>', //  '/<s>(.*?)<\/s>/is',

                '<i><font color=gray>$1</font></i>', // '/<quote>(.*?)<\/quote>/is',
                '<i><font color=gray>$1</font></i>', // '/<cite>(.*?)<\/cite>/is',

                '<font color=gray>&'.'gt;$1</font>', // '/>([^\&\n<]+)/is',

                ' $1 ',        // '<img src="$1" />',    '/\[img\](.*?)\[\/img\]/is',
                ' $1 ',        // '<a href="$1">$1</a>', '/\[url\](.*?)\[\/url\]/is',

                '<div class=rama><code>$1</code></div>', // '/\[tab\](.*?)\[\/tab\]/is', // табличка

        '<a href=\'$1\'>$2</a>' // '/\[url\=([^\>\<\'\"\=\:\)\(\;\#]*?)\](.*?)\[\/url\]/is'
                );
        $s = preg_replace($search, $replace, $s);
    $s = preg_replace_callback('/\[code\](.*?)\[\/code\]/is','CODE_comm', $s);
    $s = str_replace('"','&'.'quot;',$s);
        return $s;
}


function CODE_comm($t) {
/*
    $s=htmlspecialchars_decode($t[1]);
    $s=str_replace("<br>","\n",$s);
    $s=trim($s,"\n");
    $s=highlight_string("<?php\n".$s."\n?>",1);
    $s=str_replace("<br />","\n",$s);
    $s=str_replace("\n\n\n","\n",$s);
    $s=str_replace(array('<span style="','">'),array("<span style='","'>"),$s);
//if($GLOBALS['ADM']) idie(h(str_replace(array("\r","\n"),array('[r]','[n]'),$s)));
    $s=str_replace(array("<span style='color: #000000'>\n<span style='color: #0000BB'>&"."lt;?php\n","<span style='color: #0000BB'>?&"."gt;</span>\n</span>\n","?&"."gt;</span>\n</span>\n"),'',$s);
    $s=trim($s,"\n");
    $s=str_replace("\n","<br>",$s);
    $s=str_replace(array('<span style="','">'),array("<span style='","'>"),$s);
    return "<div style='width:90%;margin-left:20px;border:1px dotted #ccc;background-color:#eee;border-radius:5px;padding:5px;'>".$s."</div>";
*/
    return "<div style='width:90%;margin-left:20px;border:1px dotted #ccc;background-color:#eee;border-radius:5px;padding:5px;'><code>".$t[1]."</code></div>";
}

function hypermail($s,$k=1) { return preg_replace("/"
."([\s".($k?">":'')."\(\:])" // символы перед [1]
."([0-9a-z\-\_\.]+\@[0-9a-z\-\_\.]+)" // http:// или www. [3]
."(" // символы после
."[\.\?\:][^a-zA-Z0-9\/]"
."|[\s".($k?"<>":'').",\)$]"
.")"
."/si","$1<a href='mailto:$2'>$2</a>$3", $s);
}


function hyperlink($s,$k=1) {
    $papki="[a-zA-Z0-9\!\#\$\%\(\)\*\+\,\-\.\/\:\;\=\[\]\\\^\_\`\{\}\|\~]+";
    $lastaz="[a-zA-Z0-9\/]";
    $quer="[a-zA-Z0-9\!\#\$\%\&\(\)\*\+\,\-\.\/\:\;\=\?\@\[\]\\\^\_\`\{\}\|\~]+"; // {
    $lastquer="[a-zA-Z0-9\#\$\&\(\)\*\/\=\@\]\\\^\_\`\}\|\~]";
    return preg_replace_callback("/"
    ."([\s>"
    ."\(\:])" // символы перед [1]
    ."(" // [2]
    ."([a-z]+:\/\/|(www\.))" // http:// или www. [3]
    ."([0-9a-zA-Z][A-Za-z0-9_\.\-]*[A-Za-z]{2,6})" // aaa.bb-bb.c_c_c [4]
        ."(\:\d{1,6}|)" // порт йопта блять или пустота [5]
        ."("
                    ."\/".$papki.$lastaz."\?".$quer.$lastquer // /papka/papka.html?QUERY_STRING#HASH
            ."|"."\?".$quer.$lastquer // ?QUERY_STRING#HASH
            ."|"."\/".$papki.$lastaz // /papka/papka
        ."|)"
    .")"
    ."(" // символы после
    ."[\.\?\:][^a-zA-Z0-9\/]"
    ."|[\s"
    .($k?"<>":'')
    .",\)$]"
    .")"
    ."/s","url_present", $s);
}

$GLOBALS['media_id']=0;

function url_click($p,$s,$l=0) { $m='media_'.($GLOBALS['media_id']++);
    return $p[1]."<div id='$m'>"
    ."<div title=\"".LL('obracom:click_this')."\" class='l' onclick=\"majax('comment.php',{a:'show_url',type:'$s',url:'".($l===0?$p[2]:$l)."',media_id:'$m'})\">".reduceurl($p[2],60)."</div>"
    ."</div>".$p[8];
}

function url_present($p) { global $httpsite,$opt,$media_id,$site_mod;
    $o=( !isset($opt)
        or $opt['Comment_media']=='all'
        or $opt['Comment_media']=='my' && explode_last('://',$p[3].$p[5])==explode_last('://',$httpsite)
    ?1:0);

    $r=urldecode($p[7]);
    if(!strstr($r,'.')) $r=''; else $r=strtolower(explode_last('.',$r));

    if($r=='mp3') { // вставка mp3
        if($o){ include_once $site_mod."MP3.php"; return $p[1].MP3($p[2]." | mp3").$p[8]; }
        else return url_click($p,'mp3');
    }

    if(in_array($p[5],array(
'www.youtube.com',
// 'youtube.com',
'youtu.be',
'm.youtube.com'
))) { // вставка роликов с ютуба

    // https://youtube.com/clip/Ugkx8FUJlM3I4fSvmJ9w0i2siXwvBEydFL1[...]
    if(preg_match("/(youtube\.com\/clip\/)([0-9a-z\_\-]+)/si",$p[2],$m)) $m[2]='clip/'.$m[2]; else
    preg_match("/(v=|youtu\.be\/)([0-9a-z\_\-]+)/si",$p[2],$m);

        $t=0; $p[22]=str_replace('&'.'amp;','&',$p[2]); if( strstr($p[22],"?t=") || strstr($p[22],"&t=")) { // подсчитать время старта в секундах, если оно указано
        if(preg_match("/(\?|\&)t=[\dmsh]*?(\d+)h/si",$p[22],$i)) $t+=$i[2]*60*60;
        if(preg_match("/(\?|\&)t=[\dmsh]*?(\d+)m/si",$p[22],$i)) $t+=$i[2]*60;
        if(preg_match("/(\?|\&)t=[\dmsh]*?(\d+)s/si",$p[22],$i)) $t+=intval($i[2]);
        }
        $t=($t?"?start=".$t : '');

        if($o) return "<div alt='play'>".h($m[2].$t)." "
        ."<div style='border: 1px solid #ccc;box-shadow: 0px 5px 5px 5px rgba(0,0,0,0.6);"
        ." position:relative;width:320px;height:180px;display:inline-block;background-image:url(https://img.youtube.com/vi/".h($m[2])."/mqdefault.jpg);'>"
        ."<i style='position:absolute;top:70px;left:150px;' class='mv e_play-youtube'></i>"
        ."</div>"
        ."</div>";
        return url_click($p,'youtub',$m[2]);
    }

    if($p[3]=='www.') $p[2]='http://'.$p[2];
    $l=$p[7];

    if(!strstr($l,'module=') && ( $r=='jpg' or $r=='gif' or $r=='jpeg' or $r=='png' or $r=='webp'
        or stristr($p[0],'https://pix2.blogs.yandex.net/getavatar')
        or stristr($p[0],'https://avatars.yandex.net')
        )
    ) {
        if($o) {
        if($GLOBALS['HTTPS']=='https') {  $p[2]=str_ireplace('http'.substr($GLOBALS['httpsite'],5),'',$p[2]); } // патчим для HTTPS
        return $p[1].'<img style="max-width:900px;max-height:800px" src="'.$p[2].'"'.(strstr($l,'&'.'amp;prefix=normal')?' align=left hspace=10':'').'>'.$p[8];
            }
        return url_click($p,'img');
    }

    if($p[3]=='area://') return $p[1].'<a href="http://fghi.pp.ru/?'.$p[2].'">'.$p[3].$p[5].$l.'</a>'.$p[8];

    return $p[1].'<noindex><a href="'.$p[2].'" rel="nofollow">'.reduceurl(maybelink($p[3].$p[5].$l),60).'</a></noindex>'.$p[8];
}

function reduceurl($s,$l) { if(strlen($s) > $l) $s=substr($s,0,$l)."[...]"; return $s; }

?>