'); });
}
function bindSettings(index){
$('#wmf-field-settings-body').find('[data-setting]').off('input change').on('input change',function(){
var k=$(this).data('setting'),v=$(this).is(':checkbox')?($(this).is(':checked')?'1':'0'):$(this).val();
fields[index][k]=v;
$('.wmf-canvas-field[data-index="'+index+'"]').replaceWith(buildRow(fields[index],index));
updateHighlight();
});
$(document).off('change.ct').on('change.ct','[data-setting="conditional_logic"]',function(){
$(this).closest('.wmf-field-setting').nextAll('.wmf-conditional-rules').first().toggle($(this).val()==='1');
});
}
function initOptsEditor(index){
var field=fields[index];
if(['select','checkbox','radio'].indexOf(field.type)===-1) return;
var $body=$('#wmf-field-settings-body');
var $w=$('
');
$body.append($w);
function render(){
var $l=$w.find('.wmf-opts-list').empty();
$.each(field.options||[],function(i,opt){
var $r=$('');
$r.find('.ol').on('input',function(){ field.options[i].label=$(this).val(); fields[index]=field; });
$r.find('.ov').on('input',function(){ field.options[i].value=$(this).val(); fields[index]=field; });
$r.find('.wmf-opt-del').on('click',function(){ field.options.splice(i,1); fields[index]=field; render(); });
$l.append($r);
});
}
render();
$w.find('.wmf-add-opt').on('click',function(){
if(!field.options) field.options=[];
var n=field.options.length+1; field.options.push({label:'Option '+n,value:'option_'+n});
fields[index]=field; render();
});
}
function initCondUI(index){
var $rl=$('.wmf-conditional-rule-list'); if(!$rl.length) return;
var opts='';
$.each(fields,function(i,f){ if(i!==index) opts+=''; });
$rl.find('.wmf-rule-field').each(function(){ var v=$(this).val(); $(this).html(opts); if(v) $(this).val(v); });
function sync(){
var r=[];
$rl.find('.wmf-rule-row').each(function(){
r.push({field:$(this).find('.wmf-rule-field').val(),operator:$(this).find('.wmf-rule-op').val(),value:$(this).find('.wmf-rule-value').val()});
});
fields[index].conditional_rules=r;
}
$(document).off('click.ar').on('click.ar','.wmf-add-rule',function(){
var $r=$('');
$rl.append($r); sync();
});
$(document).off('click.rr').on('click.rr','.wmf-rule-remove',function(){ $(this).closest('.wmf-rule-row').remove(); sync(); });
$(document).off('change.sr input.sr').on('change.sr input.sr','.wmf-rule-field,.wmf-rule-op,.wmf-rule-value',sync);
}
$(document).on('click','.wmf-field-del',function(e){
e.stopPropagation();
if(!confirm(WMF.i18n.confirm_delete)) return;
var idx=parseInt($(this).closest('.wmf-canvas-field').data('index'));
fields.splice(idx,1);
if(activeIndex===idx){ activeIndex=null; deselectField(); } else if(activeIndex>idx) activeIndex--;
renderCanvas(); initSortable();
});
function initSettingsClose(){
$('#wmf-field-settings-close').on('click',deselectField);
$('#wmf-delete-field-btn').on('click',function(){
if(activeIndex===null) return;
if(!confirm(WMF.i18n.confirm_delete)) return;
fields.splice(activeIndex,1); activeIndex=null; deselectField(); renderCanvas(); initSortable();
});
}
function initPalette(){
$(document).on('click','.wmf-palette-item',function(){ addField($(this).data('type')); });
$(document).on('dragstart','.wmf-palette-item',function(e){ e.originalEvent.dataTransfer.setData('text/plain',$(this).data('type')); });
var $cv=$('#wmf-canvas');
$cv.on('dragover',function(e){ e.preventDefault(); $cv.addClass('drag-over'); });
$cv.on('dragleave drop',function(){ $cv.removeClass('drag-over'); });
$cv.on('drop',function(e){ e.preventDefault(); var t=e.originalEvent.dataTransfer.getData('text/plain'); if(t) addField(t); });
}
function addField(type){
var def=getDef(type); if(!def) return;
var f=$.extend(true,{},def.defaults);
f.id='field_'+Math.random().toString(36).substr(2,8); f.name=f.id; f.label=def.label; f.step=0;
fields.push(f); activeIndex=fields.length-1;
renderCanvas(); initSortable(); selectField(activeIndex);
}
function initSortable(){
$('#wmf-field-list').sortable({
handle:'.wmf-drag-handle',placeholder:'wmf-canvas-field ui-sortable-placeholder',tolerance:'pointer',
update:function(){
var r=[];
$('#wmf-field-list .wmf-canvas-field').each(function(){ r.push(fields[parseInt($(this).data('index'))]); });
fields=r; activeIndex=null; renderCanvas(); deselectField();
}
});
}
$(document).on('change','.wmf-step-select',function(){
fields[parseInt($(this).data('index'))].step=parseInt($(this).val());
stepCount=calcSteps(); updateStepLabels();
});
function updateStepLabels(){
stepCount=calcSteps(); var $sl=$('#wmf-step-labels'); if(!$sl.length) return;
while($sl.find('input').length
');
}
}
function initMultiStepToggle(){
$('#wmf-multistep-toggle').on('change',function(){ multiStep=$(this).is(':checked'); renderCanvas(); });
$('#wmf-add-step-label').on('click',function(){ stepCount++; updateStepLabels(); });
}
function initTabs(){
$(document).on('click','.wmf-tab',function(){
var t=$(this).data('tab'),$p=$(this).closest('.wmf-panel,.wmf-panel-body');
$p.find('.wmf-tab').removeClass('active'); $p.find('.wmf-tab-pane').removeClass('active');
$(this).addClass('active'); $p.find('.wmf-tab-pane[data-tab="'+t+'"]').addClass('active');
});
}
function initFormSubmit(){
$('#wmf-builder-form').on('submit',function(){ $('#wmf-form-fields-json').val(JSON.stringify(fields)); });
}
function initPreview(){
$('#wmf-preview-btn').on('click',function(){
var $o=$('#wmf-preview-overlay'),$c=$('#wmf-preview-content');
$o.show(); $c.html('