6
6
7
7
var p = document . getElementById ( "demo" ) ;
8
8
var socket ;
9
+ var replink = '' ;
9
10
var u_name ;
10
11
var port ;
11
12
var c_id ;
@@ -161,6 +162,11 @@ function connect()
161
162
} ;
162
163
163
164
document . getElementById ( "send" ) . onclick = function ( ) {
165
+ var lp = 0 ;
166
+ if ( replink != '' )
167
+ {
168
+ lp = 1 ;
169
+ }
164
170
var mf = document . getElementById ( "mf" ) ;
165
171
var ms = mf . value ;
166
172
if ( ms == "" )
@@ -172,14 +178,25 @@ function connect()
172
178
var msg = {
173
179
type :"message" ,
174
180
text :ms ,
181
+ link : replink ,
182
+ linkp : lp ,
175
183
date :Date . now ( ) ,
176
184
name :u_name
177
185
} ;
186
+ var myid = msg . date ;
178
187
var time = new Date ( msg . date ) ;
179
188
var timeStr = time . toLocaleTimeString ( ) ;
180
- p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent"><b>You (' + timeStr + ') : </b><br>' + ms + '</div></div><br>' ;
189
+ if ( replink != '' )
190
+ {
191
+ p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>You (' + timeStr + ') : </b><br>' + replink + '<br>' + ms + '</div></div><br>' ;
192
+ }
193
+ else
194
+ {
195
+ p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>You (' + timeStr + ') : </b><br>' + ms + '</div></div><br>' ;
196
+ }
181
197
socket . send ( JSON . stringify ( msg ) ) ;
182
198
mf . value = "" ;
199
+ replink = '' ;
183
200
document . getElementById ( "demo" ) . scrollTop = document . getElementById ( "demo" ) . scrollHeight ;
184
201
}
185
202
} ;
@@ -188,7 +205,10 @@ function connect()
188
205
var text = "" ;
189
206
var msg = JSON . parse ( event . data ) ;
190
207
var time = new Date ( msg . date ) ;
191
- var timeStr = time . toLocaleTimeString ( ) ;
208
+ var timeStr = time . toLocaleTimeString ( ) ;
209
+ var mylink = msg . link ;
210
+ var wlp = msg . linkp ;
211
+ var myid = msg . date ;
192
212
if ( msg . type == "conn" )
193
213
{
194
214
p . innerHTML += '<b><div class="brdcst">(' + timeStr + ') ' + msg . text + ' joined on this channel.</div></b><br>' ;
@@ -226,15 +246,36 @@ function connect()
226
246
}
227
247
else if ( msg . type == "message" )
228
248
{
229
- p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + msg . text + '</div></div><br>' ;
249
+ if ( wlp )
250
+ {
251
+ p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + mylink + '<br>' + msg . text + '</div></div><br>' ;
252
+ }
253
+ else
254
+ {
255
+ p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + msg . text + '</div></div><br>' ;
256
+ }
230
257
}
231
258
else if ( msg . type == "img-msg" )
232
259
{
233
- p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + '<img src="' + decodeURIComponent ( msg . text ) + '" onclick = "javascript:showImage(this.src,false);" class="chatimg" alt="User Image">' + '</div></div><br>' ;
260
+ if ( wlp )
261
+ {
262
+ p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + replink + '<br>' + '<img src="' + decodeURIComponent ( msg . text ) + '" onclick = "javascript:showImage(this.src,false);" class="chatimg" alt="User Image">' + '</div></div><br>' ;
263
+ }
264
+ else
265
+ {
266
+ p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + '<img src="' + decodeURIComponent ( msg . text ) + '" onclick = "javascript:showImage(this.src,false);" class="chatimg" alt="User Image">' + '</div></div><br>' ;
267
+ }
234
268
}
235
269
else if ( msg . type == "doc-msg" )
236
270
{
237
- p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + '<a class="document" id="' + msg . text + '" onclick="javascript:showDocs(this.id);">File : ' + msg . docName + '</a>' + '</div></div><br>' ;
271
+ if ( wlp )
272
+ {
273
+ p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + replink + '<br>' + '<a class="document" id="' + msg . text + '" onclick="javascript:showDocs(this.id);">File : ' + msg . docName + '</a>' + '</div></div><br>' ;
274
+ }
275
+ else
276
+ {
277
+ p . innerHTML += '<div class="clearfix"><div class="mesg-tr"></div><div class="mesg" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>' + msg . name + ' (' + timeStr + ') : </b><br>' + '<a class="document" id="' + msg . text + '" onclick="javascript:showDocs(this.id);">File : ' + msg . docName + '</a>' + '</div></div><br>' ;
278
+ }
238
279
}
239
280
else if ( msg . type == "typing" )
240
281
{
@@ -428,37 +469,69 @@ function cancelimg()
428
469
429
470
function sendimg ( )
430
471
{
472
+ var lp = 0 ;
473
+ if ( replink != '' )
474
+ {
475
+ lp = 1 ;
476
+ }
431
477
var url = document . getElementById ( 'userimage' ) . src ;
432
478
url = encodeURIComponent ( url ) ;
433
479
var msg = {
434
480
type :"img-msg" ,
435
481
text :url ,
436
482
date :Date . now ( ) ,
483
+ link : replink ,
484
+ linkp : lp ,
437
485
name :u_name
438
486
} ;
439
487
var time = new Date ( msg . date ) ;
440
488
var timeStr = time . toLocaleTimeString ( ) ;
441
- p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent"><b>You (' + timeStr + ') : </b><br><img src="' + decodeURIComponent ( url ) + '" onclick = "javascript:showImage(this.src,false);" class="chatimg" alt="User Image"></div></div><br>' ;
489
+ var myid = Date . now ( ) ;
490
+ if ( replink != '' )
491
+ {
492
+ p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>You (' + timeStr + ') : </b><br>' + replink + '<br><img src="' + decodeURIComponent ( url ) + '" onclick = "javascript:showImage(this.src,false);" class="chatimg" alt="User Image"></div></div><br>' ;
493
+ }
494
+ else
495
+ {
496
+ p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>You (' + timeStr + ') : </b><br><img src="' + decodeURIComponent ( url ) + '" onclick = "javascript:showImage(this.src,false);" class="chatimg" alt="User Image"></div></div><br>' ;
497
+ }
442
498
socket . send ( JSON . stringify ( msg ) ) ;
443
499
cancelimg ( ) ;
500
+ replink = '' ;
444
501
document . getElementById ( "demo" ) . scrollTop = document . getElementById ( "demo" ) . scrollHeight ;
445
502
}
446
503
447
504
function senddocs ( url , name )
448
505
{
449
506
var url = encodeURIComponent ( url ) ;
507
+ var lp = 0 ;
508
+ if ( replink != '' )
509
+ {
510
+ lp = 1 ;
511
+ }
450
512
var msg = {
451
513
type :"doc-msg" ,
452
514
text :url ,
453
515
docName : name ,
516
+ link : replink ,
517
+ linkp : lp ,
454
518
date :Date . now ( ) ,
455
519
name :u_name
456
520
} ;
457
521
var time = new Date ( msg . date ) ;
458
522
var timeStr = time . toLocaleTimeString ( ) ;
459
- p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent"><b>You (' + timeStr + ') : </b><br> <a class="document" id="' + url + '" onclick="javascript:showDocs(this.id);">File : ' + name + '</a></div></div><br>' ;
523
+ var myid = Date . now ( ) ;
524
+ if ( replink != '' )
525
+ {
526
+ p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>You (' + timeStr + ') : </b><br>' + replink + '<br> <a class="document" id="' + url + '" onclick="javascript:showDocs(this.id);">File : ' + name + '</a></div></div><br>' ;
527
+ }
528
+ else
529
+ {
530
+ p . innerHTML += '<div class="clearfix"><div class="sent-tr"></div><div class="sent" id="' + myid + '" oncontextmenu="javascript:showoptions(this.id,event)"><b>You (' + timeStr + ') : </b> <br> <a class="document" id="' + url + '" onclick="javascript:showDocs(this.id);">File : ' + name + '</a></div></div><br>' ;
531
+ }
460
532
socket . send ( JSON . stringify ( msg ) ) ;
461
533
cancelimg ( ) ;
534
+ replink = '' ;
462
535
document . getElementById ( "demo" ) . scrollTop = document . getElementById ( "demo" ) . scrollHeight ;
463
536
}
464
537
@@ -524,6 +597,56 @@ function uploadFileAccess()
524
597
document . getElementById ( "loadfile" ) . click ( ) ;
525
598
}
526
599
600
+ function showoptions ( input )
601
+ {
602
+ event . preventDefault ( ) ;
603
+ document . getElementsByClassName ( 'reply' ) [ 0 ] . id = '#' + input ;
604
+ document . getElementsByClassName ( 'delete' ) [ 0 ] . id = '#' + input ;
605
+ document . getElementById ( 'options' ) . style . display = 'block' ;
606
+ window . onclick = function ( event ) {
607
+ if ( document . getElementById ( 'options' ) . contains ( event . target ) ) {
608
+ }
609
+ else {
610
+ document . getElementById ( "options" ) . style . display = "none" ;
611
+ }
612
+ } ;
613
+ }
614
+
615
+ function highlight ( inp )
616
+ {
617
+ inp = inp . split ( '#' ) [ 1 ] ;
618
+ var tobehl = document . getElementById ( inp ) ;
619
+ if ( tobehl == null )
620
+ {
621
+ alert ( 'Referred message not found' )
622
+ }
623
+ else
624
+ {
625
+ tobehl . parentNode . classList . add ( 'highlight' ) ;
626
+ setTimeout ( function ( ) { tobehl . parentNode . classList . remove ( 'highlight' ) ; } , 1500 )
627
+ }
628
+ }
629
+
630
+ function deletemsg ( inp )
631
+ {
632
+ var gotid = inp . split ( '#' ) [ 1 ] ;
633
+ var elem = document . getElementById ( gotid ) ;
634
+ elem . parentNode . parentNode . removeChild ( elem . parentNode . nextSibling ) ;
635
+ elem . parentNode . parentNode . removeChild ( elem . parentNode ) ;
636
+ document . getElementById ( "options" ) . style . display = "none" ;
637
+ }
638
+
639
+ function reply ( inp )
640
+ {
641
+ replink = '<a href="' + inp + '" onclick="javsacript:highlight(this.href);">Replied To</a>' ;
642
+ var t = document . getElementById ( 'mf' ) . value ;
643
+ document . getElementById ( 'mf' ) . value = 'REPLIED MESSAGE : ' ;
644
+ document . getElementById ( 'mf' ) . value += t ;
645
+ document . getElementById ( "options" ) . style . display = "none" ;
646
+ document . getElementById ( "demo" ) . scrollTop = document . getElementById ( "demo" ) . scrollHeight ;
647
+ document . getElementById ( 'mf' ) . focus ( ) ;
648
+ }
649
+
527
650
function loadHistory ( input )
528
651
{
529
652
if ( input . files [ 0 ] )
0 commit comments