1
0
Fork 0
forked from Simnation/Main
Main/resources/[tools]/okokBanking/web/scripts.js
2025-06-29 05:12:26 +02:00

1374 lines
No EOL
44 KiB
JavaScript

var table = []
var selectedWindow = "none"
var data_graph = {}
var isLoggingOut = false
var useSound = false
window.addEventListener('message', function(event) {
if (event.data.UseSound) {
useSound = event.data.UseSound;
}
switch (event.data.action) {
case 'loading_data':
if (selectedWindow == "none") {
$('#menu').html(`
<div class="d-flex justify-content-center flex-column align-items-center">
<span class="load"></span>
<br>
<div class="ldata-txt">Loading Data...</div>
</div>
`);
$("#menu").fadeIn();
$(".main_card").fadeIn();
selectedWindow = "loading_data";
}
break
case 'bankmenu':
if (selectedWindow == "loading_data") {
if(useSound) {
var popup_sound = new Audio('popup.mp3');
popup_sound.volume = 0.2;
popup_sound.play();
}
$("#menu").fadeOut();
setTimeout(function(){
if (event.data.playerSex == "m") {
avatar = `<img src="img/avatar_male.png" class="avatar">`;
} else {
avatar = `<img src="img/avatar_female.png" class="avatar">`;
}
$('#menu').html(`
<div class="col-md-2 d-flex flex-column sidebar-s">
<img src="img/logo.png" class="logo">
<hr>
<span class="sidebar-title">Personal</span>
<div id="sidebar"></div>
<p class="sidebar-item mt-auto logout"><i class="fas fa-sign-out-alt"></i></i> <span class="ms-1">Logout</span></p>
</div>
<div class="col-md-10 tab-s">
<div class="d-flex justify-content-between align-items-center">
<span class="selected-page"><span id="page-title">Overview</span></span>
<div>
<span class="username align-middle">
<span id="playerName"></span> <span id="avatar">${avatar}</span>
</span>
<div class="wallet-div">
<span>Wallet: <span id="wallet_money"></span> USD</span>
</div>
</div>
</div>
<hr>
<div class="row" id="page_info"></div>
</div>
`);
$("#menu").fadeIn();
overview_page_function(event);
}, 400);
}
break
case 'updatevalue':
$("#playerBankMoney").html('');
$("#playerBankMoney").html(event.data.playerBankMoney.toLocaleString());
$("#wallet_money").html(event.data.walletMoney.toLocaleString());
break
case 'updateiban':
$("#playerIBAN").html('');
$("#playerIBAN").html(event.data.iban);
break
case 'overview_page':
overview_page_function(event);
break
case 'transactions_page':
for(var i=0; i<table.length; i++) {
table[i].destroy();
table.splice(i, 1);
}
$('#page-title').html('Transactions');
if (event.data.isInSociety){
society = `<span class="sidebar-title mt-5">Society</span>
<p class="sidebar-item mt-2" id="society_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item" id="society_transactions"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>`;
} else {
society = '';
}
$('#sidebar').html(`
<p class="sidebar-item mt-2" id="overview_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item selected" id="transactions_page"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>
<p class="sidebar-item mt-2" id="settings_page"><i class="fas fa-cog"></i> <span class="ms-1">Settings</span></p>
${society}
`);
var row = '';
var num = event.data.db.length;
var numOfTransactions = 0
for(var i = 0; i < num; i++) {
numOfTransactions++
var db = event.data.db[i];
// Received
if (db.type == 'transfer' && db.receiver_identifier == event.data.identifier) {
var name = db.sender_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="transactions-action"><i class="bi bi-download"></i></span></td>';
data = `<td class="align-middle fw500">
From <span class="transactions-name">${name}</span>
<div class="mtm3125">Received</div>
</td>`;
amount = `<td class="align-middle fw500 transactions-received text-center">+ ${db.value.toLocaleString()} USD</td>`;
// Sent
} else if (db.type == 'transfer' && db.sender_identifier == event.data.identifier) {
var name = db.receiver_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="transactions-action"><i class="bi bi-upload"></i></span></td>';
data = `<td class="align-middle fw500">
To <span class="transactions-name">${name}</span>
<div class="mtm3125">Sent</div>
</td>`;
amount = `<td class="align-middle fw500 text-center">- ${db.value.toLocaleString()} USD</td>`;
// Deposited
} else if (db.type == 'deposit') {
var name = db.receiver_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="transactions-action"><i class="bi bi-download"></i></span></td>';
data = `<td class="align-middle fw500">
Into <span class="transactions-name">${name}</span>
<div class="mtm3125">Deposited</div>
</td>`;
amount = `<td class="align-middle fw500 transactions-received text-center">+ ${db.value.toLocaleString()} USD</td>`;
// Withdrawn
} else if (db.type == 'withdraw') {
var name = db.sender_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="transactions-action"><i class="bi bi-upload"></i></span></td>';
data = `<td class="align-middle fw500">
From <span class="transactions-name">${name}</span>
<div class="mtm3125">Withdrawn</div>
</td>`;
amount = `<td class="align-middle fw500 text-center">- ${db.value.toLocaleString()} USD</td>`;
}
row += `
<tr>
${icon}
${data}
<td class="align-middle fw500">${db.date}</td>
${amount}
</tr>
`;
}
$('#page_info').removeClass('row');
$('#page_info').html(`
<div class="row mb-3">
<div class="col col-md-3 pr05">
<div class="card stats-title">
<div class="card-body text-center">
<h6 class="card-title">TRANSACTIONS</h6>
<p class="card-text fw125" id="totalInvoices">${numOfTransactions}</p>
</div>
</div>
</div>
<div class="col col-md-3 pr05 pl05">
<div class="card stats-title">
<div class="card-body text-center">
<h6 class="card-title">INCOME</h6>
<p class="card-text fw125" id="totalIncome">${event.data.graph_values[7].toLocaleString()}$</p>
</div>
</div>
</div>
<div class="col col-md-3 pr05 pl05">
<div class="card stats-title">
<div class="card-body text-center">
<h6 class="card-title">OUTCOME</h6>
<p class="card-text fw125" id="unpaidInvoices">${event.data.graph_values[8].toLocaleString()}$</p>
</div>
</div>
</div>
<div class="col col-md-3 pl05">
<div class="card stats-title">
<div class="card-body text-center">
<h6 class="card-title">EARNINGS</h6>
<p class="card-text fw125" id="awaitedIncome">${event.data.graph_values[9].toLocaleString()}$</p>
</div>
</div>
</div>
</div>
<table id="transactionsTable">
<tbody id="transactionsData">
</tbody>
</table>
`);
$('#transactionsData').html(row);
var table_id = document.getElementById('transactionsTable');
table.push(new simpleDatatables.DataTable(table_id, {
perPageSelect: false,
perPage: 5,
}));
break
case 'society_transactions':
for(var i=0; i<table.length; i++) {
table[i].destroy();
table.splice(i, 1);
}
$('#page-title').html('Transactions');
if (event.data.isInSociety){
society = `<span class="sidebar-title mt-5">Society</span>
<p class="sidebar-item mt-2" id="society_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item selected" id="society_transactions"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>`;
} else {
society = '';
}
$('#sidebar').html(`
<p class="sidebar-item mt-2" id="overview_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item" id="transactions_page"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>
<p class="sidebar-item mt-2" id="settings_page"><i class="fas fa-cog"></i> <span class="ms-1">Settings</span></p>
${society}
`);
var row = '';
var num = event.data.db.length;
var numOfTransactions = 0
for(var i = 0; i < num; i++) {
numOfTransactions++
var db = event.data.db[i];
// Received
if (db.type == 'transfer' && db.receiver_identifier == event.data.identifier) {
var name = db.sender_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="transactions-action"><i class="bi bi-download"></i></span></td>';
data = `<td class="align-middle transactions-name-div">
From <span class="transactions-name">${name}</span>
<div class="mtm3125">Received</div>
</td>`;
amount = `<td class="align-middle fw500 transactions-received text-center">+ ${db.value.toLocaleString()} USD</td>`;
// Sent
} else if (db.type == 'transfer' && db.sender_identifier == event.data.identifier) {
var name = db.receiver_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="transactions-action"><i class="bi bi-upload"></i></span></td>';
data = `<td class="align-middle transactions-name-div">
To <span class="transactions-name">${name}</span>
<div class="mtm3125">Sent</div>
</td>`;
amount = `<td class="align-middle fw500 text-center">- ${db.value.toLocaleString()} USD</td>`;
// Deposited
} else if (db.type == 'deposit') {
var name = db.receiver_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="transactions-action"><i class="bi bi-download"></i></span></td>';
data = `<td class="align-middle transactions-name-div">
Into <span class="transactions-name">${name}</span>
<div class="mtm3125">Deposited</div>
</td>`;
amount = `<td class="align-middle fw500 transactions-received text-center">+ ${db.value.toLocaleString()} USD</td>`;
// Withdrawn
} else if (db.type == 'withdraw') {
var name = db.sender_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="transactions-action"><i class="bi bi-upload"></i></span></td>';
data = `<td class="align-middle transactions-name-div">
From <span class="transactions-name">${name}</span>
<div class="mtm3125">Withdrawn</div>
</td>`;
amount = `<td class="align-middle fw500 text-center">- ${db.value.toLocaleString()} USD</td>`;
}
row += `
<tr>
${icon}
${data}
<td class="align-middle fw500">${db.date}</td>
${amount}
</tr>
`;
}
$('#page_info').removeClass('row');
$('#page_info').html(`
<div class="row mb-3">
<div class="col col-md-3 pr05">
<div class="card stats-title">
<div class="card-body text-center">
<h6 class="card-title">TRANSACTIONS</h6>
<p class="card-text fw125" id="totalInvoices">${numOfTransactions}</p>
</div>
</div>
</div>
<div class="col col-md-3 pr05 pl05">
<div class="card stats-title">
<div class="card-body text-center">
<h6 class="card-title">INCOME</h6>
<p class="card-text fw125" id="totalIncome">${event.data.graph_values[7].toLocaleString()}$</p>
</div>
</div>
</div>
<div class="col col-md-3 pr05 pl05">
<div class="card stats-title">
<div class="card-body text-center">
<h6 class="card-title">OUTCOME</h6>
<p class="card-text fw125" id="unpaidInvoices">${event.data.graph_values[8].toLocaleString()}$</p>
</div>
</div>
</div>
<div class="col col-md-3 pl05">
<div class="card stats-title">
<div class="card-body text-center">
<h6 class="card-title">EARNINGS</h6>
<p class="card-text fw125" id="awaitedIncome">${event.data.graph_values[9].toLocaleString()}$</p>
</div>
</div>
</div>
</div>
<table id="transactionsTable">
<tbody id="transactionsData">
</tbody>
</table>
`);
$('#transactionsData').html(row);
var table_id = document.getElementById('transactionsTable');
table.push(new simpleDatatables.DataTable(table_id, {
perPageSelect: false,
perPage: 5,
}));
break
case 'society_page':
society_page_function(event);
break
case 'settings_page':
settings_page_function(event);
break
case 'atm':
atm_numpad(event.data.pin);
$(".atm_card").fadeIn();
selectedWindow = "atm";
break
}
});
// Overview
$(document).on('click', "#overview_page", function() {
$.post('https://okokBanking/action', JSON.stringify({
action: "overview_page",
}));
});
// Transactions
$(document).on('click', "#transactions_page", function() {
$.post('https://okokBanking/action', JSON.stringify({
action: "transactions_page",
}));
});
$(document).on('click', "#view_all_transactions", function() {
$.post('https://okokBanking/action', JSON.stringify({
action: "transactions_page",
}));
});
$(document).on('click', "#view_all_transactions_society", function() {
$.post('https://okokBanking/action', JSON.stringify({
action: "society_transactions",
}));
});
// Society
$(document).on('click', "#society_page", function() {
$.post('https://okokBanking/action', JSON.stringify({
action: "society_page",
}));
});
// Society transactions
$(document).on('click', "#society_transactions", function() {
$.post('https://okokBanking/action', JSON.stringify({
action: "society_transactions",
}));
});
// Settings
$(document).on('click', "#settings_page", function() {
$.post('https://okokBanking/action', JSON.stringify({
action: "settings_page",
}));
});
// End Pages
$(document).on('click', ".depositMoneyModal", function() {
var modalId = $('#depositModal');
var depositModal = new bootstrap.Modal(modalId);
depositModal.show()
});
$(document).on('click', ".withdrawMoneyModal", function() {
var modalId = $('#withdrawModal');
var depositModal = new bootstrap.Modal(modalId);
depositModal.show()
});
$(document).on('click', ".transferMoneyModal", function() {
var modalId = $('#transferModal');
var depositModal = new bootstrap.Modal(modalId);
depositModal.show()
});
// aqui
$(document).on('click', "#buy_new_cc", function() {
$.post('https://okokBanking/action', JSON.stringify({
action: "buy_new_cc",
}));
});
$(document).on('click', ".logout", function() {
if(!isLoggingOut) {
isLoggingOut = true
logout_page()
}
});
// Close ESC Key
$(document).ready(function() {
document.onkeyup = function(data) {
if (data.which == 27) {
switch (selectedWindow) {
case 'bankmenu':
if(!isLoggingOut) {
isLoggingOut = true
logout_page()
}
break
case 'societies':
if(!isLoggingOut) {
isLoggingOut = true
logout_page()
}
break
case 'settings':
if(!isLoggingOut) {
isLoggingOut = true
logout_page()
}
break
case 'atm':
$(".atm_card").fadeOut();
$.post('https://okokBanking/action', JSON.stringify({
action: "close",
}));
selectedWindow = "none";
break
}
}
};
});
$(document).on('click', '#depositMoney', function() {
var deposit_value = $('#deposit_value').val();
deposit_value = Math.trunc( deposit_value );
$.post('https://okokBanking/action', JSON.stringify({
action: 'deposit',
value: deposit_value,
window: selectedWindow,
}));
$('#deposit_value').val('');
document.getElementById('depositMoney').disabled = true;
})
$(document).on('click', '#withdrawMoney', function() {
var withdraw_value = $('#withdraw_value').val();
withdraw_value = Math.trunc( withdraw_value );
$.post('https://okokBanking/action', JSON.stringify({
action: 'withdraw',
value: withdraw_value,
window: selectedWindow,
}));
$('#withdraw_value').val('');
document.getElementById('withdrawMoney').disabled = true;
})
$(document).on('click', "#transferMoney", function() {
var transfer_value = $('#transfer_value').val();
var iban_value = $('#transfer_iban').val();
$.post('https://okokBanking/action', JSON.stringify({
action: 'transfer',
value: transfer_value,
iban: iban_value,
window: selectedWindow,
}));
$('#transfer_value').val('');
$('#transfer_iban').val('');
document.getElementById('transferMoney').disabled = true;
});
// Change iban
$(document).on('click', "#change_iban", function() {
var new_iban = $('#new_iban').val();
$.post('https://okokBanking/action', JSON.stringify({
action: "change_iban",
iban: new_iban,
}));
$('#new_iban').val('');
document.getElementById('change_iban').disabled = true;
});
// Change pin
$(document).on('click', "#change_pin", function() {
var new_pin = $('#new_pin').val();
$.post('https://okokBanking/action', JSON.stringify({
action: "change_pin",
pin: new_pin,
}));
$('#new_pin').val('');
document.getElementById('change_pin').disabled = true;
});
$(document).on('click', ".close-atm", function() {
if(useSound) {
var popuprev_sound = new Audio('popupreverse.mp3');
popuprev_sound.volume = 0.2;
popuprev_sound.play();
}
$('.atm_card').fadeOut();
$.post('https://okokBanking/action', JSON.stringify({
action: "close",
}));
selectedWindow = "none";
})
function checkIfEmpty() {
// Deposit
if (document.getElementById("deposit_value").value === "") {
document.getElementById('depositMoney').disabled = true;
} else {
document.getElementById('depositMoney').disabled = false;
}
// Withdraw
if(document.getElementById("withdraw_value").value === "") {
document.getElementById('withdrawMoney').disabled = true;
} else {
document.getElementById('withdrawMoney').disabled = false;
}
// Transfer
if(document.getElementById("transfer_value").value === "" || document.getElementById("transfer_iban").value === "") {
document.getElementById('transferMoney').disabled = true;
} else {
document.getElementById('transferMoney').disabled = false;
}
}
function checkIfEmptySettings() {
// New pin
if(document.getElementById("new_pin").value === "") {
document.getElementById('change_pin').disabled = true;
} else {
document.getElementById('change_pin').disabled = false;
}
// New iban
if(document.getElementById("new_iban").value === "") {
document.getElementById('change_iban').disabled = true;
} else {
document.getElementById('change_iban').disabled = false;
}
}
function overview_page_function(event) {
if(event.data.isUpdate && selectedWindow == "bankmenu" || !event.data.isUpdate){
for(var i=0; i<table.length; i++) {
table[i].destroy();
table.splice(i, 1);
}
$('#page-title').html('Overview');
if (event.data.isInSociety){
society = `<span class="sidebar-title mt-5">Society</span>
<p class="sidebar-item mt-2" id="society_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item" id="society_transactions"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>`;
} else {
society = '';
}
$('#sidebar').html(`
<p class="sidebar-item mt-2 selected" id="overview_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item" id="transactions_page"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>
<p class="sidebar-item mt-2" id="settings_page"><i class="fas fa-cog"></i> <span class="ms-1">Settings</span></p>
${society}
`);
if(event.data.RequireCC) {
informations = `<span class="card-o-title">Informations<span class="badge bg-primary viewall-badge buy_new_card" data-bs-toggle="modal" data-bs-target="#buycc_modal"><i class="fa-solid fa-plus"></i> NEW</span></span>`;
} else {
informations = `<span class="card-o-title">Informations</span>`;
}
$('#page_info').addClass('row');
$('#page_info').html(`
<div class="col-md-7 chart-main">
<div class="card chart-card text-center">
<div class="card-header card-o-header">
<span class="card-o-title">Statistics</span>
</div>
<div class="card-body chart-card-body">
<div class="chart-div">
<canvas id="myChart"></canvas>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="card last-t-card">
<div class="card-header card-o-header text-center">
<span class="card-o-title">Last Transactions<span class="badge bg-primary viewall-badge" id="view_all_transactions"><i class="fas fa-eye"></i> VIEW ALL</span></span>
</div>
<div class="card-body" id="last-t-body">
<table id="lastTransactionsTable">
<tbody id="lastTransactionsData">
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12">
<div class="card ccard-card">
<div class="card-header card-o-header text-center">
${informations}
</div>
<div class="card-body ccard-body">
<div class="card creditcard-classic_card d-flex align-items-center">
<div class="card-body creditcard-classic_card-body">
<span class="d-flex justify-content-between"><span><img src="img/visa_white.svg" class="w20p"><span class="ccard-name">okokBank Classic</span></span><span><i class="fas fa-wifi"></i></span></span>
<div class="mt38p">
<div class="d-flex align-items-center">
<span class="ccard-status">Status</span>
</div>
<div class="d-flex justify-content-between align-items-center">
<span class="ccard-active">ACTIVE</span>
<div class="d-flex align-items-center ccard-valid">
<span class="ccard-thru">VALID THRU</span>
<span class="ccard-exp">08/25</span>
</div>
</div>
</div>
</div>
</div>
<hr>
<p class="card-text text-center ccard-fs" style="margin-bottom: 1.1rem;"><span class="fff">Balance:</span> <span id="playerBankMoney"></span> USD</p>
<p class="card-text text-center ccard-fs"><span class="fff">IBAN:</span> <span id="playerIBAN"></span></p>
</div>
</div>
<div class="card text-center h-100 actions-card">
<div class="card-header card-o-header">
<span class="card-o-title">Actions</span>
</div>
<div class="card-body actions-card_body">
<div class="d-flex justify-content-center">
<button type="button" id="depositMoneyModal" class="btn btn-blue flex-grow-1" data-bs-toggle="modal" data-bs-target="#depositModal"><i class="bi bi-upload"></i> Deposit</button>
</div>
<div class="d-flex justify-content-center mt4375">
<button type="button" id="withdrawMoneyModal" class="btn btn-blue flex-grow-1" data-bs-toggle="modal" data-bs-target="#withdrawModal"><i class="bi bi-download"></i> Withdraw</button>
</div>
<div class="d-flex justify-content-center mt4375">
<button type="button" id="transferMoneyModal" class="btn btn-blue flex-grow-1" data-bs-toggle="modal" data-bs-target="#transferModal"><i class="fas fa-exchange-alt"></i> Transfer</button>
</div>
</div>
</div>
</div>
</div>
`);
$("#playerName").html(event.data.playerName);
$("#playerBankMoney").html(event.data.playerBankMoney.toLocaleString());
$("#playerIBAN").html(event.data.playerIBAN);
$("#wallet_money").html(event.data.walletMoney.toLocaleString());
var row = '';
var num = event.data.db.length;
if (num > 4) {
num = 4
}
for(var i = 0; i < num; i++) {
var db = event.data.db[i];
// Received
if (db.type == 'transfer' && db.receiver_identifier == event.data.identifier) {
var name = db.sender_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="lastT-action"><i class="bi bi-download"></i></span></td>';
data = `<td class="align-middle lastT-name-div">
From <span class="lastT-name">${name}</span>
<div class="mtm3125">Received</div>
</td>`;
amount = `<td class="align-middle fw500 lastT-received"><span class="floatr">+ ${db.value.toLocaleString()} USD</span></td>`;
// Sent
} else if (db.type == 'transfer' && db.sender_identifier == event.data.identifier) {
var name = db.receiver_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="lastT-action"><i class="bi bi-upload"></i></span></td>';
data = `<td class="align-middle lastT-name-div">
To <span class="lastT-name">${name}</span>
<div class="mtm3125">Sent</div>
</td>`;
amount = `<td class="align-middle fw500"><span class="floatr">- ${db.value.toLocaleString()} USD</span></td>`;
// Deposited
} else if (db.type == 'deposit') {
var name = db.receiver_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="lastT-action"><i class="bi bi-download"></i></span></td>';
data = `<td class="align-middle lastT-name-div">
Into <span class="lastT-name">${name}</span>
<div class="mtm3125">Deposited</div>
</td>`;
amount = `<td class="align-middle fw500 lastT-received"><span class="floatr">+ ${db.value.toLocaleString()} USD</span></td>`;
// Withdrawn
} else if (db.type == 'withdraw') {
var name = db.sender_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="lastT-action"><i class="bi bi-upload"></i></span></td>';
data = `<td class="align-middle lastT-name-div">
From <span class="transactions-name">${name}</span>
<div class="mtm3125">Withdrawn</div>
</td>`;
amount = `<td class="align-middle fw500"><span class="floatr">- ${db.value.toLocaleString()} USD</span></td>`;
}
row += `
<tr>
${icon}
${data}
${amount}
</tr>
`;
}
$('#lastTransactionsData').html(row);
var table_id = document.getElementById('lastTransactionsTable');
table.push(new simpleDatatables.DataTable(table_id, {
searchable: false,
perPageSelect: false,
paging: false,
}));
const labels = [];
const months = ["Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"];
for (i = 6; i > -1; i--) {
var days = i;
var date = new Date();
var last = new Date(date.getTime() - (days * 24 * 60 * 60 * 1000));
var day =last.getDate();
var month=last.getMonth();
labels.push(day+" "+months[month])
}
var ctx = document.getElementById('myChart').getContext('2d');
var gradient = ctx.createLinearGradient(0, 0, 0, 300);
gradient.addColorStop(0, 'rgba(20, 75, 217, 0.5)');
gradient.addColorStop(1, 'rgba(25, 70, 189, 0)');
const day_earnings = event.data.graphDays;
var data_graph = {
labels: labels,
datasets: [{
label: 'Earnings',
backgroundColor: gradient,
borderColor: '#1f5eff',
data: [day_earnings[6], day_earnings[5], day_earnings[4], day_earnings[3], day_earnings[2], day_earnings[1], day_earnings[0]],
tension: 0.25,
fill: 'start',
pointBackgroundColor: '#1f5eff',
pointRadius: 4,
pointHoverRadius: 6,
}]
};
var config = {
type: 'line',
data: data_graph,
options: {
plugins: {
legend: {
display: false
}
},
animation: {
duration: 0
},
scales: {
y: { // y-axis configuration
grid: {
lineWidth: 1,
color: '#2e2f36',
drawBorder: false
},
ticks: {
color: '#d5d6da'
}
},
x: { // x-axis configuration
grid: {
display: false
},
ticks: {
color: '#d5d6da'
}
}
}
}
};
var myChart = new Chart (document.getElementById('myChart'), config);
selectedWindow = "bankmenu";
}
}
function society_page_function(event) {
if(event.data.isUpdate && selectedWindow == "societies" || !event.data.isUpdate){
for(var i=0; i<table.length; i++) {
table[i].destroy();
table.splice(i, 1);
}
$('#page-title').html('Overview');
if (event.data.isInSociety){
society = `<span class="sidebar-title mt-5">Society</span>
<p class="sidebar-item mt-2 selected" id="society_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item" id="society_transactions"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>`;
} else {
society = '';
}
$('#sidebar').html(`
<p class="sidebar-item mt-2" id="overview_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item" id="transactions_page"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>
<p class="sidebar-item mt-2" id="settings_page"><i class="fas fa-cog"></i> <span class="ms-1">Settings</span></p>
${society}
`);
$('#page_info').addClass('row');
$('#page_info').html(`
<div class="col-md-7 chart-main">
<div class="card chart-card text-center">
<div class="card-header card-o-header">
<span class="card-o-title">Statistics</span>
</div>
<div class="card-body chart-card-body">
<div class="chart-div">
<canvas id="myChart"></canvas>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="card last-t-card">
<div class="card-header card-o-header text-center">
<span class="card-o-title">Last Transactions<span class="badge bg-primary viewall-badge" id="view_all_transactions_society"><i class="fas fa-eye"></i> VIEW ALL</span></span>
</div>
<div class="card-body" id="last-t-body">
<table id="lastTransactionsTable">
<tbody id="lastTransactionsData">
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12">
<div class="card ccard-card">
<div class="card-header card-o-header text-center">
<span class="card-o-title">Informations</span>
</div>
<div class="card-body ccard-body">
<div class="card creditcard-classic_card d-flex align-items-center">
<div class="card-body creditcard-classic_card-body">
<span class="d-flex justify-content-between"><span><img src="img/visa_white.svg" class="w20p"><span class="ccard-name">okokBank Classic</span></span><span><i class="fas fa-wifi"></i></span></span>
<div class="mt38p">
<div class="d-flex align-items-center">
<span class="ccard-status">Status</span>
</div>
<div class="d-flex justify-content-between align-items-center">
<span class="ccard-active">ACTIVE</span>
<div class="d-flex align-items-center ccard-valid">
<span class="ccard-thru">VALID THRU</span>
<span class="ccard-exp">08/25</span>
</div>
</div>
</div>
</div>
</div>
<hr>
<p class="card-text text-center ccard-fs" style="margin-bottom: 1.1rem;""><span class="fff">Balance:</span> <span id="playerBankMoney"></span> USD</p>
<p class="card-text text-center ccard-fs"><span class="fff">IBAN:</span> <span id="playerIBAN"></span></p>
</div>
</div>
<div class="card text-center h-100 actions-card">
<div class="card-header card-o-header">
<span class="card-o-title">Actions</span>
</div>
<div class="card-body actions-card_body">
<div class="d-flex justify-content-center">
<button type="button" id="depositMoneyModal" class="btn btn-blue flex-grow-1" data-bs-toggle="modal" data-bs-target="#depositModal"><i class="bi bi-upload"></i> Deposit</button>
</div>
<div class="d-flex justify-content-center mt4375">
<button type="button" id="withdrawMoneyModal" class="btn btn-blue flex-grow-1" data-bs-toggle="modal" data-bs-target="#withdrawModal"><i class="bi bi-download"></i> Withdraw</button>
</div>
<div class="d-flex justify-content-center mt4375">
<button type="button" id="transferMoneyModal" class="btn btn-blue flex-grow-1" data-bs-toggle="modal" data-bs-target="#transferModal"><i class="fas fa-exchange-alt"></i> Transfer</button>
</div>
</div>
</div>
</div>
</div>
`);
$("#playerBankMoney").html(event.data.societyInfo.value.toLocaleString());
$("#wallet_money").html(event.data.walletMoney.toLocaleString());
$("#playerIBAN").html(event.data.societyInfo.iban);
var row = '';
var num = event.data.db.length;
if (num > 4) {
num = 4
}
for(var i = 0; i < num; i++) {
var db = event.data.db[i];
// Received
if (db.type == 'transfer' && db.receiver_identifier == event.data.identifier) {
var name = db.sender_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="lastT-action"><i class="bi bi-download"></i></span></td>';
data = `<td class="align-middle lastT-name-div">
From <span class="lastT-name">${name}</span>
<div class="mtm3125">Received</div>
</td>`;
amount = `<td class="align-middle fw500 lastT-received"><span class="floatr">+ ${db.value.toLocaleString()} USD</span></td>`;
// Sent
} else if (db.type == 'transfer' && db.sender_identifier == event.data.identifier) {
var name = db.receiver_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="lastT-action"><i class="bi bi-upload"></i></span></td>';
data = `<td class="align-middle lastT-name-div">
To <span class="lastT-name">${name}</span>
<div class="mtm3125">Sent</div>
</td>`;
amount = `<td class="align-middle fw500"><span class="floatr">- ${db.value.toLocaleString()} USD</span></td>`;
// Deposited
} else if (db.type == 'deposit') {
var name = db.receiver_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="lastT-action"><i class="bi bi-download"></i></span></td>';
data = `<td class="align-middle lastT-name-div">
Into <span class="lastT-name">${name}</span>
<div class="mtm3125">Deposited</div>
</td>`;
amount = `<td class="align-middle fw500 lastT-received"><span class="floatr">+ ${db.value.toLocaleString()} USD</span></td>`;
// Withdrawn
} else if (db.type == 'withdraw') {
var name = db.sender_name;
if (name.length > 15){
name = name.substring(0, 15)+"..."
}
icon = '<td class="align-middle"><span class="lastT-action"><i class="bi bi-upload"></i></span></td>';
data = `<td class="align-middle lastT-name-div">
From <span class="transactions-name">${name}</span>
<div class="mtm3125">Withdrawn</div>
</td>`;
amount = `<td class="align-middle fw500"><span class="floatr">- ${db.value.toLocaleString()} USD</span></td>`;
}
row += `
<tr>
${icon}
${data}
${amount}
</tr>
`;
}
$('#lastTransactionsData').html(row);
var table_id = document.getElementById('lastTransactionsTable');
table.push(new simpleDatatables.DataTable(table_id, {
searchable: false,
perPageSelect: false,
paging: false,
}));
const labels = [];
const months = ["Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"];
for (i = 6; i > -1; i--) {
var days = i;
var date = new Date();
var last = new Date(date.getTime() - (days * 24 * 60 * 60 * 1000));
var day =last.getDate();
var month=last.getMonth();
labels.push(day+" "+months[month])
}
var ctx = document.getElementById('myChart').getContext('2d');
var gradient = ctx.createLinearGradient(0, 0, 0, 300);
gradient.addColorStop(0, 'rgba(20, 75, 217, 0.5)');
gradient.addColorStop(1, 'rgba(25, 70, 189, 0)');
const day_earnings = event.data.graphDays;
var data_graph = {
labels: labels,
datasets: [{
label: 'Earnings',
backgroundColor: gradient,
borderColor: '#1f5eff',
data: [day_earnings[6], day_earnings[5], day_earnings[4], day_earnings[3], day_earnings[2], day_earnings[1], day_earnings[0]],
tension: 0.25,
fill: 'start',
pointBackgroundColor: '#1f5eff',
pointRadius: 4,
pointHoverRadius: 6,
}]
};
var config = {
type: 'line',
data: data_graph,
options: {
plugins: {
legend: {
display: false
}
},
animation: {
duration: 0
},
scales: {
y: { // y-axis configuration
grid: {
lineWidth: 1,
color: '#2e2f36',
drawBorder: false
},
ticks: {
color: '#d5d6da'
}
},
x: { // x-axis configuration
grid: {
display: false
},
ticks: {
color: '#d5d6da'
}
}
}
}
};
var myChart = new Chart (document.getElementById('myChart'), config);
selectedWindow = "societies";
}
}
function settings_page_function(event) {
for(var i=0; i<table.length; i++) {
table[i].destroy();
table.splice(i, 1);
}
$('#page-title').html('Settings');
if (event.data.isInSociety){
society = `<span class="sidebar-title mt-5">Society</span>
<p class="sidebar-item mt-2" id="society_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item" id="society_transactions"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>`;
} else {
society = '';
}
$('#sidebar').html(`
<p class="sidebar-item mt-2" id="overview_page"><i class="bi bi-grid-1x2-fill"></i> <span class="ms-1">Overview</span></p>
<p class="sidebar-item" id="transactions_page"><i class="fas fa-exchange-alt"></i> <span class="ms-1">Transactions</span></p>
<p class="sidebar-item mt-2 selected" id="settings_page"><i class="fas fa-cog"></i> <span class="ms-1">Settings</span></p>
${society}
`);
$('#page_info').addClass('row');
$('#page_info').html(`
<div class="col-md-12 d-flex flex-grow-1 flex-column h-100 settings-col">
<div class="card d-flex flex-column flex-grow-1 settings-card">
<div class="card-header card-o-header text-center">
<span class="card-o-title">
<span>Account IBAN</span>
</span>
</div>
<div class="card-body settings-card_body flex-grow-1">
<div>
<div class="row">
<div class="col col-md-6 d-flex justify-content-center">
<div class="card w-100 h-100 changeiban-card">
<div class="card-body text-center">
<span class="fs15 fff">Change IBAN</span>
<input type="text" maxlength="${event.data.ibanCharNum}" id="new_iban" class="form-control text-center" placeholder="New IBAN" onkeyup="checkIfEmptySettings()">
<button type="button" id="change_iban" class="btn btn-blue" disabled><i class="fas fa-paper-plane"></i> Submit</button>
</div>
</div>
</div>
<div class="col col-md-6 d-flex align-items-center">
<div class="card w-100 h-100 d-flex justify-content-center settings_info-card">
<div class="card-body text-center fs1125">
<span>The IBAN has a change cost of ${event.data.ibanCost}€</span>
<hr class="fff">
<span>The IBAN always have the prefix "${event.data.ibanPrefix}"</span>
<hr class="fff">
<span>The maximum number of characters is ${event.data.ibanCharNum}</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card d-flex flex-column flex-grow-1 settings2-card">
<div class="card-header card-o-header text-center">
<span class="card-o-title">
<span>PIN Code</span>
</span>
</div>
<div class="card-body flex-grow-1 settings-card_body">
<div>
<div class="row">
<div class="col col-md-6 d-flex justify-content-center">
<div class="card w-100 h-100 changepin-card">
<div class="card-body text-center">
<span class="fs15 fff">Change PIN</span>
<input type="password" maxlength="4" id="new_pin" class="form-control text-center" placeholder="New PIN" onkeyup="checkIfEmptySettings()">
<button type="button" id="change_pin" class="btn btn-blue" disabled><i class="fas fa-paper-plane"></i> Submit</button>
</div>
</div>
</div>
<div class="col col-md-6 d-flex align-items-center">
<div class="card w-100 h-100 d-flex justify-content-center settings_info-card">
<div class="card-body text-center fs1125">
<span>The PIN has a change cost of ${event.data.pinCost}€</span>
<hr class="fff">
<span>The maximum number of characters is ${event.data.pinCharNum}</span>
<hr class="fff">
<span>You can only use numbers</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
`);
selectedWindow = "settings";
}
function logout_page() {
$("#menu").fadeOut();
setTimeout(function () {
$('#menu').html(`
<div class="d-flex justify-content-center flex-column align-items-center">
<span class="load"></span>
<br>
<div class="ldata-txt">Logging out...</div>
</div>
`);
$("#menu").fadeIn();
setTimeout(function(){
$("#menu").fadeOut();
$(".main_card").fadeOut();
selectedWindow = "none";
setTimeout(function(){
isLoggingOut = false
for(var i=0; i<table.length; i++) {
table[i].destroy();
table.splice(i, 1);
}
}, 600);
$.post('https://okokBanking/action', JSON.stringify({
action: "close",
}));
}, 1000);
}, 400);
if(useSound) {
var popuprev_sound = new Audio('popupreverse.mp3');
popuprev_sound.volume = 0.2;
popuprev_sound.play();
}
}
var canSetClick = true;
function atm_numpad(pin) {
var input = "";
correct = pin;
var dots = document.querySelectorAll(".dot");
numbers = document.querySelectorAll(".number");
dots = Array.prototype.slice.call(dots);
numbers = Array.prototype.slice.call(numbers);
numbers.forEach(function (number, index) {
if (canSetClick){
number.addEventListener("click", numpad);
}
function numpad() {
if(useSound) {
var atm_sound = new Audio('atm.mp3');
atm_sound.volume = 0.2;
atm_sound.play();
}
if (index == 9 || index == 11) {
if (index == 9) {
dots.forEach(function (dot, index) {
dot.className = "dot clear";
});
} else if (index == 11) {
if (input == correct) {
if (useSound) {
var correct_sound = new Audio('correct.mp3');
correct_sound.volume = 0.2;
correct_sound.play();
}
dots.forEach(function (dot, index) {
dot.className = "dot active correct";
});
setTimeout(function () {
$(".atm_card").fadeOut();
$.post('https://okokBanking/action', JSON.stringify({
action: "close",
}));
selectedWindow = "none";
$.post('https://okokBanking/action', JSON.stringify({
action: "atm",
}));
}, 900);
} else {
dots.forEach(function (dot, index) {
dot.className = "dot active wrong";
});
if(useSound) {
var wrong_sound = new Audio('wrong.mp3');
wrong_sound.volume = 0.2;
wrong_sound.play();
}
}
}
setTimeout(function () {
dots.forEach(function (dot, index) {
dot.className = "dot";
});
input = "";
}, 900);
setTimeout(function () {
document.body.className = "";
}, 2000);
} else {
if (input.length < 4) {
if (index == 10) {
index = -1
}
number.className = "number grow";
input += index + 1;
dots[input.length - 1].className = "dot active";
setTimeout(function () {
number.className = "number";
}, 1000);
}
}
}
});
canSetClick = false
}