PageSourceSearch

https://webchat.moneris.com/webchat/js/form.validation.js

js moneris.com collected 2026-09-24 08:37:33 UTC 5,634 bytes, 180 lines download raw bytes

1
2var errors_english = {
3		gcaptcha : "Please validate.",
4		name : "Please enter your name.",
5		businessName : "Please enter your business name.",
6		help : "Please indicate the reason you are contacting us. Your message should be no longer than 300 characters.",
7		time : "Please select when you would like to be called.",
8		phoneNumber : "Please enter a 10-digit number.",
9		phoneNumberExtension : "Please enter numbers only.",
10		merchantNumber : "Please enter the last 9 digits of your Merchant Number.",
11		chat_input : "Your message should be no longer than 500 characters.",
12		unavailable : "Due to a high volume of request, this option is currently unavailable. Please try again in a few minutes.",
13		last_message: "We experienced a technical issue while sending your last message. Please try again."
14};
15
16var errors_french = {
17		gcaptcha : "Veuillez valider.",
18		name : "Veuillez entrer votre nom.",
19		businessName : "Veuillez entrer le nom de votre entreprise.",
20		help : "Veuillez indiquer la raison pour laquelle vous désirez communiquer avec nous. Assurez-vous que votre message ne dépasse pas 300 caractères.",
21		time : "Veuillez sélectionner le meilleur moment pour vous appeler.",
22		phoneNumber : "Veuillez entrer un nombre composé de 10 chiffres.",
23		phoneNumberExtension : "Veuillez entrer uniquement des chiffres.",
24		merchantNumber : "Veuillez entrer les 9 derniers chiffres de votre numéro de commerçant.",
25		chat_input : "Assurez-vous que votre message ne dépasse pas 500 caractères.",
26		unavailable : "En raison du volume élevé demandes, cette option n’est pas disponible en ce moment. Veuillez réessayer dans quelques minutes.",
27		last_message: "Nous avons rencontré un problème technique lors de l’envoi de votre dernier message. Veuillez essayer à nouveau."
28};
29
30if($('#language').val() == "French")
31{
32	var error_list = errors_french;
33}
34else
35{
36	var error_list = errors_english;
37}
38
39function fieldValidationOnSubmit(submission_type)
40{
41	error = false;
42	
43	var callNowFields = ["name", "businessName", "merchantNumber", "phoneNumber", "phoneNumberExtension", "help"];
44	var scheduleCallbackFields = ["name", "businessName", "merchantNumber", "time", "phoneNumber", "phoneNumberExtension", "help"];
45	var liveChatFields = ["name", "businessName", "merchantNumber", "help"];
46	
47	switch(submission_type)
48	{
49		case "callNow":
50			fieldsToValidate = callNowFields;
51			break;
52		case "scheduleCallback":
53			fieldsToValidate = scheduleCallbackFields;
54			break;
55		case "liveChat":
56			fieldsToValidate = liveChatFields;
57			break;
58	}
59	
60	//Check for error
61	for(var i = 0; i < fieldsToValidate.length; i++)
62	{
63		$("#" + fieldsToValidate[i]).trigger("keyup");
64		
65		if($("#" + fieldsToValidate[i]).attr("data-error") == "true")
66		{
67			error = true;
68		}
69	}
70	
71	//Captcha Validation
72	var gverify = $('#g-recaptcha-response').val();
73	if(gverify.length != 0 && error == false)
74	{
75		error = false;
76	}
77	else if(gverify.length == 0)
78	{
79		$('#grecaptchaerrorlabel').html(error_list.gcaptcha);
80		$('#grecaptchaerrorlabel').show();
81		error = true;
82	}
83	
84	return error;	
85}
86
87
88function fieldValidationEvent(fieldName, type, length)
89{
90	var fieldTag = "#" + fieldName;
91	$(fieldTag).keyup(function()
92	{
93		var data = $(fieldTag).val();
94		
95		if(fieldValidation(data, type, length))
96		{
97			$(fieldTag).attr("data-error", "false");
98			$(fieldTag + "Container .errorMsg").html("");
99			$(fieldTag + "Container .errorMsg").hide();
100		}
101		else
102		{
103			$(fieldTag).attr("data-error", "true");
104			$(fieldTag + "Container .errorMsg").html(error_list[fieldName]);
105			$(fieldTag + "Container .errorMsg").show();
106		}
107	});	
108}
109
110
111function fieldValidation(data, type, length)
112{
113	data = data.replace(/</g, "&lt;");
114	data = data.replace(/>/g, "&gt;");
115	
116	var lengthRange = length.split("-");
117	
118	switch(type) 
119	{ 
120		case 'n' :
121			pattern = "[\\d.]{" + lengthRange[0] + "," + lengthRange[1] + "}";
122			break;
123			
124		case 'a':
125			pattern = "[A-Za-z\\u00C0-\\u017F]{" + lengthRange[0] + "," + lengthRange[1] + "}";
126			break;
127
128		case 'an' :
129			pattern = "[\\dA-Za-z\\u00C0-\\u017F]{" + lengthRange[0] + "," + lengthRange[1] + "}";
130			break;
131
132		case 'ans' :
133			pattern = "[\\dA-Za-z\\u00C0-\\u017F .&'-’]{" + lengthRange[0] + "," + lengthRange[1] + "}";
134			break;
135			
136		case 'as' :
137			pattern = "[A-Za-z\\u00C0-\\u017F .'’-]{" + lengthRange[0] + "," + lengthRange[1] + "}";
138			break;
139			
140		case 'bn' :
141			pattern = "(?:[\\d]{" + lengthRange[0] + "," + lengthRange[1] + "})?";
142			break;
143			
144		default:
145			pattern = "[A-Za-z\\u00C0-\\u017F\\d !#\$%&()+,-.\/:;=?@[\\]^_|~\"'\r\n’{}<>*]{" + lengthRange[0] + "," + lengthRange[1] + "}";
146			break;
147	}
148		
149	var patternExp = new RegExp("^" +  pattern + "$");
150
151	return patternExp.test(data.trim());
152	
153}
154
155// function formReset()
156// {
157// 	var formFields = ["name", "businessName", "merchantNumber", "time", "phoneNumber", "phoneNumberExtension", "help"];
158	
159// 	for(var i = 0; i < formFields.length; i++)
160// 	{	
161// 		var fieldTag = "#" + formFields[i];
162// 		$(fieldTag).val('');
163// 		$(fieldTag + "Container .errorMsg").attr("data-error", "false");
164// 		$(fieldTag + "Container .errorMsg").html("");
165// 		$(fieldTag + "Container .errorMsg").hide();
166// 	}
167	
168// 	$('#g-recaptcha-response').val("");
169// }
170
171
172//Create Error Events
173fieldValidationEvent("name", "as", "1-30");
174fieldValidationEvent("businessName", "ans", "1-30");
175fieldValidationEvent("merchantNumber", "bn", "9-9");
176fieldValidationEvent("phoneNumber", "n", "10-10");
177fieldValidationEvent("phoneNumberExtension", "n", "0-10");
178fieldValidationEvent("time", "n", "1-3");
179fieldValidationEvent("help", "", "1-300");
180fieldValidationEvent("chat_input", "", "0-500");

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.