1 2 3jQuery(document).ready(function(){ 4 var $sc_chatstatus = 0; 5 var $sc_semaphore = 0; 6 7 // setup unload to report user leaving chat 8 jQuery(window).unload( function(){ 9 // send message we left the room 10 var $username = jQuery('#sc-username').val(); 11 var $room = jQuery('#sc-roomname').val(); 12 jQuery.ajax({ 13 url: "/lib/plugins/simplechat/ajax.php" , 14 data: { cmd : 'exited' , user : $username, room : $room } , 15 async: false 16 }); 17 }); 18 19 jQuery('#sc-send').keydown( function(e) { 20 if( e.keyCode == 13 ){ 21 var $mymsg = this.value.replace(/^\s+|\s+$/g,''); 22 if( $mymsg.length > 0 ) { 23 var $username = jQuery('#sc-username').val(); 24 var $room = jQuery('#sc-roomname').val(); 25 jQuery.ajax({ 26 url: "/lib/plugins/simplechat/ajax.php" , 27 data: { cmd : 'send' , msg : $mymsg, user : $username, room : $room , start: $sc_chatstatus } , 28 success: function( data ){ 29 // add any response to the window as server text 30 if( data != "" ) { 31 var $mydiv = jQuery('#sc-chatarea'); 32 $mydiv.append( "<p class='sc-info'>"+ data + "</p>"); 33 $mydiv.scrollTop( $mydiv.get(0).scrollHeight); 34 } else { 35 //update the window early 36 sc_chatwindow(); 37 } 38 } 39 }); 40 } 41 this.value = ""; 42 return false; 43 } 44 }); 45 46 function sc_chatwindow() { 47 var $room = jQuery('#sc-roomname').val(); 48 if( $sc_semaphore >= 0 ) { 49 $sc_semaphore--; 50 jQuery.ajax({ 51 url: "/lib/plugins/simplechat/ajax.php" , 52 data: { cmd: 'update' , start: $sc_chatstatus , room : $room } , 53 success: function( data ) { 54 var $mydiv = jQuery('#sc-chatarea'); 55 var $msgs = data.split("\n"); 56 $sc_chatstatus = $msgs.pop(); 57 while( $msgs.length ) { 58 var $msgname = $msgs[0].split("\t")[0]; 59 var $msginfo = $msgs[0].split("\t")[1]; 60 if( $msgname == "." ) { 61 $mydiv.append( "<p class='sc-info'>"+ $msginfo + "</p>"); 62 } else { 63 $mydiv.append("<p><span>"+$msgname+"</span>"+$msginfo.replace(/\\r/g, '<br />')+"</p>"); 64 } 65 $msgs.shift(); 66 } 67 $mydiv.scrollTop( $mydiv.get(0).scrollHeight); 68 69 } , 70 complete: function( data ) { 71 $sc_semaphore++; 72 } 73 }); 74 } 75 }; 76 77 // fire off first one 78 setInterval(sc_chatwindow,5000); 79 // send message we entered the room 80 var $username = jQuery('#sc-username').val(); 81 var $room = jQuery('#sc-roomname').val(); 82 jQuery.ajax({ 83 url: "/lib/plugins/simplechat/ajax.php" , 84 data: { cmd : 'entered' , user : $username, room : $room } , 85 async: false, 86 success: function( data ){ 87 //update the window 88 sc_chatwindow(); 89 } 90 91 }); 92 93}); 94 95