Type.registerNamespace('SpottedScript.Controls.ChatClient.Items');
SpottedScript.Controls.ChatClient.Items.IHasPostingUsr=function(){};SpottedScript.Controls.ChatClient.Items.IHasPostingUsr.registerInterface('SpottedScript.Controls.ChatClient.Items.IHasPostingUsr');SpottedScript.Controls.ChatClient.Items.MessagePinLocation=function(){};SpottedScript.Controls.ChatClient.Items.MessagePinLocation.prototype = {afterName:1,afterSubhead:2,afterBody:3}
SpottedScript.Controls.ChatClient.Items.MessagePinLocation.registerEnum('SpottedScript.Controls.ChatClient.Items.MessagePinLocation',false);SpottedScript.Controls.ChatClient.Items.TopPhoto=function(topPhotoStub,parent){SpottedScript.Controls.ChatClient.Items.TopPhoto.initializeBase(this,[topPhotoStub,parent]);this.photoK=topPhotoStub.photoK;this.photoUrl=topPhotoStub.photoUrl;this.photoIcon=topPhotoStub.photoIcon;this.photoWeb=topPhotoStub.photoWeb;this.photoWebWidth=topPhotoStub.photoWebWidth;this.photoWebHeight=topPhotoStub.photoWebHeight;this.photoThumb=topPhotoStub.photoThumb;this.photoThumbWidth=topPhotoStub.photoThumbWidth;this.photoThumbHeight=topPhotoStub.photoThumbHeight;}
SpottedScript.Controls.ChatClient.Items.TopPhoto.prototype={photoK:0,photoUrl:null,photoIcon:null,photoWeb:null,photoWebWidth:0,photoWebHeight:0,photoThumb:null,photoThumbWidth:0,photoThumbHeight:0}
SpottedScript.Controls.ChatClient.Items.CommentMessage=function(commentStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.CommentMessage.initializeBase(this,[commentStub,parent,serverRequestIndex]);this.url=commentStub.url;this.subject=commentStub.subject;this.showReadButton=this.url.length>0;}
SpottedScript.Controls.ChatClient.Items.CommentMessage.prototype={url:null,subject:null,getReadButtonUrl:function(){return this.url;},getHtmlAfterBody:function(){return '';},getSubhead:function(){if(this.subject.length>0&&this.url.length>0){return '<a href=\"'+this.url+'\" class=\"ChatClientCommentMessageSubhead\">'+this.subject+'</a>';}else{return this.subject;}}}
SpottedScript.Controls.ChatClient.Items.Alert=function(alertStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Alert.initializeBase(this,[alertStub,parent,serverRequestIndex]);this.nickName=alertStub.nickName;this.stmuParams=alertStub.stmuParams;this.usrK=alertStub.usrK;this.pic=alertStub.pic;this.anyPic=(this.pic==='0')?'00000000-0000-0000-b916-000000000001':this.pic;this.set_isInNewSection(false);this.set_isTopOfSection(false);this.set_isBottomOfSection(false);this.picID=this.get_clientID()+'_Pic';this.pinID=this.get_clientID()+'_Pin';}
SpottedScript.Controls.ChatClient.Items.Alert.prototype={usrK:0,nickName:null,stmuParams:null,pic:null,anyPic:null,picID:null,pinID:null,picElement:null,showChatButton:false,initialiseElements:function(){this.initialiseElementsInternal(true);},initialiseElementsInternal:function(setElementsInitialisedFlagOnFinish){SpottedScript.Controls.ChatClient.Items.Alert.callBaseMethod(this, 'initialiseElementsInternal',[false]);this.picElement=(this.get_showPic())?document.getElementById(this.picID):null;if(setElementsInitialisedFlagOnFinish){this.elementsInitialised=true;}},updateUI:function(){this.updateMessageHolder();},updateMessageHolder:function(){if(this.elementsInitialised){var $0='ChatClientMessageHolder';$0+=(this.get_isInNewSection())?' ChatClientMessageHolderNew':' ChatClientMessageHolderOld';$0+=(this.get_isTopOfSection())?' ChatClientMessageHolderTop':'';$0+=(this.get_isBottomOfSection())?' ChatClientMessageHolderBot':'';$0+=' ClearAfter';this.itemElement.className=$0;}},getHtml:function(){return '';},get_showPic:function(){return true;},appendHtml:function(sb){var $0=33;sb.append('<div');sb.appendAttribute('id',this.get_clientID());sb.append(' class=\"ChatClientMessageHolder');sb.append((this.get_isInNewSection())?' ChatClientMessageHolderNew':' ChatClientMessageHolderOld');sb.append((this.get_isTopOfSection())?' ChatClientMessageHolderTop':'');sb.append((this.get_isBottomOfSection())?' ChatClientMessageHolderBot':'');sb.append(' ClearAfter\">');if(this.get_showPic()){sb.append('<a');sb.appendAttribute('href','/members/'+this.nickName.toLowerCase());sb.appendAttribute('onmouseover','stmu(\''+this.pic+'\','+this.stmuParams+');');sb.appendAttribute('onmouseout','htm();');sb.append('>');sb.append('<img');sb.appendAttribute('id',this.picID);sb.appendAttribute('src',SpottedScript.Misc.getPicUrlFromGuid(this.anyPic));sb.appendAttribute('width',$0.toString());sb.appendAttribute('height',$0.toString());sb.appendAttribute('hspace','0');sb.appendAttribute('class','ChatClientMessagePic');sb.appendAttribute('align','left');sb.append(' />');sb.append('</a>');}if(this.showChatButton){sb.append('<div class=\"ChatClientMessageChatButtonHolder\" align=\"right\">');if(this.showChatButton){sb.append('<button');sb.appendAttribute('class','ChatClientMessageChatButton');sb.appendAttribute('onclick','chatClientPinRoom(\''+this.roomGuid+'\', null, false);return false;');sb.append('>chat</button>');}sb.append('</div>');}sb.append('<div class=\"ChatClientMessageHeader\">');sb.append('<a');sb.appendAttribute('href','/members/'+this.nickName.toLowerCase());sb.appendAttribute('onmouseover','stmu(\''+this.pic+'\','+this.stmuParams+');');sb.appendAttribute('onmouseout','htm();');sb.append('>');sb.append(this.nickName);sb.append('</a> ');sb.append(this.getHtml());sb.append('</div>');sb.append('</div>');},get_postingUsrK:function(){return this.usrK;}}
SpottedScript.Controls.ChatClient.Items.Laugh=function(laughStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Laugh.initializeBase(this,[laughStub,parent,serverRequestIndex]);}
SpottedScript.Controls.ChatClient.Items.Laugh.prototype={getHtmlAfterName:function(){return ' laughed at:';},getRoomGuidForChatClickAction:function(){return this.roomGuid;}}
SpottedScript.Controls.ChatClient.Items.Logout=function(alertStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Logout.initializeBase(this,[alertStub,parent,serverRequestIndex]);}
SpottedScript.Controls.ChatClient.Items.Logout.prototype={getHtml:function(){return 'logged out';}}
SpottedScript.Controls.ChatClient.Items.Login=function(alertStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Login.initializeBase(this,[alertStub,parent,serverRequestIndex]);}
SpottedScript.Controls.ChatClient.Items.Login.prototype={getHtml:function(){return 'logged in';}}
SpottedScript.Controls.ChatClient.Items.Note=function(text,parent,roomGuid,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Note.initializeBase(this,[new SpottedScript.Controls.ChatClient.Shared.ItemStub(Math.round(Math.random()*100000).toString(),11,'0',roomGuid),parent,serverRequestIndex]);this.text=text;}
SpottedScript.Controls.ChatClient.Items.Note.prototype={text:null,appendHtml:function(sb){sb.append('<p>NOTE:<br />');sb.append(this.text);sb.append('</p>');}}
SpottedScript.Controls.ChatClient.Items.Newable=function(itemStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Newable.initializeBase(this,[itemStub,parent,serverRequestIndex]);}
SpottedScript.Controls.ChatClient.Items.Newable.prototype={get_isInNewSection:function(){return this.isInNewSection;},set_isInNewSection:function(value){this.isInNewSection=value;this.updateUI();return value;},isInNewSection:false,get_isTopOfSection:function(){return this.isTopOfSection;},set_isTopOfSection:function(value){this.isTopOfSection=value;this.updateUI();return value;},isTopOfSection:false,get_isBottomOfSection:function(){return this.isBottomOfSection;},set_isBottomOfSection:function(value){this.isBottomOfSection=value;this.updateUI();return value;},isBottomOfSection:false,updateClassModifiersAllAtOnce:function(isTopOfSectionValue,isBottomOfSectionValue,isInNewSectionValue){if(isTopOfSectionValue!==this.get_isTopOfSection()||isBottomOfSectionValue!==this.get_isBottomOfSection()||isInNewSectionValue!==this.get_isInNewSection()){this.isTopOfSection=isTopOfSectionValue;this.isBottomOfSection=isBottomOfSectionValue;this.isInNewSection=isInNewSectionValue;this.updateUI();}}}
SpottedScript.Controls.ChatClient.Items.Photo=function(photoStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Photo.initializeBase(this,[photoStub,parent,serverRequestIndex]);this.width=photoStub.width;this.height=photoStub.height;this.url=photoStub.url;this.web=photoStub.web;this.icon=photoStub.icon;this.thumb=photoStub.thumb;this.thumbWidth=photoStub.thumbWidth;this.thumbHeight=photoStub.thumbHeight;this.buddyAlert=photoStub.buddyAlert;this.imageID=this.get_clientID()+'_Image';}
SpottedScript.Controls.ChatClient.Items.Photo.prototype={width:0,height:0,url:null,web:null,icon:null,thumb:null,thumbWidth:0,thumbHeight:0,buddyAlert:false,imageID:null,imageElement:null,initialiseElements:function(){this.initialiseElementsInternal(true);},initialiseElementsInternal:function(setElementsInitialisedFlagOnFinish){SpottedScript.Controls.ChatClient.Items.Photo.callBaseMethod(this, 'initialiseElementsInternal',[false]);this.imageElement=document.getElementById(this.imageID);if(setElementsInitialisedFlagOnFinish){this.elementsInitialised=true;}},updateUI:function(){this.updateItem();},updateItem:function(){if(this.elementsInitialised){}},get_size:function(){return (this.get_isInNewSection())?200:50;},get_top:function(){return (this.get_size()-300)/2;},get_left:function(){return 0;},appendHtml:function(sb){sb.append('<div class=\"ChatMessagePhotoHolder\"');sb.appendAttribute('id',this.get_clientID());sb.append('>');sb.append('<a');sb.appendAttribute('href',this.url);sb.appendAttribute('onclick','event.cancelBubble = true; if (event.stopPropagation) { event.stopPropagation(); } document.location = \"'+this.url+'\";return false;');sb.append('>');sb.append('<img');sb.appendAttribute('id',this.imageID);sb.appendAttribute('src',SpottedScript.Misc.getPicUrlFromGuid(this.thumb));sb.appendAttribute('width',this.thumbWidth.toString());sb.appendAttribute('height',this.thumbHeight.toString());sb.appendAttribute('class','ChatClientPhotoImage');sb.appendAttribute('style','top:'+this.get_top().toString()+'px; left: '+this.get_left().toString()+'px;');sb.appendAttribute('border','0');sb.appendAttribute('onmouseover','stm(\'<img src='+SpottedScript.Misc.getPicUrlFromGuid(this.web)+' width='+this.width.toString()+' height='+this.height.toString()+' class=Block />\');');sb.appendAttribute('onmouseout','htm();');sb.append(' />');sb.append('</a>');sb.append('</div>');}}
SpottedScript.Controls.ChatClient.Items.Error=function(err,method,parent,roomGuid,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Error.initializeBase(this,[new SpottedScript.Controls.ChatClient.Shared.ItemStub(Math.round(Math.random()*100000).toString(),11,'0',roomGuid),parent,serverRequestIndex]);this.method=method;this.exceptionType=err.get_exceptionType();this.message=err.get_message();this.stackTrace=err.get_stackTrace();this.timedOut=err.get_timedOut();this.statusCode=err.get_statusCode();}
SpottedScript.Controls.ChatClient.Items.Error.prototype={method:null,exceptionType:null,message:null,stackTrace:null,statusCode:0,timedOut:false,appendHtml:function(sb){sb.append('<p>ERROR during '+this.method+':<br />');if(this.exceptionType.length>0){sb.append('<small>'+this.exceptionType+'</small><br />');}if(this.message.length>0){sb.append(this.message+'<br />');}if(this.statusCode){sb.append('<small>Status: '+this.statusCode.toString()+'</small><br />');}if(this.timedOut){sb.append('<small>(timed out)</small>');}sb.append('</p>');}}
SpottedScript.Controls.ChatClient.Items.Html=function(itemStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Html.initializeBase(this,[itemStub,parent]);this.elementsInitialised=false;this.serverRequestIndex=serverRequestIndex;}
SpottedScript.Controls.ChatClient.Items.Html.prototype={instance:0,itemElement:null,elementsInitialised:false,get_clientID:function(){return this.parent.clientID+'_ServerRequestIndex_'+this.serverRequestIndex+'_Item_'+this.guid+'_Instance_'+this.instance;},getRoomGuidForChatClickAction:function(){return this.roomGuid;},get_isElementsInitialised:function(){return this.elementsInitialised;},initialiseElements:function(){this.initialiseElementsInternal(true);},initialiseElementsInternal:function(setElementsInitialisedFlagOnFinish){this.itemElement=document.getElementById(this.get_clientID());if(setElementsInitialisedFlagOnFinish){this.elementsInitialised=true;}},toHtml:function(){var $0=new Spotted.System.Text.StringBuilder();this.appendHtml($0);return $0.toString();},appendHtml:function(sb){sb.append('<p>');sb.append(SpottedScript.Controls.ChatClient.Shared.ItemType.toString(this.type));sb.append(' - ');sb.append(this.guid);sb.append('</p>');}}
SpottedScript.Controls.ChatClient.Items.Item=function(itemStub,parent){this.parent=parent;this.guid=itemStub.guid;this.type=itemStub.type;this.dateTime=itemStub.dateTime;this.roomGuid=itemStub.roomGuid;this.fromGuestRefresh=false;}
SpottedScript.Controls.ChatClient.Items.Item.create=function(itemStub,parent,serverRequestIndex,fromGuestRefresh,instance){var $0=itemStub.type;var $1;if($0===6){$1=new SpottedScript.Controls.ChatClient.Items.Login(itemStub,parent,serverRequestIndex);}else if($0===8){$1=new SpottedScript.Controls.ChatClient.Items.Logout(itemStub,parent,serverRequestIndex);}else if($0===5){$1=new SpottedScript.Controls.ChatClient.Items.Laugh(itemStub,parent,serverRequestIndex);}else if($0===2){$1=new SpottedScript.Controls.ChatClient.Items.Private(itemStub,parent,serverRequestIndex);}else if($0===13){$1=new SpottedScript.Controls.ChatClient.Items.CommentMessage(itemStub,parent,serverRequestIndex);}else if($0===1){$1=new SpottedScript.Controls.ChatClient.Items.Message(itemStub,parent,serverRequestIndex);}else if($0===7){$1=new SpottedScript.Controls.ChatClient.Items.Photo(itemStub,parent,serverRequestIndex);}else if($0===15){$1=new SpottedScript.Controls.ChatClient.Items.TopPhoto(itemStub,parent);}else{$1=new SpottedScript.Controls.ChatClient.Items.Item(itemStub,parent);}$1.instance=instance;$1.serverRequestIndex=serverRequestIndex;$1.fromGuestRefresh=fromGuestRefresh;return $1;}
SpottedScript.Controls.ChatClient.Items.Item.prototype={parent:null,guid:null,type:0,dateTime:null,roomGuid:null,serverRequestIndex:0,fromGuestRefresh:false,instance:0,getAgeInMinutes:function(){return Math.floor(this.parent.getMessageAge(this.dateTime)/60000);}}
SpottedScript.Controls.ChatClient.Items.Private=function(privateStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Private.initializeBase(this,[privateStub,parent,serverRequestIndex]);this.buddy=privateStub.buddy;}
SpottedScript.Controls.ChatClient.Items.Private.prototype={buddy:false}
SpottedScript.Controls.ChatClient.Items.Message=function(messageStub,parent,serverRequestIndex){SpottedScript.Controls.ChatClient.Items.Message.initializeBase(this,[messageStub,parent,serverRequestIndex]);this.nickName=messageStub.nickName;this.stmuParams=messageStub.stmuParams;this.usrK=messageStub.usrK;this.pic=messageStub.pic;this.chatPic=messageStub.chatPic;this.text=messageStub.text;this.pinRoomGuid=messageStub.pinRoomGuid;this.anyPic=(this.pic==='0')?'00000000-0000-0000-b916-000000000001':this.pic;this.anyChatPic=(this.chatPic==='0')?'00000000-0000-0000-b916-000000000005':this.chatPic;this.set_isInNewSection(false);this.set_isTopOfSection(false);this.set_isBottomOfSection(false);this.picID=this.get_clientID()+'_Pic';this.pinID=this.get_clientID()+'_RoomPin';this.messageBodyID=this.get_clientID()+'_MessageBody';}
SpottedScript.Controls.ChatClient.Items.Message.prototype={usrK:0,nickName:null,stmuParams:null,pic:null,chatPic:null,text:null,pinRoomGuid:null,anyPic:null,anyChatPic:null,picID:null,pinID:null,messageBodyID:null,picElement:null,messageBodyElement:null,showChatButton:false,showReadButton:false,showSubHead:false,initialiseElements:function(){this.initialiseElementsInternal(true);},initialiseElementsInternal:function(setElementsInitialisedFlagOnFinish){SpottedScript.Controls.ChatClient.Items.Message.callBaseMethod(this, 'initialiseElementsInternal',[false]);this.picElement=document.getElementById(this.picID);this.messageBodyElement=document.getElementById(this.messageBodyID);if(setElementsInitialisedFlagOnFinish){this.elementsInitialised=true;}},updateUI:function(){this.updateMessageHolder();},updateMessageHolder:function(){if(this.elementsInitialised){var $0='ChatClientMessageHolder';$0+=(this.get_isInNewSection())?' ChatClientMessageHolderNew':' ChatClientMessageHolderOld';$0+=(this.get_isTopOfSection())?' ChatClientMessageHolderTop':'';$0+=(this.get_isBottomOfSection())?' ChatClientMessageHolderBot':'';$0+=' ClearAfter';this.itemElement.className=$0;}},getReadButtonUrl:function(){return '';},getHtmlAfterBody:function(){return '';},getHtmlAfterName:function(){return '';},getSubhead:function(){return '';},getRoomGuidForChatClickAction:function(){return (!this.pinRoomGuid.length)?this.roomGuid:this.pinRoomGuid;},appendHtml:function(sb){var $0=33;sb.append('<div');sb.appendAttribute('id',this.get_clientID());sb.append(' class=\"ChatClientMessageHolder');sb.append((this.get_isInNewSection())?' ChatClientMessageHolderNew':' ChatClientMessageHolderOld');sb.append((this.get_isTopOfSection())?' ChatClientMessageHolderTop':'');sb.append((this.get_isBottomOfSection())?' ChatClientMessageHolderBot':'');sb.append(' ClearAfter\">');sb.append('<a');sb.appendAttribute('href','/members/'+this.nickName.toLowerCase());sb.appendAttribute('onmouseover','stmu(\''+this.pic+'\','+this.stmuParams+');');sb.appendAttribute('onmouseout','htm();');sb.append('>');sb.append('<img');sb.appendAttribute('id',this.picID);sb.appendAttribute('src',SpottedScript.Misc.getPicUrlFromGuid(this.anyPic));sb.appendAttribute('width',$0.toString());sb.appendAttribute('height',$0.toString());sb.appendAttribute('hspace','0');sb.appendAttribute('class','ChatClientMessagePic');sb.appendAttribute('align','left');sb.append(' />');sb.append('</a>');if(this.showChatButton||this.showReadButton){sb.append('<div class=\"ChatClientMessageChatButtonHolder\" align=\"right\">');if(this.showChatButton){sb.append('<button');sb.appendAttribute('class','ChatClientMessageChatButton');sb.appendAttribute('onclick','chatClientPinRoom(\''+this.getRoomGuidForChatClickAction()+'\', null, false);return false;');sb.append('>chat</button>');}if(this.showChatButton&&this.showReadButton){sb.append('<br />');}if(this.showReadButton){sb.append('<button');sb.appendAttribute('class','ChatClientMessageChatButton');sb.appendAttribute('onclick','event.cancelBubble = true; if (event.stopPropagation) { event.stopPropagation(); } document.location = \"'+this.getReadButtonUrl()+'\";return false;');sb.append('>read</button>');}sb.append('</div>');}sb.append('<div class=\"ChatClientMessageHeader\">');sb.append('<a');sb.appendAttribute('href','/members/'+this.nickName.toLowerCase());sb.appendAttribute('onmouseover','stmu(\''+this.pic+'\','+this.stmuParams+');');sb.appendAttribute('onmouseout','htm();');sb.append('>');sb.append(this.nickName);sb.append('</a>');var $1=this.getHtmlAfterName();var $2=this.getAgeInMinutes();if($2>=5){sb.append(' (');if($2>525600){var $3=Math.floor($2/525600);sb.append($3.toString());sb.append(' yr');sb.append(($3===1)?'':'s');}else if($2>43200){var $4=Math.floor($2/43200);sb.append($4.toString());sb.append(' month');sb.append(($4===1)?'':'s');}else if($2>10080){var $5=Math.floor($2/10080);sb.append($5.toString());sb.append(' wk');sb.append(($5===1)?'':'s');}else if($2>1440){var $6=Math.floor($2/1440);sb.append($6.toString());sb.append(' day');sb.append(($6===1)?'':'s');}else if($2>60){var $7=Math.floor($2/60);sb.append($7.toString());sb.append(' hr');sb.append(($7===1)?'':'s');}else{sb.append($2.toString());sb.append(' min');sb.append(($2===1)?'':'s');}sb.append(' ago) ');}if($1.length>0){sb.append($1);}sb.append('</div>');if(this.showSubHead&&this.getSubhead().length>0){sb.append('<div');sb.append(' class=\"ChatClientMessageSubHead\">');sb.append(this.getSubhead());sb.append('</div>');}sb.append('<div');sb.appendAttribute('id',this.messageBodyID);sb.append(' class=\"ChatClientMessageBody\">');sb.append(this.text);sb.append(this.getHtmlAfterBody());sb.append('</div>');sb.append('</div>');},get_postingUsrK:function(){return this.usrK;}}
Type.registerNamespace('SpottedScript.Controls.ChatClient');
SpottedScript.Controls.ChatClient.PopupArea=function(view){this.popups=[];this.animate=Boolean.parse(view.get_initAnimatePopups().value);this.areaHolder=document.getElementById('ChatClientPopupAreaHolder');this.areaHolder.style.width=SpottedScript.Controls.ChatClient.PopupArea.popupWidth.toString()+'px';}
SpottedScript.Controls.ChatClient.PopupArea.prototype={popups:null,areaHolder:null,animate:false,add:function(popup){popup.area=this;var $0=this.popups.length;this.popups[$0]=popup;this.areaHolder.appendChild(popup.holder);$addHandler(popup.holder,'mouseover',Function.createDelegate(this,this.onMouseOver));$addHandler(popup.holder,'mouseout',Function.createDelegate(this,this.onMouseOut));popup.repositionImmediate($0);popup.show();popup.setRemoveTimeout(10000);},mouseIsOverPopup:false,cancelMouseOut:false,remove:function(popup,force,forceNoAnimation){if(!this.mouseIsOverPopup||force){this.removeNow(popup,forceNoAnimation);}},removeNow:function(popup,forceNoAnimation){if(!popup.removed){popup.hide(forceNoAnimation);popup.removed=true;var $0=[];for(var $1=0;$1<this.popups.length;$1++){if(this.popups[$1].id!==popup.id){$0[$0.length]=this.popups[$1];}}this.popups=$0;this.repositionPopups();}},removeAllThatNeedRemoval:function(){var $0=[];for(var $1=0;$1<this.popups.length;$1++){if(this.popups[$1].needsRemoval){this.popups[$1].hide(false);}else{$0[$0.length]=this.popups[$1];}}this.popups=$0;this.repositionPopups();},onMouseOver:function(e){this.mouseIsOverPopup=true;this.cancelMouseOut=true;},onMouseOut:function(e){this.cancelMouseOut=false;window.setTimeout(Function.createDelegate(this,this.onMouseOutAfterDelay),100);},onMouseOutAfterDelay:function(){if(!this.cancelMouseOut){this.mouseIsOverPopup=false;this.mouseOut();}},mouseOut:function(){this.removeAllThatNeedRemoval();},repositionPopups:function(){for(var $0=0;$0<this.popups.length;$0++){this.popups[$0].repositionSlide($0);}}}
SpottedScript.Controls.ChatClient.Popup=function(controller,title,room,items){this.title=title;this.roomGuid=room.guid;this.removed=false;this.roomGuidForClickAction=room.guid;this.holder=document.createElement('div');this.holder.className='ChatClientPopup';this.holder.style.width=SpottedScript.Controls.ChatClient.PopupArea.popupWidth.toString()+'px';this.holder.style.height=SpottedScript.Controls.ChatClient.PopupArea.popupHeight.toString()+'px';var $0=document.createElement('div');$0.className='ChatClientPopupHeader';$0.style.overflow='hidden';var $1=document.createElement('div');$1.className='ChatClientPopupCloseLinkHolder';var $2=document.createElement('a');$2.innerHTML='Close';$2.href='';$addHandler($2,'click',Function.createDelegate(this,this.closeButtonClick));$1.appendChild($2);$0.appendChild($1);var $3=document.createElement('div');$3.className='ChatClientPopupTitle';$3.innerHTML=this.title;$0.appendChild($3);this.holder.appendChild($0);if(items){this.itemsList=document.createElement('div');this.itemsList.className='ChatClientPopupItemsList';$addHandler(this.itemsList,'click',Function.createDelegate(this,this.holderClick));$addHandler(this.itemsList,'mouseover',Function.createDelegate(this,this.holderMouseOver));$addHandler(this.itemsList,'mouseout',Function.createDelegate(this,this.holderMouseOut));var $4=false;for(var $5=0;$5<items.length;$5++){var $6=items[$5];if(SpottedScript.Controls.ChatClient.Items.IHasPostingUsr.isInstanceOfType($6)){if(($6).get_postingUsrK()===controller.usrK){continue;}}if(this.hasRelevantItems){$4=true;break;}this.hasRelevantItems=true;}if(this.hasRelevantItems){for(var $7=0;$7<items.length;$7++){var $8=items[$7];if(SpottedScript.Controls.ChatClient.Items.IHasPostingUsr.isInstanceOfType($8)){if(($8).get_postingUsrK()===controller.usrK){continue;}}if(!$4){this.roomGuidForClickAction=$8.getRoomGuidForChatClickAction();}var $9=$8.instance;var $A=false;if(SpottedScript.Controls.ChatClient.Items.Newable.isInstanceOfType($8)){$A=($8).get_isInNewSection();($8).set_isInNewSection(false);}$8.instance=2;var $B=false;if(!$4&&SpottedScript.Controls.ChatClient.Items.Message.isInstanceOfType($8)){$B=($8).showChatButton;($8).showChatButton=false;}var $C=document.createElement('span');$C.innerHTML=$8.toHtml();if(this.itemsList.hasChildNodes()){this.itemsList.insertBefore($C,this.itemsList.childNodes[0]);}else{this.itemsList.appendChild($C);}$8.instance=$9;if(SpottedScript.Controls.ChatClient.Items.Newable.isInstanceOfType($8)){($8).set_isInNewSection($A);}if(!$4&&SpottedScript.Controls.ChatClient.Items.Message.isInstanceOfType($8)){($8).showChatButton=$B;}}this.holder.appendChild(this.itemsList);}}this.id=Math.random().toString();this.jHolder=jQuery(this.holder);}
SpottedScript.Controls.ChatClient.Popup.prototype={title:null,holder:null,itemsList:null,clickAction:null,roomGuid:null,area:null,id:null,jHolder:null,needsRemoval:false,removed:false,roomGuidForClickAction:null,hasRelevantItems:false,setRemoveTimeout:function(timeout){window.setTimeout(Function.createDelegate(this,this.removeAfterTimeout),timeout);},removeAfterTimeout:function(){this.needsRemoval=true;this.area.remove(this,false,false);},getTop:function(positionIndex){return 0-((positionIndex+1)*SpottedScript.Controls.ChatClient.PopupArea.popupHeight);},repositionImmediate:function(positionIndex){this.holder.style.top=this.getTop(positionIndex).toString()+'px';},repositionSlide:function(positionIndex){if(this.area.animate){var $0={};$0['top']=this.getTop(positionIndex).toString()+'px';this.jHolder.animate($0,500,'easeOutQuint',null);}else{this.repositionImmediate(positionIndex);}},show:function(){if(this.area.animate){var $0={};$0['direction']='down';$0['easing']='easeOutQuint';this.jHolder.show('drop',$0,500,null);}else{this.holder.style.display='block';}},hide:function(forceNoAnimation){if(this.area.animate&&!forceNoAnimation){var $0={};$0['direction']='down';$0['easing']='easeOutQuint';this.jHolder.hide('drop',$0,500,null);}else{this.holder.style.display='none';}},holderClick:function(e){if(this.area.animate){try{var $0={};$0['to']='#ChatClient_MessagesMain';this.jHolder.effect('transfer',$0,500,null);}catch($1){}}if(this.clickAction){this.clickAction(this.roomGuidForClickAction,null);}this.area.remove(this,true,true);e.preventDefault();},holderMouseOver:function(e){this.itemsListCancelMouseOut=true;if(this.itemsList){this.itemsList.className='ChatClientPopupItemsList ChatClientPopupItemsListMouseOver';}e.preventDefault();},holderMouseOut:function(e){this.itemsListCancelMouseOut=false;window.setTimeout(Function.createDelegate(this,this.itemsListMouseOutAfterDelay),0);e.preventDefault();},itemsListCancelMouseOut:false,itemsListMouseOutAfterDelay:function(){if(this.itemsList&&!this.itemsListCancelMouseOut){this.itemsList.className='ChatClientPopupItemsList';}},closeButtonClick:function(e){this.area.remove(this,true,false);e.preventDefault();}}
SpottedScript.Controls.ChatClient.Controller=function(view){this.view=view;if(SpottedScript.Misc.get_browserIsIE()){jQuery(document.body).ready(Function.createDelegate(this,this.initialise));}else{this.initialise();}}
SpottedScript.Controls.ChatClient.Controller.prototype={sessionID:0,lastActionTicks:null,server:null,rooms:null,roomsListOrder:null,state:null,lastKeyDown:0,systemMessagesRoomGuid:null,inboxUpdatesRoomGuid:null,buddyStreamRoomGuid:null,publicStreamRoomGuid:null,privateChatRequestsRoomGuid:null,chatClientIsPaused:false,view:null,popups:null,serverTicksAtPageLoad:0,clientTicksAtPageLoad:0,usrK:0,loggedIn:false,clientID:null,hasFocus:false,getClientTicksSincePageLoad:function(){var $0=this.getRelevantDigits(new Date().getTime().toString());var $1=$0-this.clientTicksAtPageLoad;return ($1>0)?$1:0;},getMessageAge:function(serverTicksMessageString){var $0=this.getRelevantDigits(serverTicksMessageString);var $1=this.serverTicksAtPageLoad+(this.getClientTicksSincePageLoad()*10000);var $2=($1-$0)/10000;return ($2>0)?$2:0;},getRelevantDigits:function(stringIn){return Number.parseInvariant(stringIn);},initialise:function(){if(this.view.get_initGo().value==='0'){return;}this.serverTicksAtPageLoad=this.getRelevantDigits(this.view.get_initLastActionTicks().value);this.clientTicksAtPageLoad=this.getRelevantDigits(new Date().getTime().toString());SpottedScript.Controls.ChatClient.Controller.instance=this;this.usrK=Number.parseInvariant(this.view.get_initUsrK().value);this.loggedIn=this.usrK>0;this.clientID=this.view.get_initClientID().value;this.lastActionTicks=this.view.get_initLastActionTicks().value;this.sessionID=Math.round(Math.random()*10000);this.systemMessagesRoomGuid=this.view.get_initSystemMessagesRoomGuid().value;this.inboxUpdatesRoomGuid=this.view.get_initInboxUpdatesRoomGuid().value;this.buddyStreamRoomGuid=this.view.get_initBuddyStreamRoomGuid().value;this.publicStreamRoomGuid='ARAFAAAAAAUAAAAANdfH9w';this.privateChatRequestsRoomGuid='ARIFAAAAAAUAAAAAO3ZY0A';this.lastKeyDown=-1;this.chatClientIsPaused=false;this.state=new Array(0);this.roomsListOrder=[];this.popups=new SpottedScript.Controls.ChatClient.PopupArea(this.view);$addHandler(this.view.get_textBox(),'focus',Function.createDelegate(this,this.textBoxFocus));$addHandler(this.view.get_textBox(),'blur',Function.createDelegate(this,this.textBoxBlur));$addHandler(this.view.get_tabsChatLink(),'focus',Function.createDelegate(this,this.tabsChatLinkFocus));$addHandler(this.view.get_tabsChatLink(),'blur',Function.createDelegate(this,this.tabsChatLinkBlur));$addHandler(this.view.get_textBox(),'keypress',Function.createDelegate(this,this.textBoxKeyPress));$addHandler(this.view.get_textBox(),'keydown',Function.createDelegate(this,this.textBoxKeyDown));$addHandler(this.view.get_outerMain(),'keydown',Function.createDelegate(this,this.outerKeyDown));$addHandler(this.view.get_roomsMain(),'click',Function.createDelegate(this,this.roomListClick));$addHandler(this.view.get_roomsMain(),'mousedown',Function.createDelegate(this,this.roomListMouseDown));if(this.loggedIn){$addHandler(this.view.get_messagesHeaderMoreLink(),'click',Function.createDelegate(this,this.moreInfoClick));$addHandler(this.view.get_messagesHeaderLink(),'click',Function.createDelegate(this,this.messagesHeaderClick));$addHandler(this.view.get_privateChatDrop(),'change',Function.createDelegate(this,this.privateChatDropChange));}$addHandler(this.view.get_wrongSessionResumeLink(),'click',Function.createDelegate(this,this.resumeLinkClick));$addHandler(this.view.get_timeoutResumeLink(),'click',Function.createDelegate(this,this.resumeLinkClick));$addHandler(this.view.get_deleteArchiveAnchor(),'click',Function.createDelegate(this,this.deleteArchive));$addHandler(this.view.get_tabsChatLink(),'click',Function.createDelegate(this,this.changeTabClick));this.rooms={};this.selectedRoomGuid='';for(var $0=0;$0<this.view.get_roomList().childNodes.length+this.view.get_roomPrivateList().childNodes.length+this.view.get_roomGuestList().childNodes.length;$0++){var $1=null;if($0<this.view.get_roomList().childNodes.length){$1=this.view.get_roomList().childNodes[$0];}else if($0<this.view.get_roomList().childNodes.length+this.view.get_roomPrivateList().childNodes.length){$1=this.view.get_roomPrivateList().childNodes[$0-this.view.get_roomList().childNodes.length];}else{$1=this.view.get_roomGuestList().childNodes[$0-this.view.get_roomList().childNodes.length-this.view.get_roomPrivateList().childNodes.length];}if($1.nodeType===1&&$1.className.startsWith('ChatClientRoomHolder')){var $2=new SpottedScript.Controls.ChatClient.Room(this,this.view);$2.initialiseFromElement($1,this.state);this.initialiseRoomEvents($2);if($2.get_selected()){if(this.selectedRoomGuid.length>0){$2.set_selected(false);}else{this.selectedRoomGuid=$2.guid;}}this.rooms[$2.guid]=$2;this.roomsListOrder[this.roomsListOrder.length]=$2.guid;$2.setListOrder(this.roomsListOrder.length-1);}}if(this.view.get_initTopPhoto().value.length>0&&this.rooms['AQEFAAAAAAUAAAAAvVaVmQ']){var $3=this.view.get_initTopPhoto().value.split(',');var $4=new SpottedScript.Controls.ChatClient.Items.TopPhoto(new SpottedScript.Controls.ChatClient.Shared.TopPhotoStub('',15,'','AQEFAAAAAAUAAAAAvVaVmQ',Number.parseInvariant($3[0]),$3[1],$3[2],$3[3],Number.parseInvariant($3[4]),Number.parseInvariant($3[5]),$3[6],Number.parseInvariant($3[7]),Number.parseInvariant($3[8])),this);(this.rooms['AQEFAAAAAAUAAAAAvVaVmQ']).addItem($4,null);}this.updateDraggable();this.server=new SpottedScript.Controls.ChatClient.Server(this,this.sessionID,this.lastActionTicks,this.state);this.server.gotItems=Function.createDelegate(this,this.gotItems);this.server.gotNoItems=Function.createDelegate(this,this.gotNoItems);this.server.gotWrongSessionException=Function.createDelegate(this,this.gotWrongSessionException);this.server.gotTimeoutException=Function.createDelegate(this,this.gotTimeoutException);this.server.gotGenericException=Function.createDelegate(this,this.gotGenericException);this.server.gotRoom=Function.createDelegate(this,this.gotRoom);this.server.gotNewPhotoRoom=Function.createDelegate(this,this.gotNewPhotoRoom);this.server.gotRoomState=Function.createDelegate(this,this.gotRoomState);this.server.showLoadingIcon=Function.createDelegate(this,this.showLoadingIcon);this.server.hideLoadingIcon=Function.createDelegate(this,this.hideLoadingIcon);this.server.gotMoreInfo=Function.createDelegate(this,this.gotRoomMoreInfoHtml);this.server.gotArchiveItems=Function.createDelegate(this,this.gotRoomArchiveItems);this.server.debugPrint=Function.createDelegate(this,this.debugEventHandler);this.server.doneDeleteArchive=Function.createDelegate(this,this.doneDeleteArchive);this.server.start();if(!this.selectedRoomGuid.length&&this.roomsListOrder.length>0){this.set_selectedRoom(this.rooms[this.roomsListOrder[0]]);}this.debug('Controller started successfully.');},initialiseRoomEvents:function(r){r.roomPinAction=Function.createDelegate(this,this.roomPinAction);r.roomStarAction=Function.createDelegate(this,this.roomStarAction);r.getMoreInfoHtml=Function.createDelegate(this,this.getRoomMoreInfoHtml);r.getArchiveItems=Function.createDelegate(this,this.getRoomArchiveItems);if(r.get_guest()){r.guestRoomPinAction=Function.createDelegate(this,this.guestRoomPinAction);}},updateDraggable:function(){},chatClientUpdateRoomOrder:function(e,ui){htm();;try{var $0=ui.item[0];var $1=this.getRoomFromID($0.id);if($1.get_guest()&&!$1.get_pinned()){$1.set_pinned(true);}var $2=jQuery('.ChatClientRoomPrivateList');var $3={};var $4=$2.sortable('serialize',$3);var $5=$4.split('&');for(var $6=0;$6<$5.length;$6++){var $7=$5[$6].split('=')[1];this.roomsListOrder[$6]=$7;(this.rooms[$7]).setListOrder($6);}this.server.storeUpdatedRoomListOrder();}catch($8){this.debug('Serailise failed.');}},get_selectedRoom:function(){if(!this.selectedRoomGuid.length){return null;}else{return this.rooms[this.selectedRoomGuid];}},set_selectedRoom:function(value){this.setSelectedRoom(value,true);return value;},selectedRoomGuid:null,previouslySelectedRoomGuid:null,setSelectedRoom:function(room,focus){if(this.chatClientIsPaused){this.previouslySelectedRoomGuid=(!room)?'':room.guid;return;}this.selectedRoomGuid=(!room)?'':room.guid;var $dict1=this.rooms;for(var $key2 in $dict1){var $0={key:$key2,value:$dict1[$key2]};var $1=$0.value;if(room&&$1.guid===room.guid){if(!$1.get_selected()){this.view.get_messagesHeaderLink().innerHTML=$1.name;this.view.get_messagesHeaderMoreLink().style.display=(this.loggedIn)?'':'none';$1.set_selected(true);this.selectedRoomGuid=$1.guid;}}else if($1.get_selected()){$1.set_selected(false);}}this.view.get_textBox().style.display=(!room||room.readOnly)?'none':'';this.view.get_deleteArchiveHolder().style.display=(!room||!room.isPrivateChatRoom)?'none':'';this.view.get_deleteArchiveDoneLabel().style.display='none';if(room&&focus){this.focusNow(room);}},focusNow:function(r){if(!r.readOnly&&this.usrK>0){this.view.get_textBox().focus();}else{this.view.get_tabsChatLink().focus();}},changeTabClick:function(e){this.unPauseChatClient(true);this.view.get_tabsChatLink().className=(e.target.id.endsWith('_TabsChatLink'))?'TabbedHeading Selected':'TabbedHeading';this.view.get_tabsStreamLink().className=(e.target.id.endsWith('_TabsStreamLink'))?'TabbedHeading Selected':'TabbedHeading';this.view.get_tabChatHolder().style.display=(e.target.id.endsWith('_TabsChatLink'))?'':'none';this.view.get_tabStreamHolder().style.display=(e.target.id.endsWith('_TabsStreamLink'))?'':'none';},gotItems:function(o,e){var $0=e;var $1={};for(var $2=0;$2<$0.items.length;$2++){var $3=$0.items[$2];if(this.rooms[$3.roomGuid]&&((this.rooms[$3.roomGuid]).get_pinned()||(this.rooms[$3.roomGuid]).get_guest())){var $4=this.rooms[$3.roomGuid];if($3.type===13&&($3.roomGuid===this.publicStreamRoomGuid||$3.roomGuid===this.buddyStreamRoomGuid)){var $5=$3;$5.showSubHead=true;}else if($3.type===5){var $6=$3;$6.showSubHead=true;}$4.addItem($3,$1);}else if($3.type===2){var $7=$0.items[$2];if($7.usrK!==this.usrK){if(this.rooms[this.privateChatRequestsRoomGuid]){$7.showChatButton=true;var $8=this.rooms[this.privateChatRequestsRoomGuid];$8.addItem($3,$1);}}}else if($3.type===13&&$3.roomGuid!==this.publicStreamRoomGuid&&$3.roomGuid!==this.buddyStreamRoomGuid){var $9=$0.items[$2];if(this.rooms[this.inboxUpdatesRoomGuid]&&$9.usrK!==this.usrK){$9.showSubHead=true;var $A=this.rooms[this.inboxUpdatesRoomGuid];$A.addItem($3,$1);}}else{if(this.rooms['AQ0FAAAAAAUAAAAA5wHGJw']){var $B=this.rooms['AQ0FAAAAAAUAAAAA5wHGJw'];$B.addItem($0.items[$2],$1);}}}var $dict1=this.rooms;for(var $key2 in $dict1){var $C={key:$key2,value:$dict1[$key2]};var $D=this.rooms[$C.key];if(!$0.serverRequestIndex||!$D.requestIndex||$1[$D.guid]){$D.finaliseRequest($0.serverRequestIndex);if($0.serverRequestIndex>0&&$D.requestIndex>0&&$1[$D.guid]&&$D.get_starred()&&(!this.hasFocus||!$D.get_selected())){var $E=new SpottedScript.Controls.ChatClient.Popup(this,$D.name,$D,$1[$D.guid]);if($E.hasRelevantItems){$E.clickAction=Function.createDelegate(this,this.popupClickAction);this.popups.add($E);}}}}},gotNoItems:function(o,e){var $0=e;var $dict1=this.rooms;for(var $key2 in $dict1){var $1={key:$key2,value:$dict1[$key2]};var $2=this.rooms[$1.key];if(!$0.serverRequestIndex||!$2.requestIndex){$2.finaliseRequest($0.serverRequestIndex);}}},gotWrongSessionException:function(o,e){var $0=e;this.previouslySelectedRoomGuid=(!this.get_selectedRoom())?'':this.get_selectedRoom().guid;this.set_selectedRoom(null);this.chatClientIsPaused=true;this.view.get_wrongSessionHolder().style.display='';this.view.get_timeoutHolder().style.display='none';},gotTimeoutException:function(o,e){var $0=e;this.previouslySelectedRoomGuid=(!this.get_selectedRoom())?'':this.get_selectedRoom().guid;this.set_selectedRoom(null);this.chatClientIsPaused=true;this.view.get_wrongSessionHolder().style.display='none';this.view.get_timeoutHolder().style.display='';},gotGenericException:function(o,e){var $0=e;if($0.error.get_exceptionType().endsWith('+SelfPrivateChatRoomException')){alert('Trying to have a private chat with yourself? Are you MAD?');}if($0.error.get_exceptionType().endsWith('+WritePermissionException')){alert('Error from the chat server while sending a message... Do you have permission to post into this room? If it\'s a group chat room, you need to be a member to chat.');}if(this.rooms[this.systemMessagesRoomGuid]){var $1=new SpottedScript.Controls.ChatClient.Items.Error($0.error,$0.method,this,this.systemMessagesRoomGuid,0);(this.rooms[this.systemMessagesRoomGuid]).addItem($1,null);(this.rooms[this.systemMessagesRoomGuid]).finaliseRequest(1);}},popupClickAction:function(o,e){this.view.get_tabsChatLink().focus();var $0=o;this.pinNewRoom($0);},roomListMouseDown:function(e){window.setTimeout(Function.createDelegate(this,this.textBoxStopWatermark),20);},roomListClick:function(e){if(e.target.id.endsWith('PrivateChatDrop')){return;}if(e.target.id.endsWith('_Link')||e.target.id.endsWith('_Icon')){var $0=this.getRoomFromChildID(e.target.id);this.set_selectedRoom($0);this.unPauseChatClient(true);}else if(e.target.id.endsWith('_Cross')){var $1=this.getRoomFromChildID(e.target.id);if($1.get_pinned()){this.unPauseChatClient(false);this.set_selectedRoom(null);$1.set_pinned(false);}else{this.unPauseChatClient(true);}}else if(e.target.id.endsWith('_Star')){var $2=this.getRoomFromChildID(e.target.id);if($2.starrable){$2.set_starred(!$2.get_starred());}else if($2.get_starred()){alert('This room can\'t be un-starred');}else{alert('This room can\'t be starred');}this.unPauseChatClient(true);}if(this.get_selectedRoom()){this.focusNow(this.get_selectedRoom());}e.preventDefault();},privateChatDropChange:function(e){if(this.view.get_privateChatDrop().value!=='0'){this.pinNewRoom(this.view.get_privateChatDrop().value);this.view.get_privateChatDrop().selectedIndex=0;}},getRoomFromChildID:function(ID){var $0=ID.split('_');var $1=$0[$0.length-2];return this.rooms[$1];},getRoomFromID:function(ID){var $0=ID.split('_');var $1=$0[$0.length-1];return this.rooms[$1];},getSelectedRoomListIndex:function(){for(var $0=0;$0<this.roomsListOrder.length;$0++){if((this.rooms[this.roomsListOrder[$0].toString()]).get_selected()){return $0;}}return 0;},getRoomArchiveItems:function(o,e){if(e){var $0=e;this.server.getArchiveItems($0.roomGuid);}},gotRoomArchiveItems:function(o,e){if(e){var $0=e;this.unPauseChatClient(true);if(this.rooms[$0.roomGuid]){var $1=this.rooms[$0.roomGuid];if(!$1.get_selected()){return;}$1.showArchiveItems($0.archiveItems);}}},deleteArchive:function(e){this.unPauseChatClient(true);this.server.deleteArchive(this.get_selectedRoom().guid);e.preventDefault();},doneDeleteArchive:function(o,e){if(e){var $0=e;this.unPauseChatClient(true);if(this.rooms[$0.roomGuid]){var $1=this.rooms[$0.roomGuid];$1.clearItems();this.view.get_deleteArchiveDoneLabel().style.display='';window.setTimeout(Function.createDelegate(this,function(){
this.view.get_deleteArchiveDoneLabel().style.display='none';}),2000);}}},getRoomMoreInfoHtml:function(o,e){if(e){var $0=e;this.server.getMoreInfo($0.roomGuid);}},gotRoomMoreInfoHtml:function(o,e){if(e){var $0=e;this.unPauseChatClient(true);if(this.rooms[$0.roomGuid]){var $1=this.rooms[$0.roomGuid];if(!$1.get_selected()){return;}$1.storeMoreInfoHtmlAndShowMoreInfo($0.moreInfoHtml);}}},moreInfoClick:function(e){this.unPauseChatClient(true);if(this.get_selectedRoom()&&!this.get_selectedRoom().get_moreInfoVisible()){this.get_selectedRoom().showMoreInfo(false);}e.preventDefault();},messagesHeaderClick:function(e){this.unPauseChatClient(true);if(this.get_selectedRoom()&&this.get_selectedRoom().get_moreInfoVisible()){this.get_selectedRoom().hideMoreInfo(true);}e.preventDefault();},resumeLinkClick:function(e){this.unPauseChatClient(true);e.preventDefault();},unPauseChatClient:function(selectPreviousRoom){if(this.chatClientIsPaused){this.chatClientIsPaused=false;this.view.get_wrongSessionHolder().style.display='none';this.view.get_timeoutHolder().style.display='none';if(selectPreviousRoom&&this.previouslySelectedRoomGuid.length>0){this.set_selectedRoom(this.rooms[this.previouslySelectedRoomGuid]);}this.server.resumeAfterPause();}},gotRoomState:function(o,e){var $0=e;if(!$0.roomState){return;}for(var $1=0;$1<$0.roomState.length;$1++){var $2=$0.roomState[$1];var $3=this.rooms[$2.guid];if($3){var $4=$3;$4.updateStatsAfterUnPause($2);}}},changePhoto:function(newRoomGuid){this.unPauseChatClient(false);var $0=this.rooms[newRoomGuid];if(!$0){this.server.switchPhotoRoom(newRoomGuid);}else{var $1=this.removeAllUnPinnedGuestPhotoRoomsExceptSpecified(newRoomGuid);var $2=$0;if($1){this.setSelectedRoom($2,false);}}},removeRoom:function(roomGuid){var $0=this.rooms[roomGuid];$0.prepareForRemoval();delete this.rooms[roomGuid];var $1=[];for(var $2=0;$2<this.roomsListOrder.length;$2++){if(roomGuid!==this.roomsListOrder[$2]){$1[$1.length]=this.roomsListOrder[$2];}}this.roomsListOrder=$1;},removeAllUnPinnedGuestPhotoRoomsExceptSpecified:function(exceptThisRoomGuid){var $0=false;var $dict1=this.rooms;for(var $key2 in $dict1){var $1={key:$key2,value:$dict1[$key2]};var $2=$1.value;if($2.isPhotoChatRoom&&$2.get_guest()&&$2.guid!==exceptThisRoomGuid&&!$2.get_pinned()){if($2.get_selected()){$0=true;}this.removeRoom($2.guid);}}return $0;},gotNewPhotoRoom:function(o,e){var $0=e;var $1=this.removeAllUnPinnedGuestPhotoRoomsExceptSpecified($0.roomStub.guid);var $2=this.rooms[$0.roomStub.guid];if(!$2){var $3=new SpottedScript.Controls.ChatClient.Room(this,this.view);$3.initialiseFromStub($0.roomStub,($0.roomStub.isPrivateChatRoom)?this.view.get_roomPrivateList():($0.roomStub.guest)?this.view.get_roomGuestList():this.view.get_roomList(),this.state);this.initialiseRoomEvents($3);this.rooms[$3.guid]=$3;this.roomsListOrder[this.roomsListOrder.length]=$3.guid;$3.setListOrder(this.roomsListOrder.length-1);if($1){this.setSelectedRoom($3,false);}this.updateDraggable();this.updateRoomUI();return false;}else{var $4=$2;if($1){this.setSelectedRoom($4,false);}return true;}},pinNewRoom:function(newRoomGuid){this.unPauseChatClient(false);this.view.get_tabsChatLink().focus();var $0=this.rooms[newRoomGuid];if(!$0){this.server.pinRoom(newRoomGuid);}else{var $1=$0;if(!$1.get_pinned()){$1.set_pinned(true);}this.set_selectedRoom($1);}},roomPinAction:function(o,e){var $0=e;if($0.pinned){this.server.rePinRoom($0.roomGuid);}else{this.server.unPinRoom($0.roomGuid);}},roomStarAction:function(o,e){var $0=e;this.server.starRoom($0.roomGuid,$0.starred);},guestRoomPinAction:function(o,e){var $0=e;var $1=this.rooms[$0.roomGuid];if($1&&$1.get_guest()){$1.removeFromRoomsList();$1.addToRoomsList((!$1.get_pinned())?this.view.get_roomGuestList():($1.isPrivateChatRoom)?this.view.get_roomPrivateList():this.view.get_roomList());$1.updateUIAfterGuestPinAction();}this.updateRoomUI();},updateRoomUI:function(){var $0=false;var $1=false;var $dict1=this.rooms;for(var $key2 in $dict1){var $2={key:$key2,value:$dict1[$key2]};var $3=$2.value;if($3.get_guest()&&!$3.get_pinned()){$0=true;}if($3.isPrivateChatRoom&&$3.get_pinned()){$1=true;}if($0&&$1){break;}}this.updateRoomPrivateListVisibility($1);this.updateRoomGuestListVisibility($0);},gotRoom:function(o,e){var $0=e;var $1=this.rooms[$0.roomStub.guid];if(!$1){var $2=new SpottedScript.Controls.ChatClient.Room(this,this.view);$2.initialiseFromStub($0.roomStub,($0.roomStub.guest)?this.view.get_roomGuestList():($0.roomStub.isPrivateChatRoom)?this.view.get_roomPrivateList():this.view.get_roomList(),this.state);this.initialiseRoomEvents($2);this.rooms[$2.guid]=$2;this.roomsListOrder[this.roomsListOrder.length]=$2.guid;$2.setListOrder(this.roomsListOrder.length-1);this.set_selectedRoom($2);this.updateDraggable();if($0.roomStub.guest){this.updateRoomGuestListVisibility(true);}else if($0.roomStub.isPrivateChatRoom){this.updateRoomPrivateListVisibility(true);}return false;}else{var $3=$1;if(!$3.get_pinned()){$3.set_pinned(true);}this.set_selectedRoom($3);return true;}},updateRoomGuestListVisibility:function(hasGuestRooms){this.view.get_roomGuestListDivider().style.display=(hasGuestRooms)?'':'none';this.view.get_roomGuestList().style.display=(hasGuestRooms)?'':'none';},updateRoomPrivateListVisibility:function(hasPrivateRooms){this.view.get_roomPrivateList().style.display=(hasPrivateRooms)?'':'none';},textBoxKeyDown:function(e){this.lastKeyDown=e.keyCode;if(e.keyCode===27){this.unPauseChatClient(true);this.view.get_textBox().value='';}else if(e.keyCode===13){if(this.get_selectedRoom().get_guest()&&!this.get_selectedRoom().get_pinned()){this.get_selectedRoom().set_pinned(true);}if(this.view.get_textBox().value.trim().length>0){this.unPauseChatClient(true);this.server.sendMessage(this.view.get_textBox().value,this.selectedRoomGuid);this.view.get_textBox().value='';}else{this.unPauseChatClient(true);}if(!this.get_selectedRoom().get_pinned()){this.get_selectedRoom().set_pinned(true);}e.preventDefault();}},outerKeyDown:function(e){if(e.keyCode===38||e.keyCode===40){var $0=this.getSelectedRoomListIndex();var $1=null;var $2=0;while(($2<=this.roomsListOrder.length+1)&&(!$1||!$1.get_pinned()||$1.guid===this.publicStreamRoomGuid)){if(e.keyCode===38){if(!$0){$0=this.roomsListOrder.length;}$0--;}else if(e.keyCode===40){if($0===this.roomsListOrder.length-1){$0=-1;}$0++;}$1=this.rooms[this.roomsListOrder[$0].toString()];$2++;}this.set_selectedRoom($1);this.unPauseChatClient(true);e.preventDefault();}},textBoxKeyPress:function(e){if(this.lastKeyDown===13){e.preventDefault();}},addWatermark:false,textBoxFocus:function(e){if(!this.attributeExists(this.view.get_textBox(),'readonly')){this.hasFocus=true;this.addWatermark=false;if(this.view.get_textBox().value==='Enter your message here...'){this.view.get_textBox().value='';}this.view.get_textBox().className='ChatClientTextBox';}},textBoxBlur:function(e){if(!this.attributeExists(this.view.get_textBox(),'readonly')){this.hasFocus=false;this.addWatermark=true;window.setTimeout(Function.createDelegate(this,this.textBoxAddWatermark),50);}},attributeExists:function(el,attributeName){var $0=null;try{$0=el.attributes.getNamedItem(attributeName);}catch($1){return false;}if(!$0){return false;}try{if(!$0.specified){return false;}}catch($2){return false;}return true;},textBoxAddWatermark:function(){if(this.view.get_textBox().value===''&&this.addWatermark){this.view.get_textBox().value='Enter your message here...';this.view.get_textBox().className='ChatClientTextBoxWatermark';}},textBoxStopWatermark:function(){this.addWatermark=false;},tabsChatLinkFocus:function(e){this.hasFocus=true;},tabsChatLinkBlur:function(e){this.hasFocus=false;},$0:null,hideLoadingIcon:function(o,e){if(this.$0){this.$0.style.display='none';}},showLoadingIcon:function(o,e){if(this.view.get_textBox().style.display===''){if(!this.$0){this.$0=document.createElement('img');this.$0.src='/gfx/autocomplete-loading.gif';this.$0.style.height='16px';this.$0.style.width='16px';this.$0.style.position='absolute';this.$0.style.zIndex=200;document.body.appendChild(this.$0);}var $0=jQuery(this.view.get_textBox()).offset();this.$0.style.left=($0.left+this.view.get_textBox().clientWidth-20)+'px';this.$0.style.top=($0.top+2)+'px';this.$0.style.display='';}},debug:function(text){if(this.rooms[this.systemMessagesRoomGuid]){try{var $0=new SpottedScript.Controls.ChatClient.Items.Note(text.replace('<','&lt;'),this,this.systemMessagesRoomGuid,0);(this.rooms[this.systemMessagesRoomGuid]).addItem($0,null);(this.rooms[this.systemMessagesRoomGuid]).finaliseRequest(1);}catch($1){var $2=new SpottedScript.Controls.ChatClient.Items.Note('<small>NULL</small>',this,this.systemMessagesRoomGuid,0);(this.rooms[this.systemMessagesRoomGuid]).addItem($2,null);(this.rooms[this.systemMessagesRoomGuid]).finaliseRequest(1);}}},debugEventHandler:function(o,e){var $0=e;this.debug($0.html);},debugObject:function(o){var $0=0;var $dict1=$0;for(var $key2 in $dict1){var $1={key:$key2,value:$dict1[$key2]};this.debug($1.key+': '+$1.value.toString()+'<br /><br />');}}}
function chatClientPinRoom(roomGuid,transferSelector,transfer){SpottedScript.Controls.ChatClient.Controller.instance.pinNewRoom(roomGuid);if(transfer){try{var $0={};$0['to']='#ChatClient_MessagesMain';jQuery(transferSelector).effect('transfer',$0,500,null);}catch($1){}}}
function chatClientChangePhoto(photoRoomGuid){SpottedScript.Controls.ChatClient.Controller.instance.changePhoto(photoRoomGuid);}
SpottedScript.Controls.ChatClient.Room=function(parent,view){this.parent=parent;this.items=[];this.loggedIn=parent.loggedIn;this.elementsInitialised=false;this.needsNewStatusUpdate=false;this.doneFullUpdateOfNewStatus=false;this.messagesHeaderMoreLink=view.get_messagesHeaderMoreLink();this.messagesHeaderLink=view.get_messagesHeaderLink();this.messsagesElementHolder=document.createElement('div');this.messsagesElementHolder.style.display='none';view.get_messageList().appendChild(this.messsagesElementHolder);this.messsagesElement=document.createElement('div');this.messsagesElementHolder.appendChild(this.messsagesElement);this.moreInfoElement=document.createElement('div');this.moreInfoElement.className='ChatClientMessageListHiddenHolder';view.get_messageList().appendChild(this.moreInfoElement);this.requestIndex=0;}
SpottedScript.Controls.ChatClient.Room.prototype={parent:null,outerElement:null,roomElement:null,linkElement:null,crossElement:null,presenceElement:null,totalElement:null,statsSeperatorElement:null,unreadElement:null,guid:null,name:null,url:null,pinable:false,starrable:false,readOnly:false,stub:null,state:null,html:null,elementsInitialised:false,items:null,messsagesElementHolder:null,messsagesElement:null,moreInfoElement:null,needsNewStatusUpdate:false,doneFullUpdateOfNewStatus:false,roomPinAction:null,roomStarAction:null,guestRoomPinAction:null,getMoreInfoHtml:null,getArchiveItems:null,requestIndex:0,isPhotoChatRoom:false,isPrivateChatRoom:false,isNewPhotoAlertsRoom:false,presence:0,icon:null,tokenDateTimeTicks:null,token:null,loggedIn:false,messagesHeaderMoreLink:null,messagesHeaderLink:null,onlyRenderItemsWhenSelected:false,onlyRenderItemsWhenSelectedMaxItems:0,hasTopPhoto:false,topPhoto:null,topPhotoHolder:null,topPhotoImage:null,topPhotoAnchor:null,hasChatPic:false,chatPic:null,chatPicStmuParams:null,chatPicUrl:null,chatPicHolder:null,chatPicImage:null,chatPicAnchor:null,latestHtmlItem:null,haveCheckedArchive:false,hasArchive:false,hasArchiveItems:false,hiddenFromRoomList:false,isStreamRoom:false,get_selected:function(){return this.state.selected;},set_selected:function(value){if(this.state.selected!==value){this.state.selected=value;if(this.state.selected){this.resetItemsOnSelect();if(!this.hasArchive||(this.haveCheckedArchive&&!this.hasArchiveItems)){this.showMoreInfoAfterDelayIfNoMessages();}else{this.getArchiveAfterDelayIfLessThan20Messages();}if(this.onlyRenderItemsWhenSelected){this.onlyRenderItemsWhenSelectedRenderItemsNow();}}else{this.moreInfoVisible=false;}this.updateUI();}return value;},resetItemsOnSelect:function(){this.set_latestItemSeen(this.get_latestItem());this.set_newMessages(0);},get_pinned:function(){if(this.pinable){return this.pinned;}else{return true;}},set_pinned:function(value){if(this.pinable){if(this.pinned!==value){this.pinned=value;if(this.roomPinAction){this.roomPinAction(this,new SpottedScript.Controls.ChatClient.PinActionEventArgs(this.guid,this.pinned));}if(this.get_guest()){if(this.guestRoomPinAction){this.guestRoomPinAction(this,new SpottedScript.Controls.ChatClient.PinActionEventArgs(this.guid,this.pinned));}}if(this.pinned){this.requestIndex=0;}else{this.starred=this.isStarredByDefault;}if(!this.pinned&&!this.get_guest()){this.clearItems();}this.updateUI();}}return value;},pinned:false,get_starred:function(){return this.starred;},set_starred:function(value){if(this.starred!==value){this.starred=value;if(this.roomStarAction){this.roomStarAction(this,new SpottedScript.Controls.ChatClient.StarActionEventArgs(this.guid,this.starred));}this.updateUI();}return value;},starred:false,isStarredByDefault:false,get_guest:function(){return this.state.guest;},set_guest:function(value){this.state.guest=value;return value;},get_newMessages:function(){return this.state.newMessages;},set_newMessages:function(value){this.state.newMessages=value;return value;},get_totalMessages:function(){return this.state.totalMessages;},set_totalMessages:function(value){this.state.totalMessages=value;return value;},get_latestItem:function(){return this.state.latestItem;},set_latestItem:function(value){this.state.latestItem=value;return value;},get_latestItemSeen:function(){return this.state.latestItemSeen;},set_latestItemSeen:function(value){this.state.latestItemSeen=value;return value;},get_latestItemOld:function(){return this.state.latestItemOld;},set_latestItemOld:function(value){this.state.latestItemOld=value;return value;},get_itemCount:function(){return (!this.items)?0:this.items.length;},initialiseFromElement:function(e,controllerStateStore){this.guid=e.attributes.getNamedItem('roomGuid').value;this.name=e.attributes.getNamedItem('roomName').value;this.url=e.attributes.getNamedItem('roomUrl').value;this.pinable=Boolean.parse(e.attributes.getNamedItem('roomPinable').value);this.pinned=Boolean.parse(e.attributes.getNamedItem('roomPinned').value);this.starred=Boolean.parse(e.attributes.getNamedItem('roomStarred').value);this.starrable=Boolean.parse(e.attributes.getNamedItem('roomStarrable').value);this.isStarredByDefault=Boolean.parse(e.attributes.getNamedItem('roomIsStarredByDefault').value);this.readOnly=Boolean.parse(e.attributes.getNamedItem('roomReadOnly').value);this.isPhotoChatRoom=Boolean.parse(e.attributes.getNamedItem('roomIsPhotoChatRoom').value);this.isPrivateChatRoom=Boolean.parse(e.attributes.getNamedItem('roomIsPrivateChatRoom').value);this.isNewPhotoAlertsRoom=Boolean.parse(e.attributes.getNamedItem('roomIsNewPhotoAlertsRoom').value);this.presence=Number.parseInvariant(e.attributes.getNamedItem('roomPresence').value);this.icon=e.attributes.getNamedItem('roomIcon').value;this.tokenDateTimeTicks=e.attributes.getNamedItem('roomTokenDateTimeTicks').value;this.token=e.attributes.getNamedItem('roomToken').value;this.hasArchive=Boolean.parse(e.attributes.getNamedItem('roomHasArchive').value);this.hiddenFromRoomList=Boolean.parse(e.attributes.getNamedItem('roomHiddenFromRoomList').value);this.isStreamRoom=Boolean.parse(e.attributes.getNamedItem('roomisStreamRoom').value);this.state=new SpottedScript.Controls.ChatClient.Shared.StateStub();this.state.initialise(this.guid,Boolean.parse(e.attributes.getNamedItem('roomSelected').value),Boolean.parse(e.attributes.getNamedItem('roomGuest').value),Number.parseInvariant(e.attributes.getNamedItem('roomNewMessages').value),Number.parseInvariant(e.attributes.getNamedItem('roomTotalMessages').value),e.attributes.getNamedItem('roomLatestItem').value,e.attributes.getNamedItem('roomLatestItemSeen').value,e.attributes.getNamedItem('roomLatestItemOld').value,Number.parseInvariant(e.attributes.getNamedItem('roomListOrder').value),this.tokenDateTimeTicks,this.token);this.addToStateStoreIfNotAlreadyThere(controllerStateStore,this.state);this.stub=new SpottedScript.Controls.ChatClient.Shared.RoomStub(this.parent.clientID,this.guid,this.name,this.url,this.get_pinned(),this.get_starred(),this.isStarredByDefault,this.pinable,this.starrable,this.get_selected(),this.get_guest(),this.get_newMessages(),this.get_totalMessages(),this.get_latestItem(),this.get_latestItemSeen(),this.get_latestItemOld(),this.readOnly,this.state.listOrder,this.isPhotoChatRoom,this.isPrivateChatRoom,this.isNewPhotoAlertsRoom,this.presence,this.icon,this.tokenDateTimeTicks,this.token,this.hasArchive,this.hiddenFromRoomList,this.isStreamRoom);this.html=new SpottedScript.Controls.ChatClient.Shared.RoomHtml(this.stub,this.loggedIn);this.initialiseElements('');this.genericInitialise();},initialiseFromStub:function(roomStub,roomList,controllerStateStore){this.stub=roomStub;this.guid=this.stub.guid;this.name=this.stub.name;this.url=this.stub.url;this.pinable=this.stub.pinable;this.pinned=this.stub.pinned;this.starred=this.stub.starred;this.starrable=this.stub.starrable;this.isStarredByDefault=this.stub.isStarredByDefault;this.readOnly=this.stub.readOnly;this.isPhotoChatRoom=this.stub.isPhotoChatRoom;this.isPrivateChatRoom=this.stub.isPrivateChatRoom;this.isNewPhotoAlertsRoom=this.stub.isNewPhotoAlertsRoom;this.presence=this.stub.presence;this.tokenDateTimeTicks=this.stub.tokenDateTimeTicks;this.token=this.stub.token;this.hasArchive=this.stub.hasArchive;this.state=new SpottedScript.Controls.ChatClient.Shared.StateStub();this.state.initialise(this.stub.guid,this.stub.selected,this.stub.guest,this.stub.newMessages,this.stub.totalMessages,this.stub.latestItem,this.stub.latestItemSeen,this.stub.latestItemOld,this.stub.listOrder,this.stub.tokenDateTimeTicks,this.stub.token);this.addToStateStoreIfNotAlreadyThere(controllerStateStore,this.state);this.html=new SpottedScript.Controls.ChatClient.Shared.RoomHtml(this.stub,this.loggedIn);var $0=roomStub.parentClientID+'_Room_'+this.guid+'_Outer';var $1=document.createElement('span');$1.id=$0;$1.innerHTML=this.html.toHtml();roomList.appendChild($1.firstChild);this.initialiseElements($0);this.genericInitialise();},genericInitialise:function(){if(this.isNewPhotoAlertsRoom){this.onlyRenderItemsWhenSelected=true;this.onlyRenderItemsWhenSelectedMaxItems=10;}else{this.onlyRenderItemsWhenSelected=false;this.onlyRenderItemsWhenSelectedMaxItems=0;}},addToStateStoreIfNotAlreadyThere:function(stateStore,state){for(var $0=0;$0<stateStore.length;$0++){var $1=stateStore[$0];if($1.guid===state.guid){return;}}stateStore[stateStore.length]=state;},removeFromRoomsList:function(){if(this.outerElement){this.outerElement.parentNode.removeChild(this.outerElement);}else{this.roomElement.parentNode.removeChild(this.roomElement);}},addToRoomsList:function(parent){parent.appendChild(this.roomElement);},prepareForRemoval:function(){this.removeFromRoomsList();this.messsagesElementHolder.parentNode.removeChild(this.messsagesElementHolder);this.moreInfoElement.parentNode.removeChild(this.moreInfoElement);},setListOrder:function(listOrder){this.state.listOrder=listOrder;},updateUIAfterGuestPinAction:function(){this.updateUI();},addItem:function(item,itemTracker){if(this.get_guest()&&!item.fromGuestRefresh){return false;}if(!this.get_guest()&&!this.get_pinned()){return false;}this.set_latestItem(item.guid);if(SpottedScript.Controls.ChatClient.Items.Html.isInstanceOfType(item)){this.latestHtmlItem=item;if(SpottedScript.Controls.ChatClient.Items.Newable.isInstanceOfType(item)){this.needsNewStatusUpdate=true;}if(item.serverRequestIndex>0){if(SpottedScript.Controls.ChatClient.Items.Newable.isInstanceOfType(item)){(item).set_isInNewSection(true);}}if(!this.onlyRenderItemsWhenSelected){this.renderItemToHtmlNow(item,true);}if(itemTracker){if(!itemTracker[this.guid]){itemTracker[this.guid]=[];}var $0=itemTracker[this.guid];$0[$0.length]=item;}if(this.hideMoreInfoOnNextReceivedItem&&this.get_moreInfoVisible()){this.hideMoreInfo(false);}}else if(SpottedScript.Controls.ChatClient.Items.TopPhoto.isInstanceOfType(item)){this.hasTopPhoto=true;this.topPhoto=item;this.updateUI();}this.items[this.items.length]=item;return true;},finaliseRequest:function(serverRequestIndex){if(this.onlyRenderItemsWhenSelected&&this.get_selected()){this.onlyRenderItemsWhenSelectedRenderItemsNow();}if(!serverRequestIndex||!this.requestIndex){if(this.get_latestItemSeen()!==this.get_latestItem()){this.set_latestItemOld(this.get_latestItemSeen());if(this.get_selectedAndMessagesVisible()){this.set_latestItemSeen(this.get_latestItem());}}}else{if(this.get_selectedAndMessagesVisible()){this.set_latestItemOld(this.get_latestItemSeen());this.set_latestItemSeen(this.get_latestItem());}else{if(this.get_latestItemOld()!==this.get_latestItemSeen()){this.set_latestItemOld(this.get_latestItemSeen());}}}if(!serverRequestIndex&&this.get_selected()){if(!this.hasArchive||(this.haveCheckedArchive&&!this.hasArchiveItems)){this.showMoreInfoAfterDelayIfNoMessages();}else{this.getArchiveAfterDelayIfLessThan20Messages();}}if(this.latestHtmlItem){if(SpottedScript.Controls.ChatClient.Items.Message.isInstanceOfType(this.latestHtmlItem)){var $0=this.latestHtmlItem;this.hasChatPic=true;this.chatPic=$0.anyChatPic;this.chatPicStmuParams=$0.stmuParams;this.chatPicUrl='/members/'+$0.nickName.toLowerCase();}else{this.hasChatPic=false;}}else{this.hasChatPic=false;}this.updateNewStatus();this.updateUI();this.requestIndex++;},renderItemToHtmlNow:function(item,insertAtTop){var $0=document.createElement('span');$0.innerHTML=(item).toHtml();if(this.messsagesElement.hasChildNodes()&&insertAtTop){this.messsagesElement.insertBefore($0,this.messsagesElement.childNodes[0]);}else{this.messsagesElement.appendChild($0);}(item).initialiseElements();},onlyRenderItemsWhenSelectedLatestItemWhenLastRefreshed:null,onlyRenderItemsWhenSelectedRenderItemsNow:function(){if(this.onlyRenderItemsWhenSelectedLatestItemWhenLastRefreshed!==this.get_latestItem()){this.onlyRenderItemsWhenSelectedLatestItemWhenLastRefreshed=this.get_latestItem();this.messsagesElement.innerHTML='';var $0=0;for(var $1=this.items.length-1;$1>=0;$1--){var $2=this.items[$1];if(SpottedScript.Controls.ChatClient.Items.Html.isInstanceOfType($2)){$0++;this.renderItemToHtmlNow($2,false);if(this.onlyRenderItemsWhenSelectedMaxItems>0&&$0>=this.onlyRenderItemsWhenSelectedMaxItems){break;}}}}},clearItems:function(){this.items=[];this.messsagesElement.innerHTML='';this.hasChatPic=false;this.updateUI();},get_selectedAndMessagesVisible:function(){return this.get_selected()&&!this.get_moreInfoVisible();},get_moreInfoVisible:function(){return this.moreInfoVisible;},moreInfoVisible:false,showMoreInfo:function(hideMoreInfoOnNextReceivedItem){this.hideMoreInfoOnNextReceivedItem=hideMoreInfoOnNextReceivedItem;if(this.moreInfoElement.innerHTML.length>0){this.moreInfoVisible=true;this.updateUI();}else{if(this.getMoreInfoHtml){this.getMoreInfoHtml(this,new SpottedScript.Controls.ChatClient.RoomGuidEventArgs(this.guid));}}},hideMoreInfoOnNextReceivedItem:false,storeMoreInfoHtmlAndShowMoreInfo:function(moreInfoHtml){if(moreInfoHtml.length>0){this.moreInfoElement.innerHTML=moreInfoHtml;this.moreInfoVisible=true;this.updateUI();}},hideMoreInfo:function(resetItems){this.moreInfoVisible=false;if(this.get_selected()&&resetItems){this.resetItemsOnSelect();}this.updateUI();},showMoreInfoIfNoMessagesLastRandom:0,showMoreInfoIfNoMessages:function(showMoreInfoIfNoMessagesRandom){if(this.get_selected()&&!this.get_itemCount()&&!this.get_moreInfoVisible()&&this.showMoreInfoIfNoMessagesLastRandom===showMoreInfoIfNoMessagesRandom){this.showMoreInfo(true);}},showMoreInfoAfterDelayIfNoMessages:function(){this.showMoreInfoIfNoMessagesLastRandom=Math.floor(Math.random()*10000);window.setTimeout(Function.createDelegate(this,function(){
this.showMoreInfoIfNoMessages(this.showMoreInfoIfNoMessagesLastRandom);}),500);},showArchiveItems:function(itemsJson){var $0=0;this.haveCheckedArchive=true;if(itemsJson.length>0){var $1=eval(' [ '+itemsJson+' ] ');var $2=[];var $3=null;var $4=null;for(var $5=0;$5<$1.length;$5++){var $6=false;for(var $7=0;$7<this.items.length;$7++){if(this.items[$7].guid===$1[$5].guid){$6=true;break;}}if(!$6){var $8=SpottedScript.Controls.ChatClient.Items.Item.create($1[$5],this.parent,this.requestIndex,false,1);if(SpottedScript.Controls.ChatClient.Items.Html.isInstanceOfType($8)){if(!$0){var $9=document.createElement('div');$9.className='ChatClientArchiveHeading';$9.innerHTML='Archived messages:';this.messsagesElement.appendChild($9);}this.hasArchiveItems=true;$0++;this.renderItemToHtmlNow($8,false);if(SpottedScript.Controls.ChatClient.Items.Newable.isInstanceOfType($8)){if(!$3){$3=$8;}$4=$8;}}}}if($3){$3.updateClassModifiersAllAtOnce(true,false,false);}if($4){$4.updateClassModifiersAllAtOnce(false,true,false);}}if(!$0&&this.get_selected()&&!this.get_itemCount()&&!this.get_moreInfoVisible()){this.showMoreInfo(true);}},getArchiveItemsNow:function(){if(this.haveCheckedArchive||!this.hasArchive){return;}if(this.getArchiveItems){this.getArchiveItems(this,new SpottedScript.Controls.ChatClient.RoomGuidEventArgs(this.guid));}},getArchiveLastRandom:0,getArchiveIfLessThan20Messages:function(getArchiveRandom){if(this.haveCheckedArchive||!this.hasArchive){return;}if(this.get_selected()&&this.get_itemCount()<20&&this.getArchiveLastRandom===getArchiveRandom){this.getArchiveItemsNow();}},getArchiveAfterDelayIfLessThan20Messages:function(){if(this.haveCheckedArchive||!this.hasArchive){return;}this.getArchiveLastRandom=Math.floor(Math.random()*10000);window.setTimeout(Function.createDelegate(this,function(){
this.getArchiveIfLessThan20Messages(this.getArchiveLastRandom);}),500);},updateNewStatus:function(){var $0=0;if(this.items.length>0&&this.needsNewStatusUpdate){var $1=0;var $2=-1;var $3=-1;var $4=false;var $5=false;var $6=false;var $7=false;for(var $8=this.items.length-1;$8>=0;$8--){if(this.items[$8].guid===this.get_latestItemOld()){$6=true;}if(this.items[$8].guid===this.get_latestItemSeen()){$7=true;}if(SpottedScript.Controls.ChatClient.Items.Newable.isInstanceOfType(this.items[$8])){var $9=this.items[$8];var $A=false;var $B=false;var $C=false;if(!$1){$A=true;}$2=$8;if(!$7){$0++;}if(!$6){$C=true;$3=$8;$4=true;}else{$C=false;if($4){$A=true;}$4=false;if(!$9.get_isInNewSection()){$5=true;}}$9.updateClassModifiersAllAtOnce($A,$B,$C);$1++;if(this.doneFullUpdateOfNewStatus&&$5){break;}}}if(!this.doneFullUpdateOfNewStatus&&$2>-1){(this.items[$2]).set_isBottomOfSection(true);}if($3>-1){(this.items[$3]).set_isBottomOfSection(true);}this.doneFullUpdateOfNewStatus=true;this.needsNewStatusUpdate=false;}if($0!==this.get_newMessages()||this.get_totalMessages()!==this.items.length){this.set_totalMessages(this.items.length);this.set_newMessages($0);this.updateUI();}},initialiseElements:function(outerClientID){if(outerClientID.length>0){this.outerElement=document.getElementById(outerClientID);}this.roomElement=document.getElementById(this.html.clientID);this.linkElement=document.getElementById(this.html.linkID);this.crossElement=document.getElementById(this.html.crossID);this.presenceElement=document.getElementById(this.html.presenceID);this.totalElement=document.getElementById(this.html.totalID);this.statsSeperatorElement=document.getElementById(this.html.statsSeperatorID);this.unreadElement=document.getElementById(this.html.unreadID);this.elementsInitialised=true;this.updateUI();},updateUI:function(){this.updateMessagesHeaderMoreLink();this.updateTopPhotoUI();this.updateChatPicUI();this.updateRoomUI();this.updatePresenceUI();this.updateLinkUI();this.updateStatsUI();this.updateMessagesUI();},updateMessagesHeaderMoreLink:function(){if(this.elementsInitialised){if(this.get_selected()){this.messagesHeaderMoreLink.className=(this.get_moreInfoVisible())?'TabbedHeading Selected':'TabbedHeading';this.messagesHeaderLink.className=(this.get_moreInfoVisible())?'TabbedHeading':'TabbedHeading Selected';}}},updateTopPhotoUI:function(){if(this.elementsInitialised){if(this.hasTopPhoto){if(!this.topPhotoHolder){this.topPhotoHolder=document.createElement('div');this.topPhotoHolder.style.position='relative';this.topPhotoHolder.style.width='280px';this.topPhotoHolder.style.height='120px';this.messsagesElementHolder.insertBefore(this.topPhotoHolder,this.messsagesElementHolder.childNodes[0]);this.topPhotoAnchor=document.createElement('a');this.topPhotoAnchor.style.position='absolute';this.topPhotoAnchor.style.top='9px';this.topPhotoAnchor.style.left='96px';this.topPhotoImage=document.createElement('img');this.topPhotoImage.className='BorderBlack All';this.topPhotoImage.style.width='100px';this.topPhotoImage.style.height='100px';this.topPhotoAnchor.appendChild(this.topPhotoImage);this.topPhotoHolder.appendChild(this.topPhotoAnchor);var $0=document.createElement('span');$0.style.textAlign='right';$0.innerHTML='<small><a href=\"/pages/frontpagephotos\">Get&nbsp;yours<br />here!</a></small>';$0.style.position='absolute';$0.style.top='7px';$0.style.left='225px';$0.className='CleanLinks';this.topPhotoHolder.appendChild($0);var $1=document.createElement('span');$1.style.textAlign='left';$1.innerHTML='<small>Chat&nbsp;about<br />this:</small>';$1.style.position='absolute';$1.style.top='7px';$1.style.left='5px';this.topPhotoHolder.appendChild($1);}this.topPhotoImage.src=SpottedScript.Misc.getPicUrlFromGuid(this.topPhoto.photoIcon);$clearHandlers(this.topPhotoImage);$addHandler(this.topPhotoImage,'mouseover',Function.createDelegate(this,function(){
eval('stm(\'<img src='+SpottedScript.Misc.getPicUrlFromGuid(this.topPhoto.photoWeb)+' width='+this.topPhoto.photoWebWidth.toString()+' height='+this.topPhoto.photoWebHeight.toString()+' class=Block />\');');}));$addHandler(this.topPhotoImage,'mouseout',Function.createDelegate(this,function(){
htm();;}));this.topPhotoAnchor.href=this.topPhoto.photoUrl;}}},updateChatPicUI:function(){if(this.elementsInitialised){if(this.hasTopPhoto){if(this.chatPicHolder){this.chatPicHolder.style.display='none';}return;}if(this.hasChatPic){if(!this.chatPicHolder){this.chatPicHolder=document.createElement('div');this.messsagesElementHolder.insertBefore(this.chatPicHolder,this.messsagesElementHolder.childNodes[0]);this.chatPicAnchor=document.createElement('a');this.chatPicImage=document.createElement('img');this.chatPicImage.className='ChatClientChatPicImage';this.chatPicAnchor.appendChild(this.chatPicImage);this.chatPicHolder.appendChild(this.chatPicAnchor);}this.chatPicImage.src=SpottedScript.Misc.getPicUrlFromGuid(this.chatPic);$clearHandlers(this.chatPicImage);$addHandler(this.chatPicImage,'mouseover',Function.createDelegate(this,function(){
eval('stmun('+this.chatPicStmuParams+');');}));$addHandler(this.chatPicImage,'mouseout',Function.createDelegate(this,function(){
htm();;}));this.chatPicAnchor.href=this.chatPicUrl;}else{if(this.chatPicHolder){this.chatPicHolder.style.display='none';}}}},updateRoomUI:function(){if(this.elementsInitialised){this.roomElement.className=(!this.get_pinned())?'ChatClientRoomHolder ChatClientRoomUnpinned':(this.get_selected())?'ChatClientRoomHolder ChatClientRoomSelected':'ChatClientRoomHolder';}},updatePresenceUI:function(){if(this.elementsInitialised){if(this.loggedIn&&this.isPrivateChatRoom&&(this.presence===3||this.presence===2)){this.presenceElement.setAttribute('src',(this.presence===3)?'/gfx/chat-chatting.png':'/gfx/chat-online.png');this.presenceElement.style.width=(this.presence===3)?'13':'9';}}},updateLinkUI:function(){if(this.elementsInitialised){if(this.get_pinned()||this.get_guest()){this.linkElement.style.textDecoration='';this.linkElement.className=(this.get_selected())?'ChatClientRoomLink ChatClientRoomLinkSelected':((!this.get_newMessages())?'ChatClientRoomLink ChatClientRoomLinkNoUnread':'ChatClientRoomLink');}else{this.linkElement.style.textDecoration='line-through';this.linkElement.className='ChatClientRoomLink ChatClientRoomLinkNoUnread';}}},updateStatsUI:function(){if(this.elementsInitialised){if(this.get_pinned()||this.get_guest()){this.totalElement.innerHTML=(this.get_totalMessages()>0)?this.get_totalMessages().toString():'&nbsp;';this.unreadElement.innerHTML=(this.get_newMessages()>0)?this.get_newMessages().toString():'&nbsp;';this.statsSeperatorElement.innerHTML=(this.get_newMessages()>0)?'/':'&nbsp;';}else{this.totalElement.innerHTML='&nbsp;';this.unreadElement.innerHTML='&nbsp;';this.statsSeperatorElement.innerHTML='&nbsp;';}}},updateMessagesUI:function(){if(this.messsagesElementHolder.style.display!==((this.get_selected()&&!this.get_moreInfoVisible())?'':'none')){this.messsagesElementHolder.style.display=(this.get_selected()&&!this.get_moreInfoVisible())?'':'none';}if(this.moreInfoElement.style.display!==((this.get_selected()&&this.get_moreInfoVisible())?'':'none')){this.moreInfoElement.style.display=(this.get_selected()&&this.get_moreInfoVisible())?'':'none';}},updateStatsAfterUnPause:function(ss){this.set_latestItemOld(ss.latestItemOld);this.set_latestItemSeen(ss.latestItemSeen);this.set_newMessages(ss.newMessages);this.set_totalMessages(ss.totalMessages);this.updateUI();}}
SpottedScript.Controls.ChatClient.StarActionEventArgs=function(roomGuid,starred){SpottedScript.Controls.ChatClient.StarActionEventArgs.initializeBase(this);this.roomGuid=roomGuid;this.starred=starred;}
SpottedScript.Controls.ChatClient.StarActionEventArgs.prototype={roomGuid:null,starred:false}
SpottedScript.Controls.ChatClient.PinActionEventArgs=function(roomGuid,pinned){SpottedScript.Controls.ChatClient.PinActionEventArgs.initializeBase(this);this.roomGuid=roomGuid;this.pinned=pinned;}
SpottedScript.Controls.ChatClient.PinActionEventArgs.prototype={roomGuid:null,pinned:false}
SpottedScript.Controls.ChatClient.RoomGuidEventArgs=function(roomGuid){SpottedScript.Controls.ChatClient.RoomGuidEventArgs.initializeBase(this);this.roomGuid=roomGuid;}
SpottedScript.Controls.ChatClient.RoomGuidEventArgs.prototype={roomGuid:null}
SpottedScript.Controls.ChatClient.Server=function(controller,sessionID,lastActionTicks,controllerRoomState){this.sessionID=sessionID;this.lastActionTicks=lastActionTicks;this.lastItemGuid='';this.requestIndex=0;this.controller=controller;this.criticalRequestQueue=[];this.criticalRequestInProgress=false;this.periodicBackgroundRefreshInProgress=false;this.cancelCurrentPeriodicBackgroundRefresh=false;this.periodicBackgroundRefreshIsPaused=false;this.roomState=controllerRoomState;}
SpottedScript.Controls.ChatClient.Server.prototype={controller:null,sessionID:0,lastActionTicks:null,lastItemGuid:null,requestIndex:0,webRequestIndex:0,roomState:null,criticalRequestQueue:null,criticalRequestInProgress:false,periodicBackgroundRefreshInProgress:false,cancelCurrentPeriodicBackgroundRefresh:false,periodicBackgroundRefreshIsPaused:false,gotItems:null,gotNoItems:null,gotWrongSessionException:null,gotTimeoutException:null,gotGenericException:null,gotRoom:null,gotNewPhotoRoom:null,gotMoreInfo:null,gotArchiveItems:null,gotRoomState:null,debugPrint:null,showLoadingIcon:null,hideLoadingIcon:null,doneDeleteArchive:null,start:function(){this.startChatRefreshIfIdle();window.setInterval(Function.createDelegate(this,this.startChatRefreshIfIdle),1000);},sendOrQueue:function(criticalRequest){if(this.showLoadingIcon){this.showLoadingIcon(this,null);}if(!this.criticalRequestQueue.length&&!this.criticalRequestInProgress){if(this.periodicBackgroundRefreshInProgress){this.cancelCurrentPeriodicBackgroundRefresh=true;}this.criticalRequestInProgress=true;criticalRequest.sendNow();this.debug('Processing request immediately');}else{Array.enqueue(this.criticalRequestQueue,criticalRequest);this.debug('Queueing request...');}},continueProcessingCriticalRequestQueue:function(){if(this.criticalRequestQueue.length>0){if(this.showLoadingIcon){this.showLoadingIcon(this,null);}var $0=Array.dequeue(this.criticalRequestQueue);$0.sendNow();this.debug('Processing queued request ('+this.criticalRequestQueue.length+' in the queue)');}else{if(this.hideLoadingIcon){this.hideLoadingIcon(this,null);}this.criticalRequestInProgress=false;}},startChatRefreshIfIdle:function(){if(this.periodicBackgroundRefreshIsPaused){return;}if(!this.criticalRequestQueue.length&&!this.criticalRequestInProgress&&!this.periodicBackgroundRefreshInProgress){this.periodicBackgroundRefreshInProgress=true;this.invokeRefreshChat();}if(!this.criticalRequestQueue.length&&!this.criticalRequestInProgress){if(this.hideLoadingIcon){this.hideLoadingIcon(this,null);}}else{if(this.showLoadingIcon){this.showLoadingIcon(this,null);}}},sendMessage:function(message,roomGuid){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.SendMessageRequest(this,message,roomGuid);this.sendOrQueue($0);},invokeSendMessage:function(message,roomGuid){Spotted.WebServices.ChatService.send(message,roomGuid,this.lastItemGuid,this.sessionID,'',this.roomState,Function.createDelegate(this,this.sendSuccessCallback),Function.createDelegate(this,this.sendFailureCallback),++this.webRequestIndex,2500);},sendSuccessCallback:function(s,userContext,methodName){if(s){this.processItems(s.itemsJson,s.lastActionTicks,s.lastItemGuidReturned,methodName,s.guestRefreshStubs,'',false);}this.continueProcessingCriticalRequestQueue();},sendFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},deleteArchive:function(roomGuid){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.DeleteArchiveRequest(this,roomGuid);this.sendOrQueue($0);},invokeDeleteArchive:function(roomGuid){Spotted.WebServices.ChatService.deleteArchive(roomGuid,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.deleteArchiveSuccessCallback),Function.createDelegate(this,this.deleteArchiveFailureCallback),++this.webRequestIndex,5000);},deleteArchiveSuccessCallback:function(s,userContext,methodName){if(s){if(this.doneDeleteArchive){this.doneDeleteArchive(this,new SpottedScript.Controls.ChatClient.RoomGuidEventArgs(s.roomGuid));}this.processItems(s.itemsJson,s.lastActionTicks,s.lastItemGuidReturned,methodName,s.guestRefreshStubs,'',false);}this.continueProcessingCriticalRequestQueue();},deleteArchiveFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},getArchiveItems:function(roomGuid){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.ArchiveItemsRequest(this,roomGuid);this.sendOrQueue($0);},invokeGetArchiveItems:function(roomGuid){Spotted.WebServices.ChatService.getArchive(roomGuid,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.getArchiveItemsSuccessCallback),Function.createDelegate(this,this.getArchiveItemsFailureCallback),++this.webRequestIndex,5000);},getArchiveItemsSuccessCallback:function(s,userContext,methodName){if(s){this.processItems(s.itemsJson,s.lastActionTicks,s.lastItemGuidReturned,methodName,s.guestRefreshStubs,'',false);if(this.gotArchiveItems){this.gotArchiveItems(this,new SpottedScript.Controls.ChatClient.GotArchiveItemsEventArgs(s.roomGuid,s.archiveItems));}}this.continueProcessingCriticalRequestQueue();},getArchiveItemsFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},getMoreInfo:function(roomGuid){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.MoreInfoRequest(this,roomGuid);this.sendOrQueue($0);},invokeGetMoreInfo:function(roomGuid){Spotted.WebServices.ChatService.moreInfo(roomGuid,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.getMoreInfoSuccessCallback),Function.createDelegate(this,this.getMoreInfoFailureCallback),++this.webRequestIndex,2500);},getMoreInfoSuccessCallback:function(s,userContext,methodName){if(s){if(this.gotMoreInfo){this.gotMoreInfo(this,new SpottedScript.Controls.ChatClient.GotMoreInfoEventArgs(s.roomGuid,s.moreInfoHtml));}this.processItems(s.itemsJson,s.lastActionTicks,s.lastItemGuidReturned,methodName,s.guestRefreshStubs,'',false);}this.continueProcessingCriticalRequestQueue();},getMoreInfoFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},switchPhotoRoom:function(newRoomGuid){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.SwitchPhotoRoomRequest(this,newRoomGuid);this.sendOrQueue($0);},invokeSwitchPhotoRoom:function(newRoomGuid){Spotted.WebServices.ChatService.switchPhotoRoom(this.controller.clientID,newRoomGuid,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.switchPhotoRoomSuccessCallback),Function.createDelegate(this,this.switchPhotoRoomFailureCallback),++this.webRequestIndex,2500);},switchPhotoRoomSuccessCallback:function(p,userContext,methodName){if(p){var $0=false;if(this.gotNewPhotoRoom){$0=this.gotNewPhotoRoom(this,new SpottedScript.Controls.ChatClient.GotRoomEventArgs(p.roomStub));}this.processItems(p.itemsJson,p.lastActionTicks,p.lastItemGuidReturned,methodName,p.guestRefreshStubs,p.roomStub.guid,$0);}this.continueProcessingCriticalRequestQueue();},switchPhotoRoomFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},pinRoom:function(newRoomGuid){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.PinRoomRequest(this,newRoomGuid);this.sendOrQueue($0);},invokePinRoom:function(newRoomGuid){Spotted.WebServices.ChatService.pin(this.controller.clientID,newRoomGuid,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.pinSuccessCallback),Function.createDelegate(this,this.pinFailureCallback),++this.webRequestIndex,2500);},pinSuccessCallback:function(p,userContext,methodName){if(p){var $0=false;if(this.gotRoom){$0=this.gotRoom(this,new SpottedScript.Controls.ChatClient.GotRoomEventArgs(p.roomStub));}this.processItems(p.itemsJson,p.lastActionTicks,p.lastItemGuidReturned,methodName,p.guestRefreshStubs,p.roomStub.guid,$0);}this.continueProcessingCriticalRequestQueue();},pinFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},unPinRoom:function(roomGuid){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.UnPinRoomRequest(this,roomGuid);this.sendOrQueue($0);},invokeUnPinRoom:function(roomGuid){Spotted.WebServices.ChatService.unPin(this.controller.clientID,roomGuid,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.unPinSuccessCallback),Function.createDelegate(this,this.unPinFailureCallback),++this.webRequestIndex,2500);},unPinSuccessCallback:function(u,userContext,methodName){this.processItems(u.itemsJson,u.lastActionTicks,u.lastItemGuidReturned,methodName,u.guestRefreshStubs,u.roomGuid,true);this.continueProcessingCriticalRequestQueue();},unPinFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},starRoom:function(roomGuid,starred){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.StarRoomRequest(this,roomGuid,starred);this.sendOrQueue($0);},invokeStarRoom:function(roomGuid,starred){Spotted.WebServices.ChatService.star(this.controller.clientID,roomGuid,starred,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.starSuccessCallback),Function.createDelegate(this,this.starFailureCallback),++this.webRequestIndex,2500);},starSuccessCallback:function(r,userContext,methodName){this.processItems(r.itemsJson,r.lastActionTicks,r.lastItemGuidReturned,methodName,r.guestRefreshStubs,'',false);this.continueProcessingCriticalRequestQueue();},starFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},rePinRoom:function(newRoomGuid){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.RePinRoomRequest(this,newRoomGuid);this.sendOrQueue($0);},invokeRePinRoom:function(roomGuid){Spotted.WebServices.ChatService.rePin(this.controller.clientID,roomGuid,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.rePinSuccessCallback),Function.createDelegate(this,this.rePinFailureCallback),++this.webRequestIndex,2500);},rePinSuccessCallback:function(r,userContext,methodName){this.processItems(r.itemsJson,r.lastActionTicks,r.lastItemGuidReturned,methodName,r.guestRefreshStubs,'',false);this.continueProcessingCriticalRequestQueue();},rePinFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},storeUpdatedRoomListOrder:function(){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.StoreUpdatedRoomListOrderRequest(this);this.sendOrQueue($0);},invokeStoreUpdatedRoomListOrder:function(){Spotted.WebServices.ChatService.storeUpdatedRoomListOrder(this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.storeUpdatedRoomListOrderSuccessCallback),Function.createDelegate(this,this.storeUpdatedRoomListOrderFailureCallback),++this.webRequestIndex,2500);},storeUpdatedRoomListOrderSuccessCallback:function(s,userContext,methodName){this.processItems(s.itemsJson,s.lastActionTicks,s.lastItemGuidReturned,methodName,s.guestRefreshStubs,'',false);this.continueProcessingCriticalRequestQueue();},storeUpdatedRoomListOrderFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},resumeAfterPause:function(){this.periodicBackgroundRefreshIsPaused=false;var $0=new SpottedScript.Controls.ChatClient.ForceResetSessionAndGetState(this);this.sendOrQueue($0);},invokeForceResetSessionAndGetState:function(){Spotted.WebServices.ChatService.resetSessionAndGetState(!this.requestIndex,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.forceResetSessionAndGetStateSuccessCallback),Function.createDelegate(this,this.forceResetSessionAndGetStateFailureCallback),++this.webRequestIndex,2500);},forceResetSessionAndGetStateSuccessCallback:function(result,userContext,methodName){var $0=result;if(this.gotRoomState){this.gotRoomState(this,new SpottedScript.Controls.ChatClient.GotRoomStateEventArgs($0.roomState));}this.processItems($0.itemsJson,$0.lastActionTicks,$0.lastItemGuidReturned,methodName,$0.guestRefreshStubs,'',false);this.continueProcessingCriticalRequestQueue();},forceResetSessionAndGetStateFailureCallback:function(error,userContext,methodName){if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}this.continueProcessingCriticalRequestQueue();},invokeRefreshChat:function(){Spotted.WebServices.ChatService.refresh(!this.requestIndex,this.lastItemGuid,this.sessionID,this.lastActionTicks,'',this.roomState,Function.createDelegate(this,this.refreshSuccessCallback),Function.createDelegate(this,this.refreshFailureCallback),++this.webRequestIndex,2500);},refreshSuccessCallback:function(result,userContext,methodName){if(!this.cancelCurrentPeriodicBackgroundRefresh){var $0=result;this.processItems($0.itemsJson,$0.lastActionTicks,$0.lastItemGuidReturned,methodName,$0.guestRefreshStubs,'',false);}else{this.debug('Cancelling periodic background refresh...');}this.cancelCurrentPeriodicBackgroundRefresh=false;this.periodicBackgroundRefreshInProgress=false;},refreshFailureCallback:function(error,userContext,methodName){this.cancelCurrentPeriodicBackgroundRefresh=false;this.periodicBackgroundRefreshInProgress=false;if(error.get_exceptionType().endsWith('+WrongSessionException')){this.periodicBackgroundRefreshIsPaused=true;if(this.gotWrongSessionException){this.gotWrongSessionException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}}else if(error.get_exceptionType().endsWith('+TimeoutException')){this.periodicBackgroundRefreshIsPaused=true;if(this.gotTimeoutException){this.gotTimeoutException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}}else{if(this.gotGenericException){this.gotGenericException(this,new SpottedScript.Controls.ChatClient.GotExceptionEventArgs(error,methodName));}}},processItems:function(itemsJson,lastActionTicks,lastItemGuidReturned,methodName,guestRefreshStubs,pinResultRoomGuid,excludeItemsFromPinnedRoom){var $0=eval(' [ '+itemsJson+' ] ');var $1=[];for(var $3=0;$3<$0.length;$3++){if(!excludeItemsFromPinnedRoom||$0[$3].roomGuid!==pinResultRoomGuid){var $4=SpottedScript.Controls.ChatClient.Items.Item.create($0[$3],this.controller,this.requestIndex,false,1);$1[$1.length]=$4;}}var $2=$1;if($2.length>0&&lastItemGuidReturned.length>0){this.lastItemGuid=lastItemGuidReturned;}if(lastActionTicks.length>0){this.lastActionTicks=lastActionTicks;}if(guestRefreshStubs){for(var $5=0;$5<guestRefreshStubs.length;$5++){var $6=guestRefreshStubs[$5];if($6.itemsJson.length>0){var $7=eval(' [ '+$6.itemsJson+' ] ');for(var $8=0;$8<$7.length;$8++){var $9=SpottedScript.Controls.ChatClient.Items.Item.create($7[$8],this.controller,this.requestIndex,true,1);$2[$2.length]=$9;}if($6.lastItemGuidReturned.length>0){for(var $A=0;$A<this.roomState.length;$A++){var $B=this.roomState[$A];if($B.guid===$6.roomGuid){$B.latestItem=$6.lastItemGuidReturned;break;}}}}}}if($2.length>0){if(this.gotItems){this.gotItems(this,new SpottedScript.Controls.ChatClient.GotItemsEventArgs($2,this.requestIndex));}}else{if(this.gotNoItems){this.gotNoItems(this,new SpottedScript.Controls.ChatClient.GotNoItemsEventArgs(this.requestIndex));}}this.requestIndex++;},debug:function(html){if(this.debugPrint){this.debugPrint(this,new SpottedScript.Controls.ChatClient.DebugPrintEventArgs(html));}}}
SpottedScript.Controls.ChatClient.StoreUpdatedRoomListOrderRequest=function(parent){SpottedScript.Controls.ChatClient.StoreUpdatedRoomListOrderRequest.initializeBase(this);this.parent=parent;}
SpottedScript.Controls.ChatClient.StoreUpdatedRoomListOrderRequest.prototype={parent:null,sendNow:function(){this.parent.invokeStoreUpdatedRoomListOrder();}}
SpottedScript.Controls.ChatClient.SendMessageRequest=function(parent,message,roomGuid){SpottedScript.Controls.ChatClient.SendMessageRequest.initializeBase(this);this.parent=parent;this.message=message;this.roomGuid=roomGuid;}
SpottedScript.Controls.ChatClient.SendMessageRequest.prototype={message:null,roomGuid:null,parent:null,sendNow:function(){this.parent.invokeSendMessage(this.message,this.roomGuid);}}
SpottedScript.Controls.ChatClient.MoreInfoRequest=function(parent,roomGuid){SpottedScript.Controls.ChatClient.MoreInfoRequest.initializeBase(this);this.parent=parent;this.roomGuid=roomGuid;}
SpottedScript.Controls.ChatClient.MoreInfoRequest.prototype={roomGuid:null,parent:null,sendNow:function(){this.parent.invokeGetMoreInfo(this.roomGuid);}}
SpottedScript.Controls.ChatClient.ArchiveItemsRequest=function(parent,roomGuid){SpottedScript.Controls.ChatClient.ArchiveItemsRequest.initializeBase(this);this.parent=parent;this.roomGuid=roomGuid;}
SpottedScript.Controls.ChatClient.ArchiveItemsRequest.prototype={roomGuid:null,parent:null,sendNow:function(){this.parent.invokeGetArchiveItems(this.roomGuid);}}
SpottedScript.Controls.ChatClient.DeleteArchiveRequest=function(parent,roomGuid){SpottedScript.Controls.ChatClient.DeleteArchiveRequest.initializeBase(this);this.parent=parent;this.roomGuid=roomGuid;}
SpottedScript.Controls.ChatClient.DeleteArchiveRequest.prototype={roomGuid:null,parent:null,sendNow:function(){this.parent.invokeDeleteArchive(this.roomGuid);}}
SpottedScript.Controls.ChatClient.UnPinRoomRequest=function(parent,roomGuid){SpottedScript.Controls.ChatClient.UnPinRoomRequest.initializeBase(this);this.parent=parent;this.roomGuid=roomGuid;}
SpottedScript.Controls.ChatClient.UnPinRoomRequest.prototype={roomGuid:null,parent:null,sendNow:function(){this.parent.invokeUnPinRoom(this.roomGuid);}}
SpottedScript.Controls.ChatClient.PinRoomRequest=function(parent,newRoomGuid){SpottedScript.Controls.ChatClient.PinRoomRequest.initializeBase(this);this.parent=parent;this.newRoomGuid=newRoomGuid;}
SpottedScript.Controls.ChatClient.PinRoomRequest.prototype={newRoomGuid:null,parent:null,sendNow:function(){this.parent.invokePinRoom(this.newRoomGuid);}}
SpottedScript.Controls.ChatClient.StarRoomRequest=function(parent,roomGuid,starred){SpottedScript.Controls.ChatClient.StarRoomRequest.initializeBase(this);this.parent=parent;this.roomGuid=roomGuid;this.starred=starred;}
SpottedScript.Controls.ChatClient.StarRoomRequest.prototype={roomGuid:null,starred:false,parent:null,sendNow:function(){this.parent.invokeStarRoom(this.roomGuid,this.starred);}}
SpottedScript.Controls.ChatClient.SwitchPhotoRoomRequest=function(parent,newRoomGuid){SpottedScript.Controls.ChatClient.SwitchPhotoRoomRequest.initializeBase(this);this.parent=parent;this.newRoomGuid=newRoomGuid;}
SpottedScript.Controls.ChatClient.SwitchPhotoRoomRequest.prototype={newRoomGuid:null,parent:null,sendNow:function(){this.parent.invokeSwitchPhotoRoom(this.newRoomGuid);}}
SpottedScript.Controls.ChatClient.RePinRoomRequest=function(parent,roomGuid){SpottedScript.Controls.ChatClient.RePinRoomRequest.initializeBase(this);this.parent=parent;this.roomGuid=roomGuid;}
SpottedScript.Controls.ChatClient.RePinRoomRequest.prototype={roomGuid:null,parent:null,sendNow:function(){this.parent.invokeRePinRoom(this.roomGuid);}}
SpottedScript.Controls.ChatClient.ForceResetSessionAndGetState=function(parent){SpottedScript.Controls.ChatClient.ForceResetSessionAndGetState.initializeBase(this);this.parent=parent;}
SpottedScript.Controls.ChatClient.ForceResetSessionAndGetState.prototype={parent:null,sendNow:function(){this.parent.invokeForceResetSessionAndGetState();}}
SpottedScript.Controls.ChatClient.CriticalRequest=function(){}
SpottedScript.Controls.ChatClient.GotNoItemsEventArgs=function(serverRequestIndex){SpottedScript.Controls.ChatClient.GotNoItemsEventArgs.initializeBase(this);this.serverRequestIndex=serverRequestIndex;}
SpottedScript.Controls.ChatClient.GotNoItemsEventArgs.prototype={serverRequestIndex:0}
SpottedScript.Controls.ChatClient.GotMoreInfoEventArgs=function(roomGuid,moreInfoHtml){SpottedScript.Controls.ChatClient.GotMoreInfoEventArgs.initializeBase(this);this.roomGuid=roomGuid;this.moreInfoHtml=moreInfoHtml;}
SpottedScript.Controls.ChatClient.GotMoreInfoEventArgs.prototype={roomGuid:null,moreInfoHtml:null}
SpottedScript.Controls.ChatClient.GotArchiveItemsEventArgs=function(roomGuid,archiveItems){SpottedScript.Controls.ChatClient.GotArchiveItemsEventArgs.initializeBase(this);this.roomGuid=roomGuid;this.archiveItems=archiveItems;}
SpottedScript.Controls.ChatClient.GotArchiveItemsEventArgs.prototype={roomGuid:null,archiveItems:null}
SpottedScript.Controls.ChatClient.GotItemsEventArgs=function(items,serverRequestIndex){SpottedScript.Controls.ChatClient.GotItemsEventArgs.initializeBase(this);this.items=items;this.serverRequestIndex=serverRequestIndex;}
SpottedScript.Controls.ChatClient.GotItemsEventArgs.prototype={items:null,serverRequestIndex:0}
SpottedScript.Controls.ChatClient.GotRoomEventArgs=function(roomStub){SpottedScript.Controls.ChatClient.GotRoomEventArgs.initializeBase(this);this.roomStub=roomStub;}
SpottedScript.Controls.ChatClient.GotRoomEventArgs.prototype={roomStub:null}
SpottedScript.Controls.ChatClient.GotRoomStateEventArgs=function(roomState){SpottedScript.Controls.ChatClient.GotRoomStateEventArgs.initializeBase(this);this.roomState=roomState;}
SpottedScript.Controls.ChatClient.GotRoomStateEventArgs.prototype={roomState:null}
SpottedScript.Controls.ChatClient.GotExceptionEventArgs=function(error,method){SpottedScript.Controls.ChatClient.GotExceptionEventArgs.initializeBase(this);this.error=error;this.method=method;}
SpottedScript.Controls.ChatClient.GotExceptionEventArgs.prototype={error:null,method:null}
SpottedScript.Controls.ChatClient.DebugPrintEventArgs=function(html){SpottedScript.Controls.ChatClient.DebugPrintEventArgs.initializeBase(this);this.html=html;}
SpottedScript.Controls.ChatClient.DebugPrintEventArgs.prototype={html:null}
SpottedScript.Controls.ChatClient.View=function(clientId){this.clientId=clientId;}
SpottedScript.Controls.ChatClient.View.prototype={clientId:null,get_outerMain:function(){return document.getElementById(this.clientId+'_OuterMain');},get_tabsChatLink:function(){return document.getElementById(this.clientId+'_TabsChatLink');},get_tabsStreamLink:function(){return document.getElementById(this.clientId+'_TabsStreamLink');},get_tabsFavouritesLink:function(){return document.getElementById(this.clientId+'_TabsFavouritesLink');},get_tabsInboxLink:function(){return document.getElementById(this.clientId+'_TabsInboxLink');},get_tabChatHolder:function(){return document.getElementById(this.clientId+'_TabChatHolder');},get_roomsMain:function(){return document.getElementById(this.clientId+'_RoomsMain');},get_roomList:function(){return document.getElementById(this.clientId+'_RoomList');},get_privateChatDrop:function(){return document.getElementById(this.clientId+'_PrivateChatDrop');},get_roomPrivateListDivider:function(){return document.getElementById(this.clientId+'_RoomPrivateListDivider');},get_roomPrivateList:function(){return document.getElementById(this.clientId+'_RoomPrivateList');},get_roomGuestListDivider:function(){return document.getElementById(this.clientId+'_RoomGuestListDivider');},get_roomGuestList:function(){return document.getElementById(this.clientId+'_RoomGuestList');},get_privateChatDropMain:function(){return document.getElementById(this.clientId+'_PrivateChatDropMain');},get_messagesMain:function(){return document.getElementById(this.clientId+'_MessagesMain');},get_textBoxHolder:function(){return document.getElementById(this.clientId+'_TextBoxHolder');},get_textBox:function(){return document.getElementById(this.clientId+'_TextBox');},get_messageList:function(){return document.getElementById(this.clientId+'_MessageList');},get_wrongSessionHolder:function(){return document.getElementById(this.clientId+'_WrongSessionHolder');},get_wrongSessionResumeLink:function(){return document.getElementById(this.clientId+'_WrongSessionResumeLink');},get_timeoutHolder:function(){return document.getElementById(this.clientId+'_TimeoutHolder');},get_timeoutResumeLink:function(){return document.getElementById(this.clientId+'_TimeoutResumeLink');},get_deleteArchiveHolder:function(){return document.getElementById(this.clientId+'_DeleteArchiveHolder');},get_deleteArchiveAnchor:function(){return document.getElementById(this.clientId+'_DeleteArchiveAnchor');},get_deleteArchiveDoneLabel:function(){return document.getElementById(this.clientId+'_DeleteArchiveDoneLabel');},get_popupsCheckBox:function(){return document.getElementById(this.clientId+'_PopupsCheckBox');},get_stickyCheckBox:function(){return document.getElementById(this.clientId+'_StickyCheckBox');},get_downlevelMain:function(){return document.getElementById(this.clientId+'_DownlevelMain');},get_messagesHeaderOuter:function(){return document.getElementById(this.clientId+'_MessagesHeaderOuter');},get_messagesHeaderLink:function(){return document.getElementById(this.clientId+'_MessagesHeaderLink');},get_messagesHeaderMoreLink:function(){return document.getElementById(this.clientId+'_MessagesHeaderMoreLink');},get_tabStreamHolder:function(){return document.getElementById(this.clientId+'_TabStreamHolder');},get_streamMain:function(){return document.getElementById(this.clientId+'_StreamMain');},get_streamList:function(){return document.getElementById(this.clientId+'_StreamList');},get_tabFavouritesHolder:function(){return document.getElementById(this.clientId+'_TabFavouritesHolder');},get_favouritesMain:function(){return document.getElementById(this.clientId+'_FavouritesMain');},get_tabInboxHolder:function(){return document.getElementById(this.clientId+'_TabInboxHolder');},get_inboxMain:function(){return document.getElementById(this.clientId+'_InboxMain');},get_initGo:function(){return document.getElementById(this.clientId+'_InitGo');},get_initUsrK:function(){return document.getElementById(this.clientId+'_InitUsrK');},get_initClientID:function(){return document.getElementById(this.clientId+'_InitClientID');},get_initLastActionTicks:function(){return document.getElementById(this.clientId+'_InitLastActionTicks');},get_initSystemMessagesRoomGuid:function(){return document.getElementById(this.clientId+'_InitSystemMessagesRoomGuid');},get_initInboxUpdatesRoomGuid:function(){return document.getElementById(this.clientId+'_InitInboxUpdatesRoomGuid');},get_initBuddyAlertsRoomGuid:function(){return document.getElementById(this.clientId+'_InitBuddyAlertsRoomGuid');},get_initBuddyStreamRoomGuid:function(){return document.getElementById(this.clientId+'_InitBuddyStreamRoomGuid');},get_initAnimatePopups:function(){return document.getElementById(this.clientId+'_InitAnimatePopups');},get_initTopPhoto:function(){return document.getElementById(this.clientId+'_InitTopPhoto');}}
Type.registerNamespace('SpottedScript.Controls.ChatClient.Shared');
SpottedScript.Controls.ChatClient.Shared.RoomType=function(){};SpottedScript.Controls.ChatClient.Shared.RoomType.prototype = {normal:1,inboxUpdates:2,newPhotosAll:3,newPhotosProSpotters:4,newPhotosSpotters:5,newPhotosBuddies:6,systemMessages:7,privateChat:8,privateChatRequestsBuddies:9,privateChatRequestsStrangers:10,randomChat:11,buddyAlerts:12,orphans:13,laughs:14,newVideosAll:15,publicStream:16,buddyStream:17,privateChatRequests:18}
SpottedScript.Controls.ChatClient.Shared.RoomType.registerEnum('SpottedScript.Controls.ChatClient.Shared.RoomType',false);SpottedScript.Controls.ChatClient.Shared.ItemType=function(){};SpottedScript.Controls.ChatClient.Shared.ItemType.prototype = {publicChatMessage:1,privateChatMessage:2,commentAlert:3,privateMessageAlert:4,laughAlert:5,loginAlert:6,photoAlert:7,logoutAlert:8,invite:9,groupNewsAlert:10,error:11,debug:12,commentChatMessage:13,buddyLaughAlert:14,topPhoto:15}
SpottedScript.Controls.ChatClient.Shared.ItemType.registerEnum('SpottedScript.Controls.ChatClient.Shared.ItemType',false);SpottedScript.Controls.ChatClient.Shared.PresenceState=function(){};SpottedScript.Controls.ChatClient.Shared.PresenceState.prototype = {none:0,offline:1,online:2,chatting:3}
SpottedScript.Controls.ChatClient.Shared.PresenceState.registerEnum('SpottedScript.Controls.ChatClient.Shared.PresenceState',false);SpottedScript.Controls.ChatClient.Shared.ArchiveStub=function(){SpottedScript.Controls.ChatClient.Shared.ArchiveStub.initializeBase(this);}
SpottedScript.Controls.ChatClient.Shared.ArchiveStub.prototype={roomGuid:null,archiveItems:null}
SpottedScript.Controls.ChatClient.Shared.DeleteArchiveStub=function(){SpottedScript.Controls.ChatClient.Shared.DeleteArchiveStub.initializeBase(this);}
SpottedScript.Controls.ChatClient.Shared.DeleteArchiveStub.prototype={roomGuid:null}
SpottedScript.Controls.ChatClient.Shared.TopPhotoStub=function(guid,type,dateTime,roomGuid,photoK,photoUrl,photoIcon,photoWeb,photoWebWidth,photoWebHeight,photoThumb,photoThumbWidth,photoThumbHeight){SpottedScript.Controls.ChatClient.Shared.TopPhotoStub.initializeBase(this,[guid,type,dateTime,roomGuid]);this.photoK=photoK;this.photoUrl=photoUrl;this.photoIcon=photoIcon;this.photoWeb=photoWeb;this.photoWebWidth=photoWebWidth;this.photoWebHeight=photoWebHeight;this.photoThumb=photoThumb;this.photoThumbWidth=photoThumbWidth;this.photoThumbHeight=photoThumbHeight;}
SpottedScript.Controls.ChatClient.Shared.TopPhotoStub.prototype={photoK:0,photoUrl:null,photoIcon:null,photoWeb:null,photoWebWidth:0,photoWebHeight:0,photoThumb:null,photoThumbWidth:0,photoThumbHeight:0}
SpottedScript.Controls.ChatClient.Shared.UnPinStub=function(){SpottedScript.Controls.ChatClient.Shared.UnPinStub.initializeBase(this);}
SpottedScript.Controls.ChatClient.Shared.UnPinStub.prototype={roomGuid:null}
SpottedScript.Controls.ChatClient.Shared.CommentMessageStub=function(guid,type,dateTime,roomGuid,nickName,stmuParams,usrK,pic,chatPic,text,pinRoomGuid,url,subject){SpottedScript.Controls.ChatClient.Shared.CommentMessageStub.initializeBase(this,[guid,type,dateTime,roomGuid,nickName,stmuParams,usrK,pic,chatPic,text,pinRoomGuid]);this.url=url;this.subject=subject;}
SpottedScript.Controls.ChatClient.Shared.CommentMessageStub.prototype={url:null,subject:null}
SpottedScript.Controls.ChatClient.Shared.MoreInfoStub=function(){SpottedScript.Controls.ChatClient.Shared.MoreInfoStub.initializeBase(this);}
SpottedScript.Controls.ChatClient.Shared.MoreInfoStub.prototype={roomGuid:null,moreInfoHtml:null}
SpottedScript.Controls.ChatClient.Shared.AlertStub=function(guid,type,dateTime,roomGuid,nickName,stmuParams,usrK,pic){SpottedScript.Controls.ChatClient.Shared.AlertStub.initializeBase(this,[guid,type,dateTime,roomGuid]);this.nickName=nickName;this.stmuParams=stmuParams;this.usrK=usrK;this.pic=pic;}
SpottedScript.Controls.ChatClient.Shared.AlertStub.prototype={nickName:null,stmuParams:null,usrK:0,pic:null}
SpottedScript.Controls.ChatClient.Shared.LaughStub=function(guid,type,dateTime,roomGuid,nickName,stmuParams,usrK,pic,chatPic,text,pinRoomGuid,url,subject){SpottedScript.Controls.ChatClient.Shared.LaughStub.initializeBase(this,[guid,type,dateTime,roomGuid,nickName,stmuParams,usrK,pic,chatPic,text,pinRoomGuid,url,subject]);}
SpottedScript.Controls.ChatClient.Shared.GuestRefreshStub=function(){}
SpottedScript.Controls.ChatClient.Shared.GuestRefreshStub.prototype={roomGuid:null,lastItemGuidReturned:null,itemsJson:null}
SpottedScript.Controls.ChatClient.Shared.GetStateStub=function(){SpottedScript.Controls.ChatClient.Shared.GetStateStub.initializeBase(this);}
SpottedScript.Controls.ChatClient.Shared.GetStateStub.prototype={roomState:null}
SpottedScript.Controls.ChatClient.Shared.PrivateStub=function(guid,type,dateTime,roomGuid,nickName,stmuParams,usrK,pic,chatPic,text,pinRoomGuid,buddy){SpottedScript.Controls.ChatClient.Shared.PrivateStub.initializeBase(this,[guid,type,dateTime,roomGuid,nickName,stmuParams,usrK,pic,chatPic,text,pinRoomGuid]);this.buddy=buddy;}
SpottedScript.Controls.ChatClient.Shared.PrivateStub.prototype={buddy:false}
SpottedScript.Controls.ChatClient.Shared.StateStub=function(){}
SpottedScript.Controls.ChatClient.Shared.StateStub.prototype={guid:null,selected:false,guest:false,newMessages:0,totalMessages:0,latestItem:null,latestItemOld:null,latestItemSeen:null,listOrder:0,tokenDateTimeTicks:null,token:null,initialise:function(guid,selected,guest,newMessages,totalMessages,latestItem,latestItemSeen,latestItemOld,listOrder,tokenDateTimeTicks,token){this.guid=guid;this.selected=selected;this.guest=guest;this.newMessages=newMessages;this.totalMessages=totalMessages;this.latestItem=latestItem;this.latestItemOld=latestItemOld;this.latestItemSeen=latestItemSeen;this.listOrder=listOrder;this.tokenDateTimeTicks=tokenDateTimeTicks;this.token=token;}}
SpottedScript.Controls.ChatClient.Shared.RoomHtml=function(roomStub,loggedIn){this.roomStub=roomStub;this.clientID=this.roomStub.parentClientID+'_Room_'+this.roomStub.guid;this.linkID=this.clientID+'_Link';this.presenceID=this.clientID+'_Presence';this.crossID=this.clientID+'_Cross';this.totalID=this.clientID+'_Total';this.statsSeperatorID=this.clientID+'_StatsSeperator';this.unreadID=this.clientID+'_Unread';this.loggedIn=loggedIn;}
SpottedScript.Controls.ChatClient.Shared.RoomHtml.get_isFireFox2=function(){return SpottedScript.Misc.get_browserIsFirefox()&&SpottedScript.Misc.get_browserVersion()>=2&&SpottedScript.Misc.get_browserVersion()<3;}
SpottedScript.Controls.ChatClient.Shared.RoomHtml.get_isIE=function(){return SpottedScript.Misc.get_browserIsIE();}
SpottedScript.Controls.ChatClient.Shared.RoomHtml.prototype={roomStub:null,clientID:null,linkID:null,presenceID:null,crossID:null,totalID:null,statsSeperatorID:null,unreadID:null,loggedIn:false,toHtml:function(){var $0=new Spotted.System.Text.StringBuilder();this.appendHtml($0);return $0.toString();},appendHtml:function(sb){sb.append('<div');sb.appendAttribute('id',this.clientID);sb.appendAttribute('class',(this.roomStub.selected)?'ChatClientRoomHolder ChatClientRoomSelected':'ChatClientRoomHolder');sb.appendAttribute('roomGuid',this.roomStub.guid);sb.appendAttribute('roomName',this.roomStub.name);sb.appendAttribute('roomUrl',this.roomStub.url);sb.appendAttribute('roomPinned',this.roomStub.pinned.toString().toLowerCase());sb.appendAttribute('roomIsStarredByDefault',this.roomStub.isStarredByDefault.toString().toLowerCase());sb.appendAttribute('roomStarred',this.roomStub.starred.toString().toLowerCase());sb.appendAttribute('roomStarrable',this.roomStub.starrable.toString().toLowerCase());sb.appendAttribute('roomPinable',this.roomStub.pinable.toString().toLowerCase());sb.appendAttribute('roomSelected',this.roomStub.selected.toString().toLowerCase());sb.appendAttribute('roomGuest',this.roomStub.guest.toString().toLowerCase());sb.appendAttribute('roomNewMessages',this.roomStub.newMessages.toString());sb.appendAttribute('roomTotalMessages',this.roomStub.totalMessages.toString());sb.appendAttribute('roomLatestItem',this.roomStub.latestItem);sb.appendAttribute('roomLatestItemSeen',this.roomStub.latestItemSeen);sb.appendAttribute('roomLatestItemOld',this.roomStub.latestItemOld);sb.appendAttribute('roomReadOnly',this.roomStub.readOnly.toString().toLowerCase());sb.appendAttribute('roomListOrder',this.roomStub.listOrder.toString());sb.appendAttribute('roomIsPhotoChatRoom',this.roomStub.isPhotoChatRoom.toString().toLowerCase());sb.appendAttribute('roomIsPrivateChatRoom',this.roomStub.isPrivateChatRoom.toString().toLowerCase());sb.appendAttribute('roomIsNewPhotoAlertsRoom',this.roomStub.isNewPhotoAlertsRoom.toString().toLowerCase());sb.appendAttribute('roomPresence',(this.roomStub.presence).toString());sb.appendAttribute('roomIcon',this.roomStub.icon);sb.appendAttribute('roomTokenDateTimeTicks',this.roomStub.tokenDateTimeTicks);sb.appendAttribute('roomToken',this.roomStub.token);sb.appendAttribute('roomHasArchive',this.roomStub.hasArchive.toString().toLowerCase());if(this.roomStub.hiddenFromRoomList){sb.appendAttribute('style','display:none;');}sb.appendAttribute('roomHiddenFromRoomList',this.roomStub.hiddenFromRoomList.toString().toLowerCase());sb.appendAttribute('roomIsStreamRoom',this.roomStub.isStreamRoom.toString().toLowerCase());sb.append('>');sb.append('<div class=\"ChatClientRoomLinkHolder\">');sb.append('<span');sb.appendAttribute('id',this.linkID);sb.appendAttribute('class',(this.roomStub.selected)?'ChatClientRoomLink ChatClientRoomLinkSelected':((!this.roomStub.newMessages)?'ChatClientRoomLink ChatClientRoomLinkNoUnread':'ChatClientRoomLink'));if(this.roomStub.icon.length>0){sb.appendAttribute('onmouseover','stma(\''+this.roomStub.icon+'\');');sb.appendAttribute('onmouseout','htm();');}sb.append('>');sb.append(this.roomStub.name);sb.append('</span>');if(this.roomStub.isPrivateChatRoom&&(this.roomStub.presence===2||this.roomStub.presence===3)){sb.append('<img');sb.appendAttribute('src',(this.roomStub.presence===3)?'/gfx/chat-chatting.png':'/gfx/chat-online.png');sb.appendAttribute('width',(this.roomStub.presence===3)?'13':'9');sb.appendAttribute('height','11');sb.appendAttribute('id',this.presenceID);sb.appendAttribute('onmouseover',(this.roomStub.presence===2)?'sttd(3);':'sttd(4);');sb.appendAttribute('onmouseout','htm();');sb.appendAttribute('class','ChatClientRoomPresence');sb.append(' />');}sb.append('</div>');sb.append('<div class=\"ChatClientRoomPinHolder\">');var $0=this.loggedIn&&this.roomStub.pinable;sb.append('<img');sb.appendAttribute('id',this.crossID);sb.appendAttribute('src',($0)?'/gfx/chat-cross.png':'/gfx/1pix.gif');sb.append(' width=\"11\" height=\"11\"');sb.appendAttribute('class',($0)?'ChatClientRoomCross':'ChatClientRoomNoCross');if($0){sb.appendAttribute('onmouseover','sttd(1);');sb.appendAttribute('onmouseout','htm();');}sb.append(' />');sb.append('</div>');sb.append('<div class=\"ChatClientRoomStatsHolder\">');sb.append('<span class=\"ChatClientRoomUnreadHolder\"');sb.appendAttribute('id',this.unreadID);sb.append('>');sb.append((!this.roomStub.newMessages)?'&nbsp;':this.roomStub.newMessages.toString());sb.append('</span>');sb.append('<span class=\"ChatClientRoomSeperatorHolder\"');sb.appendAttribute('id',this.statsSeperatorID);sb.append('>');sb.append((this.roomStub.newMessages>0)?'/':'&nbsp;');sb.append('</span>');sb.append('<span class=\"ChatClientRoomTotalHolder\"');sb.appendAttribute('id',this.totalID);sb.append('>');sb.append((!this.roomStub.totalMessages)?'&nbsp;':this.roomStub.totalMessages.toString());sb.append('</span>');sb.append('</div>');sb.append('</div>');}}
SpottedScript.Controls.ChatClient.Shared.SendStub=function(){SpottedScript.Controls.ChatClient.Shared.SendStub.initializeBase(this);}
SpottedScript.Controls.ChatClient.Shared.SendStub.prototype={itemGuid:null}
SpottedScript.Controls.ChatClient.Shared.PinStub=function(){SpottedScript.Controls.ChatClient.Shared.PinStub.initializeBase(this);}
SpottedScript.Controls.ChatClient.Shared.PinStub.prototype={roomStub:null}
SpottedScript.Controls.ChatClient.Shared.ItemStub=function(guid,type,dateTime,roomGuid){this.guid=guid;this.type=type;this.dateTime=dateTime;this.roomGuid=roomGuid;}
SpottedScript.Controls.ChatClient.Shared.ItemStub.prototype={guid:null,type:0,dateTime:null,roomGuid:null}
SpottedScript.Controls.ChatClient.Shared.MessageStub=function(guid,type,dateTime,roomGuid,nickName,stmuParams,usrK,pic,chatPic,text,pinRoomGuid){SpottedScript.Controls.ChatClient.Shared.MessageStub.initializeBase(this,[guid,type,dateTime,roomGuid]);this.nickName=nickName;this.stmuParams=stmuParams;this.usrK=usrK;this.pic=pic;this.chatPic=chatPic;this.text=text;this.pinRoomGuid=pinRoomGuid;}
SpottedScript.Controls.ChatClient.Shared.MessageStub.prototype={nickName:null,stmuParams:null,usrK:0,pic:null,chatPic:null,text:null,pinRoomGuid:null}
SpottedScript.Controls.ChatClient.Shared.PhotoStub=function(guid,type,dateTime,roomGuid,width,height,url,web,icon,thumb,thumbWidth,thumbHeight,buddyAlert){SpottedScript.Controls.ChatClient.Shared.PhotoStub.initializeBase(this,[guid,type,dateTime,roomGuid]);this.width=width;this.height=height;this.url=url;this.web=web;this.icon=icon;this.thumb=thumb;this.thumbWidth=thumbWidth;this.thumbHeight=thumbHeight;this.buddyAlert=buddyAlert;}
SpottedScript.Controls.ChatClient.Shared.PhotoStub.prototype={width:0,height:0,url:null,web:null,icon:null,thumb:null,thumbWidth:0,thumbHeight:0,buddyAlert:false}
SpottedScript.Controls.ChatClient.Shared.RefreshStub=function(){}
SpottedScript.Controls.ChatClient.Shared.RefreshStub.prototype={lastItemGuidReturned:null,lastActionTicks:null,itemsJson:null,guestRefreshStubs:null}
SpottedScript.Controls.ChatClient.Shared.RoomStub=function(parentClientID,guid,name,url,pinned,starred,isStarredByDefault,pinable,starrable,selected,guest,newMessages,totalMessages,latestItem,latestItemSeen,latestItemOld,readOnly,listOrder,isPhotoChatRoom,isPrivateChatRoom,isNewPhotoAlertsRoom,presence,icon,tokenDateTimeTicks,token,hasArchive,hiddenFromRoomList,isStreamRoom){this.parentClientID=parentClientID;this.guid=guid;this.name=name;this.url=url;this.pinned=pinned;this.starred=starred;this.isStarredByDefault=isStarredByDefault;this.pinable=pinable;this.starrable=starrable;this.selected=selected;this.guest=guest;this.newMessages=newMessages;this.totalMessages=totalMessages;this.latestItem=latestItem;this.latestItemSeen=latestItemSeen;this.latestItemOld=latestItemOld;this.readOnly=readOnly;this.listOrder=listOrder;this.isPhotoChatRoom=isPhotoChatRoom;this.isPrivateChatRoom=isPrivateChatRoom;this.isNewPhotoAlertsRoom=isNewPhotoAlertsRoom;this.presence=presence;this.icon=icon;this.tokenDateTimeTicks=tokenDateTimeTicks;this.token=token;this.hasArchive=hasArchive;this.hiddenFromRoomList=hiddenFromRoomList;this.isStreamRoom=isStreamRoom;}
SpottedScript.Controls.ChatClient.Shared.RoomStub.prototype={parentClientID:null,guid:null,name:null,url:null,pinned:false,pinable:false,starred:false,starrable:false,isStarredByDefault:false,selected:false,guest:false,newMessages:0,totalMessages:0,latestItem:null,latestItemSeen:null,latestItemOld:null,readOnly:false,listOrder:0,isPhotoChatRoom:false,isPrivateChatRoom:false,isNewPhotoAlertsRoom:false,presence:0,icon:null,tokenDateTimeTicks:null,token:null,hasArchive:false,hiddenFromRoomList:false,isStreamRoom:false}
SpottedScript.Controls.ChatClient.Items.Item.registerClass('SpottedScript.Controls.ChatClient.Items.Item');
SpottedScript.Controls.ChatClient.Items.TopPhoto.registerClass('SpottedScript.Controls.ChatClient.Items.TopPhoto',SpottedScript.Controls.ChatClient.Items.Item);
SpottedScript.Controls.ChatClient.Items.Html.registerClass('SpottedScript.Controls.ChatClient.Items.Html',SpottedScript.Controls.ChatClient.Items.Item);
SpottedScript.Controls.ChatClient.Items.Newable.registerClass('SpottedScript.Controls.ChatClient.Items.Newable',SpottedScript.Controls.ChatClient.Items.Html);
SpottedScript.Controls.ChatClient.Items.Message.registerClass('SpottedScript.Controls.ChatClient.Items.Message',SpottedScript.Controls.ChatClient.Items.Newable,SpottedScript.Controls.ChatClient.Items.IHasPostingUsr);
SpottedScript.Controls.ChatClient.Items.CommentMessage.registerClass('SpottedScript.Controls.ChatClient.Items.CommentMessage',SpottedScript.Controls.ChatClient.Items.Message);
SpottedScript.Controls.ChatClient.Items.Alert.registerClass('SpottedScript.Controls.ChatClient.Items.Alert',SpottedScript.Controls.ChatClient.Items.Newable,SpottedScript.Controls.ChatClient.Items.IHasPostingUsr);
SpottedScript.Controls.ChatClient.Items.Laugh.registerClass('SpottedScript.Controls.ChatClient.Items.Laugh',SpottedScript.Controls.ChatClient.Items.CommentMessage);
SpottedScript.Controls.ChatClient.Items.Logout.registerClass('SpottedScript.Controls.ChatClient.Items.Logout',SpottedScript.Controls.ChatClient.Items.Alert);
SpottedScript.Controls.ChatClient.Items.Login.registerClass('SpottedScript.Controls.ChatClient.Items.Login',SpottedScript.Controls.ChatClient.Items.Alert);
SpottedScript.Controls.ChatClient.Items.Note.registerClass('SpottedScript.Controls.ChatClient.Items.Note',SpottedScript.Controls.ChatClient.Items.Html);
SpottedScript.Controls.ChatClient.Items.Photo.registerClass('SpottedScript.Controls.ChatClient.Items.Photo',SpottedScript.Controls.ChatClient.Items.Newable);
SpottedScript.Controls.ChatClient.Items.Error.registerClass('SpottedScript.Controls.ChatClient.Items.Error',SpottedScript.Controls.ChatClient.Items.Html);
SpottedScript.Controls.ChatClient.Items.Private.registerClass('SpottedScript.Controls.ChatClient.Items.Private',SpottedScript.Controls.ChatClient.Items.Message);
SpottedScript.Controls.ChatClient.PopupArea.registerClass('SpottedScript.Controls.ChatClient.PopupArea');
SpottedScript.Controls.ChatClient.Popup.registerClass('SpottedScript.Controls.ChatClient.Popup');
SpottedScript.Controls.ChatClient.Controller.registerClass('SpottedScript.Controls.ChatClient.Controller');
SpottedScript.Controls.ChatClient.Room.registerClass('SpottedScript.Controls.ChatClient.Room');
SpottedScript.Controls.ChatClient.StarActionEventArgs.registerClass('SpottedScript.Controls.ChatClient.StarActionEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.PinActionEventArgs.registerClass('SpottedScript.Controls.ChatClient.PinActionEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.RoomGuidEventArgs.registerClass('SpottedScript.Controls.ChatClient.RoomGuidEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.Server.registerClass('SpottedScript.Controls.ChatClient.Server');
SpottedScript.Controls.ChatClient.CriticalRequest.registerClass('SpottedScript.Controls.ChatClient.CriticalRequest');
SpottedScript.Controls.ChatClient.StoreUpdatedRoomListOrderRequest.registerClass('SpottedScript.Controls.ChatClient.StoreUpdatedRoomListOrderRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.SendMessageRequest.registerClass('SpottedScript.Controls.ChatClient.SendMessageRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.MoreInfoRequest.registerClass('SpottedScript.Controls.ChatClient.MoreInfoRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.ArchiveItemsRequest.registerClass('SpottedScript.Controls.ChatClient.ArchiveItemsRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.DeleteArchiveRequest.registerClass('SpottedScript.Controls.ChatClient.DeleteArchiveRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.UnPinRoomRequest.registerClass('SpottedScript.Controls.ChatClient.UnPinRoomRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.PinRoomRequest.registerClass('SpottedScript.Controls.ChatClient.PinRoomRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.StarRoomRequest.registerClass('SpottedScript.Controls.ChatClient.StarRoomRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.SwitchPhotoRoomRequest.registerClass('SpottedScript.Controls.ChatClient.SwitchPhotoRoomRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.RePinRoomRequest.registerClass('SpottedScript.Controls.ChatClient.RePinRoomRequest',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.ForceResetSessionAndGetState.registerClass('SpottedScript.Controls.ChatClient.ForceResetSessionAndGetState',SpottedScript.Controls.ChatClient.CriticalRequest);
SpottedScript.Controls.ChatClient.GotNoItemsEventArgs.registerClass('SpottedScript.Controls.ChatClient.GotNoItemsEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.GotMoreInfoEventArgs.registerClass('SpottedScript.Controls.ChatClient.GotMoreInfoEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.GotArchiveItemsEventArgs.registerClass('SpottedScript.Controls.ChatClient.GotArchiveItemsEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.GotItemsEventArgs.registerClass('SpottedScript.Controls.ChatClient.GotItemsEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.GotRoomEventArgs.registerClass('SpottedScript.Controls.ChatClient.GotRoomEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.GotRoomStateEventArgs.registerClass('SpottedScript.Controls.ChatClient.GotRoomStateEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.GotExceptionEventArgs.registerClass('SpottedScript.Controls.ChatClient.GotExceptionEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.DebugPrintEventArgs.registerClass('SpottedScript.Controls.ChatClient.DebugPrintEventArgs',Sys.EventArgs);
SpottedScript.Controls.ChatClient.View.registerClass('SpottedScript.Controls.ChatClient.View');
SpottedScript.Controls.ChatClient.Shared.RefreshStub.registerClass('SpottedScript.Controls.ChatClient.Shared.RefreshStub');
SpottedScript.Controls.ChatClient.Shared.ArchiveStub.registerClass('SpottedScript.Controls.ChatClient.Shared.ArchiveStub',SpottedScript.Controls.ChatClient.Shared.RefreshStub);
SpottedScript.Controls.ChatClient.Shared.DeleteArchiveStub.registerClass('SpottedScript.Controls.ChatClient.Shared.DeleteArchiveStub',SpottedScript.Controls.ChatClient.Shared.RefreshStub);
SpottedScript.Controls.ChatClient.Shared.ItemStub.registerClass('SpottedScript.Controls.ChatClient.Shared.ItemStub');
SpottedScript.Controls.ChatClient.Shared.TopPhotoStub.registerClass('SpottedScript.Controls.ChatClient.Shared.TopPhotoStub',SpottedScript.Controls.ChatClient.Shared.ItemStub);
SpottedScript.Controls.ChatClient.Shared.UnPinStub.registerClass('SpottedScript.Controls.ChatClient.Shared.UnPinStub',SpottedScript.Controls.ChatClient.Shared.RefreshStub);
SpottedScript.Controls.ChatClient.Shared.MessageStub.registerClass('SpottedScript.Controls.ChatClient.Shared.MessageStub',SpottedScript.Controls.ChatClient.Shared.ItemStub);
SpottedScript.Controls.ChatClient.Shared.CommentMessageStub.registerClass('SpottedScript.Controls.ChatClient.Shared.CommentMessageStub',SpottedScript.Controls.ChatClient.Shared.MessageStub);
SpottedScript.Controls.ChatClient.Shared.MoreInfoStub.registerClass('SpottedScript.Controls.ChatClient.Shared.MoreInfoStub',SpottedScript.Controls.ChatClient.Shared.RefreshStub);
SpottedScript.Controls.ChatClient.Shared.AlertStub.registerClass('SpottedScript.Controls.ChatClient.Shared.AlertStub',SpottedScript.Controls.ChatClient.Shared.ItemStub);
SpottedScript.Controls.ChatClient.Shared.LaughStub.registerClass('SpottedScript.Controls.ChatClient.Shared.LaughStub',SpottedScript.Controls.ChatClient.Shared.CommentMessageStub);
SpottedScript.Controls.ChatClient.Shared.GuestRefreshStub.registerClass('SpottedScript.Controls.ChatClient.Shared.GuestRefreshStub');
SpottedScript.Controls.ChatClient.Shared.GetStateStub.registerClass('SpottedScript.Controls.ChatClient.Shared.GetStateStub',SpottedScript.Controls.ChatClient.Shared.RefreshStub);
SpottedScript.Controls.ChatClient.Shared.PrivateStub.registerClass('SpottedScript.Controls.ChatClient.Shared.PrivateStub',SpottedScript.Controls.ChatClient.Shared.MessageStub);
SpottedScript.Controls.ChatClient.Shared.StateStub.registerClass('SpottedScript.Controls.ChatClient.Shared.StateStub');
SpottedScript.Controls.ChatClient.Shared.RoomHtml.registerClass('SpottedScript.Controls.ChatClient.Shared.RoomHtml');
SpottedScript.Controls.ChatClient.Shared.SendStub.registerClass('SpottedScript.Controls.ChatClient.Shared.SendStub',SpottedScript.Controls.ChatClient.Shared.RefreshStub);
SpottedScript.Controls.ChatClient.Shared.PinStub.registerClass('SpottedScript.Controls.ChatClient.Shared.PinStub',SpottedScript.Controls.ChatClient.Shared.RefreshStub);
SpottedScript.Controls.ChatClient.Shared.PhotoStub.registerClass('SpottedScript.Controls.ChatClient.Shared.PhotoStub',SpottedScript.Controls.ChatClient.Shared.ItemStub);
SpottedScript.Controls.ChatClient.Shared.RoomStub.registerClass('SpottedScript.Controls.ChatClient.Shared.RoomStub');
SpottedScript.Controls.ChatClient.PopupArea.popupWidth=250;
SpottedScript.Controls.ChatClient.PopupArea.popupHeight=170;
SpottedScript.Controls.ChatClient.Controller.instance=null;
