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