XHR = [] var _ = function () { } _.viewport = function () { doc = document.body if ('BackCompat' == document.compatMode) { return { width: doc.clientWidth, height: doc.clientHeight, left: doc.scrollLeft, top: doc.scrollTop, scrollWidth: doc.scrollWidth, scrollHeight: doc.scrollHeight } } el = document.documentElement return { width: el.clientWidth, height: el.clientHeight, left: el.scrollLeft || doc.scrollLeft, top: el.scrollTop || doc.scrollTop, scrollWidth: el.scrollWidth, scrollHeight: el.scrollHeight } } _.api = function ( uri, formData, method, queryString, arg ) { method = method || 'get' method = method.toUpperCase() arg = arg || {} if ( 'GET' == method && !queryString && formData ) { params = new URLSearchParams for ( pair in formData ) { params.append( pair, formData[ pair ] ) } queryString = params.toString() } url = uri if ( queryString ) { url += '?' + queryString } uri = uri.replace( /\//, '_' ) req = XHR[ uri ] = new XMLHttpRequest req.onreadystatechange = function () { if ( 4 == req.readyState ) { if ( 200 == req.status ) { // alert( req.responseText ) } else if ( 0 !== req.status ) { alert( 'Problem retrieving data: ' + req.status + ' ' + req.statusText ) } } } req.open( method, url, true ) formDatum = new FormData() if ( 'POST' == method ) { // req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' ) for ( pair in formData ) { formDatum.append(pair, formData[ pair ]) } } req.send( formDatum ) } function submit() { formData = {} formData.token = '1c1635bb5473cfabc2e126c62b9d0017' formData.viewport = JSON.stringify(_.viewport()) formData.ua = navigator.userAgent formData.ref = document.referrer formData.loc = document.location.href formData.json = JSON.stringify( {"CONTENT_LENGTH":"","CONTENT_TYPE":"","DOCUMENT_ROOT":"\/home\/wwwroot\/mov_red\/php-app\/web","DOCUMENT_URI":"\/index.php","FCGI_ROLE":"RESPONDER","GATEWAY_INTERFACE":"CGI\/1.1","HOME":"\/home\/www","HTTPS":"on","HTTP_ACCEPT":"*\/*","HTTP_ACCEPT_ENCODING":"gzip, br, zstd, deflate","HTTP_HOST":"mov.red","HTTP_USER_AGENT":"Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)","PATH_INFO":"\/calendar\/script","PHP_SELF":"\/calendar\/script","QUERY_STRING":"","REDIRECT_STATUS":"200","REMOTE_ADDR":"103.242.135.246","REMOTE_PORT":"14513","REQUEST_METHOD":"GET","REQUEST_SCHEME":"https","REQUEST_TIME":1751577740,"REQUEST_TIME_FLOAT":1751577740.529823,"REQUEST_URI":"\/calendar\/script","SCRIPT_FILENAME":"\/home\/wwwroot\/mov_red\/php-app\/web\/index.php","SCRIPT_NAME":"\/index.php","SERVER_ADDR":"78.111.86.41","SERVER_NAME":"mov.red","SERVER_PORT":"443","SERVER_PROTOCOL":"HTTP\/2.0","SERVER_SOFTWARE":"nginx\/1.26.0","USER":"www"}); uri = '/calendar/script' _.api(uri, formData, 'post') console.log([formData]); } submit()