Compare commits
No commits in common. "main" and "zelda.update-seo" have entirely different histories.
main
...
zelda.upda
877
about-us.html
877
about-us.html
|
|
@ -1,877 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-snap">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>
|
|
||||||
Prology – New & Used Enterprise IT, Server and Network Hardware Supplier
|
|
||||||
</title>
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="Prology is a Sydney-based enterprise specialising in high-quality new and refurbished Cisco networking equipment, alongside legacy hard-to-find parts."
|
|
||||||
/>
|
|
||||||
<meta name="robots" content="index,follow" />
|
|
||||||
<link rel="canonical" href="https://prology.net/about-us" />
|
|
||||||
<link rel="icon" type="image/png" href="https://prology.net/favicon.png" />
|
|
||||||
|
|
||||||
<!-- Open Graph -->
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:site_name" content="Prology" />
|
|
||||||
<meta property="og:url" content="https://prology.net/about-us" />
|
|
||||||
<meta
|
|
||||||
property="og:title"
|
|
||||||
content="Prology – New & Used Enterprise IT, Server and Network Hardware Supplier"
|
|
||||||
/>
|
|
||||||
<meta
|
|
||||||
property="og:description"
|
|
||||||
content="Sydney-based brokerage of high-quality new and refurbished Cisco networking equipment and legacy hard-to-find parts."
|
|
||||||
/>
|
|
||||||
<meta property="og:image" content="https://prology.net/favicon.png" />
|
|
||||||
<meta property="og:locale" content="en_AU" />
|
|
||||||
<meta property="og:locale:alternate" content="en_US" />
|
|
||||||
|
|
||||||
<!-- Twitter Card -->
|
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
|
||||||
<meta
|
|
||||||
name="twitter:title"
|
|
||||||
content="Prology – New & Used Enterprise IT, Server and Network Hardware Supplier"
|
|
||||||
/>
|
|
||||||
<meta
|
|
||||||
name="twitter:description"
|
|
||||||
content="Sydney-based brokerage of high-quality new and refurbished Cisco networking equipment and legacy hard-to-find parts."
|
|
||||||
/>
|
|
||||||
<meta name="twitter:image" content="https://prology.net/favicon.png" />
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="assets/css/styles.css" />
|
|
||||||
<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=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- JSON-LD: AboutPage -->
|
|
||||||
<script type="application/ld+json">
|
|
||||||
{
|
|
||||||
"@context": "https://schema.org",
|
|
||||||
"@type": "AboutPage",
|
|
||||||
"name": "About Prology",
|
|
||||||
"url": "https://prology.net/about-us",
|
|
||||||
"mainEntity": {
|
|
||||||
"@type": "Organization",
|
|
||||||
"name": "Prology",
|
|
||||||
"legalName": "Prology Pty Ltd",
|
|
||||||
"url": "https://prology.net/",
|
|
||||||
"logo": "https://prology.net/assets/Prology_logo.png",
|
|
||||||
"description": "Sydney-based enterprise specialising in high-quality new and refurbished Cisco networking equipment, alongside legacy hard-to-find parts."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Google tag (gtag.js) -->
|
|
||||||
<script
|
|
||||||
async
|
|
||||||
src="https://www.googletagmanager.com/gtag/js?id=G-YG35M09CR8"
|
|
||||||
></script>
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || []
|
|
||||||
function gtag() {
|
|
||||||
dataLayer.push(arguments)
|
|
||||||
}
|
|
||||||
gtag('js', new Date())
|
|
||||||
gtag('config', 'G-YG35M09CR8')
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* ============ ABOUT US PAGE ============ */
|
|
||||||
body {
|
|
||||||
background: #f6f7f9 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about-page {
|
|
||||||
margin-top: 80px;
|
|
||||||
padding: 32px 0 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------- Breadcrumb ---------- */
|
|
||||||
.about-breadcrumb {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 8px;
|
|
||||||
font-size: 0.95rem;
|
|
||||||
margin-bottom: 24px;
|
|
||||||
padding-left: 4px;
|
|
||||||
}
|
|
||||||
.about-breadcrumb a {
|
|
||||||
color: #6b7280;
|
|
||||||
text-decoration: none;
|
|
||||||
transition: color 0.2s;
|
|
||||||
}
|
|
||||||
.about-breadcrumb a:hover {
|
|
||||||
color: #1a73e8;
|
|
||||||
}
|
|
||||||
.about-breadcrumb .sep {
|
|
||||||
color: #cbd2da;
|
|
||||||
}
|
|
||||||
.about-breadcrumb .current {
|
|
||||||
color: #1a1f2e;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------- Hero (dark navy card) ---------- */
|
|
||||||
.about-hero-card {
|
|
||||||
background: #1a2240;
|
|
||||||
border-radius: 20px;
|
|
||||||
padding: 90px 60px;
|
|
||||||
text-align: center;
|
|
||||||
color: #ffffff;
|
|
||||||
margin-bottom: 32px;
|
|
||||||
}
|
|
||||||
.about-hero-card .eyebrow {
|
|
||||||
display: inline-block;
|
|
||||||
font-size: 0.85rem;
|
|
||||||
font-weight: 600;
|
|
||||||
letter-spacing: 0.18em;
|
|
||||||
color: #cbd5e1;
|
|
||||||
margin-bottom: 22px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
.about-hero-card h1 {
|
|
||||||
font-size: clamp(2.2rem, 4.5vw, 3.2rem);
|
|
||||||
font-weight: 800;
|
|
||||||
letter-spacing: -0.02em;
|
|
||||||
line-height: 1.15;
|
|
||||||
margin: 0 0 22px 0;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
.about-hero-card p {
|
|
||||||
font-size: 1.05rem;
|
|
||||||
line-height: 1.7;
|
|
||||||
color: #cbd5e1;
|
|
||||||
max-width: 720px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------- Mission Callout ---------- */
|
|
||||||
.mission-callout {
|
|
||||||
background: #eef0f4;
|
|
||||||
border-left: 4px solid #2563eb;
|
|
||||||
border-radius: 14px;
|
|
||||||
padding: 32px 36px;
|
|
||||||
margin-bottom: 56px;
|
|
||||||
}
|
|
||||||
.mission-callout .callout-label {
|
|
||||||
display: block;
|
|
||||||
font-size: 0.82rem;
|
|
||||||
font-weight: 700;
|
|
||||||
letter-spacing: 0.18em;
|
|
||||||
color: #1a1f2e;
|
|
||||||
text-transform: uppercase;
|
|
||||||
margin-bottom: 18px;
|
|
||||||
}
|
|
||||||
.mission-callout p {
|
|
||||||
font-size: 1.05rem;
|
|
||||||
line-height: 1.7;
|
|
||||||
color: #1f2937;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------- Who We Are ---------- */
|
|
||||||
.who-block {
|
|
||||||
padding: 0 4px;
|
|
||||||
margin-bottom: 48px;
|
|
||||||
}
|
|
||||||
.who-block h2 {
|
|
||||||
font-size: 1.65rem;
|
|
||||||
font-weight: 800;
|
|
||||||
color: #0f172a;
|
|
||||||
margin: 0 0 22px 0;
|
|
||||||
letter-spacing: -0.01em;
|
|
||||||
}
|
|
||||||
.who-block p {
|
|
||||||
font-size: 1rem;
|
|
||||||
line-height: 1.75;
|
|
||||||
color: #374151;
|
|
||||||
margin: 0 0 18px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------- 3 Value Cards ---------- */
|
|
||||||
.value-cards {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(3, 1fr);
|
|
||||||
gap: 24px;
|
|
||||||
margin-bottom: 48px;
|
|
||||||
}
|
|
||||||
.value-card {
|
|
||||||
background: #ffffff;
|
|
||||||
border: 1px solid #e5e7eb;
|
|
||||||
border-radius: 16px;
|
|
||||||
padding: 32px 28px;
|
|
||||||
transition:
|
|
||||||
transform 0.25s ease,
|
|
||||||
box-shadow 0.25s ease;
|
|
||||||
}
|
|
||||||
.value-card:hover {
|
|
||||||
transform: translateY(-3px);
|
|
||||||
box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
|
|
||||||
}
|
|
||||||
.value-icon {
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
border-radius: 10px;
|
|
||||||
background: #e8f0fe;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin-bottom: 24px;
|
|
||||||
color: #2563eb;
|
|
||||||
}
|
|
||||||
.value-card h3 {
|
|
||||||
font-size: 1.15rem;
|
|
||||||
font-weight: 700;
|
|
||||||
color: #0f172a;
|
|
||||||
margin: 0 0 14px 0;
|
|
||||||
}
|
|
||||||
.value-card p {
|
|
||||||
font-size: 0.95rem;
|
|
||||||
line-height: 1.65;
|
|
||||||
color: #4b5563;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------- Why Choose ---------- */
|
|
||||||
.why-block {
|
|
||||||
background: #ffffff;
|
|
||||||
border: 1px solid #e5e7eb;
|
|
||||||
border-radius: 16px;
|
|
||||||
padding: 40px 44px;
|
|
||||||
margin-bottom: 40px;
|
|
||||||
}
|
|
||||||
.why-block h2 {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
font-weight: 800;
|
|
||||||
color: #0f172a;
|
|
||||||
margin: 0 0 32px 0;
|
|
||||||
letter-spacing: -0.01em;
|
|
||||||
}
|
|
||||||
.why-bullets {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
gap: 24px 56px;
|
|
||||||
list-style: none;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.why-bullets li {
|
|
||||||
display: flex;
|
|
||||||
align-items: flex-start;
|
|
||||||
gap: 14px;
|
|
||||||
font-size: 1rem;
|
|
||||||
color: #1f2937;
|
|
||||||
line-height: 1.5;
|
|
||||||
}
|
|
||||||
.why-bullets .check {
|
|
||||||
flex-shrink: 0;
|
|
||||||
width: 22px;
|
|
||||||
height: 22px;
|
|
||||||
margin-top: 2px;
|
|
||||||
color: #16a34a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------- Ready CTA (blue) ---------- */
|
|
||||||
.ready-cta {
|
|
||||||
background: #2563eb;
|
|
||||||
border-radius: 18px;
|
|
||||||
padding: 56px 40px;
|
|
||||||
text-align: center;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
.ready-cta h2 {
|
|
||||||
font-size: clamp(1.6rem, 3vw, 2rem);
|
|
||||||
font-weight: 800;
|
|
||||||
color: #ffffff;
|
|
||||||
margin: 0 0 16px 0;
|
|
||||||
letter-spacing: -0.01em;
|
|
||||||
}
|
|
||||||
.ready-cta p {
|
|
||||||
font-size: 1rem;
|
|
||||||
line-height: 1.6;
|
|
||||||
color: rgba(255, 255, 255, 0.92);
|
|
||||||
max-width: 640px;
|
|
||||||
margin: 0 auto 32px auto;
|
|
||||||
}
|
|
||||||
.ready-cta-actions {
|
|
||||||
display: flex;
|
|
||||||
gap: 14px;
|
|
||||||
justify-content: center;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
.ready-cta-actions .btn-solid,
|
|
||||||
.ready-cta-actions .btn-ghost {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 12px 28px;
|
|
||||||
border-radius: 8px;
|
|
||||||
font-size: 0.98rem;
|
|
||||||
font-weight: 600;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
transition:
|
|
||||||
transform 0.2s ease,
|
|
||||||
background 0.2s ease;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
font-family: inherit;
|
|
||||||
}
|
|
||||||
.ready-cta-actions .btn-solid {
|
|
||||||
background: #ffffff;
|
|
||||||
color: #2563eb;
|
|
||||||
}
|
|
||||||
.ready-cta-actions .btn-solid:hover {
|
|
||||||
background: #f1f5ff;
|
|
||||||
transform: translateY(-1px);
|
|
||||||
}
|
|
||||||
.ready-cta-actions .btn-ghost {
|
|
||||||
background: transparent;
|
|
||||||
color: #ffffff;
|
|
||||||
border-color: rgba(255, 255, 255, 0.7);
|
|
||||||
}
|
|
||||||
.ready-cta-actions .btn-ghost:hover {
|
|
||||||
background: rgba(255, 255, 255, 0.12);
|
|
||||||
transform: translateY(-1px);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------- Responsive ---------- */
|
|
||||||
@media (max-width: 1024px) {
|
|
||||||
.value-cards {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
.why-bullets {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
gap: 18px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
|
||||||
.about-hero-card {
|
|
||||||
padding: 60px 28px;
|
|
||||||
}
|
|
||||||
.mission-callout,
|
|
||||||
.why-block {
|
|
||||||
padding: 28px 24px;
|
|
||||||
}
|
|
||||||
.ready-cta {
|
|
||||||
padding: 44px 24px;
|
|
||||||
}
|
|
||||||
.ready-cta-actions {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.ready-cta-actions .btn-solid,
|
|
||||||
.ready-cta-actions .btn-ghost {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<!-- ============ NAVIGATION ============ -->
|
|
||||||
<nav class="navbar">
|
|
||||||
<div class="nav-content">
|
|
||||||
<a href="index.html" class="nav-brand">
|
|
||||||
<img src="assets/Prology_logo.png" alt="Prology.net" />
|
|
||||||
</a>
|
|
||||||
<ul class="nav-links">
|
|
||||||
<li><a href="index.html#home">Home</a></li>
|
|
||||||
<li><a href="index.html#services">Categories</a></li>
|
|
||||||
<li><a href="index.html#quality">Why Choose Us</a></li>
|
|
||||||
<li><a href="index.html#who-we-serve">Who We Serve</a></li>
|
|
||||||
<li><a href="index.html#institutional">Gov & Corp</a></li>
|
|
||||||
<li><a href="index.html#contact">Contact</a></li>
|
|
||||||
<li><a href="about-us.html" class="active">About Us</a></li>
|
|
||||||
</ul>
|
|
||||||
<div class="nav-cta">
|
|
||||||
<button class="btn-view-products" onclick="openStoreModal()">
|
|
||||||
<svg
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2.5"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z" />
|
|
||||||
<line x1="3" y1="6" x2="21" y2="6" />
|
|
||||||
<path d="M16 10a4 4 0 0 1-8 0" />
|
|
||||||
</svg>
|
|
||||||
View Products
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<button
|
|
||||||
class="hamburger-btn"
|
|
||||||
aria-label="Toggle navigation menu"
|
|
||||||
aria-expanded="false"
|
|
||||||
>
|
|
||||||
<span class="bar"></span>
|
|
||||||
<span class="bar"></span>
|
|
||||||
<span class="bar"></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<div class="nav-backdrop" id="nav-backdrop"></div>
|
|
||||||
|
|
||||||
<!-- ============ MAIN CONTENT ============ -->
|
|
||||||
<div class="about-page">
|
|
||||||
<div class="container">
|
|
||||||
<!-- Breadcrumb -->
|
|
||||||
<nav class="about-breadcrumb" aria-label="Breadcrumb">
|
|
||||||
<a href="index.html">Home</a>
|
|
||||||
<span class="sep">/</span>
|
|
||||||
<span class="current">About Us</span>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<!-- Hero Card -->
|
|
||||||
<section class="about-hero-card">
|
|
||||||
<h1>Welcome to Prology</h1>
|
|
||||||
<p>
|
|
||||||
A Sydney-based company specialising in high-quality new and
|
|
||||||
refurbished Cisco networking equipment, as well as legacy
|
|
||||||
hard-to-find parts.
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Mission Callout -->
|
|
||||||
<section class="mission-callout">
|
|
||||||
<span class="callout-label">Our Mission</span>
|
|
||||||
<p>
|
|
||||||
To reduce the involvement of middlemen in the supply chain — cutting
|
|
||||||
costs for end-users while ensuring they receive top-notch products.
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Who We Are -->
|
|
||||||
<section class="who-block">
|
|
||||||
<h2>Who We Are</h2>
|
|
||||||
<p>
|
|
||||||
At Prology, we understand that businesses of all sizes require
|
|
||||||
reliable and efficient networking equipment to operate smoothly.
|
|
||||||
That's why we offer a wide range of products catering to the needs
|
|
||||||
of various industries — from small businesses to large enterprises.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Our inventory includes routers, switches, firewalls, and other
|
|
||||||
networking equipment from leading brands like Cisco. All refurbished
|
|
||||||
equipment goes through a meticulous refurbishment and certification
|
|
||||||
process, meeting the same standards as new equipment at a fraction
|
|
||||||
of the cost.
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Value Cards -->
|
|
||||||
<section class="value-cards">
|
|
||||||
<div class="value-card">
|
|
||||||
<div class="value-icon">
|
|
||||||
<svg
|
|
||||||
width="20"
|
|
||||||
height="20"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<polygon
|
|
||||||
points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Quality Assured</h3>
|
|
||||||
<p>
|
|
||||||
Meticulous refurbishment and certification — every item meets the
|
|
||||||
same standards as new equipment.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-card">
|
|
||||||
<div class="value-icon">
|
|
||||||
<svg
|
|
||||||
width="20"
|
|
||||||
height="20"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" />
|
|
||||||
<circle cx="9" cy="7" r="4" />
|
|
||||||
<path d="M23 21v-2a4 4 0 0 0-3-3.87" />
|
|
||||||
<path d="M16 3.13a4 4 0 0 1 0 7.75" />
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Expert Support</h3>
|
|
||||||
<p>
|
|
||||||
Personalised advice from our team of networking specialists —
|
|
||||||
ready to help you choose the right equipment.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-card">
|
|
||||||
<div class="value-icon">
|
|
||||||
<svg
|
|
||||||
width="20"
|
|
||||||
height="20"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<rect x="1" y="3" width="15" height="13" />
|
|
||||||
<polygon points="16 8 20 8 23 11 23 16 16 16 16 8" />
|
|
||||||
<circle cx="5.5" cy="18.5" r="2.5" />
|
|
||||||
<circle cx="18.5" cy="18.5" r="2.5" />
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Worldwide Shipping</h3>
|
|
||||||
<p>
|
|
||||||
Fast delivery via UPS, DHL, FedEx and other trusted couriers —
|
|
||||||
wherever you are located.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Why Choose -->
|
|
||||||
<section class="why-block">
|
|
||||||
<h2>Why Choose Prology?</h2>
|
|
||||||
<ul class="why-bullets">
|
|
||||||
<li>
|
|
||||||
<svg
|
|
||||||
class="check"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2.5"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<polyline points="20 6 9 17 4 12" />
|
|
||||||
</svg>
|
|
||||||
<span>High-quality new & refurbished Cisco equipment</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<svg
|
|
||||||
class="check"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2.5"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<polyline points="20 6 9 17 4 12" />
|
|
||||||
</svg>
|
|
||||||
<span>Legacy & hard-to-find parts specialist</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<svg
|
|
||||||
class="check"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2.5"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<polyline points="20 6 9 17 4 12" />
|
|
||||||
</svg>
|
|
||||||
<span
|
|
||||||
>Fraction of the cost — without sacrificing performance</span
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<svg
|
|
||||||
class="check"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2.5"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<polyline points="20 6 9 17 4 12" />
|
|
||||||
</svg>
|
|
||||||
<span>Rigorous testing & certification on all stock</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<svg
|
|
||||||
class="check"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2.5"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<polyline points="20 6 9 17 4 12" />
|
|
||||||
</svg>
|
|
||||||
<span>No middlemen — direct savings passed to customers</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<svg
|
|
||||||
class="check"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2.5"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<polyline points="20 6 9 17 4 12" />
|
|
||||||
</svg>
|
|
||||||
<span>Serving small businesses to large enterprises</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Ready CTA -->
|
|
||||||
<section class="ready-cta">
|
|
||||||
<h2>Ready to upgrade your network?</h2>
|
|
||||||
<p>
|
|
||||||
Browse our full range of Cisco networking equipment or get in touch
|
|
||||||
with our team.
|
|
||||||
</p>
|
|
||||||
<div class="ready-cta-actions">
|
|
||||||
<button type="button" class="btn-solid" onclick="openStoreModal()">
|
|
||||||
Shop Now
|
|
||||||
</button>
|
|
||||||
<a class="btn-ghost" href="index.html#contact">Contact Us</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="assets/js/config.js" defer></script>
|
|
||||||
<script src="assets/js/modals.js" defer></script>
|
|
||||||
<script>
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
|
||||||
const hamburgerBtn = document.querySelector(".hamburger-btn");
|
|
||||||
const navMenu = document.querySelector(".nav-links");
|
|
||||||
const navBackdrop = document.getElementById("nav-backdrop");
|
|
||||||
if (!hamburgerBtn || !navMenu) return;
|
|
||||||
|
|
||||||
function closeNavMenu() {
|
|
||||||
navMenu.classList.remove("open");
|
|
||||||
hamburgerBtn.classList.remove("open");
|
|
||||||
hamburgerBtn.setAttribute("aria-expanded", "false");
|
|
||||||
if (navBackdrop) navBackdrop.classList.remove("open");
|
|
||||||
}
|
|
||||||
|
|
||||||
hamburgerBtn.addEventListener("click", () => {
|
|
||||||
const isOpen = navMenu.classList.toggle("open");
|
|
||||||
hamburgerBtn.classList.toggle("open", isOpen);
|
|
||||||
hamburgerBtn.setAttribute("aria-expanded", String(isOpen));
|
|
||||||
if (navBackdrop) navBackdrop.classList.toggle("open", isOpen);
|
|
||||||
});
|
|
||||||
navMenu.querySelectorAll("a").forEach((a) => {
|
|
||||||
a.addEventListener("click", closeNavMenu);
|
|
||||||
});
|
|
||||||
if (navBackdrop) navBackdrop.addEventListener("click", closeNavMenu);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- ============ PROLOGY MODAL WEB COMPONENTS ============ -->
|
|
||||||
<prology-sell-modal id="wc-sell-modal"></prology-sell-modal>
|
|
||||||
<prology-source-modal id="wc-source-modal"></prology-source-modal>
|
|
||||||
<prology-quote-modal id="wc-quote-modal"></prology-quote-modal>
|
|
||||||
<prology-enquire-modal id="wc-enquire-modal"></prology-enquire-modal>
|
|
||||||
|
|
||||||
<!-- ============ STORE PICKER MODAL ============ -->
|
|
||||||
<div
|
|
||||||
class="store-modal-overlay"
|
|
||||||
id="store-modal-overlay"
|
|
||||||
role="dialog"
|
|
||||||
aria-modal="true"
|
|
||||||
aria-labelledby="store-modal-title"
|
|
||||||
>
|
|
||||||
<div class="store-modal-box">
|
|
||||||
<button
|
|
||||||
class="store-modal-close"
|
|
||||||
onclick="closeStoreModal()"
|
|
||||||
aria-label="Close"
|
|
||||||
>
|
|
||||||
✕
|
|
||||||
</button>
|
|
||||||
<p class="store-modal-title" id="store-modal-title">
|
|
||||||
Choose Your Store
|
|
||||||
</p>
|
|
||||||
<p class="store-modal-subtitle">
|
|
||||||
Select a region to browse our products
|
|
||||||
</p>
|
|
||||||
<div class="store-options">
|
|
||||||
<a data-store="au" class="store-option store-option--active">
|
|
||||||
<span class="store-flag">
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 60 30"
|
|
||||||
width="52"
|
|
||||||
height="28"
|
|
||||||
>
|
|
||||||
<rect width="60" height="30" fill="#00205B" />
|
|
||||||
<line
|
|
||||||
x1="0"
|
|
||||||
y1="0"
|
|
||||||
x2="30"
|
|
||||||
y2="15"
|
|
||||||
stroke="#fff"
|
|
||||||
stroke-width="5"
|
|
||||||
/>
|
|
||||||
<line
|
|
||||||
x1="30"
|
|
||||||
y1="0"
|
|
||||||
x2="0"
|
|
||||||
y2="15"
|
|
||||||
stroke="#fff"
|
|
||||||
stroke-width="5"
|
|
||||||
/>
|
|
||||||
<line
|
|
||||||
x1="0"
|
|
||||||
y1="0"
|
|
||||||
x2="30"
|
|
||||||
y2="15"
|
|
||||||
stroke="#CC2529"
|
|
||||||
stroke-width="3"
|
|
||||||
/>
|
|
||||||
<line
|
|
||||||
x1="30"
|
|
||||||
y1="0"
|
|
||||||
x2="0"
|
|
||||||
y2="15"
|
|
||||||
stroke="#CC2529"
|
|
||||||
stroke-width="3"
|
|
||||||
/>
|
|
||||||
<rect x="12" y="0" width="6" height="15" fill="#fff" />
|
|
||||||
<rect x="0" y="6" width="30" height="6" fill="#fff" />
|
|
||||||
<rect x="13.5" y="0" width="3" height="15" fill="#CC2529" />
|
|
||||||
<rect x="0" y="7.5" width="30" height="3" fill="#CC2529" />
|
|
||||||
<polygon
|
|
||||||
points="7.5,17 8.3,19.5 11,19.5 8.8,21.2 9.6,23.7 7.5,22 5.4,23.7 6.2,21.2 4,19.5 6.7,19.5"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="44,3 44.8,5.5 47.5,5.5 45.3,7.2 46.1,9.7 44,8 41.9,9.7 42.7,7.2 40.5,5.5 43.2,5.5"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="52,8 52.6,10 54.7,10 53,11.3 53.6,13.3 52,12 50.4,13.3 51,11.3 49.3,10 51.4,10"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="44,15 44.6,17 46.7,17 45,18.3 45.6,20.3 44,19 42.4,20.3 43,18.3 41.3,17 43.4,17"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="37,9 37.6,11 39.7,11 38,12.3 38.6,14.3 37,13 35.4,14.3 36,12.3 34.3,11 36.4,11"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="50,18 50.4,19.2 51.6,19.2 50.6,20 51,21.2 50,20.4 49,21.2 49.4,20 48.4,19.2 49.6,19.2"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</span>
|
|
||||||
<div class="store-info">
|
|
||||||
<div class="store-info-name">
|
|
||||||
Australia Store
|
|
||||||
<span class="store-badge-active">Live</span>
|
|
||||||
</div>
|
|
||||||
<div class="store-info-desc">
|
|
||||||
Enterprise networking equipment · Ships Australia-wide
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="store-arrow">→</span>
|
|
||||||
</a>
|
|
||||||
<a data-store="us" class="store-option store-option--active">
|
|
||||||
<span class="store-flag">
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 60 30"
|
|
||||||
width="52"
|
|
||||||
height="28"
|
|
||||||
>
|
|
||||||
<rect width="60" height="30" fill="#B22234" />
|
|
||||||
<rect y="2.31" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="6.92" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="11.54" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="16.15" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="20.77" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="25.38" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect width="24" height="16.15" fill="#3C3B6E" />
|
|
||||||
<g fill="#fff">
|
|
||||||
<circle cx="2.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="6.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="10.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="14.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="18.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="22.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="4.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="8.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="12.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="16.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="20.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="2.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="6.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="10.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="14.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="18.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="22.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="4.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="8.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="12.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="16.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="20.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="2.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="6.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="10.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="14.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="18.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="22.5" cy="13.6" r="1.1" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
</span>
|
|
||||||
<div class="store-info">
|
|
||||||
<div class="store-info-name">
|
|
||||||
U.S.A Store
|
|
||||||
<span class="store-badge-active">Live</span>
|
|
||||||
</div>
|
|
||||||
<div class="store-info-desc">
|
|
||||||
Enterprise networking equipment · North American distribution
|
|
||||||
hub
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="store-arrow">→</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer class="page-footer" role="contentinfo"></footer>
|
|
||||||
<script src="assets/js/footer.js" defer></script>
|
|
||||||
<script src="assets/js/chat.js" defer></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -2364,7 +2364,7 @@ body::before {
|
||||||
|
|
||||||
/* ============ CENTRAL INSTITUTIONAL LAYOUT ============ */
|
/* ============ CENTRAL INSTITUTIONAL LAYOUT ============ */
|
||||||
.official-seal-large {
|
.official-seal-large {
|
||||||
width: 260px; /* Slightly larger as requested */
|
width: 260px; /* To hơn một chút theo yêu cầu */
|
||||||
height: auto;
|
height: auto;
|
||||||
display: block;
|
display: block;
|
||||||
margin: 0 auto 30px auto;
|
margin: 0 auto 30px auto;
|
||||||
|
|
@ -2664,7 +2664,7 @@ body::before {
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-box {
|
.modal-box {
|
||||||
background: linear-gradient(145deg, #2A3B54, #1E293B); /* Slightly brighter with a subtle gradient */
|
background: linear-gradient(145deg, #2A3B54, #1E293B); /* Sáng hơn một chút với dải màu nhẹ */
|
||||||
border: 1px solid rgba(255,255,255,0.15);
|
border: 1px solid rgba(255,255,255,0.15);
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
padding: 40px;
|
padding: 40px;
|
||||||
|
|
@ -2710,7 +2710,7 @@ body::before {
|
||||||
|
|
||||||
.modal-input {
|
.modal-input {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: rgba(255, 255, 255, 0.06); /* Slightly brighter, transparent on dark blue background */
|
background: rgba(255, 255, 255, 0.06); /* Sáng hơn, trong suốt trên nền xanh đậm */
|
||||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
padding: 14px 16px;
|
padding: 14px 16px;
|
||||||
|
|
@ -2729,7 +2729,7 @@ body::before {
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-input::placeholder {
|
.modal-input::placeholder {
|
||||||
color: #64748B; /* Slightly lighter placeholder for readability */
|
color: #64748B; /* Placeholder sáng hơn xíu để dễ đọc */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2743,7 +2743,7 @@ body::before {
|
||||||
/* Tablet (1024px and below) */
|
/* Tablet (1024px and below) */
|
||||||
@media (max-width: 1024px) {
|
@media (max-width: 1024px) {
|
||||||
html {
|
html {
|
||||||
scroll-snap-type: none; /* Disable snap for smoother scrolling on tablets */
|
scroll-snap-type: none; /* Tắt snap để cuộn mượt hơn trên máy tính bảng */
|
||||||
}
|
}
|
||||||
|
|
||||||
.section {
|
.section {
|
||||||
|
|
@ -2773,7 +2773,7 @@ body::before {
|
||||||
|
|
||||||
.section {
|
.section {
|
||||||
height: auto;
|
height: auto;
|
||||||
min-height: auto; /* Allow full flex according to content */
|
min-height: auto; /* Cho phép co giãn hoàn toàn theo nội dung */
|
||||||
padding: 80px 0 40px 0;
|
padding: 80px 0 40px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3287,7 +3287,6 @@ body::before {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
transition: color 0.18s ease;
|
transition: color 0.18s ease;
|
||||||
word-spacing: 0.25em;
|
|
||||||
}
|
}
|
||||||
.ns-footer__trust-item a:hover { color: #ffffff; }
|
.ns-footer__trust-item a:hover { color: #ffffff; }
|
||||||
|
|
||||||
|
|
@ -3892,10 +3891,8 @@ body::before {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ─── Mobile hamburger & dropdown menu ───────────────────────── */
|
/* ─── Mobile hamburger & dropdown menu ───────────────────────── */
|
||||||
@media (max-width: 1024px) {
|
@media (max-width: 900px) {
|
||||||
.hamburger-btn { display: flex; }
|
.hamburger-btn { display: flex; }
|
||||||
.nav-links:not(.open) { display: none !important; }
|
|
||||||
.nav-cta { margin-left: auto; }
|
|
||||||
|
|
||||||
/* Backdrop */
|
/* Backdrop */
|
||||||
.nav-backdrop {
|
.nav-backdrop {
|
||||||
|
|
|
||||||
|
|
@ -17,15 +17,11 @@
|
||||||
"phones": [
|
"phones": [
|
||||||
{
|
{
|
||||||
"label": "AU",
|
"label": "AU",
|
||||||
"numbers": [
|
"numbers": [{ "display": "+612 8061 6886", "href": "tel:+61280616886" }]
|
||||||
{ "display": "+61 (2) 8061 6886", "href": "tel:+61280616886" }
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "US",
|
"label": "US",
|
||||||
"numbers": [
|
"numbers": [{ "display": "+1 4689 3350", "href": "tel:+146893350" }]
|
||||||
{ "display": "+1 (714) 689 3332", "href": "tel:+17146893332" }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
@ -38,14 +34,14 @@
|
||||||
|
|
||||||
"links": {
|
"links": {
|
||||||
"information": [
|
"information": [
|
||||||
{ "label": "About Us", "url": "about-us.html", "direct": true },
|
{ "label": "About Us", "url": "about-us", "external": false },
|
||||||
{ "label": "News", "url": "https://prology.net/blog", "external": true },
|
{ "label": "News", "url": "https://prology.net/blog", "external": true },
|
||||||
{ "label": "Contact Us", "url": "contact", "external": false },
|
{ "label": "Contact Us", "url": "contact", "external": false },
|
||||||
{ "label": "Terms of Use & Sale", "url": "terms", "external": false },
|
{ "label": "Terms of Use & Sale", "url": "terms", "external": false },
|
||||||
{
|
{
|
||||||
"label": "Privacy & Cookie Policy",
|
"label": "Privacy & Cookie Policy",
|
||||||
"url": "privacy-policy-cookie-restriction-mode.html",
|
"url": "privacy-policy-cookie-restriction-mode",
|
||||||
"direct": true
|
"external": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"your_orders": [
|
"your_orders": [
|
||||||
|
|
@ -54,8 +50,8 @@
|
||||||
{ "label": "My Wish List", "url": "wishlist", "external": false },
|
{ "label": "My Wish List", "url": "wishlist", "external": false },
|
||||||
{
|
{
|
||||||
"label": "Manufacturers List",
|
"label": "Manufacturers List",
|
||||||
"url": "manufacturers-list.html",
|
"url": "manufacturers",
|
||||||
"direct": true
|
"external": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"support": [
|
"support": [
|
||||||
|
|
@ -156,7 +152,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "LinkedIn",
|
"name": "LinkedIn",
|
||||||
"url": "https://www.linkedin.com/company/prology-net",
|
"url": "https://www.linkedin.com/company/unavailable/",
|
||||||
"icon": "linkedin"
|
"icon": "linkedin"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -166,7 +162,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "YouTube",
|
"name": "YouTube",
|
||||||
"url": "https://www.youtube.com/@prologydotnet",
|
"url": "https://www.youtube.com/@PrologyPtyLtd",
|
||||||
"icon": "youtube"
|
"icon": "youtube"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 437 KiB |
|
|
@ -17,16 +17,14 @@
|
||||||
apiEndpoint:
|
apiEndpoint:
|
||||||
P.CHAT_API_URL ||
|
P.CHAT_API_URL ||
|
||||||
P.API_URL ||
|
P.API_URL ||
|
||||||
"https://omni.prology.net/chat-plugin/api/support",
|
"https://prologyms.nswteam.net/chat-plugin/api/support",
|
||||||
whatsappNumber: P.CHAT_WHATSAPP_NUMBER || "84901234567",
|
whatsappNumber: P.CHAT_WHATSAPP_NUMBER || "84901234567",
|
||||||
accentColor: P.CHAT_ACCENT_COLOR || "#4f46e5",
|
accentColor: P.CHAT_ACCENT_COLOR || "#4f46e5",
|
||||||
position: P.CHAT_POSITION || "right",
|
position: P.CHAT_POSITION || "right",
|
||||||
rateLimit: {
|
rateLimit: {
|
||||||
max: P.CHAT_RATE_LIMIT_MAX != null ? P.CHAT_RATE_LIMIT_MAX : 3,
|
max: P.CHAT_RATE_LIMIT_MAX != null ? P.CHAT_RATE_LIMIT_MAX : 3,
|
||||||
windowMin:
|
windowMin:
|
||||||
P.CHAT_RATE_LIMIT_WINDOW_MIN != null
|
P.CHAT_RATE_LIMIT_WINDOW_MIN != null ? P.CHAT_RATE_LIMIT_WINDOW_MIN : 10,
|
||||||
? P.CHAT_RATE_LIMIT_WINDOW_MIN
|
|
||||||
: 10,
|
|
||||||
},
|
},
|
||||||
minFillMs: P.CHAT_MIN_FILL_MS != null ? P.CHAT_MIN_FILL_MS : 3000,
|
minFillMs: P.CHAT_MIN_FILL_MS != null ? P.CHAT_MIN_FILL_MS : 3000,
|
||||||
fabImageUrl:
|
fabImageUrl:
|
||||||
|
|
@ -99,7 +97,11 @@
|
||||||
var phone = (f.phone || "").trim();
|
var phone = (f.phone || "").trim();
|
||||||
var message = (f.message || "").trim();
|
var message = (f.message || "").trim();
|
||||||
if (!name || !/^[\p{L}\p{M}'\-\s]{2,80}$/u.test(name)) e.push("sms-name");
|
if (!name || !/^[\p{L}\p{M}'\-\s]{2,80}$/u.test(name)) e.push("sms-name");
|
||||||
if (!phone || !/^04\s?\d{2}\s?\d{3}\s?\d{3}$/.test(phone))
|
if (
|
||||||
|
!phone ||
|
||||||
|
!/^[\d\s\+\-\(\)]{7,15}$/.test(phone) ||
|
||||||
|
!/\d{5,}/.test(phone)
|
||||||
|
)
|
||||||
e.push("sms-phone");
|
e.push("sms-phone");
|
||||||
if (!message || message.length < 10) e.push("sms-msg");
|
if (!message || message.length < 10) e.push("sms-msg");
|
||||||
return e;
|
return e;
|
||||||
|
|
@ -144,7 +146,7 @@
|
||||||
/* FAB — no transition on background/box-shadow to kill flicker; only transform transitions */
|
/* FAB — no transition on background/box-shadow to kill flicker; only transform transitions */
|
||||||
"#fab{position:fixed;bottom:24px;" + pos + "z-index:99998;",
|
"#fab{position:fixed;bottom:24px;" + pos + "z-index:99998;",
|
||||||
"width:60px;height:60px;border-radius:50%;",
|
"width:60px;height:60px;border-radius:50%;",
|
||||||
"background-image:url(/assets/images/cropped.png);",
|
"background-image:url(" + CFG.fabImageUrl + ");",
|
||||||
"background-size:cover;background-position:center;background-repeat:no-repeat;",
|
"background-size:cover;background-position:center;background-repeat:no-repeat;",
|
||||||
"border:none;cursor:pointer;outline:none;",
|
"border:none;cursor:pointer;outline:none;",
|
||||||
"box-shadow:0 6px 20px rgba(79,70,229,.4);",
|
"box-shadow:0 6px 20px rgba(79,70,229,.4);",
|
||||||
|
|
@ -239,7 +241,7 @@
|
||||||
/* SMS */
|
/* SMS */
|
||||||
'<div class="pane active" id="pane-sms">',
|
'<div class="pane active" id="pane-sms">',
|
||||||
'<div class="field"><input id="sms-name" type="text" maxlength="80" autocomplete="name" placeholder="Your Name"><div class="hint" id="h-sms-name">Please enter your full name</div></div>',
|
'<div class="field"><input id="sms-name" type="text" maxlength="80" autocomplete="name" placeholder="Your Name"><div class="hint" id="h-sms-name">Please enter your full name</div></div>',
|
||||||
'<div class="field"><input id="sms-phone" type="tel" inputmode="numeric" maxlength="13" autocomplete="tel-national" placeholder="Mobile Phone (AU): 04 XX XXX XXX"><div class="hint" id="h-sms-phone">Enter AU mobile in format: 04 XX XXX XXX</div></div>',
|
'<div class="field"><input id="sms-phone" type="tel" maxlength="15" autocomplete="tel" placeholder="Mobile Number (Australia)"><div class="hint" id="h-sms-phone">Enter a valid AU mobile number</div></div>',
|
||||||
'<div class="field"><textarea id="sms-msg" maxlength="1000" placeholder="How can we help?"></textarea><div class="hint" id="h-sms-msg">Please provide more details (min 10 chars)</div></div>',
|
'<div class="field"><textarea id="sms-msg" maxlength="1000" placeholder="How can we help?"></textarea><div class="hint" id="h-sms-msg">Please provide more details (min 10 chars)</div></div>',
|
||||||
'<div class="hp"><input type="text" id="hp-sms" tabindex="-1" autocomplete="off"></div>',
|
'<div class="hp"><input type="text" id="hp-sms" tabindex="-1" autocomplete="off"></div>',
|
||||||
'<button class="btn-submit" id="btn-sms">Send SMS ' +
|
'<button class="btn-submit" id="btn-sms">Send SMS ' +
|
||||||
|
|
@ -273,7 +275,7 @@
|
||||||
'<div class="success-icon">' + SVG_CHECK + "</div>",
|
'<div class="success-icon">' + SVG_CHECK + "</div>",
|
||||||
"<h3>Message Received!</h3>",
|
"<h3>Message Received!</h3>",
|
||||||
"<p>Thanks for reaching out.<br>We'll get back to you shortly.</p>",
|
"<p>Thanks for reaching out.<br>We'll get back to you shortly.</p>",
|
||||||
'<button class="btn-submit" id="btn-new">Send another message</button>',
|
'<button class="btn-new" id="btn-new">Send another message</button>',
|
||||||
"</div>",
|
"</div>",
|
||||||
"</div>",
|
"</div>",
|
||||||
].join("");
|
].join("");
|
||||||
|
|
@ -422,17 +424,8 @@
|
||||||
bumpRl();
|
bumpRl();
|
||||||
showSuccess();
|
showSuccess();
|
||||||
} else if (xhr.status === 429)
|
} else if (xhr.status === 429)
|
||||||
setStatus(
|
setStatus(prefix, "Server busy. Please try again later.", "warn");
|
||||||
prefix,
|
else setStatus(prefix, "Failed to send. Please try again.", "fail");
|
||||||
"Too many requests. Please try again later.",
|
|
||||||
"warn",
|
|
||||||
);
|
|
||||||
else
|
|
||||||
setStatus(
|
|
||||||
prefix,
|
|
||||||
"Too many requests. Please try again later.",
|
|
||||||
"fail",
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
xhr.ontimeout = function () {
|
xhr.ontimeout = function () {
|
||||||
$btn.disabled = false;
|
$btn.disabled = false;
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,17 @@
|
||||||
window.PROLOGY_CONFIG = {
|
window.PROLOGY_CONFIG = {
|
||||||
API_URL: "https://omni.prology.net/chat-plugin/api/support",
|
API_URL: "https://prologyms.nswteam.net/chat-plugin/api/support",
|
||||||
LOGO_SRC: "assets/Prology_logo.png",
|
LOGO_SRC: "assets/Prology_logo.png",
|
||||||
|
|
||||||
// ── Chat / Support widget ──
|
// ── Chat / Support widget ──
|
||||||
CHAT_API_URL: "https://omni.prology.net/chat-plugin/api/support",
|
CHAT_API_URL: "https://prologyms.nswteam.net/chat-plugin/api/support",
|
||||||
CHAT_WHATSAPP_NUMBER: "84901234567",
|
CHAT_WHATSAPP_NUMBER: "84901234567",
|
||||||
CHAT_ACCENT_COLOR: "#4f46e5",
|
CHAT_ACCENT_COLOR: "#4f46e5",
|
||||||
CHAT_POSITION: "right",
|
CHAT_POSITION: "right",
|
||||||
CHAT_RATE_LIMIT_MAX: 3,
|
CHAT_RATE_LIMIT_MAX: 3,
|
||||||
CHAT_RATE_LIMIT_WINDOW_MIN: 10,
|
CHAT_RATE_LIMIT_WINDOW_MIN: 10,
|
||||||
CHAT_MIN_FILL_MS: 3000,
|
CHAT_MIN_FILL_MS: 3000,
|
||||||
CHAT_FAB_IMAGE_URL: "/assets/images/cropped.png",
|
CHAT_FAB_IMAGE_URL:
|
||||||
|
"https://prology.nswteam.net/media/wysiwyg/image_2026-04-02_15-43-14.png",
|
||||||
|
|
||||||
// ── Store picker (modal) ──
|
// ── Store picker (modal) ──
|
||||||
STORE_AU_URL: "https://prology.net/au",
|
STORE_AU_URL: "https://prology.net/au",
|
||||||
|
|
@ -33,17 +34,9 @@ window.PROLOGY_CONFIG = {
|
||||||
{ label: "Components", slug: "components" },
|
{ label: "Components", slug: "components" },
|
||||||
],
|
],
|
||||||
FOOTER_LEGAL_LINKS: [
|
FOOTER_LEGAL_LINKS: [
|
||||||
{
|
{ label: "Privacy Policy", url: "privacy-policy-cookie-restriction-mode" },
|
||||||
label: "Privacy Policy",
|
|
||||||
url: "privacy-policy-cookie-restriction-mode.html",
|
|
||||||
direct: true,
|
|
||||||
},
|
|
||||||
{ label: "Terms of Use & Sale", url: "terms" },
|
{ label: "Terms of Use & Sale", url: "terms" },
|
||||||
{
|
{ label: "Cookie Policy", url: "enable-cookies" },
|
||||||
label: "Cookie Policy",
|
|
||||||
url: "privacy-policy-cookie-restriction-mode.html#c1",
|
|
||||||
direct: true,
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
FOOTER_COPYRIGHT:
|
FOOTER_COPYRIGHT:
|
||||||
"Copyright © 2020-2026 Prology Pty Ltd T/A Prology. All rights reserved.",
|
"Copyright © 2020-2026 Prology Pty Ltd T/A Prology. All rights reserved.",
|
||||||
|
|
|
||||||
|
|
@ -76,14 +76,10 @@
|
||||||
|
|
||||||
// Internal items render as <span> that opens the store picker — the picked
|
// Internal items render as <span> that opens the store picker — the picked
|
||||||
// store then redirects to {STORE_URL}/{slug-or-url}. External items render
|
// store then redirects to {STORE_URL}/{slug-or-url}. External items render
|
||||||
// as a regular <a target="_blank">. Items flagged `direct: true` render as
|
// as a regular <a target="_blank">.
|
||||||
// a same-site <a> (no modal, no new tab).
|
|
||||||
const renderLinkInner = (item) => {
|
const renderLinkInner = (item) => {
|
||||||
const label = escape(item.label);
|
const label = escape(item.label);
|
||||||
const url = item.url || "";
|
const url = item.url || "";
|
||||||
if (item.direct) {
|
|
||||||
return `<a href="${escape(url)}">${label}</a>`;
|
|
||||||
}
|
|
||||||
if (item.external || /^https?:\/\//i.test(url)) {
|
if (item.external || /^https?:\/\//i.test(url)) {
|
||||||
return `<a href="${escape(linkUrl(item))}" target="_blank" rel="noopener">${label}</a>`;
|
return `<a href="${escape(linkUrl(item))}" target="_blank" rel="noopener">${label}</a>`;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -149,8 +149,8 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
|
||||||
runTypewriter();
|
runTypewriter();
|
||||||
|
|
||||||
// Auto-focus timer removed here.
|
// Đã hủy bỏ bộ hẹn giờ auto-focus ở đây.
|
||||||
// Auto-focusing after 19s caused the browser to scroll back to the top while the user was reading below.
|
// Việc auto-focus sau 19s khiến trình duyệt tự động cuộn giật ngược lên đầu trang nếu user đang đọc ở dưới.
|
||||||
|
|
||||||
// Switch between Source (Buy) and Sell Modes
|
// Switch between Source (Buy) and Sell Modes
|
||||||
window.switchTab = function (mode) {
|
window.switchTab = function (mode) {
|
||||||
|
|
@ -264,17 +264,6 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
|
||||||
sections.forEach((section) => observer.observe(section));
|
sections.forEach((section) => observer.observe(section));
|
||||||
|
|
||||||
// Hide scroll indicator when footer is visible
|
|
||||||
const footerEl = document.querySelector("footer.page-footer");
|
|
||||||
if (footerEl && scrollIndicator) {
|
|
||||||
const footerObserver = new IntersectionObserver((entries) => {
|
|
||||||
entries.forEach((entry) => {
|
|
||||||
scrollIndicator.style.opacity = entry.isIntersecting ? "0" : "";
|
|
||||||
});
|
|
||||||
}, { threshold: 0.05 });
|
|
||||||
footerObserver.observe(footerEl);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ============ SMOOTH SCROLL (Navbar) ============
|
// ============ SMOOTH SCROLL (Navbar) ============
|
||||||
document.querySelectorAll('a[href^="#"]').forEach((anchor) => {
|
document.querySelectorAll('a[href^="#"]').forEach((anchor) => {
|
||||||
anchor.addEventListener("click", function (e) {
|
anchor.addEventListener("click", function (e) {
|
||||||
|
|
|
||||||
|
|
@ -2,113 +2,8 @@
|
||||||
// ── API Config ──
|
// ── API Config ──
|
||||||
const API_ENDPOINT = window.PROLOGY_CONFIG.API_URL;
|
const API_ENDPOINT = window.PROLOGY_CONFIG.API_URL;
|
||||||
|
|
||||||
// ── Per-field error messages ──
|
|
||||||
const FIELD_ERROR_MSG = {
|
|
||||||
name: "Please enter a valid name.",
|
|
||||||
email: "Please enter a valid email address.",
|
|
||||||
phone: "Please enter a valid Australian mobile number (04xx xxx xxx).",
|
|
||||||
message: "Please enter at least 10 characters.",
|
|
||||||
email_or_phone_required: "Please provide an email or phone number.",
|
|
||||||
};
|
|
||||||
|
|
||||||
// ── Client-side validators (mirror server rules) ──
|
|
||||||
const RX_EMAIL = /^[\w.+-]+@[\w-]+(\.[\w-]+)+$/;
|
|
||||||
const RX_NAME = /^[\p{L}\p{M}'\-\s.]{2,80}$/u;
|
|
||||||
|
|
||||||
function isValidAuMobile(phone) {
|
|
||||||
const raw = (phone || "").trim();
|
|
||||||
if (!raw || !/^[\d\s\-()]+$/.test(raw)) return false;
|
|
||||||
const digits = raw.replace(/\D/g, "");
|
|
||||||
return /^04\d{8}$/.test(digits);
|
|
||||||
}
|
|
||||||
|
|
||||||
function validateClient(fields) {
|
|
||||||
const bad = [];
|
|
||||||
if ("name" in fields && (!fields.name || !RX_NAME.test(fields.name.trim())))
|
|
||||||
bad.push("name");
|
|
||||||
if ("email" in fields && (!fields.email || !RX_EMAIL.test(fields.email.trim())))
|
|
||||||
bad.push("email");
|
|
||||||
if ("phone" in fields && !isValidAuMobile(fields.phone))
|
|
||||||
bad.push("phone");
|
|
||||||
if ("message" in fields && (!fields.message || fields.message.trim().length < 10))
|
|
||||||
bad.push("message");
|
|
||||||
return bad;
|
|
||||||
}
|
|
||||||
|
|
||||||
function clearFieldErrors(sr) {
|
|
||||||
if (!sr) return;
|
|
||||||
sr.querySelectorAll(".field-error").forEach((el) => el.remove());
|
|
||||||
sr.querySelectorAll(".invalid").forEach((el) => el.classList.remove("invalid"));
|
|
||||||
}
|
|
||||||
|
|
||||||
function showFieldErrors(sr, badKeys, fieldMap) {
|
|
||||||
if (!sr || !fieldMap) return false;
|
|
||||||
let shown = 0;
|
|
||||||
badKeys.forEach((key) => {
|
|
||||||
let names = fieldMap[key];
|
|
||||||
if (!names) return;
|
|
||||||
if (!Array.isArray(names)) names = [names];
|
|
||||||
names.forEach((name) => {
|
|
||||||
const input = sr.querySelector('[name="' + name + '"]');
|
|
||||||
if (!input) return;
|
|
||||||
input.classList.add("invalid");
|
|
||||||
const field = input.closest(".field");
|
|
||||||
if (field && !field.querySelector(".field-error")) {
|
|
||||||
const err = document.createElement("div");
|
|
||||||
err.className = "field-error";
|
|
||||||
err.textContent = FIELD_ERROR_MSG[key] || "Invalid value.";
|
|
||||||
field.appendChild(err);
|
|
||||||
shown++;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return shown > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
function bindClearOnInput(sr) {
|
|
||||||
if (!sr || sr._clearBound) return;
|
|
||||||
sr._clearBound = true;
|
|
||||||
sr.querySelectorAll("input, textarea, select").forEach((el) => {
|
|
||||||
el.addEventListener("input", () => {
|
|
||||||
if (!el.classList.contains("invalid")) return;
|
|
||||||
el.classList.remove("invalid");
|
|
||||||
const field = el.closest(".field");
|
|
||||||
const err = field && field.querySelector(".field-error");
|
|
||||||
if (err) err.remove();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function showButtonError(btnEl, msg) {
|
|
||||||
const origHTML = btnEl.dataset.origHtml || btnEl.innerHTML;
|
|
||||||
btnEl.dataset.origHtml = origHTML;
|
|
||||||
btnEl.innerHTML = "<span>⚠ " + msg + "</span>";
|
|
||||||
setTimeout(() => {
|
|
||||||
btnEl.innerHTML = origHTML;
|
|
||||||
btnEl.disabled = false;
|
|
||||||
delete btnEl.dataset.origHtml;
|
|
||||||
}, 3000);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ── Shared submit function ──
|
// ── Shared submit function ──
|
||||||
async function submitToAPI(payload, btnEl, onSuccess, opts) {
|
async function submitToAPI(payload, btnEl, onSuccess) {
|
||||||
const { sr, validateFields, fieldMap } = opts || {};
|
|
||||||
|
|
||||||
if (sr) {
|
|
||||||
clearFieldErrors(sr);
|
|
||||||
bindClearOnInput(sr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Client-side validation — avoid burning an API call on obvious errors
|
|
||||||
if (validateFields) {
|
|
||||||
const bad = validateClient(validateFields);
|
|
||||||
if (bad.length) {
|
|
||||||
const shown = showFieldErrors(sr, bad, fieldMap);
|
|
||||||
if (!shown) showButtonError(btnEl, "Please check your inputs and try again.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
btnEl.disabled = true;
|
btnEl.disabled = true;
|
||||||
const origHTML = btnEl.innerHTML;
|
const origHTML = btnEl.innerHTML;
|
||||||
btnEl.innerHTML = "<span>Sending...</span>";
|
btnEl.innerHTML = "<span>Sending...</span>";
|
||||||
|
|
@ -136,23 +31,10 @@
|
||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
|
|
||||||
if (res.ok && data.ok) {
|
if (res.ok && data.ok) {
|
||||||
// Google Ads conversion — fires only on a successful submit
|
|
||||||
if (typeof gtag_report_conversion === "function") {
|
|
||||||
gtag_report_conversion();
|
|
||||||
}
|
|
||||||
onSuccess(restore);
|
onSuccess(restore);
|
||||||
} else {
|
} else {
|
||||||
let msg = data.error || "Something went wrong. Please try again.";
|
const msg =
|
||||||
if (res.status === 429) {
|
data.error || "Something went wrong. Please try again.";
|
||||||
msg = "Too many requests. Please try again later.";
|
|
||||||
} else if (/validation failed/i.test(msg)) {
|
|
||||||
const shown = showFieldErrors(sr, data.fields || [], fieldMap);
|
|
||||||
if (shown) {
|
|
||||||
restore();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
msg = "Please check your inputs and try again.";
|
|
||||||
}
|
|
||||||
btnEl.innerHTML = "<span>⚠ " + msg + "</span>";
|
btnEl.innerHTML = "<span>⚠ " + msg + "</span>";
|
||||||
setTimeout(restore, 3000);
|
setTimeout(restore, 3000);
|
||||||
}
|
}
|
||||||
|
|
@ -243,16 +125,6 @@
|
||||||
border-color: #1A73E8;
|
border-color: #1A73E8;
|
||||||
background: rgba(255,255,255,0.09);
|
background: rgba(255,255,255,0.09);
|
||||||
}
|
}
|
||||||
input.invalid, textarea.invalid, select.invalid {
|
|
||||||
border-color: #f87171;
|
|
||||||
background: rgba(248,113,113,0.06);
|
|
||||||
}
|
|
||||||
.field-error {
|
|
||||||
color: #f87171;
|
|
||||||
font-size: 0.78rem;
|
|
||||||
margin-top: 6px;
|
|
||||||
line-height: 1.35;
|
|
||||||
}
|
|
||||||
input::placeholder, textarea::placeholder { color: #64748B; }
|
input::placeholder, textarea::placeholder { color: #64748B; }
|
||||||
textarea { min-height: 120px; resize: vertical; }
|
textarea { min-height: 120px; resize: vertical; }
|
||||||
select {
|
select {
|
||||||
|
|
@ -318,6 +190,11 @@
|
||||||
this.shadowRoot
|
this.shadowRoot
|
||||||
.querySelector(".close")
|
.querySelector(".close")
|
||||||
.addEventListener("click", () => this.close());
|
.addEventListener("click", () => this.close());
|
||||||
|
this.shadowRoot
|
||||||
|
.querySelector(".overlay")
|
||||||
|
.addEventListener("click", (e) => {
|
||||||
|
if (e.target.classList.contains("overlay")) this.close();
|
||||||
|
});
|
||||||
document.addEventListener("keydown", (e) => {
|
document.addEventListener("keydown", (e) => {
|
||||||
if (e.key === "Escape" && this.classList.contains("open"))
|
if (e.key === "Escape" && this.classList.contains("open"))
|
||||||
this.close();
|
this.close();
|
||||||
|
|
@ -384,11 +261,6 @@
|
||||||
restore();
|
restore();
|
||||||
}, 1800);
|
}, 1800);
|
||||||
},
|
},
|
||||||
{
|
|
||||||
sr,
|
|
||||||
validateFields: { email, message: inventory },
|
|
||||||
fieldMap: { email: "email", message: "inventory" },
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -453,11 +325,6 @@
|
||||||
restore();
|
restore();
|
||||||
}, 1800);
|
}, 1800);
|
||||||
},
|
},
|
||||||
{
|
|
||||||
sr,
|
|
||||||
validateFields: { email },
|
|
||||||
fieldMap: { email: "email", message: "parts" },
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -481,7 +348,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="field-row">
|
<div class="field-row">
|
||||||
<div class="field"><label>Company (Optional)</label><input type="text" name="company" placeholder="Company Ltd."></div>
|
<div class="field"><label>Company (Optional)</label><input type="text" name="company" placeholder="Company Ltd."></div>
|
||||||
<div class="field"><label>Phone Number <span class="req">*</span></label><input type="tel" name="phone" placeholder="04xx xxx xxx" inputmode="tel" autocomplete="tel" required></div>
|
<div class="field"><label>Phone Number <span class="req">*</span></label><input type="tel" name="phone" placeholder="+1 234 567 8900" required></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label>Equipment Requirements <span class="req">*</span></label>
|
<label>Equipment Requirements <span class="req">*</span></label>
|
||||||
|
|
@ -528,17 +395,6 @@
|
||||||
restore();
|
restore();
|
||||||
}, 1800);
|
}, 1800);
|
||||||
},
|
},
|
||||||
{
|
|
||||||
sr,
|
|
||||||
validateFields: { name, email, phone, message: requirements },
|
|
||||||
fieldMap: {
|
|
||||||
name: "name",
|
|
||||||
email: "email",
|
|
||||||
phone: "phone",
|
|
||||||
message: "requirements",
|
|
||||||
email_or_phone_required: ["email", "phone"],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -562,7 +418,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="field-row">
|
<div class="field-row">
|
||||||
<div class="field"><label>Organization / Agency <span class="req">*</span></label><input type="text" name="org" placeholder="Organization Name" required></div>
|
<div class="field"><label>Organization / Agency <span class="req">*</span></label><input type="text" name="org" placeholder="Organization Name" required></div>
|
||||||
<div class="field"><label>Contact Number <span class="req">*</span></label><input type="tel" name="phone" placeholder="04xx xxx xxx" inputmode="tel" autocomplete="tel" required></div>
|
<div class="field"><label>Contact Number <span class="req">*</span></label><input type="tel" name="phone" placeholder="+1 234 567 8900" required></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label>Enquiry Details <span class="req">*</span></label>
|
<label>Enquiry Details <span class="req">*</span></label>
|
||||||
|
|
@ -600,17 +456,6 @@
|
||||||
restore();
|
restore();
|
||||||
}, 1800);
|
}, 1800);
|
||||||
},
|
},
|
||||||
{
|
|
||||||
sr,
|
|
||||||
validateFields: { name, email, phone, message: details },
|
|
||||||
fieldMap: {
|
|
||||||
name: "name",
|
|
||||||
email: "email",
|
|
||||||
phone: "phone",
|
|
||||||
message: "details",
|
|
||||||
email_or_phone_required: ["email", "phone"],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -689,18 +534,4 @@
|
||||||
}
|
}
|
||||||
window.openValuationModal(email);
|
window.openValuationModal(email);
|
||||||
};
|
};
|
||||||
|
|
||||||
// ── Auto-open a modal from the URL (e.g. ?_open=wc-quote-modal) ──
|
|
||||||
(function openModalFromUrl() {
|
|
||||||
const target = new URLSearchParams(window.location.search).get("_open");
|
|
||||||
if (!target) return;
|
|
||||||
|
|
||||||
if (target === "store-modal-overlay") {
|
|
||||||
window.openStoreModal();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const el = document.getElementById(target);
|
|
||||||
if (el && typeof el.open === "function") el.open();
|
|
||||||
})();
|
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
BIN
favicon.png
BIN
favicon.png
Binary file not shown.
|
Before Width: | Height: | Size: 33 KiB |
56
index.html
56
index.html
|
|
@ -3,29 +3,30 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>
|
<title>Prology | Enterprise Network Infrastructure Brokerage</title>
|
||||||
Prology – New & Used Enterprise IT, Server and Network Hardware Supplier
|
|
||||||
</title>
|
|
||||||
<meta
|
<meta
|
||||||
name="description"
|
name="description"
|
||||||
content="Prology – new & used enterprise IT, server and network hardware supplier. Source Cisco, HP and other hard-to-find networking equipment across Australia and the United States. 15+ years experience, 100k+ units in stock."
|
content="Prology — enterprise network hardware brokerage. Source Cisco, HP and other hard-to-find networking equipment across Australia and the United States. 15+ years experience, 100k+ units in stock."
|
||||||
/>
|
/>
|
||||||
<meta name="robots" content="index,follow" />
|
<meta name="robots" content="index,follow" />
|
||||||
<link rel="canonical" href="https://prology.net/" />
|
<link rel="canonical" href="https://prology.net/" />
|
||||||
<link rel="icon" type="image/png" href="https://prology.net/favicon.png" />
|
|
||||||
<!-- Open Graph -->
|
<!-- Open Graph -->
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
<meta property="og:site_name" content="Prology" />
|
<meta property="og:site_name" content="Prology" />
|
||||||
<meta property="og:url" content="https://prology.net/" />
|
<meta property="og:url" content="https://prology.net/" />
|
||||||
<meta
|
<meta
|
||||||
property="og:title"
|
property="og:title"
|
||||||
content="Prology – New & Used Enterprise IT, Server and Network Hardware Supplier"
|
content="Prology | Enterprise Network Infrastructure Brokerage"
|
||||||
/>
|
/>
|
||||||
<meta
|
<meta
|
||||||
property="og:description"
|
property="og:description"
|
||||||
content="Source Cisco, HP and hard-to-find enterprise network hardware across Australia and the United States. 15+ years experience, 100k+ units in stock."
|
content="Source Cisco, HP and hard-to-find enterprise network hardware across Australia and the United States. 15+ years experience, 100k+ units in stock."
|
||||||
/>
|
/>
|
||||||
<meta property="og:image" content="https://prology.net/favicon.png" />
|
<meta
|
||||||
|
property="og:image"
|
||||||
|
content="https://prology.net/assets/Prology_logo.png"
|
||||||
|
/>
|
||||||
<meta property="og:locale" content="en_AU" />
|
<meta property="og:locale" content="en_AU" />
|
||||||
<meta property="og:locale:alternate" content="en_US" />
|
<meta property="og:locale:alternate" content="en_US" />
|
||||||
|
|
||||||
|
|
@ -33,13 +34,16 @@
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
<meta
|
<meta
|
||||||
name="twitter:title"
|
name="twitter:title"
|
||||||
content="Prology – New & Used Enterprise IT, Server and Network Hardware Supplier"
|
content="Prology | Enterprise Network Infrastructure Brokerage"
|
||||||
/>
|
/>
|
||||||
<meta
|
<meta
|
||||||
name="twitter:description"
|
name="twitter:description"
|
||||||
content="Source Cisco, HP and hard-to-find enterprise network hardware across Australia and the United States."
|
content="Source Cisco, HP and hard-to-find enterprise network hardware across Australia and the United States."
|
||||||
/>
|
/>
|
||||||
<meta name="twitter:image" content="https://prology.net/favicon.png" />
|
<meta
|
||||||
|
name="twitter:image"
|
||||||
|
content="https://prology.net/assets/Prology_logo.png"
|
||||||
|
/>
|
||||||
|
|
||||||
<link rel="stylesheet" href="assets/css/styles.css" />
|
<link rel="stylesheet" href="assets/css/styles.css" />
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||||
|
|
@ -104,34 +108,6 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Google tag (gtag.js) -->
|
|
||||||
<script
|
|
||||||
async
|
|
||||||
src="https://www.googletagmanager.com/gtag/js?id=G-YG35M09CR8"
|
|
||||||
></script>
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || []
|
|
||||||
function gtag() {
|
|
||||||
dataLayer.push(arguments)
|
|
||||||
}
|
|
||||||
gtag('js', new Date())
|
|
||||||
gtag('config', 'G-YG35M09CR8')
|
|
||||||
gtag('config', 'AW-18202371431');
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Event snippet for Outbound click conversion page In your html page, add the snippet and call gtag_report_conversion when someone clicks on the chosen link or button. -->
|
|
||||||
<script>
|
|
||||||
function gtag_report_conversion(url) {
|
|
||||||
var callback = function () {
|
|
||||||
if (typeof url != "undefined") {
|
|
||||||
window.location = url;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
gtag("event", "conversion", { send_to: "AW-18202371431/hhXcCOCRvb0cEOfKyOdD", value: 1.0, currency: "AUD", event_callback: callback });
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|
@ -155,7 +131,6 @@
|
||||||
<li><a href="#who-we-serve">Who We Serve</a></li>
|
<li><a href="#who-we-serve">Who We Serve</a></li>
|
||||||
<li><a href="#institutional">Gov & Corp</a></li>
|
<li><a href="#institutional">Gov & Corp</a></li>
|
||||||
<li><a href="#contact">Contact</a></li>
|
<li><a href="#contact">Contact</a></li>
|
||||||
<li><a href="about-us.html">About Us</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<div class="nav-cta">
|
<div class="nav-cta">
|
||||||
<button class="btn-view-products" onclick="openStoreModal()">
|
<button class="btn-view-products" onclick="openStoreModal()">
|
||||||
|
|
@ -922,6 +897,11 @@
|
||||||
>
|
>
|
||||||
<div class="po-content-large">
|
<div class="po-content-large">
|
||||||
<div class="institutional-central-header">
|
<div class="institutional-central-header">
|
||||||
|
<img
|
||||||
|
src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Coat_of_arms_of_the_Commonwealth_of_Australia.svg/1280px-Coat_of_arms_of_the_Commonwealth_of_Australia.svg.png"
|
||||||
|
alt="Coat of arms of the Commonwealth of Australia"
|
||||||
|
class="official-seal-large"
|
||||||
|
/>
|
||||||
<div class="po-titles-central">
|
<div class="po-titles-central">
|
||||||
<h2>Government & Corporate Orders</h2>
|
<h2>Government & Corporate Orders</h2>
|
||||||
<p style="max-width: 800px; margin: 0 auto">
|
<p style="max-width: 800px; margin: 0 auto">
|
||||||
|
|
|
||||||
|
|
@ -1,613 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-snap">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>Manufacturers List – Prology</title>
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="A–Z directory of networking and IT hardware brands stocked and supported by Prology — Cisco, Juniper, Fortinet, Aruba and more."
|
|
||||||
/>
|
|
||||||
<meta name="robots" content="index,follow" />
|
|
||||||
<link rel="canonical" href="https://prology.net/manufacturers" />
|
|
||||||
<link rel="icon" type="image/png" href="https://prology.net/favicon.png" />
|
|
||||||
|
|
||||||
<!-- Open Graph -->
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:site_name" content="Prology" />
|
|
||||||
<meta property="og:url" content="https://prology.net/manufacturers" />
|
|
||||||
<meta property="og:title" content="Manufacturers List – Prology" />
|
|
||||||
<meta
|
|
||||||
property="og:description"
|
|
||||||
content="A–Z directory of networking and IT hardware brands stocked and supported by Prology."
|
|
||||||
/>
|
|
||||||
<meta property="og:image" content="https://prology.net/favicon.png" />
|
|
||||||
<meta property="og:locale" content="en_AU" />
|
|
||||||
<meta property="og:locale:alternate" content="en_US" />
|
|
||||||
|
|
||||||
<!-- Twitter Card -->
|
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
|
||||||
<meta name="twitter:title" content="Manufacturers List – Prology" />
|
|
||||||
<meta
|
|
||||||
name="twitter:description"
|
|
||||||
content="A–Z directory of networking and IT hardware brands stocked and supported by Prology."
|
|
||||||
/>
|
|
||||||
<meta name="twitter:image" content="https://prology.net/favicon.png" />
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="assets/css/styles.css" />
|
|
||||||
<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=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- Google tag (gtag.js) -->
|
|
||||||
<script
|
|
||||||
async
|
|
||||||
src="https://www.googletagmanager.com/gtag/js?id=G-YG35M09CR8"
|
|
||||||
></script>
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || []
|
|
||||||
function gtag() {
|
|
||||||
dataLayer.push(arguments)
|
|
||||||
}
|
|
||||||
gtag('js', new Date())
|
|
||||||
gtag('config', 'G-YG35M09CR8')
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
background: #f6f7f9 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mfr-page {
|
|
||||||
margin-top: 80px;
|
|
||||||
padding: 32px 0 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mfr-breadcrumb {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 8px;
|
|
||||||
font-size: 0.95rem;
|
|
||||||
margin-bottom: 24px;
|
|
||||||
padding-left: 4px;
|
|
||||||
}
|
|
||||||
.mfr-breadcrumb a {
|
|
||||||
color: #6b7280;
|
|
||||||
text-decoration: none;
|
|
||||||
transition: color 0.2s;
|
|
||||||
}
|
|
||||||
.mfr-breadcrumb a:hover {
|
|
||||||
color: #1a73e8;
|
|
||||||
}
|
|
||||||
.mfr-breadcrumb .sep {
|
|
||||||
color: #cbd2da;
|
|
||||||
}
|
|
||||||
.mfr-breadcrumb .current {
|
|
||||||
color: #1a1f2e;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ── Manufacturers list ── */
|
|
||||||
.ns-mfr * {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
.ns-mfr {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ns-mfr-hero {
|
|
||||||
background: #0d1f3c;
|
|
||||||
padding: 40px 48px;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 28px;
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
.ns-mfr-hero h1 {
|
|
||||||
font-size: 1.9rem;
|
|
||||||
font-weight: 700;
|
|
||||||
color: #fff;
|
|
||||||
margin: 0 0 8px;
|
|
||||||
letter-spacing: -0.02em;
|
|
||||||
line-height: 1.2;
|
|
||||||
}
|
|
||||||
.ns-mfr-hero p {
|
|
||||||
font-size: 0.9rem;
|
|
||||||
color: rgba(255, 255, 255, 0.6);
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ns-mfr-alpha {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
gap: 5px;
|
|
||||||
margin-bottom: 24px;
|
|
||||||
}
|
|
||||||
.ns-mfr-alpha a {
|
|
||||||
width: 36px;
|
|
||||||
height: 36px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border-radius: 6px;
|
|
||||||
border: 1px solid #dde3ec;
|
|
||||||
background: #fff;
|
|
||||||
font-size: 0.85rem;
|
|
||||||
font-weight: 700;
|
|
||||||
color: #5a6478;
|
|
||||||
text-decoration: none;
|
|
||||||
transition: all 0.15s;
|
|
||||||
}
|
|
||||||
.ns-mfr-alpha a:hover {
|
|
||||||
background: #0073e6;
|
|
||||||
color: #fff;
|
|
||||||
border-color: #0073e6;
|
|
||||||
}
|
|
||||||
.ns-mfr-alpha a.ns-empty {
|
|
||||||
opacity: 0.28;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ns-mfr-masonry {
|
|
||||||
columns: 3;
|
|
||||||
column-gap: 24px;
|
|
||||||
}
|
|
||||||
.ns-mfr-group {
|
|
||||||
break-inside: avoid;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
.ns-mfr-letter-head {
|
|
||||||
font-size: 0.7rem;
|
|
||||||
font-weight: 700;
|
|
||||||
letter-spacing: 0.1em;
|
|
||||||
text-transform: uppercase;
|
|
||||||
color: #0073e6;
|
|
||||||
margin: 0 0 8px;
|
|
||||||
padding-bottom: 7px;
|
|
||||||
border-bottom: 1.5px solid #edf0f5;
|
|
||||||
}
|
|
||||||
.ns-mfr-list {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 4px;
|
|
||||||
}
|
|
||||||
.ns-mfr-item {
|
|
||||||
background: #fff;
|
|
||||||
border: 1px solid #edf0f5;
|
|
||||||
border-radius: 8px;
|
|
||||||
padding: 12px 18px;
|
|
||||||
transition:
|
|
||||||
border-color 0.15s,
|
|
||||||
box-shadow 0.15s;
|
|
||||||
}
|
|
||||||
.ns-mfr-item:hover {
|
|
||||||
border-color: #b3d0f5;
|
|
||||||
box-shadow: 0 2px 8px rgba(0, 115, 230, 0.08);
|
|
||||||
}
|
|
||||||
.ns-mfr-name {
|
|
||||||
font-size: 0.95rem;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #0d1f3c;
|
|
||||||
line-height: 1.35;
|
|
||||||
}
|
|
||||||
.ns-mfr-item:hover .ns-mfr-name {
|
|
||||||
color: #0073e6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ns-mfr-footer {
|
|
||||||
margin-top: 24px;
|
|
||||||
padding-top: 16px;
|
|
||||||
border-top: 1px solid #edf0f5;
|
|
||||||
}
|
|
||||||
.ns-mfr-count {
|
|
||||||
font-size: 0.78rem;
|
|
||||||
color: #8a95a8;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 900px) {
|
|
||||||
.ns-mfr-masonry {
|
|
||||||
columns: 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media (max-width: 640px) {
|
|
||||||
.ns-mfr-masonry {
|
|
||||||
columns: 1;
|
|
||||||
}
|
|
||||||
.ns-mfr-hero {
|
|
||||||
padding: 28px 20px;
|
|
||||||
}
|
|
||||||
.ns-mfr-hero h1 {
|
|
||||||
font-size: 1.4rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<!-- ============ NAVIGATION ============ -->
|
|
||||||
<nav class="navbar">
|
|
||||||
<div class="nav-content">
|
|
||||||
<a href="index.html" class="nav-brand">
|
|
||||||
<img src="assets/Prology_logo.png" alt="Prology.net" />
|
|
||||||
</a>
|
|
||||||
<ul class="nav-links">
|
|
||||||
<li><a href="index.html#home">Home</a></li>
|
|
||||||
<li><a href="index.html#services">Categories</a></li>
|
|
||||||
<li><a href="index.html#quality">Why Choose Us</a></li>
|
|
||||||
<li><a href="index.html#who-we-serve">Who We Serve</a></li>
|
|
||||||
<li><a href="index.html#institutional">Gov & Corp</a></li>
|
|
||||||
<li><a href="index.html#contact">Contact</a></li>
|
|
||||||
<li><a href="about-us.html">About Us</a></li>
|
|
||||||
</ul>
|
|
||||||
<div class="nav-cta">
|
|
||||||
<button class="btn-view-products" onclick="openStoreModal()">
|
|
||||||
<svg
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2.5"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z" />
|
|
||||||
<line x1="3" y1="6" x2="21" y2="6" />
|
|
||||||
<path d="M16 10a4 4 0 0 1-8 0" />
|
|
||||||
</svg>
|
|
||||||
View Products
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<button
|
|
||||||
class="hamburger-btn"
|
|
||||||
aria-label="Toggle navigation menu"
|
|
||||||
aria-expanded="false"
|
|
||||||
>
|
|
||||||
<span class="bar"></span>
|
|
||||||
<span class="bar"></span>
|
|
||||||
<span class="bar"></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<div class="nav-backdrop" id="nav-backdrop"></div>
|
|
||||||
|
|
||||||
<!-- ============ MAIN CONTENT ============ -->
|
|
||||||
<div class="mfr-page">
|
|
||||||
<div class="container">
|
|
||||||
<nav class="mfr-breadcrumb" aria-label="Breadcrumb">
|
|
||||||
<a href="index.html">Home</a>
|
|
||||||
<span class="sep">/</span>
|
|
||||||
<span class="current">Manufacturers List</span>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<div class="ns-mfr">
|
|
||||||
<div class="ns-mfr-hero">
|
|
||||||
<h1>Networking & IT Hardware Manufacturers</h1>
|
|
||||||
<p>A–Z directory of brands we stock and support</p>
|
|
||||||
</div>
|
|
||||||
<div id="ns-mfr-alpha" class="ns-mfr-alpha"></div>
|
|
||||||
<div id="ns-mfr-groups" class="ns-mfr-masonry"></div>
|
|
||||||
<div class="ns-mfr-footer">
|
|
||||||
<span id="ns-mfr-count" class="ns-mfr-count"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="assets/js/config.js" defer></script>
|
|
||||||
<script src="assets/js/modals.js" defer></script>
|
|
||||||
|
|
||||||
<!-- Nav hamburger -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener("DOMContentLoaded", function () {
|
|
||||||
var hamburgerBtn = document.querySelector(".hamburger-btn");
|
|
||||||
var navMenu = document.querySelector(".nav-links");
|
|
||||||
var navBackdrop = document.getElementById("nav-backdrop");
|
|
||||||
if (!hamburgerBtn || !navMenu) return;
|
|
||||||
|
|
||||||
function closeNavMenu() {
|
|
||||||
navMenu.classList.remove("open");
|
|
||||||
hamburgerBtn.classList.remove("open");
|
|
||||||
hamburgerBtn.setAttribute("aria-expanded", "false");
|
|
||||||
if (navBackdrop) navBackdrop.classList.remove("open");
|
|
||||||
}
|
|
||||||
|
|
||||||
hamburgerBtn.addEventListener("click", function () {
|
|
||||||
var isOpen = navMenu.classList.toggle("open");
|
|
||||||
hamburgerBtn.classList.toggle("open", isOpen);
|
|
||||||
hamburgerBtn.setAttribute("aria-expanded", String(isOpen));
|
|
||||||
if (navBackdrop) navBackdrop.classList.toggle("open", isOpen);
|
|
||||||
});
|
|
||||||
navMenu.querySelectorAll("a").forEach(function (a) {
|
|
||||||
a.addEventListener("click", closeNavMenu);
|
|
||||||
});
|
|
||||||
if (navBackdrop) navBackdrop.addEventListener("click", closeNavMenu);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Manufacturers list -->
|
|
||||||
<script>
|
|
||||||
(function () {
|
|
||||||
var brands = [
|
|
||||||
"Allied Telesis",
|
|
||||||
"Arista Networks",
|
|
||||||
"Aruba Networks",
|
|
||||||
"Barracuda Networks",
|
|
||||||
"Cambium Networks",
|
|
||||||
"Ceragon Networks",
|
|
||||||
"Check Point Software Technologies",
|
|
||||||
"Cisco Systems",
|
|
||||||
"D-Link",
|
|
||||||
"Dell Technologies",
|
|
||||||
"DrayTek",
|
|
||||||
"EnGenius Technologies",
|
|
||||||
"Ericsson",
|
|
||||||
"Extreme Networks",
|
|
||||||
"F5 Networks",
|
|
||||||
"Fortinet",
|
|
||||||
"Fujitsu",
|
|
||||||
"Hewlett Packard Enterprise",
|
|
||||||
"Hitachi Vantara",
|
|
||||||
"Huawei Technologies",
|
|
||||||
"IBM",
|
|
||||||
"Infoblox",
|
|
||||||
"Juniper Networks",
|
|
||||||
"Lenovo",
|
|
||||||
"Meraki",
|
|
||||||
"MikroTik",
|
|
||||||
"NetApp",
|
|
||||||
"Netgear",
|
|
||||||
"Nokia",
|
|
||||||
"Oracle Corporation",
|
|
||||||
"Palo Alto Networks",
|
|
||||||
"Pure Storage",
|
|
||||||
"QNAP Systems",
|
|
||||||
"Radware",
|
|
||||||
"Ruckus Networks",
|
|
||||||
"Ruijie Networks",
|
|
||||||
"Seagate Technology",
|
|
||||||
"Siklu",
|
|
||||||
"Sophos",
|
|
||||||
"Supermicro",
|
|
||||||
"Synology",
|
|
||||||
"Teltonika Networks",
|
|
||||||
"TP-Link",
|
|
||||||
"TRENDnet",
|
|
||||||
"Ubiquiti Inc.",
|
|
||||||
"WatchGuard Technologies",
|
|
||||||
"Western Digital",
|
|
||||||
"ZTE",
|
|
||||||
"Zyxel Communications",
|
|
||||||
];
|
|
||||||
|
|
||||||
var grouped = {};
|
|
||||||
brands.forEach(function (b) {
|
|
||||||
var l = b[0].toUpperCase();
|
|
||||||
if (!grouped[l]) grouped[l] = [];
|
|
||||||
grouped[l].push(b);
|
|
||||||
});
|
|
||||||
|
|
||||||
var letters = Object.keys(grouped).sort();
|
|
||||||
|
|
||||||
var alphaEl = document.getElementById("ns-mfr-alpha");
|
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").forEach(function (l) {
|
|
||||||
var a = document.createElement("a");
|
|
||||||
a.href = grouped[l] ? "#ns-mfr-" + l : "#";
|
|
||||||
a.textContent = l;
|
|
||||||
if (!grouped[l]) a.className = "ns-empty";
|
|
||||||
alphaEl.appendChild(a);
|
|
||||||
});
|
|
||||||
|
|
||||||
var groupsEl = document.getElementById("ns-mfr-groups");
|
|
||||||
letters.forEach(function (l) {
|
|
||||||
var sec = document.createElement("div");
|
|
||||||
sec.className = "ns-mfr-group";
|
|
||||||
sec.id = "ns-mfr-" + l;
|
|
||||||
|
|
||||||
var hdr = document.createElement("div");
|
|
||||||
hdr.className = "ns-mfr-letter-head";
|
|
||||||
hdr.textContent = l;
|
|
||||||
sec.appendChild(hdr);
|
|
||||||
|
|
||||||
var list = document.createElement("div");
|
|
||||||
list.className = "ns-mfr-list";
|
|
||||||
grouped[l].forEach(function (b) {
|
|
||||||
var item = document.createElement("div");
|
|
||||||
item.className = "ns-mfr-item";
|
|
||||||
var name = document.createElement("div");
|
|
||||||
name.className = "ns-mfr-name";
|
|
||||||
name.textContent = b;
|
|
||||||
item.appendChild(name);
|
|
||||||
list.appendChild(item);
|
|
||||||
});
|
|
||||||
|
|
||||||
sec.appendChild(list);
|
|
||||||
groupsEl.appendChild(sec);
|
|
||||||
});
|
|
||||||
|
|
||||||
document.getElementById("ns-mfr-count").textContent =
|
|
||||||
brands.length + " manufacturers listed";
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- ============ PROLOGY MODAL WEB COMPONENTS ============ -->
|
|
||||||
<prology-sell-modal id="wc-sell-modal"></prology-sell-modal>
|
|
||||||
<prology-source-modal id="wc-source-modal"></prology-source-modal>
|
|
||||||
<prology-quote-modal id="wc-quote-modal"></prology-quote-modal>
|
|
||||||
<prology-enquire-modal id="wc-enquire-modal"></prology-enquire-modal>
|
|
||||||
|
|
||||||
<!-- ============ STORE PICKER MODAL ============ -->
|
|
||||||
<div
|
|
||||||
class="store-modal-overlay"
|
|
||||||
id="store-modal-overlay"
|
|
||||||
role="dialog"
|
|
||||||
aria-modal="true"
|
|
||||||
aria-labelledby="store-modal-title"
|
|
||||||
>
|
|
||||||
<div class="store-modal-box">
|
|
||||||
<button
|
|
||||||
class="store-modal-close"
|
|
||||||
onclick="closeStoreModal()"
|
|
||||||
aria-label="Close"
|
|
||||||
>
|
|
||||||
✕
|
|
||||||
</button>
|
|
||||||
<p class="store-modal-title" id="store-modal-title">
|
|
||||||
Choose Your Store
|
|
||||||
</p>
|
|
||||||
<p class="store-modal-subtitle">
|
|
||||||
Select a region to browse our products
|
|
||||||
</p>
|
|
||||||
<div class="store-options">
|
|
||||||
<a data-store="au" class="store-option store-option--active">
|
|
||||||
<span class="store-flag">
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 60 30"
|
|
||||||
width="52"
|
|
||||||
height="28"
|
|
||||||
>
|
|
||||||
<rect width="60" height="30" fill="#00205B" />
|
|
||||||
<line
|
|
||||||
x1="0"
|
|
||||||
y1="0"
|
|
||||||
x2="30"
|
|
||||||
y2="15"
|
|
||||||
stroke="#fff"
|
|
||||||
stroke-width="5"
|
|
||||||
/>
|
|
||||||
<line
|
|
||||||
x1="30"
|
|
||||||
y1="0"
|
|
||||||
x2="0"
|
|
||||||
y2="15"
|
|
||||||
stroke="#fff"
|
|
||||||
stroke-width="5"
|
|
||||||
/>
|
|
||||||
<line
|
|
||||||
x1="0"
|
|
||||||
y1="0"
|
|
||||||
x2="30"
|
|
||||||
y2="15"
|
|
||||||
stroke="#CC2529"
|
|
||||||
stroke-width="3"
|
|
||||||
/>
|
|
||||||
<line
|
|
||||||
x1="30"
|
|
||||||
y1="0"
|
|
||||||
x2="0"
|
|
||||||
y2="15"
|
|
||||||
stroke="#CC2529"
|
|
||||||
stroke-width="3"
|
|
||||||
/>
|
|
||||||
<rect x="12" y="0" width="6" height="15" fill="#fff" />
|
|
||||||
<rect x="0" y="6" width="30" height="6" fill="#fff" />
|
|
||||||
<rect x="13.5" y="0" width="3" height="15" fill="#CC2529" />
|
|
||||||
<rect x="0" y="7.5" width="30" height="3" fill="#CC2529" />
|
|
||||||
<polygon
|
|
||||||
points="7.5,17 8.3,19.5 11,19.5 8.8,21.2 9.6,23.7 7.5,22 5.4,23.7 6.2,21.2 4,19.5 6.7,19.5"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="44,3 44.8,5.5 47.5,5.5 45.3,7.2 46.1,9.7 44,8 41.9,9.7 42.7,7.2 40.5,5.5 43.2,5.5"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="52,8 52.6,10 54.7,10 53,11.3 53.6,13.3 52,12 50.4,13.3 51,11.3 49.3,10 51.4,10"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="44,15 44.6,17 46.7,17 45,18.3 45.6,20.3 44,19 42.4,20.3 43,18.3 41.3,17 43.4,17"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="37,9 37.6,11 39.7,11 38,12.3 38.6,14.3 37,13 35.4,14.3 36,12.3 34.3,11 36.4,11"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
<polygon
|
|
||||||
points="50,18 50.4,19.2 51.6,19.2 50.6,20 51,21.2 50,20.4 49,21.2 49.4,20 48.4,19.2 49.6,19.2"
|
|
||||||
fill="#fff"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</span>
|
|
||||||
<div class="store-info">
|
|
||||||
<div class="store-info-name">
|
|
||||||
Australia Store <span class="store-badge-active">Live</span>
|
|
||||||
</div>
|
|
||||||
<div class="store-info-desc">
|
|
||||||
Enterprise networking equipment · Ships Australia-wide
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="store-arrow">→</span>
|
|
||||||
</a>
|
|
||||||
<a data-store="us" class="store-option store-option--active">
|
|
||||||
<span class="store-flag">
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 60 30"
|
|
||||||
width="52"
|
|
||||||
height="28"
|
|
||||||
>
|
|
||||||
<rect width="60" height="30" fill="#B22234" />
|
|
||||||
<rect y="2.31" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="6.92" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="11.54" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="16.15" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="20.77" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect y="25.38" width="60" height="2.31" fill="#fff" />
|
|
||||||
<rect width="24" height="16.15" fill="#3C3B6E" />
|
|
||||||
<g fill="#fff">
|
|
||||||
<circle cx="2.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="6.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="10.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="14.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="18.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="22.5" cy="1.6" r="1.1" />
|
|
||||||
<circle cx="4.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="8.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="12.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="16.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="20.5" cy="4.6" r="1.1" />
|
|
||||||
<circle cx="2.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="6.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="10.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="14.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="18.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="22.5" cy="7.6" r="1.1" />
|
|
||||||
<circle cx="4.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="8.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="12.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="16.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="20.5" cy="10.6" r="1.1" />
|
|
||||||
<circle cx="2.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="6.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="10.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="14.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="18.5" cy="13.6" r="1.1" />
|
|
||||||
<circle cx="22.5" cy="13.6" r="1.1" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
</span>
|
|
||||||
<div class="store-info">
|
|
||||||
<div class="store-info-name">
|
|
||||||
U.S.A Store <span class="store-badge-active">Live</span>
|
|
||||||
</div>
|
|
||||||
<div class="store-info-desc">
|
|
||||||
Enterprise networking equipment · North American distribution
|
|
||||||
hub
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="store-arrow">→</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer class="page-footer" role="contentinfo"></footer>
|
|
||||||
<script src="assets/js/footer.js" defer></script>
|
|
||||||
<script src="assets/js/chat.js" defer></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,74 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
|
|
||||||
<url>
|
<url>
|
||||||
<loc>https://prology.net/</loc>
|
<loc>https://prology.net/</loc>
|
||||||
<lastmod>2026-05-26</lastmod>
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://prology.net/"/>
|
||||||
|
<xhtml:link rel="alternate" hreflang="en-au" href="https://prology.net/au/"/>
|
||||||
|
<xhtml:link rel="alternate" hreflang="en-us" href="https://prology.net/us/"/>
|
||||||
|
<lastmod>2026-05-13</lastmod>
|
||||||
<changefreq>weekly</changefreq>
|
<changefreq>weekly</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
|
||||||
<url>
|
</urlset>
|
||||||
<loc>https://prology.net/#home</loc>
|
|
||||||
<lastmod>2026-05-22</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.9</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://prology.net/#services</loc>
|
|
||||||
<lastmod>2026-05-22</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://prology.net/#quality</loc>
|
|
||||||
<lastmod>2026-05-22</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://prology.net/#who-we-serve</loc>
|
|
||||||
<lastmod>2026-05-25</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://prology.net/#institutional</loc>
|
|
||||||
<lastmod>2026-05-22</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://prology.net/#contact</loc>
|
|
||||||
<lastmod>2026-05-22</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://prology.net/about-us.html</loc>
|
|
||||||
<lastmod>2026-05-26</lastmod>
|
|
||||||
<changefreq>monthly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://prology.net/manufacturers-list.html</loc>
|
|
||||||
<lastmod>2026-05-26</lastmod>
|
|
||||||
<changefreq>monthly</changefreq>
|
|
||||||
<priority>0.7</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://prology.net/privacy-policy-cookie-restriction-mode.html</loc>
|
|
||||||
<lastmod>2026-05-26</lastmod>
|
|
||||||
<changefreq>yearly</changefreq>
|
|
||||||
<priority>0.5</priority>
|
|
||||||
</url>
|
|
||||||
|
|
||||||
</urlset>
|
|
||||||
|
|
|
||||||
14
sitemap.xml
14
sitemap.xml
|
|
@ -4,25 +4,19 @@
|
||||||
<!-- Landing page -->
|
<!-- Landing page -->
|
||||||
<sitemap>
|
<sitemap>
|
||||||
<loc>https://prology.net/sitemap-home.xml</loc>
|
<loc>https://prology.net/sitemap-home.xml</loc>
|
||||||
<lastmod>2026-05-26</lastmod>
|
<lastmod>2026-05-13</lastmod>
|
||||||
</sitemap>
|
</sitemap>
|
||||||
|
|
||||||
<!-- AU Magento store -->
|
<!-- AU Magento store -->
|
||||||
<sitemap>
|
<sitemap>
|
||||||
<loc>https://prology.net/au/sitemap.xml</loc>
|
<loc>https://prology.net/au/sitemap.xml</loc>
|
||||||
<lastmod>2026-05-22</lastmod>
|
<lastmod>2026-05-13</lastmod>
|
||||||
</sitemap>
|
</sitemap>
|
||||||
|
|
||||||
<!-- US Magento store -->
|
<!-- US Magento store -->
|
||||||
<sitemap>
|
<sitemap>
|
||||||
<loc>https://prology.net/us/sitemap.xml</loc>
|
<loc>https://prology.net/us/sitemap.xml</loc>
|
||||||
<lastmod>2026-05-22</lastmod>
|
<lastmod>2026-05-13</lastmod>
|
||||||
</sitemap>
|
</sitemap>
|
||||||
|
|
||||||
<!-- Prology Blogs -->
|
</sitemapindex>
|
||||||
<sitemap>
|
|
||||||
<loc>https://prology.net/blog/sitemap_index.xml</loc>
|
|
||||||
<lastmod>2026-07-01</lastmod>
|
|
||||||
</sitemap>
|
|
||||||
|
|
||||||
</sitemapindex>
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue