/**
 * mplus_mobile_login
 */
var mplus_mobile_login = function () {
	//상속
	mplus_mobile.call(this);
	//super
	var self = this;


	//==== 변수 { ====
  var div = $("<div></div>");
  // test

	var $userId = $("#txtUserId"),
		$passwd = $("#txtPasswd"),
		//$switchHospital = $("#switchHospital"),
		$loginAuto = $("#loginAuto"),
		$loginBtn = $("#loginBtn"),
		$attrSelectBtn = $("#attrSelectBtn"),
		$deptSelectBtn = $("#btnSaveSettingModal");

	var userAttrList = [];

	gDeviceId = "NONE";	// device ID 값이 추출되지 않은 상태는 'NONE'
	gAppKind = "A";
	gAppVersion = "1.0";
	gPhoneKind = "폰기종";
	//==== 변수 } ====


	/**
	 * 초기화
	 */
	this.init = function () {
		/*initDeviceToken();*/

		// 디바이스 정보 추출
		//console.log("execute : getDeviceInfo()");
		getDeviceInfo();
		// 20190125 shinsunwoo device id 추출을 실패한 경우 uuid() 스크립트 값을 적용
		if (gDeviceId == "NONE")
			gDeviceId = uuid();

		initCondition();

		// 초기 이벤트 설정
		addEvent();
	};

	/**
	 * 이벤트 등록
	 */

	//==== 초기화 설정 { ====
	/**
	 * 자동 로그인
	 */
	var initCondition = function () {
		//로그인 한 아이디가 있을 시 처리
		// var storageUserID = localStorage.getItem("defaultUserID");
		// var storageDefaultData = localStorage.getItem("defaultData");
		// if (localStorage.getItem("defaultisAuto") == "true") {
		// 	$loginAuto.attr("checked", true);
		// }
		// //console.log("storageUserID : " + storageUserID);
		// if (storageUserID != null && storageUserID != "") {
		// 	$userId.val(storageUserID);
		// }
		// var isAuto = $loginAuto.is(":checked") ? true : false;
		// if (isAuto) {
		// 	if (storageDefaultData != null && storageDefaultData != "") {
		// 		var decrypt = new JSEncrypt();
		// 		decrypt.setPrivateKey(lKData);
		// 		$passwd.val(decrypt.decrypt(storageDefaultData));
		// 		loginSubmit();
			// }
		// }
	};

	var addEvent = function () {
		// 안드로이드일 경우 자동으로 스크롤되지않아서 추가함
		$(window).resize(function () {
			if (self.isMobile()) {
				if (self.isAndroid()) {
					$("#page").stop().animate({ scrollTop: 190 }, 500);
				}
			}
		});

		// 엔터 이벤트
		$userId.on("keypress", function (e) {
			if (e.keyCode == 13) {
				$passwd.focus();
			}
		});
		$passwd.on("keypress", function (e) {
			if (e.keyCode == 13) {
				loginSubmit();
			}
		});

		//로그인 버튼 클릭 이벤트
		$loginBtn.on("click", function (e) {
			loginSubmit();
		});
		$deptSelectBtn.on("click", function (e) {
			deptSelect();
		});
		$attrSelectBtn.on("click", function (e) {
			attrSelect();
		});
	};

	function loginSubmit() {
		if ($userId.val() === "") {
			self.alert("아이디를 입력하세요.");
			$("#mplusAlert").on("hidden.bs.modal", function () {
				$("#txtUserId").focus();
			});
			return;
		};
		if ($passwd.val() === "") {
			self.alert("패스워드를 입력하세요.");
			$("#mplusAlert").on("hidden.bs.modal", function () {
				$("#txtPasswd").focus();
			});
			return;
		};
		var isAuto = $loginAuto.is(":checked") ? true : false;
		/*var $hospital = $('input[name="hospital-select"]:checked')[0].value;*/
		//var hashPw = Sha256.hash($passwd.val());
		var param = {
			userId: $userId.val(),
			password: $passwd.val(),
			//password: hashPw,
			//rememberMe: isAuto,
			rememberMe: false,
			//hospitalCd: $hospital,
			deviceId: gDeviceId
		};

		var result;
		$.ajax({
			url: contextPath + "/loginSubmit.json",
			type: "POST",
			dataType: "json",
			//async: false,
			data: param,
			success: function (response) {
				
				console.log("login response -- > " + JSON.stringify(response));
				
				// response.msg 가 null 이 아니라면 로그인 실패
				if (response.msg) {
					// 현재 로그인 error는 모두 LoginException으로 처리되기 때문에
					// type 체크는 하지 않았습니다.
					self.alert(response.msg);
					console.log("login failed!!");
					// 로그인 실패 로그를 기록
					processLoginLog($userId.val(), "unknown", "N", response.msg);
					console.log("record login log!!");
					return;
				}
				else {
					// 20181221 shinsunwoo 로그인 응답 코드 확인, returnCd, returnMsg, failCnt 체크
					if (response.returnCd != undefined && response.returnCd != "0000") {
						self.alert(response.returnMsg);
						console.log("login failed!!");
						processLoginLog($userId.val(), "unknown", "N", response.returnMsg);
						console.log("record login log!!");
						return;
					}
					console.log("login success!!");

					//20190102 로그인 계정 로컬스토리지 저장
					localStorage.setItem("defaultUserID", response.departmentList[0].userId);
					//20190314 건대 자동로그인 기능 처리
					console.log("isAuto : " + isAuto);
					if (isAuto) {
						var encrypt = new JSEncrypt();
						encrypt.setPublicKey(lKData);
						localStorage.setItem("defaultisAuto", isAuto);
						localStorage.setItem("defaultData", encrypt.encrypt($passwd.val()));
					}

					processLoginLog(response.departmentList[0].userId, response.departmentList[0].userNm, "Y", "성공");
					console.log("record login log!!");
					localStorage.setItem("hospitalCd", response.hospitalCd);
					localStorage.setItem("departmentList", JSON.stringify(response.departmentList));
					if (response.departmentList.length == 1) {
						// 로그인 부서가 1개 인 경우
						processSingleDeptOpen();
					} else {
						// 로그인 부서가 여러 개 인 경우
						if (localStorage.getItem("defaultDeptCd") != undefined && localStorage.getItem("defaultDeptCd") != "") {
							// 기본 부서가 설정된 경우, 기본 부서로 오픈
							processDefaultDeptOpen();
						} else {
							// 기본 부서가 없는 경우, 부서 선택 다이얼로그 오픈
							deptSelectOpen();
						}
					}
				}
			},
			error: function (XHR, textStatus, errorThrown) {
				self.loading("hide");
				if (XHR.status == 0) {
					self.alert("You are offline!!n Please Check Your Network.");
				} else if (XHR.status == 404) {
					self.alert("Requested URL not found.");
				} else if (XHR.status == 500) {
					self.alert("Internel Server Error.");
				} else if (textStatus == "parsererror") {
					self.alert("Error.nParsing JSON Request failed.");
				} else if (textStatus == "timeout") {
					self.alert("Request Time out.");
				} else {
					self.alert("Unknow Error.n" + XHR.responseText);
				}
				console.log("code:" + XHR.status + "\n" + "message:" + XHR.responseText + "\n" + "error:" + errorThrown);
			},
			beforeSend: function () {
				self.loading("show");
			},
			complete: function () {
				self.loading("hide");
			}
		});
  };
  
  
	//	function attrSelectOpen(user){		
	//		$("#tableAttr").empty();
	//		userAttrList = [];
	//		$.ajax ({
	//			  url : contextPath + "/mobile/auth/getList.json",
	//			  type : "POST",
	//			  contentType: "application/json",
	//			  async: false,
	//			  data: JSON.stringify(user),
	//			  success: function(result){
	//				  userAttrList = result;
	//				  if(userAttrList.length>0){
	//					  var td = $("<td></td>");
	//					  var tr = $("<tr></tr>");
	//					  
	//					  for(var i=0; i<userAttrList.length; i++){
	//						  var tdRadio = td.clone().append(
	//								  			div.clone().addClass("radio3 radio-check").append(
	//								  				$("<input></input>").clone().attr("name", "attrRadio").attr("type", "radio").attr("id", "attrRadio"+i).attr("value", userAttrList[i].userAttrOrder)
	//											).append(
	//													$("<label></label>").clone().attr("for", "attrRadio"+i).text("")	
	//											)
	//									);
	//						  var tdHospital = td.clone().append(userAttrList[i].hospitalName);
	//						  var tdDuty = td.clone().append(userAttrList[i].dutyName);
	//						  var tdWork = td.clone().append(userAttrList[i].workName);
	//						  					  
	//						  var trAttr = tr.clone().append(tdRadio).append(tdHospital).append(tdDuty).append(tdWork);
	//						  
	//						  $("#tableAttr").append(trAttr);
	//						};
	//						
	//						$("#attrRadio0").attr("checked", "true"); //어차피 여기 도착했을때는 사용자가 선택한 속성이 없어서 이므로 무조건 첫번째꺼를 default로 선택
	//						
	//						$("#attrSelectModal").modal("show");
	//				  }else{
	//					  if(JSON.parse(localStorage.user).departmentList.length==1){
	//						  //location.href="index.page";
	//						  location.href = getDefaultHomePageURL( "default");
	//					  }else{
	//						  deptSelectOpen();
	//					  }; 
	//				  };
	//			  }
	//		});
	//		
	//	};
	//	
	//	function attrSelect(){
	//		var selectAttrOrder = $("[name=attrRadio]:checked").val();		
	//		
	//		var param = {
	//				"userId": JSON.parse(localStorage.getItem("user")).userId,
	//				"userAttrOrder": Number(selectAttrOrder)
	//		};
	//		
	//		$.ajax ({
	//			  url : "/mcare-plus/mobile/auth/changeUserAttr.json",
	//			  type : "POST",
	//			  contentType: "application/json",
	//			  beforeSend  : function(){
	//			        self.loading("show");
	//			  },
	//			  data: JSON.stringify(param)
	//		}).done(function(response){
	//			self.loading("hide");
	//			if(response==""){//일단은 성공한거임........
	//				var userInfo = JSON.parse(localStorage.getItem("user"));
	//				userInfo.useAttrOrder = Number(selectAttrOrder);
	//				localStorage.setItem("user", JSON.stringify(userInfo));
	//			}else{
	//				self.alert(response.msg);
	//			}
	//			
	//		});
	//		
	//		$("#attrSelectModal").modal("hide");
	//		
	//		if(JSON.parse(localStorage.user).departmentList.length==1){
	//			//location.href="index.page";
	//			location.href="/mcare-plus/mobile/medical/inpatient.page?menuId=clinic";
	//		  }else{
	//			  deptSelectOpen();
	//		  };  
	//	};

	function deptSelectOpen() {
		var deptList = JSON.parse(localStorage.departmentList);
		var strDisplayTemp = "";
		$("#modalChangeDept .modal-body").empty();
		for (var i = 0; i < deptList.length; i++) {
			//			strDisplayTemp += "<div class=\"radio3 radio-check\">"
			//			+ "  <input name=\"modalChangeDeptRadio\" type=\"radio\" id=\"modalChangeDeptRadio" + i + "\" value=\"" + deptList[i].deptCd + "\" deptname=\"" + deptList[i].deptNm + "\">"
			//			+ "  <label for=\"modalChangeDeptRadio" + i + "\">" + deptList[i].deptNm + "</label>"
			//			+ "</div>"
			//			;
			strDisplayTemp += "<div class=\"custom-control custom-radio wide\">"
				+ "  <input name=\"modalChangeDeptRadio\" type=\"radio\" class=\"custom-control-input\" id=\"modalChangeDeptRadio" + i + "\" value=\"" + deptList[i].deptCd + "\" deptname=\"" + deptList[i].deptNm + "\"> "
				+ "  <label class=\"cst-control-label\" for=\"modalChangeDeptRadio" + i + "\">" + deptList[i].deptNm + "</label>"
				+ "</div>"
				;
		};

		$("#modalChangeDept .modal-body").append(strDisplayTemp);

		// 선택된 부서를 초기 설정으로 등록
		if (localStorage.getItem("selectedDeptCd") == undefined || localStorage.getItem("selectedDeptCd") == "") {
			$("#modalChangeDeptRadio0").attr("checked", "true");
		} else {
			$("input:radio[name=modalChangeDeptRadio]:input[value=" + localStorage.getItem("selectedDeptCd") + "]").attr("checked", true);
		}

		$("#modalChangeDept").modal("show");
		$("#modalChangeDept .modal-body").scrollTop(0);

		// 버튼 이벤트 추가
		$("#btnModalChangeDept").off("click");
		$("#btnModalChangeDept").on("click", function () {
			console.log("부서 변경 : " + $("input:radio[name=modalChangeDeptRadio]:checked").val());
			//선택된 과를 기본 부서로 설정
			localStorage.setItem("selectedDeptCd", $("input:radio[name=modalChangeDeptRadio]:checked").val());
			localStorage.setItem("selectedDeptNm", $("input:radio[name=modalChangeDeptRadio]:checked").attr("deptname"));

			// 선택된 부서를 셋팅하고 페이지를 Open
			var getTargetDeptCd = localStorage.getItem("selectedDeptCd");
			for (var j = 0; j < deptList.length; j++) {
				if (getTargetDeptCd == deptList[j].deptCd) {
					// 선택된 부서를 localstorage에 셋팅
					setLocalStorageSelectedInfo(deptList[j]);
					break;
				}
			}

			// 기본 페이지로 이동
			gotoDefaultHomePage();
		});
	}

	/**
	 * device token 설정
	 */
	/*	var initDeviceToken = function(){
			var msg = {
					type : "command", 
					functionType : "token", 
					value : {
						callbackFn : "window.activeObj.getDeviceTokenCallBack"
					}
			}; 
			self.toNative( msg );
		};*/
	/**
	 * 
	 */
	/*	this.getDeviceTokenCallBack = function(token, type){
			deviceToken = token; 
			certiType = type;
			//self.alert("token : " + token); 
		};*/


	// 디바이스 정보 전송 추출 APP 호출
	var getDeviceInfo = function () {
		var msg = {
			type: "command",
			functionType: "getDeviceInfo",
			value: {
				callbackFn: "window.activeObj.getDeviceInfoCallBack"
			}
		};
		self.toNative(msg);
  };

	  /**
	 * NFC 태그 콜백
	 */
	this.nfctagCallback = function(data){
		if(self.util.isEmpty(data)) {
			return;
    }
    var stringData = String(data);
    if (stringData.length < 10) {
      stringData = stringData.padStart(10, "0");
    }
		console.log('NFC TAG READ: ' + stringData);

		var localHospitalValue = localStorage.getItem("hospitalCd");
		if(self.util.isEmpty(localHospitalValue)){
			// 로컬 스토리지에 저장된 병원코드가 없다면 강제 부여
			// localHospitalValue = '01';
		}
		
		var isAuto = $loginAuto.is(":checked") ? true : false;
		
		if (isAuto == true) {
		  self.alert("NFC 로드인은 자동로그인을 설정할 수 없습니다.");
		  return;
		}

		var param = {
			// 추후 강제 부여 필요성이 있으면 활성화 필요
			// hospitalCd: localHospitalValue
      hospitalCd: localStorage.getItem("hospitalCd"),
      nfcId: stringData,
      deviceId: gDeviceId
    };

		// 읽은 데이터를 조회 한다
		doNfcLogin(param);
  };
  
  function doNfcLogin(param) {
		$.ajax ({
      url: $serviceBaseUrl + "/safety/doNfcLogin.json",
      type : "POST",
      contentType: "application/json",
      data: JSON.stringify(param),
		  success: function(response){
        console.log("response -- > " + JSON.stringify(response));
        console.log("response.departmentList -- > " + response.departmentList);
        // response.msg 가 null 이 아니라면 로그인 실패
        if (response.msg) {
          // 현재 로그인 error는 모두 LoginException으로 처리되기 때문에
          // type 체크는 하지 않았습니다.
          self.alert(response.msg);
          console.log("login failed!!");
          // 로그인 실패 로그를 기록
          processLoginLog($userId.val(), "unknown", "N", response.msg);
          console.log("record login log!!");
          return;
        }
        else {
          // 20181221 shinsunwoo 로그인 응답 코드 확인, returnCd, returnMsg, failCnt 체크
          if (response.returnCd != undefined && response.returnCd != "0000") {
            self.alert(response.returnMsg);
            console.log("login failed!!");
            processLoginLog($userId.val(), "unknown", "N", response.returnMsg);
            console.log("record login log!!");
            return;
          }
          console.log("login success!!");
    
          //20190102 로그인 계정 로컬스토리지 저장
					localStorage.setItem("defaultUserID", response.departmentList[0].userId);
					// //20190314 건대 자동로그인 기능 처리
					// console.log("isAuto : " + isAuto);
					// if (isAuto) {
					// 	var encrypt = new JSEncrypt();
					// 	encrypt.setPublicKey(lKData);
					// 	localStorage.setItem("defaultisAuto", isAuto);
					// 	localStorage.setItem("defaultData", encrypt.encrypt($passwd.val()));
					// }

					processLoginLog(response.departmentList[0].userId, response.departmentList[0].userNm, "Y", "성공");
					console.log("record login log!!");
					localStorage.setItem("hospitalCd", response.hospitalCd);
					localStorage.setItem("departmentList", JSON.stringify(response.departmentList));
					if (response.departmentList.length == 1) {
						// 로그인 부서가 1개 인 경우
						processSingleDeptOpen();
					} else {
						// 로그인 부서가 여러 개 인 경우
						if (localStorage.getItem("defaultDeptCd") != undefined && localStorage.getItem("defaultDeptCd") != "") {
							// 기본 부서가 설정된 경우, 기본 부서로 오픈
							processDefaultDeptOpen();
						} else {
							// 기본 부서가 없는 경우, 부서 선택 다이얼로그 오픈
							deptSelectOpen();
						}
					}
				}
			},
			error: function (XHR, textStatus, errorThrown) {
				self.loading("hide");
				if (XHR.status == 0) {
					self.alert("You are offline!!n Please Check Your Network.");
				} else if (XHR.status == 404) {
					self.alert("Requested URL not found.");
				} else if (XHR.status == 500) {
					self.alert("Internel Server Error.");
				} else if (textStatus == "parsererror") {
					self.alert("Error.nParsing JSON Request failed.");
				} else if (textStatus == "timeout") {
					self.alert("Request Time out.");
				} else {
					self.alert("Unknow Error.n" + XHR.responseText);
				}
				console.log("code:" + XHR.status + "\n" + "message:" + XHR.responseText + "\n" + "error:" + errorThrown);
			},
			beforeSend: function () {
				self.loading("show");
			},
			complete: function () {
				self.loading("hide");
			}
		});
	};

	/**
	 * getNfcDoctorIdCallback 콜백
	 * 
	 * @param {Object} results 
	 */
	var getNfcDoctorIdCallback = function(results){
		console.log('result: ' + results);
		if(self.util.isEmpty(results) || results.length < 1){
			alert('사용자 정보가 없습니다.');
			$("#txtUserId").val("");
			return;
		}
		var doctorNm = results[0].doctorNm;
		var doctorId = results[0].doctorId;

		$("#txtUserId").val(doctorId);
	}

	// 디바이스 정보 전송 추출 callback 처리
	this.getDeviceInfoCallBack = function (returnCode) {
		var results = new Object();
		if (typeof returnCode === "string") {
			results = self.util.parseJson(returnCode);
		} else {
			results = returnCode;
		}

		if (results.success != undefined && results.success == "true") {
			console.log("getDeviceInfo : success");
			console.log(results.result);
			gDeviceId = results.result.deviceId;
			gAppKind = results.result.appKind;
			gAppVersion = results.result.appVersion;
      gPhoneKind = results.result.phoneKind;
			$("#appVersion").text("AppVersion. " + gAppVersion);
		} else {
			console.log("getDeviceInfo : failed");
			self.alert("getDeviceInfo() APP function 호출 오류 ");
		}

		// 20190125 shinsunwoo device id 추출을 실패한 경우 uuid() 스크립트 값을 적용
		if (gDeviceId == "NONE")
			gDeviceId = uuid();
	};

	// 로그인 부서가 1개 인 경우
	var processSingleDeptOpen = function () {
		var deptList = JSON.parse(localStorage.departmentList);
		// 선택된 부서를 localstorage에 셋팅
		setLocalStorageSelectedInfo(deptList[0]);
		// 기본 부서를 localstorage에 셋팅
		if (localStorage.getItem("defaultDeptCd") == undefined || localStorage.getItem("defaultDeptCd") == "")
			localStorage.setItem("defaultDeptCd", deptList[0].deptCd);
		// 기본 페이지로 이동
		gotoDefaultHomePage();
	};

	// 기본 부서가 설정된 경우, 기본 부서로 오픈
	var processDefaultDeptOpen = function () {
		var findedDeptCd = false;
		var deptList = JSON.parse(localStorage.departmentList);
		if (localStorage.getItem("defaultDeptCd") != undefined && localStorage.getItem("defaultDeptCd") != "") {
			var getDefaultDeptCd = localStorage.getItem("defaultDeptCd");
			for (var i = 0; i < deptList.length; i++) {
				if (getDefaultDeptCd == deptList[i].deptCd) {
					// 선택된 부서를 localstorage에 셋팅
					setLocalStorageSelectedInfo(deptList[i]);
					// 기본 페이지로 이동
					gotoDefaultHomePage();
					findedDeptCd = true;
					break;
				}
			}
			// 기본 부서가 없는 경우, 부서 선택창을 띄워 줌 
			if (!findedDeptCd) {
				// 기본 부서가 없는 경우, 부서 선택 다이얼로그 오픈
				deptSelectOpen();
			}
		}
	};

	// 로그인 이력을 기록함
	var processLoginLog = function (userId, userNm, successYn, failMsg) {
		var param = {
			userId: userId,
			userNm: userNm,
			deviceId: gDeviceId,
			appVersion: gAppVersion,
			appKind: gAppKind,
			phoneKind: gPhoneKind,
			userIp: gClientIp,
			currentDt: strYYYYMMDDHHMMSS(new Date()),
			successYn: successYn,
			failMsg: failMsg,
			logFlag: "L"
		};
		//console.log(JSON.stringify(param));
		inputLoginLog(param, function (result) { console.log(result); });
	};

	//=================================== 공통 라이브러리를 복사함 { =================================
	// localstorage에 선택된 사용자 설정 등록 : mplus.common.js에 정의됨
	var setLocalStorageSelectedInfo = function (userDeptInfo) {
		localStorage.setItem("selectedUserId", userDeptInfo.userId);
		localStorage.setItem("selectedUserNm", userDeptInfo.userNm);
		localStorage.setItem("selectedDeptCd", userDeptInfo.deptCd);
		localStorage.setItem("selectedDeptNm", userDeptInfo.deptNm);
		localStorage.setItem("selectedJobKindCd", userDeptInfo.jobKindCd);
		localStorage.setItem("selectedJobKindNm", userDeptInfo.jobKindNm);
    localStorage.setItem("selectedUserAuth", userDeptInfo.userAuth);
    
    //================================ 인증저장에 필요한 데이터 저장 =================================
    localStorage.setItem("deptabbr", userDeptInfo.deptabbr);  // 부서약어 (AK)
    localStorage.setItem("dutplceinstnm", userDeptInfo.dutplceinstnm);  // 근무지기관명 (대구파티마병원)
    localStorage.setItem("dutplcenm", userDeptInfo.dutplcenm);  // 근무지부서명 (인공신장실)
    localStorage.setItem("jobposnm", userDeptInfo.jobposnm);  // 직위명 (간호사)
    localStorage.setItem("posdeptnm", userDeptInfo.posdeptnm);  // 소속부서명 (간호부)
    localStorage.setItem("posinstnm", userDeptInfo.posinstnm);  // 소속기관명 (대구파티마병원)
    localStorage.setItem("prfshipflagnm", userDeptInfo.prfshipflagnm);  // 교직구분명 (정규)
    localStorage.setItem("systeminstnm", userDeptInfo.systeminstnm);  // 시스템소속기관명 (FNU 운영)
    localStorage.setItem("systemnm", userDeptInfo.systemnm);  // 시스템명칭 (FNU 운영)
    localStorage.setItem("unitnm", userDeptInfo.unitnm);  // 고유부서명? (전산정보팀)
    localStorage.setItem("initLoginDtTm", loginDtTm(new Date())); // 인증저장 XML 데이터 밀리초까지 저장

	};

	// 기본 페이지 URL 가져오는 함수  : mplus.common.js에 정의됨
	var getDefaultHomePageURL = function (strHomePage) {
		if (strHomePage == "medicine")
			return contextPath + "/mobile_poc/medicine/medicine.page?menuId=clinic"; // 투약 화면
		else if (strHomePage == "bleeding")
			return contextPath + "/mobile_poc/bleeding/bleeding.page?menuId=clinic"; // 채혈 화면
		else if (strHomePage == "transfusion")
			return contextPath + "/mobile_poc/transfusion/transfusion.page?menuId=clinic"; // 수혈 화면
		else
		  return contextPath + "/mobile_poc/medicine/medicine.page?menuId=clinic";
	};
//	else if (strHomePage == "oppatient")
//  return contextPath + "/mobile/medical/oppatient.page?menuId=clinic";
//else if (strHomePage == "trpatient")
//  return contextPath + "/mobile/medical/trpatient.page?menuId=clinic";
//else if (strHomePage == "copatient")
//  return contextPath + "/mobile/medical/copatient.page?menuId=clinic";
//else if (strHomePage == "barpatient")
//  return contextPath + "/mobile/medical/barpatient.page?menuId=clinic";
//else if (strHomePage == "qrpatient")
//  return contextPath + "/mobile/medical/qrpatient.page?menuId=clinic";
//else if (strHomePage == "nfcpatient")
//  return contextPath + "/mobile/medical/nfcpatient.page?menuId=clinic";
//else if (strHomePage == "doctorworksch")
//  return contextPath + "/mobile/schedule/doctorworksch.page?menuId=clinic";
//else if (strHomePage == "nurseworksch")
//  return contextPath + "/mobile/schedule/nurseworksch.page?menuId=clinic";
//else if (strHomePage == "outpatientsch")
//  return contextPath + "/mobile/schedule/outpatientsch.page?menuId=clinic";
//	else if (strHomePage == "default")
//  // POC 기본 이동은 채혈로 설정
//  return contextPath + "/mobile/safety/bleeding.page?menuId=clinic";
//  // return contextPath + "/mobile/medical/inpatient.page?menuId=clinic";

	// 기본 페이지로 이동해주는 함수  : mplus.common.js에 정의됨
	var gotoDefaultHomePage = function () {
		if (localStorage.getItem("defaultHomePage") == undefined || localStorage.getItem("defaultHomePage") == "") {
			//location.href="index.page";
			//location.href = contextPath + "/mobile/medical/inpatient.page?menuId=clinic";
			location.href = getDefaultHomePageURL("default");
		} else {
			location.href = getDefaultHomePageURL(localStorage.getItem("defaultHomePage"));
		}
	};

	/**
	 * NFC 정보 조회 API 호출 메서드
	 * @param {*} param 
	 * @param {*} callback 
	 */
	var getNfcDoctorId = function(param, callback){
		$.ajax ({
			url: $serviceBaseUrl + "/safety/getNfcDoctorId.json",
			type : "POST",
			contentType: "application/json",
			data: JSON.stringify(param),
			success: function(response){
					if(response.result!=undefined){
							callback(response.result);
					}else{
							self.alert(response.msg);
					}
			},
			beforeSend: function(){
					self.loading("show");
			},
			complete:function(){
					self.loading("hide");
			}
		});
	};

	//로그인 접속 로그 전송 
	var inputLoginLog = function (param, callback) {
		$.ajax({
			url: $serviceBaseUrl + "/login/inputLoginLog.json",
			type: "POST",
			contentType: "application/json",
			data: JSON.stringify(param),
			success: function (response) {
				if (response.result != undefined) {
					callback(response.result);
				} else {
					//self.alert(response.msg);
					console.log(response.msg);
				}
			},
			error: function (XHR, textStatus, errorThrown) {
				self.loading("hide");
				if (XHR.status == 0) {
					self.alert("You are offline!! Please Check Your Network.");
				} else if (XHR.status == 404) {
					self.alert("Requested URL not found.");
				} else if (XHR.status == 500) {
					self.alert("Internel Server Error.");
				} else if (textStatus == "parsererror") {
					self.alert("Error. Parsing JSON Request failed.");
				} else if (textStatus == "timeout") {
					self.alert("Request Time out.");
				} else {
					self.alert("Unknow Error. " + XHR.responseText);
				}
				console.log("code:" + XHR.status + "\n" + "message:" + XHR.responseText + "\n" + "error:" + errorThrown);
			},
			beforeSend: function () {
				self.loading("show");
			},
			complete: function () {
				self.loading("hide");
			}
		});
	};
	//=================================== 공통 라이브러리를 복사함 } =================================

	// 날짜를 YYYYMMDDHHMMSS 로 출력 처리
	var pad2 = function (n) { return n < 10 ? '0' + n : n };
	var strYYYYMMDDHHMMSS = function (date) {
		//var date = new Date();
		//console.log(date.getFullYear().toString() + pad2(date.getMonth() + 1) + pad2( date.getDate()) + pad2( date.getHours()) + pad2( date.getMinutes()) + pad2( date.getSeconds()));
		return date.getFullYear().toString() + pad2(date.getMonth() + 1) + pad2(date.getDate()) + pad2(date.getHours()) + pad2(date.getMinutes()) + pad2(date.getSeconds());
  };
  
  function loginDtTm(date) {
    return date.getFullYear().toString() + pad2(date.getMonth() + 1) + pad2(date.getDate()) + pad2(date.getHours()) + pad2(date.getMinutes()) + pad2(date.getSeconds()) + pad2(date.getMilliseconds());
    }


	// 20190117 shinsunwoo 중복로그인 체크를 위한 uuid 추출(MP_USER_DEVICE_ID 세션으로 등록 처리)
	function uuid() {
		function s4() {
			return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);
		}
		return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
	}
};
