// animatePages:false, var hide_alerts = document.getElementById("hide_alerts"); if (hide_alerts !== null) { var myApp = new Framework7({ bbfix:true, fastClicks:false, cache:false, swipeBackPage:true, notificationHold:7000, pushState: true, onAjaxStart: function(xhr) { myApp.showIndicator(); }, onAjaxComplete: function(xhr) { myApp.hideIndicator(); } }); } else { var myApp = new Framework7({ bbfix:true, fastClicks:false, cache:false, swipeBackPage:true, pushState: true, onAjaxStart: function(xhr) { myApp.showIndicator(); }, onAjaxComplete: function(xhr) { myApp.hideIndicator(); } }); } var $$=Dom7; var leftView=myApp.addView('.view-left',{dynamicNavbar:true}); var mainView=myApp.addView('.view-main',{dynamicNavbar:true}); var farmstatusint; var fishingint; var autofishingint; var fishingtmout; var mbchecktimer; var currentScroll = 0; $$(document).on('pageInit', function (e) { var page = e.detail.page; gtag('event', 'page_view', { "page_title": page.name, }); //console.log(page.name); clearInterval(farmstatusint); clearInterval(mbchecktimer); clearInterval(fishingint); clearInterval(autofishingint); var alert_rng = Math.floor(Math.random() * 3); if (alert_rng == 1) { checkForAlerts(); } if (page.name == 'register') { $.getScript("js/register.js"); $.getScript("https://www.google.com/recaptcha/api.js"); } else if (page.name == 'login') { $.getScript("js/login.js"); } else if (page.name == 'forgot') { $.getScript("js/forgot.js"); } else if (page.name == 'wiki') { $.getScript("js/wiki.js"); new ClipboardJS('.sharelink'); } else if (page.name == 'profile') { $.getScript("js/profile.js"); new ClipboardJS('.sharelink'); } else if (page.name == 'index-1') { getStats(); $.getScript("js/index.js"); } else if (page.name == 'logout') { $.getScript("js/logout.js"); } else if (page.name == 'settings') { $.getScript("js/settings.js"); } else if (page.name == 'settings_userinfo') { $.getScript("js/settings_userinfo.js"); } else if (page.name == 'settings_password') { $.getScript("js/settings_password.js"); } else if (page.name == 'settings_bio') { $.getScript("js/settings_bio.js"); } else if (page.name == 'settings_options') { $.getScript("js/settings_options.js"); } else if (page.name == 'settings_emblems') { $.getScript("js/settings_emblems.js"); } else if (page.name == 'settings_colors') { $.getScript("js/settings_colors.js"); } else if (page.name == 'settings_country') { $.getScript("js/settings_country.js"); } else if (page.name == 'message') { $.getScript("js/message.js"); } else if (page.name == 'messages') { $.getScript("js/messages.js"); } else if (page.name == 'members') { $.getScript("js/members.js"); } else if (page.name == 'sendmessage') { $.getScript("js/sendmessage.js"); } else if (page.name == 'setupfarm') { $.getScript("js/setupfarm.js"); } else if (page.name == 'farm') { $.getScript("js/farm.php"); } else if (page.name == 'store') { $.getScript("js/store.js"); } else if (page.name == 'market') { $.getScript("js/market.js"); } else if (page.name == 'fishing') { delete fishingint; $.getScript("js/fishing.js"); } else if (page.name == 'perks') { $.getScript("js/perks.js"); } else if (page.name == 'workshop') { $.getScript("js/workshop.js"); } else if (page.name == 'area') { $.getScript("js/area.js"); } else if (page.name == 'coop') { $.getScript("js/coop.js"); } else if (page.name == 'bank') { $.getScript("js/bank.js"); } else if (page.name == 'bankhistory') { $.getScript("js/apexcharts.min.js"); setTimeout(function(){ $.getScript("js/bankhistory.php"); }, 300); } else if (page.name == 'advstats') { $.getScript("js/apexcharts.min.js"); setTimeout(function(){ $.getScript("js/advstats.php"); }, 300); } else if (page.name == 'supply') { $.getScript("js/supply.js"); } else if (page.name == 'namechicken') { $.getScript("js/namechicken.js"); } else if (page.name == 'hab') { $.getScript("js/hab.js"); } else if (page.name == 'orchard') { $.getScript("js/orchard.js"); } else if (page.name == 'troutfarm') { $.getScript("js/troutfarm.js"); } else if (page.name == 'inventory') { $.getScript("js/inventory.js"); } else if (page.name == 'pasture') { $.getScript("js/pasture.js"); } else if (page.name == 'namecow') { $.getScript("js/namecow.js"); } else if (page.name == 'flea') { $.getScript("js/flea.js"); } else if (page.name == 'support') { $.getScript("js/support.js"); } else if (page.name == 'xfarm') { $.getScript("js/xfarm.php"); } else if (page.name == 'vineyard') { $.getScript("js/vineyard.js"); } else if (page.name == 'charter') { $.getScript("js/charter.js"); } else if (page.name == 'viewcharter') { $.getScript("js/viewcharter.js"); } else if (page.name == 'expedition') { $.getScript("js/expedition.js"); } else if (page.name == 'viewexpedition') { $.getScript("js/viewexpedition.js"); } else if (page.name == 'cellar') { $.getScript("js/cellar.js"); } else if (page.name == 'farmsettings') { $.getScript("js/farmsettings.js"); } else if (page.name == 'resetaccount') { $.getScript("js/resetaccount.js"); } else if (page.name == 'steakmarket') { $.getScript("js/steakmarket.js"); } else if (page.name == 'sawmill') { $.getScript("js/sawmill.js"); } else if (page.name == 'ironworks') { $.getScript("js/ironworks.js"); } else if (page.name == 'hayfield') { $.getScript("js/hayfield.js"); } else if (page.name == 'quarry') { $.getScript("js/quarry.js"); } else if (page.name == 'postoffice') { $.getScript("js/postoffice.js"); } else if (page.name == 'mailbox') { $.getScript("js/mailbox.js"); } else if (page.name == 'claim') { $.getScript("js/claim.js"); } else if (page.name == 'farmhouse') { $.getScript("js/farmhouse.js"); } else if (page.name == 'storehouse') { $.getScript("js/storehouse.js"); } else if (page.name == 'quest') { $.getScript("js/quest.js"); } else if (page.name == 'quests') { $.getScript("js/quests.js"); } else if (page.name == 'changename') { $.getScript("js/changename.js"); } else if (page.name == 'autocraft') { $.getScript("js/autocraft.js"); } else if (page.name == 'changebait') { $.getScript("js/changebait.js"); } else if (page.name == 'location') { $.getScript("js/location.js"); } else if (page.name == 'item') { $.getScript("js/item.js"); new ClipboardJS('.sharelink'); $.when( $.getScript( "js/transformJS.js" ), $.getScript( "js/jquery.bobble.js?12" ), $.Deferred(function( deferred ){ $( deferred.resolve ); }) ).done(function(){ $(".bobble").bobble(); }); } else if (page.name == 'iosiap') { $.getScript("js/iosiap.js"); } else if (page.name == 'andiap') { $.getScript("js/andiap.js"); } else if (page.name == 'mastery') { $.getScript("js/mastery.js"); } else if (page.name == 'pets') { $.getScript("js/pets.js"); } else if (page.name == 'pet') { $.getScript("js/pet.js"); } else if (page.name == 'namepet') { $.getScript("js/namepet.js"); } else if (page.name == 'feedmill') { $.getScript("js/feedmill.js"); } else if (page.name == 'flourmill') { $.getScript("js/flourmill.js"); } else if (page.name == 'well') { $.getScript("js/well.js"); } else if (page.name == 'explore') { $.getScript("js/explore.js"); } else if (page.name == 'tent') { $.getScript("js/tent.js"); } else if (page.name == 'locksmith') { $.getScript("js/locksmith.js"); } else if (page.name == 'pigpen') { $.getScript("js/pigpen.js"); } else if (page.name == 'namepig') { $.getScript("js/namepig.js"); } else if (page.name == 'manageperks') { $.getScript("js/manageperks.js"); } else if (page.name == 'allpetitems') { $.getScript("js/allpetitems.js"); } else if (page.name == 'pen') { $.getScript("js/pen.js"); } else if (page.name == 'nameraptor') { $.getScript("js/nameraptor.js"); } else if (page.name == 'craftitems') { $.getScript("js/craftitems.js"); } else if (page.name == 'xworkshop') { $.getScript("js/xworkshop.js"); } else if (page.name == 'comm') { $.getScript("js/comm.js"); } else if (page.name == 'spin') { $.getScript("js/winwheel.min.js?2"); setTimeout(function(){ $.getScript("js/spin2.js?3"); }, 200); } else if (page.name == 'crack') { $.getScript("js/crack.js"); } else if (page.name == 'daily') { $.getScript("js/daily.php"); } else if (page.name == 'tower') { $.getScript("js/tower.js"); } else if (page.name == 'gallery') { $.getScript("js/gallery.js"); } else if (page.name == 'mbshop') { $.getScript("js/mbshop.js"); } else if (page.name == 'chatalerts') { $.getScript("js/chatalerts.js"); } else if (page.name == 'exchange') { $.getScript("js/exchange.js"); } else if (page.name == 'cardshop') { $.getScript("js/cardshop.js"); } else if (page.name == 'steelworks') { $.getScript("js/steelworks.js"); } else if (page.name == 'tickets') { $.getScript("js/tickets.js"); } else if (page.name == 'craftworks') { $.getScript("js/craftworks.js"); } else if (page.name == 'rfc') { $.getScript("js/rfc.js"); } else if (page.name == 'rfcranks') { $.getScript("js/rfcranks.js"); } else if (page.name == 'soap') { $.getScript("js/soap.js"); } else if (page.name == 'eventshop') { $.getScript("js/eventshop.js"); } else if (page.name == 'schoolhouse') { $.getScript("js/schoolhouse.js"); } else if (page.name == 'quiz') { $.getScript("js/quiz.js"); } else if (page.name == 'progress') { $.getScript("js/progress.js"); setTimeout(function(){ $.getScript("js/confetti.js"); }, 200); } else if (page.name == 'kitchen') { $.getScript("js/kitchen.js"); } else if (page.name == 'oven') { $.getScript("js/oven.js"); } else if (page.name == 'npclevels') { $.getScript("js/npclevels.js"); } else if (page.name == 'edituser') { $.getScript("js/edituser.js"); } else if (page.name == 'story') { $.getScript("js/story.js"); } else if (page.name == 'editstory') { $.getScript("js/editstory.js"); } else if (page.name == 'poll') { $.getScript("js/poll.js"); } else if (page.name == 'admdb') { $.getScript("js/admdb.js"); } else if (page.name == 'about') { $.getScript("js/about.js"); } else if (page.name == 'delaccount') { $.getScript("js/delaccount.js"); } else if (page.name == 'templeitem') { $.getScript("js/templeitem.js"); } else if (page.name == 'testui') { $.getScript("js/testui.js"); } else if (page.name == 'everything') { $.getScript("js/everything.js"); } else if (page.name == 'bmerc') { $.getScript("js/bmerc.js"); } else if (page.name == 'town') { $.getScript("js/town.js"); } else if (page.name == 'townhall') { $.getScript("js/townhall.js"); } else if (page.name == 'mining') { $.getScript("js/mining.js"); } else if (page.name == 'mine') { $.getScript("js/mine.js"); } else if (page.name == 'ICE-Machine') { $.getScript("js/event_december.js"); } else if (page.name == 'sleep') { $.getScript("js/sleep.js"); setTimeout(function(){ $.getScript("js/confetti.js"); }, 200); } else if (page.name == 'Pinata') { $.getScript("js/event_pinata.js"); } else if (page.name == 'Bottle-Rocket-Brawl') { $.getScript("js/event_brb.js"); } else if (page.name == 'popwlog') { $.getScript("js/popwlog.js"); } // track // --- //$("#actions").slideDown("fast"); }); function getRandomizer(bottom, top) { return Math.floor( Math.random() * ( 1 + top - bottom ) ) + bottom; } function startBgMusic() { //bgm = document.getElementById("bg"); var bgdiv = document.getElementById("bgm"); if (bgdiv !== null) { var bgm = new Audio('mp3/bg.mp3'); if (bgm != null) { bgm.loop=true; bgm.volume=0.05; bgm.play(); } } } function playSound(obj) { snd = document.getElementById(obj); if (snd != null) snd.play(); } // always need this $.getScript("js/index.js"); $$(".mainlink").click(function() { window.location = "index.php"; }); $$(".hideshsaleannouncement").click(function() { myApp.showIndicator(); $.ajax({ url: "worker.php?go=hideshsaleannouncement", method: "POST" }) .done(function(data) { window.location = "index.php"; }); }); $$(".hidehomeannouncement").click(function() { myApp.showIndicator(); $.ajax({ url: "worker.php?go=hidehomeannouncement", method: "POST" }) .done(function(data) { window.location = "index.php"; }); }); $$(".hidedykrefannouncement").click(function() { myApp.showIndicator(); $.ajax({ url: "worker.php?go=hidedykrefannouncement", method: "POST" }) .done(function(data) { window.location = "index.php"; }); }); var is_beta = $('#is_beta').html(); // ios/android crop notif call function cropNotification(crop, seconds) { if (seconds > 0) { // ios try { window.webkit.messageHandlers.usernameCallback.postMessage("present-notif-crop-"+crop+"|"+seconds); } catch(err) { } // android try { //console.log('try android notification'); androidjsinterface.callbackAndroid("present-notif-crop-"+crop+"|"+seconds); } catch(err) { } } } // ios/android notif cancel function cancelCropNotifications() { // ios try { window.webkit.messageHandlers.usernameCallback.postMessage("cancel-notif-crops-ALL"); } catch(err) { } // android try { //console.log('try android cancel notification'); androidjsinterface.callbackAndroid("cancel-notif-crops-ALL"); } catch(err) { } } // ios notif call function mealNotification(meal, seconds) { if (seconds > 0) { try { window.webkit.messageHandlers.usernameCallback.postMessage("present-notif-meal-"+meal+"|"+seconds); } catch(err) { } } } // ios notif cancel function cancelMealNotifications() { try { window.webkit.messageHandlers.usernameCallback.postMessage("cancel-notif-meals-ALL"); } catch(err) { } } // testing $$(".testbtnaln").click(function() { try { androidjsinterface.callbackAndroid("-testLN-"); } catch(err) { //console.log('Cannot reach native code'); } }); // ------------------------------------------ // // this version is used by ios when it changes theme // it will check the user setting for theme sync function setDarkMode() { var dark_mode = $('#dark_mode').html(); var themelightdarksync = $('#themelightdarksync').html(); if (themelightdarksync == 1 && dark_mode == 0) { $.ajax({ url: "worker.php?go=setdarkmode", method: "POST" }) .done(function(data) { window.location = "index.php"; }); } } // this version is used by ios when it changes theme // it will check the user setting for theme sync function setLightMode() { var dark_mode = $('#dark_mode').html(); var themelightdarksync = $('#themelightdarksync').html(); if (themelightdarksync == 1 && dark_mode == 1) { $.ajax({ url: "worker.php?go=setlightmode", method: "POST" }) .done(function(data) { window.location = "index.php"; }); } } // this is used by the button at the bottom of Home $$(".godark").click(function() { myApp.showIndicator(); $.ajax({ url: "worker.php?go=setdarkmode", method: "POST" }) .done(function(data) { window.location = "index.php"; }); }); // this is used by the button at the bottom of Home $$(".golight").click(function() { myApp.showIndicator(); $.ajax({ url: "worker.php?go=setlightmode", method: "POST" }) .done(function(data) { window.location = "index.php"; }); }); // ------------------------------------------ // $$('.panel-right').on('open', function () { doCWFC("chatlastcheck", ""); $("#openchatbtn").removeClass("button-highlight"); $("#openchatbtn").hide(); }); $$('.panel-right').on('close', function () { doCWFC("chatlastcheck", ""); $("#openchatbtn").removeClass("button-highlight"); $("#openchatbtn").show(); }); function scrollTo(target) { $('.page-content').animate({ scrollTop: $("#"+target).offset().top }, 500); } function scrollToDiv(div) { $('.page-content').animate({scrollTop:$("#"+div).offset().top - 100}, 500); } // chat $('#chat_txt_mobile').keypress(function(event) { if (event.keyCode == 13) { text = $(this).val(); room = $("#chatroom_mobile").val(); $('#chat_txt_mobile').val(""); $('#chat_txt_mobile').focus(); $.ajax({ url: "worker.php?go=addchat&text="+encodeURIComponent(text)+"&room="+encodeURIComponent(room), method: "POST" }) .done(function(data) { $("#openchatbtn").removeClass("button-highlight"); getChatD(); }); } }); $('#chat_txt_desktop').keypress(function(event) { if (event.keyCode == 13) { text = $(this).val(); room = $("#chatroom_desktop").val(); //console.log(room) $('#chat_txt_desktop').val(""); $('#chat_txt_desktop').focus(); $.ajax({ url: "worker.php?go=addchat&text="+encodeURIComponent(text)+"&room="+encodeURIComponent(room), method: "POST" }) .done(function(data) { getChatD(); }); } }); $('.cclink').click(function() { var room = $( this ).data('channel'); if (room == "custom") { // ask them myApp.prompt('Enter a channel name', 'Custom Chat', function (value) { var room = value.trim(); //console.log(room); if (room) { $("#chatroom_desktop").val(room); $("#chatroom_mobile").val(room); $(".chatroom").val(room); getChatD(); $('.cclink').removeClass('cclinkselected'); $('.cccustom').addClass('cclinkselected'); } else { $("#chatroom_desktop").val("global"); $("#chatroom_mobile").val("global"); $(".chatroom").val("global"); getChatD(); $('.cclink').removeClass('cclinkselected'); $('.ccglobal').addClass('cclinkselected'); } }, function (value) { // cancel $("#chatroom_desktop").val("global"); $("#chatroom_mobile").val("global"); $(".chatroom").val("global"); getChatD(); $('.cclink').removeClass('cclinkselected'); $('.ccglobal').addClass('cclinkselected'); } ); } else { // synch $("#chatroom_desktop").val(room); $("#chatroom_mobile").val(room); $(".chatroom").val(room); $('.cclink').removeClass('cclinkselected'); $(this).addClass('cclinkselected'); } getChatD(); }); // old select $('.chatroom').change(function(e) { var room = $( this ).val(); if (room == "custom") { // ask them myApp.prompt('Enter a channel name', 'Custom Chat', function (value) { var room = value.trim(); //console.log(room); if (room) { $('.chatroom').append(''); $("#chatroom_desktop").val(value); $("#chatroom_mobile").val(value); getChatD(); } else { $("#chatroom_desktop").val("global"); $("#chatroom_mobile").val("global"); getChatD(); } }, function (value) { // cancel $("#chatroom_desktop").val("global"); $("#chatroom_mobile").val("global"); getChatD(); } ); } // synch $("#chatroom_desktop").val(room); $("#chatroom_mobile").val(room); getChatD(); }); function claimChat(id) { $.ajax({ url: "worker.php?go=claimchat&id="+id, method: "POST" }) .done(function(data) { getChat(); }); } function setChatRoom(room) { if (room == "staff") { $('.cclink').removeClass('cclinkselected'); $('.ccstaff').addClass('cclinkselected'); } // change them $("#chatroom_desktop").val(room); $("#chatroom_mobile").val(room); getChatD(); //console.log("room is now "+room); } function getChatD() { setTimeout(function() { getChat() }, 25); } function checkAllReady() { $('.ready').each(function() { var id = $(this).data('id'); getReadyCount(id); }); } function getReadyCount(id) { var randomnumber=Math.floor(Math.random()*500000); $('.ready'+id).load('worker.php?cachebuster='+randomnumber+'&go=readycount&id='+id, function() { //console.log(id); }); } function getChat() { var randomnumber=Math.floor(Math.random()*500000); room = $(".chatroom").val(); $('.cclink').removeClass('cclinkselected'); $('.cc'+room).addClass('cclinkselected'); if($("#chatzoneDesktop").is(":visible")){ $('#chatzoneDesktop').load('worker.php?cachebuster='+randomnumber+'&go=getchat&room='+encodeURIComponent(room), function() { linkCQD(); }); } else { $('#chatzoneMobile').load('worker.php?cachebuster='+randomnumber+'&go=getchat&room='+encodeURIComponent(room), function() { linkCQM(); }); } } function linkCQD() { $('.cq').click(function() { var un = $(this).data('username'); $("#chat_txt_desktop").val("@"+un+": "); $("#chat_txt_desktop").focus(); //console.log(un); }); } function linkCQM() { $('.cq').click(function() { var un = $(this).data('username'); $("#chat_txt_mobile").val("@"+un+": "); $("#chat_txt_mobile").focus(); //console.log(un); }); } function checkChat() { room = $(".chatroom").val(); $.ajax({ url: "worker.php?go=newchatscount&room="+encodeURIComponent(room), method: "POST" }) .done(function(data) { if (data != "0") { $("#openchatbtn").addClass("button-highlight"); } }); gtag('event', 'check_chat', { "page_title": room, }); } function delChat(id) { $.ajax({ url: "worker.php?go=delchat&id="+id, method: "POST" }) .done(function(data) { getChatD(); }); } function undelChat(id) { $.ajax({ url: "worker.php?go=undelchat&id="+id, method: "POST" }) .done(function(data) { getChatD(); }); } function flagChat(id) { method = "flagchat"; if (id > 0) { var buttons = [ { text: 'Alert staff about this chat message?', label: true }, { text: 'Yes', onClick: function () { $.ajax({ url: "worker.php?go="+method+"&id="+id, method: "POST" }) .done(function(data) { //console.log('success', data); switch(data) { case "success": myApp.alert("Staff has been alerted!", 'Success!'); break; } }); } }, { text: 'Cancel', color: 'red', onClick: function () { } }, ]; myApp.actions(buttons); } } function getStats() { var randomnumber=Math.floor(Math.random()*500000); $('#statszone').load('worker.php?cachebuster='+randomnumber+'&go=getstats', function() { }); } function doCWFC(content, options) { var randomnumber=Math.floor(Math.random()*500000); $.ajax({ url: "worker.php?go="+content+""+options, method: "POST" }) .done(function(data) { // console.log('success', data) //return data; }); //return ""; } function checkForAlerts() { $.ajax({ url: "worker.php?go=alerts", method: "POST" }) .done(function(data) { if (data != "none") { alertUser(data); } }); } function alertUser(text) { myApp.addNotification({ title: 'FARM RPG', message: text, onClose: function () { //myApp.alert('Notification closed'); } }); } var myPhotoBrowserPopupDark = myApp.photoBrowser({ photos : [ 'https://game.destinyrpg.com/img/screen1.jpg', 'https://game.destinyrpg.com/img/screen2.jpg', 'https://game.destinyrpg.com/img/screen3.jpg', 'https://game.destinyrpg.com/img/screen4.jpg', 'https://game.destinyrpg.com/img/screen5.jpg' ], theme: 'light', type: 'standalone' }); $$('.pb-popup-dark-desktop').on('click', function () { myPhotoBrowserPopupDark.open(); }); var myPhotoBrowserPopupDark2 = myApp.photoBrowser({ photos : [ 'https://farmrpg.com/img/screenshots/00.png', 'https://farmrpg.com/img/screenshots/01.png', 'https://farmrpg.com/img/screenshots/02.png', 'https://farmrpg.com/img/screenshots/03.png', 'https://farmrpg.com/img/screenshots/04.png', 'https://farmrpg.com/img/screenshots/05.png', 'https://farmrpg.com/img/screenshots/06.png' ], theme: 'light', type: 'standalone' }); $$('.pb-popup-mobile').on('click', function () { myPhotoBrowserPopupDark2.open(); }); function sendUsernameToNative(name) { //This function will send the name to native. try { window.webkit.messageHandlers.usernameCallback.postMessage(name); } catch(err) { //console.log('Cannot reach native code'); } } function sendUserIDToNative(user_id) { try { window.webkit.messageHandlers.usernameCallback.postMessage("userid-"+user_id); } catch(err) { //console.log('Cannot reach native code'); } } function sendDMToNative(value) { //This function will send the name to native. try { window.webkit.messageHandlers.usernameCallback.postMessage("dark-mode-"+value); } catch(err) { //console.log('Cannot reach native code'); } } var dark_mode = $('#dark_mode').html(); sendDMToNative(dark_mode); var logged_in_username = $('#logged_in_username').html(); sendUsernameToNative(logged_in_username); var logged_in_userid = $('#logged_in_userid').html(); sendUserIDToNative(logged_in_userid); function sendMusicToNative(option) { //This function will send the name to native. try { window.webkit.messageHandlers.usernameCallback.postMessage("start-background-music-"+option); } catch(err) { //console.log("Cannot reach native code / start-background-music-"+option); } // android if (is_beta == 1) { try { //console.log('try android music'); androidjsinterface.callbackAndroid("start-background-music-"+option); } catch(err) { } } } var music_option = $('#music').html(); if (music_option > 0) { sendMusicToNative(music_option); } else { sendMusicToNative("off"); } function toggleAQPpos() { if ($('.aqp').css("top") == "27.5px") { $('.aqp').css("top","90px"); } else { $('.aqp').css("top","27.5px"); } } var chat_option = $('#chat').html(); if (chat_option > 0) { setInterval(checkChat, 70000); setInterval(getChat, 40000); getChat(); } setInterval(checkForAlerts, 90000); setInterval(getStats, 700000); setInterval(checkAllReady, 70000); getStats(); var isSnowing = localStorage.getItem("snowingthm2"); $('.fasnowon').hide(); $('.fasnowoff').hide(); //console.log(isSnowing); if (localStorage.getItem("snowingthm2") === null) { //$('.view-main').snowfall({round : true, minSize: 1, maxSize:3, shadow : true, maxSpeed: 1}); //isSnowing = true; } if (isSnowing == "yes") { $('.view-main').snowfall({round : true, minSize: 1, maxSize:3, shadow : true, maxSpeed: 1}); isSnowing = true; $('.fasnowon').show(); $('.fasnowoff').hide(); } else { $('.fasnowon').hide(); $('.fasnowoff').show(); } if (navigator.userAgent && typeof screen != 'undefined' && screen.width) { var isAndroid12 = navigator.userAgent.includes('Android 12'), isOneOfSamsungDevices = navigator.userAgent.includes('SM-'); if (isAndroid12 && isOneOfSamsungDevices) { var content = 'user-scalable=no, width=' + screen.width; if (document.querySelector){ var viewport = document.querySelector('meta[name=viewport]'); viewport.setAttribute('content', content); }else{ addMeta('viewport', content); } } } $$(".playnowbtn").click(function() { method = "playnow"; $.ajax({ url: "worker.php?go="+method, method: "POST" }) .done(function(data) { switch(data) { case "regoff": myApp.alert('Registration is currently disabled. Check later.', 'Sorry!'); break; case "success": window.location = "index.php"; break; } }); }); var cdtimer = setInterval(() => { for (const elm of document.querySelectorAll(`[data-countdown-to]`)) { const countdownTo = luxon.DateTime.fromISO(elm.dataset.countdownTo, {zone: "America/Chicago"}) let delta = countdownTo.diffNow().shiftTo("hours", "minutes", "seconds").normalize() if (delta.hours === 0) { delta = delta.shiftTo("minutes", "seconds").normalize() } if (delta.hours === 0 && delta.minutes === 0) { delta = delta.shiftTo("seconds").normalize() } // Round down seconds. Otherwise things like seconds=59.9 shows as 60 and it looks silly. delta = delta.set({ seconds: delta.seconds - (delta.seconds % 1) }) if (delta.toMillis() > 0) { elm.innerText = delta.toHuman({ unitDisplay: "short", maximumFractionDigits: 0 }) } else { elm.innerText = "Completed" if ($(elm).data('refresh') == 1) { setTimeout(function(){ currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 700); $(elm).remove(); } } } }, 800) function showEffect(img, target, options = {}) { var harvest_animations = $('#harvest_animations').html(); if (options.force || harvest_animations == 1) { const contentArea = (typeof target === 'string' || target instanceof String) ? document.getElementById(target) : target; const rect = contentArea.getBoundingClientRect(); const width = rect.width - 100; const height = rect.height; const qty = options.qty || rect.width / 20; for (let i = 0; i < qty; i++) { const elm = document.createElement("img"); elm.setAttribute("class", "harvest-floater"); if (img.startsWith("/img")) { elm.setAttribute("src", img); } else { elm.setAttribute("src", "/img/"+img+".png"); } elm.addEventListener("animationend", function() { elm.remove(); }); // Roll for location and timing. const x = Math.random() * width; const y = rect.y + (Math.random() * height); const floaterSize = 30 + (Math.random() * 70); const duration = Math.random() + 1; elm.style.zIndex = "999"; elm.style.left = `${x}px`; elm.style.top = `${y}px`; elm.style.animationDuration = `${duration}s`; elm.style.width = `${floaterSize}px`; elm.style.height = `${floaterSize}px`; contentArea.after(elm); } } } /** * POST a request to worker.php. * @param {string} action * @param {Record} params */ async function fetchWorker(action, params={}) { params.go = action; const qs = new URLSearchParams(params).toString(); let resp = await fetch(`worker.php?${qs}`, {method: 'POST'}); if (!resp.ok) { throw `Error ${resp.status} from worker: ${await resp.text()}`; } return resp; } /** * An async-compatible version of myApp.actions(). * @template T * @param {{text: string, label?: boolean, color?: string, onClick?: (() => T)}[]} buttons * @returns {Promise} */ function actionsAsync(...buttons) { return new Promise((resolve, reject) => myApp.actions(buttons.map(button => { const originalOnClick = button.onClick || (() => null); button.onClick = () => { try { resolve(originalOnClick()); } catch (error) { reject(error); } }; return button; })) ); } /** * An async-compatbile version of myApp.alert(). * @param {string} text * @param {string} title * @returns {Promise} */ function alertAsync(text, title) { return new Promise(resolve => myApp.alert(text, title, () => resolve(true)) ); } /** * A simple confirmation prompt. * @param {string} label */ function actionsConfirm(label) { return actionsAsync( { text: label, label: true, }, { text: 'Yes', onClick: () => true, }, { text: 'Cancel', color: 'red', onClick: function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); return false; } }, ) } const animateCSS = (element, animation, prefix = 'animate__') => // We create a Promise and return it new Promise((resolve, reject) => { const animationName = `${prefix}${animation}`; const node = document.querySelector(element); node.classList.add(`${prefix}animated`, animationName); // When the animation ends, we clean the classes and resolve the Promise function handleAnimationEnd(event) { event.stopPropagation(); node.classList.remove(`${prefix}animated`, animationName); resolve('Animation ended'); } node.addEventListener('animationend', handleAnimationEnd, {once: true}); }); // ----------- back and scroll events ----------------- // // event for new refresh page to set its new scroll $$(mainView.container).on( 'page:init', function (e) { if (currentScroll > 0) { $$(mainView.activePage.container).find('.page-content').scrollTop(currentScroll); currentScroll = 0; } } ); myApp.onPageAfterBack( 'item', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); var page = $('.page-on-center').data("page"); if (page != "locksmith") { mainView.router.refreshPage(); } }, 350 ); } ) myApp.onPageAfterBack( 'story', function (page) { var id = $("#storyid").html(); setTimeout( function () { mainView.router.reloadPage("storylaunch.php?id=" + id); }, 500 ); } ) myApp.onPageAfterBack( 'mailbox', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'crack', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'cardshop', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'temple', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'quest', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 500 ); } ); myApp.onPageAfterBack( 'postoffice', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'coop', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'pasture', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'pigpen', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'storehouse', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'farmhouse', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'pen', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'cellar', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'hab', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'orchard', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'troutfarm', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'vineyard', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'sawmill', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'ironworks', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'steelworks', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'hayfield', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'quarry', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'flourmill', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'feedmill', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'bank', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'pets', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'pet', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'namechicken', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'namepig', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'namecow', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'namepet', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'nameraptor', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'rfc', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'expedition', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'charter', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'viewcharter', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'daily', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'perks', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'mastery', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'npclevels', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'store', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'soap', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'viewexpedition', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'viewcharter', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'well', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'mbshop', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } ); myApp.onPageAfterBack( 'mining', function (page) { setTimeout( function () { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); }, 350 ); } );