var cc=0;var ct=0;var channel="0,0";var onlinelista;var movestatus=false;var RECORDING;var userpositions={};var userdatapack={};var processedmessages=[];var myposition;var selectedTopic;var userMessageCount={};var totalValidMessages=0;var userHasValidMessage={};function GM(poruka,pozicija,tipporuke){const messageObj={m:poruka,l:pozicija,t:tipporuke,c:channel,a:userData.avatar,};let jsonString=JSON.stringify(messageObj);return jsonString}function SM(message){var iframe=$('.megaholder #frame_chatbox')[0];var iframeDoc=iframe.contentDocument||iframe.contentWindow.document;if(iframeDoc){$('#message',iframeDoc).val(message);$(iframeDoc).on('submit','form',function(e){e.preventDefault()});$('#submit',iframeDoc).click();$('#message',iframeDoc).val('')}}function proveralokacije(){if(cc===0){return true}if(userData.lokacija===undefined||cc!==parseInt(userData.lokacija)){alert3("Morate biti u oblasti "+cc+" da bi ste izveli ovu akciju.");return false}return true}$(document).ready(function(){$('#switch').on('click',function(){var id=parseInt($(this).attr("datatype"));$(".span0, .span1").removeClass("active");if(id===0){$(".span1").addClass("active");$('#sendmessage').text('Pošaljite opis').attr('datatype',1);$('#switch').attr("datatype",1);$(".megarest textarea").attr('placeholder','Opišite nešto..')}else if(id===1){$(".span0").addClass("active");$('#sendmessage').text('Pošaljite poruku').attr('datatype',0);$('#switch').attr("datatype",0);$(".megarest textarea").attr('placeholder','Izgovorite nešto..')}});$('#sendmessage').on('click',function(){if(!proveralokacije()){return false}var id=parseInt($(this).attr("datatype"));var poruka=$(".megarest textarea").val().trim();if(poruka===''){alert3('Ne možete poslati praznu poruku.');return false}$(".megarest textarea").val('');var message;if(myposition){message=GM(poruka,myposition,id)}else{message=GM(poruka,'',id)}SM(message)})});window.addEventListener('message',function(event){var{newestMessage}=event.data;if(newestMessage&&newestMessage.msg){var id=newestMessage.msgid;if(!$('.megachat [data-id="'+id+'"]').length){DECODE(newestMessage)}}else{console.log("newestMessage is invalid or missing the 'msg' property.");console.log(newestMessage)}});function DECODE(poruka){console.log("Nova poruka registrovana.");var cleanedJsonString=poruka.msg.replace(/<span[^>]*>/,'').replace(/<\/span>/,'');try{if(cleanedJsonString.startsWith('{')&&cleanedJsonString.endsWith('}')){console.log("Poruka uspešno dekodirana.");const DATA=JSON.parse(cleanedJsonString);if(DATA.c!==channel){return false}console.log("Korektan channel odabran.");DATA.userid=poruka.userId;DATA.username=poruka.username;DATA.useravatar=poruka.user.avatar;DATA.usercolor=poruka.user.color;DATA.msgid=poruka.msgid;DATA.vreme=poruka.datetime;DATA.datum=poruka.date;var $playerElement=$('#player-'+DATA.userid);if($playerElement.length===0){RENDER(DATA);console.log("Karakter poslat na renderovanje..")}else{var currentPosition=$playerElement.css('left');if(currentPosition!==DATA.l){RENDER(DATA);console.log("Karakter poslat na renderovanje..")}}if(DATA.m&&DATA.m.length>0){SHOWMESSAGE(DATA);console.log("Poruka poslata u chat.")}}}catch(e){console.log("History decoder error:",e)}}function RENDER(DATA){console.log(DATA.l);var $playerElement=$('#player-'+DATA.userid);const playerAvatarUrl=DATA.useravatar||'https://i.imgur.com/ts5KhxD.png';if($playerElement.length===0){$playerElement=$('<div class="playercharacter" style="left:'+DATA.l+'%"id="player-'+DATA.userid+'">'+'<span style="color:'+DATA.usercolor+'" class="player-name">'+DATA.username+'</span>'+'<span class="playerimg"><img src="'+DATA.a+'"class="player-avatar"/></span>'+'</div>');$('#chatscreen').append($playerElement)}var currentAvatar=$('#player-'+DATA.userid+' .player-avatar').attr("src");var currentUsername=$('#player-'+DATA.userid+' .player-name').text();if(currentAvatar!==DATA.a){$('#player-'+DATA.userid+' .player-avatar').attr("src",DATA.a)}if(currentUsername!==DATA.username){$('#player-'+DATA.userid+' .player-name').text(DATA.username)}if(DATA.l!=='undefined'&&DATA.l!==0){$playerElement.css({left:DATA.l+'%'})}if(DATA.l===666||DATA.l==="666"){$playerElement.remove();return}SJENKA(DATA.userid,DATA.a)}function SJENKA(id,avatarUrl){const styleId=`mask-style-${id}`;let styleElement=document.getElementById(styleId);const maskRule=`#player-${id}.playerimg::before{background:url(${avatarUrl})}`;if(!styleElement){styleElement=document.createElement('style');styleElement.id=styleId;document.head.appendChild(styleElement)}styleElement.textContent=maskRule}function getLastUserId(){const lastUserId=$('.chatmssg').last().data('userid');return lastUserId}function SHOWMESSAGE(DATA,history){var lastUserId=getLastUserId();var classsetup="chatto1";console.log("Last user id is: "+DATA.userid+" but last message ID is "+lastUserId);if(parseInt(lastUserId)===parseInt(DATA.userid)){classsetup="chatto2"}if(DATA.t===0){var html="<div data-userid='"+DATA.userid+"' data-id='"+DATA.msgid+"' class='chatmssg "+classsetup+"'>"+"<span class='mavatar'> <img src='"+DATA.useravatar+"'/> </span>"+"<span style='color:"+DATA.usercolor+"' class='mname'>"+DATA.username+" </span>"+"<p>"+DATA.m+"</p>"+"<span class='mtime' data-tooltip='"+DATA.datum+"'>"+DATA.vreme+" </span>"+"</div>";$(".megachat").append(html);$('.megachat').scrollTop($('.megachat')[0].scrollHeight);if(!history){BUBBLE(DATA)}}else if(DATA.t===1){var tochat="<div data-userid='"+DATA.userid+"' data-id='"+DATA.msgid+"' class='chatmssg desc "+classsetup+"'>"+"<span class='mavatar'> <img src='"+DATA.useravatar+"'/> </span>"+"<p>"+DATA.m+"</p>"+"<span class='mtime' data-tooltip='"+DATA.datum+"'>"+DATA.vreme+"</span>"+"</div>";$(".megachat").append(tochat);$('.megachat').scrollTop($('.megachat')[0].scrollHeight);if(!history){DESCRIPTION(DATA)}}}function DESCRIPTION(DATA){var duration=3+DATA.m.length*0.1;var customId=Math.floor(Math.random()*(35000-5000+1))+5000;var html="<div id='dtile-"+customId+"' class='desctile'>"+"<span> <img src='"+DATA.useravatar+"'/> </span>"+"<p>"+DATA.m+"</p>"+"</div>";$(".megadesc").empty().append(html);setTimeout(function(){$('#dtile-'+customId).fadeOut(1500,function(){$(this).remove()})},duration*1000)}function BUBBLE(DATA){var duration=3+DATA.m.length*0.1;var customId=Math.floor(Math.random()*(35000-5000+1))+5000;var $playerElement=$('#player-'+DATA.userid);if($playerElement.length>0){var $bubble=$('<span></span>').addClass('bubble').attr('id','bubble-'+customId).text(DATA.m);$playerElement.prepend($bubble);setTimeout(function(){$('#bubble-'+customId).fadeOut(1000,function(){$(this).remove()})},duration*1000)}}$(document).ready(function(){$('#movebutton').on('click',function(event){if(!proveralokacije()){return false}movestatus=true;event.stopPropagation()});$('#chatscreen').on('click',function(event){if(movestatus){var posX=event.pageX-$('#chatscreen').offset().left;const chatScreenWidth=$('#chatscreen').width();const posXPercentage=Math.round((posX/chatScreenWidth)*100);myposition=posXPercentage;const message=GM('',posXPercentage,0);SM(message);movestatus=false}})});$(document).ready(function(){$('#savestory').on('click',function(event){$('.saveholder').addClass('savingprocess');$('#savechooser').empty();$('.megachat .chatmssg').each(function(){var chatMsgHtml=$(this).html();var newDiv=$('<div><div class="chatmssg" data-id="'+$(this).data('id')+'">'+chatMsgHtml+'</div><input type="checkbox" class="select-msg" /></div>');$('#savechooser').append(newDiv)})});$('#poststory').on('click',function(event){$('.saveholder').removeClass('savingprocess');var selectedMessages=$('.select-msg:checked');if(selectedMessages.length===2){var messageIds=[];selectedMessages.each(function(){var messageId=$(this).siblings('.chatmssg').data('id');messageIds.push(messageId)});SAVESTORY(channel,messageIds)}else{alert3("Morate selektovati prvu i zadnju poruku da bi ste sačuvali story.")}});$('#cancelstory').on('click',function(event){$('.saveholder').removeClass('savingprocess');$('#savechooser').empty()})});function SAVESTORY(channel,range){$.ajax({url:"/chatbox/actions",type:'GET',data:{method:'get',tid:'c7357199d8585c619618c7d86a594d74',archives:1,cbid:0,timeSwitch:1724354312},success:function(response){try{userdatapack={};processedmessages=[];userMessageCount={};totalValidMessages=0;userHasValidMessage={};response.messages.forEach(function(message){DATASAVER(message,range,channel)});Promise.all(processedmessages).then(function(){processedmessages.forEach(function(message){let userId=message.u;if(message.m!==''){if(!userHasValidMessage[userId]){userHasValidMessage[userId]=true}if(userMessageCount[userId]){userMessageCount[userId]++}else{userMessageCount[userId]=1}totalValidMessages++}});processedmessages=processedmessages.filter(function(message){return userHasValidMessage[message.u]});console.log("Broj poruka po useru:"+userMessageCount);console.log("Total broj poruka:"+totalValidMessages);console.log("Processed poruke:"+processedmessages);if(_userdata.user_id!==2){if(cc===0){alert3("Nemate mogućnost da čuvate off topic story.");return false}if(totalValidMessages<20){alert3("Priča je previše kratka da bi ste je sačuvali.");return false}for(let userId in userMessageCount){let userPercentage=(userMessageCount[userId]/totalValidMessages)*100;if(userPercentage>=120){alert3("Jedan od učesnika priče ima više od 70% poruka što nije dozvoljeno.");return false}}}POSTDATA(userdatapack,processedmessages)})}catch(e){console.log("History load error:",e)}},error:function(xhr,status,error){console.log("AJAX request error:",status,error)}})}function DATASAVER(poruka,range,channel){var cleanedJsonString=poruka.msg.replace(/<span[^>]*>/,'').replace(/<\/span>/,'');try{if(cleanedJsonString.startsWith('{')&&cleanedJsonString.endsWith('}')){const DATA=JSON.parse(cleanedJsonString);if(DATA.c!==channel){return false}var msgid=poruka.msgid;if(msgid<range[0]||msgid>range[1]){return false}DATA.userid=poruka.userId;DATA.username=poruka.username;DATA.useravatar=poruka.user.avatar;DATA.usercolor=poruka.user.color;DATA.msgid=msgid;DATA.vreme=poruka.datetime;DATA.datum=poruka.date;if(!userdatapack[DATA.userid]){userdatapack[DATA.userid]={userid:DATA.userid,username:DATA.username,useravatar:DATA.useravatar,usercolor:DATA.usercolor,bodyavatar:DATA.a}}var processedMessage={m:DATA.m||"",t:DATA.t||"",u:DATA.userid,p:DATA.l||"0px"};processedmessages.push(processedMessage)}}catch(e){console.log("History decoder error:",e)}}function POSTDATA(users,messages){var usersString=JSON.stringify(users);var saveh1=$(".saveh1").val();var youtubelink=$(".youtubelink").val();var naslovprice='';if(saveh1!==''){naslovprice="<h1>"+saveh1+"</h1>"}if(saveh1!==''){youtubelink="<span id='youtubeURL'>"+youtubelink}var messagesString=JSON.stringify(messages);var USERREADY="<div class='user-images'>";for(var userId in users){if(users.hasOwnProperty(userId)){var user=users[userId];USERREADY+="<div class='user-block'>"+"<img src='"+user.useravatar+"' alt='"+user.username+"' class='user-avatar'/>"+"</div>"}}USERREADY+="</div>";var html="<div style='--main-color:"+selectedTopic.color+"' class='shippudenholder'>"+"<div class='shippudenscreen' style='background-image: url("+selectedTopic.url+");'><div class='megadesc'></div><div class='shippudenmenu'></div></div>"+"<div class='shippudenchat'></div>"+"<div class='data-container'>"+"<div class='users-data' data-users='"+usersString.replace(/'/g,"&apos;")+"'></div>"+"<div class='messages-data' data-messages='"+messagesString.replace(/'/g,"&apos;")+"'></div>"+"</div>"+"<div class='shippudenprio'>"+youtubelink+"</span><div id='youtube-player'></div>"+naslovprice+USERREADY+"<button class='mbutton start-roleplay-button' data-user-id='"+userId+"'>Show story</button></div>"+"</div>";if(html.length>60000){alert("Your message is too long. Please shorten the content.");return false}automessage(html,selectedTopic.id);alert3("Story saved.")}$(document).ready(function(){$.ajax({url:'/chatbox/actions',type:'post',data:{'submit_button':'Send','message':'','method':'send'},dataType:'json',cache:false,success:function(reservation){}});$('#startRoleplay').on('click',function(){if(!proveralokacije()){return false}$(this).hide();$(".megasend").addClass("joined");var $playerElement=$('#player-'+_userdata.user_id);var pos;console.log(pos);if($playerElement.length!==0){var parentWidth=$('#chatscreen').width();var leftInPixels=parseFloat($playerElement.css("left"))||0;var pos=(leftInPixels/parentWidth)*100}else{pos=Math.round(Math.random()*(80-20+1))+20}var message;if(myposition){message=GM('',myposition,2)}else{message=GM('',pos,2);myposition=pos}SM(message)});$('#leavebutton').on('click',function(){confirmation("Da li ste sigurni da želite napustiti ovu lokaciju?","Potvrda",50,"Da","Ne",function(confirmed){if(confirmed){$('#startRoleplay').show();$(".megasend").removeClass("joined");const message=GM('',666,'');SM(message)}})})});function HISTORYLOAD(channel){$(".playercharacter").remove();$.ajax({url:"/chatbox/actions",type:'GET',data:{method:'get',tid:'c7357199d8585c619618c7d86a594d74',archives:1,cbid:0,timeSwitch:1724354312},success:function(response){try{$(".megachat").empty();onlinelista=new Set();userpositions={};response.users.forEach(function(user){onlinelista.add(user.id)});response.messages.forEach(function(message){historydecoder(message)});for(var key in userpositions){if(userpositions.hasOwnProperty(key)){var positions=userpositions[key];if(onlinelista.has(key)){if(positions.length>0){var finalPosition=positions[positions.length-1];RENDER(finalPosition)}}}}}catch(e){console.log("History load error:",e)}},error:function(xhr,status,error){console.log("AJAX request error:",status,error)}})}function historydecoder(poruka){var cleanedJsonString=poruka.msg.replace(/<span[^>]*>/,'').replace(/<\/span>/,'');try{if(cleanedJsonString.startsWith('{')&&cleanedJsonString.endsWith('}')){const DATA=JSON.parse(cleanedJsonString);if(DATA.c!==channel){return false}DATA.userid=poruka.userId;DATA.username=poruka.username;DATA.useravatar=poruka.user.avatar;DATA.usercolor=poruka.user.color;DATA.msgid=poruka.msgid;DATA.vreme=poruka.datetime;DATA.datum=poruka.date;if(DATA.l&&DATA.l!=='0px'){if(!userpositions[DATA.userid]){userpositions[DATA.userid]=[]}userpositions[DATA.userid].push(DATA)}if(DATA.m&&DATA.m.length>0){SHOWMESSAGE(DATA,"history")}}}catch(e){console.log("History decoder error:",e)}}$(document).ready(function(){$('.sorter').on('click',function(){$(this).addClass('activesorting')});DODAJKATEGORIJE();DODAJTEME(0);$(document).on('click','.category-option',function(){var selectedText=$(this).text();var selectedValue=parseInt($(this).attr('value'));if($(this).closest('#categorylist').length){DODAJTEME(selectedValue)}$(this).closest('.sorter').find('.selected span').text(selectedText).attr('value',selectedValue);$('.sorter').removeClass('activesorting')});$('#loadarea').on('click',function(){cc=parseInt($('#categorysort .selected span').attr('value'));ct=parseInt($('#topicsort .selected span').attr('value'));channel=cc+","+ct;if(topicNames[cc]&&topicNames[cc][ct]){selectedTopic=topicNames[cc][ct];$('.forumshippuden')[0].style.setProperty('--main-color',selectedTopic.color);$('.chatscreenheader h2').text(categoryNames[cc]+" |");$('.chatscreenheader h1').text(selectedTopic.name);$('.chatscreen').css('background-image','url('+selectedTopic.url+')');HISTORYLOAD(channel)}else{console.error('Selected topic not found.')}});$('#loadarea').click()});function DODAJKATEGORIJE(){for(var categoryId in categoryNames){if(categoryNames.hasOwnProperty(categoryId)){var option=$('<span value="'+categoryId+'" class="category-option">'+categoryNames[categoryId]+'</span>');$('#categorylist').append(option)}}}function DODAJTEME(categoryId){if(topicNames.hasOwnProperty(categoryId)){var topicsForCategory=topicNames[categoryId]}else{return false}$('#topicsort .selected span').text(topicsForCategory[0].name).attr('value',0);$('#topiclist').empty();for(var topicId in topicsForCategory){if(topicsForCategory.hasOwnProperty(topicId)){var option=$('<span value="'+topicId+'" class="category-option">'+topicsForCategory[topicId].name+'</span>');$('#topiclist').append(option)}}}