formControls.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. // Settings controls
  2. (function($){
  3. $.fn.initChat = function() {
  4. var input = $(this);
  5. var chatText = $("#chatText");
  6. var hidden = true;
  7. var messageHistory = [];
  8. var messagePointer = -1;
  9. var closechat = function() {
  10. hidden = true;
  11. input.css("opacity","0");
  12. messagePointer = messageHistory.length;
  13. input.val('');
  14. chatText.text('')
  15. }
  16. var updateDimensions = function(){
  17. chatText.text(input.val());
  18. var width = chatText.width() + 30;
  19. input.css({
  20. width: width,
  21. marginLeft: (width/2)*-1
  22. });
  23. };
  24. input.blur(function(e) {
  25. setTimeout(function(){input.focus()}, 0.1);
  26. });
  27. input.keydown(function(e){
  28. if(input.val().length > 0) {
  29. //set timeout because event occurs before text is entered
  30. setTimeout(updateDimensions,0.1);
  31. input.css("opacity","1");
  32. } else {
  33. closechat();
  34. }
  35. if(!hidden) {
  36. e.stopPropagation();
  37. if(messageHistory.length > 0) {
  38. if(e.keyCode == keys.up)
  39. {
  40. if(messagePointer > 0)
  41. {
  42. messagePointer--;
  43. input.val(messageHistory[messagePointer]);
  44. }
  45. }
  46. else if(e.keyCode == keys.down)
  47. {
  48. if(messagePointer < messageHistory.length-1)
  49. {
  50. messagePointer++;
  51. input.val(messageHistory[messagePointer]);
  52. }
  53. else
  54. {
  55. closechat();
  56. return;
  57. }
  58. }
  59. }
  60. }
  61. });
  62. input.keyup(function(e) {
  63. var k = e.keyCode;
  64. if(input.val().length >= 45)
  65. {
  66. input.val(input.val().substr(0,45));
  67. }
  68. if(input.val().length > 0) {
  69. updateDimensions();
  70. input.css("opacity","1");
  71. hidden = false;
  72. } else {
  73. closechat();
  74. }
  75. if(!hidden) {
  76. if(k == keys.esc || k == keys.enter || (k == keys.space && input.val().length > 35)) {
  77. if(k != keys.esc && input.val().length > 0) {
  78. messageHistory.push(input.val());
  79. messagePointer = messageHistory.length;
  80. app.sendMessage(input.val());
  81. }
  82. closechat();
  83. }
  84. e.stopPropagation();
  85. }
  86. });
  87. input.focus();
  88. }
  89. $(function() {
  90. //$('#chat').initChat();
  91. });
  92. })(jQuery);