PageSourceSearch

http://www.thesims3.it/dbtech/vbshout/clientscript/vbshout.js?v=611

js thesims3.it collected 2026-10-02 07:14:22 UTC 37,614 bytes, 383 lines download raw bytes

1
2var jQueryDupe=$;$.noConflict(true)(function($)
3{var paused={},editorContents={},shoutDelay={},idleTime={},hasFetched={},tab={},tabList={},countDown={},pmUserId={},userIds={},pmTime={},shoutId={},chatroom={},aopFile={},aopTime={},menuId={},smilieWindows={};if(typeof vBShout=='undefined')
4{return false;}
5if(typeof vBShout.instanceOptions=='undefined'||fetchElem('form',false,'form').length==0)
6{return false;}
7if(!AJAX_Compatible)
8{setMessage(vbphrase['dbtech_vbshout_ajax_disabled'],'error');return false;}
9var timenow=parseInt(new Date().getTime()/1000);for(var instanceId in vBShout.instanceOptions)
10{tab[instanceId]='shouts';menuId[instanceId]=0;aopTime[instanceId]={};aopTime[instanceId][tab[instanceId]]=timenow;pmTime[instanceId]=vBShout.userOptions.pmtime;tabList[instanceId]={'shouts':true,'activeusers':true};fetchElem('colorrow',instanceId,'ul',' > li[class="colorbutton"] > div').on('click',{'instanceId':instanceId},function(e)
11{saveStyleProps(e.data.instanceId,'color',rgbToHex($(this).css('backgroundColor')));});fetchElem('fontrow',instanceId,'ul',' > li[class="fontname"] > a').on('click',{'instanceId':instanceId},function(e)
12{saveStyleProps(e.data.instanceId,'font',$(this).text());});fetchElem('sizerow',instanceId,'ul',' > li[class="fontsize"] > a').on('click',{'instanceId':instanceId},function(e)
13{saveStyleProps(e.data.instanceId,'size',$(this).text());});for(var i in vBShout.tabs[instanceId])
14{createTab(i,instanceId,vBShout.tabs[instanceId][i].text,vBShout.tabs[instanceId][i].canclose,vBShout.tabs[instanceId][i].extraparams);}}
15var tmp={0:'color',1:'font',2:'size'};for(var i in tmp)
16{fetchElem(tmp[i]+'row',false,'ul').each(function(index,element)
17{var thisRow=$(this),instanceId=thisRow.attr('data-instanceid');if(vBShout.editorOptions[instanceId][tmp[i]])
18{saveStyleProps(instanceId,tmp[i],vBShout.editorOptions[instanceId][tmp[i]],true);}});}
19fetchElem('editor').on('keyup focus',function(e)
20{var thisEditor=$(this),instanceId=thisEditor.attr('data-instanceid');if(vBShout.instanceOptions[instanceId].maxchars==0)
21{if(thisEditor.val().length)
22{editorContents[instanceId]=thisEditor.val();}
23return true;}
24if(thisEditor.val().length>vBShout.instanceOptions[instanceId].maxchars)
25{thisEditor.val(thisEditor.val().substring(0,vBShout.instanceOptions[instanceId].maxchars));}
26if(thisEditor.val().length)
27{editorContents[instanceId]=thisEditor.val();}
28fetchElem('remainingchars',instanceId).text((vBShout.instanceOptions[instanceId].maxchars-thisEditor.val().length));}).on('keyup',function(e)
29{var thisEditor=$(this),instanceId=thisEditor.attr('data-instanceid');e.preventDefault();if(e.which==27&&shoutId[instanceId])
30{fetchElem('cancelbutton',instanceId,'input').trigger('click');}
31if(e.which==13)
32{fetchElem('savebutton',instanceId,'input').trigger('click');}});fetchElem('savebutton',false,'input').on('click',function()
33{var thisButton=$(this),instanceId=thisButton.attr('data-instanceid');if(shoutId[instanceId])
34{if(fetchElem('editor',instanceId).val()==fetchElem('shout_raw',instanceId,'input','[data-shoutid="'+shoutId[instanceId]+'"]').val())
35{fetchElem('cancelbutton',instanceId,'input').trigger('click');}
36else
37{saveShout(instanceId);}}
38else
39{saveShout(instanceId);}});fetchElem('lookupbutton',false,'input').on('click',function()
40{var thisButton=$(this),instanceId=thisButton.attr('data-instanceid'),lookupArea=fetchElem('lookup',instanceId,'input')
41userName=lookupArea.val();if(userName.length==0)
42{return false;}
43console.log(timeStamp()+'Attempting to lookup username: %s in instance %s...',userName,instanceId);paused[instanceId]=true;vBShout_unIdle(instanceId,false);if(typeof userIds[instanceId]!='undefined')
44{var userId=0;for(var i in userIds[instanceId])
45{if(userIds[instanceId][i]!=userName)
46{continue;}
47userId=i;}
48if(userId>0)
49{createTab('pm_'+userId+'_'+instanceId,instanceId,userName,'1',{'userid':userId});lookupArea.val('');return true;}}
50ajaxCall('lookup',instanceId,{'username':PHP.urlencode($.trim(userName))},'GET');});fetchElem('resettarget',false,'a').on('click',function()
51{var thisButton=$(this),instanceId=thisButton.attr('data-instanceid');console.log(timeStamp()+'Resetting shout target in instance %s...',instanceId);pmUserId[instanceId]=0;setShoutTarget(false,instanceId);fetchElem('tab',instanceId,'div','[data-tabid="shouts"]').trigger('click');});
51fetchElem('createchatbutton',false,'input').on('click',function()
52{var thisButton=$(this),instanceId=thisButton.attr('data-instanceid'),chatroomName=fetchElem('roomname',instanceId,'input').val();if(chatroomName.length==0)
53{return false;}
54console.log(timeStamp()+'Attempting to create chatroom: %s in instance %s...',chatroomName,instanceId);paused[instanceId]=true;vBShout_unIdle(instanceId,false);ajaxCall('createchat',instanceId,{'title':PHP.urlencode($.trim(chatroomName))});});fetchElem('soundbutton',false,'img').on('click',function()
55{var thisButton=$(this),instanceId=thisButton.attr('data-instanceid');vBShout.userOptions.soundSettings=vBShout.userOptions.soundSettings||{};vBShout.userOptions.soundSettings[instanceId]=vBShout.userOptions.soundSettings[instanceId]||{};vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]=vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]||'1';vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]=(vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]=='1'?'0':'1');setMuteButton(instanceId);console.log(timeStamp()+'Toggle mute in instance %s...',instanceId);paused[instanceId]=true;vBShout_unIdle(instanceId,false);ajaxCall('sounds',instanceId,{'tabs':vBShout.userOptions.soundSettings[instanceId]});}).each(function(index,element)
56{var thisButton=$(this),instanceId=thisButton.attr('data-instanceid');setMuteButton(instanceId);});$('li.fontname,li.fontsize,li.colorbutton').on('mouseover mouseout',function(e)
57{var thisButton=$(this),name=thisButton.attr('data-button'),instanceId=thisButton.attr('data-instanceid');if(thisButton.hasClass('imagebutton_disabled'))
58{return false;}
59thisButton.removeClass('imagebutton_selected imagebutton_hover imagebutton_down');switch(e.type)
60{case'mouseover':thisButton.addClass('imagebutton_hover');break;case'mouseout':thisButton.removeClass('imagebutton_hover');break;}});fetchElem('imagebutton',false,'img').on('click mouseover mouseout',function(e)
61{var thisButton=$(this),name=thisButton.attr('data-button'),instanceId=thisButton.attr('data-instanceid');if(thisButton.hasClass('imagebutton_disabled'))
62{return false;}
63thisButton.removeClass('imagebutton_selected imagebutton_hover imagebutton_down');switch(vBShout.editorOptions[instanceId][name])
64{case null:case false:case'':case'0':case'false':case'null':switch(e.type)
65{case'mouseover':thisButton.addClass('imagebutton_hover');break;case'mouseout':thisButton.removeClass('imagebutton_hover');break;case'click':thisButton.addClass('imagebutton_down');saveStyleProps(instanceId,name,name);break;}
66break;default:switch(e.type)
67{case'mouseover':thisButton.addClass('imagebutton_hover').addClass('imagebutton_down');break;case'mouseout':thisButton.removeClass('imagebutton_hover').addClass('imagebutton_selected');break;case'click':thisButton.addClass('imagebutton_hover');saveStyleProps(instanceId,name,'');break;}
68break;}}).each(function(index,element)
69{var thisButton=$(this),name=thisButton.attr('data-button'),instanceId=thisButton.attr('data-instanceid');if(vBShout.editorOptions[instanceId][name]!='0')
70{thisButton.mouseout();saveStyleProps(instanceId,name,vBShout.editorOptions[instanceId][name],true);}});fetchElem('clearbutton',false,'input').on('click',function()
71{fetchElem('editor',$(this).attr('data-instanceid')).val('');});fetchElem('smilies').on('click',function()
72{var cmd=$(this),instanceId=cmd.attr('data-instanceid');if(typeof smilieWindows[instanceId]!='undefined'&&!smilieWindows[instanceId].closed)
73{smilieWindows[instanceId].focus();}
74else
75{smilieWindows[instanceId]=openWindow('misc.php?'+SESSIONURL+'do=getsmilies&editorid=dbtech_vbshout_editor'+instanceId,440,480,'smilie_window'+instanceId);window.onunload=function()
76{if(typeof smilieWindows[instanceId]!='undefined'&&!smilieWindows[instanceId].closed)
77{smilieWindows[instanceId].close();}};}});fetchElem('cancelbutton',false,'input').on('click',function()
78{var cmd=$(this),instanceId=cmd.attr('data-instanceid');paused[instanceId]=false;shoutId[instanceId]=0;fetchElem('editor',$(this).attr('data-instanceid')).val('');fetchElem('editor',instanceId).trigger('keyup');fetchElem('delete',instanceId,'span').fadeOut('fast');fetchElem('cancel',instanceId,'span').fadeOut('fast');fetchElem('target',instanceId,'span').fadeIn('fast');fetchElem('editing',instanceId,'span').fadeOut('fast');});
78fetchElem('deletebutton',false,'input').on('click',function()
79{var cmd=$(this),instanceId=cmd.attr('data-instanceid');if(!shoutId[instanceId]||shoutId[instanceId]=='0')
80{return false;}
81console.log(timeStamp()+'Attempting to delete shout: %s... in instance %s',shoutId[instanceId],instanceId);var extraParams={};if(pmUserId[instanceId])
82{extraParams['type']='pm_'+pmUserId[instanceId]+'_';}
83else if(chatroom[instanceId])
84{extraParams['type']='chatroom_'+chatroom[instanceId]+'_';}
85extraParams['shoutid']=shoutId[instanceId];paused[instanceId]=true;vBShout_unIdle(instanceId,true);ajaxCall('delete',instanceId,extraParams);fetchElem('cancelbutton',instanceId,'input').trigger('click');});fetchElem('setcommand',false,'a').on('click',function()
86{var cmd=$(this),instanceId=cmd.attr('data-instanceid');fetchElem('editor',instanceId).val(cmd.attr('data-command'));if(menuId[instanceId])
87{fetchElem('togglemenu',instanceId,'a','[data-userid="'+menuId[instanceId]+'"]').trigger('click');}});fetchElem('form',false,'form').on('dblclick','div[name="dbtech_vbshout_frame_sticky"]',function()
88{var cmd=$(this),instanceId=cmd.attr('data-instanceid');if(vBShout.instancePermissions[instanceId]['cansticky']=='0')
89{return true;}
90console.log(timeStamp()+'Fetching sticky for instance %s...',instanceId);paused[instanceId]=true;vBShout_unIdle(instanceId,false);ajaxCall('fetchsticky',instanceId,{},'GET');}).on('click','a[name="dbtech_vbshout_togglemenu"]',function()
91{var cmd=$(this),instanceId=cmd.attr('data-instanceid'),userId=cmd.attr('data-userid'),shoutId=cmd.attr('data-shoutid');if(menuId[instanceId])
92{fetchElem('menu',cmd.attr('data-instanceid'),'ul','[data-userid="'+menuId[instanceId]+'"]').fadeOut('fast');}
93if(menuId[instanceId]==userId)
94{menuId[instanceId]=0;return true;}
95menuId[instanceId]=userId;fetchElem('menu',instanceId,'ul','[data-shoutid="'+shoutId+'"]').fadeIn('fast').css({position:'absolute'}).offset({top:(cmd.offset().top+cmd.height()),left:cmd.offset().left});}).on('click','a[name="dbtech_vbshout_setcommand"]',function()
96{var cmd=$(this),instanceId=cmd.attr('data-instanceid');fetchElem('editor',instanceId).val(cmd.attr('data-command'));if(menuId[instanceId])
97{fetchElem('togglemenu',instanceId,'a','[data-userid="'+menuId[instanceId]+'"]').trigger('click');}}).on('click','a[name="dbtech_vbshout_usermanage"]',function()
98{var cmd=$(this),instanceId=cmd.attr('data-instanceid'),action=cmd.attr('data-command'),userId=cmd.attr('data-userid');if(confirm(vbphrase['dbtech_vbshout_are_you_sure_'+action]))
99{console.log(timeStamp()+'Attempting to perform action %s on userid %s, instance id %s...',action,userId,instanceId);var extraParams={};if(pmUserId[instanceId])
100{extraParams['type']='pm_'+pmUserId[instanceId]+'_';}
101else if(chatroom[instanceId])
102{extraParams['type']='chatroom_'+chatroom[instanceId]+'_';}
103extraParams['manageaction']=action;extraParams['userid']=userId;paused[instanceId]=true;vBShout_unIdle(instanceId,true);ajaxCall('usermanage',instanceId,extraParams);}
104if(menuId[instanceId])
105{fetchElem('togglemenu',instanceId,'a','[data-userid="'+menuId[instanceId]+'"]').trigger('click');}}).on('click','a[name="dbtech_vbshout_createpm"]',function()
106{var cmd=$(this),instanceId=cmd.attr('data-instanceid'),userName=cmd.attr('data-username'),userId=cmd.attr('data-userid');userIds[userId]=userName;createTab('pm_'+userId+'_'+instanceId,instanceId,userName,'1',{'userid':userId});fetchElem('tab',instanceId,'div','[data-tabid="pm_'+userId+'_'+instanceId+'"]').trigger('click');if(menuId[instanceId])
107{fetchElem('togglemenu',instanceId,'a','[data-userid="'+menuId[instanceId]+'"]').trigger('click');}}).on('click','a[name="dbtech_vbshout_closetab"]',function(e)
108{var closeLink=$(this),instanceId=closeLink.attr('data-instanceid'),tabId=closeLink.attr('data-tabid'),chatroomId=fetchElem('tab',instanceId,'div','[data-tabid="'+tabId+'"]').attr('data-chatroomid');e.preventDefault();if(chatroomId)
109{if(!confirm(vbphrase['dbtech_vbshout_are_you_sure_chatleave']))
110{return false;}
111console.log(timeStamp()+'Closing tab: %s in instance %s...',tabId,instanceId);paused[instanceId]=true;vBShout_unIdle(instanceId,false);ajaxCall('leavechat',instanceId,{'chatroomid':chatroomId});}
112closeTab(tabId,instanceId);}).on('click','div[name="dbtech_vbshout_tab"]',function(e)
113{var thisTab=$(this),instanceId=thisTab.attr('data-instanceid'),tabId=thisTab.attr('data-tabid'),userId=thisTab.attr('data-userid'),chatroomId=thisTab.attr('data-chatroomid');if(tab[instanceId]==tabId||e.isDefaultPrevented())
114{return false;}
115console.log(timeStamp()+"Switching from %s to %s for instance %s.",tab[instanceId],tabId,instanceId);if(thisTab.attr('data-loadurl'))
116{window.location.href=thisTab.attr('data-loadurl');return false;}
117pmUserId[instanceId]=(userId!=''?userId:0);chatroom[instanceId]=(chatroomId!=''?chatroomId:0);setShoutTarget((userId!=''?userIds[userId]:false),instanceId);chatroom[instanceId]?fetchElem('chatinvite',instanceId).fadeIn('fast'):fetchElem('chatinvite',instanceId).fadeOut('fast');fetchElem('tab',instanceId,'div','[data-tabid="'+tab[instanceId]+'"]').removeClass('alt').addClass('alt2');
117thisTab.removeClass('alt2 dbtech_vbshout_highlight').addClass('alt');tab[instanceId]=tabId;setMuteButton(instanceId);fetchElem('content',instanceId).text('');paused[instanceId]=true;vBShout_unIdle(instanceId,false);fetchShouts(instanceId,tab[instanceId],true);return false;}).on('dblclick','span[name="dbtech_vbshout_shout"]',function()
118{var cmd=$(this),instanceId=cmd.attr('data-instanceid')
119shoutid=cmd.attr('data-shoutid');if(!shoutid)
120{return true;}
121paused[instanceId]=true;shoutId[instanceId]=shoutid;fetchElem('editor',instanceId).val(fetchElem('shout_raw',instanceId,'input','[data-shoutid="'+shoutid+'"]').val());fetchElem('editor',instanceId).trigger('keyup');fetchElem('delete',instanceId,'span').fadeIn('fast');fetchElem('cancel',instanceId,'span').fadeIn('fast');fetchElem('target',instanceId,'span').fadeOut('fast');fetchElem('editing',instanceId,'span').fadeIn('fast');});fetchElem('archive_managebutton').on('click',function()
122{var btn=$(this),instanceId=btn.attr('data-instanceid'),shoutId=btn.attr('data-shoutid'),cmd=btn.attr('data-command');console.log(timeStamp()+'Attempting to %s Archive shout: %s...',cmd,shoutId);if(cmd=='edit')
123{fetchElem('archive_message',instanceId).filter('[data-shoutid="'+shoutId+'"]').fadeOut('fast');fetchElem('archive_wrapper',instanceId).filter('[data-shoutid="'+shoutId+'"]').fadeIn('fast');fetchElem('archive_editor',instanceId).filter('[data-shoutid="'+shoutId+'"]').val(PHP.unhtmlspecialchars(fetchElem('archive_message_raw',instanceId).filter('[data-shoutid="'+shoutId+'"]').val()));}
124else if(cmd=='cancel')
125{fetchElem('archive_message',instanceId).filter('[data-shoutid="'+shoutId+'"]').fadeIn('fast');fetchElem('archive_wrapper',instanceId).filter('[data-shoutid="'+shoutId+'"]').fadeOut('fast');}
126else if(cmd=='save')
127{var editor=fetchElem('archive_editor',instanceId).filter('[data-shoutid="'+shoutId+'"]');fetchElem('archive_message',instanceId).filter('[data-shoutid="'+shoutId+'"]').text(editor.val());fetchElem('archive_message_raw',instanceId).filter('[data-shoutid="'+shoutId+'"]').val(editor.val());fetchElem('archive_message',instanceId).filter('[data-shoutid="'+shoutId+'"]').fadeIn('fast');fetchElem('archive_wrapper',instanceId).filter('[data-shoutid="'+shoutId+'"]').fadeOut('fast');ajaxCall('save',instanceId,{'shoutid':shoutId,'message':PHP.urlencode($.trim(editor.val())),'source':'archive'});}
128else if(cmd=='delete')
129{if(!confirm(vbphrase['dbtech_vbshout_are_you_sure_shoutdelete']))
130{return false;}
131fetchElem('archive_shout',instanceId).filter('[data-shoutid="'+shoutId+'"]').fadeOut('fast');ajaxCall('delete',instanceId,{'shoutid':shoutId,'source':'archive'});}});$('.dbtech-vbshout-popupmenu > ul > li').click(function(e)
132{var $container=$(this),$subList=$container.parent();$subList.slideUp('fast');return $subList.hasClass('submenu');});$('.dbtech-vbshout-popupmenu').click(function(e)
133{var $container=$(this),$subList=$('> ul',$container);if($container.hasClass('dbtech-vbshout-popupmenu-active'))
134{e.target.parentNode.click();$subList.slideUp('fast');return $subList.hasClass('submenu');}
135$container.addClass('dbtech-vbshout-popupmenu-active');$subList.css('top',$container.outerHeight()).slideDown('fast');return false;});$('body').click(function(e)
136{if($(e.target).closest('.dbtech-vbshout-popupmenu').size()==0)
137{$('.dbtech-vbshout-popupmenu > ul').slideUp('fast');$('.dbtech-vbshout-popupmenu').removeClass('dbtech-vbshout-popupmenu-active');}});fetchElem('editor').trigger('keyup');if(!vBShout.userOptions.archive)
138{for(var instanceId in vBShout.instanceOptions)
139{idleTime[instanceId]=0;shoutDelay[instanceId]=0;countDown[instanceId]=1;}
140setInterval(function()
141{for(var instanceId in vBShout.instanceOptions)
142{if(!fetchElem('frame_notice',instanceId,'div').length)
143{continue;}
144if(shoutDelay[instanceId]>0)
145{shoutDelay[instanceId]--;}
146if(vBShout.userOptions.idle[instanceId].unIdle)
147{console.log(timeStamp()+"Removing idle for instance %s.",instanceId);fetchElem('frame_notice',instanceId,'div').fadeOut('fast');idleTime[instanceId]=0;if(vBShout.userOptions.idle[instanceId].unPause)
148{paused[instanceId]=false;countDown[instanceId]=1;}
149vBShout.userOptions.idle[instanceId].unIdle=false;vBShout.userOptions.idle[instanceId].unPause=false;}
150if(paused[instanceId]==true)
151{continue;}
152idleTime[instanceId]++;if(idleTime[instanceId]>=vBShout.instanceOptions[instanceId].idletimeout&&vBShout.instanceOptions[instanceId].idletimeout>0||(!hasFetched[instanceId]&&vBShout.instancePermissions[instanceId].autoidle))
153{paused[instanceId]=true;setMessage(vbphrase['dbtech_vbshout_flagged_idle'].replace('%link%','return vBShout_unIdle(\''+instanceId+'\');'),'notice',instanceId);if(!hasFetched[instanceId])
154{fetchShouts(instanceId,'shouts',true);}
155continue;}
156if(--countDown[instanceId]>0)
157{}
158else
159{if(!hasFetched[instanceId])
160{fetchShouts(instanceId,'shouts',true);hasFetched[instanceId]=true;}
161else
162{fetchShouts(instanceId);}}}},1000);}
163function createTab(tabId,instanceId,tabText,canClose,extraParams)
164{if(tabList[instanceId][tabId])
165{fetchElem('tab',instanceId,'div','[data-tabid="'+tabId+'"]').trigger('click');return false;}
166tabList[instanceId][tabId]=true;fetchElem('tabs',instanceId,'table',' > tbody > tr > td').filter(':last').before('<td class="dbtech_vbshout_tabcontainer"><div name="dbtech_vbshout_tab" data-instanceid="'+instanceId+'" data-tabid="'+tabId+'" class="dbtech_vbshout_tabs alt2">'+tabText+(canClose=='1'?' [<a href="javascript://" name="dbtech_vbshout_closetab" data-instanceid="'+instanceId+'" data-tabid="'+tabId+'">X</a>
166]':'')+'</div></td>');if(typeof extraParams=='undefined')
167{return true;}
168var newTab=fetchElem('tab',instanceId,'div','[data-tabid="'+tabId+'"]');for(var i in extraParams)
169{newTab.attr('data-'+i,extraParams[i]);}
170return true;};function closeTab(tabId,instanceId)
171{tabList[instanceId][tabId]=false;if(tab[instanceId]==tabId)
172{console.log(timeStamp()+"Attempting to switching from %s to %s for instance %s.",tab[instanceId],'shouts',instanceId);fetchElem('tab',instanceId,'div','[data-tabid="shouts"]').trigger('click');}
173fetchElem('tab',instanceId,'div','[data-tabid="'+tabId+'"]').remove();return true;};function setShoutTarget(username,instanceId)
174{var everyone=fetchElem('everyone',instanceId,'span');if(everyone)
175{if(!username)
176{everyone.html(vbphrase['dbtech_vbshout_everyone']);}
177else
178{everyone.html($.trim(username));}}};function saveShout(instanceId)
179{var editor=fetchElem('editor',instanceId);if(!editor.val().length)
180{return false;}
181vBShout.instanceOptions[instanceId].floodchecktime=parseInt(vBShout.instanceOptions[instanceId].floodchecktime);if(shoutDelay[instanceId])
182{setMessage(vbphrase['dbtech_vbshout_must_wait_x_seconds'].replace('%time%',vBShout.instanceOptions[instanceId].floodchecktime).replace('%time2%',(vBShout.instanceOptions[instanceId].floodchecktime-shoutDelay[instanceId])),'error',instanceId);return false;}
183var extraParams={};if(shoutId[instanceId])
184{console.log(timeStamp()+'Attempting to save shout: %s to instance: %s...',shoutId[instanceId],instanceId);}
185else
186{console.log(timeStamp()+'Attempting to insert shout to instance: %s...',instanceId);}
187if(pmUserId[instanceId])
188{extraParams['type']='pm_'+pmUserId[instanceId]+'_';}
189else if(chatroom[instanceId])
190{extraParams['type']='chatroom_'+chatroom[instanceId]+'_';}
191extraParams['message']=PHP.urlencode($.trim(editor.val()));paused[instanceId]=true;vBShout_unIdle(instanceId,true);shoutDelay[instanceId]=vBShout.instanceOptions[instanceId].floodchecktime;ajaxCall('save',instanceId,extraParams);if(shoutId[instanceId])
192{fetchElem('cancelbutton',instanceId).trigger('click');}
193else
194{editor.val('');}
195return false;};function saveStyleProps(instanceId,type,value,noupdate)
196{var property=type;var setValue=value;switch(type)
197{case'bold':property='fontWeight';setValue=(value?type:'');break;case'italic':property='fontStyle';setValue=(value?type:'');break;case'underline':property='textDecoration';setValue=(value?type:'');break;case'font':property='fontFamily';var fontfield=fetchElem('fontbar',instanceId,'div'),fontrow=fetchElem('fontrow',instanceId,'ul');if(fontfield.text()!=value)
198{fontfield.text(value);fontrow.val(value);}
199break;case'size':property='fontSize';var sizefield=fetchElem('sizebar',instanceId,'div'),sizerow=fetchElem('sizerow',instanceId,'ul');if(sizefield.text()!=value)
200{sizefield.text(value);sizerow.val(value);}
201break;case'color':var colorfield=fetchElem('colorbar',instanceId,'img'),colorrow=fetchElem('colorrow',instanceId,'ul');if(rgbToHex(colorfield.css('backgroundColor'))!=value)
202{colorfield.css('backgroundColor',value);}
203break;}
204console.log(timeStamp()+"Style property %s set. Value: %s. Instance ID: %s",type,setValue,instanceId);if(type=='size')
205{fetchElem('frame',instanceId,'div').css(property,setValue);}
206else
207{fetchElem('editor',instanceId).css(property,setValue);}
208if(vBShout.editorOptions[instanceId][type]!=value&&!noupdate)
209{console.log(timeStamp()+"Style property %s changed. Old value: %s - New value: %s. Instance ID: %s",type,vBShout.editorOptions[instanceId][type],value,instanceId);vBShout.editorOptions[instanceId][type]=value;var extraParams={};extraParams['editor']=vBShout.editorOptions[instanceId];if(pmUserId[instanceId])
210{extraParams['type']='pm_'+pmUserId[instanceId]+'_';}
211else if(chatroom[instanceId])
212{extraParams['type']='chatroom_'+chatroom[instanceId]+'_';}
213paused[instanceId]=true;vBShout_unIdle(instanceId,true);ajaxCall('styleprops',instanceId,extraParams);}};function fetchShouts(instanceId,type,force)
214{paused[instanceId]=true;if(!type)
215{type=tab[instanceId];}
216if(!(idleTime[instanceId]>=vBShout.instanceOptions[instanceId].idletimeout&&vBShout.instanceOptions[instanceId].idletimeout>0)||force==true)
217{var extraParams={};if(typeof aopTime[instanceId][tab[instanceId]]=='undefined')
218{force=true;}
219switch(type)
220{case'shout':extraParams['shoutid']=shoutId[instanceId];break;}
221for(var i in tabList[instanceId])
222{if(tabList[instanceId])
223{extraParams['tabs['+i+']']=1;}}
224extraParams['type']=type;if((vBShout.instanceOptions[instanceId].optimisation&&!force)&&type!='activeusers')
225{if(type=='shouts'||type=='aop')
226{type='shouts'+instanceId;}
227if(type=='shoutnotifs'||type=='systemmsgs')
228{type=type+instanceId;}
229console.log(timeStamp()+'Fetching '+type+'...');aopFile[instanceId]='dbtech/vbshout/aop/'+type+'.txt';$.ajax({type:'GET',url:aopFile[instanceId]+'?v='+Math.random()*99999999999999,complete:function(xhr,statusText){},success:function(data,statusText,xhr)
230{var d=new Date();var dateline=data;var timenow=parseInt(d.getTime()/1000);if(dateline>aopTime[instanceId][tab[instanceId]])
231{console.log(timeStamp()+tab[instanceId]+" AOP file returned new shouts: \n"+dateline+"\n"+aopTime[instanceId][tab[instanceId]]);fetchShouts(instanceId,tab[instanceId],true);return false;}
232if(dateline==0)
233{console.log(timeStamp()+"AOP file returned 0");fetchShouts(instanceId,tab[instanceId],true);return false;}
234if((timenow-dateline)>60)
235{console.log(timeStamp()+"AOP file hasn't been modified for 60 seconds: "+(timenow-dateline));aopTime[instanceId][tab[instanceId]]=(timenow+5);fetchShouts(instanceId,tab[instanceId],true);return false;}
236else
237{paused[instanceId]=false;countDown[instanceId]=vBShout.instanceOptions[instanceId]['refresh'];}},error:function(data,statusText,error)
238{fetchShouts(instanceId,tab[instanceId],true);}});}
239else
240{ajaxCall('fetch',instanceId,extraParams,'GET');}}};function ajaxCall(varname,instanceId,extraParams,type)
241{if(typeof type=='undefined')
242{type='POST';extraParams['securitytoken']=SECURITYTOKEN;}
243extraParams['do']='ajax';extraParams['action']=varname;extraParams['instanceid']=instanceId;extraParams['tabid']=tab[instanceId];if(vBShout.userOptions.is_detached=='1')
244{extraParams['detached']='1';}
245if(pmUserId[instanceId])
246{extraParams['pmuserid']=pmUserId[instanceId];}
247if(chatroom[instanceId])
248{extraParams['chatroomid']=chatroom[instanceId];}
249if(shoutId[instanceId])
250{extraParams['shoutid']=shoutId[instanceId];}
251extraParams['shoutorder']=vBShout.instanceOptions[instanceId].shoutorder;extraParams['pmtime']=vBShout.userOptions.pmtime;if(type=='GET')
252{extraParams['v']=Math.random()*99999999999999;}
253$.ajax({type:type,url:'vbshout.php',data:(SESSIONURL?SESSIONURL+'&':'')+$.param(extraParams),complete:function(xhr,statusText){},success:function(data,statusText,xhr)
254{var tagData=$(data);data={};paused[instanceId]=false;countDown[instanceId]=vBShout.instanceOptions[instanceId]['refresh'];if(!hasFetched[instanceId]&&vBShout.instancePermissions[instanceId].autoidle)
255{paused[instanceId]=hasFetched[instanceId]=true;}
256var arrVals=['aoptimes','chatrooms','shouts'],singleVals=['ajax','activereports','activeusers2','content','editor','error','pmtime','pmuserid','sticky'];if(tagData.find('activeusers').length)
257{var tagData2=tagData.find('activeusers');data['activeusers']={'count':tagData2.attr('count'),usernames:tagData2.text()};}
258if(tagData.find('chatroom').length)
259{var tagData2=tagData.find('chatroom');data['chatroom']={'chatroomid':tagData2.attr('chatroomid'),'title':tagData2.text()};}
260for(var i in singleVals)
261{if(tagData.find(singleVals[i]).length)
262{data[singleVals[i]]=tagData.find(singleVals[i]).text();}}
263for(var i in arrVals)
264{if(tagData.find(arrVals[i]).length)
265{data[arrVals[i]]={};tagData.find(arrVals[i]).children().each(function(j)
266{data[arrVals[i]][j]={};$(this).children().each(function()
267{data[arrVals[i]][j][$(this).prop('tagName')]=$(this).text();});});}}
268if(data.error)
269{var tmp=data.error.split('_');if(tmp[0]=='disband')
270{var chatroomid=parseInt(tmp[1]);if(chatroomid)
271{if(chatroom[instanceId]==chatroomid)
272{chatroom[instanceId]=0;fetchElem('tab',instanceId,'div','[data-tabid="shouts"]').trigger('click');}
273closeTab(fetchElem('tab',instanceId,'div','[data-tabid^="chatroom_'+chatroomid+'_"]').attr('data-tabid'),instanceId);return false;}}
274setMessage(data.error,'error',instanceId);fetchElem('editor',instanceId).val(editorContents[instanceId]);console.error(timeStamp()+"AJAX Error: %s",data.error);return true;}
275if(typeof data.sticky!='undefined')
276{if(!data.sticky)
277{fetchElem('frame_sticky',instanceId,'div').fadeOut('fast');}
278else
279{setMessage(data.sticky,'sticky',instanceId);}}
280if(typeof data.activeusers!='undefined')
281{fetchElem('activeusers',instanceId,'span').text(data.activeusers.count);fetchElem('sidebar',instanceId,'div').html(data.activeusers.usernames);}
282if(typeof data.activereports!='undefined')
283{fetchElem('shoutreports',instanceId,'span').text(data.activereports);}
284if(typeof data.editor!='undefined')
285{fetchElem('editor',instanceId).val(data.editor);fetchElem('editor',instanceId).trigger('keyup');}
286if(typeof data.content!='undefined')
287{fetchElem('content',instanceId,'div').html(data.content);}
288if(typeof data.archive!='undefined'&&typeof data.shoutid!='undefined')
289{fetchElem('message_'+data.shoutid,instanceId).html(data.archive);}
290if(typeof data.pmuserid!='undefined')
291{var tmp=fetchElem('lookup',instanceId,'input');userIds[data.pmuserid]=tmp.val();createTab('pm_'+data.pmuserid+'_'+instanceId,instanceId,tmp.val(),'1',{'userid':data.pmuserid});fetchElem('tab',instanceId,'div','[data-tabid="pm_'+data.pmuserid+'_'+instanceId+'"]').trigger('click');tmp.val('');}
292if(typeof data.chatroom!='undefined')
293{fetchElem('roomname',instanceId,'input').val('');
293createTab('chatroom_'+data.chatroom.chatroomid+'_'+instanceId,instanceId,data.chatroom.title,'1',{'chatroomid':data.chatroom.chatroomid});fetchElem('tab',instanceId,'div','[data-tabid="chatroom_'+data.chatroom.chatroomid+'_'+instanceId+'"]').trigger('click');}
294if(typeof data.aoptime!='undefined')
295{if(aopTime[instanceId][tab[instanceId]]<data.aoptime||!aopTime[instanceId][tab[instanceId]])
296{aopTime[instanceId][tab[instanceId]]=data.aoptime;}}
297if(typeof data.pmtime!='undefined')
298{if(pmTime[instanceId]<data.pmtime)
299{console.log(timeStamp()+"Playing pm sound for tab %s in instance %s",tab[instanceId],instanceId);playSound('pm',instanceId);pmTime[instanceId]=data.pmtime;}}
300if(typeof data.aoptimes!='undefined')
301{for(var i in data.aoptimes)
302{var aoptime=data.aoptimes[i].aoptime;var tabid=data.aoptimes[i].tabid;var nosound=data.aoptimes[i].nosound;if(!aopTime[instanceId][tabid])
303{aopTime[instanceId][tabid]=aoptime;continue;}
304if(aopTime[instanceId][tabid]>=aoptime)
305{continue;}
306console.log(timeStamp()+"Tab: %s\nAOP: %s\nPrevious AOP: %s\nInstance: %s",tabid,aoptime,aopTime[instanceId][tabid],instanceId);aopTime[instanceId][tabid]=aoptime;if(nosound=='0')
307{console.log(timeStamp()+"Playing shout sound for tab %s in instance %s",tabid,instanceId);playSound('shout',instanceId);}
308if(tabid!=tab[instanceId]&&nosound=='0')
309{fetchElem('tab',instanceId,'div','[data-tabid="'+tabid+'"]').addClass('dbtech_vbshout_highlight');}}}
310if(typeof data.chatrooms!='undefined')
311{for(var i in data.chatrooms)
312{if(!tabList[instanceId]['chatroom_'+data.chatrooms[i].chatroomid+'_'+data.chatrooms[i].instanceid])
313{playSound('invite',instanceId);if(confirm(vbphrase['dbtech_vbshout_are_you_sure_chatjoin'].replace(/%roomname%/igm,data.chatrooms[i].title).replace(/%username%/igm,data.chatrooms[i].username)))
314{createTab('chatroom_'+data.chatrooms[i].chatroomid+'_'+data.chatrooms[i].instanceid,instanceId,data.chatrooms[i].title,'1',{'chatroomid':data.chatrooms[i].chatroomid});paused[instanceId]=true;vBShout_unIdle(instanceId,false);ajaxCall('joinchat',instanceId,{'chatroomid':data.chatrooms[i].chatroomid});fetchElem('tab',instanceId,'div','[data-tabid="chatroom_'+data.chatrooms[i].chatroomid+'_'+data.chatrooms[i].instanceid+'"]').trigger('click');}
315else
316{paused[instanceId]=true;vBShout_unIdle(instanceId,false);ajaxCall('leavechat',instanceId,{'chatroomid':data.chatrooms[i].chatroomid,'status':1});}}}}
317if(typeof data.shouts!='undefined')
318{fetchElem('menucode',instanceId,'div').children('ul').remove();menuId[instanceId]=0;var shoutIds=[],shoutsById=[];for(var i in data.shouts)
319{data.shouts[i].hidenewshout=!(fetchElem('shoutwrapper',instanceId,'[data-shoutid="'+data.shouts[i].shoutid+'"]').length);shoutIds[i]=data.shouts[i];shoutsById[data.shouts[i].shoutid]=true;}
320fetchElem('shoutwrapper',instanceId,'div').each(function(index,element)
321{if(!shoutsById[$(this).attr('data-shoutid')])
322{$(this).fadeOut('fast');}});if(shoutIds.length)
323{fetchElem('shoutwrapper',instanceId,'div').promise().done(function()
324{var contentObj=fetchElem('content',instanceId);contentObj.html('');for(var i in shoutIds)
325{var shout=shoutIds[i];shout.permissions=$.parseJSON(shout.permissions);fetchElem('shouttype_'+shout.template,instanceId,'script').tmpl(shout).appendTo(contentObj);fetchElem('memberaction_dropdown',instanceId,'script').tmpl(shout).appendTo(fetchElem('menu',instanceId,'ul','[data-userid="'+shout.userid+'"][data-shoutid="'+shout.shoutid+'"]'));fetchElem('menucode',instanceId,'div').append(fetchElem('menu',instanceId,'ul','[data-userid="'+shout.userid+'"][data-shoutid="'+shout.shoutid+'"]'));}
326fetchElem('memberurl',instanceId,'a').each(function(index,element)
327{$(this).attr('href','member.php?'+SESSIONURL+'u='+$(this).attr('data-userid'));});fetchElem('shoutwrapper',instanceId,'div').filter(':hidden').fadeIn('fast');});fetchElem('shoutwrapper',instanceId,'div').promise().done(function()
328{if(vBShout.instanceOptions[instanceId]['shoutorder']=='ASC')
329{fetchElem('frame',instanceId).scrollTop(99999999);}});}}},error:function(data,statusText,error)
330{paused[instanceId]=false;countDown[instanceId]=vBShout.instanceOptions[instanceId]['refresh'];try
331{if(data.statusText=='communication failure'||data.statusText=='transaction aborted'||data.status==0)
332{return false;}
333fetchElem('editor',instanceId).val(editorContents[instanceId]);setMessage(data.status+' '+textStatus,'error',instanceId);console.error(timeStamp()+"AJAX Error: Status = %s: %s",data.status,data.statusText);}
334catch(e)
335{console.error(timeStamp()+"AJAX Error: %s",data.responseText);}}});};function playSound(sound,instanceId)
336{vBShout.userOptions.soundSettings=vBShout.userOptions.soundSettings||{};vBShout.userOptions.soundSettings[instanceId]=vBShout.userOptions.soundSettings[instanceId]||{};vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]=vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]||'1';if(vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]=='0')
337{return true;}
338fetchElem('sound_'+sound,instanceId).trigger('play');};function setMuteButton(instanceId)
339{vBShout.userOptions.soundSettings=vBShout.userOptions.soundSettings||{};vBShout.userOptions.soundSettings[instanceId]=vBShout.userOptions.soundSettings[instanceId]||{};vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]=vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]||'1';var thisButton=fetchElem('soundbutton',instanceId,'img');if(thisButton.length)
340{thisButton.attr('src',thisButton.attr('src').replace('sound_'+(vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]=='1'?'off':'on')+'.png','sound_'+(vBShout.userOptions.soundSettings[instanceId][tab[instanceId]]=='0'?'off':'on')+'.png'));}};function setMessage(msg,type,instanceId)
341{console.log(timeStamp()+"Setting %s: %s",type.charAt(0).toUpperCase()+''+type.substr(1),msg);if(fetchElem('frame',instanceId,'div').length)
342{fetchElem('message_'+type,instanceId,'span').html(msg);if(type!='sticky'&&type!='notice')
343{var notice=fetchElem('frame_'+type,instanceId,'div');
343notice.fadeIn('fast').promise().done(function()
344{if(vBShout.instanceOptions[instanceId]['shoutorder']=='ASC')
345{fetchElem('frame',instanceId).scrollTop(99999999);}});setTimeout(function()
346{notice.fadeOut('fast');},5000);}
347else
348{fetchElem('frame_'+type,instanceId,'div').show();if(vBShout.instanceOptions[instanceId]['shoutorder']=='ASC')
349{fetchElem('frame',instanceId).scrollTop(99999999);}}}};function timeStamp()
350{var d=new Date();return'['+d.getHours()+':'+d.getMinutes()+':'+d.getSeconds()+'] ';};function fetchElem(elemName,instanceId,el,extraFilter)
351{return $((el?el:'')+'[name="dbtech_vbshout_'+elemName+'"]'+(instanceId?'[data-instanceid='+instanceId+']':'')+(extraFilter?extraFilter:''));};function rgbToHex(colorStr)
352{var hex='#';$.each(colorStr.substring(4).split(','),function(i,str)
353{var h=($.trim(str.replace(')',''))*1).toString(16);hex+=(h.length==1)?"0"+h:h;});return hex;};});function vBShout_unIdle(instanceId,keepPause)
354{vBShout.userOptions.idle[instanceId].unIdle=true;vBShout.userOptions.idle[instanceId].unPause=(keepPause?false:true);return false;};function vBShout_initSmilies(smilie_container,instanceId)
355{if(smilie_container!=null)
356{var editdoc=window.opener.document.getElementById('dbtech_vbshout_editor'+instanceId);jQueryDupe('img[id^="smilie_"]',smilie_container).each(function(index,element)
357{var thisSmiley=jQueryDupe(this);thisSmiley.css('cursor','pointer');thisSmiley.attr('unselectable','on');thisSmiley.on('click',function(e)
358{var text=' '+this.alt;if(!editdoc.hasfocus||(is_moz&&is_mac))
359{editdoc.focus();if(is_opera)
360{editdoc.focus();}}
361if(typeof(editdoc.selectionStart)!='undefined')
362{var opn=editdoc.selectionStart+0;var scrollpos=editdoc.scrollTop;editdoc.value=editdoc.value.substr(0,editdoc.selectionStart)+text+editdoc.value.substr(editdoc.selectionEnd);if(movestart===false)
363{}
364else if(typeof movestart!='undefined')
365{editdoc.selectionStart=opn+movestart;editdoc.selectionEnd=opn+text.vBlength()-moveend;}
366else
367{editdoc.selectionStart=opn;editdoc.selectionEnd=opn+text.vBlength();}
368editdoc.scrollTop=scrollpos;}
369else if(document.selection&&document.selection.createRange)
370{var sel=document.selection.createRange();sel.text=text.replace(/\r?\n/g,'\r\n');if(movestart===false)
371{}
372else if(typeof movestart!='undefined')
373{if((movestart-text.vBlength())!=0)
374{sel.moveStart('character',movestart-text.vBlength());selection_changed=true;}
375if(moveend!=0)
376{sel.moveEnd('character',-moveend);selection_changed=true;}}
377else
378{sel.moveStart('character',-text.vBlength());selection_changed=true;}
379if(selection_changed)
380{sel.select();}}
381else
382{editdoc.value+=text;}
383return false;});});}};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.