window.Telegram.WebApp.ready();
Telegram.WebApp.expand();
Telegram.WebApp.setHeaderColor('#000000');
// Telegram.WebApp.MainButton.hide();
Telegram.WebApp.enableClosingConfirmation()
const init=window.Telegram.WebApp.initData
// showLoading()
getUser()
function generateDeviceID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
// Retrieve or generate the device ID
let deviceId = localStorage.getItem('device_id');
if (!deviceId) {
deviceId = generateDeviceID();
localStorage.setItem('device_id', deviceId);
}
function getUser() {
$.ajax({
type: "POST",
url: "./api/user.php",
data: { init: init, device_id: localStorage.getItem('device_id') },
success: function (json) {
$(".preLoader").hide();
// alert("Raw Response: ", json);
try {
var res = JSON.parse(json);
if (res.code == 200) {
// setTimeout(function () {
// $(".preLoader").hide();
Telegram.WebApp.setHeaderColor('#4e29a2');
// }, 2000);
sessionStorage.setItem('tap_income', res.tap_income);
if(res.profile_type=='text'){
$(".profileHeader").html(`
${res.profile}
${res.name}ID : ${res.userid}
`)
}else{
$(".profileHeader").html(`
${res.name}ID : ${res.userid}
`)
}
$("#balance").html(res.balance);
$(".balance_prob>div").html(res.balance);
$(".balance_now>span").html(res.balance);
var fixed = (res.balance * 1).toFixed(2);
$(".balanceFlex>.balance_old").html(fixed);
$(".profit_perhour:eq(0)>span>b").html("+" + res.tap_income);
$(".profit_perhour:eq(1)>span>b").html("+" + res.pph);
$("#used").html(res.tap_left);
sessionStorage.setItem("tap_count", res.tap_count);
var width = res.tap_left * 100 / 1000;
$("#total_product").html(res.product);
$("#pph_value").html(res.pph);
$(".progressbar>.progressCount").css("width", width + "%");
$("#userid").html(res.userid);
$(".sendInviteNow").click(function () {
location.href = res.referLink;
});
getTask();
getProduct();
getLevel();
getDepositHistory();
getWithdrawHistory();
checkIncome();
getSpinHistory();
hideLoading()
} else {
showLoading()
showFail(res.msg);
}
} catch (e) {
console.error("JSON Parse Error: ", e.message);
}
},
error: function (xhr, status, error) {
console.error("AJAX Error: ", status, error);
}
});
}
let touchStarted = false;
function earnCoin(event) {
if (event.type === 'touchstart') {
touchStarted = true;
} else if (event.type === 'click' && touchStarted) {
touchStarted = false;
return;
}
event.preventDefault();
//add cut here
var used=$("#used").html()*1;
var total=1000;
if(used<=0){
return;
}
var tap_count=sessionStorage.getItem("tap_count")*1;
sessionStorage.setItem("tap_count",tap_count+1);
var usednow=used-1;
var width=usednow*100/total*1
$(".progressbar>.progressCount").css("width",width+"%")
$("#used").html(used-1)
var per_tap_income=sessionStorage.getItem('tap_income');
const touches = event.changedTouches ? event.changedTouches : [event];
// var per_tap_income = '+';
plusBalance(per_tap_income)
for (let i = 0; i < touches.length; i++) {
const touch = touches[i];
const coin = event.target;
const rect = coin.getBoundingClientRect();
const x = touch.clientX - rect.left;
const y = touch.clientY - rect.top;
const centerX = rect.width / 2;
const centerY = rect.height / 2;
let tiltX = 0;
let tiltY = 0;
if (x < centerX) {
tiltX = -10;
} else {
tiltX = 10;
}
if (y < centerY) {
tiltY = -10;
} else {
tiltY = 10;
}
coin.style.transform = `rotateX(${tiltY}deg) rotateY(${tiltX}deg)`;
setTimeout(() => {
coin.style.transform = '';
}, 200);
const tapText = document.createElement('div');
tapText.className = 'tap-animation';
tapText.innerText = per_tap_income;
tapText.style.left = `${x}px`;
tapText.style.top = `${y}px`;
coin.appendChild(tapText);
tapText.addEventListener('animationend', () => {
tapText.remove();
});
}
// Reset touchStarted flag after a short delay to allow for next touch/click
setTimeout(() => {
touchStarted = false;
}, 300);
}