PageSourceSearch

https://shop.centremapslive.co.uk/js/login.js?ver=8

js centremapslive.co.uk collected 2026-09-26 15:12:44 UTC 94,853 bytes, 1,741 lines download raw bytes

1/*-------------------------------------------------------------------
2login.js
3For CentreMapsLive Ver. 2
4Code for login/registering
5Lovell Jonhs Ltd.
601/01/10
7//------------------------------------------------------------------*/
8
9//-------------------------------------------------------------------------LOGIN SCRIPTS
10
11var registerXpos = '0 px';
12// var resourceURL = "https://cmlive.cmaps-aws.co.uk";
13var resourceURL = "";
14
15
16//*******************Set focus on the login form
17function setFocus() {
18    document.loginform.username.focus();
19}
20
21//*******************Clear input when focus on the login email input
22function clearInput() {
23    if (document.loginform.username.value == "Email Address") {
24        document.loginform.username.value = "";
25    }
26}
27
28//****************Show login form automatically
29function showLoginOnLoad() {
30    if (document.varform.cid.value == "") {
31        showHideRegister("hide");									//Ensure register info hidden
32        showHideLoginContent("content");
33        if (document.getElementById("loginPopup") != null) {
34            const winWidth = window.innerWidth;
35            document.getElementById("loginPopup").style.left = String(winWidth - 590) + 'px';
36            document.getElementById("loginPopup").style.display = 'block';
37        }
38    }
39}
40
41//****************Show/Hide login form
42function showLogin(e) {
43    evt = e || window.event;
44    if (document.varform.cid.value != "") {			//Already logged in - log-out
45        runLogin("out", "map");
46    } else {
47        showHideRegister("hide");									//Ensure register info hidden
48        showHideLoginContent("content");
49        if (document.getElementById("loginPopup") != null) {
50            if (evt != null) {
51                document.getElementById("loginPopup").style.left = String(evt.clientX - 60) + 'px';
52            }
53            document.getElementById("loginPopup").style.display = 'block';
54        }
55    }
56}
57
58function hideLogin() {
59    if (document.getElementById("loginPopup") != null) {
60        document.getElementById("loginPopup").style.display = 'none';
61    }
62}
63
64//****************Show/Hide login box content
65function showHideLoginContent(contentToShow) {
66    if (contentToShow == "content") {
67        if (document.getElementById("loginContent") != null) {
68            document.getElementById("loginContent").style.display = 'block';
69        }
70        if (document.getElementById("loginMessage") != null) {
71            document.getElementById("loginMessage").style.display = 'none';
72        }
73    } else if (contentToShow == "message") {
74        if (document.getElementById("loginContent") != null) {
75            document.getElementById("loginContent").style.display = 'none';
76        }
77        if (document.getElementById("loginMessage") != null) {
78            document.getElementById("loginMessage").style.display = 'block';
79        }
80    }
81}
82
83//****************Run Login
84function runLogin(theAction, theSourcePage) {
85    let loginUsername;
86//Validate input
87    let isOK = true;
88    if (theAction == "in") {
89        //Check the 'User Name' field valid
90        //isOK = validateEmail();
91        let isEmailAddress = true;
92        if (document.loginform.username.value == "") {											//Name field must not be empty
93            showDialog('Warning', 'Please enter your registered Email in the "Email Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
94            isOK = false;
95        } else if ((document.loginform.username.value.search("@") == -1) || (document.loginform.username.value.search("[.*]") == -1)) {
96            isEmailAddress = false;		//User name is not an email address
97        }
98        if (!isEmailAddress) {		//User name is not an email address allow it to be used (maybe username alias) providing only alpha-numeric
99            if (!document.loginform.username.value.match("^[a-z|A-Z|0-9]*$")) {
100                showDialog('Warning', 'Invalid Username. Username must contain only numbers and letters.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
101                isOK = false;
102            }
103        }
104        if (isOK) {
105            //Check the 'Password' field
106            if (document.loginform.pwd.value == "") {											//Password field must not be empty
107                showDialog('Warning', 'Please enter a value for the "Password" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
108                isOK = false;
109            } else if (!document.loginform.pwd.value.match(passwordRegex())) {
110                showDialog('Warning', 'Invalid Password. Password must contain only numbers and letters.<br/>If you used this password in the previous site please contact ' + document.varform.thesitename.value + '.<br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
111                isOK = false;
112            }
113        }
114    }
115    if (isOK) {
116        if (theSourcePage == "map") {
117            if (document.loginform.loginid.value != "") {
118                loginUsername = document.loginform.loginid.value;
119            } else {
120                loginUsername = document.loginform.username.value;
121            }
122            jQuery.ajax({
123                type: "POST",
124                dataType: "json",
125                //url: "http://shop.centremapslive.co.uk/runLogin2.php?callback=?",
126                url: "runLogin2.php?callback=?",
127                data: {
128                    name: loginUsername,
129                    pwd: document.loginform.pwd.value,
130                    login: theAction,
131                    type: "normal",
132                    site: document.loginform.loginsite.value,
133                    sitetype: "full"
134                },
135                success: loginResponse
136            });
137        } else {
138            jQuery.ajax({
139                type: "POST",
140                dataType: "json",
141                //url: "http://shop.centremapslive.co.uk/runLogin2.php?callback=?",
142                url: "runLogin2.php?callback=?",
143                data: {
144                    name: document.loginform.username.value,
145                    pwd: document.loginform.pwd.value,
146                    login: theAction,
147                    type: "normal",
148                    site: document.loginform.loginsite.value,
149                    sitetype: "full"
150                },
151                success: loginResponse2
152            });
153        }
154    }
155}
156
157//****************Response from running the login
158function loginResponse(responseText) {
159    //alert(responseText)
160    //Get the returned values
161    document.varform.cid.value = "";					//Ensure no customer id is stored
162    document.varform.companyid.value = "";				//Ensure no company id is stored
163    if (responseText != "") {
164        var tempArray = responseText.data.split("~");
165        if (tempArray[0] == "ok") {
166            if (tempArray[1] == "out") {				//Logging OUT
167                //Reload the page in order to clear everything (calls changeMappingRegion with existing region)
168                if (tempArray[2] == "yes") {
169                    window.location.href = "portalLogin.php";
170                } else {
171                    changeMappingRegion(document.varform.region.value, "", "change");
172                }
173            } else {									//Logging IN
174                //Update header
175                document.getElementById("loginInfo").style.height = "34px";
176                document.getElementById("loginInfo").style.padding = "3px";
177                document.getElementById("loginInfo").innerHTML = "Logout: " + tempArray[1];
178                document.getElementById("accountInfo").innerHTML = "YOUR ACCOUNT</a>";
179
180                //Hide login or register box
181                if (tempArray[3] == "register") {
182                    showHideRegister("hide");
183                } else if (tempArray[3] == "normal") {
184                    hideLogin();
185                    //Get the most ordered product if on the main map page
186                    if (document.getElementById("mostOrderedContainer") != null) {
187                        var qstring = "thereg=" + document.varform.region.value;
188                        var mostOrderedReq = new ajaxObject('getMostOrdered.php', getMostOrderedResponse);
189                        mostOrderedReq.update(qstring, 'POST');
190                    }
191                }
192                //Store customer info in hidden
193                document.varform.cid.value = tempArray[2];
194                document.varform.companyid.value = tempArray[5];
195                document.varform.tenkMapType.value = tempArray[6];
196                document.varform.currentFreeViewCredit.value = tempArray[7];
197                document.varform.isprivilege.value = tempArray[8];
198                document.varform.currentViewCredit.value = tempArray[9];
199                document.varform.isRetailOutlet.value = tempArray[10];
200                document.varform.os25kMapType.value = tempArray[11];
201                document.varform.ukmapprompt.value = tempArray[12];
202                document.varform.userAerialHeightPrompt.value = tempArray[13];
203                //Make selection of OS25k visible if necessary
204                if (tempArray[11] == "yes") {
205                    document.getElementById("os25kselect").style.display = "block";
206                }
207                //If the current map scale is to show detail reload the mapping the show this (indicates the user has logged in to show detailed mapping)
208                if (map.getScale() <= largeScaleCheckScale) {
209                    map.setCenter(new OpenLayers.LonLat(map.getCenter().lon, map.getCenter().lat)); 		//Just redraw with the same centre
210                }
211                getProductCategories(document.varform.region.value);
212
213                //Show large scale mapping prompt if necessary
214                if (showMMAfterLogin) {
215                    //Ensure we use the account setting if set to no for UKmap prompting
216                    if (document.varform.ukmapprompt.value == "no") {
217                        ukMapMessage = "no";
218                    }
219                    var qstring = "x=" + map.getCenter().lon + "&y=" + map.getCenter().lat;
220                    ukmapcheckReq = new ajaxObject('checkUKMap.php', handleukmapcheckResponse);
221                    ukmapcheckReq.update(qstring, 'POST');
222                }
223            }
224        } else if (tempArray[0] == "pending") {			//More than 1 user found - show links to choose the user
225            showHideLoginContent("message");
226            document.getElementById("loginMessage").innerHTML = "<strong>Please choose the account -<br/></strong>" + tempArray[4] + "<br/><a href='javascript:showHideLoginContent(\"content\");'>&lt; Back to Login.</a>";
227        } else {
228            //Show error message
229            showHideLoginContent("message");
230            if (tempArray[3] == "register") {
231                document.getElementById("registerMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please try <a href='javascript:showHideLoginContent(\"content\");'>again.</a></p>";
232            } else if (tempArray[3] == "normal") {
233                //Define the error message
234                if (tempArray[14] == "no") {		//Logged in OK, but account not authorised
235                    document.getElementById("loginMessage").innerHTML = "<br/><p>No activated account found. <br/>Please check your emails to complete <br/>account set up or <a href=\"mailto:" + tempArray[15] + "\">contact us.</a></p>";
236                } else {
237                    document.getElementById("loginMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please try <a href='javascript:showHideLoginContent(\"content\");'>again.</a></p>";
238                }
239            }
240        }
241    } else {
242        //Show error message
243        showHideLoginContent("message");
244        if (tempArray[3] == "register") {
245            document.getElementById("registerMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please try <a href='javascript:showHideLoginContent(\"content\");'>again.</a></p>";
246        } else if (tempArray[3] == "normal") {
247            document.getElementById("loginMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please try <a href='javascript:showHideLoginContent(\"content\");'>again.</a></p>";
248        }
249    }
250}
251
252//****************Response from running the login when run from login page
253function loginResponse2(responseText) {
254    //Get the returned values
255    document.varform.cid.value = "";				//Ensure no customer id is stored
256    if (responseText != "") {
257        var tempArray = responseText.data.split("~");
258        if (tempArray[0] == "ok") {
259            if (tempArray[1] == "out") {				//Logging OUT
260            } else {									//Logging IN
261                //Store customer info in hidden
262                document.varform.cid.value = tempArray[2];
263                document.varform.companyid.value = tempArray[5];
264                document.varform.tenkMapType.value = tempArray[6];
265                document.varform.currentFreeViewCredit.value = tempArray[7];
266                document.varform.isprivilege.value = tempArray[8];
267                document.varform.currentViewCredit.value = tempArray[9];
268                document.varform.os25kMapType.value = tempArray[11];
269                goToHome();
270            }
271        }
271 else if (tempArray[0] == "pending") {			//More than 1 user found - show links to choose the user
272            var thepos = tempArray[4].indexOf("<Back to Login.")
273            if (thepos != -1) {
274                var proceedMessage = tempArray[4].substring(0, thepos);
275            } else {
276                var proceedMessage = tempArray[4];
277            }
278            document.getElementById("loginMessage").innerHTML = "<p><br/><strong>Please choose the account -</strong><br/>" + proceedMessage + "</p>";
279        } else {
280            //Show error message
281            if (tempArray[3] == "register") {
282                document.getElementById("registerMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please try again.</p>";
283            } else if (tempArray[3] == "normal") {
284                if (tempArray[14] == "no") {		//Logged in OK, but account not authorised
285                    document.getElementById("loginMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please check your emails to complete <br/>account set up or contact us.</a></p>";
286                } else {
287                    document.getElementById("loginMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please try again.</a></p>";
288                }
289            }
290        }
291    } else {
292        //Show error message
293        if (tempArray[3] == "register") {
294            document.getElementById("registerMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please try again.</p>";
295        } else if (tempArray[3] == "normal") {
296            document.getElementById("loginMessage").innerHTML = "<br/><p class='error'>Please check your username and <br/>password. If you still can't log in, <br/>please contact us.<br/><br/>Please try again.</p>";
297        }
298    }
299
300}
301
302//****************Response from relogging in after account upgrade request
303function loginResponse3(responseText, responseStatus) {
304    if (responseStatus == 200) {
305        //Get the returned values
306        document.varform.cid.value = "";				//Ensure no customer id is stored
307        if (responseText !== "") {
308            let tempArray = responseText.split("|");
309            if (tempArray[0] == "ok") {
310                if (tempArray[1] == "out") {				//Logging OUT
311                } else {									//Logging IN
312                    //Store customer info in hidden
313                    document.varform.cid.value = tempArray[2];
314                    document.varform.companyid.value = tempArray[5];
315                    document.varform.tenkMapType.value = tempArray[6];
316                    document.varform.currentFreeViewCredit.value = tempArray[7];
317                    document.varform.isprivilege.value = tempArray[8];
318                    document.varform.currentViewCredit.value = tempArray[9];
319                    submittheform("user");				//Refresh the page
320
321                    //Show large scale mapping prompt if necessary
322                    /*
323                    if(showMMAfterLogin){
324                        //Ensure we use the account setting if set to no for UKmap prompting
325                        if(document.varform.ukmapprompt.value == "no"){
326                            ukMapMessage = "no";
327                        }
328                        var qstring = "x=" + map.getCenter().lon + "&y=" + map.getCenter().lat;
329                        alert(qstring)
330                        ukmapcheckReq = new ajaxObject('checkUKMap.php', handleukmapcheckResponse);
331                        ukmapcheckReq.update(qstring,'POST');
332                    }
333                    showMMAfterLogin = false;*/
334
335                }
336            } else {
337                //Show error message
338                showDialog('Warning', 'Could not refresh details. Please login again.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
339            }
340        } else {
341            //Show error message
342            showDialog('Warning', 'Could not refresh details. Please login again.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
343        }
344    }
345}
346
347//*******************Login from choice where user has more than one account with the same password and id
348function reLogin(itemNo) {
349    if (window.location.pathname.indexOf("login.php") != -1) {    //Called from login page
350        jQuery.ajax({
351            type: "POST",
352            dataType: "json",
353            //url: "http://shop.centremapslive.co.uk/runLogin2.php?callback=?",
354            url: "runLogin2.php?callback=?",
355            data: {cid: itemNo, type: "normal", sitetype: "full"},
356            success: loginResponse2
357        });
358    } else {
359        jQuery.ajax({
360            type: "POST",
361            dataType: "json",
362            url: "runLogin2.php?callback=?",
363            data: {cid: itemNo, type: "normal", sitetype: "full"},
364            success: loginResponse
365        });
366    }
367}
368
369//*******************Open login area when prompted to do so when trying to look at detailed mapping
370function loginForMM() {
371    showMMAfterLogin = true;
372    showLoginOnLoad();
373    document.getElementById("previewsInfoContentContainer").style.display = "none";
374}
375
376//*******************Open register area when prompted to do so when trying to look at detailed mapping
377function registerForMM() {
378    showMMAfterLogin = true;
379    showRegisterOnLoad();
380    document.getElementById("previewsInfoContentContainer").style.display = "none";
381}
382
383//****************Response from retrieving the most ordered product
384function getMostOrderedResponse(responseText, responseStatus) {
385    if (responseStatus == 200) {
386        document.getElementById("mostOrderedContainer").innerHTML = responseText;
387    }
388}
389
390//****************Run Login to portal site
391function runPortalLogin(theAction) {
392    //Validate input
393    let isOK = true;
394    if (theAction === "in") {
395        if (document.loginform.username.value === "") {											//User name field must not be empty
396            showDialog('Warning', 'Please enter a value for the "User name" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
397            isOK = false;
398            //}else if(!document.loginform.username.value.match("^[0-9]*$")) {
399        } else if (!document.loginform.username.value.match("^[a-z|A-Z|0-9|@\._\-]*$")) {
400            showDialog('Warning', 'Invalid User Name. User name must contain only numbers and characters.<br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
401            isOK = false;
402        } else {
403            //Check the 'Password' field
404            if (document.loginform.pwd.value === "") {											//Password field must not be empty
405                showDialog('Warning', 'Please enter a value for the "Password" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
406                isOK = false;
407            } else if (!document.loginform.pwd.value.match(passwordRegex())) {
408                showDialog('Warning', `${passwordValidationContentError()}<br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >`, 'warning');
409                isOK = false;
410            }
411        }
412    }
413    if (isOK) {
414        if (window.location.pathname.indexOf("portalLogin.php") !== -1) {
415            jQuery.ajax({
416                type: "POST",
417                dataType: "json",
418                //url: "http://shop.centremapslive.co.uk/runLogin2.php?callback=?",
419                url: "runLogin2.php?callback=?",
420                data: {
421                    name: document.loginform.username.value,
422                    pwd: document.loginform.pwd.value,
423                    login: theAction,
424                    type: "normal",
425                    site: document.loginform.loginsite.value,
426                    sitetype: "portal"
427                },
428                success: loginResponse2
429            });
430        } else {
431            jQuery.ajax({
432                type: "POST",
433                dataType: "json",
434                //url: "http://shop.centremapslive.co.uk/runLogin2.php?callback=?",
435                url: "runLogin2.php?callback=?",
436                data: {
437                    name: document.loginform.username.value,
438                    pwd: document.loginform.pwd.value,
439                    login: theAction,
440                    type: "normal",
441                    site: document.loginform.loginsite.value,
442                    sitetype: "portal"
443                },
444                success: loginResponse
445            });
446        }
447    }
448}
449
450//-------------------------------------------------------------------------PASSWORD RESET SCRIPTS
451//****************Send Email Password Reset to the user
452function sendPasswordReminder() {
453    let isOK = validateEmail();				//Validate input
454    if (isOK) {
455        jQuery.ajax({
456            type: "GET",
457            dataType: "jsonp",
458            url: "sendPasswordEmail2.php?callback=?",
459            data: {name: document.loginform.username.value, site: document.loginform.loginsite.value},
460            success: reminderResponse
461        });
462    }
463}
464
465//****************Response from sending password reset email
466function reminderResponse(responseText) {
467    if (responseText != "") {
468        showHideLoginContent("message");
469        if (window.location.pathname.indexOf("login.php") !== -1) {		//Run from login page
470            if (responseText.data !== "") {
471                if (responseText.data === "OK") {			//Go to the reset page
472                    document.getElementById("loginform").action = "resetPassword.php";
473                    document.getElementById("loginform").submit();
474                } else {
475                    document.getElementById("loginMessage").innerHTML = "<br/><p style='font-size:10px;'>" + responseText.data + "</p>";
476                }
477            } else {
478                document.getElementById("loginMessage").innerHTML = "<br/><p style='color:#FF0000;font-size:10px;'>There has been a problem retrieving your password.<br/>Ensure your email address is correct or contact " + document.varform.thesitename.value + ".</p>";
479            }
480        } else {															//Run from map page
481            if (responseText.data !== "") {
482                if (responseText.data === "OK") {			//Go to the reset page
483                    document.getElementById("loginform").action = "resetPassword.php";
484                    document.getElementById("loginform").submit();
485                } else {
486                    document.getElementById("loginMessage").innerHTML = "<br/><p style='font-size:10px;'>" + responseText.data + "</p><br/><a href='javascript:hideLogin();'>Close [x]</a>";
487                }
488            } else {
489                document.getElementById("loginMessage").innerHTML = "<br/><p style='color:#FF0000;font-size:10px;'>There has been a problem retrieving your password.<br/>
489Ensure your email address is correct or contact " + +document.varform.thesitename.value + ".</p><br/><a href='javascript:hideLogin();'>Close [x]</a>";
490            }
491        }
492    }
493}
494
495//****************Send Email Password Reset to the user (From Portal login)
496function sendPortalPasswordReminder1() {
497    //Show input for user email address
498    document.getElementById("pwdReminder").style.display = "block";
499}
500
501function sendPortalPasswordReminder2() {
502    if (document.loginform.useremail.value === "") {
503        showDialog('Warning', 'Please enter a value for the "User email" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
504    } else {
505        let isOK = validateEmail2(document.loginform.useremail.value);				//Validate input
506        if (isOK) {
507            jQuery.ajax({
508                type: "GET",
509                dataType: "jsonp",
510                url: "sendPasswordEmail2.php?callback=?",
511                data: {name: document.loginform.useremail.value, site: document.loginform.loginsite.value},
512                success: portalReminderResponse
513            });
514        }
515    }
516}
517
518//****************Validate email address before sending password reset (From Portal login /Admin area)
519function validateEmail2(passedEmail) {
520    let isOK = true;
521    if (passedEmail === "") {											//Name field must not be empty
522        showDialog('Warning', 'Please enter your registered Email in the "Email Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
523        isOK = false;
524    } else if ((passedEmail.search("@") === -1) || (passedEmail.search("[.*]") === -1)) {
525        showDialog('Warning', 'Please ensure your "Email Address" is a valid email address.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
526        isOK = false;
527    }
528    return isOK;
529}
530
531//****************Response from sending password reset email (From Portal login)
532function portalReminderResponse(responseText) {
533    if (responseText != "") {
534        if (responseText.data !== "") {
535            if (responseText.data === "OK") {			//Go to the reset page
536                document.getElementById("loginform").action = "resetPassword.php";
537                document.getElementById("loginform").submit();
538            } else {
539                document.getElementById("loginMessage").innerHTML = "<br/><p style='font-size:10px;'>" + responseText.data + "</p>";
540            }
541        } else {
542            document.getElementById("loginMessage").innerHTML = "<br/><p style='color:#FF0000;font-size:10px;'>There has been a problem retrieving your password.<br/>Ensure your email address is correct or contact " + document.varform.thesitename.value + ".</p>";
543        }
544    }
545}
546
547//*******************Show reset dialog for user to enter email title and message
548function adminResetPassword1(passedEmail, passedSite) {
549    //Show input dialog and store info for reset email in hidden
550    document.getElementById("resetPasswordOptions").style.display = "block";
551    document.getElementById("resetEmail").value = passedEmail;
552    document.getElementById("resetSite").value = passedSite;
553}
554
555//*******************Send password reset email (From admin area)
556function adminResetPassword2() {
557    if ((document.getElementById("resetEmail").value === "") || (document.getElementById("resetSite").value === "")) {
558        showDialog('Error', 'Reset email or site not defined.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'errordialog');
559    } else {
560        let isOK = validateEmail2(document.getElementById("resetEmail").value);				//Validate input
561        if (isOK) {
562            jQuery.ajax({
563                type: "GET",
564                dataType: "jsonp",
565                url: "../sendPasswordEmail2.php?callback=?",
566                data: {
567                    name: document.getElementById("resetEmail").value,
568                    site: document.getElementById("resetSite").value,
569                    title: document.getElementById("resetTitle").value,
570                    message: document.getElementById("resetMessage").value
571                },
572                success: adminReminderResponse
573            });
574        }
575    }
576}
577
578//*******************Response from sending password reset email (From admin area)
579function adminReminderResponse(responseText) {
580    if (responseText != "") {
581        if (responseText.data !== "") {
582            if (responseText.data === "OK") {
583                showDialog('Success', 'Reset email has been sent to the customer.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'success');
584            } else {
585                showDialog('Error', 'There has been a problem retrieving the password.<br/>Ensure the email address is correct<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'errordialog');
586            }
587        } else {
588            showDialog('Error', 'There has been a problem retrieving the password.<br/>Ensure the email address is correct<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'errordialog');
589        }
590    }
591    resetPasswordClose();
592}
593
594//*******************Close reset dialog
595function resetPasswordClose() {
596    document.getElementById("resetPasswordOptions").style.display = "none";
597}
598
599/**
600 * @param {string} elementId
601 */
602function getValue(elementId) {
603    return trim(getElement(elementId).value);
604}
605/**
606 * @param {string} elementId
607 */
608function getElement(elementId) {
609    return document.getElementById(elementId);
610}
611
612//*******************Call script to reset the password
613function resetPwd(passedSite) {
614    //Validate input
615    let isOK = true;
616    isOK = validateEmail();																//Check the 'User Name' field
617    if (isOK) {
618        //Check the 'Password' fields
619        if ((getValue("txtPwd1") === "") || (getValue("txtPwd2") === "") || (getValue("txtPwd3") === "")) {
620            //Password field must not be empty
621            showDialog('Warning', 'Please enter a value for the "Password" fields.
621<br/><br/><input type="button"' +
622                ' value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
623            isOK = false;
624        } else if ((!getValue('txtPwd1').match(passwordRegex())) || (!getValue("txtPwd2").match(passwordRegex())) || (!getValue("txtPwd3").match(passwordRegex()))) {
625            showDialog('Warning', `${passwordValidationContentError()}<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >`, 'warning');
626            isOK = false;
627        } else if ((getValue("txtPwd2").length > passwordMaxLength()) || (getValue("txtPwd2").length < passwordMinLength())) {
628            showDialog('Warning', `Please ensure "Password" is between ${passwordMinLength()} and ${passwordMaxLength()} characters.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >`, 'warning');
629            isOK = false;
630        } else if (getValue("txtPwd2") !== getValue("txtPwd3")) {
631            showDialog('Warning', 'Passwords don\'t match<br/><br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
632            isOK = false;
633        }
634    }
635    if (isOK) {
636        document.getElementById("resetprog").style.display = "block";
637        const parameters = {
638            name: getValue('username'),
639            pwd1: getValue("txtPwd1"),
640            pwd2: getValue("txtPwd2"),
641            pwd3: getValue("txtPwd3"),
642            site: passedSite
643        };
644        const resetReq = new ajaxObject('resetPwd.php', resetResponse2);
645        resetReq.update(buildUrlParameterString(parameters), 'POST');
646    }
647}
648
649//****************Response from resetting password
650function resetResponse2(responseText, responseStatus) {
651    if (responseStatus === 200) {
652        //Get the returned values
653        document.getElementById("resetprog").style.display = "none";
654        if (responseText !== "") {
655            responseText = trim(responseText);
656            let tempArray = responseText.split("|");
657            if (tempArray[0] === "ok") {
658                showDialog('', 'Your Password has been reset and you will now be logged on.<br/><br/><input type="button" value="Close" id="closeButton" onclick="afterResetAction();" >', 'success');
659            } else {
660                //Show error message
661                showDialog('Warning', 'Customer not found. Please check "Reset Password" and "Email" are defined correctly.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
662            }
663        } else {
664            //Show error message
665            showDialog('Warning', 'Customer not found. Please check "Reset Password" and "Email" are defined correctly.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
666        }
667    }
668}
669
670//****************Pass user to the map page
671function afterResetAction() {
672    submittheform('ordergb');
673}
674
675//*******************Call script to authorise account
676function authoriseAccount(passedSite) {
677    //Validate input
678    var isOK = true;
679    isOK = validateEmail();																//Check the 'User Name' field
680    if (isOK) {
681        //Check the  fields
682        if ((getValue("txtAuthCode") === "") || (getValue("txtPwd") === "") || (getValue("username") === "")) {
683            //Password field must not be empty
684            showDialog('Warning', 'Please enter a value for all input fields.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
685            isOK = false;
686        }
687    }
688    if (isOK) {
689        document.getElementById("authoriseProg").style.display = "block";
690        const parameters = {
691            name: getValue('username'),
692            pwd: getValue('txtPwd'),
693            authcode: getValue('txtAuthCode'),
694            site: passedSite
695        }
696
697        // var qstring = "name=" + document.getElementById("username").value + "&pwd=" + trim(document.getElementById("txtPwd").value) + "&authcode=" + document.getElementById("txtAuthCode").value + "&site=" + passedSite;
698        var resetReq = new ajaxObject('runAuthorise.php', authResponse);
699        resetReq.update(buildUrlParameterString(parameters), 'POST');
700    }
701}
702
703//****************Response from authorising the account
704function authResponse(responseText, responseStatus) {
705    if (responseStatus === 200) {
706        //Get the returned values
707        document.getElementById("authoriseProg").style.display = "none";
708        if (responseText != "") {
709            responseText = trim(responseText);
710            var tempArray = new Array();
711            tempArray = responseText.split("|");
712            if (tempArray[0] == "ok") {
713                showDialog('', 'Your account has been authorised and you will now be logged on.<br/><br/><input type="button" value="Close" id="closeButton" onclick="afterResetAction();" >', 'success');
714            } else {
715                //Show error message
716                showDialog('Warning', 'Customer not found. Please check "Authorisation Code", "Password" and "Email" are defined correctly.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
717            }
718        } else {
719            //Show error message
720            showDialog('Warning', 'Customer not found. Please check "Authorisation Code", "Password" and "Email" are defined correctly.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
721        }
722    }
723}
724
725//-------------------------------------------------------------------------VALIDATION SCRIPTS
726
727//****************Check required email is specified correctly (Simple check)
728function validateEmail() {
729    var isOK = true;
730    if (document.loginform.username.value == "") {											//Name field must not be empty
731        showDialog('Warning', 'Please enter your registered Email in the "Email Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
732        isOK = false;
733    } else if ((document.loginform.username.value.search("@") == -1) || (document.loginform.username.value.search("[.*]") == -1)) {
734        showDialog('Warning', 'Please ensure your "Email Address" is a valid email address.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
735        isOK = false;
736    }
737    return isOK;
738}
739
740//*******************Email validity check (Full check)
741function emailCheck(emailStr) {
742    /* 1.1.4: Fixed a bug where upper ASCII characters (i.e. accented letters
743    international characters) were allowed.
744    1.1.3: Added the restriction to only accept addresses ending in two
745    letters (interpreted to be a country code) or one of the known
746    TLDs (com, net, org, edu, int, mil, gov, arpa), including the
747    new ones (biz, aero, name, coop, info, pro, museum).  One can
748    easily update the list (if ICANN adds even more TLDs in the
749    future) by updating the knownDomsPat variable near the
750    top of the function.  Also, I added a variable at the top
751    of the function that determines whether or not TLDs should be
752    checked at all.  This is good if you are using this function
753    internally (i.e. intranet site) where hostnames don't have to
754    conform to W3C standards and thus internal organization e-mail
755    addresses don't have to either.
756    Changed some of the logic so that the function will work properly
757    with Netscape 6.
758    1.1.2: Fixed a bug where trailing . in e-mail address was passing
759    (the bug is actually in the weak regexp engine of the browser; I
760    simplified the regexps to make it work).
761    1.1.1: Removed restriction that countries must be preceded by a domain,
762    so [email protected] is now legal.  However, there's still the
763    restriction that an address must end in a two or three letter
764    word.
765    1.1: Rewrote most of the function to conform more closely to RFC 822.
766    1.0: Original  */
767    /* The following variable tells the rest of the function whether or not
768    to verify that the address ends in a two-letter country or well-known
769    TLD.  1 means check it, 0 means don't. */
770    var checkTLD = 1;
771    /* The following is the list of known TLDs that an e-mail address must end with. */
772    var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|cat|mobi|name|travel|house|studio|group|haus|wales|london|design)$/;
773    /* The following pattern is used to check if the entered e-mail address
774    fits the user@domain format.  It also is used to separate the username
775    from the domain. */
776    var emailPat = /^(.+)@(.+)$/;
777    /* The following string represents the pattern for matching all special
778    characters.  We don't want to allow special characters in the address.
779    These characters include ( ) < > @ , ; : \ " . [ ] */
780    var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
781    /* The following string represents the range of characters allowed in a
782    username or domainname.  It really states which chars aren't allowed.*/
783    var validChars = "\[^\\s" + specialChars + "\]";
784    /* The following pattern applies if the "user" is a quoted string (in
785    which case, there are no rules about which characters are allowed
786    and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
787    is a legal e-mail address. */
788    var quotedUser = "(\"[^\"]*\")";
789    /* The following pattern applies for domains that are IP addresses,
790    rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
791    e-mail address. NOTE: The square brackets are required. */
792    var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
793    /* The following string represents an atom (basically a series of non-special characters.) */
794    var atom = validChars + '+';
795    /* The following string represents one word in the typical username.
796    For example, in [email protected], john and doe are words.
797    Basically, a word is either an atom or quoted string. */
798    var word = "(" + atom + "|" + quotedUser + ")";
799    // The following pattern describes the structure of the user
800    var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
801    /* The following pattern describes the structure of a normal symbolic
802    domain, as opposed to ipDomainPat, shown above. */
803    var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
804    /* Finally, let's start trying to figure out if the supplied address is valid. */
805    /* Begin with the coarse pattern to simply break up user@domain into
806    different pieces that are easy to analyze. */
807    var matchArray = emailStr.match(emailPat);
808    if (matchArray == null) {
809        /* Too many/few @'s or something; basically, this address doesn't
810        even fit the general mould of a valid e-mail address. */
811        showDialog('Warning', 'Email address seems incorrect (check @ and .\'s)<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
812        return false;
813    }
814    var user = matchArray[1];
815    var domain = matchArray[2];
816    // Start by checking that only basic ASCII characters are in the strings (0-127).
817    for (i = 0; i < user.length; i++) {
818        if (user.charCodeAt(i) > 127) {
819            showDialog('Warning', 'The username contains invalid characters.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
820            return false;
821        }
822    }
823    for (i = 0; i < domain.length; i++) {
824        if (domain.charCodeAt(i) > 127) {
825            showDialog('Warning', 'The domain name contains invalid characters.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
826            return false;
827        }
828    }
829    // See if "user" is valid
830    if (user.match(userPat) == null) {
831        // user is not valid
832        showDialog('Warning', 'The username does not seem to be valid.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
833        return false;
834    }
835    /* if the e-mail address is at an IP address (as opposed to a symbolic
836    host name) make sure the IP address is valid. */
837    var IPArray = domain.match(ipDomainPat);
838    if (IPArray != null) {
839        // this is an IP address
840        for (var i = 1; i <= 4; i++) {
841            if (IPArray[i] > 255) {
842                showDialog('Warning', 'Destination IP address is invalid!<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
843                return false;
844            }
845        }
846        return true;
847    }
848    // Domain is symbolic name.  Check if it's valid.
849    var atomPat = new RegExp("^" + atom + "$");
850    var domArr = domain.split(".");
851    var len = domArr.length;
852    for (i = 0; i < len; i++) {
853        if (domArr[i].search(atomPat) == -1) {
854            showDialog('Warning', 'The domain name does not seem to be valid.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
855            return false;
856        }
857    }
858    /* domain name seems valid, but now make sure that it ends in a
859    known top-level domain (like com, edu, gov) or a two-letter word,
860    representing country (uk, nl), and that there's a hostname preceding
861    the domain or country. */
862    /*
863    //Removed this check 02-20 as knownDomsPat list is constantly changing
864    if (checkTLD && domArr[domArr.length-1].length!=2 &&
865        domArr[domArr.length-1].search(knownDomsPat)==-1) {
866        showDialog('Warning','The address must end in a well-known domain or two letter country.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >','warning');
867        return false;
868    }*/
869
870    // Make sure there's a host name preceding the domain.
871    if (len < 2) {
872        showDialog('Warning', 'This address is missing a hostname!<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
873        return false;
874    }
875    // If we've gotten this far, everything's valid!
876    return true;
877}
878
879//****************Validate user input (Registering)
880function validateInput(theType) {
881    //Name fields must not be empty
882    //if(document.getElementById("title").value == "") {
883    //	showDialog('Warning','Please enter a value for the "Title" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >','warning');
884    //	document.getElementById("title").focus();
885    //	return (false);
886    //}
887    if (document.getElementById("firstname").value == "") {
888        showDialog('Warning', 'Please enter a value for the "First Name" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
889        document.getElementById("firstname").focus();
890        return (false);
891    }
892    if (document.getElementById("secondname").value == "") {
893        showDialog('Warning', 'Please enter a value for the "Second Name" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
894        document.getElementById("secondname").focus();
895        return (false);
896    }
897    //Email Address field must not be empty and valid address
898    if (theType != "confirm") {														//No need to perform the check during order confirmation process
899        if (document.getElementById("email").value == "") {
900            showDialog('Warning', 'Please enter a value for the "Email Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
901            document.getElementById("email").focus();
902            return (false);
903        }
904        if (emailCheck(document.getElementById("email").value) == false) {
905            document.getElementById("email").focus();
906            return (false);
907        }
908        //Password field must not be empty
909        if (document.getElementById("pwd1").value == "") {
910            showDialog('Warning', 'Please enter a value for the "Password" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
911            document.getElementById("pwd1").focus();
912            return (false);
913        }
914        //Check password length
915        if ((document.getElementById("pwd1").value.length > passwordMaxLength()) || (document.getElementById("pwd1").value.length < passwordMinLength())) {
916            showDialog('Warning', `Please ensure "Password" is between ${passwordMinLength()} and ${passwordMaxLength()} characters.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >`, 'warning');
917            document.getElementById("pwd1").focus();
918            return (false);
919        }
920        if (!document.getElementById("pwd1").value.match(passwordRegex())) {
921            showDialog('Warning', `${passwordValidationContentError()}<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >`, 'warning');
922            document.getElementById("pwd1").focus();
923            document.getElementById("pwd1").value = "";
924            if (document.getElementById("pwd2") != null) {
925                document.getElementById("pwd2").value = "";
926            }
927            return (false);
928        }
929    }
930    //Check the following as part of the confirmation process
931    if (theType == "confirm") {
932        //Address field must not be empty
933        if (document.getElementById("address1").value == "") {
934            showDialog('Warning', 'Please enter a value for the "Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
935            document.getElementById("address1").focus();
936            return (false);
937        }
938        //Town field must not be empty
939        if (document.getElementById("town").value == "") {
940            showDialog('Warning', 'Please enter a value for the "Town" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
941            document.getElementById("town").focus();
942            return (false);
943        }
944        //Post Code field must not be empty
945        if (document.getElementById("postcode").value == "") {
946            showDialog('Warning', 'Please enter a value for the "Post Code" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
947            document.getElementById("postcode").focus();
948            return (false);
949        }
950        //Check Telephone for telephone number
951        if (document.getElementById("telephone").value == "") {
952            showDialog('Warning', 'Please enter a value for the "Telephone" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
953            document.getElementById("telephone").focus();
954            return (false);
955        }
956        var checkOK = "0123456789-+() \t\r\n\f";
957        var checkStr = document.getElementById("telephone").value;
958        var allValid = true;
959        for (i = 0; i < checkStr.length; i++) {
960            ch = checkStr.charAt(i);
961            for (j = 0; j < checkOK.length; j++)
962                if (ch == checkOK.charAt(j))
963                    break;
964            if (j == checkOK.length) {
965                allValid = false;
966                break;
967            }
968        }
969        if (!allValid) {
970            showDialog('Warning', 'Please enter only digit, whitespace and "+()" characters in the "Telephone" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
971            document.getElementById("telephone").focus();
972            return (false);
973        }
974    }
975    //If the further details are required check input is OK
976    if ((theType == "register") || (theType == "request")) {
977        //Check passwords match
978        if (theType == "register") {
979            if (document.getElementById("pwd1").value != document.getElementById("pwd2").value) {
980                showDialog('Warning', '"Password" not verified correctly.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
981                document.getElementById("pwd2").focus();
982                document.getElementById("pwd2").value = "";
983                return (false);
984            }
985        }
986        if (document.getElementById("accaccesschk").checked) {							//User has requested a invoice account
987            if (document.getElementById("regaccountpayable").value == "yes") {			//User has requested a differnt account payable
988                //Account Name fields must not be empty
989                //if(document.getElementById("acctitle").value == "") {
990                //	showDialog('Warning','Please enter a value for the account payable "Title" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >','warning');
991                //	document.getElementById("acctitle").focus();
992                //	return (false);
993                //}
994                if (document.getElementById("accfirstname").value == "") {
995                    showDialog('Warning', 'Please enter a value for the account payable "First Name" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
996                    document.getElementById("accfirstname").focus();
997                    return (false);
998                }
999                if (document.getElementById("accsecondname").value == "") {
1000                    showDialog('Warning', 'Please enter a value for the account payable "Second Name" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1001                    document.getElementById("accsecondname").focus();
1002                    return (false);
1003                }
1004                //Check Account password and email user name
1005                if (document.getElementById("accemail").value == "") {
1006                    showDialog('Warning', 'Please enter a value for the account payable "Email Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1007                    document.getElementById("accemail").focus();
1008                    return (false);
1009                }
1010                if (emailCheck(document.getElementById("accemail").value) == false) {
1011                    document.getElementById("accemail").focus();
1012                    return (false);
1013                }
1014                //Password field must not be empty
1015                if (document.getElementById("accpwd1").value == "") {
1016                    showDialog('Warning', 'Please enter a value for the account payable "Password" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1017                    document.getElementById("accpwd1").focus();
1018                    return (false);
1019                }
1020                if ((document.getElementById("accpwd1").value.length > 20) || (document.getElementById("accpwd1").value.length < 6)) {
1021                    showDialog('Warning', 'Please ensure account payable "Password" is between 6 and 20 characters.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1022                    document.getElementById("accpwd1").focus();
1023                    return (false);
1024                }
1025                //Check Account passwords match
1026                if (document.getElementById("accpwd1").value != document.getElementById("accpwd2").value) {
1027                    showDialog('Warning', 'The account payable "Password" not verified correctly.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1028                    document.getElementById("accpwd2").focus();
1029                    document.getElementById("accpwd2").value = "";
1030                    return (false);
1031                }
1032                //Account Company field must not be empty
1033                if (document.getElementById("acccompany").value == "") {
1034                    showDialog('Warning', 'Please enter a value for the  account payable "Company" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1035                    document.getElementById("acccompany").focus();
1036                    return (false);
1037                }
1038                //Account address field must not be empty
1039                if (document.getElementById("accaddress1").value == "") {
1040                    showDialog('Warning', 'Please enter a value for the account payable "Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1041                    document.getElementById("accaddress1").focus();
1042                    return (false);
1043                }
1044                //Account Town field must not be empty
1045                if (document.getElementById("acctown").value == "") {
1046                    showDialog('Warning', 'Please enter a value for the account payable "Town" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1047                    document.getElementById("acctown").focus();
1048                    return (false);
1049                }
1050                //Account Post Code field must not be empty
1051                if (document.getElementById("accpostcode").value == "") {
1052                    showDialog('Warning', 'Please enter a value for the account payable "Post Code" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1053                    document.getElementById("accpostcode").focus();
1054                    return (false);
1055                }
1056                //Check Account Telephone for telephone number
1057                if (document.getElementById("acctelephone").value == "") {
1058                    showDialog('Warning', 'Please enter a value for the account payable "Telephone" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1059                    document.getElementById("acctelephone").focus();
1060                    return (false);
1061                }
1062                var checkOK = "0123456789-+() \t\r\n\f";
1063                var checkStr = document.getElementById("acctelephone").value;
1064                var allValid = true;
1065                for (i = 0; i < checkStr.length; i++) {
1066                    ch = checkStr.charAt(i);
1067                    for (j = 0; j < checkOK.length; j++)
1068                        if (ch == checkOK.charAt(j))
1069                            break;
1070                    if (j == checkOK.length) {
1071                        allValid = false;
1072                        break;
1073                    }
1074                }
1075                if (!allValid) {
1076                    showDialog('Warning', 'Please enter only digit, whitespace and "+()" characters in the  account payable "Telephone" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1077                    document.getElementById("acctelephone").focus();
1078                    return (false);
1079                }
1080            } else {															//User has not requested to register account payable - check their details
1081                                                                                //Company field must not be empty
1082                if (document.getElementById("company").value == "") {
1083                    showDialog('Warning', 'Please enter a value for the "Company" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1084                    document.getElementById("company").focus();
1085                    return (false);
1086                }
1087                //Address field must not be empty
1088                if (document.getElementById("address1").value == "") {
1089                    showDialog('Warning', 'Please enter a value for the "Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1090                    document.getElementById("address1").focus();
1091                    return (false);
1092                }
1093                //Town field must not be empty
1094                if (document.getElementById("town").value == "") {
1095                    showDialog('Warning', 'Please enter a value for the "Town" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1096                    document.getElementById("town").focus();
1097                    return (false);
1098                }
1099                //Post Code field must not be empty
1100                if (document.getElementById("postcode").value == "") {
1101                    showDialog('Warning', 'Please enter a value for the "Post Code" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1102                    document.getElementById("postcode").focus();
1103                    return (false);
1104                }
1105                //Check Telephone for telephone number
1106                if (document.getElementById("telephone").value == "") {
1107                    showDialog('Warning', 'Please enter a value for the "Telephone" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1108                    document.getElementById("telephone").focus();
1109                    return (false);
1110                }
1111                var checkOK = "0123456789-+() \t\r\n\f";
1112                var checkStr = document.getElementById("telephone").value;
1113                var allValid = true;
1114                for (i = 0; i < checkStr.length; i++) {
1115                    ch = checkStr.charAt(i);
1116                    for (j = 0; j < checkOK.length; j++)
1117                        if (ch == checkOK.charAt(j))
1118                            break;
1119                    if (j == checkOK.length) {
1120                        allValid = false;
1121                        break;
1122                    }
1123                }
1124                if (!allValid) {
1125                    showDialog('Warning', 'Please enter only digit, whitespace and "+()" characters in the "Telephone" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1126                    document.getElementById("telephone").focus();
1127                    return (false);
1128                }
1129
1130            }
1131            //Check Payment Method
1132            if (document.getElementById("paymentmethod").value == "") {
1133                showDialog('Warning', 'Please enter a value for the "Payment Method" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1134                document.getElementById("paymentmethod").focus();
1135                return (false);
1136            }
1137            //Check Monthly Spend
1138            if ((document.getElementById("monthlyspend").value == "") || (isNaN(document.getElementById("monthlyspend").value))) {
1139                showDialog('Warning', 'Please enter a numeric value for the "Monthly Spend" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1140                document.getElementById("monthlyspend").focus();
1141                return (false);
1142            }
1143            //Ensure terms have been agreed to
1144            if (document.getElementById("paytermschk").checked == false) {							//User has requested a invoice account
1145                showDialog('Warning', 'Please ensure the "Payment Terms" have been read and accepted.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1146                return (false);
1147            }
1148        }
1149        if (theType == "register") {
1150            //Check heard about chosen
1151            if (document.getElementById("heardabout").value == "") {
1152                showDialog('Warning', 'Please indicate where you heard about us.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1153                document.getElementById("heardabout").focus();
1154                return (false);
1155            }
1156            //Ensure security code has been entered
1157            if (document.getElementById("code").value == "") {
1158                showDialog('Warning', 'Please ensure the "Security Image Code" has been entered.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1159                return (false);
1160            }
1161        }
1162    }
1163    if (theType == "update") {
1164        //Check passwords match if the user is updating them
1165        if (document.getElementById("newpwd1").value != "") {				//User has defined a new password
1166            if (document.getElementById("newpwd1").value != document.getElementById("newpwd2").value) {		//Check verified correctly
1167                showDialog('Warning', '"Password" not verified correctly.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1168                document.getElementById("newpwd2").focus();
1169                document.getElementById("newpwd2").value = "";
1170                return (false);
1171
1172            } else if ((document.getElementById("newpwd1").value.length > 20) || (document.getElementById("newpwd1").value.length < 6)) {
1173                showDialog('Warning', 'Please ensure "Password" is between 6 and 20 characters.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1174                return (false);
1175
1176            } else {			//check only permitted characters entered
1177                if (!document.getElementById("newpwd1").value.match(passwordRegex())) {
1178                    showDialog('Warning', `${passwordValidationContentError()}<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >`, 'warning');
1179                    return (false);
1180                }
1181            }
1182        }
1183        if (!document.getElementById("alias").value.match("^[a-z|A-Z|0-9|@\._\-]*$")) {
1184            showDialog('Warning', 'Invalid Username Alias. Username must contain only numbers and letters.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1185            return (false);
1186        }
1187
1188        //If requesting account ensure that the required address fields completed
1189        if (document.getElementById("accaccesschk").checked) {							//User has requested a invoice account
1190            //Address field must not be empty
1191            if (document.getElementById("address1").value == "") {
1192                showDialog('Warning', 'Please enter a value for the "Address" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1193                document.getElementById("address1").focus();
1194                return (false);
1195            }
1196            //Town field must not be empty
1197            if (document.getElementById("town").value == "") {
1198                showDialog('Warning', 'Please enter a value for the "Town" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1199                document.getElementById("town").focus();
1200                return (false);
1201            }
1202            //Post Code field must not be empty
1203            if (document.getElementById("postcode").value == "") {
1204                showDialog('Warning', 'Please enter a value for the "Post Code" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1205                document.getElementById("postcode").focus();
1206                return (false);
1207            }
1208            //Check Telephone for telephone number
1209            if (document.getElementById("telephone").value == "") {
1210                showDialog('Warning', 'Please enter a value for the "Telephone" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1211                document.getElementById("telephone").focus();
1212                return (false);
1213            }
1214            var checkOK = "0123456789-+() \t\r\n\f";
1215            var checkStr = document.getElementById("telephone").value;
1216            var allValid = true;
1217            for (i = 0; i < checkStr.length; i++) {
1218                ch = checkStr.charAt(i);
1219                for (j = 0; j < checkOK.length; j++)
1220                    if (ch == checkOK.charAt(j))
1221                        break;
1222                if (j == checkOK.length) {
1223                    allValid = false;
1224                    break;
1225                }
1226            }
1227            if (!allValid) {
1228                showDialog('Warning', 'Please enter only digit, whitespace and "+()" characters in the "Telephone" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1229                document.getElementById("telephone").focus();
1230                return (false);
1231            }
1232            /*
1233            MORE TO ADD HERE
1234            //Check Payment Method
1235            if(document.getElementById("paymentmethod").value == ""){
1236                showDialog('Warning','Please enter a value for the "Payment Method" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >','warning');
1237                document.getElementById("paymentmethod").focus();
1238                return (false);
1239            }
1240            //Check Monthly Spend
1241            if(document.getElementById("monthlyspend").value == ""){
1242                showDialog('Warning','Please enter a value for the "Monthly Spend" field.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >','warning');
1243                document.getElementById("monthlyspend").focus();
1244                return (false);
1245            }*/
1246
1247        }
1248    }
1249
1250    //All OK
1251    return (true);
1252}
1253
1254//-------------------------------------------------------------------------REGISTER/UPDATE SCRIPTS
1255
1256//****************Show register form automatically
1257function showRegisterOnLoad() {
1258    var winWidth = window.innerWidth;
1259    registerXpos = String(winWidth - 840) + 'px';	//Store x pos to place the register box
1260    if (document.varform.cid.value == "") {			//Already logged in - show account area
1261        showHideRegister("show");
1262    }
1263}
1264
1265//****************Show register form
1266function showRegister(e, theAction) {
1267    evt = e || window.event;
1268    registerXpos = String(evt.clientX - 400) + 'px';	//Store x pos to place the register box
1269    if (document.varform.cid.value != "") {			//Already logged in - show account area
1270        goToHome();
1271    } else {
1272        showHideRegister(theAction);
1273    }
1274}
1275
1276//****************Show/Hide register form
1277function showHideRegister(theAction) {
1278    if (theAction == "show") {
1279        hideLogin();															//Hide login form
1280        if (document.getElementById("searchOptionsContent") != null) {			//Ensure search options layer is invisible (as register maybe activated from this)
1281            document.getElementById("searchOptionsContent").style.display = "none";
1282        }
1283        var qstring = "theSite=" + document.varform.thesite.value + "&theSiteName=" + document.varform.thesitename.value + "&theSiteURL=" + document.varform.thesiteurl.value;
1284        var regDetailsReq = new ajaxObject('registerDetails.php', regDetailsResponse);
1285        regDetailsReq.update(qstring, 'POST');
1286    } else if (theAction == "hide") {
1287        if (document.getElementById("registerPopup2") != null) {
1288            document.getElementById("registerPopup2").style.display = "none";		//Hide register form (from login page)
1289        } else if (document.getElementById("registerPopup3") != null) {
1290            document.getElementById("registerPopup3").style.display = "none";		//Hide register form (from login page)
1291        } else {
1292            document.getElementById("registerPopup").style.display = "none";		//Hide register form (from map page)
1293        }
1294    }
1295}
1296
1297//****************Response from getting register info
1298function regDetailsResponse(responseText, responseStatus) {
1299    if (responseStatus == 200) {
1300        if (document.getElementById("registerPopup2") != null) {
1301            document.getElementById("registerContent2").innerHTML = responseText;		//Show register form
1302            document.getElementById("registerPopup2").style.display = "block";		//Show register form (from login page)
1303        } else if (document.getElementById("registerPopup3") != null) {
1304            document.getElementById("registerContent3").innerHTML = responseText;		//Show register form
1305            document.getElementById("registerPopup3").style.display = "block";		//Show register form (from login page)
1306        } else {
1307            document.getElementById("registerContent").innerHTML = responseText;		//Show register form
1308            document.getElementById("registerPopup").style.left = registerXpos;
1309            document.getElementById("registerPopup").style.display = "block";		//Show register form (from map page)
1310        }
1311        //callCufon();
1312    }
1313}
1314
1315//****************Defines options from check boxes
1316function setCheckOptions(theControl, theSource) {
1317    if (theControl == "accaccess") {										//Show extra input for invoice account
1318        if (document.getElementById("accaccesschk").checked) {
1319            document.getElementById("accaccess").value = "yes";
1320            if (theSource == "new") {
1321                regShowHide("show");
1322            } else {
1323                accReqShowHide("show");
1324            }
1325        } else {
1326            document.getElementById("accaccess").value = "no";
1327            if (theSource == "new") {
1328                regShowHide("hide");
1329            } else {
1330                accReqShowHide("hide");
1331            }
1332        }
1333        window.scrollTo(0, 0);
1334    } else if (theControl == "accpayable") {										//Show extra input for account payable user
1335        if (document.getElementById("accountpaychk").checked) {
1336            document.getElementById("regaccountpayable").value = "yes";
1337            if (theSource == "new") {
1338                document.getElementById("accpaydetails").style.display = "block";
1339            }
1340        } else {
1341            document.getElementById("regaccountpayable").value = "no";
1342            if (theSource == "new") {
1343                document.getElementById("accpaydetails").style.display = "none";
1344            }
1345        }
1346    } else if (theControl == "mailing1") {
1347        if (document.getElementById("mailing1chk").checked) {
1348            document.getElementById("mailing1").value = "yes";
1349        } else {
1350            document.getElementById("mailing1").value = "no";
1351        }
1352    } else if (theControl == "notifyadmin") {
1353        if (document.getElementById("notifyadminchk").checked) {
1354            document.getElementById("notifyadmin").value = "yes";
1355        } else {
1356            document.getElementById("notifyadmin").value = "no";
1357        }
1358    } else if (theControl == "notifyuser") {
1359        if (document.getElementById("notifyuserchk").checked) {
1360            document.getElementById("notifyuser").value = "yes";
1361        } else {
1362            document.getElementById("notifyuser").value = "no";
1363        }
1364    }
1365}
1366
1367//*******************Show register details input - either to register account payee or fill in account detaials
1368function setRegDetails(theControl) {
1369    if (theControl == "accpayable") {
1370        document.getElementById("accpaydetails").style.display = "block";		//Show input for account payable user details on register
1371        document.getElementById("companydetails").style.display = "none";
1372        document.getElementById("generaldetails").style.display = "block";
1373        document.getElementById("regaccountpayable").value = "yes";				//Flag that register account payable has been chosen
1374    } else if (theControl == "companydetails") {
1375        document.getElementById("accpaydetails").style.display = "none";
1376        document.getElementById("companydetails").style.display = "block";		//Show input for user details on register
1377        document.getElementById("generaldetails").style.display = "block";
1378        document.getElementById("regaccountpayable").value = "no";				//Flag that register account payable has not been chosen
1379    }
1380}
1381
1382//*******************Defines options from check boxes (Company Details)
1383function setCompCheckOptions(theControl) {
1384    if (theControl == "accaccess") {
1385        if (document.compform.accaccesschk.checked) {
1386            document.compform.accaccess.value = 'yes';
1387        } else {
1388            document.compform.accaccess.value = 'no';
1389        }
1390    } else if (theControl == "paperinvoice") {
1391        if (document.compform.paperinvoicechk.checked) {
1392            document.compform.paperinvoice.value = 'yes';
1393        } else {
1394            document.compform.paperinvoice.value = 'no';
1395        }
1396    } else if (theControl == "geninvoice") {
1397        if (document.compform.geninvoicechk.checked) {
1398            document.compform.geninvoice.value = 'yes';
1399        } else {
1400            document.compform.geninvoice.value = 'no';
1401        }
1402    } else if (theControl == "oneclickorder") {
1403        if (document.compform.oneclickorderchk.checked) {
1404            document.compform.oneclickorder.value = 'yes';
1405        } else {
1406            document.compform.oneclickorder.value = 'no';
1407        }
1408    } else if (theControl == "adminnotify") {
1409        document.compform.dispnotifyemail.value = ""; //Ensure person to notify is cleared
1410        document.compform.notifyid.value = "";
1411        if (document.compform.adminnotifychk.checked) {
1412            document.compform.adminnotify.value = "yes";
1413        } else {
1414            document.compform.adminnotify.value = "no";
1415        }
1416    }
1417}
1418
1419//****************Hides or shows further registartion details
1420function regShowHide(theAction) {
1421    if (theAction == "show") {
1422        document.getElementById("regdetails").style.display = "block";
1423    } else {
1424        document.getElementById("regdetails").style.display = "none";
1425    }
1426}
1427
1428//****************Show/Hide extra details form when requesting account
1429function accReqShowHide(theAction) {
1430    if (theAction == "show") {
1431        if (validateInput("confirm")) {		//Check the address details have been entered
1432            var qstring = "theSite=" + document.varform.thesite.value + "&theSiteName=" + document.varform.thesitename.value + "&theSiteURL=" + document.varform.thesiteurl.value + "&address1=" + document.getElementById("address1").value + "&address2=" + document.getElementById("address2").value + "&town=" + document.getElementById("town").value + "&county=" + document.getElementById("county").value + "&postcode=" + document.getElementById("postcode").value + "&country=" + document.getElementById("country").value + "&telephone=" + document.getElementById("telephone").value + "&fax=" + document.getElementById("fax").value + "&website=" + document.getElementById("website").value + "&company=" + escapeAmp(document.getElementById("company").value) + "&title=" + document.getElementById("title").value + "&firstname=" + document.getElementById("firstname").value + "&secondname=" + document.getElementById("secondname").value + "&email=" + document.getElementById("email").value + "&viewcredit=" + document.getElementById("viewcredit").value + "&freeviewcredit=" + document.getElementById("freeviewcredit").value;
1433            var accRequestExtraDetailsReq = new ajaxObject('accRequestExtraDetails.php', accRequestExtraDetailsResponse);
1434            accRequestExtraDetailsReq.update(qstring, 'POST');
1435        } else {
1436            document.getElementById("accaccesschk").checked = false;
1437        }
1438    } else if (theAction == "hide") {
1439        if (document.getElementById("accExtraDetails") != null) {
1440            document.getElementById("accExtraDetails").style.display = "none";		//Hide register form (from map page)
1441        } else {
1442            document.getElementById("accExtraDetails2").style.display = "none";		//Hide register form (from map page)
1443        }
1444        document.getElementById("accaccesschk").checked = false;
1445        document.getElementById("accaccess").value = "no";
1446    }
1447}
1448
1449//****************Response from getting extra account request details
1450function accRequestExtraDetailsResponse(responseText, responseStatus) {
1451    if (responseStatus == 200) {
1452        if (document.getElementById("accExtraDetails") != null) {
1453            document.getElementById("accExtraContent").innerHTML = responseText;		//Show register form
1454            document.getElementById("accExtraDetails").style.display = "block";		//Show register form (from map page)
1455        } else {
1456            document.getElementById("accExtraContent2").innerHTML = responseText;		//Show register form
1457            document.getElementById("accExtraDetails2").style.display = "block";		//Show register form (from map page)
1458        }
1459    }
1460}
1461
1462//****************Register the new user or request account upgrade
1463function registerUser(theType) {
1464    if (validateInput(theType)) {		//If all OK register the user or request account upgrade
1465        //Define the query string to pass variables
1466        var qstring = "title=" + document.registerform.title.value;
1467        qstring += "&firstname=" + document.registerform.firstname.value;
1468        qstring += "&secondname=" + document.registerform.secondname.value;
1469        qstring += "&email=" + document.registerform.email.value;
1470        if (theType == "register") {					//Get this info if registering a user
1471            qstring += "&pwd1=" + document.registerform.pwd1.value;
1472        } else {
1473            qstring += "&pwd1=";
1474        }
1475        qstring += "&company=" + escapeAmp(document.registerform.company.value);
1476        qstring += "&address1=" + document.registerform.address1.value;
1477        qstring += "&address2=" + document.registerform.address2.value;
1478        qstring += "&town=" + document.registerform.town.value;
1479        qstring += "&county=" + document.registerform.county.value;
1480        qstring += "&postcode=" + document.registerform.postcode.value;
1481        qstring += "&country=" + document.registerform.country.value;
1482        qstring += "&telephone=" + document.registerform.telephone.value;
1483        qstring += "&fax=" + document.registerform.fax.value;
1484        qstring += "&website=" + document.registerform.website.value;
1485        if (theType == "register") {					//Get this info if registering a user
1486            qstring += "&outcode=" + document.registerform.outcode.value;
1487            qstring += "&mailing1=" + document.registerform.mailing1.value;
1488            qstring += "&accaccess=" + document.registerform.accaccess.value;
1489        } else {
1490            qstring += "&outcode=&mailing1=&accaccess=yes";
1491        }
1492        qstring += "&accpayable=" + document.registerform.regaccountpayable.value;
1493        qstring += "&paymentmethod=" + document.registerform.paymentmethod.value;
1494        qstring += "&monthlyspend=" + document.registerform.monthlyspend.value;
1495        qstring += "&acctitle=" + document.registerform.acctitle.value;
1496        qstring += "&accfirstname=" + document.registerform.accfirstname.value;
1497        qstring += "&accsecondname=" + document.registerform.accsecondname.value;
1498        qstring += "&accemail=" + document.registerform.accemail.value;
1499        qstring += "&accpwd1=" + document.registerform.accpwd1.value;
1500        qstring += "&acccompany=" + escapeAmp(document.registerform.acccompany.value);
1501        qstring += "&accaddress1=" + document.registerform.accaddress1.value;
1502        qstring += "&accaddress2=" + document.registerform.accaddress2.value;
1503        qstring += "&acctown=" + document.registerform.acctown.value;
1504        qstring += "&acccounty=" + document.registerform.acccounty.value;
1505        qstring += "&accpostcode=" + document.registerform.accpostcode.value;
1506        qstring += "&acccountry=" + document.registerform.acccountry.value;
1507        qstring += "&acctelephone=" + document.registerform.acctelephone.value;
1508        qstring += "&accfax=" + document.registerform.accfax.value;
1509        qstring += "&accwebsite=" + document.registerform.accwebsite.value;
1510        qstring += "&registersite=" + document.registerform.registersite.value;
1511        if (theType == "register") {					//Get this info if registering a user
1512            qstring += "&heardabout=" + document.registerform.heardabout.value;
1513            qstring += "&code=" + document.registerform.code.value;
1514        } else {
1515            qstring += "&heardabout=&code=";
1516        }
1517        if (theType == "register") {					//Get this info if registering a user
1518            qstring += "&viewcredit=&freeviewcredit=";
1519        } else {
1520            qstring += "&viewcredit=" + document.registerform.viewcredit.value;
1521            qstring += "&freeviewcredit=" + document.registerform.freeviewcredit.value;
1522        }
1523        qstring += "&cadd=" + theType;   //register or request
1524        var registerReq = new ajaxObject('upCustomer.php', registerResponse);
1525        registerReq.update(qstring, 'POST');
1526    }
1527}
1528
1529//****************Response from registering
1530function registerResponse(responseText, responseStatus) {
1531    //alert(responseText)
1532    if (responseStatus == 200) {
1533        //Get the returned values
1534        if (responseText != "") {
1535            var tempArray = new Array();
1536            tempArray = responseText.split("|");
1537            if (tempArray[0] == "yes") {
1538                //Show message and run the login;
1539                if (tempArray[2] == "register") {
1540                    //showDialog('Success',tempArray[1] + '<br/><input type="button" value="Continue" id="contButton" onclick="goToAuthorization();" >','success');
1541                    goToAuthorization();
1542                } else {				//Request account? (run from account area so can log the user in?)
1543                    showDialog('Success', tempArray[1] + '<br/><input type="button" value="Continue" id="contButton" onclick="loginAfterRequest
1543();" >', 'success');
1544                }
1545            } else {								//Could not register for some reason, show the error message
1546                showDialog('Error', tempArray[1] + '<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'errordialog');
1547            }
1548        } else {
1549            showDialog('Error', 'There has been a problem registering. Please try again.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'errordialog');
1550        }
1551    }
1552}
1553
1554//****************Login the user after request account
1555function loginAfterRequest() {
1556    hideDialog();
1557    /*var qstring = "name=" + document.custform.email.value + "&pwd=" + document.custform.pwd1.value + "&login=in&type=register&site=" + document.custform.registersite.value + "&sitetype=full";
1558    var loginReq = new ajaxObject('runlogin.php', loginResponse3);
1559    loginReq.update(qstring,'POST');*/
1560    jQuery.ajax({
1561        type: "POST",
1562        dataType: "json",
1563        //url: "http://shop.centremapslive.co.uk/runLogin2.php?callback=?",
1564        url: "runLogin2.php?callback=?",
1565        data: {
1566            name: document.custform.email.value,
1567            pwd: document.custform.pwd1.value,
1568            login: "in",
1569            type: "register",
1570            site: document.registerform.registersite.value,
1571            sitetype: "full"
1572        },
1573        success: loginResponse3
1574    });
1575}
1576
1577//****************Close dialogs after successful account registration request
1578function goToAuthorization() {
1579    //hideDialog();
1580    showHideRegister('hide');
1581    document.getElementById("username").value = document.getElementById("email").value;
1582    document.getElementById("loginform").action = "authoriseAccount.php";
1583    document.getElementById("loginform").submit();
1584}
1585
1586//****************Login the user after registering
1587function loginAfterRegister() {
1588    hideDialog();
1589    /*var qstring = "name=" + document.registerform.email.value + "&pwd=" + document.registerform.pwd1.value + "&login=in&type=register&site=" + document.registerform.registersite.value + "&sitetype=full";
1590    if(window.location.pathname.indexOf("login.php") != -1){					//Called from login page
1591        var loginReq = new ajaxObject('runlogin.php', loginResponse2);
1592    }else{																		//Called from map page
1593        var loginReq = new ajaxObject('runlogin.php', loginResponse);
1594    }
1595
1596    loginReq.update(qstring,'POST');
1597    */
1598    if (window.location.pathname.indexOf("login.php") != -1) {					//Called from login page
1599        jQuery.ajax({
1600            type: "POST",
1601            dataType: "json",
1602            //url: "http://shop.centremapslive.co.uk/runLogin2.php?callback=?",
1603            url: "runLogin2.php?callback=?",
1604            data: {
1605                name: document.registerform.email.value,
1606                pwd: document.registerform.pwd1.value,
1607                login: "in",
1608                type: "register",
1609                site: document.registerform.registersite.value,
1610                sitetype: "full"
1611            },
1612            success: loginResponse2
1613        });
1614    } else {
1615        jQuery.ajax({
1616            type: "POST",
1617            dataType: "json",
1618            //url: "http://shop.centremapslive.co.uk/runLogin2.php?callback=?",
1619            url: "runLogin2.php?callback=?",
1620            data: {
1621                name: document.registerform.email.value,
1622                pwd: document.registerform.pwd1.value,
1623                login: "in",
1624                type: "register",
1625                site: document.registerform.registersite.value,
1626                sitetype: "full"
1627            },
1628            success: loginResponse
1629        });
1630    }
1631}
1632
1633//****************Update user info
1634function updateUserInfo() {
1635    if (validateInput("update")) {		//If all OK register the user
1636        //Define the query string to pass variables
1637        var qstring = "title=" + document.custform.title.value;
1638        qstring += "&firstname=" + document.custform.firstname.value;
1639        qstring += "&secondname=" + document.custform.secondname.value;
1640        qstring += "&email=" + document.custform.email.value;
1641        qstring += "&newpwd1=" + document.custform.newpwd1.value;
1642        qstring += "&newpwd2=" + document.custform.newpwd2.value;
1643        qstring += "&company=" + escapeAmp(document.custform.company.value);
1644        qstring += "&address1=" + document.custform.address1.value;
1645        qstring += "&address2=" + document.custform.address2.value;
1646        qstring += "&town=" + document.custform.town.value;
1647        qstring += "&county=" + document.custform.county.value;
1648        qstring += "&postcode=" + document.custform.postcode.value;
1649        qstring += "&country=" + document.custform.country.value;
1650        qstring += "&telephone=" + document.custform.telephone.value;
1651        qstring += "&fax=" + document.custform.fax.value;
1652        qstring += "&website=" + document.custform.website.value;
1653        qstring += "&outcode=" + document.custform.outcode.value;
1654        qstring += "&accaccess=" + document.custform.accaccess.value;
1655        qstring += "&mailing1=" + document.custform.mailing1.value;
1656        qstring += "&notifyuser=" + document.custform.notifyuser.value;
1657        if (document.getElementById("notifyadmin") != null) {
1658            qstring += "&notifyadmin=" + document.custform.notifyadmin.value;
1659        }
1660        qstring += "&daddress1=" + document.custform.daddress1.value;
1661        qstring += "&daddress2=" + document.custform.daddress2.value;
1662        qstring += "&dtown=" + document.custform.dtown.value;
1663        qstring += "&dcounty=" + document.custform.dcounty.value;
1664        qstring += "&dpostcode=" + document.custform.dpostcode.value;
1665        qstring += "&dcountry=" + document.custform.dcountry.value;
1666        qstring += "&registersite=" + document.custform.registersite.value;
1667        qstring += "&alias=" + document.custform.alias.value;
1668        qstring += "&custid=" + document.custform.custid.value;
1669        qstring += "&cadd=update";
1670        var loginReq = new ajaxObject('upCustomer.php', updateUserResponse);
1671        loginReq.update(qstring, 'POST');
1672    }
1673}
1674
1675//****************Response from updating user info
1676function updateUserResponse(responseText, responseStatus) {
1677    if (responseStatus == 200) {
1678        //Get the returned values
1679        if (responseText != "") {
1680            var tempArray = new Array();
1681            tempArray = responseText.split("|");
1682            if (tempArray[0] == "yes") {
1683                showDialog('', tempArray[1] + '<br/><input type="button" value="Close" id="closeButton" onclick="refreshUserPage();" >', 'prompt');
1684            } else {								//Could not register for some reason, show the error message
1685                showDialog('Error', tempArray[1] + '<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'errordialog');
1686            }
1687        } else {
1688            showDialog('Error', 'There has been a problem updating. Please try again.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'errordialog');
1689        }
1690    }
1691}
1692
1693//*******************Refresh user page after making updates
1694function refreshUserPage() {
1695    hideDialog();
1696    window.location = window.location = "user.php";
1697}
1698
1699//****************Add view credit to user/company account
1700function addViewCredit(theForm) {
1701    if (isNaN(document.getElementById("addcredit").value)) {
1702        showDialog('Warning', 'Please add a credit amount.<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1703    } else {
1704        var creditToAdd = Number(document.getElementById("addcredit").value);
1705        if (creditToAdd < 5) {
1706            showDialog('Warning', 'The minimum amount of credit you can add is &pound;5<br/><br/><input type="button" value="Close" id="closeButton" onclick="hideDialog();" >', 'warning');
1707        } else {
1708            eval("document." + theForm + ".action = 'addCredit.php'");
1709            eval("document." + theForm + ".submit()");
1710        }
1711    }
1712}
1713
1714//****************Show/Hide update password functionality
1715function toggleUpPwd(theAction) {
1716    document.getElementById("newpwd1").value = "";
1717    document.getElementById("newpwd2").value = "";
1718    if (theAction == "show") {
1719        document.getElementById("updatepassword").style.display = "block";
1720    } else if (theAction == "hide") {
1721        document.getElementById("updatepassword").style.display = "none";
1722    }
1723}
1724
1725//****************Copy user details to account payable
1726function copyAddress(selObj) {
1727    if (selObj.checked) {
1728        document.getElementById("accaddress1").value = document.getElementById("address1").value;
1729        document.getElementById("accaddress2").value = document.getElementById("address2").value;
1730        document.getElementById("acctown").value = document.getElementById("town").value;
1731        document.getElementById("acccounty").value = document.getElementById("county").value;
1732        document.getElementById("accpostcode").value = document.getElementById("postcode").value;
1733        document.getElementById("acccountry").value = document.getElementById("country").value;
1734        document.getElementById("acctelephone").value = document.getElementById("telephone").value;
1735        document.getElementById("accfax").value = document.getElementById("fax").value;
1736        document.getElementById("accwebsite").value = document.getElementById("website").value;
1737        document.getElementById("acccompany").value = document.getElementById("company").value;
1738    }
1739}
1740
1741//-------------------------------------------------End of file.

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.