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.