2022-06-06 21:30:34 +00:00
var sml _img = { } ;
Element . prototype . remove = function ( ) {
this . parentElement . removeChild ( this ) ;
}
NodeList . prototype . remove = HTMLCollection . prototype . remove = function ( ) {
for ( var i = 0 , len = this . length ; i < len ; i ++ ) {
if ( this [ i ] && this [ i ] . parentElement ) {
this [ i ] . parentElement . removeChild ( this [ i ] ) ;
}
}
}
var chat = {
2022-12-19 18:26:14 +00:00
key : '' ,
room : '' ,
count : 0 ,
time : 0 ,
t : null , //timer
t2 : null , //timer 2
t _all : { } , //time molch
r : 0 ,
g : 0 ,
rtime : 37 ,
ct : { '-1' : 0 , '1' : 15 , '2' : 30 , '3' : 60 , '4' : 300 } ,
saveData : null ,
msg _id : 0 ,
nrg : 0 ,
nozpros : 0 ,
newmsg : 0 ,
sound : 0 ,
translit : 0 ,
filter : 0 ,
globalMsg : 0 ,
ignoreList : { x : 0 , nms : [ ] } ,
citySys : 0 ,
inObj : null ,
efftxt : function ( id , txt ) {
var r = txt ;
/ * i f ( i d = = ' f i r e ' ) {
r = '<svg viewBox="0 0 600 300"><pattern id="p-fire" viewBox="10 100 186 200" patternUnits="userSpaceOnUse" width="216" height="200" x="-70" y="35"><image xlink:href="img/fire.gif" width="256" height="300"/></pattern><text text-anchor="middle" x="50%" y="50%" dy=".35em" class="text">' ;
r += txt ;
r += '</text></svg>' ;
} * /
return r ;
} ,
ignore : function ( login )
{
if ( this . ignoreList [ login ] != undefined )
{
if ( $ ( '#ignr_alu' ) . attr ( 'id' ) != undefined )
{
$ ( '#ignr_u_' + this . ignoreList [ login ] ) . remove ( ) ;
}
delete this . ignoreList . nms [ this . ignoreList [ login ] ] ;
delete this . ignoreList [ login ] ;
//msg
} else {
this . ignoreList . x ++ ;
this . ignoreList [ login ] = this . ignoreList . x ;
this . ignoreList . nms [ this . ignoreList . x ] = login ;
if ( $ ( '#ignr_alu' ) . attr ( 'id' ) != undefined )
{
2023-01-10 16:29:32 +00:00
$ ( '#ignr_alu' ) . html ( $ ( '#ignr_alu' ) . html ( ) + '<div id="ignr_u_' + this . ignoreList . x + '"> <b>' + login + '</b> <a target="_blank" href="https://new-combats.com/info/' + login + '"><img src="https://' + top . c . img + '/i/inf_capitalcity.gif" onMouseOver="top.hi(this,\'<b>Инф. о ' + login + '</b>\',event,5,-2,2,2,\'\');" onMouseOut="top.hic();" onMouseDown="top.hic();"></a> <small><a href="javascript:void(0)" onclick="chat.ignorUn(' + this . ignoreList . x + ')">Clear</a></small> </div>' ) ;
2022-12-19 18:26:14 +00:00
}
//msg
}
} ,
getRandom : function ( a , b ) {
return a + ( ( b - a ) * Math . random ( ) ) ;
} ,
feerverk _id : 0 ,
feerverk : function ( name ) {
if ( name == 'fw04' ) {
var frc = {
'name' : 'fw04' ,
'x' : 19 ,
'top' : this . getRandom ( 1 , 35 ) ,
'left' : this . getRandom ( 0 , 365 ) ,
'width' : 135 ,
'sound' : this . getRandom ( 8 , 10 ) ,
'height' : 99 ,
'zad' : 3
} ;
frc . left -= 35 ;
}
if ( frc . name != undefined ) {
this . sendSound ( frc . sound ) ;
var obj = top . frames . main . document . getElementById ( 'frvrks' ) ;
if ( obj != undefined ) {
var newhtml = '' ;
var i = 1 ;
while ( i <= frc . x ) {
newhtml += ` <img style="display:none" id="frvanim_ ${ this . feerverk _id } _img ${ i } " width=" ${ frc . width } " height=" ${ frc . height } " src="https://img.new-combats.com/fw/ ${ frc . name } / ${ i } .gif"> ` ;
2022-06-06 21:30:34 +00:00
i ++ ;
2022-12-19 18:26:14 +00:00
}
newhtml = ` <div id="frvanim_ ${ this . feerverk _id } " style="z-index:5000;position:absolute;width: ${ frc . width } px;height: ${ frc . height } px;left: ${ frc . left } px;top: ${ frc . top } px;"> ${ newhtml } </div> ` ;
$ ( obj ) . append ( newhtml ) ;
this . feerverk _go ( this . feerverk _id , frc . x - 1 , frc . name , frc . x , frc . zad ) ;
this . feerverk _id ++ ;
}
} else {
2023-01-10 16:29:32 +00:00
//alert('Эффект не опознан!');
2022-12-19 18:26:14 +00:00
}
} ,
feerverk _go : function ( id , time _back , img , x , zad ) {
if ( zad > 0 ) {
setTimeout ( ` chat.feerverk_go( ${ id } , ${ time _back } ," ${ img } ", ${ x } ,0); ` , 500 * zad ) ;
} else {
time _back -- ;
var obj = top . frames . main . document . getElementById ( ` frvanim_ ${ id } ` ) ;
if ( time _back > 0 ) {
2023-01-10 16:29:32 +00:00
var img1 = top . frames . main . document . getElementById ( ` frvanim_ ${ id } _img ${ ( x - time _back + 1 ) } ` ) ; //текущая
2022-12-19 18:26:14 +00:00
if ( img1 != undefined ) img1 . style . display = 'none' ;
2023-01-10 16:29:32 +00:00
var img1 = top . frames . main . document . getElementById ( ` frvanim_ ${ id } _img ${ ( x - time _back + 2 ) } ` ) ; //текущая
2022-12-19 18:26:14 +00:00
if ( img2 != undefined ) img2 . style . display = '' ;
2022-06-06 21:30:34 +00:00
setTimeout ( ` chat.feerverk_go( ${ id } , ${ time _back } ," ${ img } ", ${ x } ,0); ` , 50 ) ;
2022-12-19 18:26:14 +00:00
} else top . frames . main . document . getElementById ( ` frvanim_ ${ id } ` ) . remove ( ) ;
}
} ,
ignorUn : function ( x )
{
$ ( '#ignr_u_' + x ) . remove ( ) ;
this . ignore ( this . ignoreList . nms [ x ] ) ;
} ,
ignorListOpen : function ( )
{
var date = '' , i = 0 ;
var j = 1 ;
while ( j <= this . ignoreList . x )
{
if ( this . ignoreList [ this . ignoreList . nms [ j ] ] != undefined )
{
2023-01-10 16:29:32 +00:00
date += ` <div id="ignr_u_ ${ j } "> <b> ${ this . ignoreList . nms [ j ] } </b> <a target="_blank" href="https://new-combats.com/info/ ${ this . ignoreList . nms [ j ] } "><img src="https:// ${ top . c . img } /i/inf_capitalcity.gif" onMouseOver="top.hi(this, \' <b>Инф. о ${ this . ignoreList . nms [ j ] } </b> \' ,event,5,-2,2,2, \' \' );" onMouseOut="top.hic();" onMouseDown="top.hic();"></a> <small><a href="javascript:void(0)" onclick="chat.ignorUn( ${ j } )">Clear</a></small> </div> ` ;
2022-12-19 18:26:14 +00:00
}
j ++ ;
}
2023-01-10 16:29:32 +00:00
win . add ( 'ignorListWin' , 'Список игнорируемых' , ` <div id="ignr_alu"> ${ date } </div> ` , { } , 0 , 1 , 'min-width:200px;' ) ;
2022-12-19 18:26:14 +00:00
delete date ;
} ,
addSmile : function ( id )
{
$ ( '#textmsg' ) . val ( $ ( '#textmsg' ) . val ( ) + ' :' + id + ': ' ) ;
$ ( '#textmsg' ) . focus ( ) ;
} ,
lookSmiles : function ( )
{
if ( $ ( '#chbtn8' ) . attr ( 'class' ) == 'db cp chatBtn8_1' )
{
$ ( '#ttSmiles' ) . css ( 'display' , '' ) ;
$ ( '#chbtn8' ) . attr ( 'class' , 'db cp chatBtn8_2' ) ;
} else {
$ ( '#ttSmiles' ) . css ( 'display' , 'none' ) ;
$ ( '#chbtn8' ) . attr ( 'class' , 'db cp chatBtn8_1' ) ;
}
} ,
filterMsg : function ( )
{
if ( $ ( '#chbtn1' ) . attr ( 'class' ) == 'db cp chatBtn1_1' )
{
$ ( '#chbtn1' ) . attr ( 'class' , 'db cp chatBtn1_2' ) ; this . filter = 1 ;
} else {
$ ( '#chbtn1' ) . attr ( 'class' , 'db cp chatBtn1_1' ) ; this . filter = 0 ;
}
} ,
systemMsg : function ( )
{
if ( $ ( '#chbtn4' ) . attr ( 'class' ) == 'db cp chatBtn4_1' )
{
$ ( '#chbtn4' ) . attr ( 'class' , 'db cp chatBtn4_2' ) ; this . citySys = 1 ; $ . cookie ( 'citySys' , 1 ) ;
} else {
$ ( '#chbtn4' ) . attr ( 'class' , 'db cp chatBtn4_1' ) ; this . citySys = 0 ; $ . cookie ( 'citySys' , 0 ) ;
}
} ,
soundChat : function ( )
{
if ( $ ( '#chbtn7' ) . attr ( 'class' ) == 'db cp chatBtn7_1' )
{
$ ( '#chbtn7' ) . attr ( 'class' , 'db cp chatBtn7_2' ) ; this . sound = 1 ;
} else if ( $ ( '#chbtn7' ) . attr ( 'class' ) == 'db cp chatBtn7_2' ) {
$ ( '#chbtn7' ) . attr ( 'class' , 'db cp chatBtn7_3' ) ; this . sound = 2 ;
} else {
$ ( '#chbtn7' ) . attr ( 'class' , 'db cp chatBtn7_1' ) ; this . sound = 0 ;
}
} ,
translitChat : function ( )
{
if ( $ ( '#chbtn6' ) . attr ( 'class' ) == 'db cp chatBtn6_1' )
{
$ ( '#chbtn6' ) . attr ( 'class' , 'db cp chatBtn6_2' ) ; this . translit = 1 ;
} else {
$ ( '#chbtn6' ) . attr ( 'class' , 'db cp chatBtn6_1' ) ; this . translit = 0 ;
}
} , subValSend : '' ,
2022-06-06 21:30:34 +00:00
subSend : function ( ) {
if ( $ ( '#textmsg' ) . val ( ) != '' ) {
if ( $ ( '#textmsg' ) . val ( ) != this . subValSend ) {
if ( this . nozpros == 0 ) {
this . trmb ( ) ;
var textmsg = $ ( '#textmsg' ) . val ( ) ;
if ( cb _date [ cb _select ] == 7 && ( textmsg . match ( /to *\[(.*?)\].*/i ) || textmsg . match ( /private *\[(.*?)\].*/i ) ) ) {
for ( var cb in cb _date ) {
if ( cb _date [ cb ] == 5 ) {
open _cb ( cb , null ) ;
}
}
}
if ( typeof window . online _send _jqxhr == "undefined" || window . online _jqxhr . readyState === 4 ) {
window . online _send _jqxhr = $ . post ( 'online.php?r' + c . rnd + '&cas' + ( ( new Date ( ) . getTime ( ) ) + Math . random ( ) ) , { msg : textmsg , key : this . key , mid : this . msg _id , rndo : c . rnd , tgfs : tgf _status , cb : cb _date [ cb _select ] } ,
function ( data ) {
chat . clearText ( ) ;
chat . fc ( ) ;
chat . genchatData ( data , 1 ) ;
} ) ;
} else {
console . log ( 'window.online_send_jqxhr in process!' ) ;
}
}
}
}
} ,
2022-12-19 18:26:14 +00:00
addto : function ( login , type2 ) {
var loginaddT = login ;
var s = '' ;
if ( $ ( '#' + $ ( this . inObj ) . attr ( 'id' ) ) . attr ( 'id' ) == undefined ) {
$ ( '#textmsg' ) . focus ( ) ;
s = $ ( '#textmsg' ) . val ( ) ;
} else $ ( this . inObj ) . focus ( ) ;
var reg555 = new RegExp ( "private\\s*\\[(.*?)\\]" , "" ) ;
var reg551 = new RegExp ( "to\\s*\\[(.*?)\\]" , "" ) ;
var test1 = s . match ( reg555 ) ;
if ( s . match ( reg555 ) == null ) type = "to" ;
2022-06-06 21:30:34 +00:00
else if ( s . match ( reg551 ) == null ) type = "private" ;
2022-12-19 18:26:14 +00:00
var type3 = 'to' ;
2022-06-06 21:30:34 +00:00
var reg2 = new RegExp ( ` ${ type } ( \\ s*) \\ [(.*?) \\ ] ` , "" ) ;
2022-12-19 18:26:14 +00:00
var cs = s . replace ( reg2 , ` ${ type } $ 1[, $ 2,] ` ) ;
var slogin = login . replace ( /([\^.*{}$%?\[\]+|\/\(\)])/g , "\\$1" ) ;
var reg = new RegExp ( ` ${ type } \\ s* \\ [.*, \\ s* ${ slogin } \\ s*,.* \\ ] ` , "" ) ;
var result = '' ;
var reg3 = new RegExp ( ` ${ type } \\ s* \\ [(.*?) \\ ] ` , "" ) ;
while ( res = s . match ( reg3 ) ) {
result += ` ${ res [ 1 ] } , ` ;
s = s . replace ( reg3 , '' ) ;
}
result = result . replace ( /,$/ , '' ) ;
var prar = result . split ( ',' ) ;
for ( i = 0 ; i < prar . length ; i ++ ) {
prar [ i ] = prar [ i ] . replace ( /^\s+/ , '' ) ;
prar [ i ] = prar [ i ] . replace ( /\s+$/ , '' ) ;
}
var str = prar . join ( ', ' ) ;
if ( str ) login += ', ' ;
space = '' ;
if ( ! s . match ( /^\s+/ ) ) space = ' ' ;
var prob = '' ;
if ( ! $ ( '#' + $ ( this . inObj ) . attr ( 'id' ) ) . attr ( 'id' ) && ( ! this . inObj || ! $ ( '#main' ) . contents ( ) . find ( '#' + this . inObj . id ) . attr ( 'id' ) ) )
{
if ( ! cs . match ( reg ) )
{
if ( type2 == 'to' ) {
if ( test1 != null ) type2 = 'private'
}
if ( loginaddT == 'klan' && type2 == 'private' )
{
if ( login == 'klan, ' )
{
s = ` ${ type2 } [klan] to [ ${ prob } ${ str } ${ prob } ] ${ space } ${ s } ` ;
}
else { s = ` ${ type2 } [klan] ${ space } ${ s } ` ; }
}
else { s = ` ${ type2 } [ ${ prob } ${ login } ${ str } ${ prob } ] ${ space } ${ s } ` }
} else {
2022-06-06 21:30:34 +00:00
2022-12-19 18:26:14 +00:00
if ( type3 == 'to' ) type3 = "private" ;
s = ` ${ type3 } [ ${ prob } ${ str } ${ prob } ] ${ space } ${ s } ` ;
}
} else s = login + str ;
if ( this . inObj != null && $ ( '#main' ) . contents ( ) . find ( '#' + this . inObj . id ) . attr ( 'id' ) != undefined ) {
$ ( '#main' ) . contents ( ) . find ( '#' + this . inObj . id ) . val ( s ) ;
} else if ( $ ( '#' + $ ( this . inObj ) . attr ( 'id' ) ) . attr ( 'id' ) == undefined ) {
$ ( '#textmsg' ) . val ( s ) ;
} else $ ( this . inObj ) . val ( s ) ;
} ,
clearText : function ( )
{
$ ( '#textmsg' ) . val ( '' ) ;
} ,
reflesh : function ( )
{
this . time = 0 ;
this . testTimer ( true ) ;
} ,
reMoney : function ( )
{
2023-01-10 16:29:32 +00:00
$ ( '#moneyGM' ) . html ( top . c . money + ' кр.' ) ;
2022-12-19 18:26:14 +00:00
} ,
2022-06-06 21:30:34 +00:00
testTimer : function ( n ) {
clearTimeout ( this . t ) ;
if ( $ . cookie ( 'btl' ) != this . btl ) {
if ( $ . cookie ( 'btl' ) > 0 ) {
this . sendSound ( 2 ) ;
if ( top . frames [ 'main' ] . smnpty != undefined ) {
2022-12-19 18:26:14 +00:00
}
else top . frames [ 'main' ] . location . href = "main.php" ;
2022-06-06 21:30:34 +00:00
}
this . btl = $ . cookie ( 'btl' ) ;
}
if ( this . rtime != this . ct [ $ . cookie ( 'chatCfg0' ) ] && this . ct [ $ . cookie ( 'chatCfg0' ) ] != undefined ) {
this . rtime = this . ct [ $ . cookie ( 'chatCfg0' ) ] ;
if ( this . time > this . rtime ) this . time = this . rtime ;
}
//console.log(this.rtime+" "+this.r);
if ( this . rtime >= 5 || this . r == 0 ) //was >- 30 lakris fix
{
if ( this . time < 1 ) {
var aot = {
0 : 0 ,
1 : 1 ,
2 : 0
} ;
if ( $ ( '#chcf10' ) . attr ( 'checked' ) == true ) aot [ 2 ] = 1 ;
if ( $ ( '#autoRefOnline' ) . attr ( 'checked' ) == true || this . r == 0 || n != false ) {
aot [ 0 ] = 1 ;
}
if ( this . nozpros == 0 ) {
2022-12-19 18:26:14 +00:00
2022-06-06 21:30:34 +00:00
if ( typeof window . online _jqxhr == "undefined" || window . online _jqxhr . readyState === 4 ) {
window . online _jqxhr = $ . getJSON ( 'online.php?r' + c . rnd + '&cas' + ( ( new Date ( ) . getTime ( ) ) + Math . random ( ) ) , { key : this . key , mid : this . msg _id , r1 : aot [ 0 ] , r2 : aot [ 1 ] , r3 : aot [ 2 ] , rndo : c . rnd } , function ( data ) {
if ( data . rnd != null ) {
chat . genchatData ( data ) ;
if ( data . key != undefined ) chat . saveData = data ;
this . g ++ ;
c . rnd = data . rnd ;
}
} ) ;
} else {
console . log ( 'window.online_jqxhr in process!' ) ;
}
}
this . time = 5 ;
this . r ++ ;
} else this . time -- ;
this . t = setTimeout ( 'chat.testTimer(false);clearTimeout(this.t);' , 1000 ) ;
}
} ,
2022-12-19 18:26:14 +00:00
gUser : function ( data , ol )
{
var rt = '' ;
if ( data [ 1 ] != undefined )
{
rt = data [ 1 ] ;
2023-01-10 16:29:32 +00:00
if ( rt == 'Администратор' ) {
2022-12-19 18:26:14 +00:00
rt = this . efftxt ( 'fire' , rt ) ;
}
if ( ol == true )
{
rt = ` <a href="javascript:void(0)" onClick="chat.addto( \' ${ data [ 1 ] } \' , \' to \' )"> ${ rt } </a> ` ;
}
else rt = ` <b> ${ rt } </b> ` ;
if ( data [ 13 ] != 0 ) rt = ` <span class="uCss ${ data [ 13 ] } "> ${ rt } </span> ` ;
if ( data [ 10 ] > 0 )
{
2023-01-10 16:29:32 +00:00
rt = ` <s onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this, \' Персонаж был заблокирован \' ,event,3,1,1,2, \' \' )"> ${ rt } </s> ` ;
2022-12-19 18:26:14 +00:00
}
if ( data [ 8 ] != 0 )
{
data [ 8 ] = this . replaceAll ( data [ 8 ] , "\\" , '\\\\' ) ;
data [ 8 ] = this . replaceAll ( data [ 8 ] , "[s1;]" , '"' ) ;
data [ 8 ] = this . replaceAll ( data [ 8 ] , "[s2;]" , '`' ) ;
data [ 8 ] = this . replaceAll ( data [ 8 ] , "[s3;]" , '' ) ;
data [ 8 ] = this . replaceAll ( data [ 8 ] , "[s4;]" , '' ) ;
data [ 8 ] = this . replaceAll ( data [ 8 ] , "<" , '' ) ;
data [ 8 ] = this . replaceAll ( data [ 8 ] , ">" , '' ) ;
//rt = ' <small onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this,\' '+data[8]+' \',event,3,1,1,2,\'\')"><b>afk</b></small> '+rt;
} else if ( data [ 9 ] != 0 )
{
data [ 9 ] = this . replaceAll ( data [ 9 ] , "\\" , '\\\\' ) ;
data [ 9 ] = this . replaceAll ( data [ 9 ] , "[s1;]" , '"' ) ;
data [ 9 ] = this . replaceAll ( data [ 9 ] , "[s2;]" , '`' ) ;
data [ 9 ] = this . replaceAll ( data [ 9 ] , "[s3;]" , '' ) ;
data [ 9 ] = this . replaceAll ( data [ 9 ] , "[s4;]" , '' ) ;
data [ 9 ] = this . replaceAll ( data [ 9 ] , "<" , '' ) ;
data [ 9 ] = this . replaceAll ( data [ 9 ] , ">" , '' ) ;
//rt = ' <small onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this,\' '+data[9]+' \',event,3,1,1,2,\'\')"><b>dnd</b></small> '+rt;
}
2023-01-10 16:29:32 +00:00
// тут
2022-12-19 18:26:14 +00:00
function rtData ( count ) {
return rt = ` <img height="15" src="https:// ${ top . c . img } /i/align/align ${ data [ count ] } .gif"> ${ rt } ` ;
}
if ( data [ 4 ] != 0 )
{
rt = ` <a href="/clan/ ${ data [ 4 ] } " title=" ${ data [ 4 ] } " target="_blank"><img width="24" height="15" src="https:// ${ c . img } /i/clan/ ${ data [ 4 ] } .gif"></a> ${ rt } ` ;
}
if ( data [ 16 ] > 0 ) rtData ( 16 )
rtData ( 3 )
if ( c . lvl > - 1 )
{
if ( c . city == data [ 6 ] )
{
if ( data [ 12 ] > 0 )
{
2023-01-10 16:29:32 +00:00
rt = ` <a href="javascript:void(0)" onClick="chat.addto( \' ${ data [ 1 ] } \' , \' private \' )"><img title="Персонаж сражается" src="https:// ${ c . img } /i/lock1.gif" width="20" height="15"></a> ${ rt } ` ;
2022-12-19 18:26:14 +00:00
} else {
rt = ` <a href="javascript:void(0)" onClick="chat.addto( \' ${ data [ 1 ] } \' , \' private \' )"><img src="https:// ${ c . img } /i/lock.gif" width="20" height="15"></a> ${ rt } ` ;
}
} else {
2023-01-10 16:29:32 +00:00
rt = ` <img style="padding-right:3px;" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this, \' Персонаж сейчас в ${ data [ 6 ] } \' ,event,3,1,1,2, \' \' )" src="https:// ${ c . img } /i/city_ico/ ${ data [ 6 ] } '.gif" width="17" height="15"> ${ rt } ` ;
2022-12-19 18:26:14 +00:00
}
}
2023-01-10 16:29:32 +00:00
rt += ` [ ${ data [ 2 ] } ]<a href="https:// ${ c . url } /info/ ${ data [ 0 ] } " target="_blank"><img style="vertical-align:baseline" width="12" height="11" src="https:// ${ top . c . img } /i/inf_ ${ data [ 5 ] } .gif" title="Инф. о ${ data [ 1 ] } " /></a> ` ;
2022-12-19 18:26:14 +00:00
if ( data [ 11 ] > top . c . time )
{
2023-01-10 16:29:32 +00:00
rt += ` <img id="img_molch ${ data [ 1 ] } " width="24" height="15" style="cursor:help" src="https:// ${ c . img } /i/sleep2.gif" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this, \' Н а персонажа наложено заклятие молчания.<br>Будет молчать еще <span id=\\ \' molch ${ data [ 0 ] } \\ \' > ${ this . timeOut ( data [ 11 ] ) } </span> \' ,event,3,1,1,2, \' \' );chat.justRefMolch( ${ data [ 0 ] } )"> ` ;
2022-12-19 18:26:14 +00:00
this . addRefMolch ( data [ 0 ] , data [ 11 ] ) ;
}
if ( data [ 14 ] != "" )
{
2023-01-10 16:29:32 +00:00
rt += ` <img width="24" height="15" style="cursor:help" src="https:// ${ c . img } /i/travma2.gif" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this, \' У персонажа ${ data [ 14 ] } \' ,event,3,1,1,2, \' \' );"> ` ;
2022-12-19 18:26:14 +00:00
}
if ( data [ 13 ] > 0 )
{
if ( data [ 13 ] == 2 ) {
2023-01-10 16:29:32 +00:00
rt += ` <a target="main" href="/main.php?atak_user= ${ data [ 0 ] } " title="Кровавое нападение на ${ data [ 1 ] } "><img width="13" height="13" src="https:// ${ c . img } /i/clear.gif"></a> ` ;
2022-12-19 18:26:14 +00:00
} else {
2023-01-10 16:29:32 +00:00
rt += ` <a target="main" href="/main.php?atak_user= ${ data [ 0 ] } " title="Напасть на ${ data [ 1 ] } "><img width="13" height="13" src="https:// ${ c . img } /i/curse_attack.gif"></a> ` ;
2022-12-19 18:26:14 +00:00
}
}
if ( data [ 15 ] == 1 ) rt = ` <span class=woman > ${ rt } </span> `
else {
//rt = ' M';
}
2023-01-10 16:29:32 +00:00
} else rt = '<i>невидимка</i>[??]'
2022-12-19 18:26:14 +00:00
return rt ;
} , mlch : { } ,
justRefMolch : function ( id ) {
$ ( '#molch' + id ) . html ( this . timeOut ( this . mlch [ id ] ) ) ;
} ,
addRefMolch : function ( id , tm )
{
this . t _all [ id ] = setTimeout ( ` chat.refMolch( ${ id } ) ` , 1000 ) ;
this . mlch [ id ] = tm ;
} ,
refMolch : function ( id )
{
clearTimeout ( this . t _all [ id ] ) ;
if ( this . mlch [ id ] > 0 ) {
$ ( '#molch' + id ) . html ( this . timeOut ( this . mlch [ id ] ) ) ;
this . t _all [ id ] = setTimeout ( ` chat.refMolch( ${ id } ) ` , 1000 ) ;
} else {
$ ( '#img_molch' + id ) . remove ( ) ;
delete this . mlch [ id ] , this . t _all ;
}
} ,
fc : function ( )
{
$ ( '#textmsg' ) . focus ( ) ;
} ,
timeOut : function ( v )
{
msPerDay = '' ;
2022-06-06 21:30:34 +00:00
2022-12-19 18:26:14 +00:00
dt = new Date ( ) ;
dt . setTime ( ( v - c . time ) * 1000 ) ;
2022-06-06 21:30:34 +00:00
2022-12-19 18:26:14 +00:00
m1 = dt . getUTCMonth ( ) ;
d1 = dt . getUTCDay ( ) ;
h1 = dt . getUTCHours ( ) ;
min1 = dt . getUTCMinutes ( ) ;
sec = dt . getUTCSeconds ( ) ;
2023-01-10 16:29:32 +00:00
if ( m1 > 0 ) msPerDay = ` ${ m1 } мес. ` ;
if ( d1 > 0 && Math . floor ( ( v - c . time ) / ( 60 * 60 * 24 ) ) == d1 ) msPerDay = ` ${ d1 } д. ` ;
if ( h1 > 0 ) msPerDay += ` ${ h1 } ч. ` ;
if ( min1 > 0 ) msPerDay += ` ${ min1 } мин. ` ;
if ( sec > 0 && msPerDay != '' ) msPerDay += ` ${ sec } сек. ` ;
if ( msPerDay == '' ) msPerDay = 'меньше минуты.' ;
2022-12-19 18:26:14 +00:00
delete m1 , d1 , h1 , min1 , sec ;
return msPerDay ;
} ,
deleteMessage : function ( id , fc )
{
//$('#msg_'+id).hide('slow'); setTimeout("$('#msg_'+id).remove();",1000);
if ( fc == 1 ) top . msgdeleted ( id )
else {
$ ( '#msg_' + id ) . remove ( ) ;
$ ( '#msg_' + id + '_sys' ) . remove ( ) ;
if ( top . c . admin > 0 )
{
$ . post ( 'online.php?jack=' + c . rnd + '&cas' + ( ( new Date ( ) . getTime ( ) ) + Math . random ( ) ) , { delMsg : id } ) ;
}
}
} ,
clear : function ( )
{
if ( $ ( '#textmsg' ) . val ( ) == '' )
{
2023-01-10 16:29:32 +00:00
if ( confirm ( 'Очистить окно чата?' ) )
2022-12-19 18:26:14 +00:00
{
//if(top.cb_date[top.cb_select] == 4 || top.cb_date[top.cb_select] == 5) {
if ( top . des == 1 ) {
$ ( '#canal' + top . cb _date [ top . cb _select ] ) . html ( '' ) ;
$ ( '#textmsg' ) . focus ( ) ;
}
$ ( '#canal5' ) . html ( '' ) ;
$ ( '#textmsg' ) . focus ( ) ;
return
}
} else $ ( '#textmsg' ) . val ( '' ) ;
} ,
scrollNow : function ( id )
{
if ( top . des == 0 || top . cb _date [ top . cb _select ] == 5 || top . cb _date [ top . cb _select ] == 4 ) {
//alert(id);
$ ( '#chat_list' ) . stop ( ) ;
$ ( '#chat_list' ) . animate ( { scrollTop : $ ( '#chat_list' ) [ 0 ] . scrollHeight } , 1000 ) ;
//console.log(`${document.getElementById("chat_list").scrollTop}px`)
//console.log(`${document.getElementById("chat_list").clientHeight}px`)
var $chat _list = document . getElementById ( "chat_list" )
console . log ( ( $chat _list . scrollHeight - $chat _list . scrollTop ) )
2022-06-06 21:30:34 +00:00
2022-12-19 18:26:14 +00:00
if ( ( $chat _list . scrollHeight - $chat _list . scrollTop ) < 358 ) {
2023-01-10 16:29:32 +00:00
console . log ( ( ` Крутим в начало ${ $chat _list . scrollHeight - $chat _list . scrollTop } ` ) )
2022-12-19 18:26:14 +00:00
return $chat _list . scrollBy ( 0 , $chat _list . scrollHeight )
2023-01-10 16:29:32 +00:00
} else console . log ( "не крутим" )
2022-12-19 18:26:14 +00:00
//$('#chat_list').scrollTop();
}
} ,
msgcount : 0 ,
sendMsg : function ( data )
{
var msg _see = 1 ;
var global _type = 0 ;
2022-06-06 21:30:34 +00:00
2022-12-19 18:26:14 +00:00
if ( data [ 5 ] != undefined ) {
if ( data [ 5 ] . substring ( 0 , 7 ) == 'global:' ) {
global _type = 1 ;
data [ 5 ] = data [ 5 ] . substring ( 7 ) ;
}
}
if ( data [ 0 ] == 'new' ) {
data [ 0 ] = ` new_msg_ ${ this . newmsg } ` ;
this . newmsg ++ ;
}
2022-06-06 21:30:34 +00:00
if ( data [ 2 ] == 'delete' ) this . deleteMessage ( data [ 0 ] ) ;
else if ( data [ 'd' ] > 0 ) this . deleteMessage ( data [ 'd' ] ) ;
2022-12-19 18:26:14 +00:00
else if ( data [ 's' ] > 0 ) this . deleteMessage ( data [ 's' ] ) ;
else if ( data [ 0 ] != undefined && top . document . getElementById ( ` msg_ ${ data [ 0 ] } ` ) == undefined )
{
var msg = '' ;
if ( data [ 0 ] != 0 )
{
if ( top . c . admin > 0 ) {
if ( data [ 12 ] == 1 ) {
msg += '<small style="color:red;text-decoration:blink"> <b>un</b>active </small>' ;
}
}
if ( data [ 3 ] != '' )
{
if ( data [ 16 ] > 0 ) {
2023-01-10 16:29:32 +00:00
msg += ` [<a href="javascript:void(0)" oncontextmenu="top.infoMenu( \' Невидимка \' ,event, \' chat \' ); return false;" onClick="chat.addto( \' Невидимка \' , \' to \' )"> ${ data [ 3 ] } </a>] ` ;
2022-12-19 18:26:14 +00:00
} else {
msg += ` [<a href="javascript:void(0)" oncontextmenu="top.infoMenu( \' ${ data [ 3 ] } \' ,event, \' chat \' ); return false;" onClick="chat.addto( \' ${ data [ 3 ] } \' , \' to \' )"> ${ data [ 3 ] } </a>] ` ;
}
if ( chat . ignoreList [ data [ 3 ] ] != undefined ) msg _see = 0 ;
}
if ( data [ 4 ] != '' )
{
var forYou = 0 ;
2023-01-10 16:29:32 +00:00
//тот кто писал
2022-06-06 21:30:34 +00:00
2023-01-10 16:29:32 +00:00
//кому написали, разбор массива
2022-12-19 18:26:14 +00:00
if ( data [ 4 ] != '' )
{
var to = '' , to2 = '' , arr = data [ 4 ] . split ( ',' ) , i = 0 , vl = '' ;
2023-01-10 16:29:32 +00:00
//тем кому писали
2022-12-19 18:26:14 +00:00
while ( i != - 1 )
{
if ( arr [ i ] != undefined )
{
vl = this . trim ( arr [ i ] ) ;
if ( vl . toLowerCase ( ) == top . c . login . toLowerCase ( ) )
{
forYou ++ ;
}
if ( vl . toLowerCase ( ) == top . c . login . toLowerCase ( ) )
{
vl = this . trim ( data [ 3 ] ) ;
}
if ( i > 0 )
{
to += ', ' ;
to2 += ', ' ;
}
if ( data [ 3 ] != '' )
{
to += ` <span style="cursor:pointer" onclick="chat.addto( \' ${ vl } \' , \' private \' );" oncontextmenu="top.infoMenu( \' ${ this . trim ( arr [ i ] ) } \' ,event, \' chat \' ); return false;"> ${ this . trim ( arr [ i ] ) } </span> ` ;
if ( this . trim ( arr [ i ] . toLowerCase ( ) ) != top . c . login . toLowerCase ( ) )
{
to2 += this . trim ( arr [ i ] ) ;
} else {
if ( data [ 2 ] == 2 ) to2 += this . trim ( arr [ i ] ) ;
else to2 += this . trim ( vl ) ;
}
}
} else i = - 2 ;
i ++ ;
}
}
if ( data [ 2 ] == 6 || data [ 2 ] == 8 ) {
var zmlogin = new RegExp ( "\\[login:(.*?)\\]" , "" ) ;
var reflcd = new RegExp ( "\\[reflesh_main_zv_priem:(.*?)\\]" , "" ) ;
if ( data [ 5 ] . match ( zmlogin ) != null )
{
zmlogin = data [ 5 ] . match ( zmlogin ) [ 1 ] ;
data [ 5 ] = data [ 5 ] . replace ( ` [login: ${ zmlogin } ] ` , ` <a onMouseDown="top.loginGo( \' ${ zmlogin } \' ,event);" oncontextmenu="top.infoMenu( \' ${ zmlogin } \' ,event, \' chat \' ); return false;" title=" ${ zmlogin } " style="cursor:pointer;" onClick="chat.multiAddto( \' ${ zmlogin } \' , \' to \' );"> ${ zmlogin } </a> ` ) ;
}
if ( data [ 5 ] . match ( reflcd ) != null )
{
reflcd = data [ 5 ] . match ( reflcd ) [ 1 ] ;
data [ 5 ] = data [ 5 ] . replace ( ` [reflesh_main_zv_priem: ${ reflcd } ] ` , '' ) ;
}
}
2023-01-10 16:29:32 +00:00
//Собираем массив кому адресовано сообщение
2022-12-19 18:26:14 +00:00
if ( data [ 2 ] == 6 )
{
2023-01-10 16:29:32 +00:00
//личная системка, внимание
msg += ' <span style="color:red">Внимание!</span> ' ;
2022-12-19 18:26:14 +00:00
} else if ( data [ 2 ] == 2 )
{
if ( forYou > 0 )
{
msg += ` <span style="color: ${ data [ 6 ] } "><b>to [ ${ to2 } ]</b></span> ` ;
} else {
msg += ` <span style="color: ${ data [ 6 ] } ">to [ ${ to2 } ]</span> ` ;
}
} else if ( data [ 2 ] == 3 )
{
if ( this . trim ( data [ 3 ] . toLowerCase ( ) ) == top . c . login . toLowerCase ( ) )
{
forYou ++ ;
}
if ( data [ 3 ] != '' )
{
if ( data [ 4 ] == 'klan' && data [ 2 ] == 3 )
{
msg += ' <span class="klan"><span style="cursor:pointer" onclick="chat.multiaddto(\'klan\',\'private\');">private [klan]</span></span>' ;
} else {
msg += ` <span class="private"><span style="cursor:pointer" onclick="chat.multiaddto( \' ${ to2 } \' , \' private \' );">private [ </span> ${ to } <span style="cursor:pointer" onclick="chat.multiAddto( \' ${ to2 } \' , \' private \' );"> ]</span></span> ` ;
}
}
}
}
msg += ' ' ;
}
data [ 5 ] = this . replaceAll ( data [ 5 ] , "[s1;]" , '"' ) ;
data [ 5 ] = this . replaceAll ( data [ 5 ] , "[s2;]" , '\'' ) ;
data [ 5 ] = this . replaceAll ( data [ 5 ] , "[s3;]" , '<' ) ;
data [ 5 ] = this . replaceAll ( data [ 5 ] , "[s4;]" , '>' ) ;
//data[5] = this.replaceAll(data[5],"[s4;]",'>');
//var matches = data[5].match(/\[img\[(.*?)\]\]/);
//var a = matches[1];
//var b = matches[2];
//console.log(matches);
if ( $ . cookie ( 'chatCfg2' ) != 0 )
{
data [ 5 ] = chat . testSmile ( data [ 5 ] ) ;
}
if ( data [ 6 ] != 'Black' && data [ 6 ] != '' )
{
msg += ` <font color=" ${ data [ 6 ] } "> ${ data [ 5 ] } </font> ` ;
} else msg += data [ 5 ] ;
if ( data [ 2 ] == 21 ) {
//e text
var text = ` [loginfrom] ${ data [ 5 ] } ` ;
var ftps = ` <i><a href="javascript:void(0)" oncontextmenu="top.infoMenu( \' ${ data [ 3 ] } \' ,event, \' chat \' ); return false;" onClick="chat.addto( \' ${ data [ 3 ] } \' , \' to \' )"> ${ data [ 3 ] } </a></i> ` ;
var mblogin = new RegExp ( "\\[login:(.*?)\\]" , "" ) ;
text = text . replace ( '[loginfrom]' , ftps ) ;
if ( text . match ( mblogin ) != null )
{
mblogin = text . match ( mblogin ) [ 1 ] ;
text = text . replace ( ` [login: ${ mblogin } ] ` , ` <i><a href="javascript:void(0)" oncontextmenu="top.infoMenu( \' ${ mblogin } \' ,event, \' chat \' ); return false;" onClick="chat.addto( \' ${ mblogin } \' , \' to \' )"> ${ mblogin } </a></i> ` ) ;
}
msg = ` <i> ${ text } </i> ` ;
}
if ( data [ 1 ] > 0 )
{
var td = new Date ( ( parseInt ( data [ 1 ] ) ) * 1000 ) ;
td = [ td , null , null , null ] ;
td [ 1 ] = td [ 0 ] . getHours ( ) ;
td [ 2 ] = td [ 0 ] . getMinutes ( ) ;
td [ 3 ] = td [ 0 ] . getSeconds ( ) ;
td [ 4 ] = td [ 0 ] . getDay ( ) ;
td [ 5 ] = td [ 0 ] . getMonth ( ) ;
td [ 6 ] = td [ 0 ] . getYear ( ) ;
var j = 1 ;
while ( j < 6 ) {
if ( td [ j ] < 10 ) {
td [ j ] = ` 0 ${ td [ j ] } ` ;
}
j ++ ;
}
var cls = forYou > 0 ? 'date2' : 'date'
if ( data [ 11 ] > 0 )
{
2023-01-10 16:29:32 +00:00
msg = ` <font style="cursor:help" color="red" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this, \' Отправитель наказан за нарушение правил общения<br>Отключить отображение подобных сообщений можно в настройках чата. \' ,event,3,1,1,3, \' \' )"> <b>!</b> </font> ${ msg } ` ;
2022-12-19 18:26:14 +00:00
}
if ( data [ 10 ] > 0 )
{
2023-01-10 16:29:32 +00:00
msg = ` <font style="cursor:help" color="green" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this, \' Это глобальное сообщение, оно может быть отправлено из любой локации<br>Отключить отображение подобных сообщений можно в настройках чата. \' ,event,3,1,1,3, \' \' )"> <b>G</b> </font> ${ msg } ` ;
2022-12-19 18:26:14 +00:00
}
var msg22 = '<span ' ;
if ( top . c . admin > 0 ) {
msg22 += ` oncontextmenu="chat.deleteMessage( ${ data [ 0 ] } );
2022-06-06 21:30:34 +00:00
return false ; " ` ;
2022-12-19 18:26:14 +00:00
}
if ( data [ 8 ] == 2 ) {
//msg22 += 'class="'+cls+'">'+td[4]+'.'+td[5]+'.'+(td[6]+1900)+' '+td[1]+':'+td[2]+'</span> ';
if ( data [ 14 ] == undefined ) {
data [ 14 ] = '--:--' ;
}
if ( data [ 14 ] == '--:--' && data [ 1 ] > 0 ) {
data [ 14 ] = data [ 1 ] ;
var date14 = new Date ( data [ 14 ] * 1000 ) ;
data [ 14 ] = ` ${ date14 . getHours ( ) } : ${ date14 . getMinutes ( ) } ` ;
}
msg22 += ` class=" ${ cls } "> ${ data [ 14 ] } </span> ` ;
} else {
if ( data [ 13 ] == undefined ) {
data [ 13 ] = '--:--' ;
}
if ( data [ 13 ] == '--:--' && data [ 1 ] > 0 ) {
data [ 13 ] = data [ 1 ] ;
var date13 = new Date ( data [ 13 ] * 1000 ) ;
data [ 13 ] = ` ${ date13 . getHours ( ) } : ${ date13 . getMinutes ( ) } ` ;
}
msg22 += ` class=" ${ cls } "> ${ data [ 13 ] } </span> ` ;
}
msg = msg22 + msg ;
}
this . msgcount ++ ;
msg = ` <span class="m0c1" id="msg_ ${ data [ 0 ] } "> ${ msg } <br></span> ` ;
if ( forYou > 0 && this . sound > 0 && this . trim ( data [ 3 ] . toLowerCase ( ) ) != top . c . login . toLowerCase ( ) )
{
this . sendSound ( 1 ) ;
}
if ( msg _see == 1 )
{
if ( this . trim ( data [ 3 ] . toLowerCase ( ) ) == top . c . login . toLowerCase ( ) || forYou == 1 || this . filter == 0 )
{
if ( data [ 9 ] > 0 ) {
this . sendSound ( data [ 9 ] ) ;
}
if ( data [ 15 ] != undefined && data [ 15 ] != 0 ) {
this . feerverk ( data [ 15 ] ) ;
this . feerverk ( data [ 15 ] ) ;
}
if ( top . des == 1 ) {
if ( data [ 2 ] < 4 || global _type == 1 ) {
2023-01-10 16:29:32 +00:00
//Обычный чат
2022-12-19 18:26:14 +00:00
$ ( '#canal5' ) . html ( $ ( '#canal5' ) . html ( ) + '' + msg ) ;
top . blueTextSee ( 5 ) ;
if ( global _type == 1 ) {
2023-01-10 16:29:32 +00:00
//Системный чат
2022-12-19 18:26:14 +00:00
$ ( '#canal4' ) . html ( $ ( '#canal4' ) . html ( ) + '' + msg ) ;
top . blueTextSee ( 4 ) ;
}
} else {
2023-01-10 16:29:32 +00:00
//Системный чат
2022-12-19 18:26:14 +00:00
$ ( '#canal4' ) . html ( $ ( '#canal4' ) . html ( ) + '' + msg ) ;
top . blueTextSee ( 4 ) ;
$ ( '#canal5' ) . html ( $ ( '#canal5' ) . html ( ) + '' + msg ) ;
top . blueTextSee ( 5 ) ;
}
} else {
$ ( '#canal5' ) . html ( $ ( '#canal5' ) . html ( ) + '' + msg ) ;
}
/ *
if ( data [ 2 ] == 6 || data [ 2 ] == 5 ) {
2023-01-10 16:29:32 +00:00
//системное сообщение
2022-12-19 18:26:14 +00:00
$ ( '#canal5' ) . html ( $ ( '#canal5' ) . html ( ) + '' + msg ) ;
//$('#canal4').html($('#canal4').html()+'<span id="msg_'+data[0]+'_sys">'+msg+'</span>');
//if(top.cb_rdate[top.cb_select] != 4) {
//top.blueTextSee(5);
//}
} else if ( data [ 2 ] == 7 ) {
2023-01-10 16:29:32 +00:00
//системное сообщение (только)
2022-12-19 18:26:14 +00:00
//$('#canal'+top.cb_select).html($('#canal'+top.cb_select).html()+''+msg);
//$('#canal4').html($('#canal4').html()+'<span id="msg_'+data[0]+'_sys">'+msg+'</span>');
//top.blueTextSee(4);
} else if ( data [ 2 ] == 8 ) {
2023-01-10 16:29:32 +00:00
//системное сообщение (только ТАП)
2022-12-19 18:26:14 +00:00
//$('#canal'+top.cb_select).html($('#canal'+top.cb_select).html()+''+msg);
//$('#canal6').html($('#canal6').html()+'<span id="msg_'+data[0]+'_tap">'+msg+'</span>');
//top.blueTextSee(6);
} else {
2023-01-10 16:29:32 +00:00
//обычное сообщение
2022-12-19 18:26:14 +00:00
if ( data [ 2 ] == 1 && data [ 4 ] == 'trade' ) {
$ ( '#canal6' ) . html ( $ ( '#canal6' ) . html ( ) + '' + msg ) ;
} else {
$ ( '#canal5' ) . html ( $ ( '#canal5' ) . html ( ) + '' + msg ) ;
}
//top.blueTextSee(5);
} * /
}
}
2022-06-06 21:30:34 +00:00
2022-12-19 18:26:14 +00:00
// document.getElementById("chat_list").addEventListener("scroll", function (event) {
// console.log(`${pageYOffset}px`)
// });
2022-06-06 21:30:34 +00:00
2022-12-19 18:26:14 +00:00
this . scrollNow ( this . msgcount ) ;
delete forYou , cls , msg _see , msg , arr ;
}
} ,
testKey : function ( m , v ) {
var i = 0 ,
r = v ;
v = false ;
while ( i != - 1 ) {
if ( m [ i ] != undefined ) {
if ( m [ i ] == r ) {
v = i ;
i = - 2 ;
}
} else {
i = - 2 ;
}
i ++ ;
}
delete r , m ;
return v ;
} ,
isNumber : function ( s )
{
return s = ! isNaN ( s ) ? true : false
} ,
testSmile : function ( txt )
{
/ * i f ( t o p . c . a d m i n < 1 ) {
txr = txt . split ( ':' ) ;
var i = 1 , j = 0 , smid = 0 ;
while ( i != - 1 )
{
if ( txr [ i ] != undefined && j < 3 )
{
smid = this . testKey ( top . sml , txr [ i ] . toLowerCase ( ) ) ;
if ( smid != false && this . isNumber ( txr [ i ] ) != true )
{
if ( smid != false )
{
txt = txt . replace ( "\:" + txr [ i ] + "\:" , '<img src="https://' + top . c . img + '/i/smile/' + ( txr [ i ] . toLowerCase ( ) ) + '.gif" style="cursor:pointer" width="' + top . sml [ smid + 1 ] + '" height="' + top . sml [ smid + 2 ] + '" onclick="chat.addSmile(\'' + ( txr [ i ] . toLowerCase ( ) ) + '\')">' ) ;
}
j ++ ;
}
} else {
i = - 3 ;
}
i += 2 ;
}
delete smid ;
delete j ;
delete txr ;
} else { * /
txr = txt . split ( ':' ) ;
var i = 1 , j = 0 , smid = 0 ;
while ( i <= txr . length ) {
if ( txr [ i ] != undefined ) {
smid = this . testKey ( top . sml , txr [ i ] ) ;
imsml = txr [ i ] . split ( '-' ) ;
if ( ( ( smid != false || smid == 0 ) && this . isNumber ( txr [ i ] ) != true ) || ( imsml != undefined && imsml [ 0 ] == '%usersmile%' ) ) {
if ( j < 3 && this . isNumber ( top . sml [ smid ] ) != true && ( top . sml [ smid ] != undefined || imsml [ 0 ] == '%usersmile%' ) ) {
2023-01-10 16:29:32 +00:00
// тут
2022-12-19 18:26:14 +00:00
if ( imsml [ 0 ] == '%usersmile%' ) {
2023-01-10 16:29:32 +00:00
txt = txt . replace ( ` \: %usersmile%- ${ imsml [ 1 ] } \: ` , ` <img src="https:// ${ top . c . img } /i/smile/ ${ ( imsml [ 1 ] . toLowerCase ( ) ) } .gif" title="Именной смайлик"> ` ) ;
2022-12-19 18:26:14 +00:00
} else {
txt = txt . replace ( ` \: ${ txr [ i ] } \: ` , ` <img src="https:// ${ top . c . img } /i/smile/ ${ ( txr [ i ] . toLowerCase ( ) ) } .gif" style="cursor:pointer" width=" ${ top . sml [ smid + 1 ] } " height=" ${ top . sml [ smid + 2 ] } " onclick="chat.addSmile( \' ${ ( txr [ i ] . toLowerCase ( ) ) } \' )"> ` ) ;
}
j ++ ;
}
}
}
i ++ ;
}
//}
return txt ;
} ,
trmb : function ( ) {
if ( this . translit == 1 ) {
$ ( '#textmsg' ) . val ( this . convert2 ( $ ( '#textmsg' ) . val ( ) ) ) ;
}
} ,
replaceAll : function ( t , v , s )
{
return t . split ( v ) . join ( s ) ;
} ,
convert2 : function ( txt )
{
var trn = new Array ( ) ;
trn = txt . split ( ' ' ) ;
for ( var i = 0 ; i < trn . length ; i ++ ) {
if ( trn [ i ] . indexOf ( "https://" ) < 0 && trn [ i ] . indexOf ( '@' ) < 0 && trn [ i ] . indexOf ( "www." ) < 0 && ! ( trn [ i ] . charAt ( 0 ) == ":" && trn [ i ] . charAt ( trn [ i ] . length - 1 ) == ":" ) ) {
if ( ( i < trn . length - 1 ) && ( trn [ i ] == "to" || trn [ i ] == "private" ) && ( trn [ i + 1 ] . charAt ( 0 ) == "[" ) ) {
while ( ( i < trn . length - 1 ) && ( trn [ i ] . charAt ( trn [ i ] . length - 1 ) != "]" ) ) i ++ ;
} else { trn [ i ] = this . convert ( trn [ i ] ) ; }
}
}
return trn . join ( ' ' ) ;
} ,
2023-01-10 16:29:32 +00:00
map _en : Array ( 's`h' , 'S`h' , 'S`H' , 's`Х ' , 'sh`' , 'Sh`' , 'SH`' , "'o" , 'yo' , "'O" , 'Yo' , 'YO' , 'zh' , 'w' , 'Zh' , 'ZH' , 'W' , 'ch' , 'Ch' , 'CH' , 'sh' , 'Sh' , 'SH' , 'e`' , 'E`' , "'u" , 'yu' , "'U" , 'Yu' , "YU" , "'a" , 'ya' , "'A" , 'Ya' , 'YA' , 'a' , 'A' , 'b' , 'B' , 'v' , 'V' , 'g' , 'G' , 'd' , 'D' , 'e' , 'E' , 'z' , 'Z' , 'i' , 'I' , 'j' , 'J' , 'k' , 'K' , 'l' , 'L' , 'm' , 'M' , 'n' , 'N' , 'o' , 'O' , 'p' , 'P' , 'r' , 'R' , 's' , 'S' , 't' , 'T' , 'u' , 'U' , 'f' , 'F' , 'h' , 'H' , 'c' , 'C' , '`' , 'y' , 'Y' , "'" ) ,
map _ru : Array ( 'с х ' , 'С х ' , 'С Х ' , 'с Х ' , 'щ' , 'Щ' , 'Щ' , 'ё' , 'ё' , 'Ё' , 'Ё' , 'Ё' , 'ж' , 'ж' , 'Ж' , 'Ж' , 'Ж' , 'ч' , 'Ч' , 'Ч' , 'ш' , 'Ш' , 'Ш' , 'э' , 'Э' , 'ю' , 'ю' , 'Ю' , 'Ю' , 'Ю' , 'я' , 'я' , 'Я' , 'Я' , 'Я' , 'а ' , 'А ' , 'б ' , 'Б' , 'в' , 'В ' , 'г ' , 'Г' , 'д' , 'Д' , 'е ' , 'Е ' , 'з' , 'З ' , 'и' , 'И' , 'й' , 'Й' , 'к' , 'К ' , 'л' , 'Л' , 'м' , 'М ' , 'н' , 'Н ' , 'о ' , 'О ' , 'п' , 'П' , 'р ' , 'Р ' , 'с ' , 'С ' , 'т' , 'Т ' , 'у ' , 'У ' , 'ф' , 'Ф' , 'х ' , 'Х ' , 'ц' , 'Ц' , 'ъ' , 'ы' , 'Ы' , 'ь' ) ,
2022-12-19 18:26:14 +00:00
addSm : function ( i )
{
$ ( '#textmsg' ) . focus ( ) ;
top . document . textmsg . value += ` : ${ i } : ` ;
} ,
convert : function ( str )
{
var p1 = new RegExp ( "private\\s*\\[(.*?)\\]" , "" ) ;
var t1 = new RegExp ( "to\\s*\\[(.*?)\\]" , "" ) ;
var newstr = '' ;
if ( str . match ( p1 ) != null )
{
newstr = str . match ( p1 ) [ 0 ] ;
str = str . replace ( str . match ( p1 ) [ 0 ] , '' ) ;
} else if ( str . match ( t1 ) != null )
{
newstr = str . match ( t1 ) [ 0 ] ;
str = str . replace ( str . match ( t1 ) [ 0 ] , '' ) ;
}
for ( var i = 0 ; i < this . map _en . length ; ++ i ) while ( str . indexOf ( this . map _en [ i ] ) >= 0 ) str = str . replace ( this . map _en [ i ] , this . map _ru [ i ] ) ;
newstr += str ;
return newstr ;
} ,
2022-06-06 21:30:34 +00:00
sendSound : function ( s ) {
2022-12-19 18:26:14 +00:00
var svolm = 100 ;
if ( this . sound == 0 ) svolm = 0
else if ( this . sound == 1 ) svolm = 25 ;
2022-06-06 21:30:34 +00:00
else if ( this . sound == 2 ) svolm = 100 ;
var isInternetExplorer = navigator . appName . indexOf ( "Microsoft" ) != - 1 ;
2022-12-19 18:26:14 +00:00
2022-06-06 21:30:34 +00:00
if ( isInternetExplorer && window . document [ "Sound" ] && typeof window . document [ "Sound" ] . SetVariable !== "undefined" ) {
window . document [ "Sound" ] . SetVariable ( "Volume" , svolm ) ;
window . document [ "Sound" ] . SetVariable ( "Sndplay" , s ) ;
} else if ( document . getElementById ( 'Sound2' ) && typeof document . getElementById ( 'Sound2' ) . SetVariable !== "undefined" ) {
document . getElementById ( 'Sound2' ) . SetVariable ( "Volume" , svolm ) ;
document . getElementById ( 'Sound2' ) . SetVariable ( "Sndplay" , s ) ;
}
2022-12-19 18:26:14 +00:00
2022-06-06 21:30:34 +00:00
} ,
2022-12-19 18:26:14 +00:00
getSwf : function ( val ) {
var M$ = navigator . appName . indexOf ( "Microsoft" ) != - 1
return ( M$ ? window : document ) [ val ]
} ,
trim : function ( s )
{
return this . rtrim ( this . ltrim ( s ) ) ;
} ,
ltrim : function ( s )
{
return s . replace ( /^\s+/ , '' ) ;
} ,
rtrim : function ( s )
{
return s . replace ( /\s+$/ , '' ) ;
} ,
multiaddto : function ( users , tp ) {
var arr = users . split ( ',' ) ;
var i = arr . length ;
while ( i >= 0 ) {
if ( arr [ i ] != undefined ) {
this . addto ( arr [ i ] , tp ) ;
}
i -- ;
}
} ,
osize : function ( obj ) {
var size = 0 , key ;
for ( key in obj ) {
if ( obj . hasOwnProperty ( key ) ) size ++ ;
}
return size ;
} ,
2023-01-10 16:29:32 +00:00
//Генерируем данные
2022-12-19 18:26:14 +00:00
genchatData : function ( data , prs )
{
if ( prs == 1 ) {
data = $ . parseJSON ( data ) ;
}
if ( data == null && this . saveData != null )
{
data = this . saveData ;
data . js = '' ;
data . rn = undefined ;
data . key = undefined ;
}
2023-01-10 16:29:32 +00:00
//Получаем сообщение
2022-12-19 18:26:14 +00:00
if ( data . msg != undefined )
{
var ms = $ . parseJSON ( data . msg ) ;
if ( ms [ 'ld' ] > this . msg _id ) this . msg _id = ms [ 'ld' ] ;
var i = 0 ;
//while(i <= this.osize(ms.length)+10)
while ( i <= ms [ 'id' ] )
{
if ( ms [ ` m ${ i } ` ] != undefined ) this . sendMsg ( ms [ ` m ${ i } ` ] ) ;
i ++ ;
}
}
2023-01-10 16:29:32 +00:00
//Если есть JS
2022-12-19 18:26:14 +00:00
if ( data . js != '' )
{
eval ( data . js ) ;
}
if ( data . rnd != undefined ) { c . rnd = data . rnd ; }
2023-01-10 16:29:32 +00:00
if ( data . rn != undefined ) { if ( $ ( '#chcf10' ) . attr ( 'checked' ) == true ) { $ ( '#roomName' ) . html ( data . rn + '<br><small>Общий онлайн: ' + data . xu + '</small>' ) ; } else { $ ( '#roomName' ) . html ( data . rn + ' (' + data . xu + ')' ) ; } }
2022-12-19 18:26:14 +00:00
if ( data . key != undefined ) { this . key = data . key ; }
if ( data . list != undefined )
{
2023-01-10 16:29:32 +00:00
var i = 0 , ji = $ . parseJSON ( data . list ) , onll = '' , fSort = { } , flSort = { } , flSortSee = '"Служба Поддержки"' ;
//сортируем данные
2022-12-19 18:26:14 +00:00
while ( i <= data . xu )
{
if ( ji [ i ] != undefined )
{
/ * i f ( $ . c o o k i e ( ' c h a t C f g 8 ' ) = = 1 )
{
2023-01-10 16:29:32 +00:00
jj = '[' + ( ji [ i ] [ 2 ] * 0.01 ) + ']' + i ; //по уровню
2022-12-19 18:26:14 +00:00
} else if ( $ . cookie ( 'chatCfg8' ) == 2 )
{
2023-01-10 16:29:32 +00:00
jj = '[' + ji [ i ] [ 3 ] + ']' + i ; //по склонности
2022-12-19 18:26:14 +00:00
} else if ( $ . cookie ( 'chatCfg8' ) == 3 )
{
2023-01-10 16:29:32 +00:00
jj = '[' + ji [ i ] [ 4 ] + ']' + i ; //по клану
2022-12-19 18:26:14 +00:00
} else {
2023-01-10 16:29:32 +00:00
jj = ji [ i ] [ 1 ] ; //по логину
2022-12-19 18:26:14 +00:00
} * /
2023-01-10 16:29:32 +00:00
jj = ji [ i ] [ 1 ] . toLowerCase ( ) ; //по логину
2022-12-19 18:26:14 +00:00
fSort [ jj ] = i ;
flSort [ i ] = jj ;
flSortSee += ` ," ${ flSort [ i ] } " ` ;
}
i ++ ;
}
flSortSee = eval ( ` [ ${ flSortSee } ] ` ) ;
if ( $ . cookie ( 'chatCfg9' ) == 1 ) { flSortSee . sort ( game . sort2 ) ; } else { flSortSee . sort ( game . sort1 ) ; }
2023-01-10 16:29:32 +00:00
//Выводим данные
2022-12-19 18:26:14 +00:00
i = 0 ;
var onll _alh = '' ;
while ( i <= data . xu ) {
if ( fSort [ flSortSee [ i ] ] != undefined ) {
if ( ji [ fSort [ flSortSee [ i ] ] ] [ 3 ] == 50 ) {
onll _alh += ` <span class="m0c1"> ${ this . gUser ( ji [ fSort [ flSortSee [ i ] ] ] , true ) } </span> ` ;
} else {
onll += ` <span class="m0c2"> ${ this . gUser ( ji [ fSort [ flSortSee [ i ] ] ] , true ) } </span> ` ;
}
}
i ++ ;
}
$ ( '#onlist' ) . html ( onll _alh + '' + onll ) ;
}
}
2022-06-06 21:30:34 +00:00
}