(function($){
'use strict';
$(document).on('click', '#itc-request-quote-btn', function(e){
e.preventDefault();
var results=ITCMeltingCalculator.getLastResults();
if(results){
$('#itc-quote-calc-results').val(JSON.stringify(results));
}
$('#itc-quote-modal').addClass('itc-modal--active');
$('body').addClass('itc-modal-open');
});
$(document).on('submit', '#itc-quote-form', function(e){
e.preventDefault();
var $form=$(this);
var $submitBtn=$form.find('.itc-modal__submit');
var $feedback=$form.find('.itc-quote-feedback');
var name=$form.find('[name="itc-quote-name"]').val().trim();
var email=$form.find('[name="itc-quote-email"]').val().trim();
if(!name||!email){
$feedback.html('<div class="itc-error">Please provide your name and email.</div>');
return;
}
if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)){
$feedback.html('<div class="itc-error">Please enter a valid email address.</div>');
return;
}
$submitBtn.prop('disabled', true).text('Sending...');
$feedback.html('');
$.ajax({
url: itcCalcConfig.ajaxUrl,
type: 'POST',
data: {
action: 'itc_send_quote',
nonce: itcCalcConfig.nonce,
name: name,
email: email,
phone: $form.find('[name="itc-quote-phone"]').val(),
company: $form.find('[name="itc-quote-company"]').val(),
message: $form.find('[name="itc-quote-message"]').val(),
calc_results: $form.find('#itc-quote-calc-results').val(),
},
success: function(response){
if(response.success){
$feedback.html('<div class="itc-success">' + response.data.message + '</div>');
$form[0].reset();
setTimeout(function(){
closeModal();
}, 3000);
}else{
$feedback.html('<div class="itc-error">' + response.data.message + '</div>');
}},
error: function(){
var results=JSON.parse($form.find('#itc-quote-calc-results').val()||'{}');
var body=buildMailtoBody(results, $form);
window.location.href='mailto:sales@inductiontech.com?subject='
+ encodeURIComponent('Melting Calculator Quote Request')
+ '&body=' + encodeURIComponent(body);
$feedback.html('<div class="itc-error">Opening your email client as a fallback. If nothing happens, please email sales@inductiontech.com directly.</div>');
},
complete: function(){
$submitBtn.prop('disabled', false).text('Send Quote Request');
}});
});
function buildMailtoBody(results, $form){
var lines=[];
lines.push('Quote Request from ' + $form.find('[name="itc-quote-name"]').val());
lines.push('Email: ' + $form.find('[name="itc-quote-email"]').val());
var phone=$form.find('[name="itc-quote-phone"]').val();
if(phone) lines.push('Phone: ' + phone);
var company=$form.find('[name="itc-quote-company"]').val();
if(company) lines.push('Company: ' + company);
lines.push('');
lines.push('--- Calculation Results ---');
if(results.material) lines.push('Material: ' + results.material);
if(results.massKg) lines.push('Weight: ' + results.massKg + ' kg (' + results.massLbs + ' lbs)');
if(results.tStartC!==undefined) lines.push('Start Temp: ' + results.tStartC + '\u00B0C');
if(results.tTargetC!==undefined) lines.push('Target Temp: ' + results.tTargetC + '\u00B0C');
if(results.energyActualKwh) lines.push('Energy Required: ' + results.energyActualKwh + ' kWh');
if(results.meltTimeMinutes) lines.push('Est. Melt Time: ' + results.meltTimeMinutes + ' min');
if(results.recommendedPowerKW) lines.push('Recommended Power: ' + results.recommendedPowerKW + ' kW');
if(results.furnaceProductLine) lines.push('Recommended Furnace: ' + results.furnaceProductLine);
if(results.costPerMelt) lines.push('Cost per Melt: $' + results.costPerMelt);
var message=$form.find('[name="itc-quote-message"]').val();
if(message){
lines.push('');
lines.push('Additional Details:');
lines.push(message);
}
return lines.join('\n');
}
function closeModal(){
$('#itc-quote-modal').removeClass('itc-modal--active');
$('body').removeClass('itc-modal-open');
}
$(document).on('click', '.itc-modal__close, .itc-modal__overlay', closeModal);
$(document).on('keydown', function(e){
if(e.key==='Escape') closeModal();
});
})(jQuery);