Files
christit.com/connections.html
T

577 lines
25 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Client Support | Christ IT Services</title>
<meta name="description" content="Secure client-support connection tools for active Christ IT consulting engagements.">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M44 4V60C44 62.2 42.2 64 40 64H32C29.8 64 28 62.2 28 60V24H18C15.8 24 14 22.2 14 20V16C14 13.8 15.8 12 18 12H44Z' fill='%23004e92'/%3E%3Crect x='8' y='36' width='12' height='24' rx='2' fill='%23374151'/%3E%3Ccircle cx='14' cy='24' r='5' fill='%23f59e0b'/%3E%3C/svg%3E" type="image/svg+xml">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Oswald:wght@500;700&display=swap" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<style>
/* --- 1. GLOBAL VARIABLES --- */
:root {
/* Light Mode */
--bg-body: #ffffff;
--bg-offset: #f3f4f6;
--bg-highlight: #eef2ff;
--bg-card: #ffffff;
--bg-nav: rgba(255, 255, 255, 0.95);
--text-dark: #1f2937;
--text-body: #4b5563;
--text-light: #9ca3af;
--primary: #0056b3;
--primary-dark: #003d6b;
--accent: #e67e22;
--border: #e5e7eb;
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
--logo-text: #1f2937;
}
/* Dark Mode */
[data-theme="dark"] {
--bg-body: #0f172a;
--bg-offset: #1e293b;
--bg-highlight: #172554;
--bg-card: #1e293b;
--bg-nav: rgba(15, 23, 42, 0.95);
--text-dark: #f8fafc;
--text-body: #cbd5e1;
--text-light: #94a3b8;
--primary: #3b82f6;
--primary-dark: #60a5fa;
--border: #334155;
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.5);
--logo-text: #ffffff;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
background-color: var(--bg-body);
color: var(--text-body);
font-family: 'Inter', sans-serif;
line-height: 1.6;
min-height: 100vh;
display: flex; flex-direction: column;
transition: background-color 0.3s, color 0.3s;
}
h1, h2, h3, h4 {
font-family: 'Oswald', sans-serif;
text-transform: uppercase;
color: var(--text-dark);
line-height: 1.2;
}
a { text-decoration: none; color: inherit; transition: 0.2s; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; position: relative; }
/* --- BUTTONS --- */
.text-primary { color: var(--primary); }
.text-accent { color: var(--accent); }
.btn {
display: inline-flex; align-items: center; justify-content: center; gap: 10px;
padding: 12px 28px;
font-weight: 600; font-size: 1rem;
text-transform: uppercase; letter-spacing: 0.5px;
background-color: var(--primary); color: white;
border-radius: 4px; border: 2px solid transparent;
box-shadow: var(--shadow-sm); cursor: pointer;
width: 100%;
}
.btn:hover {
background-color: var(--primary-dark);
color: white !important; transform: translateY(-1px);
box-shadow: var(--shadow-md);
}
.btn-outline {
background-color: transparent; color: var(--text-dark);
border: 2px solid var(--border);
}
.btn-outline:hover {
background-color: var(--bg-offset);
border-color: var(--primary);
}
.btn-call {
background-color: #1f2937;
color: white !important;
border: 2px solid #1f2937;
}
.btn-call:hover {
background-color: #374151;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
/* --- NAVIGATION --- */
nav {
padding: 15px 0; border-bottom: 1px solid var(--border);
background: var(--bg-nav); backdrop-filter: blur(10px);
position: sticky; top: 0; z-index: 100;
}
.nav-inner { display: flex; justify-content: space-between; align-items: center; }
.theme-switch-wrapper {
display: flex; align-items: center; gap: 10px;
font-size: 0.85rem; font-weight: 600; color: var(--text-body);
}
.theme-switch {
position: relative; width: 50px; height: 26px;
background: var(--border); border-radius: 20px;
cursor: pointer; transition: 0.3s;
}
.theme-switch::after {
content: ""; position: absolute; top: 3px; left: 3px;
width: 20px; height: 20px; background: white;
border-radius: 50%; transition: 0.3s;
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
[data-theme="dark"] .theme-switch { background: var(--primary); }
[data-theme="dark"] .theme-switch::after { transform: translateX(24px); }
/* --- CONTENT --- */
.connect-hero { padding: 60px 0 40px; text-align: center; }
.connect-hero h1 { font-size: 3rem; margin-bottom: 15px; }
.connect-hero p {
max-width: 700px; margin: 0 auto; font-size: 1.1rem;
background: var(--bg-highlight); padding: 20px; border-radius: 8px;
border-left: 4px solid var(--accent); text-align: left;
}
.connect-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
padding-bottom: 60px;
}
.connect-card {
background: var(--bg-card); border-radius: 12px; padding: 30px;
border: 1px solid var(--border); box-shadow: var(--shadow-sm);
transition: 0.3s; display: flex; flex-direction: column;
}
.connect-card:hover { transform: translateY(-5px); border-color: var(--primary); box-shadow: var(--shadow-md); }
.card-header { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; border-bottom: 1px solid var(--border); padding-bottom: 15px; }
.card-header i { font-size: 2rem; color: var(--primary); }
.card-title h3 { font-size: 1.4rem; margin: 0; }
.card-title span { font-size: 0.85rem; color: var(--text-light); text-transform: uppercase; letter-spacing: 1px; }
.card-desc { font-size: 0.95rem; margin-bottom: 25px; flex-grow: 1; }
/* --- QR CODE --- */
.qr-wrapper {
text-align: center; margin-bottom: 20px;
padding: 10px; background: white; border-radius: 8px;
border: 1px solid var(--border); display: inline-block;
align-self: center;
}
.qr-wrapper img { width: 120px; height: 120px; display: block; }
.qr-label { font-size: 0.75rem; color: #666; margin-top: 5px; font-weight: 500; }
/* --- HELP & UTILS --- */
.help-toggle {
text-align: center; margin-top: 20px; font-size: 0.9rem; font-weight: 600;
color: var(--accent); cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 5px;
}
.help-toggle:hover { text-decoration: underline; }
.help-content {
display: none; background: var(--bg-offset); margin-top: 15px;
padding: 20px; border-radius: 8px; font-size: 0.9rem; border: 1px solid var(--border);
}
.help-content ol { padding-left: 20px; margin-bottom: 15px; }
.code-box {
background: #1e293b; color: #e2e8f0; padding: 15px;
border-radius: 6px; font-family: monospace; font-size: 0.8rem;
margin-bottom: 10px; word-break: break-all;
}
/* --- INFO BLOCK --- */
.info-block {
background: var(--bg-offset);
padding: 80px 0;
border-top: 1px solid var(--border);
}
.info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.info-card {
background: var(--bg-card); padding: 40px; border-radius: 8px;
box-shadow: var(--shadow-sm); border-left: 5px solid var(--primary);
}
/* --- FOOTER --- */
footer { padding: 60px 0 30px; background: #0f172a; color: #94a3b8; margin-top: auto; }
.footer-content { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 40px; }
.footer-logo { font-family: 'Oswald', sans-serif; font-size: 1.8rem; color: white; margin-bottom: 15px; display: block; }
.footer-bottom {
margin-top: 50px; padding-top: 20px; border-top: 1px solid #334155;
text-align: center; font-size: 0.9rem; color: #64748b;
}
@media (max-width: 900px) { .info-grid { grid-template-columns: 1fr; } }
</style>
</head>
<body>
<nav>
<div class="container nav-inner">
<a href="index.html" class="logo" style="display:flex; align-items:center;">
<svg height="40" viewBox="0 0 340 80" fill="none" xmlns="http://www.w3.org/2000/svg">
<text x="0" y="62" font-family="Montserrat, sans-serif" font-weight="900" font-size="48" fill="var(--logo-text)" letter-spacing="-2">CHRIST</text>
<g transform="translate(200, 0)">
<rect x="0" y="32" width="14" height="30" rx="4" fill="var(--logo-text)"/>
<circle cx="7" cy="18" r="7" fill="#e67e22"/>
<rect x="35" y="0" width="18" height="62" rx="4" fill="#0056b3"/>
<rect x="22" y="15" width="44" height="16" rx="4" fill="#0056b3"/>
</g>
</svg>
</a>
<div style="display: flex; align-items: center; gap: 20px;">
<a href="index.html" style="font-weight: 600; font-size: 0.9rem; color: var(--text-dark);">Back to Home</a>
<div class="theme-switch-wrapper">
<span>Dark Mode</span>
<div class="theme-switch" id="theme-toggle"></div>
</div>
</div>
</div>
</nav>
<div class="container connect-hero">
<h1>Client <span class="text-primary">Support</span></h1>
<p>
You have been invited to open a secure support session as part of an active Christ IT engagement.
<strong>Only proceed if you are on the phone with Christ IT.</strong>
This software can allow me to view your screen and control your mouse with your permission.
</p>
</div>
<div class="container connect-grid">
<div class="connect-card" style="border-top: 4px solid var(--accent);">
<div class="card-header">
<i class="fa-solid fa-headset"></i>
<div class="card-title">
<h3>Assistant</h3>
<span>Windows Support Tool</span>
</div>
</div>
<p class="card-desc">
Best for active consulting sessions. Does not install a permanent service.
</p>
<a href="#" id="win-assist" class="btn">Download Assistant</a>
<div class="help-toggle" onclick="toggleHelp('help-tray')">
<i class="fa-solid fa-circle-question"></i> "I Don't See It?"
</div>
<div id="help-tray" class="help-content">
<p>The Assistant runs in the <strong>System Tray</strong> (bottom right, near the clock).</p>
<ol>
<li>Click the <strong>Up Arrow (^)</strong> to expand your icons.</li>
<li>Look for a <strong>Gray Server Icon</strong> with a tiny <strong>Gold Lock</strong>.</li>
<li>Right-click that icon if you need to close the connection manually.</li>
</ol>
</div>
</div>
<div class="connect-card">
<div class="card-header">
<i class="fa-brands fa-windows"></i>
<div class="card-title">
<h3>Windows Agent</h3>
<span>Unattended Access</span>
</div>
</div>
<p class="card-desc">
Installs a background service for ongoing management. Best for servers.
</p>
<a href="#" id="win-64" class="btn btn-outline" style="margin-bottom:10px;">Download 64-bit</a>
<div style="display:flex; gap:10px;">
<a href="#" id="win-32" class="btn btn-outline" style="font-size: 0.8rem; padding: 8px;">32-bit</a>
<a href="#" id="win-arm" class="btn btn-outline" style="font-size: 0.8rem; padding: 8px;">ARM64</a>
</div>
<div class="help-toggle" onclick="toggleHelp('help-smartscreen')">
<i class="fa-solid fa-circle-question"></i> Blocked by SmartScreen?
</div>
<div id="help-smartscreen" class="help-content">
<p>Windows may try to protect you because this is a custom-built tool. Follow these steps to allow it:</p>
<ol>
<li>When the blue window appears, click the <strong>"More Info"</strong> text link.</li>
<li>A new button will appear at the bottom. Click <strong>"Run Anyway"</strong>.</li>
</ol>
</div>
</div>
<div class="connect-card">
<div class="card-header">
<i class="fa-brands fa-apple"></i>
<div class="card-title">
<h3>macOS</h3>
<span>Apple Support</span>
</div>
</div>
<p class="card-desc">
Select your Mac processor type below.
</p>
<a href="#" id="mac-apple" class="btn btn-outline" style="margin-bottom:10px;">Apple Silicon (M1/M2/M3)</a>
<a href="#" id="mac-intel" class="btn btn-outline" style="font-size: 0.85rem; padding: 8px;">Intel Mac (Older)</a>
<div class="help-toggle" onclick="toggleHelp('help-mac')">
<i class="fa-solid fa-circle-question"></i> "Unidentified Developer"?
</div>
<div id="help-mac" class="help-content">
<p>To bypass the security warning:</p>
<ol>
<li>Open your <strong>Downloads</strong> folder.</li>
<li><strong>Right-Click</strong> (or Control-Click) the installer file.</li>
<li>Select <strong>Open</strong> from the menu.</li>
<li>Click <strong>Open</strong> in the warning box.</li>
</ol>
</div>
</div>
<div class="connect-card">
<div class="card-header">
<i class="fa-brands fa-linux"></i>
<div class="card-title">
<h3>Linux / BSD</h3>
<span>Terminal Script</span>
</div>
</div>
<p class="card-desc">Paste this command into your terminal (requires sudo/root).</p>
<div class="code-box" id="linux-install">Loading...</div>
<button class="btn btn-outline" onclick="copyLinux()">Copy Command</button>
</div>
<div class="connect-card">
<div class="card-header">
<i class="fa-brands fa-android"></i>
<div class="card-title">
<h3>Android</h3>
<span>Mobile Support</span>
</div>
</div>
<div class="qr-wrapper">
<img id="android-qr" src="" alt="Scan for Android App">
<div class="qr-label">Scan for Play Store</div>
</div>
<p class="card-desc">
Search for "MeshCentral Agent" on the Play Store.
</p>
<a href="https://play.google.com/store/search?q=meshcentral+agent&c=apps" target="_blank" class="btn btn-outline">
<i class="fa-brands fa-google-play"></i> Open Play Store
</a>
</div>
</div>
<section class="info-block">
<div class="container info-grid">
<div class="info-card">
<h3 style="margin-bottom:15px; font-size: 1.8rem;">Before We Connect</h3>
<p style="margin-bottom:20px; font-size:1.1rem; line-height:1.6;">
Please ensure you have spoken with Jason directly before downloading these tools.
Unsolicited connection requests will be rejected for security.
</p>
<ul style="list-style: none; padding: 0;">
<li style="margin-bottom:10px;"><i class="fa-solid fa-check text-accent" style="margin-right:10px;"></i> <strong>Close Personal Files:</strong> Please close any sensitive banking or personal documents.</li>
<li style="margin-bottom:10px;"><i class="fa-solid fa-check text-accent" style="margin-right:10px;"></i> <strong>Stay Online:</strong> Do not close the laptop lid or disconnect from Wi-Fi.</li>
<li><i class="fa-solid fa-check text-accent" style="margin-right:10px;"></i> <strong>I Am Here:</strong> You will be able to see my mouse moving. You can take back control at any time by moving your mouse.</li>
</ul>
</div>
<div style="text-align: center;">
<h2 style="font-size: 2.5rem; margin-bottom: 10px;">Active Clients</h2>
<div style="font-size: 4rem; font-weight: 700; color: var(--primary); line-height: 1;"><i class="fa-solid fa-lock"></i></div>
<div style="font-size: 1.2rem; margin-bottom: 25px; color: var(--text-body);">Use By Request Only</div>
<p style="max-width: 400px; margin: 0 auto 30px; color: var(--text-body);">
This page is for scheduled support during consulting work, assessment follow-up, or approved client troubleshooting.
If you are not already working with Christ IT, please call first.
</p>
<button class="btn btn-call secure-contact-btn" data-type="phone" style="max-width: 300px; margin: 0 auto; background: var(--text-dark); color:white; border:none;">
<i class="fa-solid fa-phone"></i> Call Christ IT
</button>
</div>
</div>
</section>
<footer>
<div class="container">
<div class="footer-content">
<div style="max-width: 400px;">
<a href="index.html" class="footer-logo">CHRIST IT</a>
<p>Providing secure, independent technology solutions to Clarksville and the region from Nashville to Hopkinsville.</p>
<p style="margin-top: 15px; color: #9ca3af; font-style: italic;">"Whatever you do, work at it with all your heart..." — Col 3:23</p>
</div>
<div>
<h4 style="color: white; margin-bottom: 20px;">Contact</h4>
<p style="margin-bottom: 10px;"><i class="fa-solid fa-envelope text-accent"></i> <span id="secure-email">Click to Show Email</span></p>
<p style="margin-bottom: 10px;"><i class="fa-solid fa-phone text-accent"></i> <span id="secure-phone">Click to Show Phone</span></p>
<p style="margin-bottom: 10px;"><i class="fa-solid fa-map-pin text-accent"></i> Clarksville, TN</p>
<p><i class="fa-solid fa-clock text-accent"></i> Mon - Fri: 9:00 AM - 6:00 PM</p>
</div>
</div>
<div class="footer-bottom">
&copy; 2026 Christ IT Services. All Rights Reserved.
</div>
</div>
</footer>
<script>
// --- THEME ENGINE ---
const toggleBtn = document.getElementById('theme-toggle');
const root = document.documentElement;
const currentTheme = localStorage.getItem('theme') || (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
if (currentTheme === 'dark') { root.setAttribute('data-theme', 'dark'); }
toggleBtn.addEventListener('click', () => {
const isDark = root.getAttribute('data-theme') === 'dark';
if (isDark) {
root.setAttribute('data-theme', 'light');
localStorage.setItem('theme', 'light');
} else {
root.setAttribute('data-theme', 'dark');
localStorage.setItem('theme', 'dark');
}
});
const contactKey = 43;
const contactValues = {
email: [65, 74, 88, 68, 69, 107, 72, 67, 89, 66, 88, 95, 66, 95, 5, 72, 68, 70],
phone: [3, 25, 28, 27, 2, 11, 19, 19, 18, 6, 19, 25, 28, 25]
};
function revealContact(type) {
const encoded = contactValues[type];
if (!encoded) {
return "";
}
return encoded.map((code) => String.fromCharCode(code ^ contactKey)).join("");
}
function buildContactLink(type) {
const value = revealContact(type);
if (!value) {
return null;
}
const link = document.createElement("a");
link.href = type === "email" ? `mailto:${value}` : `tel:${value.replace(/\D/g, "")}`;
link.rel = "nofollow";
link.textContent = value;
link.style.textDecoration = "none";
link.style.color = "inherit";
return link;
}
function revealInlineContact(el, type) {
const link = buildContactLink(type);
if (link) {
el.replaceWith(link);
}
}
const secureEmail = document.getElementById("secure-email");
const securePhone = document.getElementById("secure-phone");
if (secureEmail) {
secureEmail.addEventListener("click", () => revealInlineContact(secureEmail, "email"));
}
if (securePhone) {
securePhone.addEventListener("click", () => revealInlineContact(securePhone, "phone"));
}
document.querySelectorAll(".secure-contact-btn").forEach((btn) => {
btn.addEventListener("click", () => {
const type = btn.dataset.type;
const value = revealContact(type);
if (type === "email") {
window.location.href = `mailto:${value}`;
}
if (type === "phone") {
window.location.href = `tel:${value.replace(/\D/g, "")}`;
}
});
});
// --- MESH CENTRAL LOGIC ---
const INVITE_CODE = "gU@QURzRvnwBSFv5DHTn1CdrmzdaBRSWWAutgm1ospy4EkhM65cnf3nrmuIqigw5Z51BJj75H0Sd1eD1jIz3janAXc2XMk05nGoR2rWp4ExQaBLHDicWtoledouNFm6BEehVvISE2UOFChHNbpC8elD3D3RU53lGvKYmiv5bHSjOPriJL4U4WfQarXrfmflwD$jJi90=";
const BASE_URL = "https://mesh.christit.com";
function buildUrl(id) {
return `${BASE_URL}/meshagents?id=${id}&c=${INVITE_CODE}`;
}
// Apply Links
document.getElementById('win-assist').href = buildUrl(10006) + "&ac=1";
document.getElementById('win-64').href = buildUrl(4);
document.getElementById('win-32').href = buildUrl(3);
document.getElementById('win-arm').href = buildUrl(43);
// MacOS Links (Separated)
// ID 29 = Apple Silicon (ARM64) - Standard for Mesh
// ID 5 = Intel (Universal/Older MPKG)
document.getElementById('mac-apple').href = buildUrl(29);
document.getElementById('mac-intel').href = buildUrl(5);
// Android Play Store Search (Static)
const playStoreUrl = "https://play.google.com/store/search?q=meshcentral+agent&c=apps";
// Generate QR Code for Play Store Search URL
const qrImg = document.getElementById('android-qr');
qrImg.src = `https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${encodeURIComponent(playStoreUrl)}`;
// Linux Logic
const linuxInst = `(wget "${BASE_URL}/meshagents?script=1&c=${INVITE_CODE}" --no-check-certificate -O ./meshinstall.sh || wget "${BASE_URL}/meshagents?script=1&c=${INVITE_CODE}" --no-proxy --no-check-certificate -O ./meshinstall.sh) && chmod 755 ./meshinstall.sh && sudo -E ./meshinstall.sh`;
document.getElementById('linux-install').innerText = linuxInst;
// UI Functions
function toggleHelp(id) {
const el = document.getElementById(id);
el.style.display = (el.style.display === 'block') ? 'none' : 'block';
}
function copyLinux() {
navigator.clipboard.writeText(linuxInst).then(() => {
alert("Command copied!");
});
}
</script>
</body>
</html>