<%@ page language="java" contentType="text/html;  charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>
<%@ page import="com.eactive.eai.rms.common.util.CommonUtil"%>
<%@ page import="com.eactive.eai.rms.common.context.MonitoringContext"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ include file="/jsp/common/include/localemessage.jsp" %>
<%
	response.setHeader("Pragma", "No-cache");
	response.setHeader("Cache-Control", "no-cache");
	response.setHeader("Expires", "0");
	
	MonitoringContext monitoringContext = (MonitoringContext)CommonUtil.getBean(request, "monitoringContext");
	String reverseProxyUrl = monitoringContext.getStringProperty(MonitoringContext.RMS_WEBHOOK_REVERSE_PROXY_URL, "");
%>
<%!
	public String getRequiredLabel(String label) {
		return label + " <span class=\"required-mark\">*</span>";
	}
%>
<html>
<head>
	<title></title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<jsp:include page="/jsp/common/include/css.jsp"/>
	<jsp:include page="/jsp/common/include/script.jsp"/>
	<jsp:include page="/jsp/common/include/portal.jsp"/>
	<style>
		.jnotification {
			position: fixed;
			top: 20px;
			left: 50%;
			transform: translateX(-50%);
			right: auto;
			bottom: auto;
		}
	</style>

	<script language="javascript" >
		var url      = '<c:url value="/onl/apim/portalorg/portalOrgMan.json" />';
		var url_view = '<c:url value="/onl/apim/portalorg/portalOrgMan.view" />';
		var file_download = '<c:url value="/file/download.do" />';
		let originalOrgStatus = '';

		function addIpToTable(ipValue, rowNum) {
			var newRow = $('<tr>')
					.append($('<td>').text(rowNum))
					.append($('<td>').text(ipValue))
					.append($('<td>').html(
							'<button type="button" class="cssbtn smallBtn" onclick="deleteIp(this)">' +
							'<i class="material-icons">delete</i>삭제' +
							'</button>'
					));
			$("#ipListBody").append(newRow);
		}

		window.deleteIp = function(btn) {
			$(btn).closest('tr').remove();

			// 번호 재정렬
			$("#ipListBody tr").each(function(index) {
				$(this).find("td:first").text(index + 1);
			});

			updateIpWhitelist();
		};

		function updateIpWhitelist() {
			var ips = $("#ipListBody tr").map(function() {
				return $(this).find("td:eq(1)").text().trim();
			}).get();

			$("#ipWhitelist").val(ips.join(','));
		}

		function init(){
			$.ajax({
				type : "POST",
				url:url,
				dataType:"json",
				data:{cmd: 'LIST_INIT_COMBO'},
				success:function(json){
					populateSelectOptions("orgStatus", json.orgStatusRows);
					populateSelectOptions("approvalStatus", json.approvalStatusRows);

					var key = "${param.id}";
					if (key != "" && key != "null") {
						detail(key);
					}

					if(typeof callback === 'function') {
						callback();
					}
					if(!isDetail) {
						$("select[name=orgStatus]").val("ACTIVE").prop("disabled", true);
						$("select[name=approvalStatus]").val("COMPLETED").prop("disabled", true);
					}
				},
				error:function(e){
					alert(e.responseText);
				}
			});
		}
		// 선택박스 옵션 세팅 함수
		function populateSelectOptions(elementName, data) {
			new makeOptions("CODE", "NAME")
					.setObj($("select[name=" + elementName + "]"))
					.setData(data)
					.setFormat(nameOptionFormat)
					.rendering();
		}

		function detail(key){
			if (!isDetail) return;

			$.ajax({
				type : "POST",
				url:url,
				dataType:"json",
				data:{cmd: 'DETAIL', id : key},
				success:function(json) {
					var portalOrgData = json.portalOrg;
					var corporateManagerData = json.corporateManager;

					$("#ajaxForm input[type!=radio],#ajaxForm select,#ajaxForm textarea").each(function () {
						var name = $(this).attr("name");
						var tag = $(this).prop("tagName").toLowerCase();
						$(tag + "[name=" + name + "]").val(portalOrgData[name]);
					});

					$("#orgName").val(portalOrgData.orgName);
					$("#orgCode").val(portalOrgData.orgCode);

					$("#orgStatus").val(portalOrgData.orgStatus);
					originalOrgStatus = portalOrgData.orgStatus;

					if(originalOrgStatus === 'REMOVED') {
						$("#btn_delete").hide();
					}

					$("select[name=approvalStatus]").val(portalOrgData.approvalStatus);
					// 승인상태는 읽기전용(수정 불가) - 값은 그대로 제출되도록 disabled 대신 잠금 처리
					$("select[name=approvalStatus]")
							.css({'pointer-events':'none', 'background-color':'#eee'})
							.attr('tabindex', '-1');
					$("#compRegNo").val(formatCompanyRegNo(portalOrgData.compRegNo));
					$("#corpRegNo").val(formatCorpRegNo(portalOrgData.corpRegNo));
					$("#createdDate").inputmask("9999-99-99 99:99:99", {'autoUnmask': true});
					$("#reverseProxyPath").val(portalOrgData.reverseProxyPath);

					// 전화번호 처리
					if (portalOrgData.scPhoneNumber) {
						var scPhoneParts = portalOrgData.scPhoneNumber.split('-');
						if (scPhoneParts.length === 3) {
							$("#scPhonePrefix").val(scPhoneParts[0]);
							$("#scPhoneMiddle").val(scPhoneParts[1]);
							$("#scPhoneLast").val(scPhoneParts[2]);
						}
					}

					if (portalOrgData.orgPhoneNumber) {
						var orgPhoneParts = portalOrgData.orgPhoneNumber.split('-');
						if (orgPhoneParts.length === 3) {
							$("#orgPhonePrefix").val(orgPhoneParts[0]);
							$("#orgPhoneMiddle").val(orgPhoneParts[1]);
							$("#orgPhoneLast").val(orgPhoneParts[2]);
						}
					}

					if (corporateManagerData) {
						$("#userName").text(corporateManagerData.userName);
						$("#userStatusDescription").text(corporateManagerData.userStatusDescription);
						$("#emailAddr").text(corporateManagerData.emailAddr);
						$("#mobileNumber").text(corporateManagerData.mobileNumber);

						// 법인 관리자 정보가 있을 때 관련 UI 요소 표시
						$("#managerInfoSection").show();
					} else {
						// 법인 관리자 정보가 없을 때 관련 UI 요소 숨김 또는 메시지 표시
						$("#managerInfoSection").hide();
						$("#noManagerMessage").show();
					}

					if (portalOrgData.ipWhitelist) {
						var ipList = portalOrgData.ipWhitelist.split(',');
						ipList.forEach(function(ip, index) {
							var trimmedIp = ip.trim();
							if (trimmedIp) {
								addIpToTable(trimmedIp, index + 1);
							}
						});
					}

					// 파일 정보 표시
					if (portalOrgData.compRegFile) {
						$("#fileName").text(portalOrgData.fileName);
						if (portalOrgData.fileName) {
							$("#fileWrapper").show().off('click').on('click', function() {
								downloadFile(portalOrgData.compRegFile, '1');  // fileSn은 단일 파일이므로 '1'로 고정
							});
							$("#compRegFile").val(portalOrgData.compRegFile);
						} else {
							$("#fileWrapper").hide();
						}
					} else {
						$("#fileName").text("");
						$("#fileWrapper").hide();
					}
				},
				error:function(e){
					alert(e.responseText);
				}
			});

		}

		function downloadFile(fileId, fileSn) {
			window.location.href = file_download + '?fileId=' + fileId + '&fileSn=' + fileSn;
		}

		$(document).ready(function() {
			var returnUrl = getReturnUrlForReturn();
			var key ="${param.id}";
			isDetail = key !== "" && key !== "null";

			if (isDetail){
				$("#title").append(" 수정")
				buttonControl(true);
			} else {
				$("#title").append(" 등록")
				$("#managerInfoSectionTitle").hide();
				$("#btn_modify").html('<i class="material-icons">save</i> <%= localeMessage.getString("button.register") %></button>');
				buttonControl(false);
			}

			init();

			/* 사업자 등록번호 마스킹 */
			$("input[name=compRegNo]").inputmask("999-99-99999");
			$("input[name=corpRegNo]").inputmask("999999-9999999");

			// 전화번호 입력 필드 이벤트 처리
			$("#scPhoneMiddle, #scPhoneLast, #orgPhoneMiddle, #orgPhoneLast").on({
				'input': function() {
					this.value = this.value.replace(/[^0-9]/g, '');    // 숫자 외 문자 제거
					// 자동 포커스 이동
					if (this.value.length === this.maxLength) {
						var nextId = this.id.includes('Middle') ?
								this.id.replace('Middle', 'Last') : null;
						if (nextId) {
							$('#' + nextId).focus();
						}
					}
				},
				'paste': function(e) {
					// 붙여넣기 시 숫자만 허용
					e.preventDefault();
					var pastedData = (e.originalEvent.clipboardData || window.clipboardData).getData('text');
					this.value = pastedData.replace(/[^0-9]/g, '').slice(0, 4);
				}
			});

			// 파일 선택 버튼 클릭 이벤트
			$("#uploadButton").click(function() {
				$("#compRegFileUpload").click();
			});

			$("#compRegFileUpload").change(function() {
				var fileInput = this;
				var $hiddenFile = $("#compRegFile");

				if (fileInput.files.length > 0) {
					var file = fileInput.files[0];

					// 파일 크기 체크 (10MB)
					if (file.size > 10 * 1024 * 1024) {
						alert("파일 크기는 10MB 이내로 등록해 주세요.");
						fileInput.value = "";
						return;
					}

					// 파일 확장자 체크
					var allowedExtensions = ['.pdf','.doc','.docx','.xls','.xlsx','.ppt','.pptx','.hwp','.gif','.jpg','.jpeg','.png'];
					var fileExt = file.name.toLowerCase().substring(file.name.lastIndexOf('.'));
					if (!allowedExtensions.includes(fileExt)) {
						alert("허용된 파일 형식이 아닙니다.\n문서파일(pdf, doc, docx, xls, xlsx, ppt, pptx, hwp)과 이미지 파일(gif, jpg, png)만 등록 가능합니다.");
						fileInput.value = "";
						return;
					}

					// 파일이 정상적인 경우
					$("#fileName").text(file.name);
					$("#fileWrapper").show();
				} else {
					// 파일 선택이 취소되고 기존 파일도 없는 경우
					if (!isDetail || !$hiddenFile.val()) {
						$("#fileName").text("");
						$("#fileWrapper").hide();
						$hiddenFile.val("");
					}
					// isDetail이고 기존 파일이 있는 경우는 기존 상태 유지
				}
			});

			$("#orgStatus").change(function() {
				const newStatus = $(this).val();

				if (newStatus === 'REMOVED' && originalOrgStatus !== 'REMOVED') {
					if (!confirm("해당 법인을 탈퇴 처리하시겠습니까?")) {
						$(this).val(originalOrgStatus);
						return;
					}
				}
			});

			$("#ipInput").on('input', function(e) {
				// 숫자와 점만 허용하고 나머지는 즉시 제거
				this.value = this.value.replace(/[^0-9.]/g, '');
				let value = this.value;

				// 연속된 점을 하나로
				value = value.replace(/\.{2,}/g, '.');

				// 최대 3개의 점만 허용
				let dots = value.match(/\./g) || [];
				if (dots.length > 3) {
					value = value.substring(0, value.lastIndexOf('.'));
				}

				// 각 파트의 유효성 검사
				let parts = value.split('.');
				parts = parts.map((part, index) => {
					if (part === '') return part;

					// leading zeros 제거 후 숫자 변환
					let num = parseInt(part, 10);

					// 0-255 범위 체크
					if (isNaN(num) || num < 0 || num > 255) {
						return '';
					}

					// 숫자를 문자열로 변환
					let result = num.toString();

					// 마지막 파트가 아니고 값이 있으면 점 추가
					if (index < parts.length - 1 && result) {
						result += '.';
					}

					return result;
				});

				// 결과 설정
				this.value = parts.join('');
			});


			// IP 추가 버튼 클릭
			$("#btn_add_ip").click(function() {
				addIp();
			});

			// IP 입력 필드에서 엔터키 처리
			$("#ipInput").keypress(function(e) {
				if(e.keyCode == 13) {
					e.preventDefault();
					addIp();
				}
			});

			// IP 추가 함수
			function addIp() {
				var ipValue = $("#ipInput").val().trim();
				//var ipRegex = /^(\d{1,3}\.){3}\d{1,3}$/;
				var ipRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;

				if (!ipRegex.test(ipValue)) {
					alert("올바른 IP 주소 형식이 아닙니다.");
					return;
				}

				// IP 범위 검사 (0-255)
				var parts = ipValue.split('.');
				if (!parts.every(part => {
					var num = parseInt(part);
					return num >= 0 && num <= 255;
				})) {
					alert("IP 주소의 각 부분은 0-255 사이의 값이어야 합니다.");
					return;
				}

				// 중복 체크
				var existingIps = $("#ipListBody tr").map(function() {
					return $(this).find("td:eq(1)").text();
				}).get();

				if (existingIps.includes(ipValue)) {
					alert("이미 추가된 IP 주소입니다.");
					return;
				}

				// 새로운 행 추가
				var rowNum = $("#ipListBody tr").length + 1;
				addIpToTable(ipValue, rowNum);

				$("#ipInput").val('');

				updateIpWhitelist();
			}

			$("#downloadButton").click(function() {
				var fileId = $("#compRegFile").val();
				downloadFile(fileId, '1');  // fileSn은 '1'로 가정
			});

			$("#btn_modify").click(function(){
				if (!checkRequired("ajaxForm")) return;

				// 전화번호 조합하여 hidden input에 설정
				var scPrefix = $("#scPhonePrefix").val();
				var scMiddle = $("#scPhoneMiddle").val();
				var scLast = $("#scPhoneLast").val();
				var orgPrefix = $("#orgPhonePrefix").val();
				var orgMiddle = $("#orgPhoneMiddle").val();
				var orgLast = $("#orgPhoneLast").val();

				// 전화번호 유효성 검사 (입력한 경우에만 검사)
				// 고객센터 전화번호 검사
				var hasScPhone = scPrefix || scMiddle || scLast;
				if (hasScPhone) {
					if (!scPrefix || scPrefix === "") {
						alert("고객센터 전화번호를 입력하려면 앞자리를 선택해주세요.");
						$("#scPhonePrefix").focus();
						return;
					}
					if (!scMiddle || !scLast || scMiddle.length < 3 || scLast.length < 4) {
						alert("올바른 고객센터 전화번호를 입력하여 주십시오.");
						return;
					}
				}

				// 회사 전화번호 검사
				var hasOrgPhone = orgPrefix || orgMiddle || orgLast;
				if (hasOrgPhone) {
					if (!orgPrefix || orgPrefix === "") {
						alert("회사 전화번호를 입력하려면 앞자리를 선택해주세요.");
						$("#orgPhonePrefix").focus();
						return;
					}
					if (!orgMiddle || !orgLast || orgMiddle.length < 3 || orgLast.length < 4) {
						alert("올바른 회사 전화번호를 입력하여 주십시오.");
						return;
					}
				}

				// hidden input에 전체 전화번호 설정 (입력한 경우에만)
				if (hasScPhone && scPrefix && scMiddle && scLast) {
					$("input[name=scPhoneNumber]").val([scPrefix, scMiddle, scLast].join('-'));
				} else {
					$("input[name=scPhoneNumber]").val('');
				}

				if (hasOrgPhone && orgPrefix && orgMiddle && orgLast) {
					$("input[name=orgPhoneNumber]").val([orgPrefix, orgMiddle, orgLast].join('-'));
				} else {
					$("input[name=orgPhoneNumber]").val('');
				}

				// 파일 체크
				var fileInput = document.getElementById('compRegFileUpload');
				if (fileInput.files.length > 0) {
					var file = fileInput.files[0];
					if (file.size > 10 * 1024 * 1024) {
						alert("파일 크기는 10MB 이내로 등록해 주세요.");
						return;
					}

					var allowedExtensions = ['.pdf','.doc','.docx','.xls','.xlsx','.ppt','.pptx','.hwp','.gif','.jpg','.jpeg','.png'];
					var fileExt = file.name.toLowerCase().substring(file.name.lastIndexOf('.'));
					if (!allowedExtensions.includes(fileExt)) {
						alert("허용된 파일 형식이 아닙니다.\n문서파일(pdf, doc, docx, xls, xlsx, ppt, pptx, hwp)과 이미지 파일(gif, jpg, png)만 등록 가능합니다.");
						return;
					}
				}

				// 저장 확인/사유 입력은 유효성 검사 및 FormData 구성 후 처리 (하단 submit 분기)

				// FormData 생성 전에 분리된 전화번호 필드 제거
				$("#scPhonePrefix, #scPhoneMiddle, #scPhoneLast, #orgPhonePrefix, #orgPhoneMiddle, #orgPhoneLast").removeAttr('name');

				var formData = new FormData($("#ajaxForm")[0]);

				// 파일명 처리 - 새 파일이 있으면 새 파일명, 없으면 기존 파일명 유지
				if (fileInput.files.length > 0) {
					formData.set("fileName", fileInput.files[0].name);
				} else if ($("#fileName").text()) {
					formData.set("fileName", $("#fileName").text());
				}

				// 등록번호 하이픈 제거
				var numberFields = ['compRegNo','corpRegNo'];
				numberFields.forEach(function(field) {
					var value = formData.get(field);
					if (value) {
						formData.set(field, removeHyphen(value));
					}
				});

				var ipWhitelist = $("#ipWhitelist").val().trim();
				if (ipWhitelist) {
					var ipRegex = /^(\d{1,3}\.){3}\d{1,3}$/;
					var ips = ipWhitelist.split(',').map(ip => ip.trim()).filter(ip => ip);

					if (!ips.every(ip => ipRegex.test(ip))) {
						alert("올바른 IP 주소 형식이 아닙니다.");
						return;
					}
				}


				// cmd 및 사유(auditReason) 첨부 후 전송
				function submitOrg(cmd, auditReason) {
					formData.append("cmd", cmd);
					// 감사로그(AUDIT_LOG) 발화를 위한 systemCode. 법인/가입자 리포지토리는 고정 EMS 스키마라 스키마 전환 영향 없음
					formData.append("serviceType", "APIGW");
					if (auditReason) {
						formData.append("auditReason", auditReason);
					}

					$.ajax({
						type : "POST",
						url:url,
						data:	formData,
						processData: false,
						contentType: false,
						success:function(json){
							alert("<%= localeMessage.getString("common.saveMsg") %>");
							goNav(returnUrl);
						},
						error:function(e){
							alert(e.responseText);
						}
					});
				}

				if (isDetail) {
					// 수정: 상태를 REMOVED로 바꾼 경우 삭제(cmd=DELETE)로 감사 기록 + 익명화
					var targetCmd = ($("#orgStatus").val() === 'REMOVED') ? "DELETE" : "UPDATE";
					var isRemove = (targetCmd === "DELETE");
					showReasonPrompt(
						isRemove ? "해당 법인을 삭제(탈퇴) 처리합니다. 사유를 입력해 주세요." : "법인 정보를 수정합니다. 사유를 입력해 주세요.",
						{
							title: isRemove ? "삭제 사유" : "수정 사유",
							onConfirm: function(reason) { submitOrg(targetCmd, reason); }
						}
					);
				} else {
					// 신규 등록: 사유 불필요
					if (confirm("<%= localeMessage.getString("common.checkSave")%>") !== true) return;
					submitOrg("INSERT", null);
				}
			});

			$("#btn_previous").click(function() {
				goNav(returnUrl);
			});

			$("#btn_delete").click(function(){

				showReasonPrompt("해당 법인을 삭제 처리합니다. 사유를 입력해 주세요.", {
					title: "삭제 사유",
					onConfirm: function(reason) {
						var postData = $('#ajaxForm').serializeArray();
						postData.push({name: "cmd" , value:"DELETE"});
						postData.push({name: "serviceType", value: "APIGW"});
						postData.push({name: "auditReason", value: reason});

						$.ajax({
							type : "POST",
							url:url,
							data:postData,
							success:function(args){
								alert("<%= localeMessage.getString("common.deleteMsg") %>");
								goNav(returnUrl);
							},
							error:function(e){
								alert(e.responseText);
							}
						});
					}
				});

			});

		});

	</script>
</head>
<body>
<div class="right_box">
	<div class="content_top">
		<ul class="path">
			<li><a href="#">${rmsMenuPath}</a></li>
		</ul>
	</div><!-- end content_top -->
	<div class="content_middle">
		<div class="search_wrap">
			<button type="button" class="cssbtn" id="btn_modify" level="W" status="DETAIL,NEW"><i class="material-icons">save</i> <%= localeMessage.getString("button.modify") %></button>
			<button type="button" class="cssbtn" id="btn_delete" level="W" status="DETAIL"><i class="material-icons">delete</i> <%= localeMessage.getString("button.delete") %></button>
			<button type="button" class="cssbtn" id="btn_previous" level="R" status="DETAIL,NEW"><i class="material-icons">arrow_back</i> <%= localeMessage.getString("button.previous") %></button>
		</div>
		<div class="title" id ="title"><%= localeMessage.getString("portalOrgDetail.title") %></div>
		<form id="ajaxForm" enctype="multipart/form-data"  accept-charset="UTF-8">
			<input type="hidden" name="id">
			<table class="table_row" cellspacing="0">
				<tr>
					<th style="width:15%;"><%= getRequiredLabel(localeMessage.getString("portalOrg.orgName")) %></th>
					<td colspan="3" style="width:35%;">
						<input type="text" name="orgName" id="orgName" maxlength="50" data-required data-warning="법인명을 입력하여 주십시오."/>
					</td>
					<th style="width:15%;"><%= localeMessage.getString("portalOrg.orgSectors") %></th> <%--업태--%>
					<td style="width:35%;"><input type="text" name="orgSectors" id="orgSectors" maxlength="50" /></td>
				</tr>
				<tr>
					<th style="width:15%;"><%= localeMessage.getString("portalOrg.orgCode") %></th>
					<td colspan="3" style="width:35%;">
						<input type="text" name="orgCode" id="orgCode"/>
					</td>
					<th><%= localeMessage.getString("portalOrg.orgIndustryType") %></th> <%--업종--%>
					<td><input type="text" name="orgIndustryType" id="orgIndustryType" maxlength="50" /></td>
				</tr>
				<tr>
					<th><%= getRequiredLabel(localeMessage.getString("portalOrg.compRegNo")) %></th>
					<td colspan="3">
						<input type="text"  name="compRegNo" id ="compRegNo" data-required data-warning="사업자 등록번호를 입력하여 주십시오."/>
					</td>
					<th><%= localeMessage.getString("portalOrg.ceoName") %></th>
					<td>
						<input type="text" name="ceoName" id="ceoName" maxlength="50" />
					</td>
				</tr>
				<tr>
					<th><%= localeMessage.getString("portalOrg.corpRegNo") %></th>
					<td colspan="3">
						<input type="text" name="corpRegNo" id="corpRegNo" />
					</td>
					<th><%= localeMessage.getString("portalOrg.orgAddr") %></th>
					<td>
						<input type="text" name="orgAddr" id="orgAddr" maxlength="255" />
					</td>
				</tr>
				<tr>
					<th style="width:15%;"><%= localeMessage.getString("portalUser.approvalStatus") %></th>
					<td style="width:10%;"><div class="select-style"><select name="approvalStatus"/></div></td>
					<th style="width:15%;"><%= localeMessage.getString("portalOrg.orgStatus") %></th>
					<td style="width:10%;"><div class="select-style"><select  name="orgStatus" id="orgStatus" /></div></td>
					<th><%= localeMessage.getString("portalOrg.serviceName") %></th>
					<td>
						<input type="text" name="serviceName" id="serviceName" maxlength="36" />
					</td>
				</tr>
				<tr>
					<th><%= localeMessage.getString("portalOrg.scPhoneNumber") %></th>
					<td colspan="3">
						<div class="input-group" style="width: 60%; display: flex;">
							<div class="select-style" style="width: 30%; display: inline-block;">
								<select id="scPhonePrefix" name="scPhonePrefix"  style="padding-left: 10px;">
									<option value="">선택</option>
									<option value="국번없음">국번없음</option>
									<option value="02">02</option>
									<option value="031">031</option>
									<option value="032">032</option>
									<option value="033">033</option>
									<option value="041">041</option>
									<option value="042">042</option>
									<option value="043">043</option>
									<option value="044">044</option>
									<option value="051">051</option>
									<option value="052">052</option>
									<option value="053">053</option>
									<option value="054">054</option>
									<option value="055">055</option>
									<option value="061">061</option>
									<option value="062">062</option>
									<option value="063">063</option>
									<option value="064">064</option>
									<option value="070">070</option>
								</select>
							</div>
							<span class="mx-2">-</span>
							<input type="text" id="scPhoneMiddle" name="scPhoneMiddle" maxlength="4" style="width: 20%; text-align: center;" />
							<span class="mx-2">-</span>
							<input type="text" id="scPhoneLast" name="scPhoneLast" maxlength="4" style="width: 20%; text-align: center;" />
							<input type="hidden" name="scPhoneNumber"/>
						</div>
					</td>
					<th><%= localeMessage.getString("portalOrg.orgPhoneNumber") %></th>
					<td>
						<div class="input-group" style="width: 60%; display: flex;">
							<div class="select-style" style="width: 30%; display: inline-block;">
								<select id="orgPhonePrefix" name="orgPhonePrefix"  style="padding-left: 10px;">
									<option value="">선택</option>
									<option value="국번없음">국번없음</option>
									<option value="02">02</option>
									<option value="031">031</option>
									<option value="032">032</option>
									<option value="033">033</option>
									<option value="041">041</option>
									<option value="042">042</option>
									<option value="043">043</option>
									<option value="044">044</option>
									<option value="051">051</option>
									<option value="052">052</option>
									<option value="053">053</option>
									<option value="054">054</option>
									<option value="055">055</option>
									<option value="061">061</option>
									<option value="062">062</option>
									<option value="063">063</option>
									<option value="064">064</option>
									<option value="070">070</option>
								</select>
							</div>
							<span class="mx-2">-</span>
							<input type="text" id="orgPhoneMiddle" name="orgPhoneMiddle" maxlength="4" style="width: 20%; text-align: center;" />
							<span class="mx-2">-</span>
							<input type="text" id="orgPhoneLast" name="orgPhoneLast" maxlength="4" style="width: 20%; text-align: center;" />
							<input type="hidden" name="orgPhoneNumber"/>
						</div>
					</td>
				</tr>
				<tr>
					<th><%= localeMessage.getString("portalOrg.reverseProxyPath") %></th>
					<td colspan="3">
						<%=reverseProxyUrl %>/<input type="text" name="reverseProxyPath" id="reverseProxyPath" style="width:100px; "/>
					</td>
					<th></th>
					<td>
						
					</td>
				</tr>
				<tr><%--사업자등록증--%>
					<th><%= localeMessage.getString("portalOrg.compRegFile") %></th>
					<td colspan="5" style="padding-top:  5px; padding-bottom: 5px;">
						<input type="file" name="compRegFileUpload" id="compRegFileUpload" style="display: none;"
							   accept=".pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.hwp,.gif,.jpg,.jpeg,.png" />
						<button type="button" id="uploadButton" class="smallBtn cssbtn">파일 선택</button>
						<div style="display: inline-block; margin-left: 10px;">
							<span id="fileWrapper" style="display: none; cursor: pointer;">
								<img src="${pageContext.request.contextPath}/images/icon_file.png"
									 style="vertical-align: middle; margin-right: 5px; font-size: 0.7rem;">
								<span id="fileName" style="text-decoration: underline;" name="fileName"></span>
							</span>
						</div>
						<input type="hidden" name="compRegFile" id="compRegFile" />
						<div class="file-description" style="margin-top: 5px; color: #666; font-size: 0.7rem;">
							첨부파일은 10MB 이내로 등록해 주세요.<br>
							문서파일과 이미지 파일만 등록 가능합니다. (pdf, doc, docx, xls, xlsx, ppt, pptx, hwp, gif, jpg, png)
						</div>
					</td>
				</tr>
			</table>
			<%--법인 관리자정보--%>
			<div id="managerInfoSectionTitle" class="title" style="margin-top: 50px;"><%= localeMessage.getString("portalOrg.portalUser.title") %></div>
			<div id="managerInfoSection" style="display: none;" >
				<table class="table_row"  cellspacing="0">
					<tr>
						<th style="width:15%;"><%= localeMessage.getString("portalUser.name") %></th>
						<td style="width:35%;" id="userName"></td>
						<th style="width:15%;"><%= localeMessage.getString("portalUser.userStatus") %></th>	<%--계정상태--%>
						<td style="width:35%;" id="userStatusDescription"></td>
					</tr>
					<tr>
						<th><%= localeMessage.getString("portalUser.emailAddr") %></th>	<%--이메일 아이디--%>
						<td id="emailAddr"></td>
						<th><%= localeMessage.getString("portalUser.mobile") %></th>	<%--핸드폰 번호--%>
						<td id="mobileNumber"></td>
					</tr>
				</table>
			</div>

			<div id="noManagerMessage" style="display: none; font-size: 0.8rem;">
				<p><%= localeMessage.getString("portalOrg.noManagerMsg") %></p>
			</div>

			<div id="ipWhitelistList" style="margin-top: 50px;">
				<div class="title" style="margin-top: 10px">사용 서버 IP 대역 (화이트리스트)</div>
				<table class="table_row" cellspacing="0" style="width:50%;">
					<tr>
						<th style="width:15%;"><%= localeMessage.getString("portalOrg.ipWhitelist") %></th>
						<td>
							<div style="display: flex; align-items: center;">
								<input type="text" id="ipInput" style="width:200px; margin-right: 10px;" maxlength="15" placeholder="xxx.xxx.xxx.xxx">
								<button type="button" class="cssbtn smallBtn" id="btn_add_ip"><i class="material-icons">add</i> IP 추가</button>
							</div>
						</td>
					</tr>
				</table>

				<!-- IP 목록 테이블 -->
				<table class="table_row" cellspacing="0" style="margin-top: 10px; width:50%;">
					<thead>
					<tr>
						<th style="width:10%;">No</th>
						<th>IP</th>
						<th style="width:20%;">삭제</th>
					</tr>
					</thead>
					<tbody id="ipListBody">
					<!-- 동적으로 추가될 IP 목록 -->
					</tbody>
				</table>
				<input type="hidden" name="ipWhitelist" id="ipWhitelist">
			</div>

		</form>
	</div>
</div>
</body>
</html>

