script.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. $('#input').data('oldMessagesKeyHandle',function(e){
  2. var room = $o.ui.tabs.current().name,
  3. oldMessages = ($.localStorage('oldMessages-'+room)||[]),
  4. input = $('#input');
  5. if(input.data('oldMessageCounter')==oldMessages.length){
  6. input.data('currentMessage',input.val());
  7. }
  8. if(oldMessages.length!=0){
  9. switch(e.which){
  10. case 38:
  11. if(input.data('oldMessageCounter')!=0){
  12. input.data('oldMessageCounter',input.data('oldMessageCounter')-1);
  13. }
  14. input.val(oldMessages[input.data('oldMessageCounter')]);
  15. break;
  16. case 40:
  17. if(input.data('oldMessageCounter')!=oldMessages.length){
  18. input.data('oldMessageCounter',input.data('oldMessageCounter')+1);
  19. }
  20. if(input.data('oldMessageCounter')==oldMessages.length){
  21. input.val($('#input').data('currentMessage'));
  22. }else{
  23. input.val(oldMessages[input.data('oldMessageCounter')]);
  24. }
  25. break;
  26. }
  27. }
  28. }).data('oldMessagesAlreadyStarted',false);
  29. hook('start',function(){
  30. if(!$('#input').data('oldMessagesAlreadyStarted')){
  31. $o.event('oldMessages','registered');
  32. $('#input').keydown($('#input').data('oldMessagesKeyHandle')).data({
  33. 'oldMessageCounter':1,
  34. 'currentMessage':'',
  35. 'oldMessagesAlreadyStarted':true
  36. });
  37. }
  38. });
  39. hook('tabswitch',function(newT){
  40. var room = newT.name,
  41. oldMessages = ($.localStorage('oldMessages-'+room)||[]);
  42. $('#input').data('oldMessageCounter',oldMessages.length);
  43. });
  44. hook('load',function(){
  45. var room = newT.name,
  46. oldMessages = ($.localStorage('oldMessages-'+room)||[]);
  47. $('#input').data('oldMessageCounter',oldMessages.length);
  48. });
  49. hook('send',function(msg,room){
  50. var oldMessages = ($.localStorage('oldMessages-'+room)||[]);
  51. oldMessages.push(msg);
  52. if (oldMessages.length>20){
  53. oldMessages.shift();
  54. }
  55. $.localStorage('oldMessages-'+room,oldMessages);
  56. $('#input').data('oldMessageCounter',oldMessages.length);
  57. return true;
  58. });
  59. hook('stop',function(){
  60. $o.event('oldMessages','stopped');
  61. $('#input').off('keydown',$('#input').data('oldMessagesKeyHandle')).data('oldMessagesAlreadyStarted',false);
  62. });