PageSourceSearch

https://aquanautscuba.co.uk/js/validate.js

js aquanautscuba.co.uk collected 2026-09-30 02:17:52 UTC 45,660 bytes, 1,507 lines download raw bytes

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

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.