diff --git a/client/js/im.min.js b/client/js/im.min.js index ceff6f4..6c9e28a 100644 --- a/client/js/im.min.js +++ b/client/js/im.min.js @@ -1 +1 @@ -AjaxIM=function(b,d){if(this instanceof AjaxIM){var a=this;var c={pollServer:"",theme:"themes/default"};this.settings=$.extend(c,b);this.actions=$.extend({listen:this.settings.pollServer+"/app/listen",send:this.settings.pollServer+"/app/message",status:this.settings.pollServer+"/app/status",signoff:this.settings.pollServer+"/app/signoff"},d);this.themeLoaded=false;if(this.settings.theme){$("
").appendTo("body").load(this.settings.theme+"/theme.html #imjs-bar, .imjs-tooltip",function(){a.themeLoaded=true;a.setup()});if(typeof document.createStyleSheet=="function"){document.createStyleSheet(this.settings.theme+"/theme.css")}else{$("body").append('')}}else{this.themeLoaded=true;this.setup()}$(document).on("click",".imjs-chatbox",function(f){f.preventDefault();return false});$(document).on("click",".imjs-chatbox .imjs-minimize",function(){$(this).parents(".imjs-selected").click()});$(document).on("keydown",".imjs-chatbox .imjs-input",function(e){var f=$(this);if(e.keyCode==13){a.send(f.parents(".imjs-chatbox").data("username"),f.val())}}).on("keyup",".imjs-chatbox .imjs-input",function(e){if(e.keyCode==13){if(false){var f=$(this);a.send(f.parents(".imjs-chatbox").data("username"),f.val())}var f=$(this);f.val("");f.height(f.data("height"))}}).on("keypress",".imjs-chatbox .imjs-input",function(g){var f=$(this);f.height(0);if(true){f.height(0)}if(this.scrollHeight>f.height()||this.scrollHeight *").addClass("imjs-msg-old");var c=a.parents(".imjs-tab");if(c.css("display")=="none"){c.css("display","").removeClass("imjs-selected").insertAfter("#imjs-scroll-left").data("state","minimized")}if(!d){this._store(h,this._addDateStamp(a))}if(!$("#imjs-bar .imjs-selected").length){c.click()}else{this.notification(c)}setTimeout(function(){b._scrollers()},0)}}return a},_addDateStamp:function(a,f){var e=$(a).find(".imjs-msglog");if(!f){f=(new Date()).getTime()}var c=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msglog .imjs-date").clone();var b=c.find(".imjs-msg-time");if(b.length){b.html(dateFormat(f,b.html()))}var g=c.find(".imjs-date-date");var d=dateFormat(f,g.html());if(a.data("lastDateStamp")!=d){if(g.length){g.html(dateFormat(f,g.html()))}a.data("lastDateStamp",d);c.appendTo(e);return{replace_last:false,html:jQuery("
").append(c.clone()).html()}}else{return{replace_last:false,html:""}}},_addError:function(a,d,f){var e=$(a).find(".imjs-msglog");var b=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msglog .imjs-error").clone();var c=b.find(".imjs-msg-time");if(c.length){if(!f){f=(new Date()).getTime()}c.html(dateFormat(f,c.html()))}b.find(".imjs-error-error").html(d);b.appendTo(e);e[0].scrollTop=e[0].scrollHeight;return{replace_last:false,html:jQuery("
").append(b.clone()).html()}},_addMessage:function(j,d,c,k,b){var e=d.find(".imjs-msglog > *:last-child");if(e.hasClass("imjs-msg-"+j)){var h=(e.hasClass("imjs-msg-"+j+"-container")?e:e.find(".imjs-msg-"+j+"-container"));var g=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msglog .imjs-msg-"+j+"-msg").clone().appendTo(h);g.html(g.html().replace("{username}",c))}else{if(!e.length||!e.hasClass("imjs-msg-"+j)){var a=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msg-"+j).clone().appendTo(d.find(".imjs-msglog"));a.html(a.html().replace("{username}",c));var g=a.find(".imjs-msg-"+j+"-msg")}}k=k.toString().replace(//g,">").replace(/(^|.*)\*([^*]+)\*(.*|$)/,"$1$2$3");k=k.replace(new RegExp("([A-Za-z][A-Za-z0-9+.-]{1,120}:[A-Za-z0-9/](([A-Za-z0-9$_.+!*,;/?:@&~=-])|%[A-Fa-f0-9]{2}){1,333}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*,;/?:@&~=%-]{0,1000}))?)","g"),'$1');g.html(g.html().replace("{message}",k));var f=g.find(".imjs-msg-time");if(!b){b=new Date()}if(typeof b!="string"){b=dateFormat(b,f.html())}f.html(b);var i=d.find(".imjs-msglog");i[0].scrollTop=i[0].scrollHeight;return{replace_last:!!h,html:jQuery("
").append(h?e.clone():a.clone()).html()}},_store:function(b,a){if(!a.html.length){return}if(!this.chatstore){this.chatstore={}}if(!(b in this.chatstore)){this.chatstore[b]=[]}else{if(this.chatstore[b].length>300){this.chatstore[b].shift()}}if(a.replace_last){this.chatstore[b].pop()}this.chatstore[b].push(a.html);store.set(this.username+"-chats",this.chatstore)},_friendUpdate:function(f,g,h){if(this.chats[f]){var c=this.chats[f].parents(".imjs-tab");var e="imjs-tab";if(c.data("state")=="active"){e+=" imjs-selected"}e+=" imjs-"+g;c.attr("class",e);var d=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msglog .imjs-date").clone();var b=d.find(".imjs-msg-time");if(b.length){b.html(dateFormat(b.html()))}var a=d.find(".imjs-date-date").html(AjaxIM.l10n["chat"+g.toUpperCase()+g.slice(1)].replace(/%s/g,f));var j=this.chats[f].find(".imjs-msglog");d.appendTo(j);j[0].scrollTop=j[0].scrollHeight}if(this.friends[f]){var i="imjs-friend-"+md5.hex(f+this.friends[f].group);$("#"+i).attr("class","imjs-friend imjs-"+g);$("#"+i).find(".imjs-friend-status").html(h).attr("status",h);if(g=="offline"){$("#"+i+":visible").slideUp();$("#"+i+":hidden").hide()}else{if(!$("#"+i+":visible").length){$("#"+i).slideDown()}}this.friends[f].status=[g,h];this._updateFriendCount()}},_notConnected:function(){$("#imjs-friends").addClass("imjs-not-connected").unbind("click",this.activateTab);if($("#imjs-friends").hasClass("imjs-selected")){this.activateTab($("#imjs-friends"))}},_showReconnect:function(){$("#imjs-reconnect").show()},send:function(c,a){if(!a){return}var b=this;if(this.chats[c]){this._store(c,this._addDateStamp(this.chats[c]));this._store(c,this._addMessage("a",this.chats[c],this.username,a))}$(this).trigger("sendingMessage",[c,a]);AjaxIM.post(this.actions.send,{to:c,body:a},function(d){if(d.type=="success"&&d.success=="sent"){$(b).trigger("sendMessageSuccessful",[c,a])}else{if(d.type=="error"){if(d.error=="not online"){$(b).trigger("sendMessageFailed",["offline",c,a])}else{$(b).trigger("sendMessageFailed",[d.error,c,a])}}}},function(d){b._notConnected();var d=b._addError(b.chats[c],"You are currently not connected or the server is not available. Please ensure that you are signed in and try again.");b._store(d);$(b).trigger("sendMessageFailed",["not connected",c,a])})},status:function(c,b){var a=this;if(!~this.statuses.indexOf(c)){return}$(this.statuses).each(function(){$("#imjs-friends").removeClass("imjs-"+this)});$("#imjs-friends").addClass("imjs-"+c);$(this).trigger("changingStatus",[c,b]);if(c=="offline"){a._notConnected();a._showReconnect();store.set(this.username+"-offline",true);a.offline=true;$(".imjs-input").attr("disabled",true);AjaxIM.post(this.actions.signoff,{},function(d){if(d.type=="success"){$(a).trigger("changeStatusSuccessful",[c,null])}},function(d){$(a).trigger("changeStatusFailed",["not connected",c,null])})}else{AjaxIM.post(this.actions.status,{status:c,message:b},function(d){switch(d.type){case"success":$(a).trigger("changeStatusSuccessful",[c,b]);a.current_status=[c,b];store.set(a.username+"-status",a.current_status);break;case"error":default:$(a).trigger("changeStatusFailed",[d.e,c,b]);break}},function(d){$(a).trigger("changeStatusFailed",["not connected",c,b])})}},statuses:["offline","available","away"],initTabBar:function(){var a=this;$(document).on("click",".imjs-tab",function(){return a.activateTab.call(a,$(this))});$(document).on("click",".imjs-tab .imjs-close",function(){return a.closeTab.call(a,$(this))});$(document).click(function(b){if(~["imjs-friends"].indexOf(b.target.id)||$(b.target).parents("#imjs-friends").length){return}if($("#imjs-friends").data("state")=="active"){a.activateTab.call(a,$("#imjs-friends"))}else{if($("#imjs-status").data("state")=="active"){a.activateTab.call(a,$("#imjs-status"))}}});$("#imjs-friends").data("state","minimized").click(function(b){if(!$(this).hasClass("imjs-not-connected")&&b.target.id!="imjs-friends-panel"&&!$(b.target).parents("#imjs-friends-panel").length){a.activateTab.call(a,$(this))}}).mouseenter(function(){if($(this).hasClass("imjs-not-connected")){$(".imjs-tooltip").css("display","block").find("p").html(AjaxIM.l10n.notConnectedTip);var c=$(this).offset().left-$(".imjs-tooltip").outerWidth()+($(this).outerWidth()/2);var b=$(this).offset().top-$(".imjs-tooltip").outerHeight(true);$(".imjs-tooltip").css({left:c,top:b})}}).mouseleave(function(){if($(this).hasClass("imjs-not-connected")){$(".imjs-tooltip").css("display","")}});$("#imjs-friends-panel").css("display","none")},activateTab:function(d){var a=d.find(".imjs-chatbox")||false,b;if(d.data("state")!="active"){if(d.attr("id")!="imjs-friends"){$("#imjs-bar > li").not(d).not("#imjs-friends, .imjs-scroll, .imjs-default").add(d.attr("id")=="imjs-status"?"#imjs-friends":"").removeClass("imjs-selected").each(function(){var g=$(this);if(g.data("state")!="closed"){g.data("state","minimized");var e=g.find(".imjs-chatbox");if(e.length){e.css("display","none")}}})}else{$("#imjs-status").removeClass("imjs-selected").data("state","minimized").find(".imjs-chatbox").css("display","none")}if(a&&a.css("display")=="none"){a.css("display","")}d.addClass("imjs-selected").data("state","active");d.find(".imjs-notification").css("display","none").data("count",0);if(a&&(username=a.data("username"))){store.set(this.username+"-activeTab",username)}$(this).trigger("tabToggled",["activated",d])}else{d.removeClass("imjs-selected").data("state","minimized");if(a&&a.css("display")!="none"){a.css("display","none")}store.set(this.username+"-activeTab","");$(this).trigger("tabToggled",["minimized",d])}if(a){if((b=a.find(".imjs-input")).length&&!b.data("height")){b.height(0);if(b[0].scrollHeight>b.height()||b[0].scrollHeight=$("#imjs-bar").height()||d.left<0||d.right>$(document).width()){$(".imjs-scroll").css("display","");c.css("display","none");a=true}});if(!a){$(".imjs-scroll").css("display","none")}if($("#imjs-scroll-left").css("display")!="none"&&$("#imjs-scroll-right").position().top>=$("#imjs-bar").height()){$("#imjs-bar li.imjs-tab:visible").slice(-1).css("display","none")}if($("#imjs-bar li.imjs-tab:visible").length){while($(".imjs-selected").css("display")=="none"){$("#imjs-scroll-right").click()}}this._scrollerIndex()},_scrollerIndex:function(){var a=$("#imjs-bar li.imjs-tab:visible").slice(-1).nextAll("#imjs-bar li.imjs-tab:hidden").not(".imjs-default").filter(function(){return $(this).data("state")!="closed"}).length;var b=$("#imjs-bar li.imjs-tab:visible").eq(0).prevAll("#imjs-bar li.imjs-tab:hidden").not(".imjs-default").filter(function(){return $(this).data("state")!="closed"}).length;$("#imjs-scroll-left").html(b);$("#imjs-scroll-right").html(a)}});AjaxIM.client=null;AjaxIM.init=function(a,b){if(!AjaxIM.client){AjaxIM.client=new AjaxIM(a,b)}return AjaxIM.client};AjaxIM.post=function(b,d,c,a){AjaxIM.request(b,"POST",d,c,a)};AjaxIM.get=function(b,d,c,a){AjaxIM.request(b,"GET",d,c,a)};AjaxIM.request=function(b,c,e,d,a){var f=["timeout","error","notmodified","parseerror"];if(typeof a!="function"){a=function(){}}var g=(b.substring(0,1)!=="/");e.sessionid=cookies.get("sessionid");$.ajax({url:b,data:e,dataType:g?"jsonp":"json",type:c,cache:false,timeout:299000}).done(function(h){_dbg(JSON.stringify(h));d(h)}).fail(function(h,i){_dbg(i);a(i)})};AjaxIM.incoming=function(a){if(!AjaxIM.client){return false}if(a.length){AjaxIM.client._parseMessages(a)}};AjaxIM._=function(a){if(a in AjaxIM.l10n){return AjaxIM.l10n[a]}return a};AjaxIM.l10n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],chatOffline:"%s signed off.",chatAvailable:"%s became available.",chatAway:"%s went away.",notConnected:"You are currently not connected or the server is not available. Please ensure that you are signed in and try again.",notConnectedTip:"You are currently not connected.",defaultAway:"I'm away."};AjaxIM.debug=true;function _dbg(a){if(AjaxIM.debug&&window.console){console.log(a)}}function uid(e){var a="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",d="";for(var b=0;b')}$("
").appendTo("body").load(this.settings.theme+"/theme.html #imjs-bar, .imjs-tooltip",function(){a.themeLoaded=true;a.setup()})}else{this.themeLoaded=true;this.setup()}$(document).on("click",".imjs-chatbox",function(f){f.preventDefault();return false});$(document).on("click",".imjs-chatbox .imjs-minimize",function(){$(this).parents(".imjs-selected").click()});$(document).on("keydown",".imjs-chatbox .imjs-input",function(e){var f=$(this);if(e.keyCode==13){a.send(f.parents(".imjs-chatbox").data("username"),f.val())}}).on("keyup",".imjs-chatbox .imjs-input",function(e){if(e.keyCode==13){if(false){var f=$(this);a.send(f.parents(".imjs-chatbox").data("username"),f.val())}var f=$(this);f.val("");f.height(f.data("height"))}}).on("keypress",".imjs-chatbox .imjs-input",function(g){var f=$(this);f.height(0);if(true){f.height(0)}if(this.scrollHeight>f.height()||this.scrollHeight *").addClass("imjs-msg-old");var c=a.parents(".imjs-tab");if(c.css("display")=="none"){c.css("display","").removeClass("imjs-selected").insertAfter("#imjs-scroll-left").data("state","minimized")}if(!d){this._store(h,this._addDateStamp(a))}if(!$("#imjs-bar .imjs-selected").length){c.click()}else{this.notification(c)}setTimeout(function(){b._scrollers()},0)}}return a},_addDateStamp:function(a,f){var e=$(a).find(".imjs-msglog");if(!f){f=(new Date()).getTime()}var c=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msglog .imjs-date").clone();var b=c.find(".imjs-msg-time");if(b.length){b.html(dateFormat(f,b.html()))}var g=c.find(".imjs-date-date");var d=dateFormat(f,g.html());if(a.data("lastDateStamp")!=d){if(g.length){g.html(dateFormat(f,g.html()))}a.data("lastDateStamp",d);c.appendTo(e);return{replace_last:false,html:jQuery("
").append(c.clone()).html()}}else{return{replace_last:false,html:""}}},_addError:function(a,d,f){var e=$(a).find(".imjs-msglog");var b=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msglog .imjs-error").clone();var c=b.find(".imjs-msg-time");if(c.length){if(!f){f=(new Date()).getTime()}c.html(dateFormat(f,c.html()))}b.find(".imjs-error-error").html(d);b.appendTo(e);e[0].scrollTop=e[0].scrollHeight;return{replace_last:false,html:jQuery("
").append(b.clone()).html()}},_addMessage:function(j,d,c,k,b){var e=d.find(".imjs-msglog > *:last-child");if(e.hasClass("imjs-msg-"+j)){var h=(e.hasClass("imjs-msg-"+j+"-container")?e:e.find(".imjs-msg-"+j+"-container"));var g=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msglog .imjs-msg-"+j+"-msg").clone().appendTo(h);g.html(g.html().replace("{username}",c))}else{if(!e.length||!e.hasClass("imjs-msg-"+j)){var a=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msg-"+j).clone().appendTo(d.find(".imjs-msglog"));a.html(a.html().replace("{username}",c));var g=a.find(".imjs-msg-"+j+"-msg")}}k=k.toString().replace(//g,">").replace(/(^|.*)\*([^*]+)\*(.*|$)/,"$1$2$3");k=k.replace(new RegExp("([A-Za-z][A-Za-z0-9+.-]{1,120}:[A-Za-z0-9/](([A-Za-z0-9$_.+!*,;/?:@&~=-])|%[A-Fa-f0-9]{2}){1,333}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*,;/?:@&~=%-]{0,1000}))?)","g"),'$1');g.html(g.html().replace("{message}",k));var f=g.find(".imjs-msg-time");if(!b){b=new Date()}if(typeof b!="string"){b=dateFormat(b,f.html())}f.html(b);var i=d.find(".imjs-msglog");i[0].scrollTop=i[0].scrollHeight;return{replace_last:!!h,html:jQuery("
").append(h?e.clone():a.clone()).html()}},_store:function(b,a){if(!a.html.length){return}if(!this.chatstore){this.chatstore={}}if(!(b in this.chatstore)){this.chatstore[b]=[]}else{if(this.chatstore[b].length>300){this.chatstore[b].shift()}}if(a.replace_last){this.chatstore[b].pop()}this.chatstore[b].push(a.html);store.set(this.username+"-chats",this.chatstore)},_friendUpdate:function(f,g,h){if(this.chats[f]){var c=this.chats[f].parents(".imjs-tab");var e="imjs-tab";if(c.data("state")=="active"){e+=" imjs-selected"}e+=" imjs-"+g;c.attr("class",e);var d=$(".imjs-tab.imjs-default .imjs-chatbox .imjs-msglog .imjs-date").clone();var b=d.find(".imjs-msg-time");if(b.length){b.html(dateFormat(b.html()))}var a=d.find(".imjs-date-date").html(AjaxIM.l10n["chat"+g.toUpperCase().slice(0,1)+g.slice(1)].replace(/%s/g,f));var j=this.chats[f].find(".imjs-msglog");d.appendTo(j);j[0].scrollTop=j[0].scrollHeight}if(!this.friends[f]){this.addFriend(f,[g,h],"Friends")}if(this.friends[f]){var i="imjs-friend-"+md5.hex(f+this.friends[f].group);$("#"+i).attr("class","imjs-friend imjs-"+g);$("#"+i).find(".imjs-friend-status").html(h).attr("status",h);if(g=="offline"){$("#"+i+":visible").slideUp();$("#"+i+":hidden").hide()}else{if(!$("#"+i+":visible").length){$("#"+i).slideDown()}}this.friends[f].status=[g,h];this._updateFriendCount()}},_notConnected:function(){$("#imjs-friends").addClass("imjs-not-connected").unbind("click",this.activateTab);if($("#imjs-friends").hasClass("imjs-selected")){this.activateTab($("#imjs-friends"))}},_showReconnect:function(){$("#imjs-reconnect").show()},send:function(d,a){if(!a){return}var b=this;if(this.chats[d]){this._store(d,this._addDateStamp(this.chats[d]));this._store(d,this._addMessage("a",this.chats[d],this.username,a))}$(this).trigger("sendingMessage",[d,a]);var c={type:"message",from:this.username,to:d,body:a};this.sendEvent(c,function(e){if(e._status.sent){$(b).trigger("sendMessageSuccessful",[d,a])}else{if(e.type=="error"){if(e.error=="not online"){$(b).trigger("sendMessageFailed",["offline",d,a])}else{$(b).trigger("sendMessageFailed",[e.error,d,a])}}}},function(e){b._notConnected();var e=b._addError(b.chats[d],"You are currently not connected or the server is not available. Please ensure that you are signed in and try again.");b._store(e);$(b).trigger("sendMessageFailed",["not connected",d,a])})},status:function(d,c){var a=this;if(!~this.statuses.indexOf(d)){return}$(this.statuses).each(function(){$("#imjs-friends").removeClass("imjs-"+this)});$("#imjs-friends").addClass("imjs-"+d);$(this).trigger("changingStatus",[d,c]);if(d=="offline"){a._notConnected();a._showReconnect();store.set(this.username+"-offline",true);a.offline=true;$(".imjs-input").attr("disabled",true);AjaxIM.post(this.actions.signoff,{},function(e){if(e.type=="success"){$(a).trigger("changeStatusSuccessful",[d,null])}},function(e){$(a).trigger("changeStatusFailed",["not connected",d,null])})}else{var b={type:"status",status:d,message:c};this.sendEvent(b,function(e){if(e._status.send){$(a).trigger("sendMessageSuccessful",[username,body])}else{if(e.type=="error"){if(e.error=="not online"){$(a).trigger("sendMessageFailed",["offline",username,body])}else{$(a).trigger("sendMessageFailed",[e.error,username,body])}}}},function(e){a._notConnected();var e=a._addError(a.chats[username],"You are currently not connected or the server is not available. Please ensure that you are signed in and try again.");a._store(e);$(a).trigger("sendMessageFailed",["not connected",username,body])})}},statuses:["offline","available","away"],initTabBar:function(){var a=this;$(document).on("click",".imjs-tab",function(){return a.activateTab.call(a,$(this))});$(document).on("click",".imjs-tab .imjs-close",function(){return a.closeTab.call(a,$(this))});$(document).click(function(b){if(~["imjs-friends"].indexOf(b.target.id)||$(b.target).parents("#imjs-friends").length){return}if($("#imjs-friends").data("state")=="active"){a.activateTab.call(a,$("#imjs-friends"))}else{if($("#imjs-status").data("state")=="active"){a.activateTab.call(a,$("#imjs-status"))}}});$("#imjs-friends").data("state","minimized").click(function(b){if(!$(this).hasClass("imjs-not-connected")&&b.target.id!="imjs-friends-panel"&&!$(b.target).parents("#imjs-friends-panel").length){a.activateTab.call(a,$(this))}}).mouseenter(function(){if($(this).hasClass("imjs-not-connected")){$(".imjs-tooltip").css("display","block").find("p").html(AjaxIM.l10n.notConnectedTip);var c=$(this).offset().left-$(".imjs-tooltip").outerWidth()+($(this).outerWidth()/2);var b=$(this).offset().top-$(".imjs-tooltip").outerHeight(true);$(".imjs-tooltip").css({left:c,top:b})}}).mouseleave(function(){if($(this).hasClass("imjs-not-connected")){$(".imjs-tooltip").css("display","")}});$("#imjs-friends-panel").css("display","none")},activateTab:function(d){var a=d.find(".imjs-chatbox")||false,b;if(d.data("state")!="active"){if(d.attr("id")!="imjs-friends"){$("#imjs-bar > li").not(d).not("#imjs-friends, .imjs-scroll, .imjs-default").add(d.attr("id")=="imjs-status"?"#imjs-friends":"").removeClass("imjs-selected").each(function(){var g=$(this);if(g.data("state")!="closed"){g.data("state","minimized");var e=g.find(".imjs-chatbox");if(e.length){e.css("display","none")}}})}else{$("#imjs-status").removeClass("imjs-selected").data("state","minimized").find(".imjs-chatbox").css("display","none")}if(a&&a.css("display")=="none"){a.css("display","")}d.addClass("imjs-selected").data("state","active");d.find(".imjs-notification").css("display","none").data("count",0);if(a&&(username=a.data("username"))){store.set(this.username+"-activeTab",username)}$(this).trigger("tabToggled",["activated",d])}else{d.removeClass("imjs-selected").data("state","minimized");if(a&&a.css("display")!="none"){a.css("display","none")}store.set(this.username+"-activeTab","");$(this).trigger("tabToggled",["minimized",d])}if(a){if((b=a.find(".imjs-input")).length&&!b.data("height")){b.height(0);if(b[0].scrollHeight>b.height()||b[0].scrollHeight=$("#imjs-bar").height()||d.left<0||d.right>$(document).width()){$(".imjs-scroll").css("display","");c.css("display","none");a=true}});if(!a){$(".imjs-scroll").css("display","none")}if($("#imjs-scroll-left").css("display")!="none"&&$("#imjs-scroll-right").position().top>=$("#imjs-bar").height()){$("#imjs-bar li.imjs-tab:visible").slice(-1).css("display","none")}if($("#imjs-bar li.imjs-tab:visible").length){while($(".imjs-selected").css("display")=="none"){$("#imjs-scroll-right").click()}}this._scrollerIndex()},_scrollerIndex:function(){var a=$("#imjs-bar li.imjs-tab:visible").slice(-1).nextAll("#imjs-bar li.imjs-tab:hidden").not(".imjs-default").filter(function(){return $(this).data("state")!="closed"}).length;var b=$("#imjs-bar li.imjs-tab:visible").eq(0).prevAll("#imjs-bar li.imjs-tab:hidden").not(".imjs-default").filter(function(){return $(this).data("state")!="closed"}).length;$("#imjs-scroll-left").html(b);$("#imjs-scroll-right").html(a)},unconfirmedEvents:{},eventId:1,createEvent:function(){var a={};a.id=this.eventId++;this.unconfirmedEvents[a.id]=evt},sendEvent:function(e,f,a){e.id=this.eventId++;var b=$.extend({},e);b._status={successFunc:f,failureFunc:a};this.unconfirmedEvents[e.id]=b;if(this.socket){this.socket.emit("server",e)}else{var c=this;var d=null;switch(e.type){case"message":d=this.actions.send;break;case"status":d=this.actions.status;break;case"signoff":d=this.actions.signoff;break;default:break}AjaxIM.post(d,e,function(g){if(g){for(var h=0;h