// Simulated organization data - this would be replaced with actual game data let orgData = { name: "Black Rifle Company", reputation: 1250, funds: 75000, transactions: [ { id: 1, type: "deposit", amount: 5000, description: "Weekly income", date: "2025-04-12T10:30:00" }, { id: 2, type: "withdrawal", amount: -2000, description: "Vehicle maintenance", date: "2025-04-11T15:45:00" }, { id: 3, type: "deposit", amount: 3000, description: "Property rent", date: "2025-04-10T09:15:00" }, { id: 4, type: "withdrawal", amount: -1500, description: "Equipment purchase", date: "2025-04-09T14:20:00" } ], members: [ { id: 1, name: "John Doe", role: "owner", status: "online" }, { id: 2, name: "Jane Smith", role: "admin", status: "online" }, { id: 3, name: "Mike Johnson", role: "member", status: "offline" }, { id: 4, name: "Sarah Wilson", role: "member", status: "online" } ], vehicles: [ { id: 1, name: "Transport Truck", type: "Vehicle", value: 25000 }, { id: 2, name: "Patrol Car", type: "Vehicle", value: 15000 } ], equipment: [ { id: 1, name: "Combat Gear Set", type: "Equipment", value: 5000 }, { id: 3, name: "Radio Equipment", type: "Equipment", value: 3000 } ], properties: [ { id: 1, name: "Main Base", type: "Property", value: 100000 }, { id: 2, name: "Storage Facility", type: "Property", value: 50000 } ], supplies: [ { id: 1, name: "Medical Supplies", type: "Supply", value: 2000, quantity: 50 }, { id: 2, name: "Ammunition", type: "Supply", value: 5000, quantity: 1000 }, { id: 3, name: "Food Rations", type: "Supply", value: 1000, quantity: 100 }, { id: 4, name: "Repair Kits", type: "Supply", value: 3000, quantity: 25 } ], memos: [ { id: 1, title: "Weekly Mission Update", content: "New assignments available in the northern sector. All teams please check your mission boards.", author: "John Doe", date: "2025-04-12T08:30:00", priority: "high" }, { id: 2, title: "Equipment Maintenance", content: "Regular maintenance check required for all vehicles by end of week.", author: "Jane Smith", date: "2025-04-11T14:15:00", priority: "medium" } ] }; // Initialize the organization interface function initializeOrg() { updateOrgInfo(); updateMembers(); updateAssets(); updateTransactions(); updateMemos(); setupMemoControls(); } // Update organization info in the header function updateOrgInfo() { document.getElementById('orgName').textContent = orgData.name; document.getElementById('orgReputation').textContent = orgData.reputation.toLocaleString(); document.getElementById('orgFunds').textContent = `$${orgData.funds.toLocaleString()}`; } // Update members list function updateMembers() { const membersList = document.getElementById('membersList'); membersList.innerHTML = ''; orgData.members.forEach(member => { const li = document.createElement('li'); li.className = 'member-item'; li.innerHTML = `
${member.name} ${member.role}
`; membersList.appendChild(li); }); } // Update assets lists (vehicles, equipment, properties) function updateAssets() { // Update vehicles const vehiclesList = document.getElementById('vehiclesList'); vehiclesList.innerHTML = ''; orgData.vehicles.forEach(vehicle => { const li = document.createElement('li'); li.className = 'asset-item'; li.innerHTML = `
${vehicle.name} ${vehicle.type}
$${vehicle.value.toLocaleString()} `; vehiclesList.appendChild(li); }); // Update equipment const equipmentList = document.getElementById('equipmentList'); equipmentList.innerHTML = ''; orgData.equipment.forEach(item => { const li = document.createElement('li'); li.className = 'asset-item'; li.innerHTML = `
${item.name} ${item.type}
$${item.value.toLocaleString()} `; equipmentList.appendChild(li); }); // Update properties const propertiesList = document.getElementById('propertiesList'); propertiesList.innerHTML = ''; orgData.properties.forEach(property => { const li = document.createElement('li'); li.className = 'asset-item'; li.innerHTML = `
${property.name} ${property.type}
$${property.value.toLocaleString()} `; propertiesList.appendChild(li); }); // Update supplies const suppliesList = document.getElementById('suppliesList'); suppliesList.innerHTML = ''; orgData.supplies.forEach(supply => { const li = document.createElement('li'); li.className = 'asset-item'; li.innerHTML = `
${supply.name}
${supply.type} Qty: ${supply.quantity}
$${supply.value.toLocaleString()} `; suppliesList.appendChild(li); }); } // Update transactions list function updateTransactions() { const transactionsList = document.getElementById('transactionsList'); transactionsList.innerHTML = ''; orgData.transactions.forEach(transaction => { const li = document.createElement('li'); li.className = 'transaction-item'; const date = new Date(transaction.date); const formattedDate = date.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }); const amountClass = transaction.amount >= 0 ? 'amount-positive' : 'amount-negative'; const prefix = transaction.amount >= 0 ? '+' : ''; li.innerHTML = `
${transaction.description}
${formattedDate}
${prefix}$${Math.abs(transaction.amount).toLocaleString()} `; transactionsList.appendChild(li); }); } // Update memos list function updateMemos() { const memosList = document.getElementById('memosList'); memosList.innerHTML = ''; orgData.memos.forEach(memo => { const li = document.createElement('li'); li.className = 'memo-item'; const date = new Date(memo.date); const formattedDate = date.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }); li.innerHTML = `
${memo.title}
by ${memo.author} ${formattedDate}
${memo.content}
`; memosList.appendChild(li); }); } // Set up memo controls and dialog function setupMemoControls() { const addMemoBtn = document.getElementById('addMemoBtn'); addMemoBtn.addEventListener('click', () => { showMemoDialog(); }); } // Show memo creation dialog function showMemoDialog() { const dialog = document.createElement('div'); dialog.className = 'memo-dialog'; dialog.innerHTML = `


`; const overlay = document.createElement('div'); overlay.className = 'memo-dialog-overlay'; document.body.appendChild(overlay); document.body.appendChild(dialog); const form = dialog.querySelector('#memoForm'); const cancelBtn = dialog.querySelector('#cancelMemo'); form.addEventListener('submit', (e) => { e.preventDefault(); const newMemo = { id: orgData.memos.length + 1, title: document.getElementById('memoTitle').value, content: document.getElementById('memoContent').value, author: orgData.members.find(m => m.role === 'owner').name, date: new Date().toISOString(), priority: "normal" }; orgData.memos.unshift(newMemo); updateMemos(); closeMemoDialog(dialog, overlay); }); cancelBtn.addEventListener('click', () => { closeMemoDialog(dialog, overlay); }); overlay.addEventListener('click', () => { closeMemoDialog(dialog, overlay); }); } // Close memo dialog function closeMemoDialog(dialog, overlay) { document.body.removeChild(dialog); document.body.removeChild(overlay); } // Initialize when DOM is loaded document.addEventListener('DOMContentLoaded', initializeOrg);