1$().ready(function(){ 2 console.log('vl ready!') 3 var IS_CC_VALID = false; 4 5 function isRecaptchaResponseMissing(formSelector, hiddenFieldSelector) { 6 var $form = $(formSelector); 7 var hiddenResponse = ''; 8 9 if ($form.length && hiddenFieldSelector) { 10 hiddenResponse = $.trim($form.find(hiddenFieldSelector).val() || ''); 11 } 12 13 if (!hiddenResponse && $form.length) { 14 hiddenResponse = $.trim($form.find('#g-recaptcha-response').val() || ''); 15 } 16 17 if (window.grecaptcha && typeof grecaptcha.getResponse === 'function') { 18 try { 19 return grecaptcha.getResponse() == '' && hiddenResponse == ''; 20 } catch (error) { 21 return hiddenResponse == ''; 22 } 23 } 24 25 return hiddenResponse == ''; 26 } 27 28 jQuery.validator.addMethod("validExpiryDate", function(val, elm){ 29 30 31 var vals=val; 32 33 if(vals.indexOf("/")>-1){ 34 val=vals.split('/'); 35 val=val[0]+''+val[1]; 36 37 var numbers = /^[0-9]+$/; 38 if(val.match(numbers)) 39 { 40 if(val.length === 4){ 41 cardMonth = val.substr(0, 2); 42 cardYear = Number('20'+val.substr(2, 2)); 43 44 curMonth = Number(new Date().getMonth()) + 1; 45 curYear = Number(new Date().getFullYear()); 46 47 if(cardMonth === 0)return false; 48 if(cardMonth > 12)return false; 49 if(cardYear < curYear)return false; 50 if(cardYear === curYear){ 51 if(cardMonth < curMonth)return false; 52 } 53 return true; 54 }else{ 55 return false; 56 } 57 }else{ 58 return false; 59 } 60 } 61 }); 62 63 jQuery.validator.addMethod("validateCC", function(val, elm) { 64 return IS_CC_VALID; 65 }); 66 67 jQuery.validator.addMethod("match_password", function(val, elm) { 68 if($("#LoginInfoPassword").val() == $("#LoginInfoPasswordAgain").val()){ 69 return true; 70 }else{ 71 return false; 72 } 73 }); 74 75 jQuery.validator.addMethod("alphanumericName", function(val, elm) { 76 if (this.optional(elm)) { 77 return true; 78 } 79 var urlPattern = /(?:https?:\/\/|www\.)[^\s]+|[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/i; 80 return !urlPattern.test($.trim(val)); 81 }, "Please enter a valid name."); 82 83 jQuery.validator.addMethod("checkEmailExist", function(val, elm){ 84 85 if(event && event.type!='blur'){ 86 if($("#CustomerInfoEmail").length>0){ 87 $("#CustomerInfoEmail").parent().next(".loader_em_pos").addClass("hide"); 88 } 89 return true; 90 }else{ 91 if($("#CustomerInfoEmail").length>0){ 92 $("#CustomerInfoEmail").parent().next(".loader_em_pos").removeClass("hide"); 93 } 94 } 95 96 if(signed_in == ""){ 97 var isSuccess = false; 98 $.ajax({ 99 url: BASE_PATH+"/site/checkEmail", 100 type: "post", 101 async : false, 102 data: { 103 email_id: function() { 104 return $("#CustomerInfoEmail").val(); 105 } 106 }, 107 success: function (msg){ 108 109 if($("#CustomerInfoEmail").length>0){ 110 $("#CustomerInfoEmail").parent().next(".loader_em_pos").addClass("hide"); 111 } 112 113 if($.trim(msg) == "false"){ 114 $("#signin_otp_modal").show(); 115 $(".otp_mail").html("").removeClass("error"); 116 $("#ContactLoginEmailOtp").val('').hide(); 117 $("#ContactLoginEmailOtp").prev().hide(); 118 $(".resend_otp").hide(); 119 $('#otp_counter').text(''); 120 $("#ContactOtpLoginEmail-error").remove(); 121 $("#ContactLoginEmailOtp-error").remove(); 122 $("#ContactOtpLoginEmail").val(""); 123 $(".login_otp_form_btn").show().attr("disabled",false); 124 $("#ContactSigninOtpForm .simple_security").hide(); 125 if( !$('#ContactSigninOtpForm #g-recaptcha-response').length ) 126 $('#ContactSigninOtpForm .simple_security').after("<input type='hidden' id='g-recaptcha-response' name='g-recaptcha-response' value='' >"); 127 reset_captcha(); 128 isSuccess = false; 129 }else{ 130 isSuccess = true; 131 } 132 } 133 }); 134 return isSuccess; 135 }else{ 136 return true; 137 } 138 }); 139 jQuery.validator.addMethod("checkPhoneExist", function(val, elm){ 140 141 142 if(event && event.type!='blur'){ 143 if($("#CustomerInfoPhone").length>0){ 144 $("#CustomerInfoPhone").parent().next(".loader_ph_pos").addClass("hide"); 145 } 146 return true; 147 }else{ 148 if($("#CustomerInfoPhone").length>0){ 149 $("#CustomerInfoPhone").parent().next(".loader_ph_pos").removeClass("hide"); 150 } 151 } 152 153 //if(signed_in == ""){ 154 var isSuccess = false;
155 var b2b_customer_save_card_add_issue_fixing = $("#b2b_customer_save_card_add_issue_fixing").val(); 156 var business_type = $("#business_type").val(); 157 $.ajax({ 158 url: BASE_PATH+"/site/checkPhone", 159 type: "post", 160 async : false, 161 data: { 162 phone_number: function() { 163 return $("#CustomerInfoPhone").val(); 164 } 165 }, 166 success: function (msg){ 167 168 if($("#CustomerInfoPhone").length>0){ 169 $("#CustomerInfoPhone").parent().next(".loader_ph_pos").addClass("hide"); 170 } 171 172 if($.trim(msg) == "2"){ 173 $("#signin_signup").show(); 174 isSuccess = false; 175 }else if($.trim(msg) == "false"){ 176 if(b2b_customer_save_card_add_issue_fixing==1){ 177 if(business_type!='b2b'){ 178 $("#signin_otp_modal").show(); 179 $(".otp_mail").html("").removeClass("error"); 180 $("#ContactLoginEmailOtp").val('').hide(); 181 $("#ContactLoginEmailOtp").prev().hide(); 182 $(".resend_otp").hide(); 183 $('#otp_counter').text(''); 184 $("#ContactOtpLoginEmail-error").remove(); 185 $("#ContactLoginEmailOtp-error").remove(); 186 $("#ContactOtpLoginEmail").val(""); 187 $(".login_otp_form_btn").show().attr("disabled",false); 188 $("#ContactSigninOtpForm .simple_security").hide(); 189 if( !$('#ContactSigninOtpForm #g-recaptcha-response').length ) 190 $('#ContactSigninOtpForm .simple_security').after("<input type='hidden' id='g-recaptcha-response' name='g-recaptcha-response' value='' >"); 191 reset_captcha(); 192 } 193 }else{ 194 $("#signin_otp_modal").show(); 195 $(".otp_mail").html("").removeClass("error"); 196 $("#ContactLoginEmailOtp").val('').hide(); 197 $("#ContactLoginEmailOtp").prev().hide(); 198 $(".resend_otp").hide(); 199 $('#otp_counter').text(''); 200 $("#ContactOtpLoginEmail-error").remove(); 201 $("#ContactLoginEmailOtp-error").remove(); 202 $("#ContactOtpLoginEmail").val(""); 203 $(".login_otp_form_btn").show().attr("disabled",false); 204 $("#ContactSigninOtpForm .simple_security").hide(); 205 if( !$('#ContactSigninOtpForm #g-recaptcha-response').length ) 206 $('#ContactSigninOtpForm .simple_security').after("<input type='hidden' id='g-recaptcha-response' name='g-recaptcha-response' value='' >"); 207 reset_captcha(); 208 } 209 isSuccess = false; 210 }else{ 211 isSuccess = true; 212 } 213 } 214 }); 215 return isSuccess; 216 //}else{ 217 //return true; 218 //} 219 }); 220 // jQuery.validator.addMethod("checkFflmasking", function(val, elm){ 221 // var i = 0; 222 // val = val.split("-"); 223 // $.each( val, function( key, value ) { 224 // if( /[^a-zA-Z0-9]/.test( value ) ) { 225 // i++; 226 // } 227 // }); 228 // return (i==0)?true:false; 229 // }); 230 231 jQuery.validator.addMethod("checkFfl", function(val, elm){ 232 if($("#select_ffl").prop("checked")==true) 233 { 234 if($("#CustomerInfoFflId").val()!='0'){ 235 return true; 236 }else{ 237 return false; 238 } 239 }else{ 240 return true; 241 } 242 }); 243 244 245 246 jQuery.validator.addMethod("validateShippingEmail", function(val, elm) { 247 var em = $("#CustomerInfoEmail").val(); 248 return checkValidateEmail(em); 249 }); 250 251 //Customer Info Form 252 $("#CustomerInfoShippingForm").validate({ 253 'rules' : { 254 "data[CustomerInfo][firstName]": { 255 required : true 256 }, 257 "data[CustomerInfo][lastName]": "required", 258 "data[CustomerInfo][email]": { 259 required : true, 260 email : true, 261 validateShippingEmail: true, 262 checkEmailExist : true 263 }, 264 "data[CustomerInfo][phone]" : { 265 required: true, 266 number : true, 267 minlength: 10, 268 checkPhoneExist : true 269 }, 270 "data[CustomerInfo][address]" : "required", 271 "data[CustomerInfo][city]" : "required", 272 "data[CustomerInfo][state]" : "required", 273 274 "data[CustomerInfo][country]" : "required", 275 "data[CustomerInfo][zip]" : { 276 required: true, 277 //number : true, 278 minlength: 4 279 }, 280 "data[CustomerInfo][ffl_id]" :{ 281 checkFfl:true 282 }, 283 hiddenRecaptchashipping: { 284 required: function () { 285 286 if($("#CustomerInfoShippingForm:visible #UserCaptcha").length) 287 { 288 if (grecaptcha.getResponse() == '') { 289 return true; 290 } else { 291 return false;
292 } 293 } 294 295 } 296 } 297 }, 298 'messages' : { 299 "data[CustomerInfo][firstName]": "Enter First Name", 300 "data[CustomerInfo][lastName]": "Enter Last Name", 301 "data[CustomerInfo][email]": { 302 required : 'Enter Email Address', 303 email : 'Invalid Email', 304 validateShippingEmail: 'Email not valid', 305 checkEmailExist : "Seems Like You have an Account. Kindly Sign In to Continue" 306 }, 307 "data[CustomerInfo][phone]" : { 308 required: "Enter Phone Number", 309 minlength: "Enter Valid Number", 310 number : "Mobile number should contain only numbers", 311 checkPhoneExist : "This phone number already linked with another account" 312 }, 313 "data[CustomerInfo][address]" : "Enter Valid Address", 314 "data[CustomerInfo][city]" : "Enter City Name", 315 "data[CustomerInfo][country]" : "Choose Country", 316 "data[CustomerInfo][state]" : "Choose State", 317 //"data[CustomerInfo][state]" : ($("#remove_duplicitous_shipping_address_step").length>0 && $("#remove_duplicitous_shipping_address_step").val()==1)?"State/Region required":"Choose State", 318 319 "data[CustomerInfo][zip]" : { 320 required : "Enter Zipcode", 321 //number : "Invalid Zipcode", 322 minlength: "Enter Valid Zipcode" 323 }, 324 "data[CustomerInfo][ffl_id]" :{ 325 checkFfl:"Select FLL" 326 }, 327 hiddenRecaptchashipping: { 328 required: "Please confirm that you are not a robot" 329 } 330 // "data[CustomerInfo][ffl_name]" : "Enter FFL name", 331 // "data[CustomerInfo][ffl_number]" : { 332 // required: "Enter Phone Number", 333 // checkFflmasking: "Invalid FFL Number" 334 // }, 335 // "data[CustomerInfo][ffl_address]" : "Enter FFL Address" 336 } 337 }); 338 339 $("#CreditCardAuthForm").validate({ 340 submitHandler: function(form) { 341 342 process_payment(); 343 344 $("#btnSubmitPay").attr("disabled", true); 345 }, 346 'rules' : { 347 "data[CreditCard][cardNumber]" : { 348 required : true, 349 minlength: 13, 350 maxlength: 19, 351 validateCC: true 352 }, 353 "data[CreditCard][cvv]" : { 354 required : true, 355 number : true 356 }, 357 "data[CreditCard][expiry]" : { 358 required : true, 359 number : false, 360 validExpiryDate : true 361 }, 362 "data[CreditCard][name]" : { 363 required : true 364 }, 365 "data[CreditCard][firstName]": { 366 required : true 367 }, 368 "data[CreditCard][lastName]": "required", 369 "data[CreditCard][email]": { 370 required : true, 371 email : true 372 }, 373 "data[CreditCard][address]" : "required", 374 "data[CreditCard][city]" : "required", 375 "data[CreditCard][state]" : "required", 376 "data[CreditCard][country]" : "required", 377 "data[CreditCard][phone]" : { 378 required: true, 379 minlength: 10 380 }, 381 "data[CreditCard][zip]" : { 382 required: true, 383 //number : true, 384 minlength: 4 385 } 386 }, 387 'messages' : { 388 "data[CreditCard][cardNumber]" : { 389 required : "Enter Card Number", 390 minlength: "Invalid Card", 391 maxlength: "Invalid Card", 392 validateCC: "Invalid Card" 393 }, 394 "data[CreditCard][cvv]" : { 395 required : "Enter CVV", 396 number : "Invalid CVV" 397 }, 398 "data[CreditCard][expiry]" : { 399 required : "Enter Expiry Date", 400 validExpiryDate : "Date Format should be in mm/yy" 401 }, 402 "data[CreditCard][name]" : { 403 required : "Enter Cardholder name" 404 }, 405 "data[CreditCard][firstName]": "Enter Firstname", 406 "data[CreditCard][lastName]": "Enter Lastname", 407 "data[CreditCard][email]": { 408 required : 'Please enter email', 409 email : 'Invalid Email' 410 }, 411 "data[CreditCard][address]" : "Enter Valid address", 412 "data[CreditCard][city]" : "Enter city name", 413 "data[CreditCard][country]" : "Choose Country", 414 "data[CreditCard][state]" : "Choose State", 415 "data[CreditCard][phone]" : { 416 required: "Enter Phone Number", 417 minlength: "Enter Valid Number" 418 }, 419 "data[CreditCard][zip]" : { 420 required : "Enter Zipcode", 421 //number : "Invalid Zipcode", 422 minlength: "Enter Valid Zipcode" 423 } 424 } 425 }); 426 $("#CardConnectCreditCardAuthForm").validate({ 427 submitHandler: function(form) { 428 if($("#pay_by").attr("data-action")=="cc" && parseFloat($("#amountPayable_ship").attr("data-amount"))==0) 429 { 430 431 process_payment(); 432 433 $("#btnSubmitPay").attr("disabled", true); 434 } 435 else 436 {
437 if($('#cc_tokenizedcardnumber').val()==''){ 438 $('#CreditCardccnumfield-error').html("Please enter a valid Card number"); 439 $('#CreditCardccnumfield-error').css('display','block'); 440 441 $("#btnSubmitPay").attr("disabled", false); 442 443 }else{ 444 if($('#cc_iframe_token_error').val()!=''){ 445 $('#CreditCardccnumfield-error').html($('#cc_iframe_token_error').val()); 446 $('#CreditCardccnumfield-error').css('display','block'); 447 448 $("#btnSubmitPay").attr("disabled", false); 449 450 }else{ 451 $('#CreditCardccnumfield-error').html(''); 452 $('#CreditCardccnumfield-error').css('display','none'); 453 454 process_payment(); 455 456 $("#btnSubmitPay").attr("disabled", true); 457 458 } 459 } 460 } 461 }, 462 'rules' : { 463 "data[CreditCard][cardNumber]" : { 464 required : true, 465 }, 466 "data[CreditCard][cvv]" : { 467 required : true, 468 number : true 469 }, 470 "data[CreditCard][expiry]" : { 471 required : true, 472 validExpiryDate : true 473 }, 474 "data[CreditCard][name]" : { 475 required : true 476 }, 477 "data[CreditCard][firstName]": { 478 required : true 479 }, 480 "data[CreditCard][lastName]": "required", 481 "data[CreditCard][email]": { 482 required : true, 483 email : true 484 }, 485 "data[CreditCard][address]" : "required", 486 "data[CreditCard][city]" : "required", 487 "data[CreditCard][state]" : "required", 488 "data[CreditCard][country]" : "required", 489 "data[CreditCard][phone]" : { 490 required: true, 491 minlength: 10 492 }, 493 "data[CreditCard][zip]" : { 494 required: true, 495 //number : true, 496 minlength: 4 497 } 498 }, 499 'messages' : { 500 "data[CreditCard][cardNumber]" : { 501 required : "Enter Card Number", 502 }, 503 "data[CreditCard][cvv]" : { 504 required : "Enter CVV", 505 number : "Invalid CVV" 506 }, 507 "data[CreditCard][expiry]" : { 508 required : "Enter Expiry Date", 509 validExpiryDate : "Date Format should be in mm/yy" 510 511 }, 512 "data[CreditCard][name]" : { 513 required : "Enter Cardholder name" 514 }, 515 "data[CreditCard][firstName]": "Enter Firstname", 516 "data[CreditCard][lastName]": "Enter Lastname", 517 "data[CreditCard][email]": { 518 required : 'Please enter email', 519 email : 'Invalid Email' 520 }, 521 "data[CreditCard][address]" : "Enter Valid address", 522 "data[CreditCard][city]" : "Enter city name", 523 "data[CreditCard][country]" : "Choose Country", 524 "data[CreditCard][state]" : "Choose State", 525 "data[CreditCard][phone]" : { 526 required: "Enter Phone Number", 527 minlength: "Enter Valid Number" 528 }, 529 "data[CreditCard][zip]" : { 530 required : "Enter Zipcode", 531 //number : "Invalid Zipcode", 532 minlength: "Enter Valid Zipcode" 533 } 534 }, 535 invalidHandler : function() { 536 if($('#cc_tokenizedcardnumber').val()==''){ 537 $('#CreditCardccnumfield-error').html("Please enter a valid Card number"); 538 $('#CreditCardccnumfield-error').css('display','block'); 539 540 $("#btnSubmitPay").attr("disabled", false); 541 542 }else{ 543 if($('#cc_iframe_token_error').val()!=''){ 544 $('#CreditCardccnumfield-error').html($('#cc_iframe_token_error').val()); 545 $('#CreditCardccnumfield-error').css('display','block'); 546 547 $("#btnSubmitPay").attr("disabled", false); 548 549 }else{ 550 $('#CreditCardccnumfield-error').html(''); 551 $('#CreditCardccnumfield-error').css('display','none'); 552 } 553 } 554 } 555 }); 556 557 558 $("#payment-form").validate({ 559 submitHandler: function(form) { 560 console.log(form); 561 $("#btnSubmitPay").focus(); 562 if($("#pay_by").attr("data-action")=="cc" && parseFloat($("#amountPayable_ship").attr("data-amount"))==0) 563 { 564 565 process_payment(); 566 567 $("#btnSubmitPay").attr("disabled", true); 568 } 569 else 570 {console.log(manualInputStates); 571 if(manualInputStates['cardNumber']==false ){ 572 $('#card-errors1').html(errorInputmsg['cardNumber']); 573 $('#card-errors1').css('display','block'); 574 $("#btnSubmitPay").attr("disabled", false); 575 }else{ 576 $('#card-errors1').html(''); 577 $('#card-errors1').css('display','none'); 578 } 579 if( manualInputStates['cardExpiry']==false ){ 580 $('#card-errors3').html(errorInputmsg['cardExpiry']); 581 $('#card-errors3').css('display','block'); 582 $("#btnSubmitPay").attr("disabled", false); 583 }else{ 584 $('#card-errors3').html(''); 585 $('#card-errors3').css('display','none'); 586 } 587 if( manualInputStates['cardCvc']==false ){ 588 $('#card-errors2').html(errorInputmsg['cardCvc']); 589 $('#card-errors2').css('display','block'); 590 $("#btnSubmitPay").attr("disabled", false); 591 }else{ 592 $('#card-errors2').html(''); 593 $('#card-errors2').css('display','none'); 594 } 595 if( manualInputStates['postalCode']==false){ 596 $('#card-errors4').html(errorInputmsg['postalCode']); 597 $('#card-errors4').css('display','block'); 598 $("#btnSubmitPay").attr("disabled", false); 599 }else{ 600 $('#card-errors4').html(''); 601 $('#card-errors4').css('display','none'); 602 } 603 if(manualInputStates['cardNumber']==false || manualInputStates['cardExpiry']==false||manualInputStates['cardCvc']==false || manualInputStates['postalCode']==false){ 604 }else{ 605 606 $("#btnSubmitPay").attr("disabled", true); 607 handleStripeHandkeyPayment(); 608 } 609 } 610 }, 611 'rules' : { 612 "data[firstName]": { 613 required : true 614 }, 615 "data[lastName]": "required", 616 "data[email]": { 617 required : true, 618 email : true 619 }, 620 "data[address]" : "required", 621 "data[city]" : "required", 622 "data[state]" : "required", 623 "data[country]" : "required", 624 "data[phone]" : { 625 required: true, 626 minlength: 10 627 }, 628 "data[zip]" : { 629 required: true, 630 //number : true, 631 minlength: 4 632 } 633 }, 634 'messages' : { 635 "data[firstName]": "Enter Firstname", 636 "data[lastName]": "Enter Lastname", 637 "data[email]": { 638 required : 'Please enter email', 639 email : 'Invalid Email' 640 }, 641 "data[address]" : "Enter Valid address", 642 "data[city]" : "Enter city name", 643 "data[country]" : "Choose Country", 644 "data[state]" : "Choose State", 645 "data[phone]" : { 646 required: "Enter Phone Number", 647 minlength: "Enter Valid Number" 648 }, 649 "data[zip]" : {
650 required : "Enter Zipcode", 651 //number : "Invalid Zipcode", 652 minlength: "Enter Valid Zipcode" 653 } 654 }, 655 invalidHandler : function() { 656 } 657 }); 658 $("#TsysCreditCardAuthForm").validate({ 659 submitHandler: function(form) { 660 if($("#pay_by").attr("data-action")=="cc" && parseFloat($("#amountPayable_ship").attr("data-amount"))==0) 661 { 662 663 process_payment(); 664 665 $("#btnSubmitPay").attr("disabled", true); 666 } 667 else 668 { 669 if($('#tseptoken').val()==''){ 670 $('#CreditCardtsysnumfield-error').html("Please enter a valid Card number"); 671 $('#CreditCardtsysnumfield-error').css('display','block'); 672 $("#btnSubmitPay").attr("disabled", false); 673 }else{ 674 $('#CreditCardtsysnumfield-error').html(''); 675 $('#CreditCardtsysnumfield-error').css('display','none'); 676 677 process_payment(); 678 679 $("#btnSubmitPay").attr("disabled", true); 680 } 681 } 682 }, 683 'rules' : { 684 "data[CreditCard][tseptoken]" : { 685 required : true, 686 }, 687 "data[CreditCard][tsepexp_date]" : { 688 required : true, 689 }, 690 "data[CreditCard][firstName]": { 691 required : true 692 }, 693 "data[CreditCard][lastName]": "required", 694 "data[CreditCard][email]": { 695 required : true, 696 email : true 697 }, 698 "data[CreditCard][address]" : "required", 699 "data[CreditCard][city]" : "required", 700 "data[CreditCard][state]" : "required", 701 "data[CreditCard][country]" : "required", 702 "data[CreditCard][phone]" : { 703 required: true, 704 minlength: 10 705 }, 706 "data[CreditCard][zip]" : { 707 required: true, 708 //number : true, 709 minlength: 4 710 } 711 }, 712 'messages' : { 713 "data[CreditCard][cardNumber]" : { 714 required : "Enter Card Number", 715 }, 716 "data[CreditCard][cvv]" : { 717 required : "Enter CVV", 718 number : "Invalid CVV" 719 }, 720 "data[CreditCard][expiry]" : { 721 required : "Enter Expiry Date", 722 validExpiryDate : "Date Format should be in mm/yy" 723 }, 724 "data[CreditCard][name]" : { 725 required : "Enter Cardholder name" 726 }, 727 "data[CreditCard][firstName]": "Enter Firstname", 728 "data[CreditCard][lastName]": "Enter Lastname", 729 "data[CreditCard][email]": { 730 required : 'Please enter email', 731 email : 'Invalid Email' 732 }, 733 "data[CreditCard][address]" : "Enter Valid address", 734 "data[CreditCard][city]" : "Enter city name", 735 "data[CreditCard][country]" : "Choose Country", 736 "data[CreditCard][state]" : "Choose State", 737 "data[CreditCard][phone]" : { 738 required: "Enter Phone Number", 739 minlength: "Enter Valid Number" 740 }, 741 "data[CreditCard][zip]" : { 742 required : "Enter Zipcode", 743 //number : "Invalid Zipcode", 744 minlength: "Enter Valid Zipcode" 745 } 746 }, 747 invalidHandler : function() { 748 if($('#tseptoken').val()==''){ 749 $('#CreditCardtsysnumfield-error').html("Please enter a valid Card number"); 750 $('#CreditCardtsysnumfield-error').css('display','block'); 751 $("#btnSubmitPay").attr("disabled", false); 752 }else{ 753 $('#CreditCardtsysnumfield-error').html(''); 754 $('#CreditCardtsysnumfield-error').css('display','none'); 755 } 756 } 757 }); 758 759 760 try { 761 $("#CreditCardCardNumber").validateCreditCard(function(result){ 762 if(result.card_type) 763 $('#CreditCardCardNumber').addClass(result.card_type.name); 764 765 IS_CC_VALID = result.valid; 766 767 if(result.valid) { 768 $('#CreditCardCardNumber').removeClass('error'); 769 $('#CreditCardCardNumber').addClass('valid'); 770 }else { 771 $('#CreditCardCardNumber').removeClass('valid'); 772 $('#CreditCardCardNumber').addClass('error'); 773 } 774 }) 775 }catch(e) { } 776 777 //Sign up form validation 778 $("#LoginInfoCreateAccountForm").validate({ 779 ignore: ".ignore", 780 'rules' : { 781 "data[LoginInfo][first name]": { required: true, alphanumericName: true }, 782 "data[LoginInfo][last name]": { required: true, alphanumericName: true }, 783 "username": { 784 required : true, 785 email : true, 786 remote: { 787 url: $("#base_path").val()+"/site/checkEmail", 788 type: "post", 789 data: { 790 email_id: function() { 791 return $("#LoginInfoEmail").val(); 792 } 793 } 794 } 795 }, 796 "data[LoginInfo][password]" : { 797 required: true, 798 minlength: 6 799 }, 800 "data[LoginInfo][password again]" :{ 801 required: true, 802 match_password: true 803 }, 804 "data[LoginInfo][cell]": { 805 required : true, 806 number : true, 807 minlength : 10, 808 remote: { 809 url: $("#base_path").val()+"/site/checkPhone", 810 type: "post", 811 data: { 812 phone_number: function() { 813 return $("#LoginInfoCell").val(); 814 } 815 } 816 } 817 }, 818 hiddenRecaptcha: { 819 required: function () { 820 if ($("#sf_google_recaptcha_v3").val() == 1) { 821 return false;
822 }else{ 823 if (grecaptcha.getResponse() == '') { 824 return true; 825 } else { 826 return false; 827 } 828 } 829 } 830 } 831 832 }, 833 'messages' : { 834 "data[LoginInfo][first name]": { 835 required: "Enter Your First Name", 836 alphanumericName: "Please enter a valid first name." 837 }, 838 "data[LoginInfo][last name]": { 839 required: "Enter Your Last Name", 840 alphanumericName: "Please enter a valid last name." 841 }, 842 843 "username": { 844 required : 'Please enter email', 845 email : 'Invalid Email', 846 remote : 'Email already exists' 847 }, 848 "data[LoginInfo][password]" : { 849 required: 'Please enter password', 850 minlength: 'Password should contain atleast 6 characters' 851 }, 852 "data[LoginInfo][password again]" : { 853 required: 'Please re-enter password', 854 match_password : 'Passwords do not match' 855 }, 856 "data[LoginInfo][cell]": { 857 required : 'Please enter mobile number', 858 number : 'Mobile number should contain only numbers', 859 minlength: 'Mobile number should have at least 10 characters', 860 remote : 'Mobile number already exists' 861 }, 862 hiddenRecaptcha: { 863 required: "Please confirm that you are not a robot" 864 } 865 866 } 867 }); 868 869 870 871 $("#LoginInfo1CreateAccountForm").validate({ 872 873 874 ignore: ".ignore", 875 'rules' : { 876 "data[LoginInfo1][business name]": "required", 877 "data[LoginInfo1][first name]": { required: true, alphanumericName: true }, 878 "data[LoginInfo1][head_quarters]": "required", 879 "data[LoginInfo1][precincts]": "required", 880 "data[LoginInfo1][organizations]": "required", 881 "data[LoginInfo1][last name]": { required: true, alphanumericName: true }, 882 "username": { 883 required : true, 884 email : true, 885 remote: { 886 url: $("#base_path").val()+"/site/checkEmail", 887 type: "post", 888 data: { 889 email_id: function() { 890 return $("#LoginInfo1Email").val(); 891 } 892 } 893 } 894 }, 895 "data[LoginInfo1][password]" : { 896 required: true, 897 minlength: 6 898 }, 899 "data[LoginInfo1][password again]" :{ 900 required: true, 901 match_password: true 902 }, 903 "data[LoginInfo1][cell]": { 904 required : true, 905 number : true, 906 minlength : 10, 907 remote: { 908 url: $("#base_path").val()+"/site/checkPhone", 909 type: "post", 910 data: { 911 phone_number: function() { 912 return $("#cell").val(); 913 } 914 } 915 } 916 }, 917 918 919 920 921 hiddenRecaptcha1: { 922 required: function () { 923 if ($("#sf_google_recaptcha_v3").val() == 1) { 924 return false; 925 }else{ 926 if (grecaptcha.getResponse() == '') { 927 return true; 928 } else { 929 return false; 930 } 931 } 932 } 933 } 934 935 }, 936 'messages' : { 937 "data[LoginInfo1][first name]": { 938 required: "Enter Your First Name", 939 alphanumericName: "Please enter a valid first name." 940 }, 941 "data[LoginInfo1][business name]": "Enter Your business Name", 942 "data[LoginInfo1][head_quarters]": "Select Head quarters", 943 "data[LoginInfo1][precincts]": "Select Precincts", 944 "data[LoginInfo1][organizations]": "Select Organizations", 945 "data[LoginInfo1][last name]": { 946 required: "Enter Your last Name", 947 alphanumericName: "Please enter a valid last name." 948 }, 949 "username": { 950 required : 'Please enter email', 951 email : 'Invalid Email', 952 remote : 'Email already exists' 953 }, 954 955 956 957 hiddenRecaptcha1: { 958 required: "Please confirm that you are not a robot" 959 }, 960 961 } 962 963 }); 964 965 //Sign in form validation 966 $("#ContactSigninForm").validate({ 967 'rules' : { 968 "data[Contact][login_email]": { 969 required : true, 970 email : true, 971 remote: { 972 url: $("#base_path").val()+"/site/checkContactEmail", 973 type: "post", 974 data: { 975 email_id: function() { 976 return $("#ContactLoginEmail").val(); 977 } 978 } 979 } 980 }, 981 "data[Contact][login_password]" : { 982 required: true, 983 } 984 }, 985 'messages' : { 986 "data[Contact][login_email]": { 987 required : 'Please enter email', 988 email : 'Invalid Email', 989 remote : 'Email does not exist' 990 }, 991 "data[Contact][login_password]" : { 992 required: 'Please enter password' 993 } 994 } 995 }); 996 // Validate ForgetPassword Form 997 $("#ContactForgetPasswordForm").validate({ 998 'rules' : { 999 "data[Contact][contact_email]": { 1000 required : true, 1001 email : true, 1002 remote: { 1003 url: $("#base_path").val()+"/site/checkContactEmail", 1004 type: "post", 1005 data: { 1006 email_id: function() { 1007 return $("#ContactContactEmail").val(); 1008 } 1009 } 1010 } 1011 }, 1012 hiddenRecaptchaForget: { 1013 required: function () { 1014 if ($("#sf_google_recaptcha_v3").val() == 1) { 1015 return false;
1016 }else{ 1017 if (grecaptcha.getResponse() == '') { 1018 return true; 1019 } else { 1020 return false; 1021 } 1022 } 1023 } 1024 } 1025 }, 1026 'messages' : { 1027 "data[Contact][contact_email]": { 1028 required : 'Please enter email', 1029 email : 'Invalid Email', 1030 remote: 'Email does not exist' 1031 }, 1032 hiddenRecaptchaForget: { 1033 required: "Please confirm that you are not a robot" 1034 } 1035 } 1036 }); 1037 1038 // Validate Contact Us Form 1039 $("#ContactContactUsForm").validate({ 1040 ignore: ".ignore", 1041 'rules' : { 1042 "data[Contact][name]": { 1043 required : true 1044 }, 1045 "data[Contact][email]": { 1046 required : true, 1047 email : true 1048 }, 1049 hiddenRecaptchaContactus: { 1050 required: function () { 1051 if ($("#sf_google_recaptcha_v3").val() == 1) { 1052 return false; 1053 }else{ 1054 if (grecaptcha.getResponse() == '') { 1055 return true; 1056 } else { 1057 return false; 1058 } 1059 } 1060 } 1061 } 1062 }, 1063 'messages' : { 1064 "data[Contact][name]": { 1065 required : 'Please enter your name', 1066 }, 1067 "data[Contact][email]": { 1068 required : 'Please enter your email', 1069 email : 'Invalid Email' 1070 }, 1071 hiddenRecaptchaContactus: { 1072 required: "Please confirm that you are not a robot" 1073 } 1074 } 1075 }); 1076 1077 $("#ReviewProductForm").validate({ 1078 submitHandler: function(form) { 1079 //Notify Alert 1080 $.notify({ 1081 title: "<strong>Review</strong> ", 1082 icon: 'fa fa-edit', 1083 message: "added successfully..!" 1084 }, 1085 {timer: 1000,type: 'success',animate: {enter: 'animated lightSpeedIn',exit: 'animated lightSpeedOut'}}); 1086 //Notify Alert 1087 //$("#preloader").attr('style','display: block'); 1088 $("#submit_preview").attr("disabled",true); 1089 $("#submit_preview").val("Processing..."); 1090 $.ajax({ 1091 url : BASE_PATH+"/api/save_review", 1092 type : "post", 1093 data: {form_data : $(".review-form").serialize()}, 1094 success: function (msg){ 1095 if($.trim(msg) == 1){ 1096 location.reload(); 1097 } 1098 } 1099 }); 1100 }, 1101 ignore: ".ignore", 1102 'rules' : { 1103 "data[Review][name]": { 1104 required : true 1105 }, 1106 "data[Review][email]": { 1107 required : true, 1108 email : true 1109 }, 1110 "data[Review][rating]": { 1111 required: true 1112 }, 1113 "data[Review][review]": { 1114 required : true 1115 }, 1116 hiddenRecaptchaReview: { 1117 required : true 1118 } 1119 }, 1120 'messages' : { 1121 "data[Review][name]": { 1122 required : 'Please enter your Name', 1123 }, 1124 "data[Review][email]": { 1125 required : 'Please enter your Email', 1126 email : 'Invalid Email' 1127 }, 1128 "data[Review][rating]": { 1129 required : 'Please select your Rating', 1130 }, 1131 "data[Review][review]": { 1132 required : 'Please enter your Review', 1133 }, 1134 hiddenRecaptchaReview: { 1135 required: "Please confirm that you are not a robot" 1136 } 1137 } 1138 }); 1139 1140 1141 1142 //GC form validation 1143 $("#gc_form").validate({ 1144 'rules' : { 1145 "gc_to_amount": { 1146 required : true, 1147 }, 1148 "gc_to_email": { 1149 required : true, 1150 email : true 1151 }, 1152 "gc_from_name": { 1153 required : true, 1154 }, 1155 "gc_msg": { 1156 required : true, 1157 }, 1158 "gc_qty": { 1159 required : true, 1160 number: true, 1161 notEqual: '0' 1162 }, 1163 "gc_delivery_date": { 1164 required : true, 1165 } 1166 }, 1167 'messages' : { 1168 "gc_to_amount": { 1169 required : 'Please choose or enter gift card amount.', 1170 }, 1171 "gc_to_email": { 1172 required : 'Please enter an email for recipient', 1173 email : 'Invalid Email' 1174 }, 1175 "gc_from_name": { 1176 required : 'Please enter your name', 1177 }, 1178 "gc_msg": { 1179 required : 'Please enter your message', 1180 }, 1181 "gc_qty": { 1182 required : 'Please enter number of quantity', 1183 number:"Please enter numbers only", 1184 notEqual:"Quantity can not be zero" 1185 }, 1186 "gc_delivery_date": { 1187 required : 'Please enter delivery date', 1188 } 1189 1190 } 1191 }); 1192 1193 // Customer Personal Info Form 1194 $("#personalInfo").validate({ 1195 ignore: ".ignore", 1196 'rules' : { 1197 "data[personalInfo][first_name]": { 1198 required : true 1199 }, 1200 "data[personalInfo][last_name]": { 1201 required : true, 1202 }, 1203 "data[personalInfo][login_email]": { 1204 required : true, 1205 email : true, 1206 remote: { 1207 url: $("#base_path").val()+"/site/checkEmail", 1208 type: "post", 1209 data: { 1210 email_id: function() { 1211 return $("#personalInfoLoginEmail").val(); 1212 }, 1213 profile_email : true 1214 } 1215 } 1216 }, 1217 "data[personalInfo][c_login_email]": { 1218 required : true, 1219 change_match_email: true 1220 }, 1221 "data[personalInfo][login_phone]": { 1222 required : true, 1223 number : true, 1224 minlength : 10, 1225 remote: { 1226 url: $("#base_path").val()+"/site/checkPhone", 1227 type: "post", 1228 data: { 1229 phone_number: function() { 1230 return $("#personalInfoLoginPhone").val(); 1231 }, 1232 profile_phone : true 1233 } 1234 } 1235 }, 1236 "data[personalInfo][c_login_phone]": { 1237 required : true, 1238 number : true, 1239 change_match_phone: true 1240 }, 1241 }, 1242 'messages' : { 1243 "data[personalInfo][first_name]": { 1244 required : 'Please enter your first name', 1245 }, 1246 "data[personalInfo][last_name]": { 1247 required : 'Please enter your last name', 1248 }, 1249 "data[personalInfo][login_email]": { 1250 required : 'Please enter your email', 1251 email : 'Invalid email', 1252 remote : "Email already exists" 1253 }, 1254 "data[personalInfo][c_login_email]": { 1255 required : 'Please enter your confirm email', 1256 change_match_email : 'Confirm email does not match' 1257 }, 1258 "data[personalInfo][login_phone]": { 1259 required : 'Please enter your mobile number', 1260 number : 'Invalid mobile number', 1261 minlength : "Mobile number should have at least 10 characters", 1262 remote : "Mobile number already exists" 1263 }, 1264 "data[personalInfo][c_login_phone]": { 1265 required : 'Please enter your confirm mobile number', 1266 number : 'Invalid mobile number', 1267 change_match_phone : 'Confirm mobile number does not match' 1268 }, 1269 } 1270 }); 1271 1272 1273 1274 jQuery.validator.addMethod("validatePersonalEmail", function(val, elm) { 1275 var em = $("#personalInfoLoginEmail").val(); 1276 return checkValidateEmail(em); 1277 }); 1278 1279 jQuery.validator.addMethod("change_match_email", function(val, elm) { 1280 if($("#personalInfoLoginEmail").val() == $("#personalInfoCLoginEmail").val()){ 1281 return true; 1282 }else{ 1283 return false;
1284 } 1285 }); 1286 jQuery.validator.addMethod("change_match_phone", function(val, elm) { 1287 if($("#personalInfoLoginPhone").val() == $("#personalInfoCLoginPhone").val()){ 1288 return true; 1289 }else{ 1290 return false; 1291 } 1292 }); 1293 // Change Password Form 1294 $("#changePassword").validate({ 1295 ignore: ".ignore", 1296 'rules' : { 1297 "data[changePassword][current_password]": { 1298 required : true, 1299 minlength: 6, 1300 remote: { 1301 url: $("#base_path").val()+"/api/checkContactPassword", 1302 type: "post", 1303 data: { 1304 current_password: function() { 1305 return $("#changePasswordCurrentPassword").val(); 1306 } 1307 } 1308 } 1309 }, 1310 "data[changePassword][new_password]": { 1311 required : true, 1312 minlength: 6 1313 }, 1314 "data[changePassword][confirm_password]": { 1315 required : true, 1316 minlength: 6, 1317 change_match_password: true 1318 } 1319 }, 1320 'messages' : { 1321 "data[changePassword][current_password]": { 1322 required : 'Please enter your current password', 1323 minlength: 'Password should contain atleast 6 characters', 1324 remote : 'Incorrect old password' 1325 }, 1326 "data[changePassword][new_password]": { 1327 required : 'Please enter your new password', 1328 minlength: 'Password should contain atleast 6 characters' 1329 }, 1330 "data[changePassword][confirm_password]": { 1331 required : 'Please enter your confirm password', 1332 minlength: 'Password should contain atleast 6 characters', 1333 change_match_password : 'Confirm Password do not match' 1334 } 1335 } 1336 }); 1337 jQuery.validator.addMethod("change_match_password", function(val, elm) { 1338 if($("#changePasswordNewPassword").val() == $("#changePasswordConfirmPassword").val()){ 1339 return true; 1340 }else{ 1341 return false; 1342 } 1343 }); 1344 1345 //Address Info Form 1346 $("#ContactAddress").validate({ 1347 'rules' : { 1348 "data[ContactAddress][ship_to]": "required", 1349 "data[ContactAddress][bill_to]": "required", 1350 "data[ContactAddress][street1]": "required", 1351 "data[ContactAddress][city]" : "required", 1352 "data[ContactAddress][state]" : "required", 1353 "data[ContactAddress][country]" : "required", 1354 "data[ContactAddress][phone]" : { 1355 required: true, 1356 minlength: 10 1357 }, 1358 "data[ContactAddress][zip_code]" : { 1359 required: true, 1360 minlength: 4 1361 } 1362 }, 1363 'messages' : { 1364 "data[ContactAddress][ship_to]": "Enter Ship to name", 1365 "data[ContactAddress][bill_to]": "Enter Bill to name", 1366 "data[ContactAddress][street1]": "Enter Address", 1367 "data[ContactAddress][city]" : "Enter City Name", 1368 "data[ContactAddress][country]" : "Choose Country", 1369 "data[ContactAddress][state]" : "Choose State", 1370 "data[ContactAddress][phone]" : { 1371 required: "Enter Phone Number", 1372 minlength: "Enter Valid Number" 1373 }, 1374 "data[ContactAddress][zip_code]" : { 1375 required : "Enter Zipcode", 1376 //number : "Invalid Zipcode", 1377 minlength: "Enter Valid Zipcode" 1378 } 1379 } 1380 }); 1381 1382 1383 //Sign in otp form validation 1384 $("#ContactSigninOtpForm").validate({ 1385 'rules' : { 1386 "data[Contact][login_email]": { 1387 required : true 1388 }, 1389 "data[Contact][login_email_otp]": { 1390 required : true, 1391 number : true, 1392 minlength: 6, 1393 remote: { 1394 url: $("#base_path").val()+"/api/checkContactOtp", 1395 type: "post", 1396 data: { 1397 otp: function() { 1398 return $("#ContactLoginEmailOtp").val(); 1399 }, 1400 email: function() { 1401 return $("#ContactOtpLoginEmail").val(); 1402 } 1403 } 1404 } 1405 }, 1406 "data[User][captcha]": { 1407 required : true 1408 }, 1409 }, 1410 'messages' : { 1411 "data[Contact][login_email]": { 1412 required : 'Please enter email/mobile number' 1413 }, 1414 "data[Contact][login_email_otp]": { 1415 required : 'Please enter OTP', 1416 number : "Invalid OTP/Email/Mobile Number", 1417 minlength: "Enter Valid OTP", 1418 remote : 'Incorrect OTP/Email/Mobile Number' 1419 }, 1420 "data[User][captcha]": { 1421 required : "Please enter the security code" 1422 }, 1423 } 1424 }); 1425 1426 1427 1428 1429 1430 // Avalara related 1431 1432 var validatorP = $("#personalInfo").validate(); 1433 if (validatorP) { 1434 validator.settings.messages["data[personalInfo][login_email]"] = { 1435 validatePersonalEmail: "Email not valid" 1436 }; 1437 $("input[name='data[personalInfo][login_email]']").rules("add", { 1438 validatePersonalEmail: true, 1439 messages: { 1440 validatePersonalEmail: "Email not valid" 1441 } 1442 }); 1443 }
1444 var validatorC = $("#CustomerInfoShippingForm").validate(); 1445 if (validatorC) { 1446 $("input[name='data[CustomerInfo][state1]']").rules("add", { 1447 required: true, 1448 messages: { 1449 required: "Choose State" 1450 } 1451 }); 1452 } 1453 1454 1455}); 1456 1457jQuery.validator.addMethod("notEqual", function (value, element, param) { // Adding rules for Amount(Not equal to zero) 1458 return this.optional(element) || value != '0'; 1459}); 1460 1461 1462function checkValidateEmail(em){ 1463 1464 if(em!=''){ 1465 var regex = /(\.\.)/g; // For Double Dot like '..' 1466 var em_result = regex.test(em); 1467 var regex1 = /^^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g; 1468 var em_result1 = regex1.test(em); 1469 if (em_result==false && em_result1 == true) { 1470 return true; 1471 } else { 1472 return false; 1473 } 1474 }else{ 1475 return false; 1476 } 1477 1478} 1479 1480// Change ResetPasswordResetPasswordForm Form 1481$("#ResetPasswordResetPasswordForm").validate({ 1482 ignore: ".ignore", 1483 'rules' : { 1484 "data[ResetPassword][password]": { 1485 required : true, 1486 minlength: 6, 1487 }, 1488 "data[ResetPassword][confirm_password]": { 1489 required : true, 1490 minlength: 6, 1491 change_match_reset_password: true 1492 } 1493 }, 1494 'messages' : { 1495 "data[ResetPassword][password]": { 1496 required : 'Please enter your current password', 1497 minlength: 'Password should contain at least 6 characters' 1498 }, 1499 "data[ResetPassword][confirm_password]": { 1500 required : 'Please enter your confirm password', 1501 minlength: 'Password should contain at least 6 characters', 1502 change_match_reset_password : 'Confirm Password do not match' 1503 } 1504 } 1505}); 1506jQuery.validator.addMethod("change_match_reset_password", function(val, elm) { 1507 if($("#ResetPasswordPassword").val() == $("#ResetPasswordConfirmPassword").val()){ 1508 return true; 1509 }else{ 1510 return false; 1511 } 1512});
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.