| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- // Settings controls
- (function($){
-
- $.fn.initChat = function() {
- var input = $(this);
- var chatText = $("#chatText");
- var hidden = true;
- var messageHistory = [];
- var messagePointer = -1;
- var closechat = function() {
- hidden = true;
- input.css("opacity","0");
- messagePointer = messageHistory.length;
- input.val('');
- chatText.text('')
- }
- var updateDimensions = function(){
- chatText.text(input.val());
- var width = chatText.width() + 30;
- input.css({
- width: width,
- marginLeft: (width/2)*-1
- });
- };
- input.blur(function(e) {
- setTimeout(function(){input.focus()}, 0.1);
- });
- input.keydown(function(e){
- if(input.val().length > 0) {
- //set timeout because event occurs before text is entered
- setTimeout(updateDimensions,0.1);
- input.css("opacity","1");
- } else {
- closechat();
- }
-
- if(!hidden) {
-
- e.stopPropagation();
- if(messageHistory.length > 0) {
- if(e.keyCode == keys.up)
- {
- if(messagePointer > 0)
- {
- messagePointer--;
- input.val(messageHistory[messagePointer]);
- }
- }
- else if(e.keyCode == keys.down)
- {
- if(messagePointer < messageHistory.length-1)
- {
- messagePointer++;
- input.val(messageHistory[messagePointer]);
- }
- else
- {
- closechat();
- return;
- }
- }
- }
- }
- });
- input.keyup(function(e) {
- var k = e.keyCode;
- if(input.val().length >= 45)
- {
- input.val(input.val().substr(0,45));
- }
- if(input.val().length > 0) {
- updateDimensions();
- input.css("opacity","1");
- hidden = false;
- } else {
- closechat();
- }
- if(!hidden) {
- if(k == keys.esc || k == keys.enter || (k == keys.space && input.val().length > 35)) {
- if(k != keys.esc && input.val().length > 0) {
- messageHistory.push(input.val());
- messagePointer = messageHistory.length;
- app.sendMessage(input.val());
- }
- closechat();
- }
-
- e.stopPropagation();
- }
-
- });
-
- input.focus();
- }
-
- $(function() {
- //$('#chat').initChat();
- });
- })(jQuery);
|