function plainChatKeyPressed(field,event,roomName){ if(event.keyCode==13){ sendPlainChatRoomMessage(roomName); } } function sendPlainChatRoomMessage(roomName){ var message = $("#plainChatInput-"+roomName).val(); message = trimstr(message); if(message!=""){ $("#plainChatInput-"+roomName).val(""); PlainChatBean.sendPlainChatRoomMessage(roomName, message, { errorHandler:function(errorString, exception){ showSignUpPanel(true,""); } }); } //$("plainChatInputPanel").value = ""; } function chatRoomMessageCallback(chatMessageDTO){ var userInfo = userData[chatMessageDTO.fromUserId]; if(userInfo==null){ alert("no user details found for "+chatMessageDTO.fromUserId); }else{ var d = $("#plainChatScrollPanel-"+chatMessageDTO.roomName); if(d){ d.innerHTML += ""+userInfo.username() +":"+chatMessageDTO.message + "
"; }else{ //ignore //alert("message recieved for a chat room that has just shut"); /* We probably just closeded this room */ } } } } function trimstr(str){ var tmp = ""; var count = 0; var newArray = str.split(" "); for (var i=0;i
"+userInfo.username()+"
"; userdiv.id = "userListElement-"+roomName+"-"+userInfo.id(); userdiv.className = "userListItem"; $("#plainChatUsersScrollPanel-"+roomName).appendChild(userdiv); } function userLeftRoomCallback(roomAndUserId){ //alert("User left "+roomAndUserId[0]+" "+roomAndUserId[1]); var v = $("#chatRoom="+roomAndUserId[0]); if(v!=null){ } var d = $("#userListElement-"+roomAndUserId[0]+"-"+roomAndUserId[1]); d.parentNode.removeChild(d); } function chatRoomUsersCallback(u){ if($("#"+u[0]+"-users")==null){ //d = document.createElement('DIV'); //$("roomsList").appendChild(d); $("#roomsList").innerHTML += ""+u[0]+" ? users
"; } $(u[0]+"-users").innerHTML = u[2]+""; } function UsrDataDTO() { this.usrDTO; this.profileData; this.onlineGames; this.pictures; this.newResources; this.expressions; this.classification; this.notRegisteredYet; return this; } var mustSignInToAccessChatRooms = false; //do we allow guests function joinPlainChatRoom(roomName){ if(mustSignInToAccessChatRooms && isLoggedIn==false) { todoAfterLogin = roomName; showSignUpPanel(true, ""); //$("plainChatContainer").style.display = "none"; //$("plainChatLoginScreen").style.display = "block"; return; }else{ //$("plainChatContainer").style.display = "inline"; //$("plainChatLoginScreen").style.display = "none"; openChatRoomWindow(roomName); PlainChatBean.joinPlainChatRoom(roomName,{ callbackHandler:function(plainChatRoomStateDTO){ $("#plainChatUsersScrollPanel-"+roomName).html(""); $("#plainChatScrollPanel-"+roomName).html(" "+plainChatRoomStateDTO.roomName+"
"); //alert("plainChatRoomState "+plainChatRoomStateDTO.users); var u=0; for(u; u < plainChatRoomStateDTO.users.length;u++){ //alert("in loop "+u); userJoinedRoomCallback(roomName,plainChatRoomStateDTO.users[u]); } /* if(userData[targetUsrId]==null){ //We don't have the details of the user TurboMingleBean.getUser(targetUsrId, {callback:function(usrDataDTO){ var userInfo = new UserInfo(usrDataDTO); if(userInfo.messengerWindow==null){ soundManager.play('beep'); }; userData[userInfo.id()] = userInfo; showMessageBarItem(userInfo); //Open a panel on the bar for this user showMessageBarItemFetch(userInfo.id(),null,true); } }); } */ }, errorHandler:function(errorString, exception){ if(exception.javaClassName=="com.joyplay.shared.exceptions.UserNotLoggedInException"){ showSignUpPanel(true,""); }else{ //alert("joinPlainChatRoom errorHandler "+errorString+" "+exception); } } }); } } var plainChatRooms = new Array(); function closeAllPlainChatRooms(){ for(i in plainChatRooms){ if(plainChatRooms[i]!=null && plainChatRooms[i].roomName!=null){ closePlainChatRoom(plainChatRooms[i].roomName); } } } function closeAllChatRoomsExcept(roomName){ //Only allow one room open at a time for(i in plainChatRooms){ if(plainChatRooms[i]!=null && plainChatRooms[i].roomName!=null){ if(plainChatRooms[i].roomName!=roomName){ closePlainChatRoom(plainChatRooms[i].roomName); } } } } function reopenAllChatRooms(){ for(i in plainChatRooms){ if(plainChatRooms[i]!=null && plainChatRooms[i].roomName!=null){ var roomName = plainChatRooms[i].roomName; PlainChatBean.leaveRoom(roomName,{ callbackHandler:function(){ var v = plainChatRooms[roomName]; //$("#frame").removeChild(v); v.parentNode.removeChild(v); plainChatRooms[roomName] = null; joinPlainChatRoom(roomName); } }); } } } function openChatRoomWindow(roomName){ if(plainChatRooms[roomName]!=null){ return; } closeAllChatRoomsExcept(roomName); var newdiv = document.createElement('DIV'); newdiv.id = "chatRoom-"+roomName; newdiv.className = "chatRoomPanel"; if(newWindowStartPositionX > 250) { newWindowStartPositionX = 20; } if(newWindowStartPositionY > 250) { newWindowStartPositionY = 20; } newdiv.style.left = newWindowStartPositionX.toString()+"px"; newdiv.style.top = newWindowStartPositionY.toString()+"px"; newWindowStartPositionX+=5; newWindowStartPositionY+=5; var descriptionDiv = document.createElement('DIV'); descriptionDiv.className = "plainChatDescription"; descriptionDiv.innerHTML = ""+roomName+""; Drag.init(descriptionDiv, newdiv); newdiv.appendChild(descriptionDiv); var closeMinimiseDiv = document.createElement('DIV'); closeMinimiseDiv.className = "chatRoomCloseMinimiseDiv"; closeMinimiseDiv.innerHTML = ""; newdiv.appendChild(closeMinimiseDiv); var usersDiv = document.createElement('DIV'); usersDiv.id = "plainChatUsersScrollPanel-"+roomName; usersDiv.innerHTML = "users"; newdiv.appendChild(usersDiv); usersDiv.className = "plainChatUsersScrollPanel"; var incomingMessagesDiv = document.createElement('DIV'); incomingMessagesDiv.id = "plainChatScrollPanel-"+roomName; incomingMessagesDiv.className = "plainChatScrollPanel"; //incomingMessagesDiv.className = "incomingMessages"; //var msgList = userData[userId].incomingMessageList; var x=0; //for(x; x"; //} newdiv.appendChild(incomingMessagesDiv); var inputDiv = document.createElement('DIV'); inputDiv.className = "chatRoomInputMessage"; //var n = "chatRoomInputMessage"+roomName; //var nn = 'limitChatRoomText(this,null,120,event,"'+roomName+'");'; inputDiv.innerHTML = ''; inputDiv.innerHTML += ''; newdiv.appendChild(inputDiv); // var sendDiv = document.createElement('DIV'); // sendDiv.className = "chatRoomSendMessage"; // sendDiv.innerHTML = "send"; // sendDiv.id = "sendMessage"; // sendDiv.onmousedown = function(){sendPlainChatRoomMessage(roomName)}; // inputDiv.appendChild(sendDiv); $("#frame").prepend(newdiv); newdiv.roomName = roomName; plainChatRooms[roomName] = newdiv; //userData[userId].incomingMessagesDiv = incomingMessagesDiv; //userData[userId].messengerWindow = newdiv; } function closePlainChatRoom(roomName){ PlainChatBean.leaveRoom(roomName,{ callbackHandler:function(){ var v = plainChatRooms[roomName]; //$("#frame").removeChild(v); v.parentNode.removeChild(v); plainChatRooms[roomName] = null; } }); } function limitChatRoomText(){ } function getPlainChatState(){ PlainChatBean.getPlainChatState({ callbackHandler:function(plainChatStateDTO){ for (var i=0;i"; } } }); } getPlainChatState();