var hide_alerts = document.getElementById("hide_alerts"); if (hide_alerts !== null) { var myApp = new Framework7({ fastClicks:true, cache:false, swipeBackPage:false, notificationHold:7000, animatePages:false, pushState: true, onAjaxStart: function(xhr) { myApp.showIndicator(); }, onAjaxComplete: function(xhr) { myApp.hideIndicator(); } }); } else { var myApp = new Framework7({ fastClicks:true, cache:false, swipeBackPage:false, animatePages:false, pushState: true, onAjaxStart: function(xhr) { myApp.showIndicator(); }, onAjaxComplete: function(xhr) { myApp.hideIndicator(); } }); } var bgm; var $$=Dom7; var leftView=myApp.addView('.view-left',{dynamicNavbar:true}); var mainView=myApp.addView('.view-main',{dynamicNavbar:true}); (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-70477-48', 'auto'); ga('send', 'pageview'); //$$(document).on('page:beforeanimation', function (e) { //playSound("menu2"); //}); $$(document).on('onPageBeforeInit', function (e) { //console.log("page load"); }); $$(document).on('pageInit', function (e) { var page = e.detail.page; $('#homebtn').attr("disabled", false); $('#sidehome').attr("disabled", false); if (typeof actionfix !== "undefined") { clearInterval(actionfix); actionfix = undefined; } if (window.tcAutoBattle && window.tcAutoBattle.timer) { clearTimeout(window.tcAutoBattle.timer); window.tcAutoBattle.timer = null; if (page.name != 'battle' && page.name != 'battle2') { window.tcAutoBattle.enabled = false; window.tcAutoBattle.enemyGuid = ''; window.tcAutoBattle.state = null; } } //console.log(page.name); 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"); } else if (page.name == 'profile') { $.getScript("js/profile.js"); $.getScript("js/clipboard.min.js"); new ClipboardJS('.sharelink'); } else if (page.name == 'free_stuff') { $.getScript("js/free_stuff.js"); } else if (page.name == 'createcharacter') { $.getScript("js/createcharacter.js"); } else if (page.name == 'changelocation') { $.getScript("js/changelocation.js"); } else if (page.name == 'battle' || page.name == 'battle2') { var isBattle2 = page.name == 'battle2'; var battleEndpoint = page.name == 'battle2' ? 'battle2.php' : 'battle.php'; var patrolEndpoint = page.name == 'battle2' ? 'patrol2.php' : 'patrol.php'; $('#homebtn').attr("disabled", true); $('#sidehome').attr("disabled", true); if ($$(page.container).find('#confetti').data("enabled") == "true") { $('.page-on-left').remove(); drawConfettiRibbon(); //drawFireworks(); } var lock = 0; window.tcAutoBattle = window.tcAutoBattle || { enabled: false, timer: null, enemyGuid: '', stopHpPercent: 25, state: null }; var autoBattle = window.tcAutoBattle; var autoBattleIntervalMs = 125; function getBattleContainer() { if (mainView && mainView.activePage && mainView.activePage.container) { var activePageContainer = $$(mainView.activePage.container); if (activePageContainer.hasClass('battlepage')) { return activePageContainer; } var activeBattlePage = activePageContainer.find('.battlepage'); if (activeBattlePage.length) { return activeBattlePage; } } var pageContainer = $$(page.container); if (pageContainer.hasClass('battlepage')) { return pageContainer; } return pageContainer.find('.battlepage'); } function clearAutoBattleTimer() { if (autoBattle.timer) { clearTimeout(autoBattle.timer); autoBattle.timer = null; } } function stopAutoBattle() { autoBattle.enabled = false; autoBattle.enemyGuid = ''; autoBattle.state = null; clearAutoBattleTimer(); } function getBattlePageState() { var battlePage = getBattleContainer(); return { playerHp: parseInt(battlePage.attr('data-player-hp'), 10) || 0, playerMaxHp: parseInt(battlePage.attr('data-player-max-hp'), 10) || 0, enemyHp: parseInt(battlePage.attr('data-enemy-hp'), 10) || 0, enemyGuid: battlePage.attr('data-enemy-guid') || '' }; } function parseBattleStateFromHtml(html) { var state = { playerHp: 0, playerMaxHp: 0, enemyHp: 0, enemyGuid: '' }; if (!html) { return state; } var temp = document.createElement('div'); temp.innerHTML = html; var battlePage = temp.querySelector('.battlepage'); if (!battlePage) { return state; } state.playerHp = parseInt(battlePage.getAttribute('data-player-hp'), 10) || 0; state.playerMaxHp = parseInt(battlePage.getAttribute('data-player-max-hp'), 10) || 0; state.enemyHp = parseInt(battlePage.getAttribute('data-enemy-hp'), 10) || 0; state.enemyGuid = battlePage.getAttribute('data-enemy-guid') || ''; return state; } function cleanBattleText(text) { return (text || '').replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, ''); } function collectBattle2LogLines(root) { var lines = []; if (!root) { return lines; } var selectors = ['.playerInfo', '.enemyInfo', '#postBattleInfo', '#console']; for (var i = 0; i < selectors.length; i++) { var nodes = root.querySelectorAll(selectors[i]); for (var n = 0; n < nodes.length; n++) { var text = cleanBattleText(nodes[n].textContent); if (text && text.length > 2) { lines.push(text); } } } return lines.slice(0, 4); } function renderBattle2Log(lines) { if (!isBattle2) { return; } window.tcBattle2Log = window.tcBattle2Log || []; for (var i = lines.length - 1; i >= 0; i--) { if (lines[i] && window.tcBattle2Log[0] !== lines[i]) { window.tcBattle2Log.unshift(lines[i]); } } window.tcBattle2Log = window.tcBattle2Log.slice(0, 5); var log = getBattleContainer().find('.tc-battle-log'); if (!log.length) { return; } var html = ''; for (var x = 0; x < window.tcBattle2Log.length; x++) { html += '
' + $('
').text(window.tcBattle2Log[x]).html() + '
'; } log.html(html); } function animateBattle2Bars(oldWidths) { if (!isBattle2 || !oldWidths || !oldWidths.length) { return; } var bars = getBattleContainer().find('.progress-bar'); bars.each(function(index) { if (typeof oldWidths[index] === 'undefined') { return; } var bar = $(this); var targetWidth = bar[0].style.width; bar.css('width', oldWidths[index]); bar[0].offsetHeight; setTimeout(function() { bar.css('width', targetWidth); }, 20); }); } function triggerBattle2Impact(type) { if (!isBattle2) { return; } var target = getBattleContainer().find('.battleInfo'); if (!target.length) { return; } var cls = type == 'heavy' ? 'tc-impact-heavy' : 'tc-impact-special'; target.removeClass('tc-impact-special tc-impact-heavy'); target[0].offsetHeight; target.addClass(cls); } function setupBattle2AutoControls() { if (!isBattle2) { return; } var actions = getBattleContainer().find('.tc-actions-grid'); var autoButton = actions.find('.autobattlelink'); if (!actions.length || !autoButton.length || actions.find('.tc-auto-controls').length) { return; } var selected = parseInt(autoButton.attr('data-stop-hp-percent'), 10) || autoBattle.stopHpPercent || 25; var controls = $('
Auto stop
'); controls.find('button').each(function() { if (parseInt($(this).attr('data-stop'), 10) === selected) { $(this).addClass('active'); } }); controls.find('button').on('click', function(e) { e.preventDefault(); var stop = parseInt($(this).attr('data-stop'), 10); autoBattle.stopHpPercent = stop; autoButton.attr('data-stop-hp-percent', stop); controls.find('button').removeClass('active'); $(this).addClass('active'); updateAutoBattleButton(); }); actions.prepend(controls); } function refreshBattle2FromHtml(html) { var temp = document.createElement('div'); temp.innerHTML = html; var nextPage = temp.querySelector('.battlepage'); if (!nextPage) { mainView.router.loadContent(html); return; } var currentPage = getBattleContainer(); if (!currentPage.length) { mainView.router.loadContent(html); return; } var oldWidths = []; currentPage.find('.progress-bar').each(function() { oldWidths.push(this.style.width); }); var nextLogLines = collectBattle2LogLines(nextPage); var attrs = ['data-player-hp', 'data-player-max-hp', 'data-enemy-hp', 'data-enemy-guid']; for (var i = 0; i < attrs.length; i++) { currentPage.attr(attrs[i], nextPage.getAttribute(attrs[i]) || ''); } var nextStyle = nextPage.getAttribute('style'); if (nextStyle) { currentPage.attr('style', nextStyle); } else { currentPage.removeAttr('style'); } var nextContent = nextPage.querySelector('.page-content'); var currentContent = currentPage.find('.page-content'); if (nextContent && currentContent.length) { currentContent.html(nextContent.innerHTML); } else { currentPage.html(nextPage.innerHTML); } var nextNavbar = temp.querySelector('.navbar-inner'); var activeNavbar = page.navbarInnerContainer ? $$(page.navbarInnerContainer) : $$('.view-main .navbar-on-center .navbar-inner'); if (nextNavbar && activeNavbar.length) { activeNavbar.html(nextNavbar.innerHTML); } $('.actions').slideDown(80); bindBattleActions(); animateBattle2Bars(oldWidths); renderBattle2Log(nextLogLines); } function postBattleRequest(url, data, done, fail) { if (isBattle2) { return $.ajax({ method: "POST", url: url, data: data, global: false }).done(done).fail(fail || function() {}); } return $$.post(url, data, done, fail || function() {}); } function updateAutoBattleButton() { var button = getBattleContainer().find('.autobattlelink'); if (!button.length) { return; } var label = autoBattle.enabled ? 'Stop Auto' : 'Auto-Battle'; if (isBattle2 && !autoBattle.enabled) { label = 'Auto ' + (autoBattle.stopHpPercent > 0 ? autoBattle.stopHpPercent + '% HP' : 'No Stop'); } if (autoBattle.enabled) { button.addClass('color-red'); } else { button.removeClass('color-red'); } var actionLabel = $(button[0]).find('.actionimg'); var autoLeft = actionLabel.find('#auto_left').text(); actionLabel.empty().text(label); if (autoLeft) { actionLabel.append(' ()'); actionLabel.find('#auto_left').text(autoLeft); } } window.tcToggleAutoBattle = function(buttonEl) { var button = $$(buttonEl); var state = getBattlePageState(); if (autoBattle.enabled) { stopAutoBattle(); updateAutoBattleButton(); return false; } autoBattle.enabled = true; autoBattle.enemyGuid = button.data("enemyguid") || state.enemyGuid || ''; autoBattle.stopHpPercent = parseInt(button.data("stop-hp-percent"), 10) || 25; autoBattle.state = state; updateAutoBattleButton(); if (!lock && autoBattle.enemyGuid) { postPrimaryAttack(autoBattle.enemyGuid); return false; } scheduleAutoBattle(); return false; }; function postPrimaryAttack(enemyguid) { var x = 0; var y = 0; var coor = x + "," + y; lock = 1; if (!isBattle2) { myApp.hideIndicator(); } $(".actions").fadeOut(0, function() { $(this).remove(); }); postBattleRequest(battleEndpoint, { guid: enemyguid, coor: coor }, function(data) { runAttack(data); }, function() { lock = 0; stopAutoBattle(); updateAutoBattleButton(); }); } function scheduleAutoBattle() { clearAutoBattleTimer(); if (!autoBattle.enabled) { updateAutoBattleButton(); return; } var state = getBattlePageState(); if ((!state.enemyGuid || state.playerMaxHp <= 0) && autoBattle.state) { state = autoBattle.state; } var stopHp = Math.floor((state.playerMaxHp * autoBattle.stopHpPercent) / 100); if (!state.enemyGuid || state.enemyHp <= 0 || state.playerHp <= 0 || (autoBattle.stopHpPercent > 0 && state.playerHp <= stopHp)) { stopAutoBattle(); updateAutoBattleButton(); return; } updateAutoBattleButton(); autoBattle.timer = setTimeout(function() { if (!autoBattle.enabled || lock) { scheduleAutoBattle(); return; } var attackGuid = autoBattle.enemyGuid || state.enemyGuid; if (!attackGuid) { stopAutoBattle(); updateAutoBattleButton(); return; } if (!isBattle2) { var auto_left = parseInt($('#auto_left').text().replace(/,/g, ''), 10); console.log(auto_left); if (isNaN(auto_left)) { stopAutoBattle(); clearAutoBattleTimer(); updateAutoBattleButton(); return; } } postPrimaryAttack(attackGuid); }, autoBattleIntervalMs); } getStats(); //$$(".actionswrapper").click(function(){if($(".actions").is(":visible")){}else{$(".actions").slideDown("fast");}}); function runAttack(data) { autoBattle.state = parseBattleStateFromHtml(data); if (isBattle2) { refreshBattle2FromHtml(data); if (getBattleContainer().find('#skip_battle_results').data("enabled") == "true") { setTimeout(function(){ $(".patrollink").trigger("click"); }, 50); } } else { refreshBattle2FromHtml(data); } lock = 0; if (!isBattle2) { myApp.hidePreloader(); } getStats(); clearAutoBattleTimer(); if (autoBattle.enabled) { if (autoBattle.state && autoBattle.state.enemyGuid) { autoBattle.enemyGuid = autoBattle.state.enemyGuid; } scheduleAutoBattle(); } } function bindBattleActions() { $(".attacklink").off("click.tcBattle").on("click.tcBattle", function(e) { e.preventDefault(); $(this).addClass('tc-action-pending'); if (autoBattle.enabled) { stopAutoBattle(); updateAutoBattleButton(); } if (!lock) { var enemyguid = $$(this).data("enemyguid"); if (enemyguid) { postPrimaryAttack(enemyguid); } } $(this).attr('disabled', true); }); $(".remedylink").off("click.tcBattle").on("click.tcBattle", function(e) { e.preventDefault(); $(this).addClass('tc-action-pending'); stopAutoBattle(); if (!lock) { lock = 1; if (!isBattle2) { myApp.hideIndicator(); } //playSound("attack"); $(".actions").fadeOut(0, function() { $(this).remove(); }); method = ""; var enemyguid = $$(this).data("enemyguid"); if (enemyguid) { postBattleRequest(battleEndpoint + '?rm=1', { guid: enemyguid }, function(data) { runAttack(data); }, function() { //console.log("failure") }) } } $(this).attr('disabled', true); }); $(".speciallink").off("click.tcBattle").on("click.tcBattle", function(e) { e.preventDefault(); $(this).addClass('tc-action-pending'); triggerBattle2Impact('special'); stopAutoBattle(); if (!lock) { lock = 1; if (!isBattle2) { myApp.hideIndicator(); } //playSound("attack"); $(".actions").fadeOut(0, function() { $(this).remove(); }); method = ""; var enemyguid = $$(this).data("enemyguid"); if (enemyguid) { postBattleRequest(battleEndpoint + '?special=1', { guid: enemyguid }, function(data) { runAttack(data); }, function() { //console.log("failure") }) } } $(this).attr('disabled', true); }); $(".heavylink").off("click.tcBattle").on("click.tcBattle", function(e) { e.preventDefault(); $(this).addClass('tc-action-pending'); triggerBattle2Impact('heavy'); stopAutoBattle(); if (!lock) { lock = 1; if (!isBattle2) { myApp.hideIndicator(); } //playSound("attack"); $(".actions").fadeOut(0, function() { $(this).remove(); }); method = ""; var enemyguid = $$(this).data("enemyguid"); if (enemyguid) { postBattleRequest(battleEndpoint + '?heavy=1', { guid: enemyguid }, function(data) { runAttack(data); }, function() { //console.log("failure") }) } } $(this).attr('disabled', true); }); $(".superlink").off("click.tcBattle").on("click.tcBattle", function(e) { e.preventDefault(); $(this).addClass('tc-action-pending'); stopAutoBattle(); if (!lock) { lock = 1; if (!isBattle2) { myApp.hideIndicator(); } //playSound("attack"); $(".actions").fadeOut(0, function() { $(this).remove(); }); method = ""; var enemyguid = $$(this).data("enemyguid"); if (enemyguid) { postBattleRequest(battleEndpoint + '?super=1', { guid: enemyguid }, function(data) { runAttack(data); }, function() { //console.log("failure") }) } } $(this).attr('disabled', true); }); $(".coverlink").off("click.tcBattle").on("click.tcBattle", function(e) { e.preventDefault(); $(this).addClass('tc-action-pending'); stopAutoBattle(); if (!lock) { lock = 1; method = ""; var enemyguid = $$(this).data("enemyguid"); if (enemyguid) { postBattleRequest(battleEndpoint + '?cover=1', { guid: enemyguid }, function(data) { runAttack(data); }, function() { //console.log("failure") }) } } $(this).attr('disabled', true); }); $(".runlink").off("click.tcBattle").on("click.tcBattle", function(e) { e.preventDefault(); $(this).addClass('tc-action-pending'); stopAutoBattle(); if (!lock) { lock = 1; method = "hideenemy"; var enemy_id = $$(this).data("enemyguid"); $.ajax({ url: "worker.php?go=" + method + "&id=" + enemy_id, method: "POST", global: !isBattle2 }).done(function(data) { //console.log('success'); }); mainView.router.load({ url: patrolEndpoint, force: true, ignoreCache: true }); } $(this).attr('disabled', true); }); $(".patrollink").off("click.tcBattle").on("click.tcBattle", function(e) { e.preventDefault(); $(this).addClass('tc-action-pending'); stopAutoBattle(); method = "healcharacter"; $.ajax({ url: "worker.php?go=" + method, method: "POST", global: !isBattle2 }).done(function(data) { //console.log('success'); }); mainView.router.load({ url: patrolEndpoint, force: true, ignoreCache: true }); }); setupBattle2AutoControls(); } if ($$(page.container).find('#skip_battle_results').data("enabled") == "true") { //console.log('back to patrol2'); setTimeout(function(){ $$(".patrollink").click(); }, 50); } // main show $(".actions").slideDown(125); bindBattleActions(); if (isBattle2) { renderBattle2Log(collectBattle2LogLines(getBattleContainer()[0])); } if (autoBattle.enabled) { var state = getBattlePageState(); if (autoBattle.enemyGuid && state.enemyGuid && autoBattle.enemyGuid !== state.enemyGuid) { stopAutoBattle(); } } updateAutoBattleButton(); if (autoBattle.enabled) { scheduleAutoBattle(); } actionfix = setInterval(function(){ if ($(".actions").length == 0) { $$(".attacklink").click(); } else { } }, 3000); } else if (page.name == 'vendor') { $.getScript("js/vendor.js"); } else if (page.name == 'changeweapon') { $.getScript("js/changeweapon.js"); } else if (page.name == 'changearmor') { $.getScript("js/changearmor.js"); } else if (page.name == 'patrol' || page.name == 'patrol2') { $.getScript(page.name == 'patrol2' ? "js/patrol2.js" : "js/patrol.js"); $$('.popupact').on('click', function () { myApp.popup('.popup-actions'); }); $.getScript("https://www.google.com/recaptcha/api.js"); } else if (page.name == 'changesubclass') { $.getScript("js/changesubclass.js"); } else if (page.name == 'inventory') { $.getScript("js/inventory.js"); } else if (page.name == 'index-1') { $.getScript("js/index.js"); checkBGMusic(); } else if (page.name == 'logout') { $.getScript("js/logout.js"); } else if (page.name == 'settings') { $.getScript("js/settings.js"); } else if (page.name == 'message') { $.getScript("js/message.js"); } else if (page.name == 'clan') { $.getScript("js/clan.js"); } else if (page.name == 'findclan') { $.getScript("js/findclan.js"); } else if (page.name == 'viewclan') { $.getScript("js/findclan.js"); } else if (page.name == 'messages') { $.getScript("js/messages.js"); } else if (page.name == 'sentmessages') { $.getScript("js/sentmessages.js"); }else if (page.name == 'sendmessage') { $.getScript("js/sendmessage.js"); } else if (page.name == 'gear') { $.getScript("js/gear.js"); } else if (page.name == 'players') { $.getScript("js/players.js"); } else if (page.name == 'infusion') { $.getScript("js/infusion.js"); } else if (page.name == 'sellitems') { $.getScript("js/sellitems.js"); } else if (page.name == 'grimoire') { $.getScript("js/grimoire.js"); } else if (page.name == 'leaderboards') { $.getScript("js/leaderboards.js"); } else if (page.name == 'convertac') { $.getScript("js/convert.js"); } else if (page.name == 'guardian') { var char_id = $('#char_id').html(); $.getScript("js/guardian.php?char_id="+char_id); } else if (page.name == 'customize') { $.getScript("js/customize.js"); } else if (page.name == 'story') { $.getScript("js/story.js"); } else if (page.name == 'editstory') { $.getScript("js/editstory.js"); } else if (page.name == 'stats') { $.getScript("js/stats.php"); } else if (page.name == 'settlement') { $.getScript("js/settlement.js"); } else if (page.name == 'give') { $.getScript("js/give.js"); } else if (page.name == 'shop') { $.getScript("js/shop.js"); } else if (page.name == 'forum') { $.getScript("js/forum.js"); } else if (page.name == 'daily') { var user_id = $('#user_id').html(); $.getScript("js/daily.php?user_id="+user_id); } else if (page.name == 'transpose') { $.getScript("js/transpose.js"); } else if (page.name == 'resetchar') { $.getScript("js/resetchar.js"); } else if (page.name == 'clantitles') { $.getScript("js/clantitles.js"); } else if (page.name == 'hourlystats') { $.getScript("js/hourlystats.js"); } else if (page.name == 'changename') { $.getScript("js/changename.js"); } else if (page.name == 'iosiap') { $.getScript("js/iosiap.js"); } else if (page.name == 'andiap') { $.getScript("js/andiap.js"); } else if (page.name == 'delaccount') { $.getScript("js/delaccount.js"); } else if (page.name == 'upgrade') { ga('send', { hitType: 'event', eventCategory: 'Section', eventAction: 'Coin Store', eventLabel: 'AC' }); } // track //ga('send', 'event', 'Subsection', e.detail.page.name, 'Titan Conquest'); //ga('send', 'pageview'); /* var humanRNG = getRandomizer(1, 5000); if (humanRNG == 7) { myApp.alert("If you are not a robot, click OK!", 'Robot Check!'); } */ $("#actions").slideDown("fast"); //console.log("fired"); }); 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) { bgm = new Audio('mp3/bg.mp3'); if (bgm != null) { bgm.loop=true; bgm.volume=0.05; bgm.play(); checkBGMusic(); } } } function pauseBgMusic() { var bgdiv = document.getElementById("bgm"); if (bgdiv !== null) { if (bgm != null) { bgm.pause(); bgm.currentTime = 0.0; bgm = null; checkBGMusic(); } } } function checkBGMusic() { if (bgm != null) { if (bgm.paused) { $$("#playbgm").show(); $$("#pausebgm").hide(); } else { $$("#playbgm").hide(); $$("#pausebgm").show(); } } } 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"; }); $$("#playbgm").click(function() { startBgMusic(); $$("#playbgm").hide(); $$("#pausebgm").show(); }); $$("#pausebgm").click(function() { pauseBgMusic(); $$("#playbgm").show(); $$("#pausebgm").hide(); }); $$('.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) { event.preventDefault(); 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) { event.preventDefault(); 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(); }); } }); $('.chatroom').change(function(e) { var room = $( this ).val(); var last = $( this ).data("last"); //console.log(last); $("#chat_room_last").val($(".chatroom").val()) if (room == "custom") { // ask them myApp.prompt('Enter a room name', 'Custom Chat', function (value) { var room = value.trim(); room = room.replace(/<(.|\n)*?>/g, ''); //console.log(room); if (room) { $('.chatroom').append(''); $("#chatroom_desktop").val(room); $("#chatroom_mobile").val(room); 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); $(".chatflip").show(); $( this ).data("last", room); $("#chat_room_last").val(last); getChatD(); }); $(".chatflip").click(function() { var last = $("#chat_room_last").val(); $("#chat_room_last").val($(".chatroom").val()) $("#chatroom_desktop").val(last); $("#chatroom_mobile").val(last); //console.log(last + " " + $("#chat_room_last").val()); // remove highlight $(".chatflip").addClass("chatflipG"); $(".chatflip").removeClass("chatflipY"); doCWFC("chatlastcheck", ""); getChatD(); }); function setChatRoom(room) { // add if not there if ($('.chatroom option:contains('+ room +')').length == 0 && room != "staff" && room != "clan") { $('.chatroom').append(''); } // change them $("#chatroom_desktop").val(room); $("#chatroom_mobile").val(room); doCWFC("chatlastcheck", ""); $(".chatflip").show(); getChatD(); //console.log("room is now "+room); } function getChatD() { setTimeout(function() { getChat() }, 200); } function getChat() { var randomnumber=Math.floor(Math.random()*500000); room = $(".chatroom").val(); 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"); } }); // bolt flip switch check checkBoltChat(); } function checkBoltChat() { room = $("#chat_room_last").val(); $.ajax({ url: "worker.php?go=newchatscount&room="+encodeURIComponent(room), method: "POST" }) .done(function(data) { //console.log("d "+data+" "+room); if (data != "0") { $(".chatflip").addClass("chatflipY"); $(".chatflip").removeClass("chatflipG"); } }); } 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 claimChat(id) { $.ajax({ url: "worker.php?go=claimchat&id="+id, method: "POST" }) .done(function(data) { getChat(); }); } function checkForAlerts() { $.ajax({ url: "worker.php?go=alerts", method: "POST" }) .done(function(data) { if (data != "none") { alertUser(data); } }); } function alertUser(text) { myApp.addNotification({ title: 'Titan Conquest', message: text, onClose: function () { //myApp.alert('Notification closed'); } }); } var holdHomeTimer = null; var isHoldingHome = false; var holdHomeStartX = 0; var holdHomeStartY = 0; var holdHomeSuppressClick = false; var holdHomeSuppressClickTimer = null; var holdHomeMenuEl = null; var holdHomeOutsideBound = false; var holdHomeMenuButtons = [ { text: ' Acropolis', href: 'index.php' }, { text: ' My Inventory', href: 'inventory.php' }, { text: ' My Gear', href: 'gear.php' }, { text: ' My Messages', href: 'messages.php' } ]; function isHomeBtnTarget(target) { while (target && target !== document) { if (target.id === 'homebtn') { return true; } target = target.parentNode; } return false; } function isHoldHomeDisabled() { var homeBtn = document.getElementById('homebtn'); if (!homeBtn) { return true; } var disabledAttr = homeBtn.getAttribute('disabled'); return (disabledAttr !== null && disabledAttr !== 'false') || homeBtn.classList.contains('disabled') || homeBtn.getAttribute('aria-disabled') === 'true'; } function getHoldHomeTouch(event) { var originalEvent = event.originalEvent || event; var touch = originalEvent.touches && originalEvent.touches[0]; if (!touch && originalEvent.changedTouches) { touch = originalEvent.changedTouches[0]; } return touch || originalEvent; } function clearHoldHomeTimer() { isHoldingHome = false; if (holdHomeTimer) { clearTimeout(holdHomeTimer); holdHomeTimer = null; } } function suppressHoldHomeClick() { holdHomeSuppressClick = true; if (holdHomeSuppressClickTimer) { clearTimeout(holdHomeSuppressClickTimer); } holdHomeSuppressClickTimer = setTimeout(function() { holdHomeSuppressClick = false; holdHomeSuppressClickTimer = null; }, 1200); } function isHoldHomeMenuTarget(target) { return holdHomeMenuEl && holdHomeMenuEl.contains(target); } function closeHoldHomeMenu() { if (!holdHomeMenuEl) { return; } holdHomeMenuEl.classList.remove('hold-home-menu-open'); if (holdHomeOutsideBound) { document.removeEventListener('mousedown', handleHoldHomeOutside, true); document.removeEventListener('touchstart', handleHoldHomeOutside, true); document.removeEventListener('keydown', handleHoldHomeKeydown, true); holdHomeOutsideBound = false; } } function handleHoldHomeOutside(event) { if (isHomeBtnTarget(event.target) || isHoldHomeMenuTarget(event.target)) { return; } closeHoldHomeMenu(); } function handleHoldHomeKeydown(event) { if (event.key === 'Escape') { closeHoldHomeMenu(); } } function buildHoldHomeMenu() { if (holdHomeMenuEl) { return holdHomeMenuEl; } holdHomeMenuEl = document.createElement('div'); holdHomeMenuEl.id = 'hold-home-menu'; holdHomeMenuEl.className = 'hold-home-menu'; holdHomeMenuEl.setAttribute('role', 'menu'); var html = ''; for (var i = 0; i < holdHomeMenuButtons.length; i++) { html += ''; } html += ''; holdHomeMenuEl.innerHTML = html; holdHomeMenuEl.addEventListener('click', function(event) { var target = event.target; while (target && target !== holdHomeMenuEl && !target.classList.contains('hold-home-menu-item')) { target = target.parentNode; } event.preventDefault(); event.stopPropagation(); if (!target || target === holdHomeMenuEl || target.classList.contains('hold-home-menu-cancel')) { closeHoldHomeMenu(); return; } closeHoldHomeMenu(); mainView.router.loadPage(target.getAttribute('data-href')); }); document.body.appendChild(holdHomeMenuEl); return holdHomeMenuEl; } function positionHoldHomeMenu(menuEl) { var homeBtn = document.getElementById('homebtn'); if (!homeBtn) { return; } var rect = homeBtn.getBoundingClientRect(); var left = Math.max(8, Math.min(rect.left, window.innerWidth - menuEl.offsetWidth - 8)); menuEl.style.left = left + 'px'; menuEl.style.bottom = Math.max(58, window.innerHeight - rect.top + 6) + 'px'; } function showHoldHomeMenu() { if (isHoldHomeDisabled()) { return; } var menuEl = buildHoldHomeMenu(); menuEl.classList.add('hold-home-menu-open'); positionHoldHomeMenu(menuEl); if (!holdHomeOutsideBound) { setTimeout(function() { document.addEventListener('mousedown', handleHoldHomeOutside, true); document.addEventListener('touchstart', handleHoldHomeOutside, true); document.addEventListener('keydown', handleHoldHomeKeydown, true); holdHomeOutsideBound = true; }, 0); } } function handleHoldHomeStart(event) { if (isHoldHomeDisabled()) { clearHoldHomeTimer(); return; } if (event.type === 'mousedown' && event.button !== 0) { clearHoldHomeTimer(); return; } if (event.touches && event.touches.length > 1) { clearHoldHomeTimer(); return; } var touch = getHoldHomeTouch(event); holdHomeStartX = touch.clientX || 0; holdHomeStartY = touch.clientY || 0; isHoldingHome = true; if (holdHomeTimer) { clearTimeout(holdHomeTimer); } holdHomeTimer = setTimeout(function() { if (!isHoldingHome) { return; } holdHomeTimer = null; isHoldingHome = false; suppressHoldHomeClick(); showHoldHomeMenu(); }, 550); } function handleHoldHomeMove(event) { if (!isHoldingHome) { return; } if (event.touches && event.touches.length > 1) { clearHoldHomeTimer(); return; } var touch = getHoldHomeTouch(event); var moveX = Math.abs((touch.clientX || 0) - holdHomeStartX); var moveY = Math.abs((touch.clientY || 0) - holdHomeStartY); if (moveX > 12 || moveY > 12) { clearHoldHomeTimer(); } } function handleHoldHomeClick(event) { if (!holdHomeSuppressClick) { return; } holdHomeSuppressClick = false; if (holdHomeSuppressClickTimer) { clearTimeout(holdHomeSuppressClickTimer); holdHomeSuppressClickTimer = null; } event.preventDefault(); event.stopImmediatePropagation(); return false; } function handleHoldHomeContextMenu(event) { if (!isHomeBtnTarget(event.target)) { return; } clearHoldHomeTimer(); suppressHoldHomeClick(); showHoldHomeMenu(); event.preventDefault(); event.stopImmediatePropagation(); return false; } if (!window.homeBtnHoldInitialized) { window.homeBtnHoldInitialized = true; document.addEventListener('contextmenu', handleHoldHomeContextMenu, true); document.addEventListener('dragstart', function(event) { if (!isHomeBtnTarget(event.target)) { return; } event.preventDefault(); event.stopImmediatePropagation(); }, true); } $("#homebtn") .off(".homehold") .on("touchstart.homehold mousedown.homehold", handleHoldHomeStart) .on("touchmove.homehold mousemove.homehold", handleHoldHomeMove) .on("touchend.homehold touchcancel.homehold mouseup.homehold mouseleave.homehold", clearHoldHomeTimer) .on("click.homehold", handleHoldHomeClick); var myPhotoBrowserPopupDark = myApp.photoBrowser({ photos : [ 'https://titanconquest.com/img/screen1.png', 'https://titanconquest.com/img/screen2.png', 'https://titanconquest.com/img/screen3.png', 'https://titanconquest.com/img/screen4.png' ], theme: 'dark', type: 'standalone' }); $$('.pb-popup-dark-desktop').on('click', function () { myPhotoBrowserPopupDark.open(); }); var myPhotoBrowserPopupDark2 = myApp.photoBrowser({ photos : [ 'https://titanconquest.com/img/screen1.png', 'https://titanconquest.com/img/screen2.png', 'https://titanconquest.com/img/screen3.png', 'https://titanconquest.com/img/screen4.png' ], theme: 'dark', type: 'standalone' }); $$('.pb-popup-dark-mobile').on('click', function () { myPhotoBrowserPopupDark2.open(); }); setInterval(checkForAlerts, 40000); var chat_on = $("#chat_on").val(); if (chat_on == 1) { setInterval(getChat, 15000); setInterval(checkChat, 40000); } setInterval(getStats, 240000); getChat(); getStats(); checkForAlerts(); setTimeout(function() { startBgMusic() }, 1000); $$('.popover-xp').on('popover:open', function () { var randomnumber=Math.floor(Math.random()*500000); $('#pop_xp_content').load('worker.php?cachebuster='+randomnumber+'&go=getpopup&type=xp', function() { }); }); $$('.popover-dr').on('popover:open', function () { var randomnumber=Math.floor(Math.random()*500000); $('#pop_dr_content').load('worker.php?cachebuster='+randomnumber+'&go=getpopup&type=dr', function() { }); }); $$('.popup-actions').on('popup:open', function () { var randomnumber=Math.floor(Math.random()*500000); $('#actions_content').load('worker.php?cachebuster='+randomnumber+'&go=getactions', function() { $('.actionsprogressbar').each(function() { var progress = $$(this).attr('data-progress'); var progressbar = $$(this); myApp.showProgressbar(progressbar, progress, 'red'); //console.log(progressbar); }); $$(".aloadoutusebutton").click(function() { method = "loadoutuse"; var loadout_id = $$(this).data("loadoutid"); if (loadout_id > 0) { $.ajax({ url: "worker.php?go="+method+"&id="+loadout_id, method: "POST" }) .done(function(data) { //console.log('success', data); switch(data) { case "success": break; } }); } }); }); //console.log('Action Popup opened'); }); function mainTryRefresh() { var tries = 0; //console.log("trying refresh..."); function check() { //console.log("try "+tries); // can we refresh? if (mainView.allowPageChange) { currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); return; } tries++; //console.log(tries); if (tries >= 100) { // fallback currentScroll = $$(mainView.activePage.container).find('.page-content').scrollTop(); mainView.router.refreshPage(); return; } setTimeout(check, 100); } check(); } myApp.onPageAfterBack( 'message', function (page) { setTimeout( function () { mainTryRefresh(); }, 350 ); } );