/**
 * consent/outpatient
 */
var mcare_mobile_consentOutpatient = function(){
	//상속
	mplus_mobile_consent.call(this);
	
	//변수
	var div = $("<div></div>");
	var tr = $("<tr></tr>");
	var th = $("<th></th>");
	var td = $("<td></td>");
	var table = $("<table></table>");
	var li = $("<li></li>");
	var a = $("<a></a>");
	var span = $("<span></span>");
	var button = $("<button></button>");
	$crudServiceBaseUrl = contextPath + "/mobile";
	
	var $btnSearchPatient = $('#btnSearchPatient');
	var $btnTotalSearchConsent = $('#btnTotalSearchConsent');
	var $btnSearchConsent = $('#btnSearchConsent');
	var $sltTreament = $('#sltTreament');
	var $dtpSrchdd  = $('#dtpSrchdd');
	var $sltDoctor = $('#sltDoctor');
	var $txtSearchPatient = $('#txtSearchPatient');
	var $ulPatientList = $('#ulPatientList');
	var $ulAgreementCheck = $("#ulAgreementCheck");
	var $ulAgreementList = $("#ulAgreementList");
	var $ulConsentList = $("#ulConsentList");
	var $ulSetList = $('#ulSetList');
	var $dtpConsentStartDt = $('#dtpConsentStartDt');
	var $dtpConsentEndDt = $('#dtpConsentEndDt');
	var $sltCategory = $('#sltCategory');
	var $sltCategoryLower = $('#sltCategoryLower');
	var $txtConsentSrch = $('#txtConsentSrch');
	var $tabSet = $('#tabSet');
	var todayDateStr = '';
	
	var $btnPatientConsent = $('#btnPatientConsent');
	var $btnDoctorConsent = $('#btnDoctorConsent');

	var $menuType = 'O';
	
	var self = this;
	
	patientList = [];
	var patientInfo;
	var unfinishedConsentList = [];
	var agreementList = [];
	var setList = [];
	var totalConsentList = [];
	var doctorId;
	var	doctorNm;

	/**
	 * 초기화
	 */
	this.init = function(){
		formDataInit();
		addEvent();
		initDropDownList();
		initSetList();
		if(jobKindCd=='0330'||jobKindCd=='0640'){
			$('input:radio[name=searchRadio]:input[value=""]').attr("checked", true);
		}else{
			$('input:radio[name=searchRadio]:input[value="C"]').attr("checked", true);
		};
		if((indexPage=='O'&&(jobKindCd=='1140'||jobKindCd=='1113'))
				||(jobKindCd=='0330'||jobKindCd=='0640')){
			$sltTreament.selectpicker('val', deptCd);
			if($sltTreament.val()==null) {
				$sltTreament.selectpicker('val', ''); 
			}else{
				showDoctorList(deptCd);
				searchPatientList('Y');
			}
		};
	};
	
	var formDataInit = function(){
		// datepicker 초기화
		$('.datepicker').datepicker({'format': 'yyyy/mm/dd'});
	    var today = new Date();
	    var prevDay = new Date(Date.parse(new Date()) - 7 * 1000 * 60 * 60 * 24); //일주일전!!

	    todayDateStr = moment(today).format('YYYY/MM/DD');
	    var prevDayStr = moment(prevDay).format('YYYY/MM/DD');
	    $("#divDtpSrchdd").datepicker('update', todayDateStr);
	    $("#divDtpConsentStartDt").datepicker('update', prevDayStr);
	    $("#divDtpConsentEndDt").datepicker('update', todayDateStr);
	};
	
	/**
	 * 이벤트 등록
	 */
	var addEvent = function(){
		$btnSearchPatient.on("click", function(e){
			$('span[name^="sort_"]').attr('sortType', '');
			searchPatientList('N');
		});
		$btnTotalSearchConsent.on("click", function(e){
			searchTotalConsentList('Y');
		});
		$btnSearchConsent.on("click", function(e){
			searchConsentList();
		});
		$tabSet.on("click", function(e){
			initSetList();
		});
		$btnPatientConsent.on("click", function(e){
			//일괄인증 버튼 제어
			$('.consentSignBox').css('display', 'none');
			initAggrementList("patient");
		});
		$btnDoctorConsent.on("click", function(e){
			//일괄인증 버튼 제어
			$('.consentSignBox').css('display', 'block');
			initAggrementList("docotr");
		});
		$('span[name^="sort_"]').on("click", function(e){
			self.loading("show");
			setTimeout(function(){
				var sortData = e.currentTarget.attributes.name.value.split('_');
				var sortKey = sortData[1];
				var sortType = sortData[2];
				var sortClassName = sortData[3];
				var sortOrder = $('span.'+sortClassName+'[name^="sort_"]')[0].attributes.sortType.value;
				
				$('span[name^="sort_"]').attr('sortType', '');
				
				if(sortOrder==undefined || sortOrder=='up'){
					sortPatientList(sortKey, sortType, 'down');
					$('span.'+sortClassName+'[name^="sort_"]').attr('sortType', 'down');
				}else{
					sortPatientList(sortKey, sortType, 'up');
					$('span.'+sortClassName+'[name^="sort_"]').attr('sortType', 'up');
				};
				self.loading("hide");
			}, 300);
		});
	};
	
	var initDropDownList = function(){		
		//부서리스트
		var deptParam = {ordtype: 'O'};
		var deptResult = self.hospital.getDeptList(deptParam);
		
		$sltTreament.empty();
		for(var i=0; i<deptResult.length; i++){
			 var option = $('<option value='+deptResult[i].deptcd+'>'+deptResult[i].deptnm+'</option>');
		     $sltTreament.append(option);
		};
		
		$sltTreament.children(":first").attr("selected", true);
		$sltTreament.selectpicker('refresh');
		
		//진료과에 따른 의사조회 이벤트 연결 
		$sltTreament.change(function() {
			showDoctorList(this.value);
		});
		
		//카테고리조회
		var categoryParam = {
				  categoryId: '1'
		};
		var categoryResult = self.consent.getCategoryForDropdown(categoryParam);
		
		$sltCategory.empty();
		for(var i=0; i<categoryResult.length; i++){
		  var option = $('<option value='+categoryResult[i].categoryId+'>'+categoryResult[i].categoryName+'</option>');
		  $sltCategory.append(option);
		};
		
		$sltCategory.children(":first").attr("selected", true);
		$sltCategory.selectpicker('refresh');
		showCategoryLowerList(categoryResult[0].categoryId);
		//진료과에따른 하위 카테고리조회
		$sltCategory.change(function() {
			showCategoryLowerList(this.value);
		});
	};
	
	var showCategoryLowerList = function(categoryId){		
		var param = {
					  categoryId: categoryId
					};
		var result = self.consent.getCategoryForDropdown(param);
		
		$sltCategoryLower.empty();
		for(var i=0; i<result.length; i++){
			  var option = $('<option value='+result[i].categoryId+'>'+result[i].categoryName+'</option>');
			  $sltCategoryLower.append(option);
		};
		
		$sltCategoryLower.children(":first").attr("selected", true);
		$sltCategoryLower.selectpicker('refresh');
	};
	
	//진료과에 따른 의사조회
	var showDoctorList = function(doctorid){
		var param = {srchdd: $dtpSrchdd[0].value.replace(/\//g,''), orddeptcd: doctorid};
		var result = self.hospital.getDoctorList(param);
		
		$sltDoctor.empty();
		for(var i=0; i<result.length; i++){
			var option = $('<option value='+result[i].doctorid+'>'+result[i].doctornm+'</option>');
			$sltDoctor.append(option);
		};
					
		$sltDoctor.children(":first").attr("selected", true);
		$sltDoctor.selectpicker('refresh');
	};
	
	//환자리스트 조회
	var searchPatientList = function(firstYn){
		initPatientInfo();
		var param = {srchdd: $dtpSrchdd[0].value.replace(/\//g,''),
				     orddeptcd: $sltTreament.val(),
				     doctorid: $sltDoctor.val(),
				     pid: $txtSearchPatient.val(),
				     patstat: $(':radio[name="searchRadio"]:checked').val()};
		self.patient.getPatientList($menuType, param, firstYn);			  
	};
	
	//환자리스트 정렬
	var sortPatientList = function(sortKey, sortType, order){
		self.patient.setPatientList($menuType, patientList, sortKey, sortType, order);
	};
	
	//환자정보 초기화
	var initPatientInfo = function(){
		$ulAgreementList.empty();
		patientInfo = {};
		$("#tbPatientInfo").empty();
		unfinishedConsentList = [];
		$ulAgreementCheck.empty();
		$("#consentTap1 .sub-title").empty();
	};
	
	//환자정보 조회
	getPatientInfo = function(seq){
		initPatientInfo();
		var data = patientList[seq];
		var patientParam = { pid: data.pid,
						  	 orddd: data.indd.replace(/\//g,''),
						  	 ordtype: data.ordtype,
						  	 orddeptcd: data.orddeptcd
			  				};
		var patientResult = self.hospital.getPatientInfo(patientParam);
		// target 환자 정보를 보관해 둔다
		patientInfo = patientResult[0];
		if( patientInfo == undefined ) {return;};
		doctorId = data.doctorid; //설명의사 설정하기위해 주치의ID를  보관
		doctorNm = data.doctornm; //설명의사 설정 - 주치의 이름 보관
		
		$("#divDtpConsentStartDt").datepicker('update', moment(patientInfo.ioaddate).format('YYYY/MM/DD'));
		
	    for(var i=0; i<patientResult.length; i++){
		//환자정보 바인딩
			var trData = tr.clone().html(th.clone().text("내원일")).append(td.clone().text(moment(patientResult[i].ioaddate).format('YYYY/MM/DD')));
			var trData2 = tr.clone().html(th.clone().text("주치의")).append(td.clone().text(patientResult[i].iomaindrNm));
			var trData3 = tr.clone().html(th.clone().text("진단명")).append(td.clone().text(patientResult[i].iodxNm));
			var tdData4 = td.clone();
			for(var j=0; j<1; j++){
				tdData5= tdData4.append("").append("</br>"); //alert Data
			};
			var trData6 = tr.clone().addClass("infoalert").html(th.clone().text("Alert")).append(tdData5);
			var tableData = table.clone().addClass("patientData").html(trData).append(trData2).append(trData3).append(trData6);
			$("#consentTap1 .sub-title").text(patientResult[i].ioptID+" " + patientResult[i].ioptName+" "+ editAgeToIdNum(patientResult[i].iosexAgeYM) + "/"+patientResult[i].iojuminNo.split('-')[0]);
	 		$("#tbPatientInfo").append(tableData);
   	    };
		  getUnfinishedConsentInfo(data);
	};
	
	//미작성동의서 조회
	var getUnfinishedConsentInfo = function(data){
	   	var consentParam = {
							  patientCode: data.pid,
							  startDt: patientInfo.ioaddate,
							  endDt: moment(todayDateStr).format('YYYYMMDD'),
							  consentState: "'UNFINISHED', 'TEMP'",
							  jobKindCd: indexPage=='O'&&(jobKindCd=='1140'||jobKindCd=='1113')? 'ALL': jobKindCd
	   						};
	   	var consentResult = self.consent.getConsentList(consentParam);
	   	unfinishedConsentList = consentResult;
	   //미작성동의서 리스트 바인딩
		var divCheckbox = div.clone().addClass("checkbox3  checkbox-check checkbox-light");
		$ulAgreementCheck.empty();
		for(var i=0; i<consentResult.length; i++){
			$ulAgreementCheck.append(
					li.clone().html(
							divCheckbox.clone().html($("<input type='checkbox' id='chkConsentUnfinished_"+(i+1)+"'></input>"))
											   .append($("<label for='chkConsentUnfinished_"+(i+1)+"'></label>"))
							   .append(span.clone().addClass("detail").text(consentResult[i].consentName))
							   .append(span.clone().addClass("label "+
											   		(consentResult[i].consentState=='TEMP'? "label-temp":
											   		 consentResult[i].consentState=='UNFINISHED'? "label-unfinished":
											   		 consentResult[i].consentState=='ELECTR_CMP'? "label-electrCmp":
											   		 consentResult[i].consentState=='CERTIFY_CMP'? "label-certifyCmp":
											   		 consentResult[i].consentState=='PAPER_OUT'? "label-paperOut":
											   		 consentResult[i].consentState=='VERBAL'? "label-verbal":"label-default")
												).text(consentResult[i].consentStateDisp))
							   .append(button.clone().addClass("text-right btn btn-default")
									   .text("삭제").attr("seq", i))
					
				)
			)
		};
		$('#ulAgreementCheck li').on("click", function(e){
			//체크박스
			if(e.toElement.localName == "label") {
				var input = $(this).children().children("input");
			    $(input).prop("checked", !$(input).prop("checked"));
			    if($(input).prop("checked")){ 
			    	$(this).addClass('checked')
			    }else {
			    	$(this).removeClass('checked')
			    };
			}else if(e.toElement.localName == "button"){ //버튼클릭(삭제)
				
			}else{ //동의서 이름 클릭
				if(!$(this).hasClass("checked")){
					var input = $(this).children().children("input");
				    $(input).prop("checked", true);
				    $(this).addClass('checked');
				};
				
				// 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. 
				// 16.12.12 #6225 siyoung.ahn
				if( doctorId.startsWith('5000')) {
					self.alert("담당의가 일반의사인 경우 출력전용입니다.");
					return;
				}
					
				//선택한 동의서만 가지고오기
				var selectedItems = $('#ulAgreementCheck li[class="checked"] input');
				var selectedConsentList = [];
				var printOnlyList = [];
				for( var i = 0; i < selectedItems.length; i++ ){
					// sequence 추출
					var seq = selectedItems[i].id.split('_')[1];
					seq = seq - 1;
					
					// 동의서 상태 체크
					var param = {consentmstrid: unfinishedConsentList[seq].consentMstRid, 
							 	 consentState: unfinishedConsentList[seq].consentState};
				
					var state = self.consent.checkConsentState(param);
					if( state == undefined ) { printOnlyList.push("["+unfinishedConsentList[seq].consentName+"] - 상태 조회 실패"); }
					else if (state.text == '-1') { printOnlyList.push("["+unfinishedConsentList[seq].consentName+"] - 상태 조회 실패"); }
					else if (state.text == '1') { printOnlyList.push("["+unfinishedConsentList[seq].consentName+"] - 이미 작성된 동의서"); }
					else if (state.text == '0'){
						selectedConsentList.push(unfinishedConsentList[seq]);
					}
				}
				
				var printOnlyAlertMsg = '';
				for(var j=0; j<printOnlyList.length; j++){
					printOnlyAlertMsg = printOnlyAlertMsg + printOnlyList[j];
					if(j!=printOnlyList.length-1) printOnlyAlertMsg = printOnlyAlertMsg +"\n";
				};
				
				if(printOnlyAlertMsg.length>0) {
					self.confirm("작성이 불가능한 동의서입니다.\n\n" + printOnlyAlertMsg, function(confirm){
						if(confirm){
							var global = self.consent.makeGlobalParam(patientInfo, doctorId);
							var consent = self.consent.makeConsentParam(patientInfo, selectedConsentList, doctorNm);
			
							var jsonssg = {
									"type" : "command",
									"functionType" : "consent",
									"value" : {
										"callbackFn" : "window.activeObj.consentCallback"
									},
									"userId": doctorId, 
									"globalParam" : global,
									"consentParam" : consent
								};
							self.toNative(jsonssg);
						}
					});
				}else{
					if(selectedConsentList.length > 0){
						var global = self.consent.makeGlobalParam(patientInfo, doctorId);
						var consent = self.consent.makeConsentParam(patientInfo, selectedConsentList, doctorNm);
						
						var jsonssg = {
								"type" : "command",
								"functionType" : "consent",
								"value" : {
									"callbackFn" : "window.activeObj.consentCallback"
								},
								"userId" : doctorId,
								"globalParam" : global,
								"consentParam" : consent
						};
						self.toNative(jsonssg);
					};
				};
			};
			e.stopPropagation();
			e.preventDefault();
		});
		//삭제 이벤트걸기
		$('#ulAgreementCheck li button').on("click", function(e){
			self.confirm("삭제하시겠습니까?", function(confirm){
				if(confirm){
					$('#txtSeq').val(e.currentTarget.attributes.seq.value);
					$('#mplusConsentDeleteForm').modal('show');
					$('#btnConsentDelete').unbind();
					$('#btnConsentDelete').on('click', function(){
						var checkVal = $('#mplusConsentDeleteForm input[name=consentDeleteRadio]:checked').val();
						var deleteReasonText = $('#consentDeleteTextarea').val();
						deleteConsent($('#txtSeq').val(),
								checkVal=="slt4"? deleteReasonText: $('#mplusConsentDeleteForm input[name=consentDeleteRadio]:checked')[0].attributes.dataReason.value);
					});
				}
			});
		});
	};
	
	//동의서이력 리스트 초기화
	var initAggrementList = function(type){
		$ulAgreementList.empty();
		$('.consentSearchBox input[type=checkbox]').prop("checked", false);
		//환자별일경우 '전체' 디폴트체크
		if(type=="patient"){
			$('.consentSearchBox input[type=checkbox][value="ALL"]').prop("checked", "checked");
		}else{ //주치의별일경우 '미작성' 디폴트체크 
			$('.consentSearchBox input[type=checkbox][value="\'ELECTR_CMP\'"]').prop("checked", "checked");
		}
	};
	
	//동의서 조회 
	var searchTotalConsentList = function(alertYn){
		$ulAgreementList.empty();
		var divCheckbox = div.clone().addClass("checkbox3  checkbox-check checkbox-light");
		if($('#ulPatientList .list-group-item.active').parent()[0]==undefined){
			self.alert('조회할 환자를 선택해주세요.');
			return;
		};
		if( patientInfo == undefined ){
			self.alert('환자 정보가 정상 조회되지 않았습니다.');
			return;
		};
		
		var temConsentState = self.consent.makeConsentStateParam();
		if(temConsentState==undefined) return;
		
		if($('#btnPatientConsent').hasClass("active")){
			/*-------------------환자별 동의서 조회 시작---------------------*/
			var temIndex = $('#ulPatientList .list-group-item.active').parent()[0].id.split('_')[1];
			var data = patientList[temIndex];
						
			var param = {
							  patientCode: data.pid,
							  startDt: $dtpConsentStartDt[0].value.replace(/\//g,''),
							  endDt: $dtpConsentEndDt[0].value.replace(/\//g,''),
							  consentState: temConsentState,
							  jobKindCd: indexPage=='O'&&(jobKindCd=='1140'||jobKindCd=='1113')? 'ALL': jobKindCd
						  };
			var result = self.consent.getConsentList(param);
			// 오른쪽 동의서 리스트 보관
			agreementList = result;
			
			if(alertYn=='Y'&&(result==undefined||result.length==0)) {
				self.alert('조회된 데이터가 없습니다.');
				return;
			}else if(alertYn=='N'&&(result==undefined||result.length==0)) {return;};
			
			for(var i=0; i<result.length; i++){
				$ulAgreementList.addClass("agreementCheck").append(
					li.clone().html(
					divCheckbox.clone().html($("<input type='checkbox' id='chkConsentPatient_"+(i+1)+"'></input>"))
										   .append($("<label for='chkConsentPatient_"+(i+1)+"'></label>"))
										   .append(span.clone().addClass("document").text(result[i].consentName)
										   .append(span.clone().addClass("label "+
												   		(result[i].consentState=='TEMP'? "label-temp":
												   		result[i].consentState=='UNFINISHED'? "label-unfinished":
												   		result[i].consentState=='ELECTR_CMP'? "label-electrCmp":
												   		result[i].consentState=='CERTIFY_CMP'? "label-certifyCmp":
												   		result[i].consentState=='PAPER_OUT'? "label-paperOut":
												   		result[i].consentState=='VERBAL'? "label-verbal":"label-default")
													).text(result[i].consentStateDisp))
											   )
					
					));
			};
			//클릭이벤트 연결
			$('#ulAgreementList li').on("click", function(e){
				// 체크박스 클릭했을 때
				if(e.toElement.localName == "label") {
					var input = $(this).children().children("input");
				    $(input).prop("checked", !$(input).prop("checked"));
				    if($(input).prop("checked")) $(this).addClass('checked')
					else  $(this).removeClass('checked')
				}else{
					// 동의서 내용을 클릭했을 때
					if(!$(this).hasClass("checked")){
						var input = $(this).children().children("input");
					    $(input).prop("checked", true);
					    $(this).addClass('checked');
					};
					
					var selectedSeq = $(this).children().children("input").attr('id').split('_')[1];
					var lastSelectedItem = agreementList[selectedSeq - 1];
					// 클릭한 동의서의 상태 체크
					// 환자서명이거나 전자인증의 경우 모두 체크해제 하고, 해당 동의서의 이미지를 띄움
					if( lastSelectedItem.consentState == 'ELECTR_CMP' || lastSelectedItem.consentState == 'CERTIFY_CMP' ) {
						// 체크해제
						$('#ulAgreementList li[class="checked"] input').prop("checked", false);
						$('#ulAgreementList li[class="checked"]').removeClass("checked");
						
						var param = {consentMstRid : lastSelectedItem.consentMstRid};
						var consentImageList = self.consent.getConsentImage(param);
						
						if(consentImageList == undefined || consentImageList.length==0) {self.alert("동의서 이미지 조회 실패"); return;};
						var imagePathList = [];
						$('#consentImgBox').empty();

						for( var i = 0; i < consentImageList.length; i++ ) {
							$('#consentImgBox').append(
									div.clone().append(
											"<img data-u='image' src='"+consentImageList[i].imagePath+"' width='100%'>"
									)
								)
						}
						$('.modal-backdrop').removeClass('in');
						$('.modal').modal('hide');
						$('#mplusConsentImageForm').modal("show");
					}
					
					// 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. 
					// 16.12.12 #6225 siyoung.ahn
					if( doctorId.startsWith('5000')) {
						self.alert("담당의가 일반의사인 경우 출력전용입니다.");
						return;
					}
					
					//선택한 동의서만 가지고오기
					var selectedItems = $('#ulAgreementList li[class="checked"] input');
					var selectedConsentList = [];
					var printOnlyList = [];
					
					for( var i = 0; i < selectedItems.length; i++ ){
						// sequence 추출
						var seq = selectedItems[i].id.split('_')[1];
						seq = seq - 1;
						// data add
						if(agreementList[seq].consentState=="PAPER_OUT"||agreementList[seq].consentState=="FNU_PRINT"){
							//동의서 상태가 출력/FNU출력인 경우 걸러내기
							printOnlyList.push("["+agreementList[seq].consentName+"] - "+agreementList[seq].consentStateDisp);
						}else{
							// 동의서 상태 체크
							var param = {consentmstrid: agreementList[seq].consentMstRid, 
										 consentState: agreementList[seq].consentState};
							
							var state = self.consent.checkConsentState(param);
							if( state == undefined ) { printOnlyList.push("["+agreementList[seq].consentName+"] - 상태 조회 실패"); }
							else if (state.text == '-1') { printOnlyList.push("["+agreementList[seq].consentName+"] - 상태 조회 실패"); }
							else if (state.text == '1') { printOnlyList.push("["+agreementList[seq].consentName+"] - 이미 작성된 동의서"); }
							else if (state.text == '0'){
								selectedConsentList.push(agreementList[seq]);
							}
						};
					};
					//출력전용 메시지 생성
					var printOnlyAlertMsg = '';
					for(var j=0; j<printOnlyList.length; j++){
						printOnlyAlertMsg = printOnlyAlertMsg +printOnlyList[j];
						if(j!=printOnlyList.length-1) printOnlyAlertMsg = printOnlyAlertMsg +"\n";
					};
					
					if(printOnlyAlertMsg.length>0) {
						self.confirm("출력전용 및 작성이 불가능한 동의서입니다.\n\n" + printOnlyAlertMsg, function(confirm){
							if(confirm){
								//출력전용 동의서를 제외한 동의서가 있을경우?
								if(selectedConsentList.length > 0){
									var global = self.consent.makeGlobalParam(patientInfo, doctorId);
									var consent = self.consent.makeConsentParam(patientInfo, selectedConsentList, doctorNm);
									
									var jsonssg = {
											"type" : "command",
											"functionType" : "consent",
											"value" : {
												"callbackFn" : "window.activeObj.consentCallback"
											},
											"userId" : doctorId,
											"globalParam" : global,
											"consentParam" : consent
									};
									self.toNative(jsonssg);
								};
							}
						});
					}else{
						if(selectedConsentList.length > 0){
							var global = self.consent.makeGlobalParam(patientInfo, doctorId);
							var consent = self.consent.makeConsentParam(patientInfo, selectedConsentList, doctorNm);
							
							// 유효성 검사 추가할 것							
							var jsonssg = {
									"type" : "command",
									"functionType" : "consent",
									"value" : {
										"callbackFn" : "window.activeObj.consentCallback"
									},
									"userId" : doctorId,
									"globalParam" : global,
									"consentParam" : consent
							};
							self.toNative(jsonssg);		
						};
					};
				};
				e.stopPropagation();
				e.preventDefault();
			});
			/*-------------------환자별 동의서 조회 종료---------------------*/
		}else{
			/*-------------------주치의별 동의서 조회 시작---------------------*/
			var param = {
							  userid: doctorId,
							  status: temConsentState,
							  fromdd: $dtpConsentStartDt[0].value.replace(/\//g,''),
							  todd: $dtpConsentEndDt[0].value.replace(/\//g,'')
						  };
			var result = self.consent.getUnfinishedListPerDoctor(param);
			// 오른쪽 동의서 리스트 보관
			agreementList = result;
			
			if(result==undefined||result.length==0) {
				self.alert('조회된 데이터가 없습니다.');
				return;
			};
			for(var i=0; i<result.length;  i++){
				$('#ulAgreementList').addClass("agreementCheck").append(
						li.clone().html(
								divCheckbox.clone().html($("<input type='checkbox' id='chkDoctorConsentList_"+(i+1)+"'></input>"))
												   .append($("<label for='chkDoctorConsentList_"+(i+1)+"'></label>"))
												   .append(
														   div.clone().addClass("list-row").html(
																   span.clone().addClass("doctorConsentNum patientCode").text(result[i].patientCode+" ").append(span.clone().addClass("hngNm").text(result[i].hngnm))
														   ).append(
																   span.clone().addClass("doctorConsentName").html("")
															   )
												   )
												   .append(
														   div.clone().addClass("list-row").html(
																   span.clone().addClass("doctorConsentNum").text(result[i].consentName)
														   ).append(
																   span.clone().addClass("doctorConsentName").html(
																	   span.clone().addClass("doctorConsentLabel label "+
																		   		(result[i].consentState=='TEMP'? "label-temp":
																		   		result[i].consentState=='UNFINISHED'? "label-unfinished":
																		   		result[i].consentState=='ELECTR_CMP'? "label-electrCmp":
																		   		result[i].consentState=='CERTIFY_CMP'? "label-certifyCmp":
																		   		result[i].consentState=='PAPER_OUT'? "label-paperOut":
																		   		result[i].consentState=='VERBAL'? "label-verbal":"label-default")
																			).text(result[i].consentState=='TEMP'? "임시저장":
																		   			result[i].consentState=='UNFINISHED'? "미작성":
																			   		result[i].consentState=='ELECTR_CMP'? "서명":
																			   		result[i].consentState=='CERTIFY_CMP'? "인증":
																			   		result[i].consentState=='PAPER_OUT'? "출력":
																			   		result[i].consentState=='VERBAL'? "구두":"")
																)
														   )
												   )
						));
		  	};
		  	//클릭이벤트 연결
			$('#ulAgreementList li').on("click", function(e){
				if(e.toElement.localName == "label"||e.toElement.localName == "input") { //체크박스 클릭했을때
					var input = $(this).children().children("input");
				    $(input).prop("checked", !$(input).prop("checked"));
				    if($(input).prop("checked")) $(this).addClass('checked')
						else  $(this).removeClass('checked')
				}else{ //동의서내용 클릭했을때
					if(!$(this).hasClass("checked")){
						var input = $(this).children().children("input");
					    $(input).prop("checked", true);
					    $(this).addClass('checked');
					};
					/* 일괄인증 ON */
					if ( $('[name="bootstrapSwitch"]').bootstrapSwitch("state") ) {
						// ELECTR_CMP 상태인 것들만 뽑아내기
						// 그리고 이미지 조회도 정상적으로 된 애들
						var selectedItems = $('#ulAgreementList li[class="checked"] input');
						var batchSignParam = [];
						
						for( var i = 0; i < selectedItems.length; i++ ){
							// sequence 추출
							var seq = selectedItems[i].id.split('_')[1];
							seq = seq - 1;
							// data add
							if(agreementList[seq].consentState == 'ELECTR_CMP'){
								// 정상적으로 이미지정보가 조회되었을 때만
								var param = {consentMstRid : agreementList[seq].consentMstRid};
								var consentImageList = self.consent.getConsentImage(param);
								if(consentImageList == undefined || consentImageList.length==0) {continue;}
								else{
									var signParam = {
											consentMstRid: agreementList[seq].consentMstRid,
											consentImageRid: consentImageList[0].consentImageRid,
											certTarget: agreementList[seq].certtarget==null?"":agreementList[seq].certtarget
									}
									batchSignParam.push(signParam);
								}
							}
						};
						
						if( batchSignParam.length > 0 ) {
							var consentSignMsg = {
									"type" : "command",
									"functionType" : "consentSign",
									"value" : {
										"callbackFn" : "window.activeObj.consentSignCallback"
									},
									"consentSignParam" : batchSignParam,
									"userId": doctorId
									
							};
							self.toNative(consentSignMsg);
						} else {
							self.alert('인증 대상 동의서를 선택하세요.');
						}
					
					}
					/* 일괄인증 OFF */
					else {
						var selectedSeq = $(this).children().children("input").attr('id').split('_')[1];
						var lastSelectedItem = agreementList[selectedSeq - 1];
						// 클릭한 동의서의 상태 체크
						// 환자서명이거나 전자인증의 경우 모두 체크해제 하고, 해당 동의서의 이미지를 띄움
						if( lastSelectedItem.consentState == 'ELECTR_CMP' || lastSelectedItem.consentState == 'CERTIFY_CMP' ) {
							// 체크해제
							$('#ulAgreementList li[class="checked"] input').prop("checked", false);
							$('#ulAgreementList li[class="checked"]').removeClass("checked");
							
							var param = {consentMstRid : lastSelectedItem.consentMstRid};
							var consentImageList = self.consent.getConsentImage(param);
							
							if(consentImageList == undefined || consentImageList.length==0) {self.alert("동의서 이미지 조회 실패"); return;};
							var imagePathList = [];
							$('#consentImgBox').empty();
							
							for( var i = 0; i < consentImageList.length; i++ ) {
								$('#consentImgBox').append(
										div.clone().append(
												"<img data-u='image' src='"+consentImageList[i].imagePath+"' width='100%'>"
										)
									)
							}
							$('.modal-backdrop').removeClass('in');
							$('.modal').modal('hide');
							$('#mplusConsentImageForm').modal("show");
						};
						
						// 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. 
						// 16.12.12 #6225 siyoung.ahn
						if( doctorId.startsWith('5000')) {
							self.alert("담당의가 일반의사인 경우 출력전용입니다.");
							return;
						}
						
						//선택한 동의서만 가꼬오기
						var selectedItems = $('#ulAgreementList li[class="checked"] input');
						var selectedConsentList = [];
						var printOnlyList = [];
						var patientId=''; //동일한 환자 체크하기위한 변수
											
						for( var i = 0; i < selectedItems.length; i++ ){
							// sequence 추출
							var seq = selectedItems[i].id.split('_')[1];
							seq = seq - 1;
							if(i==0){
								patientId = agreementList[seq].patientCode;
							};
							//동일한 환자인지 체크
							if(patientId != agreementList[seq].patientCode){
								self.alert("동일한 환자에 한해서만 동의서로 이동가능합니다.");
								return;
							};
							var patientId = agreementList[seq].patientCode;
							
							// data add
							if(agreementList[seq].consentState=="PAPER_OUT" || agreementList[seq].consentState=="FNU_PRINT"){
								//동의서 상태가 출력/FNU출력인 경우 걸러내기
								printOnlyList.push("["+agreementList[seq].consentName+"] - "+agreementList[seq].consentState=="PAPER_OUT"? "출력": "FNU출력");
							}else{
								// 동의서 상태 체크
								var param = {consentmstrid: agreementList[seq].consentMstRid, 
										 	consentState: agreementList[seq].consentState};
							
								var state = self.consent.checkConsentState(param);
								if( state == undefined ) { printOnlyList.push("["+agreementList[seq].consentName+"] - 상태 조회 실패"); }
								else if (state.text == '-1') { printOnlyList.push("["+agreementList[seq].consentName+"] - 상태 조회 실패"); }
								else if (state.text == '1') { printOnlyList.push("["+agreementList[seq].consentName+"] - 이미 작성된 동의서"); }
								else if (state.text == '0'){
									selectedConsentList.push(agreementList[seq]);
								}
							};					
						};
						if(selectedItems.length>0){
							//환자정보조회
							var patientSeq = selectedItems[0].id.split('_')[1];
							var patientData = agreementList[patientSeq - 1];
							var patientParam = {pid: patientData.patientCode,
								  	 orddd: patientData.orddd,
								  	 ordtype: patientData.visitType,
								  	 orddeptcd: patientData.orddeptcd
							  		};
							var consentPatientInfo = self.hospital.getPatientInfo(patientParam)[0];
							if(consentPatientInfo==undefined|| consentPatientInfo.length==0){
								self.alert("환자정보 조회에 실패하였습니다.");
								return;
							};
							
							var printOnlyAlertMsg = '';
							for(var j=0; j<printOnlyList.length; j++){
								printOnlyAlertMsg = printOnlyAlertMsg +printOnlyList[j];
								if(j!=printOnlyList.length-1) printOnlyAlertMsg = printOnlyAlertMsg +"\n";
							};
							
							if(printOnlyAlertMsg.length>0) {
								self.confirm("출력전용 및 작성이 불가능한 동의서입니다.\n\n" + printOnlyAlertMsg, function(confirm){
									if(confirm){
										if(selectedConsentList.length > 0){
											var global = self.consent.makeGlobalParam(consentPatientInfo, doctorId);
											var consent = self.consent.makeConsentParam(consentPatientInfo, selectedConsentList, doctorNm);
											
											// 유효성 검사 추가할 것
											var jsonssg = {
													"type" : "command",
													"functionType" : "consent",
													"value" : {
														"callbackFn" : "window.activeObj.consentCallback"
													},
													"userId" : doctorId,
													"globalParam" : global,
													"consentParam" : consent
												};
											self.toNative(jsonssg);
										};
									}
								});
							}else{
								if(selectedConsentList.length > 0){
									var global = self.consent.makeGlobalParam(consentPatientInfo, doctorId);
									var consent = self.consent.makeConsentParam(consentPatientInfo, selectedConsentList, doctorNm);
									
									// 유효성 검사 추가할 것
									var jsonssg = {
											"type" : "command",
											"functionType" : "consent",
											"value" : {
												"callbackFn" : "window.activeObj.consentCallback"
											},
											"userId" : doctorId,
											"globalParam" : global,
											"consentParam" : consent
										};
									self.toNative(jsonssg);
								};
							};	
						};
				};
				e.stopPropagation();
				e.preventDefault();
				}
			});
			/*-------------------주치의별 동의서 조회 종료---------------------*/
		};
	};

	//즐겨찾기 리스트 조회
	var initSetList = function(){
		$ulSetList.empty();
		var param = {};
		var result = self.consent.getConsentSetList(param);
		setList = result;
		var divCheckbox = div.clone().addClass("checkbox3  checkbox-check checkbox-light");
		for(var i=0; i<result.length; i++){
			$ulSetList.addClass("agreementCheck").append(
					li.clone().html(
							divCheckbox.clone().html($("<input type='checkbox' id='chkSetList_"+(i+1)+"'></input>"))
											   .append($("<label for='chkSetList_"+(i+1)+"'></label>"))
											   .append(span.clone().addClass("document").text(result[i].formName))
											   .append(button.clone().addClass("text-right btn btn-default")
													.text("삭제").attr("formCd", result[i].formCd))
					));
					
		};
		//클릭이벤트 연결
		$('#ulSetList li').on("click", function(e){
			if(e.toElement.localName == "label") { //체크박스클릭
				var input = $(this).children().children("input");
			    $(input).prop("checked", !$(input).prop("checked"));
			    if($(input).prop("checked")) $(this).addClass('checked')
				else  $(this).removeClass('checked')
			}else if(e.toElement.localName == "button"){ //삭제버튼
				
			}else{ //동의서내용
				if(!$(this).hasClass("checked")){
					var input = $(this).children().children("input");
				    $(input).prop("checked", true);
				    $(this).addClass('checked');
				};
				
				if($('#ulPatientList .list-group-item.active').parent()[0]==undefined){
					self.alert('환자를 선택해주세요.');
					return;
				};
				
				// 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. 
				// 16.12.12 #6225 siyoung.ahn
				if( doctorId.startsWith('5000')) {
					self.alert("담당의가 일반의사인 경우 출력전용입니다.");
					return;
				}
				
				//선택한 동의서만 가지고오기
				var selectedItems = $('#ulSetList li[class="checked"] input');
				var selectedConsentList = [];
				var printOnlyList = [];
				for( var i = 0; i < selectedItems.length; i++ ){
					// sequence 추출
					var seq = selectedItems[i].id.split('_')[1];
					seq = seq - 1;
					if(setList[seq].printOnly=="Y"){
						printOnlyList.push(setList[seq].formName);
					}else{
						//data add
						selectedConsentList.push(setList[seq]);
					};
				};
				var printOnlyAlertMsg = '';
				for(var j=0; j<printOnlyList.length; j++){
					printOnlyAlertMsg = printOnlyAlertMsg +"["+printOnlyList[j]+"]";
					if(j!=printOnlyList.length-1) printOnlyAlertMsg = printOnlyAlertMsg +"\n";
				};
				if(printOnlyAlertMsg.length>0) {
					self.confirm(printOnlyAlertMsg+"\n출력전용 동의서 입니다. \nPC에서 출력하세요.", function(confirm){
						if(confirm){
							if(selectedConsentList.length > 0){
								var global = self.consent.makeGlobalParam(patientInfo, doctorId);
								var consent = self.consent.makeNewConsentParam(patientInfo, selectedConsentList, doctorNm);
								
								// 유효성 검사 추가할 것								
								var jsonssg = {
										"type" : "command",
										"functionType" : "consent",
										"value" : {
											"callbackFn" : "window.activeObj.consentCallback"
										},
										"userId": doctorId,
										"globalParam" : global,
										"consentParam" : consent
									};
								self.toNative(jsonssg);
							};
						}
					});
				}else{
					if(selectedConsentList.length > 0){
						var global = self.consent.makeGlobalParam(patientInfo, doctorId);
						var consent = self.consent.makeNewConsentParam(patientInfo, selectedConsentList, doctorNm);
						
						// 유효성 검사 추가할 것						
						var jsonssg = {
								"type" : "command",
								"functionType" : "consent",
								"value" : {
									"callbackFn" : "window.activeObj.consentCallback"
								},
								"userId": doctorId,
								"globalParam" : global,
								"consentParam" : consent
							};
						self.toNative(jsonssg);
					};
				};
			};
			e.stopPropagation();
			e.preventDefault();
		});
		$('#ulSetList li button').on("click", function(e){
			delUserFormSetList(e);
		});
	};
	
	//동의서 검색	
	var searchConsentList = function(){
		var param = {
					  categoryId: $sltCategoryLower.val(),
					  keyWord: $txtConsentSrch.val()
				  	};
		var result = self.consent.getConsentBySearch(param);
		// 오른쪽 동의서 리스트 보관
		totalConsentList = result;
		$ulConsentList.empty();
		if(result==undefined||result.length==0) {
			self.alert('조회된 데이터가 없습니다.');
			return;
		};
		//동의서 조회 리스트 바인딩
		var divCheckbox = div.clone().addClass("checkbox3  checkbox-check checkbox-light");
		for(var i=0; i<result.length; i++){
			$ulConsentList.addClass("agreementCheck").append(
			li.clone().html(
					divCheckbox.clone().html($("<input type='checkbox' id='chkConsentSearch_"+(i+1)+"'></input>"))
									   .append($("<label for='chkConsentSearch_"+(i+1)+"'></label>"))
									   .append(span.clone().addClass("document").text(result[i].formName)
									   )
									   .append(button.clone().addClass("text-right btn btn-default")
													.text("추가").attr("formCd", result[i].formCd))
			
			));
		};
		//클릭이벤트 연결
		$('#ulConsentList li').on("click", function(e){
			if(e.toElement.localName == "label") { //체크박스클릭
				var input = $(this).children().children("input");
			    $(input).prop("checked", !$(input).prop("checked"));
			    if($(input).prop("checked")) $(this).addClass('checked')
				else  $(this).removeClass('checked')
			}else if(e.toElement.localName == "button"){ //추가버튼클릭
				
			}else{ //동의서 내용클릭
				if(!$(this).hasClass("checked")){
					var input = $(this).children().children("input");
				    $(input).prop("checked", true);
				    $(this).addClass('checked');
				};
				
				if($('#ulPatientList .list-group-item.active').parent()[0]==undefined){
					self.alert('환자를 선택해주세요.');
					return;
				};
				
				// 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. 
				// 16.12.12 #6225 siyoung.ahn
				if( doctorId.startsWith('5000')) {
					self.alert("담당의가 일반의사인 경우 출력전용입니다.");
					return;
				}
				
				//선택한 동의서만 가지고오기
				var selectedItems = $('#ulConsentList li[class="checked"] input');
				var selectedConsentList = [];
				var printOnlyList = [];
				for( var i = 0; i < selectedItems.length; i++ ){
					// sequence 추출
					var seq = selectedItems[i].id.split('_')[1];
					seq = seq - 1;
					if(totalConsentList[seq].prntOnly=="Y"){
						printOnlyList.push(totalConsentList[seq].formName);
					}else{
						//data add
						selectedConsentList.push(totalConsentList[seq]);
					};
				};
				var printOnlyAlertMsg = '';
				for(var j=0; j<printOnlyList.length; j++){
					printOnlyAlertMsg = printOnlyAlertMsg +"["+printOnlyList[j]+"]";
					if(j!=printOnlyList.length-1) printOnlyAlertMsg = printOnlyAlertMsg +"\n";
				};
				if(printOnlyAlertMsg.length>0) {
					self.confirm(printOnlyAlertMsg+"\n출력전용 동의서 입니다. \nPC에서 출력하세요.", function(confirm){
						if(confirm){
							if(selectedConsentList.length > 0){
								var global = self.consent.makeGlobalParam(patientInfo, doctorId);
								var consent = self.consent.makeNewConsentParam(patientInfo, selectedConsentList, doctorNm);
								
								// 유효성 검사 추가할 것
								
								var jsonssg = {
										"type" : "command",
										"functionType" : "consent",
										"value" : {
											"callbackFn" : "window.activeObj.consentCallback"
										},
										"userId": doctorId,
										"globalParam" : global,
										"consentParam" : consent
									};
								self.toNative(jsonssg);
							};
						}
					});
				}else{
					if(selectedConsentList.length > 0){
						var global = self.consent.makeGlobalParam(patientInfo, doctorId);
						var consent = self.consent.makeNewConsentParam(patientInfo, selectedConsentList, doctorNm);
						
						var jsonssg = {
								"type" : "command",
								"functionType" : "consent",
								"value" : {
									"callbackFn" : "window.activeObj.consentCallback"
								},
								"userId": doctorId,
								"globalParam" : global,
								"consentParam" : consent
							};
						self.toNative(jsonssg);
					};
				};
				
			};
			e.stopPropagation();
			e.preventDefault();
		});
		$('#ulConsentList li button').on("click", function(e){
			setUserFormSetList(e);
		});
	}
	
	//즐겨찾기 삭제
	var delUserFormSetList = function(e){
		self.confirm("삭제하시겠습니까?", function(confirm){
			if(confirm){
				var result = self.consent.delUserFormSetList({"formcd": e.currentTarget.attributes.formCd.value});
				if(result.formcd!=null){
					initSetList();
					/*self.alert("삭제되었습니다.");*///16.11.12 고객사요청으로 제거
				}else{
					self.alert("실패했습니다.");
				}
			};
		})
	}
	
	//즐겨찾기 추가
	var setUserFormSetList = function(e){
		self.confirm("즐겨찾기로 추가하시겠습니까?", function(confirm){
			if(confirm){
				var result = self.consent.setUserFormSetList({"formcd": e.currentTarget.attributes.formCd.value});
				if(result.formcd!=null){
					/*self.alert("추가되었습니다.");*///16.11.12 고객사요청으로 제거
				}else{
					self.alert("실패했습니다.");
				}
			};
		})
	}
	
	//동의서 삭제
	var deleteConsent = function(seq, reason){
		$("#mplusConsentDeleteForm").modal("hide");
		var delConsentInfo = unfinishedConsentList[seq];
		var delConsentParam = {"consentMstRid": delConsentInfo.consentMstRid,
							   "patientCode": delConsentInfo.patientCode,
							   "clnDeptCode": delConsentInfo.clnDeptCd,
							   "ward": delConsentInfo.ward==null? "": delConsentInfo.ward,
							   "roomcd": delConsentInfo.roomCd==null? "": delConsentInfo.roomCd,
							   "formRid": delConsentInfo.formRid==null? "":delConsentInfo.formRid,
							   "consentState": delConsentInfo.consentState==null? "":delConsentInfo.consentState,
							   "reasonForUseN": reason
							  }
		var result = self.consent.delConsent(delConsentParam);
		if(result.text==delConsentInfo.consentMstRid){
			/*self.alert("삭제되었습니다.");*///16.11.12 고객사요청으로 제거
			getUnfinishedConsentInfo(patientList[$('#ulPatientList li a.active')[0].attributes.seq.value]);
		}else{
			self.alert("실패했습니다.");
		}
	}
	
	// 단말기에서 호출할 콜백
	this.consentCallback = function(data) {
		//self.alert(data);
		// 미작성 동의서 리프레쉬
		getUnfinishedConsentInfo(patientList[$('#ulPatientList li a.active')[0].attributes.seq.value]);
		// 오른쪽 동의서 리스트 리프레쉬
		// 동의서 리스트가 오픈되어있을 떄만 해야하나?
		searchTotalConsentList('N');
	}
	
	this.consentSignCallback = function(data){
		if( typeof data === "string" ){			
			data = self.util.parseJson( data );
		}
		
		if( data.result != undefined ) {
			data = data.result;
		}
		
		if( data.resultCode == '200') {
			self.alert('인증 처리가 완료되었습니다.');
		} else {
			self.alert(data.errorMsg);
		}
		searchTotalConsentList('N');
	}
};