/*
This file is part of Mibew Messenger project.
http://mibew.org
Copyright (c) 2005-2011 Mibew Messenger Community
License: http://mibew.org/license.php
*/
Ajax.PeriodicalUpdater=Class.create();
Class.inherit(Ajax.PeriodicalUpdater,Ajax.Base,{initialize:function(a){this.setOptions(a);this._options.onComplete=this.requestComplete.bind(this);this._options.onException=this.handleException.bind(this);this._options.onTimeout=this.handleTimeout.bind(this);this._options.timeout=5E3;this.frequency=this._options.frequency||2;this.updater={};this.update()},handleException:function(){this._options.handleError&&this._options.handleError("offline, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),
1E3)},handleTimeout:function(){this._options.handleError&&this._options.handleError("timeout, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),1E3)},stopUpdate:function(){if(this.updater._options)this.updater._options.onComplete=void 0;clearTimeout(this.timer)},update:function(){if(this._options.updateParams)this._options.parameters=this._options.updateParams();this.updater=new Ajax.Request(this._options.url,this._options)},requestComplete:function(a){try{var c=Ajax.getXml(a);
c?(this._options.updateContent||Ajax.emptyFunction)(c):this._options.handleError&&this._options.handleError("reconnecting")}catch(b){}this.timer=setTimeout(this.update.bind(this),1E3*this.frequency)}});
var HtmlGenerationUtils={popupLink:function(a,c,b,d,g,h,i){return'"+d+""},generateOneRowTable:function(a){return'
"},viewOpenCell:function(a,c,b,d,g,h,i,l,k,n){var h=
2,c=c+"?thread="+b,e="",e=g||d?e+HtmlGenerationUtils.popupLink(l||!d?c:c+"&viewonly=true",localized[g?0:1],"ImCenter"+b,a,640,480,null):e+(''+a+""),e=e+" | ";g&&(e=e+''+HtmlGenerationUtils.popupLink(c,localized[0],"ImCenter"+b,'',640,480,null),e+=" | ",h++);d&&(e=e+''+HtmlGenerationUtils.popupLink(c+"&viewonly=true",localized[1],"ImCenter"+
b,'',640,480,null),e+=" | ",h++);k&&(e=e+''+HtmlGenerationUtils.popupLink(n+"?thread="+b,localized[6],"ImTracked"+b,'',640,480,null),e+=" | ",h++);""!=i&&(e=e+('')+
(30 | ");return HtmlGenerationUtils.generateOneRowTable(e)},banCell:function(a,c){return''+HtmlGenerationUtils.popupLink(webimRoot+"/operator/ban.php?"+(c?"id="+c:"thread="+a),localized[2],"ban"+a,'',720,480,null)+" | "},viewVisOpenCell:function(a,c,b,d,g){var h="",h=g?h+HtmlGenerationUtils.popupLink(c+"?visitor="+b,localized[7],"ImCenter"+
b,a,640,480,null):h+(''+a+""),h=h+' | ',a=HtmlGenerationUtils.popupLink(d+"?visitor="+b,localized[6],"ImTracked"+b,'',640,480,null),a=a.replace("scrollbars=0","scrollbars=1");return HtmlGenerationUtils.generateOneRowTable(h+a+" | ")}};Ajax.ThreadListUpdater=Class.create();
Class.inherit(Ajax.ThreadListUpdater,Ajax.Base,{initialize:function(a){this.setOptions(a);this._options.updateParams=this.updateParams.bind(this);this._options.handleError=this.handleError.bind(this);this._options.updateContent=this.updateContent.bind(this);this._options.lastrevision=0;this.threadTimers={};this.delta=0;this.t=this._options.table;this.t2=this._options.visitors_table;this.periodicalUpdater=new Ajax.PeriodicalUpdater(this._options);this.old_visitors={};this.visitors={};this.visitorTimers=
{}},updateParams:function(){return"since="+this._options.lastrevision+"&status="+this._options.istatus+(this._options.showonline?"&showonline=1":"")+(this._options.showvisitors?"&showvisitors=1":"")},setStatus:function(a){this._options.status.innerHTML=a},handleError:function(a){this.setStatus(a)},updateThread:function(a){function c(a,d,b,c){if(a=CommonUtils.getCell(b,d,a))a.innerHTML=c}for(var b,d,g,h=!1,i=!1,l=!1,k=null,n=null,e=0;e"+NodeUtils.getNodeValue(a,"useragent")+"";null!=k&&(o=""+NodeUtils.getNodeValue(a,"reason")+" | ");l&&(o+=HtmlGenerationUtils.banCell(b,n));o=HtmlGenerationUtils.generateOneRowTable(o);a=CommonUtils.getRow("t"+d,this.t);l=CommonUtils.getRow("t"+d+"end",this.t);if(null!=e&&(e.rowIndex<=a.rowIndex||e.rowIndex>=l.rowIndex))this.t.deleteRow(e.rowIndex),e=this.threadTimers[b]=
null;if(null==e){if(e=this.t.insertRow(a.rowIndex+1),e.className="blocked"==k&&"chat"!=d?"ban":"in"+d,e.id="thr"+b,this.threadTimers[b]=[j,p,d],CommonUtils.insertCell(e,"name","visitor",null,null,HtmlGenerationUtils.viewOpenCell(f,this._options.agentservl,b,h,i,k,r,"chat"!=d,this._options.showvisitors,this._options.trackedservl)),CommonUtils.insertCell(e,"contid","visitor","center",null,m),CommonUtils.insertCell(e,"state","visitor","center",null,g),CommonUtils.insertCell(e,"op","visitor","center",
null,q),CommonUtils.insertCell(e,"time","visitor","center",null,this.getTimeSince(j)),CommonUtils.insertCell(e,"wait","visitor","center",null,"chat"!=d?this.getTimeSince(p):"-"),CommonUtils.insertCell(e,"etc","visitor","center",null,o),"wait"==d||"prio"==d)return!0}else this.threadTimers[b]=[j,p,d],e.className="blocked"==k&&"chat"!=d?"ban":"in"+d,c(this.t,e,"name",HtmlGenerationUtils.viewOpenCell(f,this._options.agentservl,b,h,i,k,r,"chat"!=d,this._options.showvisitors,this._options.trackedservl)),
c(this.t,e,"contid",m),c(this.t,e,"state",g),c(this.t,e,"op",q),c(this.t,e,"time",this.getTimeSince(j)),c(this.t,e,"wait","chat"!=d?this.getTimeSince(p):"-"),c(this.t,e,"etc",o);return!1}},updateQueueMessages:function(){function a(a,b){var c=$(b),i=$(b+"end");return null==c||null==i?!1:c.rowIndex+1a&&(a="0"+a);60<=c&&(b=Math.floor(c/60),c%=60,10>c&&(c="0"+c),b+=":");return b+c+":"+a},updateTimers:function(){for(var a in this.threadTimers)if(null!=this.threadTimers[a]){var c=this.threadTimers[a],b=CommonUtils.getRow("thr"+a,this.t);if(null!=b){var d=this.getTimeSince(c[0]),g=CommonUtils.getCell("time",b,this.t);if(g)g.innerHTML=d;c="chat"!=c[2]?this.getTimeSince(c[1]):"-";if(b=CommonUtils.getCell("wait",b,this.t))b.innerHTML=c}}},updateThreads:function(a){var c=
!1,b=NodeUtils.getAttrValue(a,"time"),d=NodeUtils.getAttrValue(a,"revision");if(b)this.delta=(new Date).getTime()-b;if(d)this._options.lastrevision=d;for(b=0;b '+h}}c.innerHTML=b.join(", ")}},updateVisitorsTimers:function(){for(var a in this.visitorTimers)if(null!=this.visitorTimers[a]){var c=this.visitorTimers[a],b=CommonUtils.getRow("vis"+
a,this.t2);if(null!=b){var d=function(a,b,c,d){if(a=CommonUtils.getCell(c,b,a))a.innerHTML=d};d(this.t2,b,"time",this.getTimeSince(c[0]));d(this.t2,b,"modified",this.getTimeSince(c[1]));null!=c[2]&&d(this.t2,b,"invitationtime",this.getTimeSince(c[2]))}}},updateVisitor:function(a){function c(a,b,c,d){if(a=CommonUtils.getCell(c,b,a))a.innerHTML=d}for(var b,d=0;d=j.rowIndex))this.t2.deleteRow(d.rowIndex),d=this.visitorTimers[b]=null;null==d?(d=this.t2.insertRow(a.rowIndex+1),d.id="vis"+b,this.visitorTimers[b]=[l,k,m],CommonUtils.insertCell(d,"username","visitor",null,null,HtmlGenerationUtils.viewVisOpenCell(h,this._options.inviteservl,b,this._options.trackedservl,null==f)),CommonUtils.insertCell(d,"addr","visitor","center",null,g),CommonUtils.insertCell(d,
"time","visitor","center",null,this.getTimeSince(l)),CommonUtils.insertCell(d,"modified","visitor","center",null,this.getTimeSince(k)),CommonUtils.insertCell(d,"operator","visitor","center",null,null!=f?f:"-"),CommonUtils.insertCell(d,"invitationtime","visitor","center",null,null!=f?this.getTimeSince(m):"-"),CommonUtils.insertCell(d,"invitations","visitor","center",null,n+" / "+e),CommonUtils.insertCell(d,"useragent","visitor","center",null,i)):(this.visitorTimers[b]=[l,k,m],c(this.t2,d,"username",
HtmlGenerationUtils.viewVisOpenCell(h,this._options.inviteservl,b,this._options.trackedservl,null==f)),c(this.t2,d,"addr",g),c(this.t2,d,"operator",null!=f?f:"-"),c(this.t2,d,"time",this.getTimeSince(l)),c(this.t2,d,"modified",this.getTimeSince(k)),c(this.t2,d,"invitationtime",null!=f?this.getTimeSince(m):"-"),c(this.t2,d,"invitations",n+" / "+e),c(this.t2,d,"useragent",i));this.visitors[b]=1;return!1},removeOldVisitors:function(){for(id in this.old_visitors)if(void 0===this.visitors[id]){var a=CommonUtils.getRow("vis"+
id,this.t2);a&&this.t2.deleteRow(a.rowIndex);this.visitorTimers[id]=null}},updateVisitorsList:function(a){var c=$("visstatustd");if(c)c.innerHTML=0