Cavity Slider Price Calculator
Select System:
Enter door Height (mm):
Enter door Width (mm):
Choose Configuration:
Add Soft-close mechanism (optional):
Total Price (excl. GST): AUD 0.00
Company Details
Premium65 Single
for 2040x820 door
- Powder-coated top track
- Architrave / P50-shadowline or Gyprock reveals – finishes available
- Supports doors up to 65 kg
Premium65 Double
for 2040x820 door
- Powder-coated top track
- Architrave / P50-shadowline or Gyprock reveals – finishes available
- Supports doors up to 65 kg
Premium125 Single
for 2040x820 door
- Powder-coated top track
- Architrave / P50-shadowline or Gyprock reveals – finishes available
- Supports doors up to 120 kg
- Supports Soft close mechanism
Premium125 Double
for 2040x820 door
- Powder-coated top track
- Architrave / P50-shadowline or Gyprock reveals – finishes available
- Supports doors up to 125 kg
- Supports Soft close mechanism
Image Gallery
Image Gallery
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Cavity Slider Price Calculator</title>
<style>
body {
font-family: ‘Montserrat’, sans-serif;
}
label {
display: block;
margin: 5px;
}
img {
vertical-align: middle;
width: 100px;
height: 100px;
}
input[type=”radio”] {
margin-right: 5px;
}
#doorTypeContainer, #softCloseContainer {
border: 1px solid #ccc;
padding: 10px;
margin-top: 5px;
margin-bottom: 20px;
}
select, input[type=”number”], input[type=”text”], input[type=”tel”], input[type=”email”], button {
width: 100%;
padding: 8px;
margin-top: 5px;
}
table {
border-collapse: collapse;
width: 100%;
margin-top: 20px;
}
th, td {
border: 1px solid #ccc;
padding: 8px;
text-align: left;
}
#companyRequestForm {
display: none; /* Hide the company request form initially */
}
#result {
font-size: 1.5em;
}
</style>
<link href=”https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap” rel=”stylesheet”>
<script type=”text/javascript” src=”https://cdn.jsdelivr.net/npm/@emailjs/browser@3/dist/email.min.js”></script>
<script type=”text/javascript”>
emailjs.init(‘BOjyQwIMosZZ_ESXr’);
window.onload = function() {
updateDoorTypes(); // Show door types immediately
updateSoftCloseOptions(); // Show soft close options immediately
};
function updateDoorTypes() {
var system = document.getElementById(“system”).value;
var doorTypeContainer = document.getElementById(“doorTypeContainer”);
var options = [
{ name: “Single”, url: “https://premiumslidingdoors.com.au/wp-content/uploads/2018/08/Single-e1534923907760.jpg” },
{ name: “Double”, url: “https://premiumslidingdoors.com.au/wp-content/uploads/2018/08/Double-e1534924016185.jpg” },
{ name: “Corner Meeting”, url: “https://premiumslidingdoors.com.au/wp-content/uploads/2018/08/corner-e1534924073742.jpg” },
{ name: “Telescopic 2 doors”, url: “https://premiumslidingdoors.com.au/wp-content/uploads/2018/08/Telescopic-e1534924102657.jpg” },
{ name: “Telescopic 3 Doors”, url: “https://premiumslidingdoors.com.au/wp-content/uploads/2018/08/Telescopic-3-doors-e1534924125629.jpg” }
];
doorTypeContainer.innerHTML = “”; // Clear previous options
options.forEach(function(option, index) {
var label = document.createElement(“label”);
var radioInput = document.createElement(“input”);
radioInput.type = “radio”;
radioInput.name = “doorType”;
radioInput.value = option.name;
radioInput.id = “doorType” + index;
radioInput.disabled = system === “Premium 65” && option.name.includes(“Telescopic”);
radioInput.onclick = updateSoftCloseOptions; // Update soft close options when type is selected
var image = document.createElement(“img”);
image.src = option.url;
label.appendChild(radioInput);
label.appendChild(image);
label.appendChild(document.createTextNode(option.name));
doorTypeContainer.appendChild(label);
});
}
function updateSoftCloseOptions() {
var system = document.getElementById(“system”).value;
var doorType = document.querySelector(‘input[name=”doorType”]:checked’);
if (!doorType) return; // Return if no door type is selected
var softCloseContainer = document.getElementById(“softCloseContainer”);
var softCloseOptions = {
“Premium 65”: [“None”],
“Premium 125”: [“None”, “for Premium 125 (35-60 kg) Soft-close only”, “for Premium 125 (35-60 kg) Soft-close and soft-open”],
“Premium 150”: [“None”, “for Premium 150 (60-100 Kg)”, “for Premium 150 (100-150 Kg)”]
};
softCloseContainer.innerHTML = “”; // Clear previous options
var options = softCloseOptions[system].slice(); // Copy array
if (doorType.value === “Double” || doorType.value === “Corner Meeting”) {
options = options.map(function(option) {
return option + ” (x2)”;
});
}
options.forEach(function(option, index) {
var label = document.createElement(“label”);
var radioInput = document.createElement(“input”);
radioInput.type = “radio”;
radioInput.name = “softClose”;
radioInput.value = option;
radioInput.id = “softClose” + index;
radioInput.checked = index === 0; // Default to ‘None’
label.appendChild(radioInput);
label.appendChild(document.createTextNode(option));
softCloseContainer.appendChild(label);
});
}
function calculatePrice() {
var system = document.getElementById(“system”).value;
var doorType = document.querySelector(‘input[name=”doorType”]:checked’);
var softCloseOptions = document.querySelector(‘input[name=”softClose”]:checked’);
if (!doorType || !softCloseOptions) {
alert(“Please select a door type and soft-close option.”);
return;
}
var height = parseInt(document.getElementById(“height”).value);
var width = parseInt(document.getElementById(“width”).value);
var area = height * width / 1000000; // Convert to square meters
var price = 0;
// Calculate price based on system and selected type
switch (system + ” ” + doorType.value) {
case “Premium 65 Single”:
price = (height == 2040 ? 225 : 240); // Simple example calculation
break;
case “Premium 65 Double”:
case “Premium 65 Corner Meeting”:
price = (height == 2040 ? 450 : 480); // Simple example calculation
break;
case “Premium 125 Single”:
price = 202 * area;
break;
case “Premium 125 Double”:
case “Premium 125 Corner Meeting”:
price = 408.04 * area + 22.5;
break;
case “Premium 125 Telescopic 2 doors”:
price = 505 * area + 45; // Adjusted for telescopic doors
break;
case “Premium 125 Telescopic 3 Doors”:
price = 661.70 * area + 45; // Adjusted for telescopic doors
break;
case “Premium 150 Single”:
price = 333.30 * area;
break;
case “Premium 150 Corner Meeting”:
case “Premium 150 Double”:
price = 673.27 * area + 22.5;
break;
case “Premium 150 Telescopic 2 doors”:
price = 833.25 * area ; // Adjusted for telescopic doors
break;
case “Premium 150 Telescopic 3 Doors”:
price = 1101.56 * area; // Adjusted for more doors
break;
}
// Add price for soft close options
if (softCloseOptions.value.includes(“60-100 Kg”)) {
price += 98 * (doorType.value === “Double” || doorType.value === “Corner Meeting” ? 2 : 1);
} else if (softCloseOptions.value.includes(“100-150 Kg”)) {
price += 110.25 * (doorType.value === “Double” || doorType.value === “Corner Meeting” ? 2 : 1);
} else if (softCloseOptions.value.includes(“Soft-close only”)) {
price += 49 * (doorType.value === “Double” || doorType.value === “Corner Meeting” ? 2 : 1);
} else if (softCloseOptions.value.includes(“Soft-close and soft-open”)) {
price += 69 * (doorType.value === “Double” || doorType.value === “Corner Meeting” ? 2 : 1);
}
// Display stud opening dimensions and thickness
var studOpeningHeight, studOpeningWidth, studThickness;
switch (system + ” ” + doorType.value) {
case “Premium 65 Single”:
case “Premium 65 Corner Meeting”:
studOpeningHeight = parseInt(height) + 55;
studOpeningWidth = parseInt(width) * 2 + 10;
studThickness = “90-92 mm”;
break;
case “Premium 65 Double”:
studOpeningHeight = parseInt(height) + 55;
studOpeningWidth = parseInt(width) * 4 – 10;
studThickness = “90-92 mm”;
break;
case “Premium 125 Single”:
case “Premium 125 Corner Meeting”:
studOpeningHeight = parseInt(height) + 65;
studOpeningWidth = parseInt(width) * 2 + 10;
studThickness = “76 or 90-92 mm”;
break;
case “Premium 125 Double”:
studOpeningHeight = parseInt(height) + 65;
studOpeningWidth = parseInt(width) * 4 – 10;
studThickness = “76 or 90-92 mm”;
break;
case “Premium 125 Telescopic 2 doors”:
studOpeningHeight = parseInt(height) + 70;
studOpeningWidth = parseInt(width) * 3 – 115;
studThickness = “142 mm”;
break;
case “Premium 125 Telescopic 3 Doors”:
studOpeningHeight = parseInt(height) + 70;
studOpeningWidth = parseInt(width) * 4 – 195;
studThickness = “193 mm”;
break;
case “Premium 150 Single”:
case “Premium 150 Corner Meeting”:
studOpeningHeight = parseInt(height) + 85;
studOpeningWidth = parseInt(width) * 2 + 10;
studThickness = “90-92 mm”;
break;
case “Premium 150 Double”:
studOpeningHeight = parseInt(height) + 85;
studOpeningWidth = parseInt(width) * 4 – 10;
studThickness = “90-92 mm”;
break;
case “Premium 150 Telescopic 2 doors”:
studOpeningHeight = parseInt(height) + 90;
studOpeningWidth = parseInt(width) * 3 – 115;
studThickness = “142 mm”;
break;
case “Premium 150 Telescopic 3 Doors”:
studOpeningHeight = parseInt(height) + 90;
studOpeningWidth = parseInt(width) * 4 – 195;
studThickness = “193 mm”;
break;
}
var studOpeningMessage = “Stud Opening: ” + studOpeningHeight + “mm x ” + studOpeningWidth + “mm, Stud Thickness: ” + studThickness;
document.getElementById(“studOpening”).innerHTML = studOpeningMessage;
// Show the company request form
document.getElementById(“companyRequestForm”).style.display = “block”;
// Update the price display
document.getElementById(“result”).innerHTML = “Total Price (excl. GST): AUD ” + price.toFixed(2);
}
function sendEmail() {
var companyDetails = {
companyName: document.getElementById(“companyName”).value,
contactName: document.getElementById(“contactName”).value,
phoneNumber: document.getElementById(“phoneNumber”).value,
emailAddress: document.getElementById(“emailAddress”).value,
deliveryAddress: document.getElementById(“deliveryAddress”).value,
comments: document.getElementById(“comments”).value
};
var doorType = document.querySelector(‘input[name=”doorType”]:checked’);
var softCloseOptions = document.querySelector(‘input[name=”softClose”]:checked’);
var emailContent = {
system: document.getElementById(“system”).value,
doorType: doorType ? doorType.value : “Not Selected”,
softCloseOptions: softCloseOptions ? softCloseOptions.value : “Not Selected”,
height: document.getElementById(“height”).value,
width: document.getElementById(“width”).value,
comments: companyDetails.comments
};
var templateParams = {
company_name: companyDetails.companyName,
contact_name: companyDetails.contactName,
phone_number: companyDetails.phoneNumber,
email_address: companyDetails.emailAddress,
delivery_address: companyDetails.deliveryAddress,
system: emailContent.system,
door_type: emailContent.doorType,
soft_close_options: emailContent.softCloseOptions,
height: emailContent.height,
width: emailContent.width,
comments: emailContent.comments
};
emailjs.send(“service_unuzuwd”, “template_zm4gv09”, templateParams)
.then(function(response) {
console.log(“SUCCESS!”, response.status, response.text);
document.getElementById(“emailSentMessage”).innerHTML = “Thank you for your enquiry. We will reply shortly.”;
}, function(error) {
console.log(“FAILED…”, error);
document.getElementById(“emailSentMessage”).innerHTML = “Failed to send email. Error: ” + error.text;
});
return false;
}
</script>
</head>
<body>
<h1>Cavity Slider Price Calculator</h1>
<p>Select System:</p>
<select id=”system” onchange=”updateDoorTypes()”>
<option value=”Premium 65″>Premium 65</option>
<option value=”Premium 125″>Premium 125</option>
<option value=”Premium 150″>Premium 150</option>
</select>
<p>Enter door Height (mm):</p>
<input type=”number” id=”height” value=”2040″>
<p>Enter door Width (mm):</p>
<input type=”number” id=”width” value=”820″>
<p>Choose Configuration:</p>
<div id=”doorTypeContainer”>
<!– Radio buttons for door types with images will be populated here –>
</div>
<p>Add Soft-close mechanism (optional):</p>
<div id=”softCloseContainer”>
<!– Radio buttons for soft close options will be populated here –>
</div>
<button onclick=”calculatePrice()”>Calculate Price</button>
<p id=”result”>Total Price (excl. GST): AUD 0.00</p>
<p id=”studOpening”></p>
<!– Company request form –>
<div id=”companyRequestForm”>
<h2>Company Details</h2>
<form onsubmit=”return sendEmail();”>
<label for=”companyName”>Company Name:</label>
<input type=”text” id=”companyName” required>
<label for=”contactName”>Contact Name:</label>
<input type=”text” id=”contactName” required>
<label for=”phoneNumber”>Phone Number:</label>
<input type=”tel” id=”phoneNumber” required>
<label for=”emailAddress”>Email Address:</label>
<input type=”email” id=”emailAddress” required>
<label for=”deliveryAddress”>Delivery Address:</label>
<input type=”text” id=”deliveryAddress” required>
<label for=”comments”>Comments:</label>
<input type=”text” id=”comments”>
<button type=”submit”>Send Request</button>
</form>
<!– Message after sending email –>
<div id=”emailSentMessage”></div>
</div>
</body>
</html>