dojo.hostenv.findModule("xg.chat.Flasher",!1)||(dojo.provide("xg.chat.Flasher"),xg.chat.Flasher=function(){var a={},c={},d=null,f=!1,e=!0,h="",k=window.document.title,b=null;c.initialize=function(){x$(window).on("blur",a.windowBlurred);x$(window).on("focus",a.windowFocused)};c.flashTitlebar=function(){window.document.title=e?h:k;e=!e};a.startFlashing=function(g){f||(h=g,d||b||(b=window.setTimeout(function(){b=null;d=window.setInterval(c.flashTitlebar,2E3)},a.getMillisecondsUntilNextStartSecond((new Date).getTime()))))};
a.getMillisecondsUntilNextStartSecond=function(g){return(4E3-g%4E3)%4E3};a.stopFlashing=function(){window.document.title=k;e=!0;window.clearTimeout(b);b=null;window.clearInterval(d);d=null};a.windowBlurred=function(){f=!1};a.windowFocused=function(){f=!0;a.stopFlashing()};c.initialize();return a});dojo.hostenv.findModule("xg.chat.SoundLock",!1)||(dojo.provide("xg.chat.SoundLock"),xg.chat.SoundLock=function(){var c={},a={CHECK_INTERVAL:2E3,COOKIE_NAME:"soundLockTimestamp",myTimestamp:null,soundEnabled:!1,initialize:function(){a.check();setInterval(a.check,a.CHECK_INTERVAL)},check:function(){var b=xg.shared.util.getCookie(a.COOKIE_NAME);b&&x$.now()-b<2*a.CHECK_INTERVAL&&a.myTimestamp!=b?a.soundEnabled=!1:(a.myTimestamp=x$.now(),xg.shared.util.setCookie(a.COOKIE_NAME,a.myTimestamp),a.soundEnabled=
!0)}};c.isSoundEnabled=function(){return a.soundEnabled};a.initialize();return c});dojo.hostenv.findModule("xg.chat.LocalStorageUpdater",!1)||(dojo.provide("xg.chat.LocalStorageUpdater"),xg.chat.LocalStorageUpdater=function(d){var a={};var b=0;a.shouldUpdateFromLocalStorage=function(){var c=xg.shared.util.getCookie("chatWriteTimestamp");return c&&c>b};a.setClientIsUpdated=function(){b=x$.now()};a.propagateChangesToOtherClients=function(){d.save();a.setClientIsUpdated();xg.shared.util.setCookie("chatWriteTimestamp",b)};return a});dojo.hostenv.findModule("xg.shared.EventRegistry",!1)||(dojo.provide("xg.shared.EventRegistry"),xg.shared.EventRegistry=function(){var e={};var d={};e.fire=function(a,c){if(a=d[a]){var b=[];x$.each(a,function(f,g){b.push(g(c))});return b}};e.listen=function(a,c){d[a]||(d[a]=[]);d[a].push(c)};e.listenMultiple=function(a){x$.each(a,function(c,b){e.listen(c,b)})};e.unlisten=function(a,c){var b=d[a];b&&(d[a]=x$.grep(b,function(f,g){return f!==c}))};e.listenOnce=function(a,c){if(d[a])for(var b=0;b<d[a].length;b++)if(d[a][b]+
""===c+"")return;e.listen(a,c)};return e}());dojo.hostenv.findModule("xg.chat.LocalStorage",!1)||(dojo.provide("xg.chat.LocalStorage"),xg.chat.LocalStorage=function(e){var c={},a={VERSION:4,savePending:!1,HEARTBEAT_INTERVAL:2E3};a.updater=xg.chat.LocalStorageUpdater(c);a.initialize=function(){a.load();a.data&&a.data.version===a.VERSION||(x$.jStorage.flush(),a.data={version:a.VERSION,users:{}},a.savePending=!0);a.data.users[e]||(a.data.users[e]={values:{},lastActivityTime:x$.now()});setInterval(function(){a.checkForUpdatesFromLocalStorage();
c.save()},a.HEARTBEAT_INTERVAL);x$(window).unload(c.save)};c.set=function(b,d,h,f){if("undefined"===typeof h)throw"propagateChangeToOtherClients must be specified";a.checkForUpdatesFromLocalStorage();if(!f){var g=c.get(b);if("object"!==typeof d&&d===g||"object"===typeof d&&d!==g&&x$.toJSON(d)===x$.toJSON(g))return}d={value:d};if(f=f?(new Date).getTime()+1E3*f:null)d.expiry=f;a.data.users[e].values[b]=d;a.data.users[e].lastActivityTime=x$.now();a.savePending=!0;h&&(c.save(),c.getUpdater().propagateChangesToOtherClients())};
c.get=function(b,d){a.checkForUpdatesFromLocalStorage();b=a.data.users[e].values[b];return!b||b.expiry&&(new Date).getTime()>parseInt(b.expiry)?null:d&&"object"===typeof b.value?x$.parseJSON(x$.toJSON(b.value)):b.value};a.checkForUpdatesFromLocalStorage=function(){c.getUpdater().shouldUpdateFromLocalStorage()&&a.load()};a.load=function(){var b=!1;a.data&&(x$.jStorage.reInit(),b=!0);a.data=x$.jStorage.get("xg.chat.LocalStorage.data");c.getUpdater().setClientIsUpdated();b&&xg.shared.EventRegistry.fire("xg.chat.LocalStorage.updated")};
c.save=function(){a.savePending&&(x$.jStorage.set("xg.chat.LocalStorage.data",a.data),a.savePending=!1)};c.getUpdater=function(){return a.updater};a.initialize();return c});dojo.hostenv.findModule("xg.shared.LanguageFilter",!1)||(dojo.provide("xg.shared.LanguageFilter"),xg.shared.LanguageFilter=function(g){var f={},d={};f._=d;var h=[];f.addWord=function(a){d.addSequenceToNode(h,a.toLowerCase().split(""))};d.addSequenceToNode=function(a,b){var c=b.shift();a[c]=a[c]||[];0==b.length?a[c].done=!0:d.addSequenceToNode(a[c],b)};f.filter=function(a){for(var b=0;b<a.length;){var c=d.findLongestMatchLength(a,b);if(0<c){var e=Array(c).join("*");a=a.substring(0,b+1)+e+a.substring(b+
c,a.length);b=b+c-1}1==g?b=d.findBoundary(a,b+1):b++}return a};d.findLongestMatchLength=function(a,b){a=a.toLowerCase();for(var c=0,e=h,k=0;b<a.length;){e=e[a.charAt(b)];k++;b++;if(null==e)break;1!=e.done||1==g&&d.findBoundary(a,b)!=b||(c=k)}return c};d.findBoundary=function(a,b){if(0==b)return 0;if(b==a.length)return a.length;var c=a.substring(b-1,a.length).search(/[\s\S]\b/);return-1==c?a.length:b+c};return f});dojo.hostenv.findModule("xg.chat.Model",!1)||(dojo.provide("xg.chat.Model"),xg.chat.Model=function(d,f,g,h){var a={},c={};a.MAX_HEIGHT=300;a.PADDING=20;a.NETWORK_CHAT_MAX_MESSAGE_AGE=864E5;a.LOCAL_STORAGE_NAME_FOR_PRIVATE_ROOMS_FOR_POPOUT_CHAT="popoutPrivateChatRooms_v2";a.LOCAL_STORAGE_NAME_FOR_PRIVATE_ROOMS_FOR_FOOTER_AND_MODULE_CHAT="privateChatRooms_v2";c.PRIVATE_ROOM_LOCAL_STORAGE_MAX_AGE=300;a.appId="";a.appName="";a.defaultAvatarUrl="";a.loginUrl="";a.countUrl="";a.chatServerDomain="";a.token=
"";a.roomId="";a.messageListHash=0;a.maxUserCount=500;a.languageFilter=null;a.isPopoutChat=!1;a.clientId="";a.ignoredMembers={};c.state=null;a.layout=null;c.connected=f;c.mainRoomOpen=g;c.userListExpanded=h;a.setState=function(b){c.state!=b&&(c.state=b,xg.shared.EventRegistry.fire("xg.chat.Model.stateChanged",b))};a.getState=function(){return c.state};a.createLanguageFilter=function(b,e){a.languageFilter=xg.shared.LanguageFilter(e);for(e=0;e<b.length;e++)a.languageFilter.addWord(b[e])};a.getCachedOnlineStatus=
function(){return c.connected};a.setCachedOnlineStatus=function(b){c.connected!=b&&(c.connected=b,c.updateUserPreferences(),d.set("chatConnected",b,!0))};a.readOnlineStatusFromLocalStorage=function(){var b=d.get("chatConnected");null!==b&&(c.connected=b);return c.connected};a.getChatServerDomain=function(){return a.chatServerDomain};a.setChatServerDomain=function(b){a.chatServerDomain=b};a.isMainRoomOpen=function(){return c.mainRoomOpen};a.setMainRoomOpen=function(b){c.mainRoomOpen!=b&&(c.mainRoomOpen=
b,c.updateUserPreferences())};a.isUserListExpanded=function(){return c.userListExpanded};a.setUserListExpanded=function(b){c.userListExpanded!=b&&(c.userListExpanded=b,c.updateUserPreferences())};c.updateUserPreferences=function(){a.layout.updateUserPreferences({connected:c.connected?"1":"0",mainRoomExpanded:c.mainRoomOpen?"1":"0",userListExpanded:c.userListExpanded?"1":"0"})};a.getPrivateRooms=function(){return d.get(a.layout.getLocalStorageNameForPrivateRooms())||[]};a.setPrivateRooms=function(b){d.set(a.layout.getLocalStorageNameForPrivateRooms(),
b,!0,c.PRIVATE_ROOM_LOCAL_STORAGE_MAX_AGE)};a.setPrivateRoomsForPopoutChat=function(b){d.set(a.LOCAL_STORAGE_NAME_FOR_PRIVATE_ROOMS_FOR_POPOUT_CHAT,b,!0,c.PRIVATE_ROOM_LOCAL_STORAGE_MAX_AGE)};a.getPublicMessageHistory=function(){return d.get("publicMessages_v2")||[]};a.setPublicMessageHistory=function(b){d.set("publicMessages_v2",b,!1)};a.getPrivateMessageHistory=function(){return d.get("privateMessages_v2")||[]};a.setPrivateMessageHistory=function(b,e){d.set("privateMessages_v2",b,e||!1)};a.getMessageListHash=
function(){a.messageListHash||(a.messageListHash=d.get("chatMessageListHash"));return a.messageListHash?a.messageListHash:0};a.setMessageListHash=function(b){a.messageListHash=b;d.set("chatMessageListHash",b,!1)};a.isBanned=function(){return!1};a.setLoginData=function(b){d.set("chatLoginData",b,!0)};a.getLoginData=function(){return d.get("chatLoginData",!0)};a.isUserIgnored=function(b){return!0===a.ignoredMembers[b]};a.setMainRoomHeight=function(b){d.set("mainRoomHeight",b,!1)};a.getMainRoomHeight=
function(){return d.get("mainRoomHeight",!1)};a.setUserListHeight=function(b){d.set("userListHeight",b,!1)};a.getUserListHeight=function(){return d.get("userListHeight",!1)};return a});dojo.hostenv.findModule("xg.chat.LazyImageLoader",!1)||(dojo.provide("xg.chat.LazyImageLoader"),xg.chat.LazyImageLoader=function(a,h){var b={},f={},g;f.initialize=function(){g=xg.shared.util.createQuiescenceTimer(50,b.loadImagesInViewport)};b.monitorScrolling=function(){a.scroll(function(){g.trigger()})};b.loadImagesInViewport=function(){for(var c=a.find(h),d=Math.floor(a.scrollTop()/a[0].scrollHeight*c.length),k=Math.ceil((a.scrollTop()+a.outerHeight())/a[0].scrollHeight*c.length);d<=k;d++)if(c[d]){var e=
x$(c[d]).find(".lazy-load");e[0]&&e.replaceWith(e.html().replace(/\x3c!--(.*)--\x3e/,"$1"))}};f.initialize();return b});dojo.hostenv.findModule("xg.chat.models.User",!1)||(dojo.provide("xg.chat.models.User"),xg.chat.models.User=function(){var a={},c,d,e,f;a.initialize=function(b,g,h,k){c=b;d=g;e=h;f=k;return a};a.equals=function(b){return b&&a.getId()===b.getId()&&a.getName()===b.getName()&&a.getAvatarUrl()===b.getAvatarUrl()&&a.isAdmin()===b.isAdmin()};a.initializeFromServerObject=function(b){c=b.ningId;d=b.name;e=a.fixAvatarUrlSize(b.iconUrl);f=b.isAdmin;return a};a.fixAvatarUrlSize=function(b){return b.replace("width\x3d16\x26height\x3d16",
"width\x3d32\x26height\x3d32")};a.getNormalizedUserObject=function(b){return b.getId?b:a.initializeFromServerObject(b)};a.getId=function(){return c};a.getName=function(){return d};a.getAvatarUrl=function(){return e};a.isAdmin=function(){return f};a.getServerObject=function(){return{ningId:c,name:d,iconUrl:e,isAdmin:f}};return a});dojo.hostenv.findModule("xg.chat.models.UserList",!1)||(dojo.provide("xg.chat.models.UserList"),xg.chat.models.UserList=function(){var b={},f;var d={};var g=f=0;var h=!1;b.addUser=function(a,e){var c=a.getId();if(d[c]){if(a=b.updateUser(a),!a)return!1}else d[c]=a;e||xg.shared.EventRegistry.fire("xg.chat.models.UserList.usersUpdated");return!0};b.addUsers=function(a){for(var e=!1,c=0;c<a.length;c++)b.addUser(a[c],!0)&&(e=!0);e&&xg.shared.EventRegistry.fire("xg.chat.models.UserList.usersUpdated")};
b.addUsersFromServer=function(a){for(var e=!1,c=0;c<a.length;c++)b.addUser(xg.chat.models.User().initializeFromServerObject(a[c]),!0)&&(e=!0);h=!0;e&&xg.shared.EventRegistry.fire("xg.chat.models.UserList.usersUpdated")};b.removeUser=function(a){"object"===typeof a&&(a=a.getId());d[a]&&(delete d[a],xg.shared.EventRegistry.fire("xg.chat.models.UserList.usersUpdated"))};b.removeUsers=function(a){x$(a).each(function(e,c){b.removeUser(c)});xg.shared.EventRegistry.fire("xg.chat.models.UserList.usersUpdated")};
b.clearUsers=function(a){x$.isEmptyObject(d)||(d={},a||xg.shared.EventRegistry.fire("xg.chat.models.UserList.usersUpdated"))};b.isUserConnected=function(a){"object"===typeof a&&(a=a.getId());return null!=d[a]};b.getUsers=function(){return d};b.getUser=function(a){return d[a]};b.setUserCount=function(a){f!==a&&(f=a,xg.shared.EventRegistry.fire("xg.chat.models.UserList.userCountUpdated"))};b.getUserCount=function(){return f};b.setHash=function(a){g=a};b.getHash=function(){return g};b.updateUser=function(a){var e=
a.getId();if(a.equals(d[e]))return!1;d[e]=a;return!0};b.isPopulated=function(){return h};return b});dojo.hostenv.findModule("xg.chat.AjaxService",!1)||(dojo.provide("xg.chat.AjaxService"),xg.chat.AjaxService=function(){var f={},a={successMethod:null,failureMethod:null,TOKEN_EXPIRED:"token expired"};f.sendData=function(c,d,e,g,h,k,n,m){a.debug("Calling sendData: "+c);e=a.logExceptions(e||function(){});g=a.logExceptions(g||function(){});f.isAvailable()?(a.successMethod=function(b){xg.chat.AjaxService.testTokenExpired&&(b.result=a.TOKEN_EXPIRED,xg.chat.AjaxService.testTokenExpired=!1);b.result&&b.result==
a.TOKEN_EXPIRED&&n?(a.debug("Call failed: "+b.result+". Retrying. ("+c+")"),xg.shared.EventRegistry.fire("xg.chat.AjaxService.tokenExpired",{ajaxService:f,url:c,parameters:d,successMethod:e,failureMethod:g,internal:h,timeout:k})):b.result&&"ok"!=b.result?(a.debug("Call failed: "+b.result+". ("+c+")"),g(b)):(a.debug("Call succeeded. ("+c+")"),e(b))},a.failureMethod=function(b){g(b)},d=d||{},1!=h&&x$.browser.msie&&x$.browser.version.match(/^9\b/)&&(m=!0),1==m&&xg.chat.FlashPost.isAvailable()?xg.chat.FlashPost.sendData(c,
d,function(b){a.successCallback(x$.parseJSON(b.replace(/\n+/g," ")))},function(b){a.failureCallback(b)}):1==h?(d.xg_token=xg.token,x$.ajax({type:"POST",url:c,data:d,success:function(b){a.successCallback(eval(b))},error:function(b,l,p){a.failureCallback(p+" : "+l)},timeout:k||0})):x$.jsonp({url:c,type:"POST",callbackParameter:"c",data:d,success:function(b){a.successCallback(b)},error:function(b,l){a.failureCallback(l)},timeout:k||0})):g({result:"service unavailable"})};a.logExceptions=function(c){return function(d){try{c(d)}catch(e){throw xg.shared.util.consoleLog("Exception in AjaxService callback: "+
e),e;}}};a.debug=function(c){xg.chat.AjaxService.debugging&&xg.shared.util.consoleLog(c)};a.successCallback=function(c){var d=c?a.successMethod:a.failureMethod;a.resetService();null!=d&&d(c)};a.failureCallback=function(c){xg.shared.util.consoleLog(c);c=a.failureMethod;a.resetService();null!=c&&c({result:"error"})};f.isAvailable=function(){return null==a.successMethod&&null==a.failureMethod};a.resetService=function(){a.successMethod=a.failureMethod=null};f.destroy=function(){a.resetService()};return f});dojo.hostenv.findModule("xg.chat.LoginService",!1)||(dojo.provide("xg.chat.LoginService"),xg.chat.LoginService=function(f){var e={},b={};e.SESSION_REFRESH_TIME_IN_ADVANCE=300;var h=xg.chat.AjaxService(),k=xg.chat.AjaxService(),g,l=null;b.initialize=function(){b.handleTokenExpiredErrors()};e.getLastSuccessfulLoginTime=function(){return l};b.handleTokenExpiredErrors=function(){xg.shared.EventRegistry.listen("xg.chat.AjaxService.tokenExpired",function(a){b.refreshSession(function(c){a.ajaxService.sendData(a.url,
a.parameters,a.successMethod,a.failureMethod,a.internal,a.timeout,!1)},a.failureMethod)})};b.resolveHostForApp=function(a,c){h.sendData("/chat/index/getServer",null,a,c,!0,15E3,!1)};b.makeLoginCall=function(a,c){k.sendData("/chat/index/login",null,function(d){l=x$.now();a&&a(d)},c,!0,15E3,!1)};e.disconnect=function(){k.destroy();k=xg.chat.AjaxService();h.destroy();h=xg.chat.AjaxService();b.clearRefreshTimer()};b.retrieveChatServerDomain=function(a,c){1!=c&&f.getChatServerDomain()?a():b.resolveHostForApp(function(d){f.setChatServerDomain(d.domain);
a()})};e.logIntoChat=function(a,c){b.retrieveChatServerDomain(function(){b.makeLoginCall(function(d){f.token=d.token;a&&a(d)},c)})};e.createRefreshTimer=function(a){a||=14400;b.clearRefreshTimer();g=setTimeout(b.refreshSession,1E3*(a-e.SESSION_REFRESH_TIME_IN_ADVANCE))};b.clearRefreshTimer=function(){g&&(clearTimeout(g),g=null)};b.refreshSession=function(a,c){b.clearRefreshTimer();b.makeLoginCall(function(d){f.token=d.token;e.createRefreshTimer(d.sessionTTL);a&&a(d)},c)};b.initialize();return e});dojo.hostenv.findModule("xg.chat.PresenceService",!1)||(dojo.provide("xg.chat.PresenceService"),xg.chat.PresenceService=function(t,l,m,c,n){var d={},b={},g=xg.chat.AjaxService(),p=xg.chat.AjaxService(),k=xg.chat.AjaxService(),q=xg.chat.AjaxService(),h;d.isUserConsideredAlive=function(){return 5E4>=x$.now()-n.get("lastSuccessfulPresenceListTime")};b.didUserLogInRecently=function(){return 5E4>=x$.now()-m.getLastSuccessfulLoginTime()};b.list=function(){b.didUserLogInRecently()||d.isUserConsideredAlive()?
b.listProper():m.logIntoChat(b.listProper)};b.listProper=function(){if(!c.isBanned()){var a={a:c.appId,i:c.user.getId(),r:c.roomId,t:c.token,h:c.userList.getHash()};g.sendData(window.location.protocol+"//"+c.getChatServerDomain()+"/xn/presence/list",a,b.processServerResponse,b.processServerError,!1,15E3,!0)}};b.count=function(){k.sendData("/chat/index/userCount",null,b.processServerResponse,b.processServerError,!0,15E3,!0)};d.ban=function(a,e,f,r){g.sendData("/chat/index/ban",{r:c.roomId,t:c.token,
ti:a,bts:e},f,r,!0,15E3,!0)};d.ignore=function(a,e){q.sendData("/chat/index/ignore",{id:a},null,e,!0)};d.stopIgnoring=function(a){q.sendData("/chat/index/stopIgnoring",{id:a},null,null,!0)};d.disconnect=function(){g.destroy();g=xg.chat.AjaxService();p.destroy();p=xg.chat.AjaxService();k.destroy();k=xg.chat.AjaxService();b.stopUpdatingPresence()};d.startUpdatingPresence=function(){b.stopUpdatingPresence();c.getState().areOpenChatPanesAllowed()&&b.updatePresence();h=setInterval(b.updatePresence,3E4)};
b.updatePresence=function(){c.getState().areOpenChatPanesAllowed()?b.list():b.count()};b.processServerResponse=function(a){a.count&&c.userList.setUserCount(a.count);a.hash&&c.userList.setHash(a.hash);a.users&&(c.userList.clearUsers(!0),b.initializeNameUniquifierIfNeeded(a.users),c.userList.addUsersFromServer(a.users));a.expired&&c.userList.removeUsers(a.expired);"list"===a.command&&"ok"===a.result&&n.set("lastSuccessfulPresenceListTime",x$.now(),!1)};window.insertTestUsers=function(a){a={users:[]};
for(i=0;100>i;i++)a.users.push({ningId:""+i,name:"User"+i,iconUrl:"http://yubnub.org/images/maxthon.png"});b.processServerResponse(a)};b.processServerError=function(a){};b.initializeNameUniquifierIfNeeded=function(a){if(!l.isInitialized()){for(var e={},f=0;f<a.length;f++)e[a[f].ningId]=a[f].name;l.initialize(e)}};b.stopUpdatingPresence=function(){h&&(clearInterval(h),h=null)};return d});dojo.hostenv.findModule("xg.chat.MessageService",!1)||(dojo.provide("xg.chat.MessageService"),xg.chat.MessageService=function(n,c){var e={},b={};e.MESSAGE_TYPE_INVITE_PRIVATE_ROOM="invite";e.MESSAGE_TYPE_INVITE_ACCEPTED="accepted";e.MESSAGE_TYPE_INVITE_ACCEPTED_LOOP="acceptedLoop";e.MESSAGE_TYPE_INVITE_DECLINED="declined";e.MESSAGE_TYPE_INVITE_DECLINED_LOOP="declinedLoop";e.MESSAGE_TYPE_LEAVE_PRIVATE_ROOM="leave";e.MESSAGE_TYPE_PRIVATE_MESSAGE="private";e.MESSAGE_TYPE_LOCAL="local";e.MESSAGE_TYPE_PUBLIC_MESSAGE=
"message";e.MESSAGE_TYPE_DELETE_MESSAGE="delete";e.MESSAGE_TYPE_CLEAR_MESSAGE="clear";b.POLLING_CHECK_INTERVAL=20;b.POLLING_TIMEOUT=150;b.REQUEST_TIMEOUT=15;b.DELAY_AFTER_FAILED_POLL=5;b.DELAY_BEFORE_POLLING=3;var q=xg.chat.AjaxService(),k=xg.chat.AjaxService(),p=xg.chat.AjaxService(),r=xg.chat.AjaxService(),t=xg.chat.AjaxService(),l=!0,u=[],v=null,w=!1;b.initialize=function(){b.keepPollingAlive()};b.list=function(a,d){if(!c.isBanned()){var f={a:c.appId,r:c.roomId,t:c.token,i:c.user.getId(),h:c.getMessageListHash()};
q.sendData(window.location.protocol+"//"+c.getChatServerDomain()+"/xn/groupchat/list",f,a,b.addBanCheck(d),!1,1E3*b.REQUEST_TIMEOUT,!0)}};b.poll=function(){if(k.isAvailable()){var a={a:c.appId,r:c.roomId,t:c.token,cid:c.clientId,i:c.user.getId()};v=x$.now();var d=!w;k.sendData(window.location.protocol+"//"+c.getChatServerDomain()+"/xn/groupchat/poll",a,b.onPollSucess,b.addBanCheck(b.onPollError),!1,0,!0,d);setTimeout(b.sendQueuedMessages,500);w=!0}};b.keepPollingAlive=function(){setInterval(function(){l&&
v&&v<x$.now()-1E3*b.POLLING_TIMEOUT&&(k.destroy(),k=xg.chat.AjaxService(),b.onReceiveMessages({},!1))},1E3*b.POLLING_CHECK_INTERVAL)};b.addBanCheck=function(a){return function(d){"banned"==d.result&&xg.shared.EventRegistry.fire("xg.chat.suspensionDetected",d.remainingBanTime);a&&a(d)}};e.publish=function(a,d,f,h,g){!c.isBanned()&&l&&(b.canPublish()?(a={sender:c.user.getServerObject(),type:a,body:d,roomId:c.roomId,targetId:f},a={a:c.appId,r:c.roomId,t:c.token,i:c.user.getId(),message:xg.shared.util.wellFormedJSON(a,
!0)},p.sendData(window.location.protocol+"//"+c.getChatServerDomain()+"/xn/groupchat/publish",a,function(m){b.sendQueuedMessages();h&&h(m)},b.addBanCheck(function(){b.sendQueuedMessages();g&&g()}),!1,1E3*b.REQUEST_TIMEOUT,!0)):(u.push({messageType:a,messageBody:d,targetId:f,successCallback:h,errorCallback:g}),b.poll()))};b.sendQueuedMessages=function(){if(b.canPublish()&&0!=u.length){var a=u.shift();e.publish(a.messageType,a.messageBody,a.targetId,a.successCallback,a.errorCallback)}};b.canPublish=
function(){return l&&!k.isAvailable()&&p.isAvailable()};e.deleteMessage=function(a,d,f,h){var g={sender:c.user.getServerObject(),type:"",body:"",roomId:c.roomId};a={r:c.roomId,t:c.token,ti:a,tt:d,message:xg.shared.util.wellFormedJSON(g,!0)};r.sendData("/chat/index/deleteMessage",a,f,h,!0,1E3*b.REQUEST_TIMEOUT,!0)};e.clearMessages=function(a,d){var f={sender:c.user.getServerObject(),type:"",body:"",roomId:c.roomId};f={r:c.roomId,t:c.token,message:xg.shared.util.wellFormedJSON(f,!0)};t.sendData("/chat/index/clearRoom",
f,a,d,!0,1E3*b.REQUEST_TIMEOUT,!0)};e.disconnect=function(){l=!1;q.destroy();q=xg.chat.AjaxService();k.destroy();k=xg.chat.AjaxService();p.destroy();p=xg.chat.AjaxService();r.destroy();r=xg.chat.AjaxService();t.destroy();t=xg.chat.AjaxService()};e.startPolling=function(a){var d=a?1E3*b.DELAY_BEFORE_POLLING:0;l=!0;b.list(function(f){b.onReceiveMessages(f,!0,d)},function(f){b.onReceiveMessages({},!0,d)})};b.onReceiveMessages=function(a,d,f){l&&(a.hash&&c.setMessageListHash(a.hash),0<a.lastClearedOn&&
n.removeOldMessagesFromHistory(a.lastClearedOn),b.processMessages(a.messages,d),0<f?setTimeout(b.poll,f):b.poll())};b.onPollSucess=function(a){b.onReceiveMessages(a,!1,0)};b.onPollError=function(a){b.onReceiveMessages({},!1,1E3*b.DELAY_AFTER_FAILED_POLL)};b.processMessages=function(a,d){if(null!=a&&0!=a.length){for(var f=[],h=[],g=0;g<a.length;g++){var m=a[g].type==e.MESSAGE_TYPE_PRIVATE_MESSAGE?a[g].sender.ningId:null;if(a[g].type==e.MESSAGE_TYPE_DELETE_MESSAGE)m=a[g].body.split(":"),n.deleteMessage(m[0],
m[1]);else if(a[g].type==e.MESSAGE_TYPE_CLEAR_MESSAGE)n.clearPublicMessageHistory();else{var x=xg.chat.models.User().initializeFromServerObject(a[g].sender);f.push(x);h.push({sender:x,message:a[g].body,timestamp:a[g].date,targetRoomId:m})}}n.addMessages(h,!1,d);d||c.userList.addUsers(f)}};b.initialize();return e});dojo.hostenv.findModule("xg.chat.UserListSorter",!1)||(dojo.provide("xg.chat.UserListSorter"),xg.chat.UserListSorter=function(){return{insert:function(a,b,f){var d=!1;b.children().each(function(c,e){c=x$(e);if(a[0]===e)return!0;if(0>=f(a,c))return c.before(a),d=!0,!1});d||b.append(a)},compareAlphabetically:function(a,b){a=a.find("._username").text().toLowerCase();b=b.find("._username").text().toLowerCase();return a<b?-1:a>b?1:0}}});dojo.hostenv.findModule("xg.chat.ChatPaneResizer",!1)||(dojo.provide("xg.chat.ChatPaneResizer"),xg.chat.ChatPaneResizer=function(e,f,g){var c={},a={selectedHeight:null};c.initialize=function(b){a.selectedHeight=b;e.click(function(d){d.preventDefault();d.stopPropagation()});e.mousedown(a.startDragAndResize);return c};a.startDragAndResize=function(b){b.preventDefault();x$("body").append(x$('\x3cdiv class\x3d"dragCover"\x3e\x3c/div\x3e'));x$(document).bind("mousemove",a.dragAndResize);x$(document).mouseup(function(d){x$(document).unbind("mousemove",
a.dragAndResize);x$(".dragCover").remove();g()})};a.dragAndResize=function(b){a.selectedHeight=x$(window).height()-(b.pageY-x$(document).scrollTop());f()};c.getSelectedHeight=function(){return a.selectedHeight};return c});dojo.hostenv.findModule("xg.chat.UserListView",!1)||(dojo.provide("xg.chat.UserListView"),xg.chat.UserListView=function(k,r,n,y,B,g){var h={},a={},p,t,l,m,q,u=!1,v=0,A='\x3cli\x3e\x3ca href\x3d"#" class\x3d"privateMessageLink"\x3e\x3cspan class\x3d"lazy-load"\x3e\x3c!--\x3cimg class\x3d"_avatar" src\x3d"{image}" onerror\x3d"{onerror}"\x3e--\x3e\x3c/span\x3e\x3cspan class\x3d"_username"\x3e{name}\x3c/span\x3e\x3c/a\x3e\x3cspan class\x3d"xg_close delete" href\x3d"#" title\x3d"'+xg.index.nls.html("close")+
'"\x3e\x3c/span\x3e\x3c/li\x3e',w=xg.chat.UserListSorter(),x;h.initialize=function(c){x=xg.chat.ChatPaneResizer(x$(".resizeHandle",k),a.onResize,a.saveSize).initialize(c);p=x$(".xg_chatWindow",k);t=x$(".xg_status",k);l=x$(".chatUsers",k);q=xg.chat.LazyImageLoader(l,"li");q.monitorScrolling();g.layout.initializeUserListView(k,a.hideUserDropDown);x$(".xg_titleBar, .xg_expand, .xg_chatWindow .xg_info",k).click(function(b){b.preventDefault();b.stopPropagation();h.toggleExpanded()});x$(".xg_bottomBar .xg_info",
k).click(function(b){b.preventDefault();b.stopPropagation();g.getState().onClickUserListBar(h)});x$(document).click(function(b){a.hideUserDropDown();a.hideChatOptionBox()});k.click(function(b){b.stopPropagation();a.hideChatOptionBox();a.hideUserDropDown()});t.click(function(b){b.preventDefault();b.stopPropagation();a.hideUserDropDown();h.toggleChatOptionBox()});m={};xg.shared.EventRegistry.listen("xg.chat.Model.stateChanged",a.stateChanged);xg.shared.EventRegistry.listen("xg.chat.models.UserList.usersUpdated",
a.updateDisplay);xg.shared.EventRegistry.listen("xg.chat.Controller.privateRoomAdded",a.updateConversationMarkers);xg.shared.EventRegistry.listen("xg.chat.Controller.privateRoomRemoved",a.updateConversationMarkers);xg.shared.EventRegistry.listen("xg.chat.models.UserList.userCountUpdated",a.updateUserListBarText);xg.shared.EventRegistry.listen("xg.chat.ignoresUpdated",a.handleIgnoredUsersUpdate);return h};a.onResize=function(){a.updateSizes();q.loadImagesInViewport()};a.saveSize=function(){g.setUserListHeight(x.getSelectedHeight())};
a.handleIgnoredUsersUpdate=function(c){var b=c&&c.id?c.id:null;l.children("li").each(function(){var d=x$(this),e=d.data("xj_screen_name");if(b&&e!==b)return!0;w.insert(d,l,a.compareAlphabeticallyPuttingIgnoredUsersLast);a.updateIgnoredState(d,d.find(".userOptions"),e);return null===b})};a.updateDisplay=function(){var c,b=g.userList.getUsers(),d=0;for(c in b)a.addUser(b[c]),d++;if(0===d)l.html(""),m={};else{for(c in m)m.hasOwnProperty(c)&&!b[c]&&a.removeUser(c);q.loadImagesInViewport();a.updateConversationMarkers();
a.updateUserInformation();v=d;g.userList.setUserCount(d)}};a.stateChanged=function(c){t.toggleClass("xg_status-offline",!c.isOnline());a.updateUserListBarText();a.hideUserDropDown();a.hideChatOptionBox()};a.updateUserListBarText=function(){x$(".chatTitle",k).text(g.getState().getUserListBarText())};a.updateSizes=function(){g.layout.updateUserListViewSizes(l,k,p,x.getSelectedHeight())};h.toggleExpanded=function(){h.isExpanded()?h.contract(!0):h.expand();a.hideUserDropDown();a.hideChatOptionBox()};
a.hideUserDropDown=function(){l.children().removeClass("showingUserOptions")};h.expand=function(){g.setUserListExpanded(!0);g.getState().isOnline()?(p.show(),x$(".xg_bottomBar .xg_info.chatTitle").addClass("hidden"),a.updateSizes(),q.loadImagesInViewport()):n.toggleOnlineStatus()};h.contract=function(c){c&&g.setUserListExpanded(!1);p.hide();x$(".xg_bottomBar .xg_info.chatTitle").removeClass("hidden");a.updateSizes()};h.isExpanded=function(){return 0<p.filter(":visible").length};a.createListItem=function(c,
b){var d=c.getId(),e=c.getName(),f=c.getAvatarUrl();e=y.ensureUnique(e,d,!1);e=xg.renderHtml(A,{image:xg.qh(f),name:xg.qh(e),onerror:xg.qh("this.onerror\x3dnull;this.src\x3d'"+g.defaultAvatarUrl+"';")});b||(e=e.replace(RegExp('\x3cspan class\x3d"lazy-load"\x3e\x3c!--(.*)--\x3e\x3c/span\x3e'),"$1"));b=x$(e);b.data("xj_screen_name",d);d=function(z){z.preventDefault();z.stopPropagation();a.hideUserDropDown();n.addPrivateRoom(c,!0,!0)};x$(".privateMessageLink",b).click(d);b.click(d);return b};a.addUser=
function(c){var b=c.getId();if(null!=m[b])return!1;var d=a.createListItem(c,!0);if(b!=g.user.getId()){var e=x$('\x3cdiv class\x3d"userOptions"\x3e\x3c/div\x3e');e.append(xg.renderHtml('\x3ca href\x3d"#" class\x3d "{jsClass}"\x3e{label}\x3c/a\x3e',{jsClass:"viewProfileLink",label:xg.chat.nls.html("viewProfile")}));e.append(xg.renderHtml('\x3ca href\x3d"#" class\x3d "{jsClass}"\x3e{label}\x3c/a\x3e',{jsClass:"privateMessageLink",label:xg.chat.nls.html("startChat")}));g.user.isAdmin()&&!c.isAdmin()&&
e.append(xg.renderHtml('\x3ca href\x3d"#" class\x3d "{jsClass}"\x3e{label}\x3c/a\x3e',{jsClass:"suspendLink",label:xg.chat.nls.html("suspendFromChatTitleCase")}));c.isAdmin()||(e.append(xg.renderHtml('\x3ca href\x3d"#" class\x3d "{jsClass}"\x3e{label}\x3c/a\x3e',{jsClass:"ignoreLink",label:xg.chat.nls.html("ignore")})),e.append(xg.renderHtml('\x3ca href\x3d"#" class\x3d "{jsClass}"\x3e{label}\x3c/a\x3e',{jsClass:"stopIgnoringLink",label:xg.chat.nls.html("stopIgnoring")})),a.updateIgnoredState(d,e,
b));d.append(e);d.append('\x3ca href\x3d"#" class\x3d"arrow"\x3e\x26#9660;\x3c/a\x3e');d.append('\x3cspan class\x3d"conversation-marker xg_sprite xg_sprite-comment" style\x3d"display:none"\x3e\x3c/span\x3e');x$(".viewProfileLink",e).click(function(f){f.preventDefault();f.stopPropagation();a.hideUserDropDown();n.navigateToProfile(b)});x$(".suspendLink",e).click(function(f){f.preventDefault();f.stopPropagation();a.hideUserDropDown();n.showBanDialog(b)});x$(".ignoreLink",e).click(function(f){f.preventDefault();
f.stopPropagation();a.hideUserDropDown();n.ignoreUser(b)});x$(".stopIgnoringLink",e).click(function(f){f.preventDefault();f.stopPropagation();a.hideUserDropDown();n.stopIgnoringUser(b)});x$(".arrow",d).click(function(f){f.preventDefault();f.stopPropagation();e.is(":hidden")?(a.hideUserDropDown(),d.addClass("showingUserOptions"),x$(".privateMessageLink",e).text(n.privateRooms[b]?xg.chat.nls.text("viewChat"):xg.chat.nls.text("startChat")),a.adjustUserOptionsPosition(e)):d.removeClass("showingUserOptions")})}w.insert(d,
l,a.compareAlphabeticallyPuttingIgnoredUsersLast);m[b]=d;a.updateSizes();v++;return!0};a.adjustUserOptionsPosition=function(c){c.css("top","18px");c.removeClass("raised");var b=x$(".xg_bottomBar",k).offset().top,d=c.offset().top+c.height();d>b&&(c.css("top",18-(d-b+5)+"px"),c.addClass("raised"))};a.compareAlphabeticallyPuttingIgnoredUsersLast=function(c,b){var d=g.isUserIgnored(c.data("xj_screen_name")),e=g.isUserIgnored(b.data("xj_screen_name"));return!d&&e?-1:d&&!e?1:w.compareAlphabetically(c,b)};
a.updateIgnoredState=function(c,b,d){d=g.isUserIgnored(d);x$(".ignoreLink",b).css("display",d?"none":"block");x$(".stopIgnoringLink",b).css("display",d?"block":"none");c.find(".privateMessageLink").toggleClass("disabled",d)};a.removeUser=function(c){m[c]&&(l.find("li").each(function(){var b=x$(this);b.data("xj_screen_name")===c&&b.remove()}),g.userList.setUserCount(l.children().length),delete m[c],a.updateSizes(),v--)};a.showChatOptionBox=function(){var c=g.getState().getChatOptionBoxDiv(a.hideChatOptionBox);
c&&(r.children().hide(),x$(c).show(),r.append(c),r.show(),u=!0)};a.hideChatOptionBox=function(){r.hide();u=!1};h.toggleChatOptionBox=function(){u?a.hideChatOptionBox():a.showChatOptionBox()};a.updateConversationMarkers=function(){g.layout.updateConversationMarkers(l,k,a.createListItem)};a.updateUserInformation=function(){var c=g.userList.getUsers();l.find("li").each(function(){var b=x$(this),d=b.data("xj_screen_name"),e=b.find("._avatar")[0];b=b.find("._username");var f=c[d];f&&(e&&f.getAvatarUrl()!==
e.src&&(e.src=f.getAvatarUrl()),d=y.ensureUnique(f.getName(),d,!1),b.length&&d!==b.text()&&b.html(xg.qh(d)))})};return h});dojo.hostenv.findModule("xg.chat.Emoticons",!1)||(dojo.provide("xg.chat.Emoticons"),xg.chat.Emoticons=function(f){var b={},d={},g=[[":-D",":-)",":-O",":-*"],[":-P",":-(",";-)",":-X"],["8-)",":-!","8-(",":'("]];b.EMOTICON_TO_CSS_CLASS_NAME_MAP={":-D":"biggrin",":D":"biggrin",":-)":"smile",":)":"smile",":-O":"surprise",":-o":"surprise",":O":"surprise",":o":"surprise",":-*":"biglips",":-P":"tongue",":-p":"tongue",":P":"tongue",":p":"tongue",":-(":"frown",":(":"frown",";-)":"wink",";)":"wink",":-X":"sick",
":-x":"sick",":X":"sick",":x":"sick","8-)":"coolsmile","8)":"coolsmile",":-!":"ohmy","8-(":"sadeyes","8(":"sadeyes",":'(":"cry"};b.initialize=function(){x$(".emoticon-button",f).click(b.handleEmoticonButtonClick);return b};b.handleEmoticonButtonClick=function(a){a.preventDefault();a=x$(".emoticon-panel",f);"block"==a.css("display")?b.hideEmoticons(a):b.showEmoticons(a)};b.showEmoticons=function(a){a.show();a.bind("click",b.insertEmoticon)};b.hideEmoticons=function(a){a.hide();a.unbind("click",b.insertEmoticon)};
b.insertEmoticon=function(a){"undefined"===typeof a.offsetX&&(a.offsetX=a.originalEvent.layerX,a.offsetY=a.originalEvent.layerY);var c=d.getColumnFromOffset(a.offsetX),e=d.getRowFromOffset(a.offsetY);null!==c&&null!==e&&(c=d.getEmoticonForPosition(c,e),e=x$(".xg_chatInput",f),e.val(e.val()+c),b.hideEmoticons(x$(a.target)),b.focusAtEnd(e))};b.focusAtEnd=function(a){a.focus();if(a[0].setSelectionRange){var c=a.val().length;a[0].setSelectionRange(c,c)}else a.val(a.val());a[0].scrollTop=999999};d.getEmoticonForPosition=
function(a,c){return g[c][a]};d.getColumnFromOffset=function(a){return 8<=a&&26>=a?0:38<=a&&56>=a?1:70<=a&&88>=a?2:100<=a&&118>=a?3:null};d.getRowFromOffset=function(a){return 2<=a&&20>=a?0:32<=a&&46>=a?1:58<=a&&75>=a?2:null};return b});dojo.hostenv.findModule("xg.chat.UnreadMessageCounter",!1)||(dojo.provide("xg.chat.UnreadMessageCounter"),xg.chat.UnreadMessageCounter=function(d,e,f){var c={},a={initialize:function(){d=d||""}};c.addUnreadMessage=function(b){b<e-864E5||(a.set("unreadMessageCount",c.getCount()+1),b>a.getLastUnreadMessageTime()&&a.set("lastUnreadMessageTime",b))};c.getCount=function(){var b=a.get("unreadMessageCount")||0;return a.getLastUnreadMessageTime()<e-864E5?0:b};c.clear=function(){a.set("unreadMessageCount",
0)};a.getLastUnreadMessageTime=function(){return a.get("lastUnreadMessageTime")||0};a.set=function(b,g){f.set(b+"-"+d,g,!1)};a.get=function(b){return f.get(b+"-"+d)};a.initialize();return c});dojo.hostenv.findModule("xg.shared.DateFormatter",!1)||(dojo.provide("xg.shared.DateFormatter"),xg.shared.DateFormatter=function(){var e={elapsedTime:function(a,c){c="undefined"===typeof c?!0:c;var d=new Date,b=0,f=0;a&&(f=Date.parse(a),b=d.getTime()-f,b=Math.floor(b/1E3));if(0>=b)return xg.shared.nls.text("justNow");if(60>b)return xg.shared.nls.text("nSecondsAgo",b);if(3600>b)return xg.shared.nls.text("nMinutesAgo",Math.floor(b/60));if(86400>b)return xg.shared.nls.text("nHoursAgo",Math.floor(b/60/
60));if(172800>b)return xg.shared.nls.text("yesterday");a=new Date(f);return 518400>b?(d=a.getUTCDay(),c?xg.shared.nls.text("onDay"+d):xg.events.nls.text(g[d])):d.getUTCFullYear()===a.getUTCFullYear()?e.monthDay(a.getUTCMonth(),a.getUTCDate()):e.monthDayYear(a.getUTCMonth(),a.getUTCDate(),a.getUTCFullYear())}},g="sunday monday tuesday wednesday thursday friday saturday".split(" ");e.monthDay=function(a,c){return xg.shared.nls.text("month"+a+"Day",c)};e.monthDayYear=function(a,c,d){return xg.shared.nls.text("month"+
a+"DayYear",c,d)};return e}());dojo.hostenv.findModule("xg.chat.Room",!1)||(dojo.provide("xg.chat.Room"),xg.chat.Room=function(m,g,t,v,f,R,S,J,T){var c={},d={},n,h,q=x$(),B=x$(),k,x,G,K,L,z=[],M,C=(new Date).getTime(),D,A,y=0,E="",N,H=!1,O=!1,F=!1;c.initialize=function(a){M=xg.chat.ChatPaneResizer(x$(".resizeHandle",m),c.updateSizes,d.saveSize).initialize(a);f.layout.initializeRoomEarly(c);A=xg.chat.UnreadMessageCounter(g?g.getId():null,R,S);n=x$(".xg_chatWindow",m);0==n.length&&(n=m);h=x$("ul",m);k=x$(".xg_chatInput",m);x=x$(".textarea-container",
m);G=parseInt(k.attr("maxlength"),10);K=xg.chat.Emoticons(n).initialize();xg.shared.util.setMaxLength(k[0],G);L=d.doesBrowserSupportInlineBlock();d.setTitle(g?v.ensureUnique(g.getName(),g.getId(),!0):xg.chat.nls.text("mainRoom"));k.keypress(function(e){13==e.which&&(e.preventDefault(),d.sendMessage())});k.autoResize({animate:!1,maxHeight:1E5,extraSpace:0,onAfterResize:c.updateSizes});var b=0;k.bind("keyup change input paste resize blur",function(){C=(new Date).getTime();b!=k.outerHeight(!0)&&(c.updateSizes(),
b=k.outerHeight(!0))});x$(window).resize(c.updateSizes);c.isPrivate()&&(xg.shared.EventRegistry.listen("xg.chat.models.UserList.usersUpdated",d.checkIfUserDisconnected),xg.shared.EventRegistry.listen("xg.chat.ignoresUpdated",d.checkIfUserDisconnected));xg.shared.EventRegistry.listen("xg.chat.models.UserList.usersUpdated",d.checkUserInfo);x$(document).click(function(e){x$(".deleteOptions",h).removeClass("active")});v.isInitialized()?d.ensureNamesUnique():xg.shared.EventRegistry.listen("xg.chat.NameUniquifier.initialized",
d.ensureNamesUnique);return c};d.saveSize=function(){g?t.saveRoomStates():f.setMainRoomHeight(c.getSelectedHeight())};d.setTitle=function(a){E=a;x$(".xg_info",m).text(E);c.updateLabel()};d.ensureNamesUnique=function(){c.isPrivate()&&d.setTitle(v.ensureUnique(g.getName(),g.getId(),!0));h.find("li.message").each(function(a,b){$messageLi=x$(b);$messageLi.data("senderId")!=f.user.getId()&&$messageLi.find("._sender").text(v.ensureUnique($messageLi.find("._sender").text(),$messageLi.data("senderId"),!0))})};
c.isPrivate=function(){return null!==g};d.repositionWarnings=function(){if(n.hasClass("roomDisabled")){var a=x$(".warning",n);h.append(a);q=a}};d.checkIfUserDisconnected=function(){if(f.userList.isPopulated()&&c.isOpen()){var a=x$(".userDisconnectedWarning",n),b=c.isConnected();0!=a.length||b?(0<a.length&&b&&(q=a.prev(),a.remove(),n.removeClass("roomDisabled"),k.prop("disabled",!1),x$(".textarea-container",m).show(),c.updateSizes()),d.checkIfUserIsIgnored()):(x$(".userIgnoredWarning",n).remove(),
n.addClass("roomDisabled"),a=x$('\x3cli class\x3d"warning userDisconnectedWarning"\x3e\x3c/li\x3e'),b=v.ensureUnique(g.getName(),g.getId(),!0),a.html(xg.chat.nls.html("userHasDisconnected",xg.qh(b))),h.append(a),q=a,k.prop("disabled",!0),0==k.val().length&&x$(".textarea-container",m).hide(),c.updateSizes(),c.scrollToBottom())}};d.checkIfUserIsIgnored=function(){var a=x$(".userIgnoredWarning",n),b=f.isUserIgnored(g.getId());0==a.length&&b?(n.addClass("roomDisabled"),a=x$('\x3cli class\x3d"warning userIgnoredWarning"\x3e\x3c/li\x3e'),
b=v.ensureUnique(g.getName(),g.getId(),!0),a.html(xg.chat.nls.html("youAreIgnoringUser",xg.qh(b))),h.append(a),q=a,k.prop("disabled",!0),0==k.val().length&&x$(".textarea-container",m).hide(),c.updateSizes(),c.scrollToBottom(),x$("a",a).click(function(e){e.preventDefault();e.stopPropagation();t.stopIgnoringUser(g.getId())})):0<a.length&&!b&&(q=a.prev(),a.remove(),n.removeClass("roomDisabled"),k.prop("disabled",!1),x$(".textarea-container",m).show(),c.updateSizes())};c.isConnected=function(){return f.userList.isUserConnected(g.getId())};
d.doesBrowserSupportInlineBlock=function(){if(x$.browser.msie&&x$.browser.version.match(/^(5|6|7)\b/))return!1;var a=x$('\x3cdiv style\x3d"display: inline-block;"\x3e\x3c/div\x3e');a.appendTo(document.body);var b="inline-block"==a.css("display");a.remove();return b};c.getDistanceFromBottom=function(a){return a[0].scrollHeight-a.scrollTop()-a.innerHeight()};d.removeFirstDisplayedMessage=function(){var a=h.find("li.message:eq(1)");a.prevAll(".message, ._timestamp").remove();d.updateMessageHeading(a)};
c.beforeAddingMessages=function(){N=c.getDistanceFromBottom(h);H=!1};c.addMessage=function(a,b,e,l){var p=a.getId();a.getAvatarUrl();a.getName();a.isAdmin();c.isOpen()||l||p===f.user.getId()||A.addUnreadMessage(e);C=Math.max(C,e);c.isOpen()?d.addMessageToDisplay(a,b,e,l):z.push({sender:a,message:b,timestamp:e,isFromLocalStorage:l});!l&&J&&J.startFlashing(xg.chat.nls.text("titlebarUserSays",a.getName()))};d.addClearHistoryLi=function(){var a='\x3cli class\x3d"clearHistory"\x3e\x3ca href\x3d"#"\x3e'+
xg.chat.nls.html("clearChatHistory")+"\x3c/a\x3e\x3c/li\x3e";x$(a).prependTo(h).find("a").click(function(b){b.preventDefault();c.isPrivate()?xg.shared.util.confirm({title:xg.chat.nls.text("clearMessages"),bodyText:xg.chat.nls.text("thisWillClearAllMessages",E),onOk:function(){t.clearPrivateRoomHistory(c.getUser().getId())}}):xg.shared.util.confirm({title:xg.chat.nls.text("clearMainRoomMessages"),bodyText:xg.chat.nls.text("thisWillDeleteMainRoomMessages"),onOk:function(){T.clearMessages()}})})};d.addMessageToDisplay=
function(a,b,e,l){F||!c.isPrivate()&&!f.user.isAdmin()||(d.addClearHistoryLi(),F=!0);var p=a.getId(),w=a.getAvatarUrl(),I=a.getName(),P=a.isAdmin();p===f.user.getId()&&(H=!0);y++;y>f.maxDisplayedMessageCountPerRoom&&d.removeFirstDisplayedMessage();b&&f.languageFilter&&(b=f.languageFilter.filter(b));b=xg.linkify(xg.qh(b),"_blank");L&&(b=c.insertEmoticonImages(b,K));d.insertTimestampProper(h,e);var Q=!c.isPrivate()&&f.user.isAdmin(),r=x$(xg.renderHtml(d.createMessageTemplate(Q,!P),{imageUrl:xg.qh(w),
onerror:xg.qh("this.onerror\x3dnull;this.src\x3d'"+f.defaultAvatarUrl+"';"),name:p==f.user.getId()?xg.chat.nls.html("me"):xg.qh(v.ensureUnique(I,p,l)),message:b,deleteLabel:xg.chat.nls.html("deleteMessage"),deleteAndSuspendLabel:xg.chat.nls.html("deleteMessageAndSuspend")}));r.data("timestamp",e);r.data("senderId",p);h.append(r);q=B=r;d.updateMessageHeading(r);Q&&(x$(".delete",r).click(function(u){u.preventDefault();u.stopPropagation();0<x$(".deleteOptions.active",r).length?x$(".deleteOptions",r).removeClass("active"):
(x$(".deleteOptions",h).removeClass("active"),x$(".deleteOptions",r).addClass("active"))}),x$(".deleteOption",r).click(function(u){u.preventDefault();u.stopPropagation();x$(".deleteOptions",h).removeClass("active");t.sendDeleteMessage(p,e)}),P||x$(".deleteAndSuspendOption",r).click(function(u){u.preventDefault();u.stopPropagation();x$(".deleteOptions",h).removeClass("active");t.showBanDialog(p,function(){t.sendDeleteMessage(p,e)})}));p!=f.user.getId()&&x$("._avatar, ._sender",r).click(function(u){u.preventDefault();
null==g?t.addPrivateRoom(a,!0,!0):t.navigateToProfile(p)})};d.createMessageTemplate=function(a,b){var e='\x3cli class\x3d"message"\x3e\x3cimg class\x3d"_avatar" src\x3d"{imageUrl}" onerror\x3d"{onerror}"\x3e\x3cspan class\x3d"_sender"\x3e{name}\x3c/span\x3e\x3cp class\x3d"_message"\x3e';a&&(e+='\x3cspan class\x3d"deleteOptions"\x3e\x3ca href\x3d"#" class\x3d"deleteOption"\x3e{deleteLabel}\x3c/a\x3e',b&&(e+='\x3ca href\x3d"#" class\x3d"deleteAndSuspendOption"\x3e{deleteAndSuspendLabel}\x3c/a\x3e'),
e+='\x3c/span\x3e\x3cspan class\x3d"delete"\x3e\x3c/span\x3e');return e+"{message}\x3c/p\x3e\x3c/li\x3e"};c.afterAddingMessages=function(a){d.repositionWarnings();c.isOpen()&&(c.updateSizes(),(20>N||H)&&c.scrollToBottom());f.layout.afterAddingMessages(c,a);a||(D&&window.clearTimeout(D),D=window.setTimeout(d.finishTimestampTimer,6E4),c.isOpen()||d.flash(f.layout.getLabel(c)))};d.flash=function(a){a.addClass("flash");setTimeout(function(){a.removeClass("flash")},d.FLASH_DURATION)};d.finishTimestampTimer=
function(){d.insertTimestamp(h,(new Date).getTime());D=null};d.updateMessageHeading=function(a){if(a&&0!=a.length){var b=a.prev();0==b.length||b.data("senderId")!=a.data("senderId")?a.removeClass("brief"):a.addClass("brief")}};c.deleteMessage=function(a,b){x$("li",h).each(function(e){var l=x$(this);if(l.data("senderId")==a&&l.data("timestamp")==b){y--;var p=l.next(),w=l;if(p.data("senderId")==a||f.user.getId()==a)w=x$("p",l);w.hide("fast",function(){if(a==f.user.getId())w.html(xg.chat.nls.html("postDeleted")),
w.addClass("_warning"),w.show("fast");else{var I=l.prev();l.remove();d.updateMessageHeading(p);d.collapseTimestamps(I,p)}})}})};d.collapseTimestamps=function(a,b){b.length&&(b=x$(b[0]),b.hasClass("_timestamp")&&(a.length&&!x$(a[0]).hasClass("_timestamp")||b.remove()))};d.insertTimestamp=function(a,b){var e=c.getDistanceFromBottom(a);d.insertTimestampProper(a,b)&&(d.repositionWarnings(),c.updateSizes(),0===e&&c.scrollToBottom())};d.insertTimestampProper=function(a,b){if(!(q.hasClass("_timestamp")||
q.hasClass("userDisconnectedWarning")||q.hasClass("userIgnoredWarning"))){if(!B.length)return!1;var e=B.data("timestamp");if(e+6E4-500>b)return!1;b=c.formatTime(e);if(""===b)return!1;b=x$(xg.renderHtml('\x3cli class\x3d"_timestamp"\x3e{date}\x3c/li\x3e',{date:xg.qh(b)}));a.append(b);q=b;return!0}};c.insertTimestamp=function(){d.insertTimestamp(h,(new Date).getTime())};c.scrollToBottom=function(){h.scrollTop(h[0].scrollHeight-h.innerHeight())};c.insertEmoticonImages=function(a,b){x$.each(b.EMOTICON_TO_CSS_CLASS_NAME_MAP,
function(e,l){a=a.replace(new RegExp(d.escapeRegExp(e),"g"),'\x3cspan class\x3d"emoticon '+l+'"\x3e'+e+"\x3c/span\x3e")});return a};d.escapeRegExp=function(a){return a.replace(/[[\]{}()*+?.\\^$|]/g,"\\$\x26")};c.formatTime=function(a){var b=new Date;b.setHours(0);b.setMinutes(0);b.setSeconds(0);a=new Date(a);if(isNaN(a.getTime()))return"";if(b-864E5>a)return xg.shared.DateFormatter.monthDay(a.getMonth(),a.getDate());if(b>a)return xg.chat.nls.text("yesterday");b=a.getHours();var e=12<b?b-12:b;return xg.shared.nls.text("time",
e,10>e?"0"+e:e,b,10>b?"0"+b:b,10>a.getMinutes()?"0"+a.getMinutes():a.getMinutes())};c.clearMessages=function(){h.children().remove("._timestamp, .message, .clearHistory");F=!1;q=x$();B=x$();z=[];y=0;A.clear();c.updateLabel()};c.clearOldMessages=function(a){x$(".message, ._timestamp",h).each(function(b){b=x$(this);if(b.data("timestamp")>a)return!1;b.data("senderId")&&y--;b.remove()});0==y&&(x$(".clearHistory",h).remove(),F=!1)};d.sendMessage=function(){if(0!=k.filter(":visible").length&&!k.prop("disabled")){var a=
x$.trim(k.val().substr(0,G));a&&t.sendMessage(a,g?g.getId():null);k.val("")}};c.focus=function(){x$(".xg_chatInput",m).focus()};c.isSelected=function(){return f.layout.isRoomSelected(c)};c.updateSizes=function(){var a=h[0].scrollHeight-(h.scrollTop()+h.innerHeight()),b=c.getSelectedHeight();b=b?b:f.layout.getExpandedHeight(c,h,q,x);b=Math.min(x$(window).height()-f.PADDING,Math.max(120,b));var e=k.outerHeight()>x.height();x$(".emoticonContainer",m).toggleClass("withScrollbar",e);e=k.val().length;0<
e&&d.getCursorPosition(k)>=e&&x.scrollTop(x[0].scrollHeight-x.innerHeight());f.layout.setWindowHeight(n,b);f.layout.updateMessageList(h,m,b);20>a&&c.scrollToBottom()};d.getCursorPosition=function(a){var b=0;a=a.get(0);if(document.selection){a.focus();b=document.selection.createRange();var e=document.selection.createRange().text.length;b.moveStart("character",-a.value.length);b=b.text.length-e}else if(a.selectionStart||"0"==a.selectionStart)b=a.selectionStart;return b};d.displayPendingMessages=function(){if(0==
z.length)return!1;for(;z.length;){var a=z.shift();d.addMessageToDisplay(a.sender,a.message,a.timestamp,a.isFromLocalStorage)}c.insertTimestamp();return!0};c.open=function(){f.layout.beforeOpeningRoom(c);c.setOpen(!0);A.clear();n.show();d.displayPendingMessages();c.updateSizes();c.scrollToBottom();t.saveRoomStates();c.isPrivate()&&d.checkIfUserDisconnected();d.checkUserInfo();f.layout.afterOpeningRoom(c)};c.setOpen=function(a){O=a};c.isOpen=function(){return O};c.getUser=function(){return g};c.isMainRoom=
function(){return!g};c.getContainer=function(){return m};c.getLastActivityTime=function(){return C};c.updateLabel=function(){var a=f.layout.getLabel(c);unreadMessageCount=A.getCount();var b=0==unreadMessageCount?"":100<unreadMessageCount?'\x3cspan class\x3d"count"\x3e100+\x3c/span\x3e':'\x3cspan class\x3d"count"\x3e'+unreadMessageCount+"\x3c/span\x3e";a.empty();$infoContents=x$('\x3cspan class\x3d"contents"\x3e\x3c/span\x3e').appendTo(a);a=E;for($infoContents.html(xg.qh(a)+b);$infoContents.width()>
f.layout.getMaxLabelWidth();)a=a.substring(0,a.length-1),$infoContents.html(xg.qh(a)+"\u2026"+b)};d.checkUserInfo=function(){h.find("li.message").each(function(){d.updateMessageInfo(x$(this))});if(c.isPrivate()){if(f.userList&&f.userList.getUser(g.getId())){var a=g;g=f.userList.getUser(g.getId());a.getName()!==g.getName()&&(m.data("user",g.getServerObject()),t.saveRoomStates())}d.setTitle(v.ensureUnique(g.getName(),g.getId(),!1))}};d.updateMessageInfo=function(a){var b=a.data("senderId"),e=a.find("img")[0];
a=x$(a.find("._sender")[0]);var l=f.userList.getUser(b);l&&(e.src!==l.getAvatarUrl()&&(e.src=l.getAvatarUrl()),e=v.ensureUnique(l.getName(),b,!1),a.text()!==e&&b!==f.user.getId()&&a.text(e))};c.getSelectedHeight=function(){return M.getSelectedHeight()};return c});dojo.hostenv.findModule("xg.chat.NameUniquifier",!1)||(dojo.provide("xg.chat.NameUniquifier"),xg.chat.NameUniquifier=function(){var e={},a={screenNameToNameMap:{},nameToScreenNameMap:{},initialized:!1};e.initialize=function(c){var d=x$.map(c,function(f,b){return b});d.sort();x$.each(d,function(f,b){a.ensureUniqueProper(c[b],b)});a.initialized=!0;xg.shared.EventRegistry.fire("xg.chat.NameUniquifier.initialized")};e.isInitialized=function(){return a.initialized};e.ensureUnique=function(c,d,f){return a.initialized?
f&&e.getName(d)?e.getName(d):a.ensureUniqueProper(c,d):c};e.getName=function(c){return a.screenNameToNameMap[c]};a.ensureUniqueProper=function(c,d){for(var f=1,b=c;a.nameToScreenNameMap[b]&&a.nameToScreenNameMap[b]!==d;)f++,b=c+" "+f;a.screenNameToNameMap[d]=b;a.nameToScreenNameMap[b]=d;return b};return e});dojo.hostenv.findModule("xg.chat.NotificationSound",!1)||(dojo.provide("xg.chat.NotificationSound"),xg.chat.NotificationSound=function(e,g){var f={},b={},d,c;b.initialize=function(){"probably"==window.Modernizr.audio.mp3?d=new Audio(e):c=document.getElementById("chat-sound-player")};f.play=function(){b.setVolume(g.getVolumeSetting());d?d.play():b.flashWorks(c)&&(xg.chat.NotificationSound.soundUri!==e&&(xg.chat.NotificationSound.soundUri=e,c.SetVariable("method:setUrl",e)),c.SetVariable("method:stop",
""),c.SetVariable("method:play",""))};b.flashWorks=function(a){return a&&"undefined"!=typeof a.SetVariable?!0:!1};b.setVolume=function(a){0>a?a=0:10<a&&(a=10);d?d.volume=a/10:b.flashWorks(c)&&c.SetVariable("method:setVolume",10*a)};b.initialize();return f});dojo.hostenv.findModule("xg.chat.ChatOptionBox",!1)||(dojo.provide("xg.chat.ChatOptionBox"),xg.chat.ChatOptionBox=function(f,a,c){a={};c={};var d=null,e=[];c.initialize=function(){d=x$('\x3cdiv\x3e             \x3cdiv class\x3d"option xg_onlineOption"\x3e\x3cspan class\x3d"checkmark"\x3e\x26#x2713; \x3c/span\x3e\x3cspan class\x3d"label"\x3e'+xg.chat.nls.html("connectedToChat")+"\x3c/span\x3e\x3c/div\x3e         \x3c/div\x3e");x$(".xg_onlineOption",d).click(function(b){var g=x$(this);b.preventDefault();
b.stopPropagation();f();x$.each(e,function(k,h){h(g)})})};a.addClickHandler=function(b){e.push(b)};a.getDiv=function(){return d[0]};c.initialize();return a});dojo.hostenv.findModule("xg.chat.VolumeLock",!1)||(dojo.provide("xg.chat.VolumeLock"),xg.chat.VolumeLock=function(d){var c={},a={CHECK_INTERVAL:2E3,COOKIE_NAME:"volumeSetting",timestamp:null};a.volumeSetting=d;a.initialize=function(){a.check();window.setInterval(a.check,a.CHECK_INTERVAL)};a.check=function(){var b=xg.shared.util.getCookie(a.COOKIE_NAME);b&&(a.volumeSetting=b)};c.getVolumeSetting=function(){return a.volumeSetting};c.setVolumeSetting=function(b){xg.post("/chat/index/update",{volume:b});
xg.shared.util.setCookie(a.COOKIE_NAME,b);a.volumeSetting=b};a.initialize();return c});dojo.hostenv.findModule("xg.chat.WibiyaHacks",!1)||(dojo.provide("xg.chat.WibiyaHacks"),(xg.chat.WibiyaHacks=function(){var a={},c,d=0;a.initialize=function(){x$('script[src*\x3d"wibiya"]').length&&(c=window.setInterval(a.watchForToolbar,500))};a.watchForToolbar=function(){var b=x$("#wibiyaToolbar");b.length?(x$(".xg_chat").data("connected")?a.setUpSignedInHacks(b):a.setUpSignedOutHacks(b),window.clearInterval(c)):(d++,10<=d&&window.clearInterval(c))};a.setUpSignedOutHacks=function(b){"off"===b.attr("state")?
x$("#userListContainer").addClass("xg_wibiyaMinimized"):x$("#userListContainer").addClass("xg_wibiyaMaximized");x$(".minMaxBtnDiv_maximize").bind("click",a.handleWibiyaSignedOut);x$(".minMaxBtnDiv_minimize").bind("click",a.handleWibiyaSignedOut)};a.setUpSignedInHacks=function(b){x$(".minMaxBtnDiv_maximize").bind("click",a.handleWibiyaSignedIn);x$(".minMaxBtnDiv_minimize").bind("click",a.handleWibiyaSignedIn);"off"!==b.attr("state")&&x$(".chatFooter").addClass("with-wibiya-toolbar")};a.handleWibiyaSignedOut=
function(){x$("#userListContainer").toggleClass("xg_wibiyaMinimized").toggleClass("xg_wibiyaMaximized")};a.handleWibiyaSignedIn=function(){x$(".chatFooter").toggleClass("with-wibiya-toolbar")};a.initialize()})());dojo.hostenv.findModule("xg.chat.states.ConnectingState",!1)||(dojo.provide("xg.chat.states.ConnectingState"),xg.chat.states.ConnectingState=function(){return{getName:function(){return"Connecting"},isOnline:function(){return!0},getUserListBarText:function(){return xg.chat.nls.text("connecting")},getChatOptionBoxDiv:function(a){return null},areOpenChatPanesAllowed:function(){return!1},isPollingPresence:function(){return!1},onClickUserListBar:function(a){}}});dojo.hostenv.findModule("xg.chat.states.OnlineState",!1)||(dojo.provide("xg.chat.states.OnlineState"),xg.chat.states.OnlineState=function(f,c){var a={},d={},e=!1;d.initialize=function(){};a.getName=function(){return"Online"};a.isOnline=function(){return!0};a.getUserListBarText=function(){return xg.chat.nls.text("membersOnline",f.userList.getUserCount())};a.getChatOptionBoxDiv=function(b){e||(c.addClickHandler(function(g){g.hasClass("xg_onlineOption")&&b()}),e=!0);return c.getDiv()};a.areOpenChatPanesAllowed=
function(){return!0};a.isPollingPresence=function(){return!0};a.onClickUserListBar=function(b){b.toggleExpanded()};d.initialize();return a});dojo.hostenv.findModule("xg.chat.states.OfflineState",!1)||(dojo.provide("xg.chat.states.OfflineState"),xg.chat.states.OfflineState=function(f,e){var a={},b={},d;b.initialize=function(){d=x$("\x3cdiv\x3e"+xg.chat.nls.html("youAreDisconnected",'href\x3d"#"')+"\x3c/div\x3e");d.click(b.onClickPopupDiv);d.find("a").click(b.onClickPopupDiv)};a.getName=function(){return"Offline"};b.onClickPopupDiv=function(c){c.preventDefault();c.stopPropagation();e();b.hide()};a.isOnline=function(){return!1};a.getUserListBarText=
function(){return xg.chat.nls.text("disconnected",f.userList.getUserCount())};a.getChatOptionBoxDiv=function(c){b.hide=c;return d[0]};a.areOpenChatPanesAllowed=function(){return!1};a.isPollingPresence=function(){return!0};a.onClickUserListBar=function(c){e()};b.initialize();return a});dojo.hostenv.findModule("xg.chat.states.SuspendedState",!1)||(dojo.provide("xg.chat.states.SuspendedState"),xg.chat.states.SuspendedState=function(c){return{getName:function(){return"Suspended"},isOnline:function(){return!1},getUserListBarText:function(){return xg.chat.nls.text("suspendedFromChat")},getChatOptionBoxDiv:function(b){var a=Math.ceil(Math.max(0,c.get("suspensionExpirationTime")-Date.now())/6E4),d=Math.ceil(a/60);a=60>a?xg.chat.nls.html("youWereSuspendedMinutes",a):xg.chat.nls.html("youWereSuspendedHours",
d);$popupDiv=x$("\x3cdiv\x3e"+a+"\x3c/div\x3e");$popupDiv.click(b);return $popupDiv[0]},areOpenChatPanesAllowed:function(){return!1},isPollingPresence:function(){return!1},onClickUserListBar:function(b){b.toggleChatOptionBox()}}});dojo.hostenv.findModule("xg.chat.states.RoomFullState",!1)||(dojo.provide("xg.chat.states.RoomFullState"),xg.chat.states.RoomFullState=function(e,f){var b={},c={},d;c.initialize=function(){d=x$("\x3cdiv\x3e"+xg.chat.nls.html("youAreDisconnected",'href\x3d"#"')+"\x3c/div\x3e");d.click(c.onClickPopupDiv);d.find("a").click(c.onClickPopupDiv)};b.getName=function(){return"Room Full"};c.onClickPopupDiv=function(a){a.preventDefault();a.stopPropagation();f();c.hide()};b.isOnline=function(){return!1};b.getUserListBarText=
function(){var a=e.userList.getUserCount();return a>=e.maxUserCount?xg.chat.nls.text("disconnectedFull",a):xg.chat.nls.text("disconnected",a)};b.getChatOptionBoxDiv=function(a){c.hide=a;return d[0]};b.areOpenChatPanesAllowed=function(){return!1};b.isPollingPresence=function(){return!0};b.onClickUserListBar=function(a){f()};c.initialize();return b});dojo.hostenv.findModule("xg.chat.layouts.FooterLayout",!1)||(dojo.provide("xg.chat.layouts.FooterLayout"),xg.chat.layouts.FooterLayout=function(f,g,p){var c={},h={POPOUT_WIDTH:700,POPOUT_HEIGHT:500,popOutChatWindow:null};c.initializeEarly=function(){};c.initializeLate=function(){h.fixPositionForIOS4()};h.fixPositionForIOS4=function(){if(navigator.userAgent.match(/iPhone OS 4_|CPU OS 4_/)){$chatContainer=x$(".xg_chat");var a=function(){if(!f.mainRoom.isSelected()){var b=!1;x$.each(f.privateRooms,function(e,
d){d&&d.isSelected()&&(b=!0)});b||$chatContainer.css("top",window.pageYOffset+window.innerHeight+"px")}};x$(document).bind("scroll",a);a()}};c.onLoginSuccess=function(){g.isUserListExpanded()&&f.userListView.expand()};c.saveRoomStates=function(){var a=f.mainRoom.isOpen();g.isMainRoomOpen()!=a&&g.setMainRoomOpen(a)};c.updateUserPreferences=function(a){xg.post("/chat/index/update",a)};c.getExpandedHeight=function(a,b,e,d){a=Math.min(x$(window).height()-g.PADDING,g.MAX_HEIGHT);var k=50;if(0<e.length){var m=
b.outerHeight(!0)-b.height()+2;e=b.scrollTop()+e.position().top+e.outerHeight(!0)-b.position().top;k=Math.max(e+m,k)}b=k+b.position().top;0<d.filter(":visible").length&&(b+=d.outerHeight(!0));return Math.min(a,b)};c.updateMessageList=function(a,b,e){var d=a.outerHeight(!0)-a.height(),k=a.position().top;0<x$(".xg_chatInput:visible",b).length&&(k+=x$(".textarea-container",b).outerHeight(!0));a.height(e-d-k)};c.setWindowHeight=function(a,b){a.height(b)};c.initializeRoomEarly=function(a){a.getContainer().show();
x$(".xg_titleBar",a.getContainer()).click(xg.preventDefault(function(){c.minimizeRoom(a)}));x$(".xg_window",a.getContainer()).click(xg.preventDefault(function(){h.openPopOutChat(a.isPrivate()?a.getUser().getId():null)},!0));a.bottomBar=x$(".xg_bottomBar",a.getContainer());a.bottomBarInfo=a.bottomBar.find(".xg_info");a.bottomBar.click(xg.preventDefault(function(){a.open();a.focus()}));x$(".xj_close",a.getContainer()).click(function(b){b.preventDefault();f.closePrivateRoom(a.getUser().getId(),!0)})};
h.openPopOutChat=function(a){if(!h.popOutChatWindow||h.popOutChatWindow.closed)g.setPrivateRoomsForPopoutChat(g.getPrivateRooms()),h.popOutChatWindow=window.open("/chat/index/popOutWindowV4"+(a?"?openRoom\x3d"+a:""),"xg_chat","height\x3d"+h.POPOUT_HEIGHT+",width\x3d"+h.POPOUT_WIDTH+",location\x3dno,toolbar\x3dno,directories\x3dno,status\x3dno,menubar\x3dno,scrollbars\x3dno,resizable\x3dyes");h.popOutChatWindow.focus()};c.beforeOpeningRoom=function(a){};c.afterOpeningRoom=function(a){a.bottomBar.hide()};
c.minimizeRoom=function(a){a.setOpen(!1);x$(".xg_chatWindow",a.getContainer()).hide();a.bottomBar.show();a.updateLabel();f.saveRoomStates()};c.afterAddingMessages=function(a,b){a.isOpen()||b||a.updateLabel()};c.getLabel=function(a){return a.bottomBarInfo||x$()};c.getMaxLabelWidth=function(){return 190};c.isAutoOpeningRooms=function(){return!0};c.initializeUserListView=function(a,b){x$(".xg_window",a).click(xg.preventDefault(h.openPopOutChat,!0))};c.updateUserListViewSizes=function(a,b,e,d){var k=
e.outerHeight()-e.height(),m=a.position().top;b=x$(".xg_bottomBar",b).outerHeight(!0);var n=120+m+b,q=x$(window).height()-g.PADDING;if(!d){d=0;var l=a.children().last();if(0<l.length){d=4*l.outerHeight(!0);var r=a.outerHeight(!0)-a.height();l=a.scrollTop()+l.position().top+l.outerHeight(!0)-a.position().top;d=Math.max(l+r,d)}d=Math.min(g.MAX_HEIGHT,d+m+b)}n=Math.max(n,Math.min(q,d));e.height(n);a.height(n+k-m-b)};c.updateConversationMarkers=function(a,b,e){a.find(".conversation-marker").hide();a.find("li").each(function(){var d=
x$(this);f.privateRooms[d.data("xj_screen_name")]&&d.find(".conversation-marker").show()})};c.getLocalStorageNameForPrivateRooms=function(){return g.LOCAL_STORAGE_NAME_FOR_PRIVATE_ROOMS_FOR_FOOTER_AND_MODULE_CHAT};c.isRoomSelected=function(a){return 0<x$(".xg_chatInput:focus",a.getContainer()).length};c.closePrivateRoomIfTooMany=function(){if(0!=f.mainRoom.getContainer().offset().left){var a=f.getPrivateRoomsSortedByActivity();if(!(1>=a.length)){for(var b=a[a.length-1],e=!1,d=0;d<a.length;d++){var k=
a[d];if(f.mainRoom.getContainer().offset().left<b.getContainer().offset().left)f.closePrivateRoom(k.getUser().getId(),!1),e=!0;else break}e&&f.saveRoomStates()}}};c.showSuspensionDialog=function(a,b){p.get("suspensionDialogShown")||(p.set("suspensionDialogShown",!0,!0,Math.ceil(b/1E3)),xg.shared.util.alert({title:xg.chat.nls.html("suspendedFromChat"),bodyHtml:a,wideDisplay:!0}))};c.signOutDetected=function(a){g.setState(a)};return c});dojo.hostenv.findModule("xg.chat.layouts.WindowLayout",!1)||(dojo.provide("xg.chat.layouts.WindowLayout"),xg.chat.layouts.WindowLayout=function(f,h,p,r){var d={},a={tabEntryTemplate:'\x3cli class\x3d"mainRoom"\x3e\x3ca href\x3d"#" class\x3d"privateMessageLink"\x3e\x3cimg class\x3d"_avatar" src\x3d"{image}"\x3e\x3c/span\x3e\x3cspan class\x3d"_username"\x3e{name}\x3c/span\x3e\x3c/a\x3e\x3c/li\x3e'};a.$tabList=x$();a.$userList=x$();a.currentRoom=null;a.dialogDisplayed=!1;a.suspendedDialogDisplayed=!1;
a.userListSorter=xg.chat.UserListSorter();d.initializeEarly=function(){a.mainRoomIconUrl=x$(".xg_chat").data("appIconUrl");a.maxPrivateRoomCount=x$(".xg_chat").data("maxPrivateRoomCount")};d.initializeLate=function(){xg.shared.EventRegistry.listen("xg.chat.models.UserList.usersUpdated",a.updateHeading);a.initializeDisconnectedDialog();a.initializeSuspendedDialogClosing();xg.shared.EventRegistry.listen("xg.chat.Controller.privateRoomRemoved",function(b){a.currentRoom&&a.currentRoom.getUser()&&a.currentRoom.getUser().getId()===
b&&f.mainRoom.open()})};a.initializeDisconnectedDialog=function(){var b=!1,c=!1;xg.shared.EventRegistry.listen("xg.chat.Model.stateChanged",function(){h.getState().isOnline()&&b?(x$("#disconnected-dialog, .xg_chat .xg_overlay").hide(),c=a.dialogDisplayed=b=!1):h.getState().isOnline()||a.dialogDisplayed||(x$("#disconnected-dialog, .xg_chat .xg_overlay").show(),a.dialogDisplayed=b=!0,c=!1)});x$("#disconnected-dialog input[type\x3dbutton]").click(function(){c||(f.toggleOnlineStatus(),c=!0)})};a.updateHeading=
function(){if(a.currentRoom){var b=x$(".xg_messageListHeading",a.currentRoom.getContainer());var c=b.parent()[0].id;if("mainRoomHeading"===b.prop("id")){c=xg.chat.nls.text("mainRoom");var e=a.mainRoomIconUrl}else c=c.replace("Room_",""),e=f.privateRooms[c].getUser(),c=r.ensureUnique(e.getName(),e.getId(),!0),e=e.getAvatarUrl();b.html(xg.qh(c));c=x$("\x3cimg /\x3e");c.addClass("_avatar");c.prop("src",e);b.append(c)}};d.onLoginSuccess=function(){};d.saveRoomStates=function(){};d.updateUserPreferences=
function(b){delete b.mainRoomExpanded;delete b.userListExpanded;xg.post("/chat/index/update",b)};d.getExpandedHeight=function(b,c,e,l){return b.getContainer().height()};d.updateMessageList=function(b,c,e){b.css("bottom",c.height()-x$(".xg_messageListFooter",c).position().top+"px")};d.setWindowHeight=function(b,c){};d.initializeRoomEarly=function(b){};d.beforeOpeningRoom=function(b){x$(".xg_chat .xg_chatRoom").hide();f.mainRoom.setOpen(!1);x$.each(f.privateRooms,function(c,e){e.setOpen(!1)})};d.afterOpeningRoom=
function(b){a.currentRoom=b;a.updateHeading();b.updateLabel();b.isMainRoom()?a.highlightTab(a.$tabList.find(":first-child")):a.$tabList.children().each(function(c,e){c=x$(e);c.data("xj_screen_name")===b.getUser().getId()&&a.highlightTab(c)})};d.minimizeRoom=function(b){};d.afterAddingMessages=function(b,c){c||(b.updateLabel(),b.isMainRoom())};d.getLabel=function(b){return b.tabLabel||x$()};d.getMaxLabelWidth=function(){return 120};d.isAutoOpeningRooms=function(){return!1};d.initializeUserListView=
function(b,c){var e=x$(xg.renderHtml(a.tabEntryTemplate,{image:xg.qh(a.mainRoomIconUrl),name:xg.chat.nls.text("mainRoom")}));a.$userList=x$(".chatUsers",b);a.$tabList=x$(".chatTabs",b);a.$tabList.append(e);f.mainRoom.tabLabel=e.find("._username");f.mainRoom.updateLabel();a.highlightTab(e);e.click(function(l){l.preventDefault();c();f.mainRoom.open();a.highlightTab(e)})};d.updateUserListViewSizes=function(b,c,e){};d.updateConversationMarkers=function(b,c,e){var l={};a.$tabList.find("li").each(function(){var k=
x$(this),g=k.data("xj_screen_name");g&&(f.privateRooms[g]?l[g]=k:k.remove())});x$.each(f.privateRooms,function(k,g){if(!l[k]){var n=e(g.getUser(),!1);x$(".delete",n).click(function(m){m.preventDefault();m.stopPropagation();f.closePrivateRoom(k,!0)});a.userListSorter.insert(n,a.$tabList,function(m,q){return m.hasClass("mainRoom")?-1:q.hasClass("mainRoom")?1:a.userListSorter.compareAlphabetically(m,q)});g.tabLabel=n.find("._username");g.updateLabel()}})};a.highlightTab=function(b){a.$tabList.children(".active").removeClass("active");
b.addClass("active")};d.getLocalStorageNameForPrivateRooms=function(){return h.isPopoutChat?h.LOCAL_STORAGE_NAME_FOR_PRIVATE_ROOMS_FOR_POPOUT_CHAT:h.LOCAL_STORAGE_NAME_FOR_PRIVATE_ROOMS_FOR_FOOTER_AND_MODULE_CHAT};d.isRoomSelected=function(b){return b===a.currentRoom};d.closePrivateRoomIfTooMany=function(){for(var b=f.getPrivateRoomsSortedByActivity(),c=b.length-a.maxPrivateRoomCount,e=0;e<c;e++)f.closePrivateRoom(b[e].getUser().getId(),!1);0<c&&f.saveRoomStates()};a.initializeSuspendedDialogClosing=
function(){xg.shared.EventRegistry.listen("xg.chat.Model.stateChanged",function(){!a.suspendedDialogDisplayed||p.get("suspensionExpirationTime")&&p.get("suspensionExpirationTime")>Date.now()||(x$("#suspended-dialog, .xg_chat .xg_overlay").hide(),a.dialogDisplayed=a.suspendedDialogDisplayed=!1)})};d.showSuspensionDialog=function(b,c){a.dialogDisplayed||(x$("#suspended-dialog p").html(b),x$("#suspended-dialog, .xg_chat .xg_overlay").show(),a.dialogDisplayed=a.suspendedDialogDisplayed=!0)};d.signOutDetected=
function(b){h.isPopoutChat?window.close():window.location.href="/main/authorization/signUp?target\x3d/chat"};return d});dojo.hostenv.findModule("xg.chat.FlashPost",!1)||(dojo.provide("xg.chat.FlashPost"),xg.chat.FlashPost=function(){var a={};var c=null;a.callbacks={};var k=0;a.initialize=function(e){c=e};a.isAvailable=function(){return c&&0<c.length&&"undefined"!=typeof c[0].post};a.sendData=function(e,f,g,h){if(a.isAvailable()){var b=k++;a.callbacks["success"+b]=function(d){delete a.callbacks["success"+b];delete a.callbacks["failure"+b];d=d.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"\x26").replace(/%25/g,
"%");g&&g(d)};a.callbacks["failure"+b]=function(d){delete a.callbacks["success"+b];delete a.callbacks["failure"+b];h&&h(d)};f=f||{};c[0].post(e,f,"xg.chat.FlashPost.callbacks.success"+b,"xg.chat.FlashPost.callbacks.failure"+b)}};return a}());dojo.hostenv.findModule("xg.shared.CookieStore",!1)||(dojo.provide("xg.shared.CookieStore"),xg.shared.CookieStore=function(){var c={},f={},d={},e={};f.initialize=function(){c.reloadSessionCookie();c.reloadPersistentCookie()};c.reloadSessionCookie=function(){var a=xg.shared.util.getCookie("xg_sc");if(a)try{d=x$.evalJSON(a)}catch(b){try{d=x$.evalJSON(decodeURIComponent(a.replace(/\+/g," ")))}catch(g){}}d instanceof Array&&(d={})};c.reloadPersistentCookie=function(){var a=xg.shared.util.getCookie("xg_pc");
if(a)try{e=x$.evalJSON(a)}catch(b){try{e=x$.evalJSON(decodeURIComponent(a.replace(/\+/g," ")))}catch(g){}}e instanceof Array&&(e={})};c.setSessionCookieValue=function(a,b){null===b||0===b.length?delete d[a]:d[a]=b;f.setCookieProper("xg_sc",x$.toJSON(d),0)};c.getSessionCookieValue=function(a){return d[a]};c.setPersistentCookieValue=function(a,b){null===b||0===b.length?delete e[a]:e[a]=b;f.setCookieProper("xg_pc",x$.toJSON(e),366)};c.getPersistentCookieValue=function(a){return e[a]};f.setCookieProper=
function(a,b,g){xg.shared.util.setCookie(a,b,g,"."+window.location.hostname)};xg.addOnRequire(function(){f.initialize()});return c}());dojo.hostenv.findModule("xg.chat.Controller",!1)||(dojo.provide("xg.chat.Controller"),xg.chat.Controller=function(){var d={},a={updateRoomsTimerId:-1,privateMessageHistory:[],publicMessageHistory:[]},h;a.roomStateSavingEnabled=!0;d.initialize=function(){if(!x$(".xg_widget_main_index_disabled").length){a.soundLock=xg.chat.SoundLock();a.nameUniquifier=xg.chat.NameUniquifier();a.localStorage=xg.chat.LocalStorage(ning.CurrentProfile?ning.CurrentProfile.id:"");var b=x$(".xg_chatOptions",h);a.setupVolumeControl("1"==
b.data("soundEnabledByDefault"));h=x$(".xg_chat");a.model=xg.chat.Model(a.localStorage,!!h.data("connected"),!!h.data("mainRoomExpanded"),!!h.data("userListExpanded"));a.model.clientId=x$.now()+"_"+Math.random();a.model.layout=x$(".chatFooter").length?xg.chat.layouts.FooterLayout(d,a.model,a.localStorage):xg.chat.layouts.WindowLayout(d,a.model,a.localStorage,a.nameUniquifier);a.model.layout.initializeEarly();a.model.isPopoutChat=0<x$(".chatPopout").length;var c=x$(".module_chat_v4");0<c.length&&a.addBordersIfNeeded(c);
a.flasher=a.model.isPopoutChat?null:new xg.chat.Flasher;a.model.user=xg.chat.models.User().initialize(ning.CurrentProfile?ning.CurrentProfile.id:"",h.data("userName"),h.data("avatarUrl"),h.data("isAdmin"));a.model.userList=xg.chat.models.UserList();a.model.defaultAvatarUrl=h.data("defaultAvatarUrl");a.model.setChatServerDomain(h.data("chatServer"));a.model.userList.setUserCount(h.data("userCount"));a.model.maxDisplayedMessageCountPerRoom=h.data("maxDisplayedMessageCountPerRoom");if(c=h.data("ignoredMembers")){c=
c.split(",");for(var e=0;e<c.length;e++)a.model.ignoredMembers[c[e]]=!0}a.localStorage.set("ignoreList",a.model.ignoredMembers,!1);a.loginService=xg.chat.LoginService(a.model);a.presenceService=xg.chat.PresenceService(d,a.nameUniquifier,a.loginService,a.model,a.localStorage);if(0!=h.length){a.initialSound=xg.chat.NotificationSound(h.data("initialSoundUri"),a.volumeLock);a.otherSound=xg.chat.NotificationSound(h.data("otherSoundUri"),a.volumeLock);xg.chat.FlashPost.initialize(x$("#chatFlashPost"));
a.chatOptionBox=xg.chat.ChatOptionBox(d.toggleOnlineStatus,a.localStorage,a.model);a.messageService=xg.chat.MessageService(d,a.model);d.mainRoom=xg.chat.Room(x$("#mainChatContainer",h),null,d,a.nameUniquifier,a.model,h.data("pageGenerationTime"),a.localStorage,null,a.messageService);d.mainRoom.initialize(a.model.getMainRoomHeight());d.userListView=xg.chat.UserListView(x$("#userListContainer",h),b,d,a.nameUniquifier,a.presenceService,a.model).initialize(a.model.getUserListHeight());d.privateRooms=
{};xg.shared.EventRegistry.listen("xg.chat.Model.stateChanged",function(f){f.areOpenChatPanesAllowed()||a.disable();f.isPollingPresence()&&a.presenceService.startUpdatingPresence();a.flasher&&a.flasher.stopFlashing()});if(b=h.data("blacklist"))b=Base64.decode(b).split(" "),c=h.data("checkBoundaries"),a.model.createLanguageFilter(b,c);a.model.appId=ning.CurrentApp.id;a.model.appName=40<ning.CurrentApp.name.length?ning.CurrentApp.name.substr(0,39)+"\u2026":ning.CurrentApp.name;a.CONNECTING_STATE=xg.chat.states.ConnectingState();
a.ONLINE_STATE=xg.chat.states.OnlineState(a.model,a.chatOptionBox);a.OFFLINE_STATE=xg.chat.states.OfflineState(a.model,d.toggleOnlineStatus);a.SUSPENDED_STATE=xg.chat.states.SuspendedState(a.localStorage);a.ROOM_FULL_STATE=xg.chat.states.RoomFullState(a.model,d.toggleOnlineStatus);if(a.localStorage.get("suspensionExpirationTime")&&a.localStorage.get("suspensionExpirationTime")>Date.now())b=a.localStorage.get("suspensionExpirationTime")-Date.now(),a.onDetectSuspension(b);else if(a.model.getCachedOnlineStatus())if(a.model.setState(a.CONNECTING_STATE),
b=a.getLoginDataIfFresh())a.onLoginSuccessAfterPageJustLoaded(b);else a.loginService.logIntoChat(a.onLoginSuccessAfterPageJustLoaded,a.onLoginFailure);else a.model.setState(a.OFFLINE_STATE);xg.shared.EventRegistry.listen("xg.chat.suspensionDetected",a.onDetectSuspension);a.keepUserInfoUpToDateInMessageHistory();x$(window).resize(a.model.layout.closePrivateRoomIfTooMany);a.model.layout.initializeLate();xg.shared.EventRegistry.listen("xg.chat.LocalStorage.updated",a.localStorageUpdated);setInterval(a.checkIfSignedOutOfNetwork,
1E4)}}};a.setupVolumeControl=function(b){var c=x$(".xg_volume",h);c.data("volume")&&c.data("volume")!=xg.shared.util.getCookie("volumeSetting")&&xg.shared.util.setCookie("volumeSetting",c.data("volume"));b=null===a.localStorage.get("chatSoundEnabled")?b:a.localStorage.get("chatSoundEnabled");a.volumeLock=xg.chat.VolumeLock(b?10:0);c.on("click",a.openVolumeSlider)};a.openVolumeSlider=function(){var b=x$(".xg_volumeSliderContainer",h);b.toggle();var c=x$(".xg_volumeSlider",h);if(c.children().length)c.slider("value",
a.volumeLock.getVolumeSetting());else{var e=c.slider({animate:!0,stop:function(){var f=e.slider("option","value");a.volumeLock.setVolumeSetting(f);b.hide();x$(".xg_volume",h).toggleClass("xg_muted",0==f);a.initialSound.play()},max:10,min:0,orientation:"vertical",range:"min",value:a.volumeLock.getVolumeSetting()});x$(document).click(function(f){b.hide()})}};a.checkIfSignedOutOfNetwork=function(){a.model.getState().isOnline()&&(xg.shared.CookieStore.reloadPersistentCookie(),0===xg.shared.CookieStore.getPersistentCookieValue("chat_logged_in")&&
a.model.layout.signOutDetected(a.OFFLINE_STATE))};a.keepUserInfoUpToDateInMessageHistory=function(){xg.shared.EventRegistry.listen("xg.chat.models.UserList.usersUpdated",function(){a.model.userList&&(d.updateUserInfoInMessageHistory(a.privateMessageHistory,a.model.userList)&&a.model.setPrivateMessageHistory(a.privateMessageHistory),d.updateUserInfoInMessageHistory(a.publicMessageHistory,a.model.userList)&&a.model.setPublicMessageHistory(a.publicMessageHistory))})};d.updateUserInfoInMessageHistory=
function(b,c){var e=!1;x$.each(b,function(f,g){!(f=c.getUser(g.sender.ningId))||g.sender.name===f.getName()&&g.sender.iconUrl===f.getAvatarUrl()||(g.sender.name=f.getName(),g.sender.iconUrl=f.getAvatarUrl(),e=!0)});return e};a.onDetectSuspension=function(b){a.localStorage.set("suspensionExpirationTime",Date.now()+b,!0);var c=Math.ceil(b/6E4),e=Math.ceil(c/60);c=60>c?xg.chat.nls.html("youWereSuspendedByAdminMinutes",c):xg.chat.nls.html("youWereSuspendedByAdminHours",e);a.model.layout.showSuspensionDialog(c,
b);a.model.setState(a.SUSPENDED_STATE);a.reconnectAfterSuspensionExpirationTime()};a.addBordersIfNeeded=function(b){0!==parseInt(b.css("border-top-width"),10)&&0!==parseInt(b.css("border-right-width"),10)&&0!==parseInt(b.css("border-bottom-width"),10)&&0!==parseInt(b.css("border-left-width"),10)||b.find(".xg_chat").addClass("bordered")};a.localStorageUpdated=function(){a.model.ignoredMembers=a.localStorage.get("ignoreList",!0);xg.shared.EventRegistry.fire("xg.chat.ignoresUpdated");var b=a.model.getState().isOnline(),
c=a.model.readOnlineStatusFromLocalStorage();b!=c&&d.toggleOnlineStatus();b=a.model.getPrivateMessageHistory();c=[];(new Date).getTime();for(var e={},f=b.length-1;0<=f;f--){var g=b[f];e[g.targetRoomId]=!0;a.isMessageNewerThanHistory(g.sender.ningId,g.timestamp,a.privateMessageHistory)&&c.unshift(g)}a.privateMessageHistory=a.privateMessageHistory.concat(c);d.addMessages(c,!0,!1);a.setPrivateRoomStates(a.model.getPrivateRooms(),null);x$.each(d.privateRooms,function(l,n){e[l]||n.clearMessages()})};a.getLoginDataIfFresh=
function(){var b=a.model.getLoginData();if(!b||!a.presenceService.isUserConsideredAlive())return null;var c=((new Date).getTime()-b.timestamp)/1E3;return b.sessionTTL-c<=a.loginService.SESSION_REFRESH_TIME_IN_ADVANCE||b.userName!=a.model.user.getName()||b.userThumbnailUrl!=a.model.user.getAvatarUrl()||b.userIsAdmin!=a.model.user.isAdmin()?null:b};d.showRoomFullDialog=function(){xg.shared.util.alert({title:xg.chat.nls.text("chatIsFullTitle"),bodyHtml:xg.chat.nls.html("chatIsFull",xg.qh(ning.CurrentApp.name))})};
a.onLoginSuccessAfterPageJustLoaded=function(b){a.onLoginSuccess(b,!0)};a.onLoginSuccess=function(b,c){a.model.setCachedOnlineStatus(!0);b.domain&&(a.model.chatServerDomain=b.domain);a.model.roomId=b.roomId;a.model.token=b.token;a.model.user=xg.chat.models.User().initialize(b.userId,b.userName,b.userThumbnailUrl,b.userIsAdmin);a.model.maxUserCount=b.maxUserCount;a.model.layout.onLoginSuccess();try{a.loadPublicMessagesFromLocalStorage(),a.privateMessageHistory=a.model.getPrivateMessageHistory()}catch(f){a.publicMessageHistory=
[],a.privateMessageHistory=[]}d.mainRoom.getContainer().show();var e=h.data("openRoom");a.setPrivateRoomStates(a.model.getPrivateRooms(),e);a.model.isMainRoomOpen()&&d.mainRoom.open();a.timestampRooms();a.model.userList.setUserCount(b.count);x$.browser.msie&&x$.browser.version.match(/^9\b/)?setTimeout(function(){a.messageService.startPolling(c)},500):a.messageService.startPolling(c);e=(new Date).getTime();b.timestamp||(b.timestamp=e);a.loginService.createRefreshTimer(b.sessionTTL-(e-b.timestamp)/
1E3);a.updateRoomsTimerId=setTimeout(d.saveRoomStates,12E4);a.model.setState(a.ONLINE_STATE);a.model.setLoginData(b)};a.setPrivateRoomStates=function(b,c){var e=x$.map(b,function(l){return l.user.ningId});a.roomStateSavingEnabled=!1;x$.each(d.privateRooms,function(l,n){-1===x$.inArray(l,e)&&d.closePrivateRoom(l,!1)});for(var f=0;f<b.length;f++){d.addPrivateRoom(xg.chat.models.User().initializeFromServerObject(b[f].user),!1,!1,b[f].selectedHeight);var g=d.privateRooms[b[f].user.ningId];b[f].expanded||
c===b[f].user.ningId?g.open():a.model.layout.minimizeRoom(g)}a.roomStateSavingEnabled=!0};a.loadPublicMessagesFromLocalStorage=function(){a.publicMessageHistory=a.model.getPublicMessageHistory();d.addMessages(a.publicMessageHistory,!0,!1)};a.timestampRooms=function(){for(var b=a.model.getPrivateRooms(),c=b.length;c;--c)d.privateRooms[b[c-1].user.ningId].insertTimestamp();d.mainRoom.insertTimestamp()};a.onLoginFailure=function(b){"roomFull"==b.result?(a.model.maxUserCount=b.maxUserCount,a.model.setState(a.ROOM_FULL_STATE),
xn.track.event("ChatEvent",{type:"ROOM_FULL"})):"banned"==b.result?xg.shared.EventRegistry.fire("xg.chat.suspensionDetected",b.remainingBanTime):a.model.setState(a.OFFLINE_STATE)};a.reconnectAfterSuspensionExpirationTime=function(){setTimeout(d.toggleOnlineStatus,Math.max(0,2E3+a.localStorage.get("suspensionExpirationTime")-Date.now()))};a.onLoginFailureWithLightbox=function(b){"roomFull"==b.result&&d.showRoomFullDialog();a.onLoginFailure(b)};d.toggleOnlineStatus=function(){if(a.model.getState().isOnline()){a.model.setState(a.OFFLINE_STATE);
a.model.setCachedOnlineStatus(!1);var b=Math.max(0,a.model.userList.getUserCount()-1);a.model.userList.setUserCount(b)}else a.model.setState(a.CONNECTING_STATE),a.loginService.logIntoChat(function(c){a.onLoginSuccess(c)},a.onLoginFailureWithLightbox)};a.disable=function(){d.mainRoom.clearMessages();d.mainRoom.getContainer().hide();for(var b in d.privateRooms)d.privateRooms.hasOwnProperty(b)&&d.closePrivateRoom(b,!1);a.model.userList.clearUsers();d.userListView.contract(!1);a.loginService.disconnect();
a.presenceService.disconnect();a.messageService.disconnect();a.model.userList.setHash(0);clearInterval(a.updateRoomsTimerId);a.updateRoomsTimerId=-1};d.sendMessage=function(b,c,e){null==e&&(e=null==c?a.messageService.MESSAGE_TYPE_PUBLIC_MESSAGE:a.messageService.MESSAGE_TYPE_PRIVATE_MESSAGE);a.messageService.publish(e,b,c,function(f){null!=c&&(d.addMessages([{sender:a.model.user,message:b,timestamp:f.date,targetRoomId:c}],!1,!1),a.localStorage.getUpdater().propagateChangesToOtherClients())})};d.sendDeleteMessage=
function(b,c){a.messageService.deleteMessage(b,c)};d.clearPublicMessageHistory=function(){d.mainRoom.clearMessages();a.publicMessageHistory=[];a.model.setPublicMessageHistory(a.publicMessageHistory)};d.removeOldMessagesFromHistory=function(b){for(var c=[],e=0;e<a.publicMessageHistory.length;e++){var f=a.publicMessageHistory[e];f.timestamp>b&&c.push(f)}c.length!=a.publicMessageHistory.length&&(a.publicMessageHistory=c,d.mainRoom.clearOldMessages(b),a.model.setPublicMessageHistory(a.publicMessageHistory))};
d.deleteMessage=function(b,c){d.mainRoom.deleteMessage(b,c);for(var e=0;e<a.publicMessageHistory.length;e++){var f=a.publicMessageHistory[e];if(f.sender.ningId==b&&f.timestamp==c){a.publicMessageHistory.splice(e,1);a.model.setPublicMessageHistory(a.publicMessageHistory);break}}};d.getPrivateRoomsSortedByActivity=function(){var b=[];x$.each(d.privateRooms,function(c,e){e&&b.push(e)});b.sort(function(c,e){return e.isSelected()?-1:c.isSelected()?1:c.isConnected()?e.isConnected()?!c.isOpen()&&e.isOpen()?
-1:c.isOpen()&&!e.isOpen()?1:c.getLastActivityTime()-e.getLastActivityTime():1:-1});return b};d.addPrivateRoom=function(b,c,e,f){var g=b.getId();if(g!=a.model.user.getId()){if(!d.privateRooms[g]){$newRoom=x$("#privateMessageTemplate",h).clone();$newRoom.attr("id","Room_"+g);$newRoom.data("user",b.getServerObject());h.append($newRoom);d.privateRooms[g]=xg.chat.Room($newRoom,b,d,a.nameUniquifier,a.model,h.data("pageGenerationTime"),a.localStorage,a.flasher,a.messageService);d.privateRooms[g].initialize(f);
b=[];for(f=0;f<a.privateMessageHistory.length;f++){var l=a.privateMessageHistory[f];l.targetRoomId==g&&b.push(l)}d.addMessages(b,!0,!1);d.saveRoomStates();xg.shared.EventRegistry.fire("xg.chat.Controller.privateRoomAdded")}c&&d.privateRooms[g].open();e&&d.privateRooms[g].focus();a.model.layout.closePrivateRoomIfTooMany();d.privateRooms[g].insertTimestamp()}};d.closePrivateRoom=function(b,c){d.privateRooms[b]&&(x$("#Room_"+b,h).remove(),delete d.privateRooms[b],c&&d.saveRoomStates(),xg.shared.EventRegistry.fire("xg.chat.Controller.privateRoomRemoved",
b))};d.saveRoomStates=function(){if(a.roomStateSavingEnabled&&!(0>a.updateRoomsTimerId)){clearTimeout(a.updateRoomsTimerId);a.model.layout.saveRoomStates();for(var b=[],c=x$(".xg_privateChat",h),e=0;e<c.length;e++){var f=x$(c[e]).data("user");if(null!=f){var g=d.privateRooms[f.ningId];b.push({user:f,selectedHeight:g.getSelectedHeight(),expanded:g.isOpen()})}}a.model.setPrivateRooms(b);a.updateRoomsTimerId=setTimeout(d.saveRoomStates,12E4)}};d.addMessages=function(b,c,e){var f=[],g=function(m,k,r,
p){-1===x$.inArray(m,f)&&(m.beforeAddingMessages(),f.push(m));m.addMessage(k,r,p,c)},l=!1,n=!1,v=!1,w=!1;x$.each(b,function(m,k){m=xg.chat.models.User().getNormalizedUserObject(k.sender);var r=a.model.isUserIgnored(m.getId())&&!m.isAdmin(),p=k.message,q=k.timestamp,t=(k=k.targetRoomId)?a.privateMessageHistory:a.publicMessageHistory,x=k?1E3:500;r||c||!k||d.privateRooms[k]||(d.addPrivateRoom(m,a.model.layout.isAutoOpeningRooms()),l=!0);var u=k?d.privateRooms[k]:d.mainRoom;if(k||!((new Date).getTime()-
q>a.model.NETWORK_CHAT_MAX_MESSAGE_AGE))if(c)u&&g(u,m,p,q);else if(a.isMessageNewerThanHistory(m.getId(),q,t)&&!r){g(u,m,p,q);for(t.push({sender:m.getServerObject(),message:p,timestamp:q,targetRoomId:k});t.length>x;)t.shift();k?v=!0:w=!0;m.getId()==a.model.user.getId()||e||(n=!0)}});x$.each(f,function(m,k){k.afterAddingMessages(c)});v&&a.model.setPrivateMessageHistory(a.privateMessageHistory);w&&a.model.setPublicMessageHistory(a.publicMessageHistory);a.soundLock.isSoundEnabled()&&(l?a.initialSound.play():
n&&a.otherSound.play())};d.clearPrivateRoomHistory=function(b){d.privateRooms[b].clearMessages();for(var c=[],e=0;e<a.privateMessageHistory.length;e++){var f=a.privateMessageHistory[e];f.targetRoomId!==b&&c.push(f)}a.privateMessageHistory=c;a.model.setPrivateMessageHistory(c,!0)};a.isMessageNewerThanHistory=function(b,c,e){for(var f=e.length-1;0<=f;f--){var g=e[f];if(g.timestamp!=c)return g.timestamp<c;if(g.sender.ningId==b)return!1}return!0};d.navigateToProfile=function(b){a.model.isPopoutChat?window.open("/xn/detail/u_"+
b,"_blank","resizable\x3dyes,height\x3d500,width\x3d700"):window.open("/xn/detail/u_"+b,"_blank")};d.showBanDialog=function(b,c){var e="\x3cselect\x3e"+x$.map({fifteenMinutes:900,oneHour:3600,twoHours:7200,fourHours:14400,twentyFourHours:86400},function(l,n){return'\x3coption value\x3d"'+l+'"\x3e'+xg.chat.nls.html(n)+"\x3c/option\x3e"})+"\x3c/select\x3e",f="\x3cp\x3e"+xg.chat.nls.html("chooseLengthOfSuspension")+"\x3c/p\x3e";f+="\x3cp\x3e"+xg.chat.nls.html("suspensionLength")+" "+e+"\x3c/p\x3e";var g=
xg.shared.util.confirm({title:xg.chat.nls.text("suspendFromChat"),bodyHtml:f,okButtonText:xg.chat.nls.text("suspend"),wideDisplay:!0,onOk:function(){var l=parseInt(x$("select",g).val(),10);a.presenceService.ban(b,l,function(n){a.presenceService.startUpdatingPresence()});xn.track.event("ChatEvent",{type:"USER_SUSPENDED"});c&&c()}})};d.ignoreUser=function(b){a.presenceService.ignore(b,a.showIgnoreLimitDialog);a.model.ignoredMembers[b]=!0;xg.shared.EventRegistry.fire("xg.chat.ignoresUpdated",{id:b});
a.localStorage.set("ignoreList",a.model.ignoredMembers,!0)};d.stopIgnoringUser=function(b){a.presenceService.stopIgnoring(b);delete a.model.ignoredMembers[b];xg.shared.EventRegistry.fire("xg.chat.ignoresUpdated",{id:b});a.localStorage.set("ignoreList",a.model.ignoredMembers,!0)};a.showIgnoreLimitDialog=function(b){b.limit&&(b=xg.chat.nls.html("youAreCurrentlyIgnoringMaxMembers",b.limit),xg.shared.util.alert({title:xg.chat.nls.html("ignoreLimitReached"),bodyHtml:b,wideDisplay:!0}))};return d});