Arquivos
AjaxIM/client/js/im.min.js
T
2014-05-13 12:28:15 -07:00

1 linha
22 KiB
JavaScript

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){$("<div>").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('<link rel="stylesheet" href="'+this.settings.theme+'/theme.css" />')}}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<f.height()){f.height(this.scrollHeight)}});$(document).on("click",".imjs-msglog",function(){var e=$(this).parents(".imjs-chatbox");e.find(".imjs-input").focus()});$(document).on("click",".imjs-friend",function(){var e=a._createChatbox($(this).data("friend"));if(e.parents(".imjs-tab").data("state")!="active"){e.parents(".imjs-tab").click();store.set(a.username+"-activeTab",$(this).data("friend"))}e.find(".imjs-input").focus();if(!(input=e.find(".imjs-input")).data("height")){input.data("height",input.height())}});$(".imjs-scroll").css("display","none");$(document).on("click","#imjs-scroll-right",function(){var e=$(this).prevAll("#imjs-bar li.imjs-tab:hidden").filter(function(){return($(this).data("state")!="closed"&&$(this).prev("#imjs-bar li.imjs-tab:visible").length)}).not(".imjs-default").slice(-1).css("display","");if(e.length){$("#imjs-bar li.imjs-tab:visible").eq(0).css("display","none");$(this).html(parseInt($(this).html())-1);$("#imjs-scroll-left").html(parseInt($("#imjs-scroll-left").html())+1)}return false});$(document).on("click","#imjs-scroll-left",function(){var e=$(this).nextAll("#imjs-bar li.imjs-tab:hidden").filter(function(){return($(this).data("state")!="closed"&&$(this).next("#imjs-bar li.imjs-tab:visible").length)}).not(".imjs-default").slice(-1).css("display","");if(e.length){$("#imjs-bar li.imjs-tab:visible").slice(-1).css("display","none");$(this).html(parseInt($(this).html())-1);$("#imjs-scroll-right").html(parseInt($("#imjs-scroll-right").html())+1)}return false});$(document).on("click","#imjs-status-panel .imjs-button",function(){var e=this.id.split("-")[2];$("#imjs-away-message-text, #imjs-away-message-text-arrow").animate({opacity:(e=="away"?"show":"hide"),height:(e=="away"?"show":"hide")},50);$("#imjs-status-panel .imjs-button").removeClass("imjs-toggled");$(this).addClass("imjs-toggled");if(a.current_status[0]=="away"){a._last_status_message=$("#imjs-away-message-text").val()}$("#imjs-away-message-text").val(e=="away"?a._last_status_message||AjaxIM.l10n.defaultAway:"");a.status(e,$("#imjs-away-message-text").val());return false});$(document).on("keyup","#imjs-away-message-text",(function(){var e=null;return function(){if(e){clearTimeout(e)}e=setTimeout(function(){a._last_status_message=a.current_status[1]=$("#imjs-away-message-text").addClass("imjs-loading").val();a.status.apply(a,a.current_status)},250)}})());$(this).bind("changeStatusSuccessful changeStatusFailed",function(){$("#imjs-away-message-text").removeClass("imjs-loading")});$(document).on("click","#imjs-reconnect",function(){a.offline=false;store.remove(a.username+"-offline");$("#imjs-reconnect").hide();$(".imjs-input").attr("disabled",false);$("#imjs-status-panel .imjs-button").removeClass("imjs-toggled");$("#imjs-button-available").addClass("imjs-toggled");$(a.statuses).each(function(){$("#imjs-friends").removeClass("imjs-"+this)});$("#imjs-friends").addClass("imjs-available");$("#imjs-away-message-text, #imjs-away-message-text-arrow").css("display","none");a.current_status=["available",""];store.set(a.username+"-status",["available",""]);a.status("available","");a.storage();a.listen()});this.chats={};$(window).resize(function(){try{a._scrollers()}catch(f){}})}else{return AjaxIM.init(b)}};$.extend(AjaxIM.prototype,{setup:function(){$(this).trigger("loadComplete");this.initTabBar();this._scrollers();this.username=store.get("user");this._lastReconnect=0;if(this.username&&store.get(this.username+"-offline")==true){this.offline=true;var a=this;setTimeout(function(){a._showReconnect()},0);return}if(this.username){this.storage()}this.listen()},storage:function(){var d=this,b=store.get(this.username+"-chats"),f=store.get(this.username+"-friends"),c=store.get(this.username+"-status")||["available",""];this.chatstore=b||{};this.friends={};this.current_status=c;if(f){$.each(f,function(h,i){d.addFriend(h,i.status,i.group)});$("#imjs-friends").removeClass("imjs-not-connected").addClass("imjs-"+c[0]);$("#imjs-button-"+c[0]).addClass("imjs-toggled");if(c[0]=="away"){setTimeout(function(){$("#imjs-away-message-text, #imjs-away-message-text-arrow").show()},250);$("#imjs-away-message-text").val(this.current_status[1])}}$.each(this.chatstore,function(k,i){if(!i.length){return}var h=d._createChatbox(k,true),j=h.find(".imjs-msglog").empty();h.data("lastDateStamp",null).css("display","none");if(typeof i=="string"){i=d.chatstore[k]=JSON.parse(i)}j.html(i.join(""));$(d).trigger("chatRestored",[k,h])});var a=store.get(this.username+"-activeTab");if(a&&a in this.chats){this.chats[a].parents(".imjs-tab").click();var e=this.chats[a].find(".imjs-msglog");e[0].scrollTop=e[0].scrollHeight}var g=$("#imjs-friends-panel .imjs-header");g.html(g.html().replace("{username}",this.username))},_clearSession:function(){var a=store.get("user");$.each(["friends","activeTab","chats","status","connected"],function(c,b){store.remove(a+"-"+b)});store.set("user","");this.chats={};this.friends={};this.chatstore={};this.current_status=["available",""];$(".imjs-tab").not(".imjs-tab.imjs-default").remove();$(".imjs-friend-group").not(".imjs-friend-group.imjs-default").remove();delete this.username},listen:function(){if(this.offline){return}var a=this;AjaxIM.get(this.actions.listen,{},function(b){if($.isArray(b)){$.each(b,function(c,d){a._parseMessage(d)})}else{if($.isPlainObject(b)){a._parseMessage(b)}}setTimeout(function(){a.listen()},0)},function(b){a._notConnected();$(a).trigger("pollFailed",["not connected"]);a._reconnectIn=(a._lastReconnect<(new Date())-60000)?1000:Math.min(a._reconnectIn*2,16000);a._lastReconnect=new Date();setTimeout(function(){a.listen()},a._reconnectIn)})},_parseMessage:function(b){var a=this;$(this).trigger("parseMessage",[b]);switch(b.type){case"hello":this._clearSession();this.username=b.username;this.current_status=["available",""];store.set("user",b.username);store.set(this.username+"-status",this.current_status);$("#imjs-friends").attr("class","imjs-available");$.each(b.friends,function(){var d;if(this.length==2){d=this}else{d=[this.toString(),["offline",""]]}a.addFriend(d[0],d[1],"Friends")});store.set(this.username+"-friends",this.friends);var c=$("#imjs-friends-panel .imjs-header");c.html(c.html().replace("{username}",this.username));$("#imjs-away-message-text, #imjs-away-message-text-arrow").hide();$("#imjs-status-panel .imjs-button").removeClass("imjs-toggled");$("#imjs-button-available").addClass("imjs-toggled");break;case"message":this.incoming(b.user,b.body);break;case"status":this._friendUpdate(b.user,b.status,b.message);this._storeFriends();break;case"notice":break;case"goodbye":this._notConnected();break;default:break}},incoming:function(d,c){var a=this._createChatbox(d),b=a.parents(".imjs-tab");if(!$("#imjs-bar .imjs-selected").length){b.click()}else{if(b.data("state")!="active"){this.notification(b)}}this._store(d,this._addMessage("b",a,d,c))},addFriend:function(h,c,g){var f="imjs-group-"+md5.hex(g);if(!(d=$("#"+f)).length){var d=$(".imjs-friend-group.imjs-default").clone().removeClass("imjs-default").attr("id",f).data("group",g).appendTo("#imjs-friends-list");var e=d.find(".imjs-friend-group-header");e.html(e.html().replace("{group}",g))}var b="imjs-friend-"+md5.hex(h+g);if(!$("#"+b).length){var a=d.find("ul li.imjs-default").clone().removeClass("imjs-default").addClass("imjs-"+c[0]).attr("id",b).data("friend",h).appendTo(d.find("ul"));a.html(a.html().replace("{username}",h).replace("{status}",c[1]));a.find(".imjs-friend-status").attr("title",c[1])}this.friends[h]={status:c,group:g};this._updateFriendCount();return this.friends[h]},_updateFriendCount:function(){var a=0;$.each(this.friends,function(b,c){if(c.status[0]!="offline"){a++}});$("#imjs-friends .imjs-tab-text span span").html(a)},_storeFriends:function(){store.set(this.username+"-friends",this.friends)},_createChatbox:function(h,d){var b=this,g="imjs-"+md5.hex(h);if(!(a=$("#"+g)).length){var c=this.addTab(h,"#"+g);var a=c.find(".imjs-chatbox");a.attr("id",g);var f=a.find(".imjs-msglog").empty();var e=a.find(".imjs-header");e.html(e.html().replace("{username}",h));if(!d){this._store(h,this._addDateStamp(a))}this.chats[h]=a;a.data("username",h);if(h in this.friends){status=this.friends[h].status;c.addClass("imjs-"+status)}setTimeout(function(){b._scrollers()},0)}else{if(a.parents(".imjs-tab").data("state")=="closed"){a.find(".imjs-msglog > *").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("<div>").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("<div>").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,"&lt;").replace(/>/g,"&gt;").replace(/(^|.*)\*([^*]+)\*(.*|$)/,"$1<strong>$2</strong>$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"),'<a href="$1" target="_blank">$1</a>');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("<div>").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<b.height()){b.height(b[0].scrollHeight)}b.data("height",b.height())}try{var c=a.find(".imjs-msglog");c[0].scrollTop=c[0].scrollHeight}catch(f){}try{a.find(".imjs-input").focus()}catch(f){}}},closeTab:function(a){a=a.parents(".imjs-tab");a.css("display","none").removeClass("imjs-selected").data("state","closed");delete this.chatstore[a.find(".imjs-chatbox").data("username")];store.set(this.username+"-chats",this.chatstore);$(this).trigger("tabToggled",["closed",a]);this._scrollers();return false},addTab:function(a,d,c){var b=$(".imjs-tab.imjs-default").clone().insertAfter("#imjs-scroll-left");b.removeClass("imjs-default").attr("id","imjs-tab-"+md5.hex(a)).html(b.html().replace("{label}",a)).data("state","minimized");var e=b.find(".imjs-notification");e.css("display","none").data("count",0).data("default-text",e.html()).html(e.html().replace("{count}","0"));if(c===false){b.find(".imjs-close").eq(0).remove()}if(typeof d!="string"){b.find(".imjs-chatbox").remove();b.click(d)}return b},notification:function(c){var a=c.find(".imjs-notification");var b=a.data("count")+1;a.data("count",b).html(a.data("default-text").replace("{count}",b)).css("display","")},_scrollers:function(){var a=false;$("#imjs-scroll-left").nextAll(".imjs-tab").filter(function(){return $(this).data("state")!="closed"}).each(function(b,c){c=$(c).css("display","");var d=c.position();if(d.top>=$("#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<e;b++){d+=a.substr(0|Math.random()*a.length,1)}return d};