73443: Selfservice NG Password reset page
[freeside.git] / ng_selfservice / elements / add_password_validation.php
1 <SCRIPT>
2 function add_password_validation (fieldid,nologin) {
3   var inputfield = document.getElementById(fieldid);
4   inputfield.onchange = function () {
5     var fieldid = this.id+'_result';
6     var resultfield = document.getElementById(fieldid);
7     var svcnum = '';
8     var svcfield = document.getElementById(this.id+'_svcnum');
9     if (svcfield) {
10       svcnum = svcfield.options[svcfield.selectedIndex].value;
11     }
12     if (this.value) {
13       resultfield.innerHTML = '<SPAN STYLE="color: blue;">Validating password...</SPAN>';
14       var validate_data = {
15         fieldid: fieldid,
16         check_password: this.value,
17       };
18       if (!nologin) {
19         validate_data['svcnum'] = svcnum;
20       }
21       $.ajax({
22         url: 'xmlrpc_validate_passwd.php',
23         data: validate_data,
24         method: 'POST',
25         success: function ( result ) {
26           result = JSON.parse(result);
27           var resultfield = document.getElementById(fieldid);
28           if (resultfield) {
29             var errorimg = '<IMG SRC="images/error.png" style="width: 1em; display: inline-block; padding-right: .5em">';
30             var validimg = '<IMG SRC="images/tick.png" style="width: 1em; display: inline-block; padding-right: .5em">';
31             if (result.password_valid) {
32               resultfield.innerHTML = validimg+'<SPAN STYLE="color: green;">Password valid!</SPAN>';
33             } else if (result.password_invalid) {
34               resultfield.innerHTML = errorimg+'<SPAN STYLE="color: red;">'+result.password_invalid+'</SPAN>';
35             } else {
36               resultfield.innerHTML = '';
37             }
38           }
39         },
40         error: function (  jqXHR, textStatus, errorThrown ) {
41           var resultfield = document.getElementById(fieldid);
42           console.log('ajax error: '+textStatus+'+'+errorThrown);
43           if (resultfield) {
44             resultfield.innerHTML = '';
45           }
46         },
47       });
48     }
49   };
50 }
51 </SCRIPT>