PageSourceSearch

https://smartgaon.org/wp-content/plugins/custom-registration-form-…/public/js/script_rm_front.js

js smartgaon.org collected 2026-10-03 01:06:04 UTC 20,854 bytes, 610 lines download raw bytes

1/**
2 * FILE for all the javascript functionality for the front end of the plugin
3 */
4/* For front end OTP widget */
5var rm_ajax_url = rm_ajax.url;
6var rm_validation_attr = ['data-rm-valid-username','data-rm-valid-email'];
7var rm_js_data;
8
9function rmInitGoogleApi() {
10    var rm_init_map_containers = setInterval(function(){
11            if (typeof rmInitMap === 'function') {
12             var rm_all_maps = jQuery(".rm-map-controls-uninitialized");
13             var i;
14             var curr_id = '';
15             if(rm_all_maps.length>0) clearInterval(rm_init_map_containers);
16             for (i = 0; i < rm_all_maps.length; i++) { 
17                if(jQuery(rm_all_maps[i]).is(':visible')){
18                curr_id = rm_all_maps[i].getAttribute("id");
19                jQuery(rm_all_maps[i]).removeClass("rm-map-controls-uninitialized");
20                rmInitMap(curr_id);
21             }
22            }
23        }
24        }, 100);
25}
26
27// This is a dummy request to exchange cookies after auto login
28function rm_send_dummy_ajax_request(url){
29    var data = {'action' : 'rm_dummy_refresh'};
30    jQuery.post (rm_ajax_url, data, function(){
31        if(url)
32           window.location=url;
33        else{
34             //jQuery("#rm_ajax_login").hide();
35             //jQuery("#rm_ajax_after_login").show();
36        }
37    });            
38}
39
40function scroll_down_end(element) {
41
42    if (element.scrollTop + element.offsetHeight >= element.scrollHeight)
43    {
44        var div = jQuery(element).parent().siblings();
45        jQuery(div).children().removeAttr('disabled');
46
47    }
48    else
49    {
50    var text_height = jQuery(element).css('font-size').replace('px', '');
51        text_height = Math.ceil(parseInt(text_height));
52        var field_height = Math.floor(jQuery(element).height());
53        var line_per_field = Math.floor(jQuery(element).height() / text_height);
54        var text = jQuery(element).val();
55        var lines = text.split(/\r|\r\n|\n/);
56        var count = text.length;
57        
58        var count = count / field_height;
59        
60        var count = Math.floor(count);
61        
62        lines = lines.length;
63       count =count *line_per_field;
64        if (lines > count)
65            count = lines;
66     
67        if (count <= line_per_field)
68        {
69            count = 1;
70        }
71        
72        if ((count * field_height) <= field_height) {
73
74            var div = jQuery(element).parent().siblings();
75
76               jQuery(div).children().removeAttr('disabled');
77
78        }
79    }
80   
81}
82
83var rm_call_otp = function (event,elem,opType) {
84   
85    if (event.keyCode == 13 || opType=="submit") {
86
87        var otp_key_status = jQuery(elem + " #rm_otp_login #rm_otp_enter_otp .rm_otp_kcontact").is(":visible");
88        var user_key_status = jQuery(elem + " #rm_otp_login #rm_otp_enter_password .rm_otp_kcontact").is(":visible");
89        
90        var data = {
91            'action': 'rm_set_otp',
92            'rm_sec_nonce': rm_ajax.nonce,
93            'rm_otp_email': jQuery(elem + " #rm_otp_econtact").val(),
94            'rm_slug': 'rm_front_set_otp'
95        };
96        if (otp_key_status)
97        {
98            data.rm_otp_key = jQuery(elem + " #rm_otp_enter_otp .rm_otp_kcontact").val();
99        }else
100            if(user_key_status){
101                if(jQuery(elem + " #rm_rememberme").is(':checked'))
102                    data.rm_remember = 'yes';
103                data.rm_username = jQuery(elem + " #rm_username").val();
104                data.rm_user_key = jQuery(elem + " #rm_otp_enter_password .rm_otp_kcontact").val();
105            }
106            
107        jQuery(elem + " .rm_hide_when_loader").hide();
108        jQuery(elem + " .rm_loader").show();
109        jQuery.post(rm_ajax_url, data, function (response) {
110            jQuery(elem + " .rm_loader").hide();
111            jQuery(elem + " .rm_hide_when_loader").show();
112            var responseObj = jQuery.parseJSON(response);
113            if (responseObj.error == true) {
114                jQuery(elem + " #rm_otp_login .rm_f_notifications .rm_f_error").hide().html(responseObj.msg).slideDown('slow');
115                jQuery(elem + " #rm_otp_login .rm_f_notifications .rm_f_success").hide();
116                /*jQuery("#rm_otp_login " + responseObj.hide).hide('slow');*/
117            } else {
118                jQuery(elem + " #rm_otp_login .rm_f_notifications .rm_f_error").hide();
119                jQuery(elem + " #rm_otp_login .rm_f_notifications .rm_f_success").hide().html(responseObj.msg).slideDown('slow');
120                jQuery(elem + " #rm_otp_login " + responseObj.show).show();
121                jQuery(elem + " #rm_otp_login " + responseObj.hide).hide();
122
123                if(responseObj.username){
124                    jQuery(elem + " #rm_username").val(responseObj.username);
125                }else
126                    jQuery(elem + " #rm_username").val('');
127                
128                if (responseObj.reload) {
129                    location.reload();
130                }
131                
132                if (responseObj.redirect) {
133                    window.location = responseObj.redirect;
134                }
135                
136            }
137        });
138    }
139};
140
141/*All the functions to be hooked on the front end at document ready*/
142jQuery(document).ready(function () {
143    if(jQuery('#id_rm_tp_timezone').length > 0)
144       jQuery('#id_rm_tp_timezone').val(-new Date().getTimezoneOffset()/60);
145    var tab_container= jQuery('.rm_tabbing_container');
146    if(tab_container.length>0){
147        tab_container.tabs();
148    }
149    jQuery('.rm_terms_textarea').each(function () {
150        var a = jQuery(this).children('textarea');
151          if (a.length > 0)
152                scroll_down_end(a);
153       });
154       
155    jQuery(".rm_floating_action").click(function(){
156       jQuery(".rm_floating_box").toggle('medium');
157   });
158    
159    if(jQuery("#rm_f_mail_notification").length>0){
160        jQuery("#rm_f_mail_notification").show('fast', function () {
161            jQuery("#rm_f_mail_notification").fadeOut(3000);
162        });     
163    }
164
165//Code for async login
166/*
167    jQuery( document ).on( "click", ".rm_login_btn", function(event) {
168        var btnLbl = jQuery(this).val();
169        var formvalidid  = '';
170        if(jQuery("#rm_login_form_1").length){
171            formvalidid = 'rm_login_form_1';
172        } else if(jQuery("#rm_otp_form_1").length){
173            formvalidid = 'rm_otp_form_1';
174        }
175        if(validate_empty_required_fields(formvalidid)){
176            jQuery('.rm_login_btn').prop('disabled', true);
177            jQuery('.rm_login_btn').prop('value', '');
178            jQuery('.rm_login_btn').toggleClass('rm-login-btn-loader');
179            event.preventDefault();
180            var form = jQuery("#"+formvalidid);
181            jQuery.post( form.attr('action'), form.serialize()).done(function( data ) {
182                if(data.includes("alert-error")){
183                    // remove previous errors
184                    jQuery('.alert-error').remove();
185                    // add errors
186                    var elements = jQuery(data);
187                    var found = jQuery('.alert-error', elements);
188                    jQuery('input[name="rm_slug"]').after(found);
189                    jQuery('.rm_login_btn').prop('disabled', false);
190                    jQuery('.rm_login_btn').prop('value', btnLbl);
191                    jQuery('.rm_login_btn').toggleClass('rm-login-btn-loader');
192                } else if(data.includes("rm_otp_form_1")) {
193                    document.write(data);
194                } else{
195                    // request for redirection url
196                    var ndata= {
197                        'action': 'rm_get_after_login_redirect',
198                    };
199                    jQuery.post(rm_ajax_url, ndata, function(response) {
200                        resp = JSON.parse(response);
201                        if(resp['redirect'] != '') {
202                            window.location.href = resp['redirect'];
203                        } else
204                            alert("Error occured during redirection");
205                    });
206                }
207            });
208        }
209    });
210*/
211});
212
213function setup_payment_method_visibility(payment_method_type,form_id,form_no) {
214
215    switch (payment_method_type)
216    {
217        case 'paypal':
218            jQuery('#rm_stripe_fields_container_'+form_id+'_'+form_no).slideUp();
219            break;
220        case 'stripe':
221            jQuery('#rm_stripe_fields_container_'+form_id+'_'+form_no).slideDown();
222            break;
223    }
224}
225
226
227function rm_toggle_tel_error(valid,el,msg){
228    jQuery("." + el.prop('id') + "-error").remove();
229    var inputValue= el.val();
230    var form_con=el.closest('form');
231    setTimeout(function(){ form_con.find('[type=submit]').prop('disabled',false);},500);
232    if(inputValue.length==0 && el.prop('required')){
233        return false;
234    }
235    
236    if(!el.is(':visible'))
237    {
238        return false;
239    }
240    
241    if(el.length>0 && inputValue.length>0){
242         if(!valid){
243             if(el.closest(".rminput").length>0){
244                setTimeout(function(){el.closest(".rminput").append('<div><label class="'+ el.prop('id') +'-error rm-form-field-invalid-msg">' + msg + '</label></div'); },500);
245                         return true;
246             }
247             else{
248                setTimeout(function(){el.closest(".intl-tel-input").append('<div><label class="'+ el.prop('id') +'-error rm-form-field-invalid-msg">' + msg + '</label></div'); },500); 
249                         return false;
250             }  
251         }
252     }
253     return false;
254}
255
256function rm_toggle_tel_wc_error(valid,el,msg){
257    if(el.closest('.rmwc-input').length==0)
258        return true;
259    
260    
261    jQuery("." + el.prop('id') + "-error").remove();
262    var inputValue= el.val();
263    var form_con=el.closest('form');
264    setTimeout(function(){ form_con.find('[type=submit]').prop('disabled',false);},500);
265    if(inputValue.length==0 && el.prop('required')){
266        return true;
267    }
268    
269    if(!el.is(':visible'))
270    {
271        return true;
272    }
273    
274    if(el.length>0 && inputValue.length>0){
275         if(!valid){
276             if(el.closest(".rminput").length>0){
277                setTimeout(function(){el.closest(".rminput").append('<div><label class="'+ el.prop('id') +'-error rm-form-field-invalid-msg">' + msg + '</label></div'); },500);
278                         return false;
279             }
280             else{
281                setTimeout(function(){el.closest(".intl-tel-input").append('<div><label class="'+ el.prop('id') +'-error rm-form-field-invalid-msg">' + msg + '</label></div'); },500); 
282                         return true;
283             }  
284         }
285     }
286     return true;
287}
288
289/*
290function validate_empty_required_fields(formId) {
291    let allAreFilled = true;
292    document.getElementById(formId).querySelectorAll("[required]").forEach(function(i) {
293        if (!allAreFilled) allAreFilled = false;
294        if (!i.value) allAreFilled = false;
295        if (i.type === "radio") {
296            let radioValueCheck = false;
297            document.getElementById("myForm").querySelectorAll(`[name=${i.name}]`).forEach(function(r) {
298                if (r.checked) radioValueCheck = true;
299            })
300            allAreFilled = radioValueCheck;
301        }
302    })
303    if (!allAreFilled) {
304        allAreFilled = false;
305    }
306
307    return allAreFilled;
308}
309*/
310
311/*launches all the functions assigned to an element on click event*/
312
313function performClick(elemId, s_id, f_id) {
314    var elem = document.getElementById(elemId);
315    if (elem && document.createEvent) {
316        var evt = document.createEvent("MouseEvents");
317        evt.initEvent("click", true, false);
318        elem.dispatchEvent(evt);
319    }
320}
321
322
323function rm_append_field(tag, element_id) {
324    jQuery('#' + element_id).append("<" + tag + " class='appendable_options'>" + jQuery('#' + element_id).children(tag + ".appendable_options").html() + "</" + tag + ">");
325}
326
327function rm_delete_appended_field(element, element_id) {
328    if (jQuery(element).parents("#".element_id).children(".appendable_options").length > 1)
329        jQuery(element).parent(".appendable_options").remove();
330}
331
332
333function rm_get_country_code_by_name(country_list,selected_country){
334    var regex = new RegExp(selected_country + "\[[A-Z{{2}}
334\]",'i');
335    if(selected_country.toLowerCase()=='india'){
336        return 'in';
337    }
338    else if(selected_country.toLowerCase()=='' || selected_country.toLowerCase()=='us' || selected_country.toLowerCase()=='united_states'){
339        return 'us';
340    }
341    else if(selected_country.toLowerCase()=='canada'){
342        return 'ca';
343    }
344   
345    var country_code='';
346    for(country in country_list)
347    {
348        var found= country.search(regex);
349        if(found>=0){
350            var index= country.search(/\[[A-Z]{2}\]/i);
351      
352            if(index>=0) 
353            { 
354                country_code= country.substr(index+1,2).toLowerCase();
355                return country_code;
356            }
357        }
358    }
359    return country_code;
360}
361
362var rm_toggleFloatingScreens= function(screen_name){
363   jQuery("#" + screen_name).animate({width:'toggle'},300,"linear");
364   /*jQuery("#" + screen_name).slideToggle('medium');*/
365   jQuery('.rm_floating_screens .rm_hidden').not("#" + screen_name).hide();
366}
367
368var rm_closeFloatingScreens= function(screen_name){
369   jQuery("#" + screen_name).animate({width:'toggle'},300,"linear",function(){
370        jQuery(this).hide();
371   });
372   /*jQuery('.rm_floating_screens .rm_hidden').hide('medium');*/
373}
374
375var rm_empty_tp_entry = function(tpid){
376    jQuery("#" + tpid).val('');
377}
378var rm_user_exists= function(el,url,data){
379    var valid;
380    jQuery.post(url, data, function(response) {
381        elementId= jQuery(el).attr('id');
382        jQuery("." + elementId + "-error").remove();
383        response= JSON.parse(response);
384        if(response.status){
385           /* if(!jQuery("#" + elementId + "-error").length)*/
386            jQuery(el).parent(".rminput").append('<div><label class="'+ elementId +'-error rm-form-field-invalid-msg">' + response.msg + '</label></div>');  
387            jQuery(el).attr(data.attr,0);
388            if (jQuery('#rm-menu').length > 0) {
389             jQuery("#rm-menu").css('transform', 'translateY(0px)');
390             }
391            
392        }
393        else{    
394             jQuery("." + elementId + "-error").remove();    
395             jQuery(el).attr(data.attr,1); 
396            }
397     });
398}
399
400var rm_get_state= function(el,url,data){ 
401    jQuery.post(url, data, function(response) {
402        elementId= jQuery(el).attr('id');
403        console.log(response);
404        //console.log(data.state_field_id);
405        var name = jQuery('#'+data.state_field_id+'_attrs').attr('data-name');
406        var placeholder = jQuery('#'+data.state_field_id+'_attrs').attr('data-placeholder');
407        var class_val = jQuery('#'+data.state_field_id+'_attrs').attr('data-class');
408        var style = jQuery('#'+data.state_field_id+'_attrs').attr('data-style');
409        console.log('--'+style);
410        var required = jQuery('#'+data.state_field_id+'_attrs').attr('data-required');
411        var required_attr = '';
412        if(required!=''){
413            required_attr = 'required="required"';
414        }
415        var value = jQuery('#'+data.state_field_id+'_attrs').attr('data-value');
416        if(response!='' && response!=0){
417            jQuery('#'+data.state_field_id).html('<select name="'+name+'" style="'+style+'" class="'+class_val+'" placeholder="'+placeholder+'" '+required_attr+'>'+response+'</select>');
418        }else{
419            jQuery('#'+data.state_field_id).html('<input type="text" name="'+name+'" style="'+style+'" placeholder="'+placeholder+'" class="'+class_val+'" value="'+value+'" '+required_attr+'>');
420        }
421    });
422}
423
424/* Intializing the necessary scripts*/
425jQuery(document).ready(function(){
426    if(jQuery(".data-conditional").length>0)
427    jQuery(".data-conditional").conditionize({});
428});
429
430
431jQuery(document).ready(function () {
432    jQuery(".rm_mapv_container").each(function() {
433    if (jQuery(this).width() < 600) {
434        jQuery(this).addClass("rm_mapvsm");
435
436
437    } else {
438        jQuery(this).addClass("rm_mapvlg");
439
440    }
441    });
442});
443
444
445/*  Login Widget Popup */
446
447   jQuery(document).ready(function(){
448   
449    var rmColor = jQuery(".rm_widget_container").find("a").css('color');
450      jQuery(".widget_rm_login_btn_widget .rm_widget_container div a.rm-button").css("border-color", rmColor);
451      
452    var pgWidget_ParentWidth =  jQuery('.widget_rm_login_btn_widget').width();
453        if (pgWidget_ParentWidth < 280) {
454        jQuery('.widget_rm_login_btn_widget').addClass('rm-narrow-widget');
455   
456    }
457     
458   
459     
460   });
461   
462   var resizeboxes  = function() {
463    if (jQuery("#rm_front_sub_tabs").width() < 800)
464    {
465        jQuery("#rm_front_sub_tabs").addClass("rmNarrow");
466        jQuery("#rm_front_sub_tabs").removeClass("rmWide");
467    }
468    else
469    {
470        jQuery("#rm_front_sub_tabs").removeClass("rmNarrow");
471        jQuery("#rm_front_sub_tabs").addClass("rmWide");
472    }
473};
474
475resizeboxes();
476
477jQuery(window).on('load', function(){
478    resizeboxes();   
479});
480   
481   
482function handle_data(email,first_name,type,token) {
483	var data = {
484			'action': 'rm_login_social_user',
485			'email': email,
486            'type': type,
487            'token': token
488		};
489    
490    /* since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php*/
491    jQuery.post(rm_ajax_url, data, function(response) {
492                resp = JSON.parse(response);
493                if(resp['code'] == 'allowed') {
494                    if(resp['msg'].length)
495                        location = resp['msg'];  
496                    else
497                        location.reload();
498                } else
499                    alert(resp['msg']);
500    });
501}
502
503jQuery(document).ready(function(){
504    jQuery(".rm_form_field_type_richtext").parent() .addClass("rm-richtext-fw");
505});
506
507jQuery(document).ready(function(){
508    //jQuery(".rmagic-row").each(function(){
509    //    var classList = jQuery(this).find(".rmagic-fields-wrap").attr("class");
510    //    var classArr = classList.split(/\s+/);
511    //    if(classArr.length > 1){
512    //        var cplPad = classArr[1].split('-');
513    //        jQuery(this).css("padding", "cplPad[2]px"); 
514    //        console.log(cplPad[2]);
515    //    }
516    //});
517
518    var padArr = [];
519    jQuery(".rmagic-row").each(function () {
520        var classList = jQuery(this).find(".rmagic-fields-wrap").attr("class");
521        if(typeof classList != "undefined") {
522            var classArr = classList.split(/\s+/);
523        } else {
524            var classArr = [];
525        }
526        if (classArr.length > 1) {
527            var cplPad = classArr[1].split('-');
528            if (padArr.indexOf(cplPad[2]) < 0) {
529                padArr.push(cplPad[2]);
530            }
531        }
532    });
533    if (padArr.length > 0) {
534        var sheet = document.createElement('style');
535        var sheetStyle = '';
536        for (var i = 0; i < padArr.length; i++) {
537            sheetStyle += '.rm-gutter-' + padArr[i] + '{--rm-field-gutter:' + padArr[i] + 'px;}';
538        }
539        sheet.innerHTML = sheetStyle;
540        jQuery("head").append(sheet);
541    }
542}); 
543
544// Making sure action is empty on login form
545jQuery(document).ready(function () {
546    jQuery("form#rm_login_form_1").submit(function(event) {
547        jQuery(this).attr("action","");
548    });
549});
550
551//User Area Block Resizer
552
553   var resize_submission_boxes  = function() {
554       
555  //console.log(jQuery(".rm-user-details-card").width());
556  
557    if (jQuery(".rm-user-details-card").width() < 450){
558            
559        jQuery(".rm-user-details-card").addClass("rm-narrow-card");
560        jQuery(".rm-user-details-card").removeClass("rm-wide-card");
561    }
562    
563    else{
564         
565        jQuery(".rm-user-details-card").removeClass("rm-narrow-card");
566        jQuery(".rm-user-details-card").addClass("rm-wide-card");
567       
568    }
569};
570
571jQuery(window).on('resize', resize_submission_boxes);
572
573jQuery(document).ready(function () {
574    setTimeout(function () {
575        resize_submission_boxes();
576    }, 500);
577
578    jQuery("i.rm_front_field_icon").each(function(index) {
579        jQuery(this).css("opacity",jQuery(this).data("opacity"));
580    });
581});
582
583//User Area Block Resizer End
584
585
586	
587jQuery(document).ready(function () {
588    if (jQuery(".rm_paypal_order_details")[0]) {
589        jQuery('html, body').animate({
590            scrollTop: jQuery('.rm_paypal_order_details').offset().top
591        }, 'slow');
592    }
593    
594    
595    if (jQuery(".rm-post-sub-msg")[0]) {
596        jQuery('html, body').animate({
597            scrollTop: jQuery('.rm-post-sub-msg').offset().top
598        }, 'slow');
599    }
600
601});
602
603jQuery(document).ready(function () {
604    jQuery('.rmagic-row').each(function () {
605        if (jQuery(this).find('.rmagic-col-12 .rmagic-field[style*="display: none"]').length > 0) {
606            jQuery(this).addClass('rm-hidden-row');
607        }
608    });
609
610});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.