PageSourceSearch

https://www.garant.ru/static/www/js/user/form.js?933

js garant.ru collected 2026-09-24 06:23:54 UTC 8,641 bytes, 262 lines download raw bytes

1if (typeof parseUrl === 'undefined') {
2    /**
3     * Parse Url
4     *
5     * @param {string} url
6     * @return {{source: string, protocol: string, host: string, port: string, query: string, params: Object, file: *, hash: string, path: string, relative: *, segments: Array}}
7     * @link https://habrahabr.ru/post/177559/#comment_6164291
8     */
9    function parseUrl(url) {
10        var a = document.createElement('a');
11        a.href = url;
12
13        return {
14            source: url,
15            protocol: a.protocol.replace(':', ''),
16            host: a.hostname,
17            port: a.port,
18            query: a.search,
19            params: (function () {
20                var ret = {},
21                    seg = a.search.replace(/^\?/, '').split('&'),
22                    len = seg.length, i = 0, s;
23                for (; i < len; i++) {
24                    if (!seg[i]) {
25                        continue;
26                    }
27                    s = seg[i].split('=');
28                    ret[s[0]] = decodeURIComponent(s[1]);
29                }
30                return ret;
31            })(),
32            file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
33            hash: a.hash.replace('#', ''),
34            path: a.pathname.replace(/^([^\/])/, '/$1'),
35            relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],
36            segments: a.pathname.replace(/^\//, '').split('/')
37        };
38    }
39}
40
41function login() {
42    var url = parseUrl(window.location.href);
43    //$('#auth .alert').html('').addClass('d-none');
44    //$('#auth input').removeClass('is-invalid');
45    var error_text = '';
46    var ret_val = true;
47    var error = '';
48    var $pers_login = $('#auth #pers_login'),
49        $pers_password = $('#auth #pers_password'),
50        $pers_rem_me = $('#auth #pers_rem_me'),
51        clear = function () {
52            $('#auth .alert').html('').addClass('d-none');
53            $('#auth input').removeClass('is-invalid');
54        };
55
56    clear();
57    if ($pers_login.val() == '') {
58        error = 'Ââåäèòå ëîãèí';
59        $('#auth .auth_error_login').html(error);
60        $pers_login.addClass('is-invalid');
61    }
62
63    if (error =='' && $pers_password.val() == '') {
64        error = 'Ââåäèòå ïàðîëü';
65        $('#auth .auth_error_password').html(error);
66        $pers_password.addClass('is-invalid');
67    }
68
69    if (error == '' ) {
70        $('#auth .alert-success').html("Ïîäîæäèòå, ïîæàëóéñòà.").removeClass('d-none');
71        WebAjax(
72            '/ajax/login/',
73            {
74                'form_data[login]'	: $pers_login.val(),
75                'form_data[pass]'	: $pers_password.val(),
76                'form_data[rem_me]'	: $pers_rem_me.attr('checked') ? 1 : 0,
77                'form_data[from]': encodeURIComponent(url.params['from'] || ''),
78                'form_data[sign]': encodeURIComponent(url.params['sign'] || '')
79            },
80            function(type, msg) {
81                clear();
82                if (type === 'OK') {
83                    var loc = '/personal/';
84                    switch ($('#reg_type').val()) {
85                        case 'konkurs' : loc = "/konkurs/selection_tour/";  break;
86                        case 'forum'   : loc = "/forum/";                   break;
87                    }
88                    if (loc) {
89                        window.location = loc;
90                    }
91
92                } else {
93                    error = "Îøèáêà àâòîðèçàöèè. Ïðîâåðüòå äàííûå";
94                    $('#auth .alert-danger').html(error).removeClass('d-none');
95                }
96            }
97        );
98    }
99
100    return false;
101}
102
103function register() {
104    var err_msg = '',
105    clear = function () {
106        $('#reg .alert').html('').addClass('d-none');
107        $('#reg input').removeClass('is-invalid');
108    };
109
110    err_msg = CheckEmailField( 'reg #email', 'E-mail');
111    if (err_msg) {
112        $('#reg #email').addClass('is-invalid');
113        $('#reg #reg_error_email').html(err_msg);
114    }
115
116    if( err_msg ==  '' )
117    {
118        err_msg = CheckStrField( 'reg  #password', 'Ïàðîëü' );
119        var re_pass = /^[A-Za-z\d@$!%*_#?&]{6,12}$/;
120        var pass = jQuery.trim( $('#reg #password').val() );
121        if(err_msg ==  '' && !re_pass.test(pass) )
122        {
123            err_msg = 'Íå êîððåêòíûé ïàðîëü';
124            $('#reg #password').focus().addClass('is-invalid');
125            $('#reg #reg_error_password').html(err_msg);
126        }
127    }
128
129    if( err_msg ==  '' )
130    {
131        err_msg = CheckStrField( 'reg  #password_repeat', 'Ïîäòâåðæäåíèå ïàðîëÿ');
132        if (err_msg != '') {
133            $('#reg #password_repeat').focus().addClass('is-invalid');
134            $('#reg #reg_error_password_repeat').html(err_msg);
135        }
136    }
137
138    if(	$('#reg #password').val() != $('#reg #password_repeat').val()	)
139    {
140        err_msg = 'Ïàðîëü ïîäòâåðæä¸í íå êîððåêòíî';
141        $('#reg #password_repeat').focus().addClass('is-invalid');
142        $('#reg #reg_error_password_repeat').html(err_msg);
143    }
144
145    var $agreement = $('#reg #agreements');
146    if (err_msg == '' && $agreement.prop('checked') == false) {
147        err_msg = 'Íåîáõîäèìî ïðèíÿòü ñîãëàøåíèå';
148        $('#reg #agreements').addClass('is-invalid');
149        $('#reg #reg_error_agreements').html(err_msg);
150    }
151
152    if( err_msg == '' )
153    {
154        $('#reg .alert-success').html("Äàííûå ïåðåäàþòñÿ íà ñåðâåð. Ïîäîæäèòå, ïîæàëóéñòà.").removeClass('d-none');
155        WebAjax(
156            '/ajax/reg_user/',
157            {
158                'form_data[email]'				: $('#reg #email').val(),
159                'form_data[password]'			: $('#reg #password').val(),
160                'form_data[password_repeat]'	: $('#reg #password_repeat').val(),
161                'form_data[fio]'				: jQuery.trim( $('#reg #fio').val() ),
162                'form_data[agreement]'	        : $agreement.prop('checked') ? 'yes' : 'no'
163            },
164            function(type, msg)
165            {
166                clear();
167                if( type == 'OK' )
168                {
169                    window.location = "/personal/register/confirm/";
170                }
171                else
172                {
173                    $('#reg .alert-danger').html(msg).removeClass('d-none');
174                }
175            }
176        );
177    }
178
179    return false;
180
181}
182
183function logout() {
184    WebAjax(
185        '/ajax/logout/',
186        {
187            'form_data[logout]': true
188        },
189        function(type, msg) {
190            if( type == 'OK' ) {
191                window.location = "/";
192            }
193        }
194    );
195}
196
197function recovery() {
198    var err_msg = '',
199        clear = function () {
200            $('#recovery .alert').html('').addClass('d-none');
201            $('#recovery input').removeClass('is-invalid');
202        };
203
204    if( err_msg ==  '' )
205    {
206        err_msg = CheckStrField( 'recovery_email', 'E-mail');
207    }
208
209    if( err_msg == '' )
210    {
211        WebAjax(
212            '/ajax/forget_pass/',
213            {
214                'form_data[mail]' : $('#recovery_email').val()
215            },
216            function(type, msg)
217            {
218                clear();
219                if( type == 'OK' )
220                {
221                    $('#recovery .first_form').addClass('d-none');
222                    $('#recovery .alert-success').html($('.send_ok_msg').html()).removeClass('d-none');
223                    $('#recovery_email').val('');
224                }
225                else
226                {
227                    $('#recovery .alert-danger').html(msg).removeClass('d-none');
228                }
229            }
230        );
231    }
232    else {
233        $('#recovery_email').addClass('is-invalid');
234        $('#recovery .invalid-feedback').html(err_msg);
235    }
236}
237
238$(document).ready(function() {
239    var url = parseUrl(window.location.href);
240    if (('login' in url.params || 'konkurs_login' in url.params || $('#authorizationModal').data('display') == true) && $('#authorizationModal').length) {
241        let modal_login = new bootstrap.Modal('#authorizationModal');
242        modal_login.show();
243    }
244
245    $('#auth #login').click(function(e) {
246        e.preventDefault();
247        login();
248    });
249    $('.logout').click(function(e) {
250        e.preventDefault();
251        logout();
252    });
253    $('#reg #register').click(function(e) {
254        e.preventDefault();
255        register();
256    });
257    $('#recovery #forget').click(function(e) {
258        e.preventDefault();
259        recovery();
260    });
261
262});

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.