RequestError_xray(btn, json.error);
			} else {
				btn.value = decompressioningText;

				// Extract file
				XHR.get(xrayUpdateUrl, {
					token: tokenStr,
					task: 'extract',
					file: json.file,
					subfix: xrayInfo ? xrayInfo.type : ''
				}, function(x,json) {
					if(json.code) {
						removePageNotice_xray();
						onRequestError_xray(btn, json.error);
					} else {
						btn.value = movingText;

						// Move file to target dir
						XHR.get(xrayUpdateUrl, {
							token: tokenStr,
							task: