| 1 |
jQuery(document).ready(function($){ |
| 2 |
$('.frm_ajax_loading').css('visibility', 'hidden'); |
| 3 |
|
| 4 |
$(document).on('click', '.frm_trigger', frmToggleSection); |
| 5 |
if($('.frm_blank_field').length){ |
| 6 |
$('.frm_blank_field').closest('.frm_toggle_container').prev('.frm_trigger').click(); |
| 7 |
} |
| 8 |
|
| 9 |
if($.isFunction($.fn.placeholder)){ |
| 10 |
$('.frm-show-form input, .frm-show-form textarea').placeholder(); |
| 11 |
}else{ |
| 12 |
jQuery('.frm-show-form input[onblur], .frm-show-form textarea[onblur]').each(function(){ |
| 13 |
if(jQuery(this).val() === '' ){ |
| 14 |
jQuery(this).blur(); |
| 15 |
} |
| 16 |
}); |
| 17 |
} |
| 18 |
|
| 19 |
$(document).on('click', '.frm-show-form input[name^="item_meta"][type="radio"], .frm-show-form input[name^="item_meta"][type="checkbox"]', frmMaybeCheckDependent); |
| 20 |
$(document).on('change', '.frm-show-form input[name^="item_meta"]:not([type=radio], [type=checkbox]), .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]', frmMaybeCheckDependent); |
| 21 |
$(document).on('click', '.frm-show-form input[type="submit"], .frm-show-form input[name="frm_prev_page"], .frm-show-form .frm_save_draft', frmSetNextPage); |
| 22 |
$(document).on('click', '.frm_remove_link', frmRemoveDiv); |
| 23 |
}); |
| 24 |
|
| 25 |
function frmSetNextPage(e){ |
| 26 |
if(jQuery(this).attr('type') != 'submit') |
| 27 |
e.preventDefault(); |
| 28 |
|
| 29 |
var f = jQuery(this).parents('form:first'); |
| 30 |
var v = ''; |
| 31 |
var d = ''; |
| 32 |
|
| 33 |
if(jQuery(this).attr('name') == 'frm_prev_page' || jQuery(this).hasClass('frm_prev_page')){ |
| 34 |
v = jQuery(f).find('.frm_next_page').attr('id').replace('frm_next_p_', ''); |
| 35 |
}else if(jQuery(this).attr('name') == 'frm_save_draft' || jQuery(this).hasClass('frm_save_draft')){ |
| 36 |
d = 1; |
| 37 |
} |
| 38 |
|
| 39 |
jQuery('.frm_next_page').val(v); |
| 40 |
jQuery('.frm_saving_draft').val(d); |
| 41 |
|
| 42 |
if(jQuery(this).attr('type') != 'submit') |
| 43 |
f.trigger('submit'); |
| 44 |
} |
| 45 |
|
| 46 |
function frmToggleSection(){ |
| 47 |
jQuery(this).next('.frm_toggle_container').slideToggle('fast'); |
| 48 |
jQuery(this).toggleClass('active').children('.ui-icon-triangle-1-e, .ui-icon-triangle-1-s').toggleClass('ui-icon-triangle-1-s ui-icon-triangle-1-e'); |
| 49 |
} |
| 50 |
|
| 51 |
function frmClearDefault(default_value,thefield){ |
| 52 |
var v = default_value.replace(/(\n|\r\n)/g, '\r'); |
| 53 |
var this_val=jQuery(thefield).val().replace(/(\n|\r\n)/g, '\r'); |
| 54 |
if(this_val == v){ |
| 55 |
jQuery(thefield).removeClass('frm_default').val(''); |
| 56 |
} |
| 57 |
} |
| 58 |
|
| 59 |
function frmReplaceDefault(default_value,thefield){ |
| 60 |
var v = default_value.replace(/(\n|\r\n)/g, '\r'); |
| 61 |
if(jQuery(thefield).val() === ''){ |
| 62 |
jQuery(thefield).addClass('frm_default').val(v); |
| 63 |
} |
| 64 |
} |
| 65 |
|
| 66 |
function frmMaybeCheckDependent(){ |
| 67 |
var field_id = jQuery(this).attr('name').replace('item_meta[', '').split(']')[0]; |
| 68 |
if(field_id){ |
| 69 |
frmCheckDependent('und',field_id); |
| 70 |
} |
| 71 |
} |
| 72 |
|
| 73 |
function frmCheckDependent(selected,field_id,rec){ |
| 74 |
if(typeof(__FRMRULES) == 'undefined'){ |
| 75 |
return; |
| 76 |
} |
| 77 |
var all_rules=__FRMRULES; |
| 78 |
var rules = all_rules[field_id]; |
| 79 |
if(typeof(rules)=='undefined') return; |
| 80 |
|
| 81 |
if (typeof(rec) == 'undefined' || rec === null) { |
| 82 |
//stop recursion? |
| 83 |
rec = 'go'; |
| 84 |
} |
| 85 |
|
| 86 |
var this_opts = []; |
| 87 |
for(var i=0;i<rules.length;i++){ |
| 88 |
var rule=rules[i]; |
| 89 |
if(typeof(rule)!='undefined'){ |
| 90 |
for(var j=0;j<rule.Conditions.length;j++){ |
| 91 |
var c=rule.Conditions[j]; |
| 92 |
c.HideField=rule.Setting.FieldName; |
| 93 |
c.MatchType=rule.MatchType; |
| 94 |
c.Show=rule.Show; |
| 95 |
this_opts.push(c); |
| 96 |
} |
| 97 |
} |
| 98 |
} |
| 99 |
var show_fields = []; |
| 100 |
var hide_later = []; |
| 101 |
var len=this_opts.length; |
| 102 |
for(i=0; i<len; i++){ |
| 103 |
(function(i){ |
| 104 |
var f=this_opts[i]; |
| 105 |
if(typeof(show_fields[f.HideField]) == 'undefined') |
| 106 |
show_fields[f.HideField] = []; |
| 107 |
|
| 108 |
if(f.FieldName!=field_id || typeof(selected)=='undefined' || selected=='und'){ |
| 109 |
var prevSel=selected; |
| 110 |
if(f.Type=='radio' || f.Type=='data-radio'){ |
| 111 |
selected=jQuery("input[name='item_meta["+f.FieldName+"]']:checked, input[type='hidden'][name='item_meta["+f.FieldName+"]']").val(); |
| 112 |
}else if(f.Type=='select' || f.Type=='data-select'){ |
| 113 |
selected=jQuery("select[name^='item_meta["+f.FieldName+"]'], input[type='hidden'][name^='item_meta["+f.FieldName+"]']").val(); |
| 114 |
if(jQuery("input[type='hidden'][name^='item_meta["+f.FieldName+"]']").length){ |
| 115 |
selected = []; |
| 116 |
jQuery("input[type='hidden'][name^='item_meta["+f.FieldName+"]']").each(function(){ |
| 117 |
selected.push(jQuery(this).val()); |
| 118 |
}); |
| 119 |
} |
| 120 |
}else if(f.Type !='checkbox' && f.Type !='data-checkbox'){ |
| 121 |
selected=jQuery("input[name^='item_meta["+f.FieldName+"]']").val(); |
| 122 |
} |
| 123 |
} |
| 124 |
|
| 125 |
if(typeof(selected)=='undefined'){ |
| 126 |
selected=jQuery("input[type=hidden][name^='item_meta["+f.FieldName+"]']").val(); |
| 127 |
if(typeof(selected)=='undefined') selected=''; |
| 128 |
} |
| 129 |
|
| 130 |
if(f.Type=='checkbox' || (f.Type=='data-checkbox' && typeof(f.LinkedField)=='undefined')){ |
| 131 |
show_fields[f.HideField][i]=false; |
| 132 |
jQuery("input[name='item_meta["+f.FieldName+"][]']:checked, input[type='hidden'][name^='item_meta["+f.FieldName+"]']").each(function(){ |
| 133 |
var match=frmOperators(f.Condition,f.Value,jQuery(this).val()); |
| 134 |
if(show_fields[f.HideField][i] === false && match) |
| 135 |
show_fields[f.HideField][i] = true; |
| 136 |
}); |
| 137 |
}else if(f.Type=='data-radio'){ |
| 138 |
if(typeof(f.DataType) == 'undefined' || f.DataType === '' || f.DataType === 'data'){ |
| 139 |
if(selected === ''){ |
| 140 |
show_fields[f.HideField][i]=false; |
| 141 |
jQuery('#frm_field_'+f.HideField+'_container').fadeOut('slow'); |
| 142 |
jQuery('#frm_data_field_'+f.HideField+'_container').html(''); |
| 143 |
}else{ |
| 144 |
if(typeof(f.DataType)=='undefined') show_fields[f.HideField][i]=frmOperators(f.Condition,f.Value,selected); |
| 145 |
else show_fields[f.HideField][i]={'funcName':'frmGetData','f':f,'sel':selected}; |
| 146 |
} |
| 147 |
}else{ |
| 148 |
if(selected === ''){ |
| 149 |
show_fields[f.HideField][i]=false; |
| 150 |
}else{ |
| 151 |
show_fields[f.HideField][i]={'funcName':'frmGetDataOpts','f':f,'sel':selected}; |
| 152 |
} |
| 153 |
} |
| 154 |
}else if(f.Type=='data-checkbox' && typeof(f.LinkedField)!='undefined'){ |
| 155 |
var checked_vals = []; |
| 156 |
jQuery("input[name='item_meta["+f.FieldName+"][]']:checked, input[type='hidden'][name='item_meta["+f.FieldName+"][]']").each(function(){checked_vals.push(jQuery(this).val());}); |
| 157 |
if(typeof(f.DataType) == 'undefined' || f.DataType === '' || f.DataType === 'data'){ |
| 158 |
if(checked_vals.length){ |
| 159 |
show_fields[f.HideField][i]=true; |
| 160 |
jQuery('#frm_data_field_'+f.HideField+'_container').html(''); |
| 161 |
frmGetData(f,checked_vals,1); |
| 162 |
//jQuery.each(checked_vals, function(ckey,cval){frmGetData(f,cval,1); }); |
| 163 |
}else{ |
| 164 |
show_fields[f.HideField][i]=false; |
| 165 |
jQuery('#frm_field_'+f.HideField+'_container').fadeOut('slow'); |
| 166 |
jQuery('#frm_data_field_'+f.HideField+'_container').html(''); |
| 167 |
} |
| 168 |
}else{ |
| 169 |
if(checked_vals.length){ |
| 170 |
show_fields[f.HideField][i] = {'funcName':'frmGetDataOpts','f':f,'sel':checked_vals}; |
| 171 |
}else{ |
| 172 |
show_fields[f.HideField][i] = false; |
| 173 |
} |
| 174 |
} |
| 175 |
}else if(f.Type=='data-select' && typeof(f.LinkedField)!='undefined'){ |
| 176 |
if(f.DataType === '' || f.DataType == 'data'){ |
| 177 |
if(selected === ''){ |
| 178 |
show_fields[f.HideField][i]=false; jQuery('#frm_data_field_'+f.HideField+'_container').html(''); |
| 179 |
}else if(selected && jQuery.isArray(selected)){ |
| 180 |
show_fields[f.HideField][i]=true; |
| 181 |
jQuery('#frm_data_field_'+f.HideField+'_container').html(''); |
| 182 |
frmGetData(f,selected,1); |
| 183 |
}else{ |
| 184 |
show_fields[f.HideField][i]={'funcName':'frmGetData','f':f,'sel':selected}; |
| 185 |
} |
| 186 |
}else{ |
| 187 |
if(selected === ''){ |
| 188 |
show_fields[f.HideField][i]=false; |
| 189 |
}else{ |
| 190 |
show_fields[f.HideField][i]={'funcName':'frmGetDataOpts','f':f,'sel':selected}; |
| 191 |
} |
| 192 |
} |
| 193 |
}else{ |
| 194 |
if(typeof(f.Value)=='undefined' && f.Type.indexOf('data') === 0){ |
| 195 |
if(selected === '') f.Value='1'; |
| 196 |
else f.Value=selected; |
| 197 |
show_fields[f.HideField][i]=frmOperators(f.Condition,f.Value,selected); |
| 198 |
f.Value=undefined; |
| 199 |
}else{ |
| 200 |
show_fields[f.HideField][i]=frmOperators(f.Condition,f.Value,selected); |
| 201 |
} |
| 202 |
} |
| 203 |
|
| 204 |
if(f.FieldName!=field_id){ |
| 205 |
selected = prevSel; |
| 206 |
} |
| 207 |
if(f.MatchType=='any'){ |
| 208 |
if(show_fields[f.HideField][i] !== false){ |
| 209 |
if(f.Show=='show'){ |
| 210 |
if(show_fields[f.HideField][i] !== true){ |
| 211 |
frmShowField(show_fields[f.HideField][i],f.FieldName,rec); |
| 212 |
}else{ |
| 213 |
jQuery('#frm_field_'+f.HideField+'_container').show(); |
| 214 |
} |
| 215 |
}else{ |
| 216 |
jQuery('#frm_field_'+f.HideField+'_container').hide(); |
| 217 |
} |
| 218 |
}else{ |
| 219 |
hide_later.push({'result':show_fields[f.HideField][i],'show':f.Show,'match':'any','fname':f.FieldName,'fkey':f.HideField}); |
| 220 |
} |
| 221 |
}else if(f.MatchType=='all'){ |
| 222 |
hide_later.push({'result':show_fields[f.HideField][i],'show':f.Show,'match':'all','fname':f.FieldName,'fkey':f.HideField}); |
| 223 |
} |
| 224 |
|
| 225 |
if(i==(len-1)){ |
| 226 |
jQuery.each(hide_later, function(hkey,hvalue){ |
| 227 |
if(typeof(hvalue)!='undefined' && typeof(hvalue.result)!='undefined'){ |
| 228 |
if((hvalue.match=='any' && (jQuery.inArray(true, show_fields[hvalue.fkey]) == -1)) || (hvalue.match=='all' && (jQuery.inArray(false, show_fields[hvalue.fkey]) > -1))){ |
| 229 |
if(hvalue.show=='show'){ |
| 230 |
jQuery('#frm_field_'+hvalue.fkey+'_container:hidden').hide(); |
| 231 |
jQuery('#frm_field_'+hvalue.fkey+'_container').hide(); |
| 232 |
}else{ |
| 233 |
jQuery('#frm_field_'+hvalue.fkey+'_container').show(); |
| 234 |
} |
| 235 |
}else{ |
| 236 |
if(hvalue.show=='show'){ |
| 237 |
jQuery('#frm_field_'+hvalue.fkey+'_container').show(); |
| 238 |
}else{ |
| 239 |
jQuery('#frm_field_'+hvalue.fkey+'_container:hidden').hide(); |
| 240 |
jQuery('#frm_field_'+hvalue.fkey+'_container').hide(); |
| 241 |
} |
| 242 |
} |
| 243 |
if(typeof(hvalue.result) !== false && typeof(hvalue.result) !==true){ |
| 244 |
frmShowField(hvalue.result,hvalue.fname,rec); |
| 245 |
} |
| 246 |
delete hide_later[hkey]; |
| 247 |
} |
| 248 |
}); |
| 249 |
} |
| 250 |
})(i); |
| 251 |
} |
| 252 |
} |
| 253 |
|
| 254 |
function frmOperators(op,a,b){ |
| 255 |
if(typeof(b) == 'undefined') b=''; |
| 256 |
if(jQuery.isArray(b) && jQuery.inArray(a,b) > -1) b = a; |
| 257 |
if(String(a).search(/^\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*$/) != -1){ |
| 258 |
a=parseFloat(a); |
| 259 |
b=parseFloat(b); |
| 260 |
} |
| 261 |
if(String(a).indexOf('"') != '-1' && frmOperators(op,a.replace('"', '"'),b)) |
| 262 |
return true; |
| 263 |
var operators = { |
| 264 |
'==': function(c,d){ return c == d; }, |
| 265 |
'!=': function(c,d){ return c != d; }, |
| 266 |
'<': function(c,d){ return c > d; }, |
| 267 |
'>': function(c,d){ return c < d; }, |
| 268 |
'LIKE': function(c,d){ |
| 269 |
if(!d){ |
| 270 |
/* If no value, then assume no match */ |
| 271 |
return 0; |
| 272 |
} |
| 273 |
return d.indexOf(c) != -1; |
| 274 |
}, |
| 275 |
'not LIKE': function(c,d){ |
| 276 |
if(!d){ |
| 277 |
/* If no value, then assume no match */ |
| 278 |
return 1; |
| 279 |
} |
| 280 |
return d.indexOf(c) == -1; |
| 281 |
} |
| 282 |
}; |
| 283 |
return operators[op](a,b); |
| 284 |
} |
| 285 |
|
| 286 |
function frmShowField(funcInfo,field_id,rec){ |
| 287 |
if(funcInfo.funcName=='frmGetDataOpts'){frmGetDataOpts(funcInfo.f,funcInfo.sel,field_id,rec);} |
| 288 |
else if(funcInfo.funcName=='frmGetData'){frmGetData(funcInfo.f,funcInfo.sel,0);} |
| 289 |
} |
| 290 |
|
| 291 |
function frmGetData(f,selected,append){ |
| 292 |
if(!append) |
| 293 |
jQuery('#frm_data_field_'+f.HideField+'_container').html('<span class="frm-loading-img"></span>'); |
| 294 |
jQuery.ajax({ |
| 295 |
type:"POST",url:frm_js.ajax_url, |
| 296 |
data:"action=frm_fields_ajax_get_data&entry_id="+selected+"&field_id="+f.LinkedField+"¤t_field="+f.HideField, |
| 297 |
success:function(html){ |
| 298 |
if(html !== '') jQuery('#frm_field_'+f.HideField+'_container').show(); |
| 299 |
if(append){jQuery('#frm_data_field_'+f.HideField+'_container').append(html);} |
| 300 |
else{ |
| 301 |
jQuery('#frm_data_field_'+f.HideField+'_container').html(html); |
| 302 |
var val=jQuery('#frm_data_field_'+f.HideField+'_container').children('input').val(); |
| 303 |
if(html === '' || val === '') jQuery('#frm_field_'+f.HideField+'_container').hide(); |
| 304 |
frmCheckDependent(selected,f.HideField); |
| 305 |
} |
| 306 |
return true; |
| 307 |
} |
| 308 |
}); |
| 309 |
} |
| 310 |
|
| 311 |
function frmGetDataOpts(f,selected,field_id,rec){ |
| 312 |
if(typeof(frm_checked_dep) == 'undefined'){ |
| 313 |
frm_checked_dep = []; |
| 314 |
} |
| 315 |
|
| 316 |
//don't check the same field twice when more than a 2-level dependency, and parent is not on this page |
| 317 |
if(rec == 'stop' && (jQuery.inArray(f.HideField, frm_checked_dep) > -1) && jQuery("input[type='hidden'][name^='item_meta["+field_id+"]']").length){ |
| 318 |
return; |
| 319 |
} |
| 320 |
|
| 321 |
var prev = []; |
| 322 |
if(f.DataType=='checkbox' || f.DataType=='radio'){ |
| 323 |
jQuery("input[name^='item_meta["+f.HideField+"]']:checked, input[type='hidden'][name^='item_meta["+f.HideField+"]']").each(function(){prev.push(jQuery(this).val());}); |
| 324 |
}else if(f.DataType=='select'){ |
| 325 |
if(jQuery("input[type='hidden'][name^='item_meta["+f.HideField+"]']").length){ |
| 326 |
jQuery("input[type='hidden'][name^='item_meta["+f.HideField+"]']").each(function(){ |
| 327 |
prev.push(jQuery(this).val()); |
| 328 |
}); |
| 329 |
}else if(jQuery("select[name^='item_meta["+f.HideField+"]']").length){ |
| 330 |
prev = jQuery("select[name^='item_meta["+f.HideField+"]']").val(); |
| 331 |
}else if((rec == 'stop' || jQuery('#frm_data_field_'+f.HideField+'_container .frm-loading-img').length) && (jQuery.inArray(f.HideField, frm_checked_dep) > -1)){ |
| 332 |
return; |
| 333 |
} |
| 334 |
}else{ |
| 335 |
prev.push(jQuery("input[name^='item_meta["+f.HideField+"]']").val()); |
| 336 |
} |
| 337 |
if(prev === null || prev.length === 0) prev = ''; |
| 338 |
|
| 339 |
frm_checked_dep.push(f.HideField); |
| 340 |
|
| 341 |
//don't get values for fields that are to remain hidden on the page |
| 342 |
if(!jQuery('#frm_data_field_'+f.HideField+'_container').length && jQuery("input[type='hidden'][name^='item_meta["+f.HideField+"]']").length){ |
| 343 |
frmCheckDependent(prev,f.HideField,'stop'); |
| 344 |
return false; |
| 345 |
} |
| 346 |
|
| 347 |
jQuery('#frm_data_field_'+f.HideField+'_container').html('<span class="frm-loading-img" style="visibility:visible;display:inline;"></span>'); |
| 348 |
|
| 349 |
jQuery.ajax({ |
| 350 |
type:"POST",url:frm_js.ajax_url, |
| 351 |
data:"action=frm_fields_ajax_data_options&hide_field="+field_id+"&entry_id="+selected+"&selected_field_id="+f.LinkedField+"&field_id="+f.HideField, |
| 352 |
success:function(html){ |
| 353 |
if(html === ''){ |
| 354 |
jQuery('#frm_field_'+f.HideField+'_container').hide(); |
| 355 |
prev=''; |
| 356 |
}else if(f.MatchType!='all'){ |
| 357 |
jQuery('#frm_field_'+f.HideField+'_container').show(); |
| 358 |
} |
| 359 |
jQuery('#frm_data_field_'+f.HideField+'_container').html(html); |
| 360 |
|
| 361 |
if(html !== '' && prev !== ''){ |
| 362 |
if(!jQuery.isArray(prev)){ |
| 363 |
var new_prev = []; |
| 364 |
new_prev.push(prev); |
| 365 |
prev = new_prev; |
| 366 |
} |
| 367 |
|
| 368 |
//select options that were selected previously |
| 369 |
jQuery.each(prev, function(ckey,cval){ |
| 370 |
if(typeof(cval) != 'undefined'){ |
| 371 |
if(f.DataType == 'checkbox' || f.DataType == 'radio'){ |
| 372 |
jQuery("#field_"+f.HideField+"-"+cval).attr('checked','checked'); |
| 373 |
}else if(f.DataType == 'select'){ |
| 374 |
if(jQuery("select[name^='item_meta["+f.HideField+"]'] option[value="+cval+"]").length){ |
| 375 |
jQuery("select[name^='item_meta["+f.HideField+"]'] option[value="+cval+"]").prop('selected', true); |
| 376 |
}else{ |
| 377 |
prev.splice(ckey,1); //remove options that no longer exist |
| 378 |
} |
| 379 |
}else{ |
| 380 |
jQuery("input[name^='item_meta["+f.HideField+"]']").val(cval); |
| 381 |
} |
| 382 |
} |
| 383 |
}); |
| 384 |
} |
| 385 |
if(jQuery(html).hasClass('frm_chzn') && jQuery().chosen){ |
| 386 |
jQuery('.frm_chzn').chosen({allow_single_deselect:true}); |
| 387 |
} |
| 388 |
|
| 389 |
frmCheckDependent(prev,f.HideField,'stop'); |
| 390 |
} |
| 391 |
}); |
| 392 |
} |
| 393 |
|
| 394 |
function frmOnSubmit(e){ |
| 395 |
e.preventDefault(); |
| 396 |
if(jQuery(this).find('.wp-editor-wrap').length && typeof(tinyMCE) != 'undefined'){ |
| 397 |
tinyMCE.triggerSave(); |
| 398 |
} |
| 399 |
frmGetFormErrors(this); |
| 400 |
} |
| 401 |
|
| 402 |
function frmGetFormErrors(object){ |
| 403 |
jQuery(object).find('input[type="submit"], input[type="button"]').attr('disabled','disabled'); |
| 404 |
jQuery(object).find('.frm_ajax_loading').css('visibility', 'visible'); |
| 405 |
frm_checked_dep = []; |
| 406 |
var jump = ''; |
| 407 |
var newPos = 0; |
| 408 |
var cOff = 0; |
| 409 |
|
| 410 |
jQuery.ajax({ |
| 411 |
type:"POST",url:frm_js.ajax_url, |
| 412 |
data:jQuery(object).serialize()+"&action=frm_entries_"+jQuery(object).find('input[name="frm_action"]').val()+"&_ajax_nonce=1", |
| 413 |
success:function(errObj){ |
| 414 |
errObj=errObj.replace(/^\s+|\s+$/g,''); |
| 415 |
if(errObj.indexOf('{') === 0) |
| 416 |
errObj = jQuery.parseJSON(errObj); |
| 417 |
if(errObj === '' || !errObj || errObj === '0' || (typeof(errObj) != 'object' && errObj.indexOf('<!DOCTYPE') === 0)){ |
| 418 |
if(jQuery('#frm_loading').length){ |
| 419 |
var file_val=jQuery(object).find('input[type=file]').val(); |
| 420 |
if(typeof(file_val) != 'undefined' && file_val !== ''){ |
| 421 |
setTimeout(function(){jQuery('#frm_loading').fadeIn('slow');},2000); |
| 422 |
} |
| 423 |
} |
| 424 |
if(jQuery(object).find('#recaptcha_area').length && (jQuery(object).find('.frm_next_page').length < 1 || jQuery(object).find('.frm_next_page').val() < 1)) |
| 425 |
jQuery(object).find('#recaptcha_area').replaceWith(''); |
| 426 |
|
| 427 |
object.submit(); |
| 428 |
}else if(typeof(errObj) != 'object'){ |
| 429 |
jQuery(object).find('.frm_ajax_loading').css('visibility', 'hidden'); |
| 430 |
jump=jQuery(object).closest('#frm_form_'+jQuery(object).find('input[name="form_id"]').val()+'_container'); |
| 431 |
newPos=jump.offset().top; |
| 432 |
jump.replaceWith(errObj); |
| 433 |
cOff = document.documentElement.scrollTop || document.body.scrollTop; |
| 434 |
if(newPos && newPos > frm_js.offset && cOff > newPos){ |
| 435 |
jQuery(window).scrollTop(newPos-frm_js.offset); |
| 436 |
} |
| 437 |
if(typeof(frmThemeOverride_frmAfterSubmit) == 'function'){ |
| 438 |
var fin=jQuery(errObj).find('input[name="form_id"]').val(); |
| 439 |
var p = ''; |
| 440 |
if(fin) p = jQuery('input[name="frm_page_order_'+fin+'"]').val(); |
| 441 |
frmThemeOverride_frmAfterSubmit(fin,p,errObj,object); |
| 442 |
} |
| 443 |
if(jQuery(object).find('input[name="id"]').length){ |
| 444 |
var eid = jQuery(object).find('input[name="id"]').val(); |
| 445 |
jQuery('#frm_edit_'+eid).find('a').addClass('frm_ajax_edited').click(); |
| 446 |
} |
| 447 |
}else{ |
| 448 |
jQuery(object).find('input[type="submit"], input[type="button"]').removeAttr('disabled'); |
| 449 |
jQuery(object).find('.frm_ajax_loading').css('visibility', 'hidden'); |
| 450 |
|
| 451 |
//show errors |
| 452 |
var cont_submit=true; |
| 453 |
jQuery('.form-field').removeClass('frm_blank_field'); |
| 454 |
jQuery('.form-field .frm_error').replaceWith(''); |
| 455 |
jump = ''; |
| 456 |
var show_captcha = false; |
| 457 |
for (var key in errObj){ |
| 458 |
if(jQuery(object).find('#frm_field_'+key+'_container').length && jQuery('#frm_field_'+key+'_container').is(":visible")){ |
| 459 |
cont_submit=false; |
| 460 |
if(jump === ''){ |
| 461 |
frmScrollMsg(key, object); |
| 462 |
jump='#frm_field_'+key+'_container'; |
| 463 |
} |
| 464 |
if(jQuery(object).find('#frm_field_'+key+'_container #recaptcha_area').length){ |
| 465 |
show_captcha = true; |
| 466 |
Recaptcha.reload(); |
| 467 |
} |
| 468 |
jQuery(object).find('#frm_field_'+key+'_container').addClass('frm_blank_field'); |
| 469 |
if(typeof(frmThemeOverride_frmPlaceError) == 'function'){frmThemeOverride_frmPlaceError(key,errObj);} |
| 470 |
else{jQuery(object).find('#frm_field_'+key+'_container').append('<div class="frm_error">'+errObj[key]+'</div>');} |
| 471 |
}else if(key == 'redirect'){ |
| 472 |
window.location=errObj[key]; |
| 473 |
return; |
| 474 |
} |
| 475 |
} |
| 476 |
if(show_captcha !== true) jQuery(object).find('#recaptcha_area').replaceWith(''); |
| 477 |
if(cont_submit) object.submit(); |
| 478 |
} |
| 479 |
}, |
| 480 |
error:function(){ |
| 481 |
jQuery(object).find('input[type="submit"], input[type="button"]').removeAttr('disabled');object.submit(); |
| 482 |
} |
| 483 |
}); |
| 484 |
} |
| 485 |
|
| 486 |
function frmEditEntry(entry_id,prefix,post_id,form_id,cancel,hclass){ |
| 487 |
var label=jQuery('#frm_edit_'+entry_id).html(); |
| 488 |
var orig=jQuery('#'+prefix+entry_id).html(); |
| 489 |
jQuery('#'+prefix+entry_id).html('<span class="frm-loading-img" id="'+prefix+entry_id+'"></span><div class="frm_orig_content" style="display:none">'+orig+'</div>'); |
| 490 |
jQuery.ajax({ |
| 491 |
type:"POST",url:frm_js.ajax_url,dataType:"html", |
| 492 |
data:"action=frm_entries_edit_entry_ajax&post_id="+post_id+"&entry_id="+entry_id+"&id="+form_id, |
| 493 |
success:function(html){ |
| 494 |
jQuery('#'+prefix+entry_id).children('.frm-loading-img').replaceWith(html); |
| 495 |
jQuery('#frm_edit_'+entry_id).replaceWith('<span id="frm_edit_'+entry_id+'"><a onclick="frmCancelEdit('+entry_id+',\''+prefix+'\',\''+frm_escape_html(label)+'\','+post_id+','+form_id+',\''+hclass+'\')" class="'+hclass+'">'+cancel+'</a></span>'); |
| 496 |
} |
| 497 |
}); |
| 498 |
} |
| 499 |
|
| 500 |
function frmCancelEdit(entry_id,prefix,label,post_id,form_id,hclass){ |
| 501 |
var cancel=jQuery('#frm_edit_'+entry_id+' a').html(); |
| 502 |
if(!jQuery('#frm_edit_'+entry_id).find('a').hasClass('frm_ajax_edited')){ |
| 503 |
jQuery('#'+prefix+entry_id).children('.frm_forms').replaceWith(''); |
| 504 |
jQuery('#'+prefix+entry_id).children('.frm_orig_content').fadeIn('slow').removeClass('frm_orig_content'); |
| 505 |
} |
| 506 |
jQuery('#frm_edit_'+entry_id).replaceWith('<a id="frm_edit_'+entry_id+'" class="frm_edit_link '+hclass+'" href="javascript:frmEditEntry('+entry_id+',\''+prefix+'\','+post_id+','+form_id+',\''+frm_escape_html(cancel)+'\',\''+hclass+'\')">'+label+'</a>'); |
| 507 |
} |
| 508 |
|
| 509 |
function frmUpdateField(entry_id,field_id,value,message,num){ |
| 510 |
jQuery('#frm_update_field_'+entry_id+'_'+field_id).html('<span class="frm-loading-img"></span>'); |
| 511 |
jQuery.ajax({ |
| 512 |
type:"POST",url:frm_js.ajax_url, |
| 513 |
data:"action=frm_entries_update_field_ajax&entry_id="+entry_id+"&field_id="+field_id+"&value="+value, |
| 514 |
success:function(){ |
| 515 |
if(message.replace(/^\s+|\s+$/g,'') === ''){ |
| 516 |
jQuery('#frm_update_field_'+entry_id+'_'+field_id+'_'+num).fadeOut('slow'); |
| 517 |
}else{ |
| 518 |
jQuery('#frm_update_field_'+entry_id+'_'+field_id+'_'+num).replaceWith(message); |
| 519 |
} |
| 520 |
} |
| 521 |
}); |
| 522 |
} |
| 523 |
|
| 524 |
function frmDeleteEntry(entry_id,prefix){ |
| 525 |
jQuery('#frm_delete_'+entry_id).replaceWith('<span class="frm-loading-img" id="frm_delete_'+entry_id+'"></span>'); |
| 526 |
jQuery.ajax({ |
| 527 |
type:"POST",url:frm_js.ajax_url, |
| 528 |
data:"action=frm_entries_destroy&entry="+entry_id, |
| 529 |
success:function(html){ |
| 530 |
if(html.replace(/^\s+|\s+$/g,'') == 'success') |
| 531 |
jQuery('#'+prefix+entry_id).fadeOut('slow'); |
| 532 |
else |
| 533 |
jQuery('#frm_delete_'+entry_id).replaceWith(html); |
| 534 |
|
| 535 |
} |
| 536 |
}); |
| 537 |
} |
| 538 |
|
| 539 |
function frmRemoveDiv(){ |
| 540 |
jQuery(this).parent('.frm_uploaded_files').fadeOut('slow').replaceWith(''); |
| 541 |
} |
| 542 |
|
| 543 |
function frmNextUpload(obj,id){ |
| 544 |
obj.wrap('<div class="frm_file_names frm_uploaded_files">'); |
| 545 |
var files = obj.get(0).files; |
| 546 |
for (var i = 0; i < files.length; i++){ |
| 547 |
if(files.length == 1){ |
| 548 |
obj.after(files[i].name+' <a href="#" onclick="frmClearFile(jQuery(this));return false;">'+frm_js.remove+'</a>'); |
| 549 |
} else { |
| 550 |
obj.after(files[i].name +'<br/>'); |
| 551 |
} |
| 552 |
} |
| 553 |
obj.hide(); |
| 554 |
jQuery('#frm_field_'+id+'_container .frm_uploaded_files:last').after('<input name="file'+id+'[]" multiple="multiple" type="file" onchange="frmNextUpload(jQuery(this),'+id+')"/>'); |
| 555 |
} |
| 556 |
|
| 557 |
function frmClearFile(file){ |
| 558 |
file.parent('.frm_file_names').replaceWith(''); |
| 559 |
return false; |
| 560 |
} |
| 561 |
|
| 562 |
function frm_resend_email(entry_id,form_id){ |
| 563 |
jQuery('#frm_resend_email').replaceWith('<img id="frm_resend_email" src="'+ frm_js.images_url +'/wpspin_light.gif" alt="'+ frm_js.loading +'" />'); |
| 564 |
jQuery.ajax({ |
| 565 |
type:"POST",url:frm_js.ajax_url, |
| 566 |
data:"action=frm_entries_send_email&entry_id="+entry_id+"&form_id="+form_id+"&type=email", |
| 567 |
success:function(msg){ jQuery('#frm_resend_email').replaceWith(msg);} |
| 568 |
}); |
| 569 |
} |
| 570 |
|
| 571 |
function frmScrollMsg(id, object){ |
| 572 |
if(typeof(object) == 'undefined'){ |
| 573 |
var newPos = jQuery('#frm_form_'+id+'_container').offset().top; |
| 574 |
}else{ |
| 575 |
var newPos = jQuery(object).find('#frm_field_'+id+'_container').offset().top; |
| 576 |
} |
| 577 |
|
| 578 |
if(!newPos){ |
| 579 |
return; |
| 580 |
} |
| 581 |
newPos = newPos-frm_js.offset; |
| 582 |
|
| 583 |
var m=jQuery('html').css('margin-top'); |
| 584 |
var b=jQuery('body').css('margin-top'); |
| 585 |
if(m || b){ |
| 586 |
newPos=newPos-parseInt(m)-parseInt(b); |
| 587 |
} |
| 588 |
|
| 589 |
cOff = document.documentElement.scrollTop || document.body.scrollTop; |
| 590 |
if(newPos && (!cOff || cOff > newPos)){ |
| 591 |
jQuery(window).scrollTop(newPos); |
| 592 |
} |
| 593 |
} |
| 594 |
|
| 595 |
function frm_escape_html(text){ |
| 596 |
return text |
| 597 |
.replace(/&/g, "&") |
| 598 |
.replace(/</g, "<") |
| 599 |
.replace(/>/g, ">") |
| 600 |
.replace(/"/g, """) |
| 601 |
.replace(/'/g, "'"); |
| 602 |
} |
| 603 |
|
| 604 |
jQuery.fn.frmVisible = function() { |
| 605 |
return this.css('visibility', 'visible'); |
| 606 |
}; |
| 607 |
|
| 608 |
jQuery.fn.frmInvisible = function() { |
| 609 |
return this.css('visibility', 'hidden'); |
| 610 |
}; |
| 611 |
|
| 612 |
jQuery.fn.frmVisibilityToggle = function() { |
| 613 |
return this.css('visibility', function(i, visibility) { |
| 614 |
return (visibility == 'visible') ? 'hidden' : 'visible'; |
| 615 |
}); |
| 616 |
}; |
| 617 |
|