;angularApp.controller("cUserLogin", function($rootScope, $scope, $cookies, $http, $window, $location) {
	const vm = this;
	vm.common = $rootScope.common;
	vm.event = {
		init() {
			if(vm.common.is_login) $location.path("/");
			vm.el = {};
			vm.params = {passwordType: "password", rememberMeData: $cookies.getObject('rememberMe')};
			vm.form = {};
			if(vm.params.rememberMeData && vm.params.rememberMeData.value) {
				vm.params.rememberMe = true;
				vm.form.id = vm.params.rememberMeData.value;
			};
		},
		passwordType() {
			if(vm.params.passwordType == "password") vm.params.passwordType = "text";
			else vm.params.passwordType = "password";
		},
		rememberMe() {
			if(vm.params.rememberMe) {
				const today = new Date();
				$cookies.putObject('rememberMe', {value: vm.form.id}, {expires: new Date(today.getFullYear(), today.getMonth() + 1, today.getDate())});
			} else $cookies.remove('rememberMe');
		},
		login() {
			vm.event.rememberMe();
			vm.params.progressLogin = true;
			$http.post("/common/request/login", vm.form, {responseType: "json"}).then(r => {
				if(r.data.status == "success") {
					vm.common.is_login = true;
					$location.path("/");
				} else if(r.data.message) alert(r.data.message);
				else alert("예기치 못한 오류가 발생하였습니다.");
				vm.params.progressLogin = false;
			}, console.log);
		},
		idEnter(e) {
			if(e.keyCode == 13) {
				$window.document.getElementById('input-password').focus();
			};
		},
		passwordEnter(e) {
			if(e.keyCode == 13) {
				vm.event.login();
			};
		}
	};

	$scope.$watch("vm.params.rememberMe", (nv) => {
		if(angular.isUndefined(nv)) return;
		if(!nv) vm.event.rememberMe();
	});

	vm.event.init();
});