PageSourceSearch

https://www.ast-lab.jp/usr.ex/js/login.js

js ast-lab.jp collected 2026-10-06 13:11:13 UTC 5,851 bytes, 166 lines download raw bytes

1/* utf-8 ◎◇ */
2
3// Firebug がインストールされていれば、console が使える。
4if ( 'undefined' == typeof console ) {
5    var console;
6    console = {};
7    console.log = function ( str ) {  }
8}
9
10var base = undefined;
11var api_base = undefined;
12
13var httprequest = undefined;
14var httprequest_url = undefined;
15
16function on_load_httprequest( evt )
17{
18    if ( 4 === httprequest.readyState ) {
19        if ( 200 === httprequest.status ) {
20            var value = undefined;
21            try {
22                value = $.parseJSON( httprequest.responseText );
23            }
24            catch ( ex ) {
25                alert( ex );
26            }
27            var url = ( evt && evt.target && 'responseURL' in evt.target ) ? evt.target.responseURL : httprequest_url;
28            var url_base = url.replace( /\?.*/, '' ).replace( /.*\//, '' );
29            var result = value[ 'result' ];
30            if ( 'auth.cgi' === url_base ) {
31                if ( 'OK' !== result ) {
32                    document.getElementById( 'message' ).innerHTML = value[ 'message' ];
33                    return ;
34                }
35                window.location.href = "u.cgi";
36            }
37        }
38        else {
39            console.log( httprequest.statusText );
40        }
41    }
42    return ;
43}
44
45function on_element_change( evt )
46{
47    document.getElementById( 'message' ).innerHTML = ' ';
48    return ;
49}
50
51function on_login_auth( evt )
52{
53    var elements = [];
54    if ( evt.target && evt.target.form && evt.target.form.elements ) {
55        elements = evt.target.form.elements;
56    }
57    else {
58        var form_elem = document.getElementById( 'form' );
59        if ( form_elem.elements ) {
60            elements = form_elem.elements;
61        }
62    }
63    var param = [];
64    for ( var idx = 0 ; idx < elements.length ; ++idx ) {
65        if ( 'exec' === elements[ idx ].name ) {
66            continue ;
67        }
68        param.push( elements[ idx ].name.concat( '=' ).concat( encodeURIComponent( elements[ idx ].value ) ) );
69    }
70    var url = api_base.concat( 'auth.cgi?' ).concat( param.join( '&' ) );
71    httprequest_url = url;
72    httprequest.open( 'GET', url, true );
73    httprequest.setRequestHeader( 'Accept', 'application/json' );
74    httprequest.send(  );
75    return ;
76}
77
78function set_login_auth(  )
79{
80    var form_elem = document.getElementById( 'form' );
81    form_elem.action = 'javascript:void(0);';
82    for ( var elem_idx = 0 ; elem_idx < form_elem.elements.length ; ++elem_idx ) {
83        if ( 'exec' === form_elem.elements[ elem_idx ].name ) {
84            if ( form_elem.elements[ elem_idx ].addEventListener ) {
85                form_elem.elements[ elem_idx ].addEventListener( 'click', on_login_auth, false );
86            }
87            else if ( form_elem.elements[ elem_idx ].attachEvent ) {
88                form_elem.elements[ elem_idx ].attachEvent( 'onclick', on_login_auth );
89            }
90        }
91        else {
92            if ( form_elem.elements[ elem_idx ].addEventListener ) {
93                form_elem.elements[ elem_idx ].addEventListener( 'change', on_element_change, false );
94            }
95            else if ( form_elem.elements[ elem_idx ].attachEvent ) {
96                form_elem.elements[ elem_idx ].attachEvent( 'onchange', on_element_change );
97            }
98        }
99    }
100    return ;
101}
102
103(function(  ) {
104    try {
105        document.getElementById( 'login_record' ).style.visibility = 'visible';
106        var origin = location.origin;
107        if ( ! location.origin ) {
108            var protocol = ( location.protocol ? location.protocol : '' );
109            var hostname = ( location.hostname ? location.hostname : '' );
110            var port = ( location.port ? location.port : '' );
111            origin = protocol + '//' + hostname + port;
112        }
113        var pathname = location.pathname;
114        base = origin.concat( pathname /* .replace( /^\/cgi\//, '/' ) */ .replace( /[^\/]*$/, '' ) );
115        api_base = origin.concat( pathname /*.replace( /^\/cgi\//, '/' ) */ .replace( /[^\/]*$/, '' ) );
116        httprequest = new XMLHttpRequest(  );
117        if ( httprequest.addEventListener ) {
118            httprequest.addEventListener( 'load', on_load_httprequest, false );
119        }
120        else if ( httprequest.attachEvent ) {
121            httprequest.attachEvent( 'onreadystatechange', on_load_httprequest );
122        }
123        else /* if ( httprequest.onreadystatechange ) */ {
124            httprequest.onreadystatechange = on_load_httprequest;
125        }
126        set_login_auth(  );
127        document.getElementById( 'message' ).innerHTML = ' ';
128        return ;
129    }
130    catch ( ex ) {
131        if ( ex instanceof TypeError ) {
132            console.log( ex );
133            var err = '';
134            if ( ex.stack ) {
135                err = ex.stack.replace( /\r?\n/, '<br />' );
136            }
137            else {
138                err = ex;
139            }
140            document.getElementById( 'login_record' ).innerHTML = 'TypeError!!<br />'.concat( err );
141        }
142        else if ( ex instanceof ReferenceError ) {
143            console.log( ex );
144            var err = '';
145            if ( ex.stack ) {
146                err = ex.stack.replace( /\r?\n/, '<br />' );
147            }
148            else {
149                err = ex;
150            }
151            document.getElementById( 'login_record' ).innerHTML = 'ReferenceError!!<br />'.concat( err );
152        }
153        else {  // SyntaxError はそれだけに絞り込んだ catch は恐らくしにくいのではないかな?
154            console.log( ex );
155            var err = '';
156            if ( ex.stack ) {
157                err = ex.stack.replace( /\r?\n/, '<br />' );
158            }
159            else {
160                err = ex;
161            }
162            document.getElementById( 'login_record' ).innerHTML = 'Error!!<br />'.concat( err );
163        }
164        return ;
165    }
166})(  );

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.