(function ($) { $.fn.italawAiInjectData = function(data) { try { var rawJson = data.replace(/```json|```/g, "").trim(); var metadata = JSON.parse(rawJson); $.each(metadata, function(field_name, value) { var elements = $('[name^="' + field_name + '[und]"], [name*="[' + field_name + '][und]"]'); // 1. DATA SANITIZATION & YELLOW AUDIT LOGIC var isEmpty = false; var cleanArr = []; var stringValue = ""; if (!value || value === "null" || value === "YYYY-MM-DD") { isEmpty = true; } else if ($.isArray(value)) { // Strip out hallucinated objects (target_ids) and keep only real text $.each(value, function(i, v) { if (typeof v === 'string' && v.trim() !== '') cleanArr.push(v.trim()); }); if (cleanArr.length === 0) { isEmpty = true; } else { stringValue = cleanArr.join(", "); } } else if (typeof value === 'object') { isEmpty = true; // Failsafe against bare objects } else { stringValue = String(value).trim(); if (stringValue === "") isEmpty = true; } // 2. APPLY YELLOW AUDIT if (isEmpty) { elements.each(function() { var $emptyEl = $(this); if ($emptyEl.is('select')) { $emptyEl.find('option').removeAttr('selected'); $emptyEl.val(''); } else if ($emptyEl.is(':checkbox, :radio')) { $emptyEl.removeAttr('checked'); } else { $emptyEl.val(''); } $emptyEl.closest('.form-item').css("background-color", "#fff9c4"); // Light yellow }); return; // Skip normal processing } // 3. PROCEED WITH INJECTION AND COLOR BLUE elements.each(function() { var $el = $(this); var elName = $el.attr('name') || ""; // HANDLE DATE DROPDOWNS if ($el.is('select') && (elName.indexOf('[year]') > -1 || elName.indexOf('[month]') > -1 || elName.indexOf('[day]') > -1)) { var dateParts = stringValue.split('-'); if (dateParts.length === 3) { if (elName.indexOf('[year]') > -1) { $el.val(dateParts[0]).trigger('change').closest('.form-item').css("background-color", "#e8f0fe"); } if (elName.indexOf('[month]') > -1) { $el.val(parseInt(dateParts[1], 10).toString()).trigger('change').closest('.form-item').css("background-color", "#e8f0fe"); } if (elName.indexOf('[day]') > -1) { $el.val(parseInt(dateParts[2], 10).toString()).trigger('change').closest('.form-item').css("background-color", "#e8f0fe"); } } return; } // HANDLE CHECKBOXES & RADIOS if ($el.is(':checkbox, :radio')) { var chkValues = $.isArray(value) ? cleanArr : [stringValue]; var elVal = $el.val(); var parentText = $el.parent().text().replace(/^[- ]+/, '').trim(); if ($.inArray(elVal, chkValues) > -1 || $.inArray(parentText, chkValues) > -1) { $el.attr('checked', 'checked').trigger('change'); $el.closest('.form-item').css("background-color", "#e8f0fe"); } } // HANDLE SELECT LISTS else if ($el.is('select')) { $el.find('option').removeAttr('selected'); // Hard clear first $el.val(''); // Drupal fallback clear var selValues = $.isArray(value) ? cleanArr : [stringValue]; var matchedAny = false; $el.find('option').each(function() { var optText = $(this).text().replace(/^[- ]+/, '').trim(); if ($.inArray(optText, selValues) > -1 || $.inArray($(this).val(), selValues) > -1) { $(this).attr('selected', 'selected'); matchedAny = true; } }); if (matchedAny) { $el.trigger('change').closest('.form-item').css("background-color", "#e8f0fe"); } } // HANDLE TEXT, TEXTAREAS & AUTOCOMPLETE else { $el.val(stringValue).closest('.form-item').css("background-color", "#e8f0fe"); // WYSIWYG / CKEditor Hook for Case Summary if (typeof CKEDITOR !== 'undefined') { for (var instance in CKEDITOR.instances) { if (elName.indexOf(instance) > -1 || $el.attr('id') === instance) { CKEDITOR.instances[instance].setData(stringValue); } } } } }); }); alert('Sovereign Audit Complete. Please verify blue and yellow highlighted fields.'); } catch (e) { alert("Injection Failure. Check the Forensic Log field for the raw data."); var errorMsg = "JAVASCRIPT ERROR: " + e.message + "\n\nRAW AI OUTPUT:\n" + data; $('textarea[name*="field_forensic_ai_log"]').val(errorMsg).css("border", "2px solid red"); } }; })(jQuery);