Skip to content

Commit 6595125

Browse files
committed
gogle sheet integrated.
1 parent b1b4439 commit 6595125

File tree

3 files changed

+244
-112
lines changed

3 files changed

+244
-112
lines changed

contact-form.html

Lines changed: 62 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,63 @@
1-
<!-- ================= SECURE CONTACT MODAL ================= -->
2-
<div class="contact-modal" id="contactModal" aria-hidden="true" role="dialog" aria-modal="true"
3-
aria-labelledby="contactModalTitle" aria-describedby="contactModalDesc">
4-
<div class="modal-overlay" id="closeModal"></div>
5-
6-
<div class="modal-content secure-modal">
7-
<button class="modal-close" id="modalCloseBtn" aria-label="Close">&times;</button>
8-
9-
<div class="secure-badge">Secure & Confidential Channel</div>
10-
11-
<h2 id="contactModalTitle">Request a Confidential Discussion</h2>
12-
13-
<p class="modal-note secure-note" id="contactModalDesc">
14-
This channel is intended for sensitive inquiries. Information shared is accessible only to authorized
15-
personnel. Please avoid sharing credentials or account numbers.
16-
</p>
17-
18-
<form class="contact-form" action="https://script.google.com/macros/s/AKfycbysdFBNaF5CCscnrRxfnmbu8B703SBtxo4bTqIKbdR_vMJ7vdehhSxUzMLlreMOkxdPBQ/exec" method="POST">
19-
20-
<!-- Hidden metadata -->
21-
<input type="hidden" name="source" value="Secure Website Contact">
22-
<input type="hidden" name="confidentiality" value="Privileged & Confidential">
23-
24-
<label>
25-
Full Name *
26-
<input type="text" name="name" required autocomplete="name" placeholder="John Doe">
27-
</label>
28-
29-
<label>
30-
Email Address *
31-
<input type="email" name="email" required autocomplete="email" placeholder="your.email@example.com">
32-
</label>
33-
34-
<label>
35-
Phone
36-
<input type="tel" name="phone" placeholder="+1 (555) 000-0000" autocomplete="tel">
37-
</label>
38-
39-
<label>
40-
Organization / Institution
41-
<input type="text" name="organization" placeholder="Institution name" autocomplete="organization">
42-
</label>
43-
44-
<label>
45-
Service Type *
46-
<select name="service_type" required>
47-
<option value="">Select a service</option>
48-
<option value="fraud_investigation">Fraud Investigation</option>
49-
<option value="financial_risk_advisory">Financial Risk Advisory</option>
50-
<option value="aml_compliance_review">AML & Compliance Review</option>
51-
<option value="due_diligence">Due Diligence</option>
52-
</select>
53-
</label>
54-
55-
<!-- Honeypot field (invisible to users) -->
56-
<label style="display:none;">
57-
Leave this field empty
58-
<input type="text" name="hp_email" autocomplete="off">
59-
</label>
60-
61-
62-
<label>
63-
Nature of Inquiry
64-
<textarea name="message" rows="4"
65-
placeholder="High-level description only. Do not include credentials or account numbers."></textarea>
66-
</label>
67-
68-
<div class="secure-footer">
69-
<span>End-to-end encrypted transmission</span>
70-
<span>Restricted access</span>
71-
</div>
72-
73-
<p id="formFeedback" class="small-note" style="display:none;"></p>
74-
<button type="submit" class="form-submit secure-submit">
75-
Submit Secure Request
76-
</button>
77-
78-
<p class="small-note">
79-
Engagements are subject to independence and conflict-of-interest checks.
1+
<!-- ✅ EMBEDDED SECURE CONTACT MODAL (NO EXTERNAL FETCH) -->
2+
<div class="contact-modal" id="contactModal" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="contactModalTitle" aria-describedby="contactModalDesc">
3+
<div class="modal-overlay" id="closeModal"></div>
4+
<div class="modal-content secure-modal">
5+
<button class="modal-close" id="modalCloseBtn" aria-label="Close">×</button>
6+
<div class="secure-badge">🔒 Secure & Confidential Channel</div>
7+
<h2 id="contactModalTitle">Request a Confidential Discussion</h2>
8+
<p class="modal-note secure-note" id="contactModalDesc">
9+
This channel is intended for sensitive inquiries. Information shared is accessible only to authorized personnel.
10+
Please avoid sharing credentials or account numbers.
8011
</p>
81-
</form>
82-
</div>
83-
</div>
12+
13+
<!-- ✅ PERFECT FORM - Google Sheets Native Submit -->
14+
<form class="contact-form"
15+
action="https://script.google.com/macros/s/AKfycbz18edTvummpMgScMZTt4nNi7s-zhrdQQTOUCHFixzP/dev"
16+
method="POST" >
17+
18+
<input type="hidden" name="source" value="Secure Website Contact">
19+
<input type="hidden" name="confidentiality" value="Privileged & Confidential">
20+
21+
<label>Full Name *
22+
<input type="text" name="name" required autocomplete="name" placeholder="John Doe">
23+
</label>
24+
<label>Email Address *
25+
<input type="email" name="email" required autocomplete="email" placeholder="your.email@example.com">
26+
</label>
27+
<label>Phone
28+
<input type="tel" name="phone" placeholder="+91 (XXX) XXX-XXXX" autocomplete="tel">
29+
</label>
30+
<label>Organization / Institution
31+
<input type="text" name="organization" placeholder="Institution name" autocomplete="organization">
32+
</label>
33+
<label>Service Type *
34+
<select name="service_type" required>
35+
<option value="">Select a service</option>
36+
<option value="fraud_investigation">Fraud Investigation</option>
37+
<option value="financial_risk_advisory">Financial Risk Advisory</option>
38+
<option value="aml_compliance_review">AML & Compliance Review</option>
39+
<option value="due_diligence">Due Diligence</option>
40+
</select>
41+
</label>
42+
43+
<!-- ✅ HONEYPOT SPAM PROTECTION -->
44+
<label style="display:none;">
45+
Leave this field empty
46+
<input type="text" name="hp_email" autocomplete="off">
47+
</label>
48+
49+
<label>Nature of Inquiry
50+
<textarea name="message" rows="4" placeholder="High-level description only. Do not include credentials or account numbers."></textarea>
51+
</label>
52+
53+
<div class="secure-footer">
54+
<span>🔒 End-to-end encrypted transmission</span>
55+
<span>👤 Restricted access</span>
56+
</div>
57+
58+
<p id="formFeedback" class="small-note" style="display:none;"></p>
59+
<button type="submit" class="form-submit secure-submit">Submit Secure Request</button>
60+
<p class="small-note">Engagements are subject to independence and conflict-of-interest checks.</p>
61+
</form>
62+
</div>
63+
</div>

index.html

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta charset="UTF-8">
66
<title>Prime Risk Advisory | Fraud & Financial Risk Advisory</title>
77

8-
<!-- Viewport (consolidated) -->
8+
<!-- Viewport -->
99
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
1010

1111
<!-- SEO -->
@@ -15,7 +15,7 @@
1515
content="Fraud Investigation, Financial Risk Advisory, AML Compliance, NBFC Risk, Banking Fraud Consultant India">
1616
<meta name="google-site-verification" content="oRCwetseA1Fz-b1lKmc405kE0rfr6e4rkbkaIcg_xDI">
1717

18-
<!-- Fonts (optimized preconnect) -->
18+
<!-- Fonts -->
1919
<link rel="preconnect" href="https://fonts.googleapis.com">
2020
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
2121
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
@@ -27,19 +27,21 @@
2727
<!-- Google Analytics -->
2828
<script async src="https://www.googletagmanager.com/gtag/js?id=G-2EQXN0KNF4"></script>
2929
<script>
30-
window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments) }
31-
gtag('js', new Date()); gtag('config', 'G-2EQXN0KNF4');
30+
window.dataLayer = window.dataLayer || [];
31+
function gtag() { dataLayer.push(arguments) }
32+
gtag('js', new Date());
33+
gtag('config', 'G-2EQXN0KNF4');
3234
</script>
3335

3436
<!-- Schema.org -->
3537
<script type="application/ld+json">
3638
{
37-
"@context":"https://schema.org",
38-
"@type":"Organization",
39-
"name":"Prime Risk Advisory",
40-
"url":"https://www.primeriskadvisory.com",
41-
"description":"Independent fraud investigation, financial risk, AML, and compliance advisory services.",
42-
"industry":"Financial Risk Advisory"
39+
"@context": "https://schema.org",
40+
"@type": "Organization",
41+
"name": "Prime Risk Advisory",
42+
"url": "https://www.primeriskadvisory.com",
43+
"description": "Independent fraud investigation, financial risk, AML, and compliance advisory services.",
44+
"industry": "Financial Risk Advisory"
4345
}
4446
</script>
4547
</head>
@@ -62,7 +64,6 @@
6264
<li><a href="#about">About</a></li>
6365
<li><a href="#contact">Contact Us</a></li>
6466
</ul>
65-
<!-- Mobile Hamburger -->
6667
<div class="hamburger" id="hamburger" aria-label="Toggle menu" aria-expanded="false">
6768
<span></span><span></span><span></span>
6869
</div>
@@ -74,8 +75,7 @@
7475
<div class="hero-content">
7576
<h3 class="hero-subtitle">• Fraud Investigation • Financial Risk • Compliance Advisory</h3>
7677
<h1 class="hero-heading">Trusted Partner in Fraud, Financial Risk & Compliance</h1>
77-
<p class="hero-note">Led by experts with extensive banking & NBFC experience, delivering actionable insights
78-
for institutions.</p>
78+
<p class="hero-note">Led by experts with extensive banking & NBFC experience, delivering actionable insights for institutions.</p>
7979
<a href="#" class="hero-cta" id="openContactModal">Request a Confidential Discussion</a>
8080
</div>
8181
</header>
@@ -84,10 +84,8 @@ <h1 class="hero-heading">Trusted Partner in Fraud, Financial Risk & Compliance</
8484
<!-- OVERVIEW -->
8585
<section class="section-light">
8686
<h2>Overview</h2>
87-
<p>Prime Risk Advisory is an independent consulting practice providing case-based and retainer support
88-
across fraud investigation, financial risk assessment, AML, and compliance reviews.</p>
89-
<p class="small-note"><strong>Ideal for institutions requiring independent review beyond internal
90-
controls.</strong></p>
87+
<p>Prime Risk Advisory is an independent consulting practice providing case-based and retainer support across fraud investigation, financial risk assessment, AML, and compliance reviews.</p>
88+
<p class="small-note"><strong>Ideal for institutions requiring independent review beyond internal controls.</strong></p>
9189
<h3>Core Focus Areas</h3>
9290
<ul>
9391
<li>Fraud Investigation & Analysis</li>
@@ -104,20 +102,17 @@ <h2>Our Services</h2>
104102
<div class="service-card">
105103
<div class="icon">🔍</div>
106104
<h3>Fraud Investigation</h3>
107-
<p>Structured investigations to establish facts, identify exposure, and support regulatory or
108-
management decisions.</p>
105+
<p>Structured investigations to establish facts, identify exposure, and support regulatory or management decisions.</p>
109106
</div>
110107
<div class="service-card">
111108
<div class="icon">📊</div>
112109
<h3>Financial Risk Advisory</h3>
113-
<p>Independent risk perspectives to strengthen credit assessment, portfolio oversight, and
114-
governance.</p>
110+
<p>Independent risk perspectives to strengthen credit assessment, portfolio oversight, and governance.</p>
115111
</div>
116112
<div class="service-card">
117113
<div class="icon"></div>
118114
<h3>AML & Compliance Review</h3>
119-
<p>Identification of control gaps with actionable recommendations aligned to regulatory
120-
expectations.</p>
115+
<p>Identification of control gaps with actionable recommendations aligned to regulatory expectations.</p>
121116
</div>
122117
<div class="service-card">
123118
<div class="icon">📝</div>
@@ -155,8 +150,7 @@ <h2>Why Prime Risk Advisory?</h2>
155150
<!-- ABOUT -->
156151
<section id="about" class="section-light">
157152
<h2>About Us</h2>
158-
<p>Founded by <strong>Amol Pawar</strong>, Prime Risk Advisory specializes in structured investigations,
159-
root-cause analysis, and practical risk mitigation recommendations.</p>
153+
<p>Founded by <strong>Amol Pawar</strong>, Prime Risk Advisory specializes in structured investigations, root-cause analysis, and practical risk mitigation recommendations.</p>
160154
<ul>
161155
<li>Independent investigation approach</li>
162156
<li>Structured, defensible reporting</li>
@@ -179,8 +173,7 @@ <h2>Contact Us</h2>
179173
<!-- DISCLAIMER -->
180174
<section class="section-light">
181175
<h2>Disclaimer</h2>
182-
<p>Prime Risk Advisory maintains strict confidentiality and does not publicly disclose client names due to
183-
the sensitive nature of assignments.</p>
176+
<p>Prime Risk Advisory maintains strict confidentiality and does not publicly disclose client names due to the sensitive nature of assignments.</p>
184177
</section>
185178
</main>
186179

@@ -191,8 +184,10 @@ <h2>Disclaimer</h2>
191184
<a href="privacy-policy.html">Privacy Policy</a> | <a href="terms.html">Terms & Conditions</a>
192185
</footer>
193186

194-
<!-- OPTIMIZED JAVASCRIPT (25% smaller) -->
195-
<script>document.addEventListener("DOMContentLoaded", () => { const e = document.querySelector(".navbar-wrapper"), t = document.querySelectorAll(".service-card"), n = document.getElementById("hamburger"), o = document.querySelector(".nav-links"), a = document.getElementById("openContactModal"); window.addEventListener("scroll", () => { e.classList.toggle("scrolled", window.scrollY > 40), t.forEach(e => { e.getBoundingClientRect().top < window.innerHeight - 50 && e.classList.add("visible") }) }), n.addEventListener("click", () => { const e = o.classList.contains("open"); n.setAttribute("aria-expanded", !e), o.classList.toggle("open"), document.body.classList.toggle("menu-open") }), document.addEventListener("click", e => { !e.target.closest(".navbar-wrapper") && (o.classList.remove("open"), document.body.classList.remove("menu-open")) }), document.querySelectorAll(".nav-links a").forEach(e => e.addEventListener("click", () => { o.classList.remove("open"), document.body.classList.remove("menu-open") })), a.addEventListener("click", async e => { e.preventDefault(); let l = document.getElementById("contactModal"); if (!l) { const e = await fetch("contact-form.html"), t = await e.text(); document.body.insertAdjacentHTML("beforeend", t), l = document.getElementById("contactModal") } l.classList.add("active"), document.body.style.overflow = "hidden", initContactModal(l) }) }); const initContactModal = e => { const t = e.querySelector("#closeModal"), n = e.querySelector("#modalCloseBtn"), o = e.querySelector(".contact-form"), a = e.querySelector("#formFeedback");[t, n].forEach(e => e.addEventListener("click", () => closeModalFunc(e.closest(".contact-modal")))), trapFocus(e), o.addEventListener("submit", async e => { e.preventDefault(), a.style.display = "none", a.textContent = ""; const t = o.hp_email.value; if (t) return a.style.color = "red", a.textContent = "⚠️ Submission blocked (spam detected).", void (a.style.display = "block"); const n = new FormData(o), l = o.querySelector("button[type='submit']"); l.disabled = !0; try { const e = await fetch(o.action, { method: o.method, body: n, headers: { "Accept": "application/json" } }); if (e.ok) a.style.color = "green", a.textContent = "✅ Thank you! Your request has been submitted securely.", a.style.display = "block", o.reset(), setTimeout(() => closeModalFunc(e.closest(".contact-modal")), 3e3); else { const t = await e.json(); throw new Error(t?.error || "Submission failed. Please try again.") } } catch (e) { a.style.color = "red", a.textContent = `⚠️ ${e.message}`, a.style.display = "block" } finally { l.disabled = !1 } }) }, closeModalFunc = e => { e.classList.remove("active"), document.body.style.overflow = "" }, trapFocus = e => { const t = e.querySelectorAll('a[href],button,textarea,input,select,[tabindex]:not([tabindex="-1"])'), n = t[0], o = t[t.length - 1]; e.addEventListener("keydown", t => { if ("Tab" === t.key) { if (t.shiftKey && document.activeElement === n) return t.preventDefault(), void o.focus(); document.activeElement === o && (t.preventDefault(), n.focus()) } "Escape" === t.key && closeModalFunc(e) }), n.focus() };</script>
187+
<!-- JAVASCRIPT -->
188+
<script src="js/script.js"></script>
196189
</body>
197190

198-
</html>
191+
</html>
192+
193+

0 commit comments

Comments
 (0)