if(!window.gfFormJsLoaded){
window.gfFormJsLoaded=true;
console.log("gf-test.js version 8");
var REASON_FIELD_NUM=21;
var FIELDS_TO_HIDE_NUMS=[
22,
5,
20,
10,
13,
8,
23,
15,
24,
25 
];
function normalize(s){
return (s||"").toString().replace(/\s+/g, " ").trim().toLowerCase();
}
function fieldWrapId(formId, fieldNum){
return "field_" + formId + "_" + fieldNum;
}
function ensureMessage($form, formId){
var $=window.jQuery;
var messageId="pw_property_damage_message_" + formId;
var $message=$("#" + messageId);
if($message.length) return $message;
$message=$(
'<div id="' + messageId + '" class="gfield gfield--width-full" style="' +
"display:none;" +
"grid-column:1 / -1;" +
"width:100%;" +
"max-width:100%;" +
"box-sizing:border-box;" +
"padding:18px 20px;" +
"border:1px solid #ddd;" +
"border-radius:8px;" +
"margin:16px 0;" +
"font-size:16px;" +
"line-height:1.5;" +
"white-space:normal;" +
'">' +
'Click here to submit a property damage claim. ' +
'<a href="https://www.prioritywaste.com/contact/report-damage/" target="_blank" rel="noopener noreferrer">' +
"Report Property Damage" +
"</a>" +
"</div>"
);
var $reasonFieldWrap=$("#field_" + formId + "_21");
if($reasonFieldWrap.length){
$reasonFieldWrap.after($message);
}else{
$form.find(".gform_fields").prepend($message);
}
return $message;
}
function applyRules(formId){
var $=window.jQuery;
if(!$) return;
var $form=$("#gform_" + formId);
if(!$form.length) return;
var $reason=$("#input_" + formId + "_" + REASON_FIELD_NUM);
if(!$reason.length) return;
var selectedText=normalize($reason.find("option:selected").text());
var selectedVal=normalize($reason.val());
var isPropertyDamage =
selectedText==="property damage" ||
selectedVal==="property damage" ||
selectedText.includes("property damage") ||
selectedVal.includes("property damage");
var $message=ensureMessage($form, formId);
if(isPropertyDamage){
FIELDS_TO_HIDE_NUMS.forEach(function (fieldNum){
$("#" + fieldWrapId(formId, fieldNum)).hide();
});
$form.find(".gform_footer, .gform_page_footer").hide();
$message.show();
}else{
FIELDS_TO_HIDE_NUMS.forEach(function (fieldNum){
$("#" + fieldWrapId(formId, fieldNum)).show();
});
$form.find(".gform_footer, .gform_page_footer").show();
$message.hide();
}}
function bindForForm(formId){
applyRules(formId);
var $=window.jQuery;
var reasonSelector="#input_" + formId + "_" + REASON_FIELD_NUM;
$(document).off("change.pwPD_" + formId, reasonSelector);
$(document).on("change.pwPD_" + formId, reasonSelector, function (){
applyRules(formId);
});
setTimeout(function (){ applyRules(formId); }, 250);
setTimeout(function (){ applyRules(formId); }, 1000);
}
(function boot(){
var $=window.jQuery;
if(!$){
console.warn("jQuery not found — cannot run GF UI logic.");
return;
}
$(document).on("gform_post_render", function (event, formId){
bindForForm(formId);
});
$(document).on("gform_page_loaded", function (event, formId){
bindForForm(formId);
});
$(function (){
$("form[id^='gform_']").each(function (){
var id=$(this).attr("id");
var formId=parseInt(id.replace("gform_", ""), 10);
if(!isNaN(formId)) bindForForm(formId);
});
});
})();
}
(function (){
function getReasonFromUrl(){
const params=new URLSearchParams(window.location.search);
let reason=(params.get("reason")||"").trim();
if(!reason) return "";
const map={
"Property Damage": "Property Damage",
"Cart Damage": "Curbside Cart (Damage/Replacement)",
"Curbside Cart Damage": "Curbside Cart (Damage/Replacement)",
"Curbside Cart (Damage/Replacement)": "Curbside Cart (Damage/Replacement)"
};
return (map[reason]||reason).trim();
}
function findReasonSelectByLabel(){
const labels=Array.from(document.querySelectorAll("label"));
const reasonLabel=labels.find(l=> (l.textContent||"").trim().toLowerCase()==="reason");
if(!reasonLabel) return null;
const forId=reasonLabel.getAttribute("for");
if(forId){
const el=document.getElementById(forId);
if(el&&el.tagName==="SELECT") return el;
}
const fieldWrap=reasonLabel.closest(".gfield")||reasonLabel.parentElement;
if(!fieldWrap) return null;
const sel=fieldWrap.querySelector("select");
return sel||null;
}
function setSelectByOptionText(selectEl, desiredText){
const desiredLower=desiredText.toLowerCase();
const opt=Array.from(selectEl.options).find(o=>
((o.textContent||"").trim().toLowerCase()===desiredLower)
);
if(!opt) return false;
selectEl.value=opt.value;
selectEl.dispatchEvent(new Event("input", { bubbles: true }));
selectEl.dispatchEvent(new Event("change", { bubbles: true }));
return true;
}
function forceReason(){
const desired=getReasonFromUrl();
if(!desired) return;
const sel=findReasonSelectByLabel();
if(!sel) return;
setSelectByOptionText(sel, desired);
const desiredLower=desired.toLowerCase();
let attempts=0;
const maxAttempts=20;
const interval=setInterval(()=> {
attempts++;
const currentText=(sel.options[sel.selectedIndex]?.textContent||"").trim().toLowerCase();
if(currentText!==desiredLower){
setSelectByOptionText(sel, desired);
}
if(attempts >=maxAttempts) clearInterval(interval);
}, 150);
}
document.addEventListener("DOMContentLoaded", ()=> {
setTimeout(forceReason, 200);
});
document.addEventListener("gform_post_render", ()=> {
setTimeout(forceReason, 200);
});
})();