PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 1.07.11
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v1.07.11
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / js / formidable.js

formidable.js in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 1.07.11, at js/formidable.js

617 lines 22.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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('&quot;') != '-1' && frmOperators(op,a.replace('&quot;', '"'),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+"&current_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, "&amp;")
598 .replace(/</g, "&lt;")
599 .replace(/>/g, "&gt;")
600 .replace(/"/g, "&quot;")
601 .replace(/'/g, "&#039;");
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