$(document).ready(function() {
	$( '#main_fade' ).animate( {
		opacity: '0'
	}, 500, function() {
		$( this ).animate( {
		  top: '-50000px'
		}, 0 );
	} );
});

$(document).ready(function(){
	$("#list_id_popup").hide();
	function c(a,b,d){return 0===b.length?(alert(d),$("#"+a).focus(),!1):!0}
	var b=$("#partnership-form");
	(function(){var a;
	"p"==gEnv?a={updateOnWindowResize:!0,roundLengths:!0,spaceBetween:0,width:270,initialSlide:0,centeredSlides:!0,loop:!0,loopedSlides:gGripperSize,threshold:5,slidesOffsetBefore:147,slidesOffsetAfter:147,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}
	}
	:(a=($(window).width()-220)/2,a={updateOnWindowResize:!1,roundLengths:!0,spaceBetween:0,
	width:220,initialSlide:0,loop:!0,loopedSlides:gGripperSize,slidesOffsetBefore:a}
	);
	new Swiper(".gripper-list",a)}
	)();
	$(".btn-request").click(function(a){b.trigger("reset");
	a=$("#partnership-area");
	var c=($(window).height()-a.height())/2,d=($(window).width()-a.width())/2;
	a.css("top",c);
	a.css("left",d);
	$("#fade").show();
	$("#partnership-area").show()});

	$(".btn-close").click(function(a) {
		$("#partnership-area").slideToggle('fast');
		$("#fade").hide();
		//location.reload(true);
	});

	b.submit(function(a){
		submit_process();
		return false;
		})
}


);

function submit_process() {
    console.log('[submit_process] 시작');
    $("#submit_msg").fadeIn("slow").html("처리중...");
    var params = $("#partnership-form").serialize();
    console.log('[submit_process] params:', params);
    $.ajax({
        url: '/Admin/submit_process/index.php',
        type: 'POST',
        data: params,
        contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
        dataType: 'html',
        success: function(data) {
            console.log('[submit_process] AJAX 성공, data:', data);
            if(data) {
                // 스크립트 태그 제거
                var cleanData = data.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, "").trim();
                console.log('[submit_process] 정제된 데이터:', cleanData);

                // SUCCESS 또는 FAIL 키워드 검색
                var isSuccess = cleanData.indexOf('SUCCESS') !== -1;
                var isFail = cleanData.indexOf('FAIL') !== -1;

                // | 기호로 메시지 분리
                var messageParts = cleanData.split('|');
                var message = '';

                if (messageParts.length > 1) {
                    // 두 번째 부분에서 HTML 경고 태그 이전의 내용만 추출
                    var userMessage = messageParts[1].split('<br />')[0];
                    message = userMessage.trim();
                }

                if (isSuccess) {
                    console.log('[submit_process] 처리 성공, 메시지:', message);
                    $(".btn-submit").hide();
                    //$(".form-group").slideUp("slow");

                    // 목록 새로고침
                    if ($("#DeviceType").text() == "mobile") {
                        $("#list_id_popup").load("/Admin/ajax_list_id.php");
                    } else {
                        $("#list_id_popup").load("/Admin/ajax_list_id.php");
                    }

                    // 테이블 목록도 새로고침
                    loadMemberList('a','');

                    // 메시지 표시
                    if (message) {
                        $("#submit_msg").fadeIn("slow").html("<span style='color:#35d4c7; font-weight:bold;'>" + message + "</span>");
                    } else {
                        $("#submit_msg").fadeIn("slow").html("<span style='color:#35d4c7; font-weight:bold;'>정상적으로 처리되었습니다.</span>");
                    }

                    // 3초 후 성공 메시지 사라지게 하기
                    setTimeout(function() {
                        // 처리된 아이디 값 저장
                        var processedId = $("#member_id").val();

                        // 팝업 닫기
                        $("#partnership-area").slideUp('fast');
                        $("#submit_msg").fadeOut("slow");

                        // VPN 이용자 현황 새로고침
                        document.getElementById('btn-all-id-list').click();

                        // 새로고침 후 해당 행에 효과 적용 (약간의 지연 필요)
                        setTimeout(function() {
                            // 처리된 아이디에 해당하는 행 찾기
                            var $targetRow = $(".vpnid-list-table tr").filter(function() {
                                return $(this).find("td:contains('" + processedId + "')").length > 0;
                            });

                            if ($targetRow.length > 0) {
                                // 행에 하이라이트 효과 적용
                                $targetRow.addClass("highlight-row");

                                // 스크롤하여 해당 행이 보이게 함
                                $('html, body').animate({
                                    scrollTop: $targetRow.offset().top - 100
                                }, 500);

                                // 5초 후 하이라이트 효과 제거
                                setTimeout(function() {
                                    $targetRow.removeClass("highlight-row");
                                }, 8000);
                            }
                        }, 2000); // 테이블 로드 시간을 고려한 지연
                    }, 3000);

                } else if (isFail) {
                    console.log('[submit_process] 처리 실패, 메시지:', message);
                    if (message) {
                        $("#submit_msg").fadeIn("slow").html("<span style='color:orangered;'>" + message + "</span>");
                    } else {
                        $("#submit_msg").fadeIn("slow").html("<span style='color:orangered;'>처리불능-오류라고 판단되시면 관리자에게 알려 주십시오 [오류코드#911]</span>");
                    }
                } else {
                    console.log('[submit_process] 알 수 없는 응답:', data);
                    $("#submit_msg").fadeIn("slow").html("<span style='color:orangered;'>서버 응답을 처리할 수 없습니다. 관리자에게 문의하세요.</span>");
                }
            } else {
                console.log('[submit_process] 응답 없음');
                $("#submit_msg").fadeIn("slow").html("<span style='color:orangered;'>서버 응답이 없습니다. 관리자에게 문의하세요.</span>");
            }
        },
        error: function(xhr, status, error) {
            console.log('[submit_process] AJAX 에러', 'status:', status, 'error:', error, 'response:', xhr.responseText);
            $("#submit_msg").fadeIn("slow").html("<span style='color:orangered;'>서버 오류가 발생했습니다. 관리자에게 문의하세요.</span>");
        }
    });
}



function list_id_pc() {
	$("#list_id_popup").fadeIn("slow");
	$.ajax({
		url: '/Admin/ajax_list_id_pc.php',
		type: 'POST',
		contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
		dataType: 'html',
		success:function(data)
		{
			if(data)
			{
				$("#list_id_popup").html(data);
			}
		}
	});
}

function list_id_mobile() {
	$("#list_id_popup").fadeIn("slow");
	$.ajax({
		url: '/Admin/ajax_list_id_mobile.php',
		type: 'POST',
		contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
		dataType: 'html',
		success:function(data)
		{
			if(data)
			{
				$("#list_id_popup").html(data);
			}
		}
	});
}

// 원래의 div를 유지하되 내용은 변경됨
function updateMemberListArea(type, id) {
  var container = document.getElementById('member-list-area');
  var titleDiv = container.querySelector('div:first-child');
  var contentType = 'a'; // 기본값

  // 타입에 따라 제목과 내용 타입 변경
  if (type === 'a' || !type) {
    titleDiv.textContent = '최근에 등록된 고객 아이디 로딩중...';
    contentType = 'a';
  } else if (type === 'e') {
    titleDiv.textContent = id + ' 고객님의 변경이력 로딩중...';
    contentType = 'e';
  } else if (type === 'd') {
    titleDiv.textContent = id + ' 고객님의 변경이력 로딩중...';
    contentType = 'd';
  }

  // 출력될 내용 부분 비우기
  var contentDiv = container.querySelector('#member-list-table-wrap');
  contentDiv.innerHTML = '';

  // 멤버 목록 로드
  loadMemberList(contentType, id);

}

// 신규 아이디 생성
function list_id_popup_new() {
  $(".form-group").show();
  $("#submit_msg").html("");
  $(".btn-submit").show();
  $("#div_process_type1").show();
  $("#div_process_type2").hide();
  $("#div_process_type3").hide();
  $("#process_type1").prop("checked", true);
  $("#li_member_pwd").show();
  $("#member_id_expire").show();
  $("#li_member_memo").show();
  $("#partnership-area").slideDown('fast');
  $("#member_id").val("");
  $("#member_pwd").val("");
  $("#member_id_expire").val("");
  $("#member_memo").val("");
  // 모두 editable, 흰색, default
  ["#member_id", "#member_pwd", "#member_id_expire", "#member_memo"].forEach(function(sel){
    $(sel).prop("readonly", false)
          .css({background: "#ffffff", cursor: "default"});
  });
  $("#member_pwd").prop("placeholder", "");
  $("#member_pwd").prop("required", true);
  $("#member_id_expire").prop("placeholder", "");

  // 제출 버튼 텍스트 업데이트
  $("#btn-submit_process").val("신규 아이디 생성");

  // 멤버 리스트 타입 업데이트
  updateMemberListArea('a');
}

// 아이디 변경
function list_id_popup_edit(id, id_expire, memo) {
  $(".form-group").show();
  $("#submit_msg").html("");
  $(".btn-submit").show();
  $("#div_process_type1").hide();
  $("#div_process_type2").show();
  $("#div_process_type3").hide();
  $("#process_type2").prop("checked", true);
  $("#li_member_pwd").show();
  $("#member_id_expire").show();
  $("#li_member_memo").show();
  $("#partnership-area").slideDown('fast');
  $("#member_id").val("");
  $("#member_pwd").val("");
  $("#member_memo").val("");
  $("#member_id").val(id);
  // 날짜만 있을 때, 기본 시간 추가 (datetime-local: yyyy-MM-ddTHH:mm)
  if (/^\d{4}-\d{2}-\d{2}$/.test(id_expire)) {
    $("#member_id_expire").val(id_expire + "T23:59:59");
  } else if (/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(id_expire)) {
    // DB에서 "2020-11-27 23:59:59" 형식으로 올 때
    var parts = id_expire.split(' ');
    var date = parts[0];
    var time = parts[1].substring(0,5); // HH:mm
    $("#member_id_expire").val(date + "T" + time);
  } else if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(id_expire)) {
    // 이미 datetime-local 포맷이면 그대로
    $("#member_id_expire").val(id_expire);
  } else {
    // 그 외는 빈값 처리
    $("#member_id_expire").val("");
  }
  $("#member_memo").val(memo);
  // ID만 readonly, 회색, not-allowed. 나머지는 editable, 흰색, default
  $("#member_id").prop("readonly", true)
                .css({background: "#aaaaaa", cursor: "not-allowed"});
  ["#member_pwd", "#member_id_expire", "#member_memo"].forEach(function(sel){
    $(sel).prop("readonly", false)
          .css({background: "#ffffff", cursor: "default"});
  });
  $("#member_pwd").prop("placeholder", "");
  $("#member_pwd").prop("required", false);
  $("#member_id_expire").prop("placeholder", "");

  // 제출 버튼 텍스트 업데이트
  $("#btn-submit_process").val("고객정보 변경");

  // 멤버 리스트 타입 업데이트 - 이 아이디의 변경이력 표시
  updateMemberListArea('e', id);
}


// 아이디 삭제
function list_id_popup_del(id, id_expire, memo) {
  $(".form-group").show();
  $("#submit_msg").html("");
  $(".btn-submit").show();
  $("#div_process_type1").hide();
  $("#div_process_type2").hide();
  $("#div_process_type3").show();
  $("#process_type3").prop("checked", true);
  $("#li_member_pwd").hide();
  $("#member_id_expire").show();

  // 날짜 형식 처리 부분 개선
  if (/^\d{4}-\d{2}-\d{2}$/.test(id_expire)) {
    // 날짜만 있을 때, 기본 시간 추가 (datetime-local 형식에 맞게 수정)
    $("#member_id_expire").val(id_expire + "T23:59");
  } else if (/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(id_expire)) {
    // DB에서 "2020-11-27 23:59:59" 형식으로 올 때
    var parts = id_expire.split(' ');
    var date = parts[0];
    var time = parts[1].substring(0,5); // HH:mm
    $("#member_id_expire").val(date + "T" + time);
  } else if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(id_expire)) {
    // 이미 datetime-local 포맷이면 그대로
    $("#member_id_expire").val(id_expire);
  } else {
    // 유효한 날짜가 아닌 경우 현재 날짜로 설정
    var now = new Date();
    var year = now.getFullYear();
    var month = String(now.getMonth() + 1).padStart(2, '0');
    var day = String(now.getDate()).padStart(2, '0');
    var hours = String(now.getHours()).padStart(2, '0');
    var minutes = String(now.getMinutes()).padStart(2, '0');
    $("#member_id_expire").val(`${year}-${month}-${day}T${hours}:${minutes}`);
  }

  $("#li_member_memo").show();
  $("#partnership-area").slideDown('fast');
  $("#member_id").val("");
  $("#member_pwd").val("as3ds9df2kheu23siek6kjh");
  $("#member_id").val(id);
  $("#member_memo").val(memo);

  // 모든 필드 readonly, 회색, not-allowed
  ["#member_id", "#member_pwd", "#member_id_expire", "#member_memo"].forEach(function(sel){
    $(sel).prop("readonly", true)
          .css({background: "#aaaaaa", cursor: "not-allowed"});
  });

  // 시간 형식 오류를 방지하기 위해 입력 필드 비활성화 (삭제 모드에서는 수정이 필요 없음)
  $("#member_id_expire").prop("disabled", true);

  $("#member_pwd").prop("placeholder", "");
  $("#member_pwd").prop("required", true);

  // 제출 버튼 텍스트 업데이트
  $("#btn-submit_process").val("아이디 삭제");

  // 멤버 리스트 타입 업데이트 - 이 아이디의 변경이력 표시
  updateMemberListArea('e', id);
}