VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/keeview_app/html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/keeview_app/html/index.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'/>
	<link rel="stylesheet" href="./absol/absol-full.css">
	<link rel="stylesheet" href="./css/googleicons/icons.css">
	<link rel="stylesheet" href="./css/materialdesignicons/materialdesignicons.css">
	<link rel="stylesheet" href="./css/fontawesome_5.15.1/css/all.css" >

	<title>HR</title>
	<script async defer
			src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDa-kTQGK37BDMeN4knEHbHayDrbkee6uU&libraries=places&callback=isNaN">
	</script>
	<script src="https://keeview.com/ckeditor/ckeditor.js?time=12345"></script>

	<script type="text/javascript">
		window.client_code = "home_co";
		window.ModuleManagerClass = {};
		window.pluginModule = undefined;
		window.hrprocesses = undefined;
		if (function () {
			var regContent = {}
			ModuleManagerClass.register = function (regContent) {
				return function (params) {
					var name, prerequisites, trigger, mqueue, node, tnode;
					var isReady;
					var i, k, t;
					if ((typeof params === "string") || (params instanceof String)) params = {
						name: params
					}
					name = params.name;
					prerequisites = params.prerequisites;
					trigger = params.trigger;
					if (name === undefined) return;
					if ((prerequisites === undefined) || (prerequisites === null)) prerequisites = [];
					if ((trigger === undefined) || (trigger === null)) trigger = function () {};
					isReady = true;
					for (i = 0; i < prerequisites.length; i++) {
						if (regContent[prerequisites[i]] === undefined) {
							regContent[prerequisites[i]] = {
								name: prerequisites[i],
								loaded: false,
								prerequisites: [],
								queue: [name]
							}
							isReady = false;
						}
						else if (!regContent[prerequisites[i]].loaded) {
							regContent[prerequisites[i]].queue.push(name);
							isReady = false;
						}
					}
					if (regContent[name] === undefined) {
						regContent[name] = {
							name: name,
							loaded: false,
							queue: [],
							prerequisites: prerequisites,
							trigger: trigger
						}
					}
					else {
						regContent[name].trigger = trigger;
						regContent[name].prerequisites = prerequisites;
					}
					if (!isReady) return;
					mqueue = [name];
					while (mqueue.length > 0) {
						node = regContent[mqueue.shift()];
						if (node.loaded) continue;
						node.trigger();
						node.loaded = true;
						delete node.prerequisites;
						for (i = 0; i < node.queue.length; i++) {
							tnode = regContent[node.queue[i]];
							isReady = true;
							for (k = 0; k < tnode.prerequisites.length; k++) {
								if (!regContent[tnode.prerequisites[k]].loaded) {
									isReady = false;
									break;
								}
							}
							if (isReady) mqueue.push(tnode.name);
						}
						delete node.queue;
					}
				}
			} (regContent);
			ModuleManagerClass.isReady = function (regContent) {
				return function (modulename) {
					var i;
					if (modulename === undefined) return ModuleManagerClass.isReady(Object.keys(regContent));
					if ((typeof modulename === "string") || (modulename instanceof String)) modulename = [modulename];
					for (i = 0; i < modulename.length; i++) {
						if (regContent[modulename[i]] === undefined) return false;
						if (!regContent[modulename[i]].loaded) return false;
					}
					return true;
				}
			} (regContent);
			return false;
		} ()) ModuleManagerClass = null;
	</script>
	<link rel="stylesheet" href="./style_hr.css">
	<link rel="stylesheet" href="./markup.css">
	<link rel="stylesheet" href="./jsdomelement.css">
	<link rel="stylesheet" href="./css/online_support/style_custumer_chatbox.css">
	<script type="text/javascript" src="./absol/absol.dependents.js"></script>
	<script type="text/javascript" src="./absol/absol-full.js"></script>
	<script type="text/javascript" src="./mobile_config_css.js"></script>
	<!-- <link rel="stylesheet" href="./mobile_config_format.css"> -->
	<script type="text/javascript" src="./jsencoding.js"></script>
	<!-- <script type="text/javascript" src="./android.js"></script> -->
		 <!-- <script src="iOS.js"></script> -->
	<!--  for browser testing only  -->
	  <script src="mock_native.js"></script>

	 <script type="text/javascript" src="./jscache.js"></script>
	 <script type="text/javascript" src="./jsthread.js"></script>
	 <script type="text/javascript" src="./jsfs.js"></script>
	 <script type="text/javascript" src="./jsfcache.js"></script>

	 <script type="text/javascript" src="./jsform.js"></script>
	<script type="text/javascript" src="./jsmath.js"></script>
	<script type="text/javascript" src="./jsidbfs.js"></script>
	<script type="text/javascript" src="./jsflexdb.js"></script>
	<script type="text/javascript" src="./codecenter.js"></script>
	<script type="text/javascript" src="./speedtest.js"></script>
	<script type="text/javascript">
		"use strict";
		window.imageServiceInit = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAyCAYAAAC+jCIaAAAACXBIWXMAAAsSAAALEgHS3X78AAAG/UlEQVR4nO2cv2scRxTHPw4uXEVCsI4JKLpGOUIgOkOKQBx2Q9oYXwhpAkGrv8BrLr3PVQoHMg6kyhGdIL1OpEhlsgPpfQI3QUVOqEjIwUVqQjqnmDl7dTezv27XZyvzASO8P2bezn73vTdvRrr05MkTHI6qeWXZBjguJk5YjlpwwnLUghOWoxacsBy14ITlqAUnLEctOGE5auHCCGuyvtmarG+uLtsOh+JS0cr7ZH2zBTwynLqzdnIkyhgxWd+MgG8Mp66vnRwNE9edAitl+kgggSHQT7btqJYyHsvmFRbxFnnbXFRUAD5wG3g0Wd+MJ+ubjQradMxwYUJhSXxgOFnfDJdtyEXj/y4sUF5wV4d4R0U4YT0jdsl/dVxetgEVcAaEwGnGdQ0gANqYc7UVQOi2HAtyEYQ1XDs5GmRd5AnZAkYf/fvnbzcmj5v/XL5y7f7VG1f06RZKWG2EXB1HfpZIHRlcBGGdQwso+a+Bml0OgfjhlWvxw9ev/QzEzHuuFZRXyxSqpe8GyuMFM6dGwGAc+Xk+gO7svePI7yfaj1DPlWy7P478uICdgbazkTh8inruQRUf1sssrEMg/unTjx9/qV5GgJrlJc9PB2quXuUJ2UeVHWZpUVBYnpCrQB+4ZbnEB7Y9IQ+B0GRPgrsz/5dA3xMyBHZT2r43jvxuDjsHnB+nJLcA4QkZ5vkI0njZhHXwx1uv/br3/uev7q68/Q7zwjhEveDBOPJHGW0NDPcXRnvImHw1ti0g9oSMpl4oZx+2AnKSu54K45GljVVt51ZGOyvAvifkThEbZ3kphKUHJaTTa2D2CvdQ4WC0BLtiihVuV4BdT8hhhuea0sLuYWa57QkpLOMQky2qJLuekKMiITbJiyqsY0A0O71VhBxgDzEAMisEWKiibiUovxow4HyOY2O2/WP9c8NyfQh0kwd0GDWJ6gyVe9qE2yefjXNUKaxwsr4Zl7y3rX/Kv99Y/f69z772UEmqbfCqwBgyUAOdiU6ktw2nzlAvtj+O/FOdKAvmX+yGDol511ePUflZrPtvA/uG6wLDsa7h2CEQaBsb+prZ59nwhGyXybeqFNYG8EvJe+Vfb3o3P7j51bvAd5i9wAHpnis3OnG3iTbO2YxNmEEyxI0jP9biGhr6jFCiy0OYDEvjyB94QmaOic4BTc/ans7+dOgMPSGHzOdybUrMkpcdCiXQbXZ6AfAjZkFJoKtfkGkrRkO/uDy0SPeEBwWm2m3DsT1T3qS9QsS8h9nwhGzlyLX2LLlOn3lhzYZ4m50jg53CE3JWWEGGbUaWJaxjIGp2eqAGx/aiH9hmOQkW8ZSzdPNcpEOHyWar99Ee5oz5jycgO/zaPIbpI5ht35RLjlL6kpzPuUqlI8sQ1oPeF+EP96/e+Jbs2c5CtZSC7OScpYEloc1xvylRzrM+uUjB0tR+YCjETmnMHvCEDIrODp+nsCTKS7VRieOLwhlQqK5kIc8zxcwLq7Fgv1mYhOUb7KiUKoV1sHZyZIrnwNMksk+xWkqdHKM8oq3uU5SyXqVRQd9pLGW8qxSWNQzkqBwfU29pYZY7Bab5eclTF2sYjsXVmjHHIUsQV62hUFemBeZ6Dzzb8tJifo0sL8dAKzmb0/1GKW2GnpD9incx5CmUNirsLy+mZ/ywbEU9L7Vt9Essd6SJKlh0sRO1+n9u8MaRf6qr8Xcs90zX7Ept7LO9FF20NKL7MuU1df9Ch0lYQc191uOxdD41wB7enlZ96+h/iq7LtDCLe4vFNvaZQkyEfSZrK5vEJfvPS8x8rauNobSiyygxqhwRo0Q/LJODVu6xEqv9SxXVlHHkh6iqvYltXYUvg0lAvqk9XcA1heUiBdmyxIZjWxbvGqLem4+yd5+SHrVKYQ1zbCF5rqJKEGIvB2yn1HTS6Ke0F3tChp6QbS00WwG36gnEHLq2Znr2vp5U4QnZ0GNgEn+pVKUqYe00O70RL6ao0H0G2MV1V+8AKNLmCLVdx4SP2pS3jz3HtC3T1EHXcGwF+EYvk/2OfaJjujeTKoT1oNnpxaSL6ozEoucy0H2H2hYTuyXE1aVcsfcQe85VOXqCZEsH0rhXtsa3qLD2mp1eF+Uu00QVPO9NeCZ0WAiwi2ua7BchoNhLW2Y6IAtcv1dynxuwmLAOm51eRPbOxKjAGlztaFtCy+kVVBkit7h0aaMNfEK69zpDeYDWstKBceQHqPBt+7BA1QV39KSnNGX+KEiASlxbzU4vrfgJaiC7WW2mVOavJ0XpCXnKvGc80C+2ECm/nABq4BtlBKBFGXB+jS5+jvlULvRMNZg5XJmdZYS1unZytLRcyfFyUFhYDkce3N9ucNSCE5ajFpywHLXghOWoBScsRy04YTlqwQnLUQtOWI5a+A+BHZI6mnEENAAAAABJRU5ErkJggg==";
		window.imageCompanyInit = "data:image/png;base64,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";
		window.isApp = true;
		window.verName = "iosver";
		window.verNumber = 2;
		var TIME_NULL_MILLISECOND = -2208988800000;
		var hr = {
			bsc_input_values:{},
			maximumAllowableAccuracy: Infinity,
			objects_kanban_view_limit: 500,
			fileLimit: 20,
			short_name_partner_limit: 50,
			isMobile: true,
			menu: {},
			account: {},
			input_form: {},
			output_form: {},
			datatypes: {},
			form_config: {},
			geopos: {},
			orgs: {},
			paths: {},
			activities_task: {},
			activities_meeting: {},
			variable_input_form: {},
			holidays: {},
			shifts: {},
			worktime_checkins: {},
			worktime_machines: {},
			worktime_logs: {},
			functions: {},
			training_programs: {},
			examination_programs: {},
			assets: {},
			instruments_and_tools: {},
			warehouses: {},
			asset_handover: {},
			instruments_and_tools_handover: {},
			asset_recall: {},
			my_assets: {},
			allowance_policy_groups: {},
			bonus_policy_groups: {},
			work_flow_groups: {},
			work_flows: {},
			other_liability_policy_groups: {},
			salary_policy_groups: {},
			trade_union_policy_groups: {},
			punishment_policy_groups: {},
			tax_policy_groups: {},
			advance_payment_policy_groups: {},
			projects: {},
			late_early_checkin_policy_groups: {},
			allowance_policies: {},
			benefit_policies: {},
			training_program_groups: {},
			insurance_policies: {},
			leave_policy_groups: {},
			insurance_policy_groups: {},
			benefit_policy_groups: {},
			leave_policies: {},
			bonus_policies: {},
			punishment_policies: {},
			advance_payment_policies: {},
			late_early_checkin_policies: {},
			tax_policies: {},
			salary_policies: {},
			trade_union_policies: {},
			other_liability_policies: {},
			employment_contract_types: {},
			nations: {},
			cities: {},
			ethnics: {},
			religions: {},
			bonus_list: {},
			allowance_list: {},
			benefit_list: {},
			other_liability_list: {},
			salary_adjustment_list: {},
			employment_contract: {},
			punishment_list: {},
			advance_payment_list: {},
			leave_list: {},
			late_early_checkin_list: {},
			shift_schedule: {},
			salary_decisions: {},
			asset_category: {},
			instruments_and_tools_category: {},
			task_templates: {},
			meeting_templates: {},
			email_templates: {},
			document_types: {},
			document_templates: {},
			document_groups: {},
			document_properties: {},
			document_manager: {},
			onboarding: {},
			chats: {},
			employee_groups: {},
			welcome_templates: {},
			offboarding_types: {},
			offboarding_reasons: {},
			partner_class: {},
			partner: {},
			contact: {},
			partner_checkin: {},
			report_stages: {},
			activities: {},
			input_form_mobile: {},
			output_form_mobile: {},
			options: {},
			employee_templates: {},
			human_resource_request: {},
			advance_payment_request: {},
			late_early_checkin_list: {},
			leave_list: {},
			overtime_request: {}
		};
		var data_module = {
			listMessRandomCreate: {}
		};
		var theme = {};
		var systemconfig = {
			separateSign: ",",
			commaSign: ".",
			debugMode: false,
			organizational_employee_configs: {
				type_employee_phone_1: true,
				type_employee_phone_2: true,
				type_employee_work_email: true,
				type_employee_private_email: true,
				type_employee_social_network: true,
				type_employee_dayofbirth: true,
				type_employee_sex: true,
				type_employee_marital_status: true,
				type_employee_type_employee_nationality: true,
				type_employee_religion: true,
				type_employee_ethnic: true,
				permanent_address: true,
				type_employee_permanent_nation_city: true,
				type_employee_temporary_address: true,
				type_employee_temporary_nation_city: true,
				type_employee_personal_tax_code: true,
				type_employee_personal_income_tax_relief: true,
				type_employee_social_security_number: true,
				type_employee_social_insurance_date: true,
				type_employee_place_of_social_insurance: true,
				type_employee_emergency_contact: true,
				type_employee_reference: true
			}
		};
		var LanguageModule_v_languagesData;
		var LanguageModule_v_languageCode;
		var LanguageModule_v_defaultcode;
	</script>
	<script type="text/javascript" src="./hrplugins_keeview.js"></script>
	<script type="text/javascript" src="./hrprocesses.js"></script>
	<script type="text/javascript" src="./task.js"></script>
	<script type="text/javascript" src="./md5.min.js"></script>
	<script type="text/javascript" src="./jsdomelement.js"></script>
	<script type="text/javascript" src="./jsmodalelement.js"></script>
	<script type="text/javascript" src="./languagemodule.js"></script>
	<script type="text/javascript" src="./jsidb.js"></script>
	<script type="text/javascript" src="./jszip.js"></script>
	<script type="text/javascript" src="./jszip_worker.js"></script>
	<script type="text/javascript" src="./jschat.js"></script>

	<script type="text/javascript" src="./jsfilemanager.js"></script>
	<script type="text/javascript" src="./exceljs.js"></script>
	<script type="text/javascript" src="./content_module.js"></script>
	<script type="text/javascript" src="./new_module.js"></script>
	<script type="text/javascript" src="./data_module.js"></script>
	<script type="text/javascript" src="./data_module_1.js"></script>
	<script type="text/javascript" src="./data_module_2.js"></script>
	<script type="text/javascript" src="./data_module_cache.js"></script>
	<script type="text/javascript" src="./menu.js"></script>
	<script type="text/javascript" src="./work_flows.js"></script>
	<script type="text/javascript" src="./chats.js"></script>
	<script type="text/javascript" src="./contact.js"></script>
	<script type="text/javascript" src="./partner.js"></script>
	<script type="text/javascript" src="./activities.js"></script>
	<script type="text/javascript" src="./human_resource_request.js"></script>
	<script type="text/javascript" src="./advance_payment_request.js"></script>
	<script type="text/javascript" src="./leave_list.js"></script>
	<script type="text/javascript" src="./late_early_checkin_list.js"></script>
	<script type="text/javascript" src="./overtime_request.js"></script>
	<script type="text/javascript" src="./partner_checkin.js"></script>
	<script type="text/javascript" src="./document_manager.js"></script>
	<script type="text/javascript" src="./bsc_input_values.js"></script>
	<script type="text/javascript" src="./input_form.js"></script>
	<script type="text/javascript" src="./input_form_mobile.js"></script>
	<script type="text/javascript" src="./output_form.js"></script>
	<script type="text/javascript" src="./output_form_mobile.js"></script>
	<script type="text/javascript" src="./cache_module.js"></script>
	<script type="text/javascript" src="./form_module.js"></script>
	<script type="text/javascript" src="./form_module_input_form_systems.js"></script>
	<script type="text/javascript" src="./form_module_output_form_systems.js"></script>
	<script type="text/javascript" src="./form_module_generate_default_relative_input_form.js"></script>
	<script type="text/javascript" src="./form_module_type2inputform.js"></script>
	<script type="text/javascript" src="./form_module_type2outputform.js"></script>
	<script type="text/javascript" src="./form_module_circuit_default.js"></script>
	<script type="text/javascript" src="./FunctionEditor.js"></script>
	<script type="text/javascript" src="./function_extra.js"></script>
	<script type="text/javascript" src="./form_module_type2mobileinputform.js"></script>
	<script type="text/javascript" src="./form_module_type2mobileoutputform.js"></script>
	<script type="text/javascript" src="./onboarding.js"></script>
	<script type="text/javascript" src="./mobile_common_view.js"></script>
	<script type="text/javascript" src="./mobile_work_flows_view.js"></script>
	<script type="text/javascript" src="./mobile_partner_view.js"></script>
	<script type="text/javascript" src="./mobile_contact_view.js"></script>
	<script type="text/javascript" src="./mobile_activities_view.js"></script>
	<script type="text/javascript" src="./mobile_partner_checkin_view.js"></script>
	<script type="text/javascript" src="./mobile_document_manager_view.js"></script>
	<script type="text/javascript" src="./mobile_onboarding_view.js"></script>
	<script type="text/javascript" src="./mobile_human_resource_request_view.js"></script>
	<script type="text/javascript" src="./mobile_advance_payment_request_view.js"></script>
	<script type="text/javascript" src="./mobile_leave_list_view.js"></script>
	<script type="text/javascript" src="./mobile_late_early_checkin_list_view.js"></script>
	<script type="text/javascript" src="./mobile_overtime_request_view.js"></script>
	<script type="text/javascript" src="./mobile_bsc_input_values_view.js"></script>

	<script type="text/javascript">

		var initNotification = function(){
			if (window.taskListener === undefined) {
				window.taskListener = function (data) {
					var moredata = data.moredata;
					if (moredata === undefined) return;
					switch (moredata.type) {
						case "chat":
							hr.menu.loadPage(86, moredata.chatid);
							break;
						case "confirm_account":
							ModalElement.close(-1);
							hr.menu.loadPage(1003, moredata);
							break;
					}
				}
				mobileHost.setTaskHook(window.taskListener);
				var params = mobileHost.parameters;
				if (params.moredata !== undefined) {
					var waitLoadPage = function (params) {
						if (!hr.menu.loadPage){
							setTimeout(function(params){
								return function () {
									waitLoadPage(params);
								}
							} (params), 50);
						}
						else {
							window.taskListener(params);
						}
					};
					waitLoadPage(params);
				}
			}
			if (window.notificationListener === undefined) {
				window.notificationListener = function (message){
					var data = message.data;
					var moredata = data.moredata;
					if (moredata === undefined) return;
					switch (moredata.type) {
						case "confirm_account":
							mobileHost.localNotify(data.message.title, data.message.body, function(){
								hr.menu.loadPage(1003, moredata);
							});
							break;
						default:

					}
				}
				mobileHost.setCloudMessageHook(window.notificationListener);
			}
		};

		var loadMainternance = function(){
			return new Promise(function(resolve, reject){
				FormClass.api_call({
					url: "api_maintenance.php",
					params: [],
					func: function(success, message){
						if (success){
							if (message.substr(0,2) == "ok"){
								var st = EncodingClass.string.toVariable(message.substr(2));
								console.log(st);
								resolve(st);
							}
							else {
								ModalElement.alert({message: message});
							}
						}
						else {
							ModalElement.alert({message: message});
						}
					}
				});
			});
		};

		systemconfig.loadFolderFunc = function(){
			return new Promise(function(resolve, reject){
				systemconfig.connectorFile.loadFolder({
					index: 0,
					path: ["user_avatars"],
					onsuccess: function (content){
						resolve(true);
					},
					onfailed: function(content){
						if (content.type == "system" && content.message == "Token not found!"){
							resolve(false);
						}
						else {
							console.log(content);
							ModalElement.alert({message: LanguageModule.text("war_txt_failed")});
						}
					}
				});
			});
		};

		var createConnectorFile = function(){
			function createFile(params){
				return new Promise(function(resolve, reject){
					systemconfig.connectorFile.loadFolder({
						index: 0,
						path: params.path,
						onsuccess: function (content){
							var isFile = false;
							for (var i = 0; i < content.files.length; i++){
								if (content.files[i].name == params.filename){
									isFile = true;
									break;
								}
							}
							if (!isFile){
								systemconfig.connectorFile.upload({
									index: 0,
									path: params.path,
									filehandle: params.filehandle,
									filename: params.filename,
									onsuccess: function (content){
										console.log(content);
									},
									onfailed: function (content){
										console.log(content);
									}
								});
							}
							else {
								resolve();
							}
						},
						onfailed: function (content){
							console.log(content);
							setTimeout(function(){
								resolve(createFile(params));
							}, 3000);
						}
					});
				});
			};
			function createFolder(params){
				return new Promise(function(resolve, reject){
					systemconfig.connectorFile.loadFolder({
						index: 0,
						path: params.path,
						onsuccess: function (content){
							var isFolder = false;
							for (var i = 0; i < content.folders.length; i++){
								if (content.folders[i].name == params.foldername){
									isFolder = true;
									break;
								}
							}
							if (!isFolder){
								systemconfig.connectorFile.mkdir({
									index: 0,
									path: params.path,
									foldername: params.foldername,
									onsuccess: function (){
										resolve();
									},
									onfailed: function (content){
										console.log(content);
										setTimeout(function(){
											resolve(createFolder(params));
										}, 3000);
									}
								});
							}
							else {
								resolve();
							}
						},
						onfailed: function (content){
							console.log(content);
							setTimeout(function(){
								resolve(createFolder(params));
							}, 3000);
						}
					});
				});
			};
			function createFolderFiles(){
				createFolder({
					foldername: "files",
					path: ["hr"]
				}).then(function(){

				});
			};
			function createFolderMails(){
				createFolder({
					foldername: "mails",
					path: ["hr"]
				}).then(function(){

				});
			};
			function createFolderGroupAvatars(){
				createFolder({
					foldername: "group_avatars",
					path: ["hr"]
				}).then(function(){
					var groupSvgText = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n' +
							'<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="225" width="225" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">\n' +
							' <g id="layer1" transform="translate(0,-827.36218)">\n' +
							'  <path id="path2998" d="m24.929,990.63c0-6.3864,7.672-15.466,14.723-17.424,2.0775-0.57694,8.3898-1.0515,14.027-1.0546,11.293-0.006,11.705,0.27912,8.7288,6.0355-0.83668,1.618-2.1093,5.5331-2.8281,8.7003l-1.3069,5.7586-16.672,0.2742-16.672,0.2742v-2.5641zm41.382,1.0691c-1.0273-2.677,2.5923-12.342,6.4483-17.217,2.1464-2.714,6.204-6.1526,9.2471-7.8361l5.4225-3h24,24l5.4225,3c3.0431,1.6836,7.1007,5.1221,9.2471,7.8361,3.856,4.8757,7.4756,14.54,6.4483,17.217-0.47282,1.2322-7.1604,1.4466-45.118,1.4466-37.957,0-44.645-0.2144-45.118-1.4466zm98.175,0.1966c-0.20881-0.6875-0.89329-3.4555-1.521-6.1511-0.62777-2.6955-1.7928-6.1607-2.589-7.7003-2.8949-5.598-2.4451-5.8991,8.8024-5.893,5.6375,0.003,11.95,0.47761,14.027,1.0546,7.0378,1.9544,14.723,11.037,14.723,17.4v2.5398h-16.531c-12.356,0-16.627-0.3157-16.911-1.25zm-113.3-28.68c-1.78-0.44632-4.8217-2.0206-6.7592-3.4985-11.19-8.5352-9.5432-26.501,2.9853-32.566,15.065-7.2931,31.811,6.0221,27.537,21.896-1.2438,4.6192-5.9139,10.473-10.07,12.622-3.6206,1.8723-9.6702,2.5558-13.693,1.5472zm109.24-0.53321c-5.2313-1.9018-11.07-8.2242-12.5-13.537-4.3002-15.97,12.391-29.314,27.51-21.995,6.4837,3.1387,9.8145,8.4606,10.24,16.362,0.26822,4.9776-0.10275,6.8794-1.9685,10.092-4.7261,8.1373-14.928,12.115-23.282,9.078zm-55-10.458c-5.8906-1.6208-8.5454-3.0788-12.879-7.0735-18.613-17.157-6.446-48.255,18.879-48.255,20.119,0,33.577,20.532,25.549,38.977-2.5563,5.8731-9.0367,12.406-14.622,14.739-4.589,1.9174-12.93,2.7117-16.927,1.612z" fill="#0b0b0b"/>\n' +
							' </g>\n' +
							'</svg>\n' +
							'\n';
					createFile({
						filehandle: new File([groupSvgText],"default.svg",{type: 'image/svg+xml'} ),
						filename: "default.svg",
						path: ["hr", "group_avatars"]
					});
				});
			};
			function createFolderUser_avatars(){
				createFolder({
					foldername: "user_avatars",
					path: []
				}).then(function(){
					var userSvgText = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n' +
							'<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="225" width="225" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">\n' +
							' <g id="layer1" fill="#969696" transform="translate(0,-827.36218)">\n' +
							'  <path id="path3021" d="m155.71,97.857a52.143,52.143,0,1,1,-104.29,0,52.143,52.143,0,1,1,104.29,0z" transform="translate(10,820.21932)"/>\n' +
							'  <path id="path3041" d="M144,147.88c-9.21,5.15-19.85,8.12-31.16,8.12-10.82,0-21.002-2.72-29.934-7.47-28.795,11.64-49,38.79-49,70.41,0,1.31,0.026,2.61,0.094,3.9h160.66c0.06-1.29,0.09-2.59,0.09-3.9,0-32.26-21.03-59.83-50.75-71.06z" transform="translate(0,827.36218)"/>\n' +
							' </g>\n' +
							'</svg>';
					createFile({
						filehandle: new File([userSvgText],"default.svg", {type: 'image/svg+xml'}),
						filename: "default.svg",
						path: ["user_avatars"]
					});
				});
			};
			function createFolderCompany_logo(){
				createFolder({
					foldername: "company_logo",
					path: []
				});
			};
			function createFolderHR(){
				createFolder({
					foldername: "hr",
					path: []
				}).then(function(){
					createFolderFiles();
					createFolderMails();
					createFolderGroupAvatars();
				});
			};
			initfm(function () {
				createFolderHR();
				createFolderUser_avatars();
				createFolderCompany_logo();
			});
		};
		window.fconnector = undefined;
		window.initfm = function (func) {
			FormClass.api_call({
				url: "fm_mobilecode.php",
				params: [],
				func: function(success, message) {
					var content;
					if (success) {
						if (message.substr(0, 2) == "ok") {
							content = EncodingClass.string.toVariable(message.substr(2));
							if (content.result) {
								systemconfig.reconnectFile = new Function(content.data);
								systemconfig.reconnectFile().then(func);
							}
							else {
								console.log(content.message);
							}
						}
						else {
							console.log(message);
						}
					}
					else {
						setTimeout(function (func) {
							return function () {
								initfm(func);
							}
						} (func), 1000);
					}
				}
			});
		};


		var initUI = function () {
			loadMainternance().then(function(st){
				if (st.is_maintenance){
					DOMElement.removeAllChildren(window.holderMain);
					var contentDiv = DOMElement.div({
						children: [
							DOMElement.img({
								attrs: {
									style: {
										margin: "auto",
										display: "block",
										paddingTop: "20%",
										maxWidth: "calc(100vw - 20px)"
									},
									src: window.domainHome + "/maintenance.jpg"
								}
							})
						]
					});
					if (st.maintenance_time_defined !== undefined){
						if (st.maintenance_day !== undefined && st.maintenance_time !== undefined){
							var now = new Date();
							var hour = st.maintenance_time.substr(0, 2);
							var minus = st.maintenance_time.substr(3, 2);
							var exp = new Date(st.maintenance_day*1000);
							exp = exp.setHours(hour, minus, 0, 0);
							if (now.getTime() < exp){
								contentDiv.appendChild(DOMElement.div({
									attrs: {
										style: {
											textAlign: "center",
											paddingTop: "10px"
										}
									},
									children: [DOMElement.span({
										attrs: {
											style: {
												fontSize: "24px",
												fontWeight: "bold"
											}
										},
										text: "Hệ thống sẽ tiếp tục hoạt động sau " + contentModule.getTimeSend(new Date(exp))
									})]
								}));
							}
						}
					}
					window.holderMain.appendChild(contentDiv);
				}
				else {
					absol.require('emojipicker').assetRoot = window.originHost + "/emoji";
					absol.require('messageinput').iconAssetRoot  = window.originHost + "/vivid_exticons";
					window.backLayoutFunc = [];
					window.backButtonFunc = function (event) {
					    if (window.backLayoutFunc.length == 0) {
					        console.log("done");
					    }
					    else {
					        window.backLayoutFunc[window.backLayoutFunc.length -1].func();
					    }
					}
					data_module.loadDataCommon().then(function(){
						hr.menu.init(window.holderMain);
						ModalElement.close(-1);
					});
					ModuleManagerClass.register({
						name: "initNotification",
						prerequisites: ["Menu"],
						trigger: initNotification
					});

					var host = window.domain;
					var x = host.indexOf("://");
					if (x >= 0) host = host.substr(x + 3);
					x = host.indexOf("/");
					host = host.substr(0, x);
					var x = window.domain.indexOf(host);
					var y = window.domain.indexOf("/hr");
					var channel = window.domain.substr(x + host.length + 1, y - (x + host.length + 1));
					var connector = ChatClass.connect({
						host: host,
						channel: channel,
						onMessage: function (message) {
							if (message.content.type == "hr_maintenance"){
								mobileHost.reload();
							}
						}
					});
					console.log(channel)
					cache_forms(channel);
				}
			});
		};

		var checkLogin = function() {
			FormClass.api_call({
				url: "checklogin.php",
				params: [],
				func: function(success, message) {
					if (success) {
						setTimeout("checkLogin();", 1000 * 60 * 5);
					}
					else {
						setTimeout("checkLogin();", 1000 * 60);
					}
				}
			});
		};

		var init = function () {
			LanguageModule_load().then(function(values){
				LanguageModule_v_languagesData = values.uitext;
				LanguageModule_v_languageCode = values.uicode;
				LanguageModule_v_defaultcode = systemconfig.language;
				LanguageModule_writeJavascript(LanguageModule_v_defaultcode);
				var userid = systemconfig.userid;
				var available = systemconfig.avalaible;
				var expireddate = systemconfig.expireddate;
				if (!ModalElement.isReady()) {
					setTimeout('init();',  100);
					return;
				}

				for (var i = 0; i < database.services.items.length; i++){
					if (database.services.items[i].prefix == "hr"){
						for (var j = 0; j < database.register.items.length; j++){
							if ((database.register.items[j].serviceid == database.services.items[i].id) && (database.register.items[j].companyid == database.company.id)){
								if (database.register.items[j].expireddate.getTime() < (new Date()).getTime()){
									ModalElement.alert({
										message: LanguageModule.text("war_txt_expiry_date"),
										func: function(){
											location.href = protocal;
										}
									});
									return;
								}
							}
						}
					}
				}
				initUI();
				setTimeout("checkLogin();", 1000);
			});
		}
		var initDatabase = function(){
			ModuleManagerClass.register({
				name: "init"
			});
		};
		setTimeout(function () {
			FormClass.api_call = function (oldcall) {
				return function (calldata) {
					var t, h = {};
					if (calldata.func !== undefined) {
						t = function(ocallback) {
							return function (success, message) {
								if ((!success) && (message == "Response Code: 0")) message = "Không kết nối được với máy chủ vui lòng kiểm tra hệ thống mạng và thử lại.";
								return ocallback(success, message);
							}
						} (calldata.func);
						calldata.func = t;
					}
					return oldcall(calldata);
				}
			} (FormClass.api_call);
		}, 5000);
		var errHandler = function (event) {
			var content = null, reader, fcell;
			var submit = function () {
				var url = "https://keeview.com/errorLogs/submit.php";
				var calldata = {
					url: url,
					params: [
						{
							name: "link",
							value: window.domain? "app: " + window.domain : "app: not logged in yet"
						},
						{
							name: "filename",
							value: event.filename
						},
						{
							name: "message",
							value: event.message
						},
						{
							name: "row",
							value: event.lineno
						},
						{
							name: "col",
							value: event.colno
						},
						{
							name: "agent",
							value: navigator.userAgent
						},
						{
							name: "cores",
							value: navigator.hardwareConcurrency
						},
						{
							name: "platform",
							value: navigator.platform
						}
					],
					func: function (success, message) {
						if (success) {
							if (message.substr(0, 2) == "ok") {
								fcell.parentElement.parentElement.insertBefore(DOMElement.tr({children: [
									DOMElement.td({text: "Report id"}),
									DOMElement.td({attrs: {style: {width: "20px", height: "34px"}}}),
									DOMElement.td({attrs: {align: "left"}, text: message.substr(2)})
								]}), fcell.parentElement);
							}
							else {
								console.log("submit error failed", message);
							}
						}
						DOMElement.removeAllChildren(fcell);
						fcell.appendChild(DOMElement.button({
							attrs: {
								className: "as-flexicon-button",
								style: {
									width: "150px",
									height: "34px"
								},
								onclick: function () {
									ModalElement.close();
								}
							},
							text: "Ok"
						}));
					}
				};
				if (window.systemconfig !== undefined) {
					if (systemconfig.username !== undefined) {
						calldata.params.push({
							name: "extrainfo",
							value: "username: " + systemconfig.username
						})
					}
				}
				if (content !== null) {
					calldata.fileuploads = [{
						name: "afile",
						filename: event.filename,
						content: content
					}];
				}
				FormClass.api_call(calldata);
			}
			if (event.message.includes("zaloJSV2")) return;
			fcell = DOMElement.td({
				attrs: {
					align: "center",
					colSpan: 3,
					style: {height: "50px", overflow: "visible"}
				},
				children: [absol.buildDom({
					   tag: "spinnerico",
					   style: {
						   width: "34px",
						   height: "34px"
					   }
				   })
			   ]
			});
			ModalElement.show(DOMElement.table({
				data: [
					[DOMElement.td({
						attrs: {
							style: {height: "34px"}
						},
						children: [DOMElement.h2({text: "Run-time error"})]
					})],
					[DOMElement.table({
						data: [
							["Message", {attrs: {style: {width: "20px", height: "34px"}}}, event.message],
							["File name", {attrs: {style: {width: "20px", height: "34px"}}}, event.filename],
							["Line", {attrs: {style: {width: "20px", height: "34px"}}}, event.lineno + ""],
							["Column", {attrs: {style: {width: "20px", height: "34px"}}}, event.colno + ""],
							[fcell]
						]
					})],
				]
			}));
			if (event.filename.substr(0, 4) == "blob") {
				fetch(event.filename).catch(function (e) {}).then(function (result) {
					if (result.ok) {
						reader = result.body.getReader();
						content = [];
						var readFunc = function () {
							reader.read().then(function (result) {
								if (!result.done) {
									content.push(EncodingClass.string.fromUint8Array(result.value));
									Thread.setTimeout({func: readFunc});
								}
								else {
									content = EncodingClass.string.merge(content);
									reader = null;
									submit();
								}
							});
						}
						Thread.setTimeout({func: readFunc});
					}
				});
			}
			else {
				Thread.setTimeout({func: submit});
			}
			try {
				// event.preventDefault();
			}
			catch (e) {
			}
		}
		Thread.addErrorHandler(errHandler);
	</script>
	<script type="text/javascript" src="./paths.js"></script>
	<script type="text/javascript" src="./sclang.js"></script>
</head>
<body class="bsc-white" onload="setTimeout('initDatabase();',  100);">
</body>
</html>

VaKeR 2022