window.onload=function(){
	if (typeof (history.pushState) != "undefined") {
		// history.pushState(null, null, 'list_v2-3');
	}
	$('body').fadeIn(1000);

	$("#history").html("LOADING...");
	history_refresh();
	dup_mgrname_check_refresh();

	winResize();
};

function winResize() {
	var screenWidth = $("#myTable").width();
	$('body').css("min-width",screenWidth+"px");
}

$(document).ready(function () {
	setInterval( function () {
		winResize();
 	}, 1000); // history reload 간격
});

$(document).ready(function () {
	setInterval( function () {
 	history_refresh();
 	}, 10000); // history reload 간격
});

$(document).ready(function () {
 	setInterval( function () {
 	dup_mgrname_check_refresh();
 	}, 10000); //관리넘버 중복 체크
});

table = $('#myTable').DataTable(); // global 변수 선언

function timer_datatable_reload() {
	// 0.5초 딜레이 후 실행
    setTimeout(() => {
        table.ajax.reload(null, false); // 페이지 변경 안되게 reload
        winResize();
    }, 500); // 500ms = 0.5초
}

$(document).ready(function () {
	function applyInputRestrictions() {
		$('input[type="text"]').off('input keyup paste').on('input keyup', function() {
			let value = $(this).val();
			if (value.indexOf('\\') !== -1) {
				$(this).val(value.replace(/\\/g, ''));
			}
		}).on('paste', function(event) {
			event.preventDefault();
			let pasteData = event.originalEvent.clipboardData.getData('text');
			pasteData = pasteData.replace(/\\/g, '');

			// 현재 입력 필드의 값
			let currentValue = $(this).val();
			// 커서 위치
			let start = this.selectionStart;
			let end = this.selectionEnd;

			// 선택된 텍스트를 제거하고 붙여넣기
			let newValue = currentValue.substring(0, start) + pasteData + currentValue.substring(end);
			$(this).val(newValue);
		});
	}
	$.fn.dataTable.ext.errMode='none';
	$.fn.DataTable.ext.pager.numbers_length = 30;
    $.fn.dataTable.ext.search.push(
        function(settings, data, dataIndex){
            var min = Date.parse($('#fromDate').val()+' 00:00:00');
            var max = Date.parse($('#toDate').val()+' 23:59:59');
            var targetDate = Date.parse(data[0]);

            if( (isNaN(min) && isNaN(max) ) ||
                (isNaN(min) && targetDate <= max )||
                ( min <= targetDate && isNaN(max) ) ||
                ( targetDate >= min && targetDate <= max) ){
                    return true;
            }
            return false;
        }
    )

    table = $('#myTable').DataTable({
		ajax: {
			url: 'index_admin_list_load_data_ajax_v2-3.php' ,
			type: 'POST',
			dataType:"json",
			data: {
				cate: $('#cate').text().trim(),
				dstoreid: $('#dstoreid').text().trim(),
				s: $('#s').text().trim(),
				g: $('#g').text(),
				action:'ajax'
			},
			dataSrc: function (jData) {
				//console.log("#####" + jData[0]['explogin']); // ##############
				//console.log(jData[0]['title']);
				//$('.title').html(jData[0]['title']);
				try {
					if (jData[0]['explogin'] !== null && jData[0]['explogin'] !== undefined) {
						if (jData[0]['explogin'] == "fail") {
							$('body').hide();
							$("#logoutform").submit();
							//window.location = "login_admin.php?m=시스템에%20의해%20로그아웃%20되었습니다.";
							$(".divwait").css("display","none");
							return false;
						} else {
							$(".divwait").css("display","none");
							return jData;
						}
					} else {
						$(".divwait").css("display","none");
						return jData;
					}
				} catch (e) {
					$(".divwait").css("display","none");
					return jData;
				}
			},
		},
		bDestroy: true,
		lengthMenu: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 30, 40, 50 ],
		displayLength: 20,
		stateSave: false,
        responsive: false,
        orderMulti: false,
		order : [[8, 17, 2, 0, 'desc']],
		pagingType: "full_numbers",
        columns: [
            {"data": "no"},
			{"data": "svrmove"},
            {"data": "mgrname"},
			{"data": "rsv_mb_id"},
            {"data": "OS"},
            {"data": "sysmemo"},
            {"data": "adminmemo"},
            {"data": "rental_stat"},
            {"data": "as"},
			{"data": "jobstat"},
			{"data": "jobact"},
			{"data": "jobdl"},
			{"data": "jobend"},
			{"data": "ass"},
            {"data": "isOnline"},
            {"data": "rcmd"},
			{"data": "isPower"},
			{"data": "minimsg"},
            {"data": "member_id"},
            {"data": "AnyDesk"},
            {"data": "TeamViewer"},
			{"data": "ltrf"},
			{"data": "idl"},
			{"data": "pcinfo"},
			{"data": "del"}
        ],
		columnDefs: [
			{ "targets": [0] , "orderable": true },
			{ "targets": [1] , "orderable": true },
			{ "targets": [2] , "orderable": true },
			{ "targets": [3] , "orderable": true },
			{ "targets": [4] , "orderable": false },
			{ "targets": [5] , "orderable": true },
			{ "targets": [6] , "orderable": true },
			{ "targets": [7] , "orderable": true },
			{ "targets": [8] , "orderable": true },
			{ "targets": [9] , "orderable": true },
			{ "targets": [10] , "orderable": true },
			{ "targets": [11] , "orderable": true },
			{ "targets": [12] , "orderable": true },
			{ "targets": [14] , "orderable": true },
			{ "targets": [15] , "orderable": false },
			{ "targets": [16] , "orderable": true },
			{ "targets": [17] , "orderable": true },
			{ "targets": [18] , "orderable": true },
			{ "targets": [19] , "orderable": false },
			{ "targets": [20] , "orderable": false },
			{ "targets": [21] , "orderable": true },
			{ "targets": [21] , data: "num_values",
				"render": function ( data, type, row, meta ) {
					if (type === 'sort' || type === 'type') {
						return parseFloat(data);
					}
					return data;
				}
			},
			{ "targets": [22] , "orderable": true },
			{ "targets": [23] , "orderable": false },
			{ "targets": [24] , "orderable": false }
		],
		drawCallback: function() {
			 // Re-apply the input restrictions
			 applyInputRestrictions();
		},
        language: {
            "emptyTable": "서버관리/요청 : " + "표시할 데이터가 없습니다.",
            "lengthMenu": "페이지당 _MENU_ 개씩 보기",
            "info": "현재 _START_ - _END_ / _TOTAL_건",
            "infoEmpty": "현재 _START_ - _END_ / _TOTAL_건",
            "infoFiltered": "( _MAX_건의 데이터에서 필터링됨 )",
            "search": "으로 결과내 검색: ",
            "zeroRecords": "검색조건에 맞는 데이터가 없습니다.",
            "loadingRecords": "<div style='display:flex; justify-content:center; align-items:center; width:100%; height:100%; background:#ffffff; box-sizing:border-box; margin:0 auto 0;'><img src='img/loding_sand.gif' style='filter: invert(0%); width:20%; max-width:100px;'></div>",
            "processing":     "잠시만 기다려 주세요...",
            "paginate": {
                "next": "다음",
                "previous": "이전",
                "first": "", // "First" 버튼 숨기기
                "last": ""   // "Last" 버튼 숨기기
            }
        },
        /* Footer에 금액총합 구하기,
         * filtered data 총합만 계산하도록 함.*/
		/*
        footerCallback: function(){
            var api = this.api(), data;
            var result = 0;
            api.column(7, {search:'applied'}).data().each(function(data,index){
                result += parseFloat(data);
            });
            $(api.column(7).footer()).html(result.toLocaleString()+"");
        },
		*/
        dom : 'Blfrtip',
        buttons:[/*{
			extend:'csvHtml5',
			text: '엑��파일(CSV)로 내보내기',
			footer: true,
			bom: true,
			className: 'exportCSV'
		}*/]
    });

	// Initial application of restrictions
	applyInputRestrictions();

    /* Column별 검색기능 추가 */
    $('#myTable_filter').prepend('<select id="select"></select>');
	// 제외할 문자열 배열
	const excludedOptions = [
		"렌탈상태", "마켓세팅", "마켓노출", "리셀러노출", "경매",
		"강제중지", "서버숨김", "서버관리/요청", "상태", "재부팅",
		"IoT", "알림쪽지", "트래픽(Mbps)", "원격대기", "변경이력", "삭제", "Computer Specifications"
	];
    $('#myTable > thead > tr').children().each(function (indexInArray, valueOfElement) {
		const optionText = valueOfElement.innerHTML;

        // 옵션이 제외할 문자열 배열에 포함되지 않은 경우에만 추가
        if (!excludedOptions.includes(optionText)) {
            $('#select').append('<option>' + optionText + '</option>');
        } else {
			$('#select').append('<option disabled style="display: none;">' + optionText + '</option>');
		}
    });

	// 검색 input 요소
    const $searchInput = $('#myTable_filter input[type="search"]');
	$searchInput.attr('type', 'search');
	$searchInput.attr('placeholder', '검색어를 입력하세요');

    // select의 change 이벤트 핸들러
    $('#select').on('change', function() {
        const selectedOption = $(this).val();

        // 특정 문자열이 포함된 경우
        if (selectedOption.includes("등록일") || selectedOption.includes("처리기한") ||
            selectedOption.includes("완료일시") || selectedOption.includes("시작일") ||
            selectedOption.includes("만료일")) {
            // input type을 date로 변경
            $searchInput.attr('type', 'date');
            $searchInput.attr('placeholder', '날짜를 선택하세요');
        } else {
            // input type을 search로 변경
            $searchInput.attr('type', 'search');
            $searchInput.attr('placeholder', '검색어를 입력하세요');
			$searchInput.val('');
        }
    });

    $('.dataTables_filter input').unbind().bind('propertychange change keyup paste input', function () {
        var colIndex = document.querySelector('#select').selectedIndex;
        table.column(colIndex).search(this.value).draw();
    });

    /* 날짜검색 이벤트 리바인딩 */
	/*
    $('#myTable_filter').prepend('<input type="date" id="toDate" placeholder="yyyy-MM-dd">  ');
    $('#myTable_filter').prepend('<input type="date" id="fromDate" placeholder="yyyy-MM-dd"> ~');
    $('#toDate, #fromDate').unbind().bind('propertychange change keyup paste input',function(){
        table.draw();
    })
	*/

	$(".dataTables_filter").attr("style","position:absolute; top:-5px; left:330px;");

	// 삭제된 자료 출력여부 체크박스 컨트롤
	$('#myTable_length').append("<span style='margin-left:20px; cursor:pointer;'><input type='checkbox' readonly name='inc4del' id='inc4del' style='position:relative; top:4px; zoom:1.25; cursor:pointer;'><label id='lbl_inc4del' for='inc4del' style='cursor:pointer;'>숨긴 서버만 보기</label></span>");
	$('.dataTables_filter').append("<span style='margin-left:30px;'><label>★ A/S접수된 품번과 관리자에 의해 점검, 서버교체, 취소환불, 결제대기, 서버종료 요청이 있는 품번만 표시됩니다.</label></span>");

	$('#inc4del').on('propertychange change click', function () {
		$('#lbl_inc4del').text('숨긴 서버만 보기 출력중...');
		var link = "index_admin_list_v2-3del.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text();
		location.href=link;
	});

});

var showcnt = 0;

$(document).ready(function () {
	$("#newdbsound").val("1");
	//load_manual_select_store_init();
	//load_lastdb_init(); // 마지막 DB no
	var timer1 = setInterval( function () {
		//load_newdb_check($('#lastdb').val()); // 최신 DB no
		//client_status_check(); // 최신 DB no
		//console.log("ShowCnt="+showcnt);
		if (showcnt <= 0)
		{
			//console.log("[go] ShowCnt="+showcnt);
			timer_datatable_reload();
			$(document).attr("title",$('.title').html());
		} else {
			//console.log("[stop] ShowCnt="+showcnt);
		}
	}, 86400000); // 매니저 테이블 재확인 간격 (기존 10초간격일때 입력시 새로고침 되는 불편이 있다고 하여 1일(사실상 새로고침 안함)로 변경해둠 - 관리부장님 요구사항 - JSLEE 2025-03-22)


//$(document).ready(function (){$(this).mouseover(function(){tmrend();});$(this).mouseout(function(){tmrst();});});

});

function tmrst() {
	showcnt = 0;
}


function tmrend() {
	showcnt = 1;
}

$(document).ready(function() {
	$('.dataTables_paginate').click(function() {
		$( 'html, body' ).animate( { scrollTop : 0 }, 300 );
		return false;
	});
});

$(document).ready(function() {
	$("#cbx_chkAll").click(function() {
		if($("#cbx_chkAll").is(":checked")) $("input[name=chk]").prop("checked", true);
		else $("input[name=chk]").prop("checked", false);
		chk_datas();
	});
});

function chk_datas() {
	var data = "";
	$('input:checkbox[name="chk"]').each(function() {
		if (this.checked == true)
		{
			data = data + $(this).val() + ",";
		}
	});
	$("input:checkbox[name=chk]").click(function() {
		var total = $("input[name=chk]").length;
		var checked = $("input[name=chk]:checked").length;

		if(total != checked) $("#cbx_chkAll").prop("checked", false);
		else $("#cbx_chkAll").prop("checked", true);
	});
	$("#chk_data").val(data);
	if ($("#chk_data").val().length > 0)
	{
		$('#sel_data').show(1000);
	} else {
		$('#sel_data').hide(1000);
	}
}

function chkbox_manual_distribution(selected_storeid,selected_storename) {
	var no = $("#chk_data").val();
	var storeid = selected_storeid;
	var storename = selected_storename;
	no = no.replace(/,/gi, ' ');
	no = no.trim();
	var noArr = no.split(" ");
	var noLen = noArr.length;
	if (storeid != "0")
	{
		if (confirm("[분배대상 품번]\n"+no+"\n\n상단에 표시된 "+noLen+"건을 ["+ storename +"] 가맹점으로 일괄 수동분배처리 하시겠습니까?"))
		{
			$.ajax({
				url: 'index_admin_list_in_chkbox_manual_distribution_ajax_v2.php',
				type: 'POST',
				dataType: 'html',
				data: {
					no: no,
					after: storeid,
					s: $('#s').text(),
					cate: $("#cate").text(),
					action:'ajax'
				},
				success:function(data)
				{
					if(data)
					{
						if (data == 'ok')
						{
							alert("일괄 수동분배처리를 완료 하였습니다!");
							setTimeout(timer_datatable_reload, 1000);
							$('#sel_data').hide(1000);
							// 실행 완료 되었으므로 체크 박스 모두 해제
							$("input[name=cbx_chkAll]").prop("checked", false)
							$('input:checkbox[name="chk"]').each(function() {
								$("input[name=chk]").prop("checked", false)
							});
							//location.reload();
						}
					}
				}
			});
		} else {
			alert("가맹점 일괄 수동분배절차가 모두 취소처리 되었습니다!");
		}
	}
}

function logout(s) {
	if (confirm("로그아웃 하시겠습니까?"))
	{
		$("#logoutform").submit();
	} else {
		return false;
	}
}

function refresh(s) {
	location.reload();
}

function del(num) {
	if (confirm("[품번:"+num+"]을 정말로 삭제하시겠습니까?"))
	{
		$(".divwait").css("display","flex");
		$.ajax({
			url: 'index_admin_list_delete_ajax_v2.php',
			type: 'POST',
			dataType: 'html',
			data: {
				s: $('#s').text(),
				num: num,
				action:'ajax'
			},
			success:function(data)
			{
				if(data)
				{
					if (data == 'ok')
					{
						$("#d_"+num).text("삭제됨");
						$("#d_"+num).css("color","orangered");
						alert("삭제 되었습니다!");
						setTimeout(timer_datatable_reload, 1000);
						//location.reload();
					}
				}
			}
		});
	}
}

function del_forever(num) {
	if (confirm("이 작업은 한번 실행되면 복구가 되지 않습니다.\n[품번:"+num+"]을 정말로 영구 삭제하시겠습니까?"))
	{
		$(".divwait").css("display","flex");
		$.ajax({
			url: 'index_admin_list_delete_forever_ajax_v2.php',
			type: 'POST',
			dataType: 'html',
			data: {
				s: $('#s').text(),
				num: num,
				action:'ajax'
			},
			success:function(data)
			{
				if(data)
				{
					if (data == 'ok')
					{
						$("#d_"+num).text("영구삭제됨");
						alert("영구삭제 되었습니다!");
						$("#d_"+num).css("color","orangered");
						setTimeout(timer_datatable_reload, 1000);
						//location.reload();
					}
				}
			}
		});
	}
}

function del_restore(num) {
	if (confirm("[품번:"+num+"]을 정말로 삭제취소(복원) 하시겠습니까?"))
	{
		$(".divwait").css("display","flex");
		$.ajax({
			url: 'index_admin_list_delete_restore_ajax_v2.php',
			type: 'POST',
			dataType: 'html',
			data: {
				s: $('#s').text(),
				num: num,
				action:'ajax'
			},
			success:function(data)
			{
				if(data)
				{
					if (data == 'ok')
					{
						$("#d_"+num).text("복원됨");
						$("#d_"+num).css("color","orangered");
						//alert("삭제취소(복원) 되었습니다!");
						setTimeout(timer_datatable_reload, 1000);
						//location.reload();
					}
				}
			}
		});
	}
}

function ass_on(num) {
	$(".divwait").css("display","flex");
	$.ajax({
		url: 'index_admin_list_ass_on_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			s: $('#s').text(),
			num: num,
			action:'ajax'
		},
		success:function(data)
		{
			if(data)
			{
				if (data == 'ok')
				{
					alert("숨김 취소(보이는 상태)로 전환 되었습니다!");
					timer_datatable_reload();
				} else {
					alert(num + "번, 숨김 취소 실패!");
				}
			}
		}
	});
}

function ass_off(num) {
	$(".divwait").css("display","flex");
	$.ajax({
		url: 'index_admin_list_ass_off_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			s: $('#s').text(),
			num: num,
			action:'ajax'
		},
		success:function(data)
		{
			if(data)
			{
				if (data == 'ok')
				{
					alert(num + "번, 숨김 상태로 전환 되었습니다!");
					timer_datatable_reload();
				} else {
					alert(num + "번, 숨김 처리실패!");
				}
			}
		}
	});
}

function sl_change(no, before, after) {

	if (after != '0')
	{
		var before_disp;
		var after_disp;
		var after_disp2;
		if (before == '0' || before == '' || before == null )
		{
			before = "대기실";
		}
		if (before == 'headoffice')
		{
			before_disp = "가맹본부";
		} else if (before == "0") {
			before_disp = "분배안함(X)";
		} else {
			before_disp = before;
		}

		if (after == 'headoffice')
		{
			after_disp = "가맹본부";
		} else if (after == "0") {
			after_disp = "분배안함(X)";
			after_disp2 = "X";
		} else {
			after_disp = after;
			after_disp2 = after;
		}

		if (before == after) {
			$('#sl_select_'+no).val('0').trigger('change');
			$("#sl_select_"+no).animate({height:'toggle'},'fast');
			alert("현재 분배된 가맹점과 동일한 가맹점을 선택하셨습니다.\n수동분배절차가 취소 되었습니다!");
			return false;
		} else {
			if (no!=null && no!='' && after!=null && after!='' && before!=null && before!='') {
				if (confirm("품번: "+no+"\n\n현재 분배된 '"+before_disp+"'에서 '"+after_disp+"'(으)로\n 이전 하실려면 확인 버튼을 누르십시오!"))
				{
					$.ajax({
						url: 'index_admin_list_slchange_ajax_v2.php',
						type: 'POST',
						dataType: 'html',
						data: {
							s: $('#s').text(),
							no: no,
							after: after,
							cate: $("#cate").text(),
							action:'ajax'
						},
						success:function(data)
						{
							if(data)
							{
								if (data == 'ok')
								{
									//alert("분배처리를 완료 하였습니다!");
									setTimeout(timer_datatable_reload, 1000);
									//location.reload();
								}
							}
						}
					});
				} else {
					//$('#sl_select_'+no).val(before).trigger('change');
					$('#sl_select_'+no).val('0').trigger('change');
					$("#sl_select_"+no).animate({height:'toggle'},'fast');
					alert("가맹점 수동분배절차가 취소 되었습니다!");
				}
			}
		}
	}
}

function bdtype_choice(choice,num) {
	var choice_bdtype = '';
	var choice_chk = choice+"";
	var confirm_msg = "";
	switch (choice_chk)
	{
		case "0":
			choice_bdtype = "대기실";
			break;
		case "1":
			choice_bdtype = "자동분배";
			break;
		case "2":
			choice_bdtype = "수동분배";
			break;
	}

	if (choice_chk == "0") {
		confirm_msg = "분배대상 품번: "+num+"\n\n정말로 "+choice_bdtype+"로 보내시겠습니까?";
	} else if (choice_chk == "1") {
		confirm_msg = "분배대상 품번: "+num+"\n\n정말로 시스템 "+choice_bdtype+"방식으로 지금 바로 분배처리 하시겠습니까?";
	} else if (choice_chk == "2") {
		confirm_msg = "지금 바로 수동분배 처리를 완료 하실려면 분배받을 가맹점을 지정해 주십시오!";
	}


	if (choice_chk == "0" || choice_chk == "1")
	{
		if (confirm(confirm_msg))
		{
			$.ajax({
				url: 'index_admin_list_choice_bdtype_ajax_v2.php',
				type: 'POST',
				dataType: 'html',
				data: {
					s: $('#s').text(),
					choice: choice,
					num: num,
					action:'ajax'
				},
				success:function(data)
				{
					if(data)
					{
						if (data == '2')
						{


						} else if (data == '0') {
							//alert("대기실로 이동 시켰습니다.");
							setTimeout(timer_datatable_reload, 300);
							//location.reload();
						} else if (data == '1') {
							//alert("자동분배로 전환되었습니다.");
							setTimeout(timer_datatable_reload, 300);
							//location.reload();
						}
					}
				}
			});
		}
	} else if (choice_chk == "2") {
		$("#sl_select_"+num).animate({height:'toggle'},'fast');
	}
}

function load_manual_select_store_init() {
	//console.log("load_manual_select_store_init...");
	$.ajax({
		url: 'index_admin_list_in_manual_select_store_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			cate: $("#cate").text(),
			s: $('#s').text(),
			action:'ajax'
		},
		success:function(data)
		{
			if(data)
			{
				$('#sel_data').html(data);
			}
		}
	});
}

$(function(){
	$('#sel_data').change("propertychange change keyup paste input", function() {
		var selected_storename = $("#sel_data option:selected").text();
		var selected_storeid = $(this).val();
		chkbox_manual_distribution(selected_storeid,selected_storename);
	});
});


function load_lastdb_init() {
		$.ajax({
		url: 'index_admin_list_in_lastdb_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			cate: $('#cate').text(),
			dstoreid: $('#dstoreid').text(),
			s: $('#s').text(),
			action:'ajax'
		},
		success:function(data)
		{
			if(data)
			{
				$('#lastdb').val(data);
			}
		}
	});
}

function load_newdb_check() {
	$.ajax({
		url: 'index_admin_list_in_newdb_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			cate: $('#cate').text(),
			dstoreid: $('#dstoreid').text(),
			s: $('#s').text(),
			action:'ajax'
		},
		success:function(data)
		{
			if(data)
			{
				$('#newdb').val(data);
				if (Number(data) == 0)
				{
					//console.log("data1="+data);
					$('#newdb_msg').fadeOut('slow');
					$('#newdb_msg_confirm').fadeOut('slow');
				} else {
					//console.log("data2="+data);
					if ($("#newdbsound").val() == "1") {
						playSound("dingdong");
					}
					if ($("#table_reload").val() == "1") {
						$("#table_reload").val("0");
						$('#newdb_msg').fadeIn('slow');
						$('#newdb_msg_confirm').fadeIn('slow');
						$('#newdb_msg_sound').fadeIn('slow');
						//timer_datatable_reload();
					}
				}
			}
		}
	});
}

function client_status_check() { // 전원상태 체크... (최신 DB no)
	//console.log("전원상태 체크... (최신 DB no)");
	$.ajax({
		url: 'index_admin_list_in_client_status_check_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			cate: $('#cate').text(),
			dstoreid: $('#dstoreid').text(),
			s: $('#s').text(),
			action:'ajax'
		},
		success:function(data)
		{
			var jData = JSON.parse(data);
			//console.log(jData.length);
			for (var i=0; i<jData.length; i++)
			{
				//console.log(jData[i]['item'] + " , " + jData[i]['no'] + " , " + jData[i]['val']);
				switch (jData[i]['item'])
				{
					case 'isonline' :
						if (jData[i]['val'] == "1")
						{
							$("#isonline_"+jData[i]['no']).html("power_settings_new");
							$("#isonline_"+jData[i]['no']).css("color","#26bffa");
							$("#isonline_"+jData[i]['no']).css("border","1px solid #26bffa");
						} else {
							$("#isonline_"+jData[i]['no']).html("power_off");
							$("#isonline_"+jData[i]['no']).css("color","orangeRed");
							$("#isonline_"+jData[i]['no']).css("border","1px solid orangeRed");
						}
						break;
				}
			}
		}
	});
}

function newdb_msg_confirm() {
	//console.log("newdb_msg_confirm...");
	$('#newdb_msg').fadeOut('fast');
	$('#newdb_msg_confirm').fadeOut('fast');
	$('#lastdb').val($('#newdb').val());
	$("#table_reload").val("1");
	timer_datatable_reload();
}

function newdb_msg_sound() {
	//console.log("newdb_msg_sound...");
	if ($('#newdbsound').val() == "0")
	{
		$('#newdbsound').val("1");
		$('#newdb_msg_sound').html("<span class='material-icons' id='newdb_msg_sound' style='cursor:pointer; font-size:1em;'>volume_up</span>");
	} else {
		$('#newdbsound').val("0");
		$('#newdb_msg_sound').html("<span class='material-icons' id='newdb_msg_sound' style='cursor:pointer; font-size:1em;'>volume_off</span>");
	}
}

function playSound(filename){
	var mp3Source = '<source src="' + filename + '.mp3" type="audio/mpeg">';
	var oggSource = '<source src="' + filename + '.ogg" type="audio/ogg">';
	var embedSource = '<embed hidden="true" autostart="true" loop="false" src="' + filename +'.mp3">';
	//document.getElementById("sound").innerHTML='<audio autoplay="autoplay">' + mp3Source + oggSource + embedSource + '</audio>';
}

/* 자동분배 대기 타이머 { */
function getDateCount(obj,num){
	//console.log("getDateCount...");
	var second = $(obj).attr("sec");

	$(obj).attr("timer", setInterval(function() {
		setTimeSaleTimer($(obj), second, num);
		second -= 1;
	}, 10000));
}

function setTimeSaleTimer(obj, objSec, num) {
	//console.log("setTimeSaleTimer...");
	var days = parseInt( objSec / 86400 );
	var hours = parseInt( objSec / 3600 ) % 24;
	var minutes = parseInt( objSec / 60 ) % 60;
	var seconds = objSec % 60;

	if (days == 0 && hours == 0 && minutes == 0 && seconds == 0) {
		clearInterval($(obj).attr("timer")); // 타이머 종료
		$.ajax({
			url: 'index_admin_list_choice_bdtype_ajax_v2.php',
			type: 'POST',
			dataType: 'html',
			data: {
				s: $('#s').text(),
				choice: "1",
				num: num,
				action:'ajax'
			},
			success:function(data)
			{
				if(data)
				{
					setTimeout(timer_datatable_reload, 1000);
				}
			}
		});
		return false;
	}
	if (hours == 0) {
		if (days > 0)
		{
			days --;
			hours = 23;
		}
	}
	if (minutes == 0) {
		if (hours > 0)
		{
			hours --;
			minutes = 59;
		}
	}
	if (seconds == 0) {
		if (minutes > 0)
		{
			minutes --;
			seconds = 59;
		}
	} else {
		seconds --;
	}

	if (days < 10)
	{
		days_disp = "0"+days;
	} else {
		days_disp = days;
	}
	if (hours < 10)
	{
		hours_disp = "0"+hours;
	} else {
		hours_disp = hours;
	}
	if (minutes < 10)
	{
		minutes_disp = "0"+minutes;
	} else {
		minutes_disp = minutes;
	}
	if (seconds < 10)
	{
		if (seconds < 0)
		{
			seconds_disp = "00";
		} else {
			seconds_disp = "0"+seconds;
		}
	} else {
		seconds_disp = seconds;
	}

	$(obj).find('#day').html(days_disp);
	$(obj).find('#hour').html(hours_disp);
	$(obj).find('#min').html(minutes_disp);
	$(obj).find('#sec').html(seconds_disp);

	//console.log('남은시간='+ days + '일'+hours+'시'+minutes+'분'+seconds+'초');

}
/* 자동분배 대기 타이머 } */

function rental_info_change(id, field, value) {

	// 동일한 데이터 변경시 또는 처리시간 지연등으로 이중 실행되는 것을 방지하기 위해
	if ($("#"+id+"_str").text() == value || $("#"+id+"_prevValue_str").text() == value || $("#"+id+"_str").text() == value.split('T')[0]) {
		timer_datatable_reload();
		tmrst();
		return false;
	}

	// 디바운싱 적용
	if (rental_info_change.debounceTimer) {
		clearTimeout(rental_info_change.debounceTimer);
	}


	rental_info_change.debounceTimer = setTimeout(function() {


		var noArr = id.split("_");
		var field_disp = '';
		var prevValue = '';
		var start_date = '';
		var expire_date = '';
		var diffDate = 0;
		var confirm_text = "";

		switch (field)
		{
			case 'start_date':
				if (value == "0001-01-01")
				{
					prevValue = $("#"+id+"_str").text();
					field_disp = "렌탈시작일";
					confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : 렌탈시작일 삭제" + "\n\n적용 하실려면 확인을 누르십시요!";
				} else {
					start_date =$("#start_date_"+noArr[(noArr.length - 1)]).val();
					expire_date = $("#exp_date_"+noArr[(noArr.length - 1)]+"_str").text();
					var date1 = new Date(start_date.substr(0, 4), start_date.substr(5, 2), start_date.substr(8, 2));
					var date2 = new Date(expire_date.substr(0, 4), expire_date.substr(5, 2), expire_date.substr(8, 2));
					diffDate = date1.getTime() - date2.getTime();
					if (diffDate > 0)
					{
						alert("렌탈시작일은 렌탈만료일과 같거나 이전의 날짜로 지정하셔야 합니다.");
						//return false;
					} else {
						prevValue = $("#"+id+"_str").text();
						field_disp = "렌탈시작일";
						value = value.replace('T',' ');
						prevValue = prevValue.replace('T',' ');
						confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + " 00:00:00\n변경후 : " + value + " 00:00:00" + "\n\n적용 하실려면 확인을 누르십시요!";
					}
				}
				break;
			case 'exp_date':
				if (value == "0001-01-01")
				{
					prevValue = $("#"+id+"_str").text();
					field_disp = "렌탈만료일";
					confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue + "\n변경후 : 렌탈만료일 삭제" + "\n\n적용 하실려면 확인을 누르십시요!";
				} else {
					start_date = $("#start_date_"+noArr[(noArr.length - 1)]+"_str").text();
					if (start_date == "렌탈시작일") {
						alert("렌탈시작일을 먼저 지정하신 후에 렌탈만료일을 지정해 주십시요.");
						//return false;
					} else {
						expire_date = $("#exp_date_"+noArr[(noArr.length - 1)]).val();
						var date1 = new Date(start_date.substr(0, 4), start_date.substr(5, 2), start_date.substr(8, 2));
						var date2 = new Date(expire_date.substr(0, 4), expire_date.substr(5, 2), expire_date.substr(8, 2));
						diffDate = date1.getTime() - date2.getTime();
						if (diffDate > 0)
						{
							alert("렌탈만료일은 렌탈시작일과 같거나 이후의 날짜로 지정하셔야 합니다.");
							//return false;
						} else {
							prevValue = $("#"+id+"_str").text();
							field_disp = "렌탈만료일";
							value = value.replace('T',' ');
							prevValue = prevValue.replace('T',' ');
							confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue + " 23:59:59" + "\n변경후 : " + value + " 23:59:59" + "\n\n적용 하실려면 확인을 누르십시요!";
						}
					}
				}
				break;
			case 'mgrname':
				prevValue = $("#"+id+"_str").text();
				field_disp = "PC관리넘버";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'rental_fee':
				prevValue = $("#"+id+"_str").text();
				field_disp = "렌탈금액";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'rental_setting_fee':
				prevValue = $("#"+id+"_str").text();
				field_disp = "세팅비";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'rental_fee_stat':
				prevValue = $("#"+id+"_str").text();
				field_disp = "렌탈료상태";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'rental_stat':
				prevValue = $("#"+id+"_prevValue_str").text();
				field_disp = "렌탈상태";
				value = $("#"+id+"_str").val(); // select
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'rental_stat_select_remark':
				prevValue = $("#"+id+"_str").text();
				field_disp = "렌탈상태-사유";
				field = "rental_stat_remark";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'jobin_datetime':
				if (value == "0001-01-01")
				{
					prevValue = $("#"+id+"_str").text();
					field_disp = "업무등록일시";
					value = value.replace('T',' ');
					prevValue = prevValue.replace('T',' ');
					confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : 업무등록일시 삭제" + "\n\n적용 하실려면 확인을 누르십시요!";
					break;
				} else {
					prevValue = $("#"+id+"_str").text();
					field_disp = "업무등록일시";
					value = value.replace('T',' ');
					prevValue = prevValue.replace('T',' ');
					confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
					break;
				}
			case 'jobend_datetime':
				if (value == "0001-01-01") {
					prevValue = $("#"+id+"_str").text();
					field_disp = "업무완료일시";
					value = value.replace('T',' ');
					prevValue = prevValue.replace('T',' ');
					confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : 업무완료일시 삭제" + value + "\n\n적용 하실려면 확인을 누르십시요!";
					break;
				} else {
					prevValue = $("#"+id+"_str").text();
					field_disp = "업무완료일시";
					value = value.replace('T',' ');
					prevValue = prevValue.replace('T',' ');
					confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
					break;
				}
			case 'jobend_deadline':
				if (value == "0001-01-01")
				{
					prevValue = $("#"+id+"_str").text();
					field_disp = "업무처리기한";
					value = value.replace('T',' ');
					prevValue = prevValue.replace('T',' ');
					confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : 업무처리기한 삭제" + "\n\n적용 하실려면 확인을 누르십시요!";
					break;
				} else {
					prevValue = $("#"+id+"_str").text();
					field_disp = "업무처리기한";
					value = value.replace('T',' ');
					prevValue = prevValue.replace('T',' ');
					confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
					break;
				}
			/*
			case 'jobstat':
				prevValue = $("#"+id+"_str").text();
				field_disp = "업무상태";
				break;
			*/
			case 'jobstat':
				prevValue = $("#"+id+"_prevValue_str").text();
				field_disp = "업무상태";
				value = $("#"+id+"_str").val(); // select
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'jobstat_select_remark':
				prevValue = $("#"+id+"_str").text();
				field_disp = "업무요청내용";
				field = "jobstat_remark";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'jobact':
				prevValue = $("#"+id+"_str").text();
				field_disp = "업무처리완료내용";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'member_id':
				prevValue = $("#"+id+"_str").text();
				field_disp = "회원ID";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'purpose':
				prevValue = $("#"+id+"_prevValue_str").text();
				field_disp = "추천용도";
				if (value == '@#직접입력@#')
				{
					purpose_edit(noArr[(noArr.length - 1)] , $("#"+id+"_str").text());
					return false;
				}
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'game_name':
				prevValue = $("#"+id+"_prevValue_str").text();
				field_disp = "게임";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'client_number':
				prevValue = $("#"+id+"_prevValue_str").text();
				field_disp = "클라이언트";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'gpu_ram':
				prevValue = $("#"+id+"_prevValue_str").text();
				field_disp = "GPU RAM";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'rental_admin_pc_memo':
				prevValue = $("#"+id+"_str").text();
				field_disp = "관리자메모";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'system_memo':
				prevValue = $("#"+id+"_str").text();
				field_disp = "시스템메모";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			case 'rsv_mb_id':
				prevValue = $("#"+id+"_str").text();
				field_disp = "예약구매ID";
				if (value == '@#직접입력@#')
				{
					rsv_mb_id_edit(noArr[(noArr.length - 1)] , $("#"+id+"_str").text());
					return false;
				}
				if (prevValue == "예약구매ID") prevValue="(미등록)";
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
			default:
				prevValue = $("#"+id+"_str").text();
				field_disp = field;
				confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상 : " + field_disp + "\n\n변경전 : " + prevValue  + "\n변경후 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
				break;
		}

		if (confirm_text!="" && confirm(confirm_text))
		{

			$(".divwait").css("display","flex");

			if (field == 'start_date' || field == 'exp_date')
			{
				if (value == "0001-01-01 00:00:00" || value == "0001-01-01")
				{
					value = "0001-01-01";
				}
			}

			if (field == "rsv_mb_id") {

				// 이미 가상계좌를 발급받은 상태에 있는 품번인지 체크 (가상계좌 발급받은 상태에 있는 품번은 예약자ID를 변경할 수 없음) {
				$.ajax({
					url: 'index_admin_list_rental_info_change_rsv_mb_id_precheck_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						s: $('#s').text(),
						id: id,
						field: field,
						value: value,
						action:'ajax'
					},
					success:function(data)
					{
						if (data != "o") {
							alert(data);
							return false;
						} else {
							$.ajax({
								url: 'index_admin_list_rental_info_change_ajax_v2.php',
								type: 'POST',
								dataType: 'html',
								data: {
									s: $('#s').text(),
									id: id,
									field: field,
									value: value,
									action:'ajax'
								},
								success:function(data)
								{
									if(data)
									{
										//console.log(data);
										if (data == "success")
										{
											if (field == 'rental_stat')
											{
												rental_stat_remark_edit(noArr[(noArr.length - 1)] , $("#"+id.replace(/rental_stat_select_/g,'rental_stat_select_remark_')+"_str").text());
											}
											timer_datatable_reload();
											tmrst();
										} else if (data == "fail_mgrname_already_exists") {
											alert("이미 존재하는 PC관리넘버는 재사용하실 수 없습니다");
											timer_datatable_reload();
											tmrst();
										} else if (data == "success_rsv_mb_id") {
											alert("예약구매ID ( " + value + " ) 등록 성공!");
											timer_datatable_reload();
											tmrst();
										} else if (data == "delete_rsv_mb_id") {
											alert("예약구매ID 삭제 성공!");
											timer_datatable_reload();
											tmrst();
										} else if (data == "fail_rsv_mb_id") {
											alert("예약구매ID ( " + value + " ) 등록 실패! (반복되는 경우 반드시 관리자에게 신고하여 주십시오)");
											timer_datatable_reload();
											tmrst();
										} else {
											alert(data);
											timer_datatable_reload();
											tmrst();
										}
									}
								},
								error : function(error) {
									alert("서버장애로 처리되지 않았습니다!\n반복되는 경우 관리자에게 신고하여 주십시오.");
									timer_datatable_reload();
									tmrst();
								}
							});

						}
					}
				});
				// 이미 가상계좌를 발급받은 상태에 있는 품번인지 체크 (가상계좌 발급받은 상태에 있는 품번은 예약자ID를 변경할 수 없음) }

			} else {

				$.ajax({
					url: 'index_admin_list_rental_info_change_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						s: $('#s').text(),
						id: id,
						field: field,
						value: value,
						action:'ajax'
					},
					success:function(data)
					{
						if(data)
						{
							//console.log(data);
							if (data == "success")
							{
								if (field == 'rental_stat')
								{
									rental_stat_remark_edit(noArr[(noArr.length - 1)] , $("#"+id.replace(/rental_stat_select_/g,'rental_stat_select_remark_')+"_str").text());
								}
								timer_datatable_reload();
								tmrst();
							} else if (data == "fail_mgrname_already_exists") {
								alert("이미 존재하는 PC관리넘버는 재사용하실 수 없습니다");
								timer_datatable_reload();
								tmrst();
							} else if (data == "success_rsv_mb_id") {
								alert("예약구매ID ( " + value + " ) 등록 성공!");
								timer_datatable_reload();
								tmrst();
							} else if (data == "delete_rsv_mb_id") {
								alert("예약구매ID 삭제 성공!");
								timer_datatable_reload();
								tmrst();
							} else if (data == "fail_rsv_mb_id") {
								alert("예약구매ID ( " + value + " ) 등록 실패! (반복되는 경우 반드시 관리자에게 신고하여 주십시오)");
								timer_datatable_reload();
								tmrst();
							} else {
								alert(data);
								timer_datatable_reload();
								tmrst();
							}
						}
					},
					error : function(error) {
						alert("서버장애로 처리되지 않았습니다!\n반복되는 경우 관리자에게 신고하여 주십시오.");
						timer_datatable_reload();
						tmrst();
					}
				});

			}

			switch (field)
			{
				case 'client_number':
					$.ajax({
						url: 'index_admin_client_number_update_ajax_v2.php',
						type: 'POST',
						dataType: 'html',
						data: {
							s: $('#s').text(),
							no: noArr[(noArr.length - 1)],
							list_data: value,
							action:'ajax'
						},
						success:function(data)
						{
							if(data)
							{
								if (data == "success")
								{
									//alert("적용 되었습니다.");
								}
								else if (data == "fail")
								{
									alert("서버 오류가 발생하였습니다.\n반복되는 경우 관리자에게 신고하여 주십시오.");
									return false;
								}
								else
								{
									alert("서버 오류가 발생하였습니다.\n반복되는 경우 관리자에게 신고하여 주십시오.");
									return false;
								}
								//console.log(data);
							}
						}
					});
					break;
				case 'gpu_ram':
					$.ajax({
						url: 'index_admin_gpu_ram_update_ajax_v2.php',
						type: 'POST',
						dataType: 'html',
						data: {
							s: $('#s').text(),
							no: noArr[(noArr.length - 1)],
							list_data: value,
							action:'ajax'
						},
						success:function(data)
						{
							if(data)
							{
								if (data == "success")
								{
									//alert("적용 되었습니다.");
								}
								else if (data == "fail")
								{
									alert("서버 오류가 발생하였습니다.\n반복되는 경우 관리자에게 신고하여 주십시오.");
									return false;
								}
								else
								{
									alert("서버 오류가 발생하였습니다.\n반복되는 경우 관리자에게 신고하여 주십시오.");
									return false;
								}
								//console.log(data);
							}
						}
					});
			}

		} else {
			$('.rantal_fee_type, .rental_setting_fee, .rental_fee, .member_id, .mgrname, .rental_admin_pc_memo, .system_memo, .start_date, .exp_date, .jobin_datetime, .jobend_datetime, .jobend_deadline, .rental_stat_select_remark, .jobstat_select_remark, .jobact').off('propertychange change keyup paste input', function(){ return false; });
		}

		timer_datatable_reload();
		tmrst();
	}, 500); // 0.5초 디바운싱 타임아웃

}

/* rental_info_change(id, field, value) 통합 불필요함
function rental_stat_change(id, field, value) {
	//console.log(id+" | "+ field + " | " + value);
	var noArr = id.split("_");
	var field_disp = '';
	var prevValue = $("#rental_stat_title_"+id).text();
	field_disp = "렌탈상태";

	var confirm_text = "\n[ 품번 " + noArr[(noArr.length - 1)] + " 정보변경 확인 ]\n\n적용대상항목 : " + field_disp + "\n변경전데이터 : " + prevValue  + "\n변경후데이터 : " + value + "\n\n적용 하실려면 확인을 누르십시요!";
	if (confirm(confirm_text))
	{
		$.ajax({
			url: 'index_admin_list_rental_stat_change_ajax_v2.php',
			type: 'POST',
			dataType: 'html',
			data: {
				s: $('#s').text(),
				id: id,
				field: field,
				value: value,
				action:'ajax'
			},
			success:function(data)
			{
				if(data)
				{
					console.log(data);
					if (data == "success")
					{
						showcnt = 0;
						tmrst();
					}
				}
			}
		});
	}
}
*/

function rcmd(cmd, no, txtstr) {
	var cmd_arr = cmd.split('_');
	//console.log(cmd_arr[1]);
	switch (cmd_arr[1])
	{
		case "reboot":
			confirm_text = "품번 " + no + "번 렌탈PC를 강제로 " + txtstr + " 시키겠습니까?\n\n(주의: 이 명령은 취소하실 수 없습니다.)";
			result_text = "재부팅 명령이 실행되었습니다.";
			if (confirm(confirm_text))
			{
				$.ajax({
					url: 'index_admin_list_rcmd_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						s: $('#s').text(),
						cmd: cmd,
						action:'ajax'
					},
					success:function(data)
					{
						if(data)
						{
							$.ajax({
								url: '../__smart_rental_getinfo/getpcinfo.php',
								type: 'POST',
								dataType: 'html',
								data: {
									s: $('#s').text(),
									cmd: cmd,
									action:'ajax'
								},
								success:function(data)
								{
									if(data)
									{
										alert(data);
									}
								}
							});
						}
					}
				});
			} else {
				//alert("취소완료!");
			}
			break;
		case "pcinfo":
			confirm_text = "품번 " + no + "번 렌탈PC의 실시간 " + txtstr + "를 확인하시겠습니까?\n(알림: 이 명령은 수초가 걸립니다.)";
			result_text = "명령을 실행 하였습니다.";
			if (1)
			{
				$.ajax({
					url: 'index_admin_list_rcmd_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						s: $('#s').text(),
						cmd: cmd,
						action:'ajax'
					},
					success:function(data)
					{
						if(data)
						{
							$.ajax({
								url: '../__smart_rental_getinfo/getpcinfo.php',
								type: 'POST',
								dataType: 'html',
								data: {
									s: $('#s').text(),
									cmd: cmd,
									action:'ajax'
								},
								success:function(data)
								{
									if(data)
									{
										alert(data);
									}
								}
							});
						}
					}
				});
			} else {
				//alert("취소완료!");
			}

			break;
		case "minimsg":
			$.ajax({
				url: '../__smart_rental_minimsg/index.php',
				type: 'POST',
				dataType: 'html',
				data: {
					s: $('#s').text(),
					cmd: cmd,
					no: no,
					action:'ajax'
				},
				success:function(data)
				{
					if(data)
					{
						window.open(data,'memo_admin_popup','left=400,top=50,width=450,height=600,scrollbars=1');
					}
				}
			});

			break;

		case "pwron":
		case "pwroff":
			confirm_text = "품번 " + no + "번 렌탈PC의 AC전원 상태를 정말로 " + txtstr + " 하시겠습니까?\n\n(언제든지 서버에 공급되는 AC전원을 On/Off 시킬 수 있습니다.)";
			result_text = "품번 " + no + "번의 AC전원을 " + txtstr + " 시켰습니다.";
			if (confirm(confirm_text))
			{
				$.ajax({
					url: 'index_admin_list_rcmd_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						s: $('#s').text(),
						cmd: cmd,
						action:'ajax'
					},
					success:function(data)
					{
						if(data == "success")
						{
							timer_datatable_reload();
							tmrst();
							alert(result_text);
						} else {
							timer_datatable_reload();
							tmrst();
							alert("오류가 발생하였습니다. 관리자에게 꼭 신고하여 주십시오.");
						}
					}
				});
			} else {
				//alert("취소완료!");
			}

			break;

	}
}

function rental_stat_remark_edit(num,prevValue) {
	var textStr = prompt("[품번:"+num+"] 렌탈상태 사유가 있는 경우 여기에 입력(또는 변경)하세요 (선택사항)", prevValue);
	if (textStr!=null && textStr!='') {
		textStr = textStr.trim();
		if (textStr!=null && textStr!='') {
			if (confirm("[품번:"+num+"]의 렌탈상태 사유를 \n'"+textStr+"'로 변경하실려면 확인 버튼을 누르십시오!"))
			{
				$(".divwait").css("display","flex");
				$.ajax({
					url: 'index_admin_rental_stat_edit_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						num: num,
						textStr: textStr,
						action:'ajax'
					},
					success:function(data)
					{
						if(data)
						{
							if (data == 'ok')
							{
								timer_datatable_reload();
								tmrst();
								//alert("렌탈상태 사유가 정상적으로 변경 되었습니다!");
							}
						}
					}
				});
			} else {
				timer_datatable_reload();
				//alert("렌탈상태 사유변경 절차가 취소 되었습니다!");
			}
		}
	}
}

function purpose_edit(num,prevValue) {
	//console.log("num="+num+" , prevValue="+prevValue);
	var textStr = prompt("[품번:"+num+"] 존재하지 않는 추천용도를 여기에 입력하세요.");
	if (textStr!=null && textStr!='') {
		textStr = textStr.trim();
		if (textStr!=null && textStr!='') {
			if (confirm("[품번:"+num+"] 추천용도 '"+textStr+"'을(를) 추가 등록하실려면 확인 버튼을 누르십시오!"))
			{
				$.ajax({
					url: 'index_admin_purpose_edit_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						num: num,
						textStr: textStr,
						action:'ajax'
					},
					success:function(data)
					{
						if(data)
						{
							if (data == 'ok')
							{
								timer_datatable_reload();
								tmrst();
								//alert("렌탈상태 사유가 정상적으로 변경 되었습니다!");
							}
						}
					}
				});
			} else {
				//alert("렌탈상태 사유변경 절차가 취소 되었습니다!");
			}
		}
	}
}

function game_name_edit(num,prevValue) {
	var textStr = prompt("[품번:"+num+"] 존재하지 않는 게임을 여기에 입력하세요.");
	if (textStr!=null && textStr!='') {
		textStr = textStr.trim();
		if (textStr!=null && textStr!='') {
			if (confirm("[품번:"+num+"] '"+textStr+"' 게임을 추가 등록하실려면 확인 버튼을 누르십시오!"))
			{
				$.ajax({
					url: 'index_admin_game_name_edit_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						num: num,
						textStr: textStr,
						action:'ajax'
					},
					success:function(data)
					{
						if(data)
						{
							if (data == 'ok')
							{
								timer_datatable_reload();
								tmrst();
								//alert("렌탈상태 사유가 정상적으로 변경 되었습니다!");
							}
						}
					}
				});
			} else {
				//alert("렌탈상태 사유변경 절차가 취소 되었습니다!");
			}
		}
	}
}


function closeform001() {
	$('#divform001').fadeOut('slow');
	$("#divform001subiframe").attr("src", "./form_pcinfo_blank_v2.php");
	document.documentElement.style.overflowX = "auto";
	document.documentElement.style.overflowY = "auto";
	//location.reload();
}

function closeform001_success() {
	$('#divform001').fadeOut('slow');
	$("#divform001subiframe").attr("src", "./form_pcinfo_blank_v2.php");
	document.documentElement.style.overflowX = "auto";
	document.documentElement.style.overflowY = "auto";
	//location.reload();
}

function open_form001(s='0',id='0',no='0',title_no='0')
{
	//8d7c1bcc733ff0ae1db4f67fcb078c271285ec | rcmd_pcinfo_1006 | 1006

	var winWidth = $(window).width();
	var winHeight = $(window).height();

	$('#divform001subiframe').attr("style","display:flex; justify-content:center; align-items:center; width:90vw; max-width:1090px; height:99vh; z-index:999999;");

	document.documentElement.style.overflowX = "hidden";
	document.documentElement.style.overflowY = "hidden";
	$('#divform001').attr("style","display:flex; justify-content:center; align-items:center; width:100%; height:100%; position:fixed; left:0px; top:0px; background:rgba(0,0,0,0.8); z-index:999999; overflow-x:hidden; overflow-y:auto;");
	$("#divform001subiframe").attr("src", "./form_pcinfo_v2.php?s="+s+"&id="+id+"&no="+no+"&title_no="+title_no+"&wh="+winHeight);
}

function open_form002(s='0',id='0',no='0',title_no='0')
{
	var winWidth = $(window).width();
	var winHeight = $(window).height();

	$('#divform001subiframe').attr("style","display:flex; justify-content:center; align-items:center; width:90vw; max-width:1090px; height:99vh; z-index:999999;");

	document.documentElement.style.overflowX = "hidden";
	document.documentElement.style.overflowY = "hidden";
	$('#divform001').attr("style","display:flex; justify-content:center; align-items:center; width:100%; height:100%; position:fixed; left:0px; top:0px; background:rgba(0,0,0,0.8); z-index:999999; overflow-x:hidden; overflow-y:auto;");
	$("#divform001subiframe").attr("src", "./form_purpose_v2.php?s="+s+"&id="+id+"&no="+no+"&title_no="+title_no+"&wh="+winHeight);
}


function open_form003(s='0',id='0',no='0',title_no='0')
{
	var winWidth = $(window).width();
	var winHeight = $(window).height();

	$('#divform001subiframe').attr("style","display:flex; justify-content:center; align-items:center; width:90vw; max-width:1090px; height:99vh; z-index:999999;");

	document.documentElement.style.overflowX = "hidden";
	document.documentElement.style.overflowY = "hidden";
	$('#divform001').attr("style","display:flex; justify-content:center; align-items:center; width:100%; height:100%; position:fixed; left:0px; top:0px; background:rgba(0,0,0,0.8); z-index:999999; overflow-x:hidden; overflow-y:auto;");
	$("#divform001subiframe").attr("src", "./form_game_name_v2.php?s="+s+"&id="+id+"&no="+no+"&title_no="+title_no+"&wh="+winHeight);
}

function open_form005(s='0',no='0',stat='0',wr_id='0',action='new')
{
	var winWidth = $(window).width();
	var winHeight = $(window).height();

	$('#divform001subiframe').attr("style","display:flex; justify-content:center; align-items:center; width:90vw; max-width:1400px; height:99vh; z-index:999999;");

	document.documentElement.style.overflowX = "hidden";
	document.documentElement.style.overflowY = "hidden";
	$('#divform001').attr("style","display:flex; justify-content:center; align-items:center; width:100%; height:100%; position:fixed; left:0px; top:0px; background:rgba(0,0,0,0.8); z-index:999999; overflow-x:hidden; overflow-y:auto;");
	if (stat == "0") {
		$("#divform001subiframe").attr("src", "/bbs/write.php?bo_table=auction&w=&pcnum="+no+"&s="+s+"&stat="+stat+"&wh="+winHeight);
	} else if (stat == "1") {
		if (action == "view") {
			$("#divform001subiframe").attr("src", "/bbs/board.php?bo_table=auction&wr_id="+wr_id+"&pcnum="+no+"&stat="+stat+"&wh="+winHeight);
		} else {
			$("#divform001subiframe").attr("src", "/bbs/write.php?bo_table=auction&w=u&wr_id="+wr_id+"&pcnum="+no+"&stat="+stat+"&wh="+winHeight);
		}
	}
}

function open_form100(s='0',id='0',no='0',title_no='0')
{
	var winWidth = $(window).width();
	var winHeight = $(window).height();

	$('#divform001subiframe').attr("style","display:flex; justify-content:center; align-items:center; width:90vw; max-width:1090px; height:99vh; z-index:999999;");

	document.documentElement.style.overflowX = "hidden";
	document.documentElement.style.overflowY = "hidden";
	$('#divform001').attr("style","display:flex; justify-content:center; align-items:center; width:100%; height:100%; position:fixed; left:0px; top:0px; background:rgba(0,0,0,0.8); z-index:999999; overflow-x:hidden; overflow-y:auto;");
	$("#divform001subiframe").attr("src", "./form_entire_v2.php?s="+s+"&id="+id+"&no="+no+"&title_no="+title_no+"&wh="+winHeight);
}

function open_form200(s='0',id='0',uid='0',no='0',title_no='0')
{
	var winWidth = $(window).width();
	var winHeight = $(window).height();

	$('#divform001subiframe').attr("style","display:flex; justify-content:center; align-items:center; width:90vw; max-width:1090px; height:99vh; z-index:999999;");

	document.documentElement.style.overflowX = "hidden";
	document.documentElement.style.overflowY = "hidden";
	$('#divform001').attr("style","display:flex; justify-content:center; align-items:center; width:100%; height:100%; position:fixed; left:0px; top:0px; background:rgba(0,0,0,0.8); z-index:999999; overflow-x:hidden; overflow-y:auto;");
	$("#divform001subiframe").attr("src", "./form_remote_pc_manager.php?s="+s+"&id="+id+"&uid="+uid+"&no="+no+"&title_no="+title_no+"&wh="+winHeight);
}

function market_toggle(s,no,stat) {
	$(".divwait").css("display","flex");
	$.ajax({
		url: 'index_admin_market_toggle_update_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			s: $('#s').text(),
			no: no,
			stat: stat,
			action:'ajax'
		},
		success:function(data)
		{
			if(data)
			{
				if (data == "success0")
				{
					timer_datatable_reload();
					alert("마켓 비노출상태(판매중지)로 변경 되었습니다.");
				}
				else if (data == "success1")
				{
					timer_datatable_reload();
					alert("마켓 노출상태(판매중)로 변경 되었습니다.");
				}
				else if (data == "fail")
				{
					alert("서버 오류가 발생하였습니다.\n반복되는 경우 관리자에게 신고하여 주십시오.");
				}
				else if (data == "cancelnum")
				{
					alert("취소/반품/품절 처리된 상품은 마켓에 노출시킬수 없습니다.\n품번변경 작업 또는 신규등록후에 다시 시도해 주십시오.");
				}
				else
				{
					alert(data);
				}
				console.log(data);
			}
			$(".divwait").css("display","none");
		}
	});
}

function reseller_toggle(s,no,stat) {
	$(".divwait").css("display","flex");
	$.ajax({
		url: 'index_admin_reseller_toggle_update_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			s: $('#s').text(),
			no: no,
			stat: stat,
			action:'ajax'
		},
		success:function(data)
		{
			if(data)
			{
				if (data == "success0")
				{
					timer_datatable_reload();
					alert("리셀러 비노출상태(위탁판매 허용안함)로 변경 되었습니다.");
				}
				else if (data == "success1")
				{
					timer_datatable_reload();
					alert("리셀러 노출상태(위탁판매 허용함)로 변경 되었습니다.");
				}
				else if (data == "fail")
				{
					alert("서버 오류가 발생하였습니다.\n반복되는 경우 관리자에게 신고하여 주십시오.");
				}
				else
				{
					alert(data);
				}
				console.log(data);
			}
			$(".divwait").css("display","none");
		}
	});
}

function auction_toggle(s,no,stat,wr_id=0,action="new") {
	$.ajax({
		type: "POST",
		url: "/bbs/login_check_for_id_linkage.php", // 로그인 처리를 하는 PHP 파일 경로
		data: {
			s: s,
		},
		success: function(response) {
			var data = $.trim(response);
			if (data === "success") {
				open_form005(s,no,stat,wr_id,action);
			} else {
				alert(data);
				return false;
			}
		},
		error: function(xhr, status, error) {
			// 로그인 실패 시 처리
			alert("로그인에 문제가 발생하였습니다 : " + xhr.responseText);
		}
	});
}

function direct_cancel_toggle(s,no,stat,mgrname) {
	//console.log(s + " " + no + " " + stat);
	if (confirm("강제중지처리대상 품번: "+no+"\n"+"강제중지처리대상 관리넘버: "+mgrname+"\n"+"\n위의 렌탈PC를 강제중지처리 하실려면 확인 버튼을 누르십시오!\n※본 명령이 실행되면 렌탈만료일은 금일23시59분59초로 변경됩니다.")) {
		$(".divwait").css("display","flex");
		$.ajax({
			url: 'index_admin_direct_cancel_toggle_update_ajax_v2.php',
			type: 'POST',
			dataType: 'html',
			data: {
				s: $('#s').text(),
				no: no,
				stat: stat,
				action:'ajax'
			},
			success:function(data)
			{
				if(data)
				{
					if (data == "success0")
					{
						timer_datatable_reload();
						alert("강제중지 처리를 완료 하였습니다.");
					}
					else if (data == "success1")
					{
						timer_datatable_reload();
						alert("강제중지 처리를 취소 하였습니다.");
					}
					else if (data == "fail")
					{
						alert("서버 오류가 발생하였습니다.\n반복되는 경우 관리자에게 신고하여 주십시오.");
					}
					else
					{
						alert("서버 오류가 발생하였습니다.\n반복되는 경우 관리자에게 신고하여 주십시오.");
					}
					//console.log(data);
				}
			}
		});
	}

}

function checkNumber(event) {
  if((event.key >= 0 && event.key <= 9) || (window.event.keyCode==13)) {
    return true;
  }

  return false;
}

function idview(pgmname,msg,no,id,pwd) {
	copyToClipboard(id);
	var textStr = prompt(msg + "\r\n\r\n" + pgmname + " ID 복사 완료!\r\n★ 변경하실려면 새로운 ID를 입력하신 후 확인을 누르십시오.", id);

	if (id!=textStr.trim()) {
		if (textStr!=null && textStr!='' && confirm("[품번:"+no+"] " + pgmname + " ID를\r\n\r\n'" + id + "' 에서 '" + textStr + "' 로\r\n\r\n변경하시겠습니까?"))
		{
			id = id.trim();
			textStr = textStr.trim();
			if (textStr!=null && textStr!='') {
				$(".divwait").css("display","flex");
				$.ajax({
					url: 'index_admin_list_idview_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						s: $('#s').text(),
						no: no,
						id: textStr,
						pgmname: pgmname,
						action:'ajax'
					},
					success:function(data)
					{
						if(data)
						{
							if (data == 'ok')
							{
								alert("변경 되었습니다!");
								setTimeout(timer_datatable_reload, 1000);
								//location.reload();
							}
						} else {
							alert("변경실패!");
						}
					}
				});
			}
		}
	}
}

function pwdview(pgmname,msg,no,id,pwd) {
	copyToClipboard(pwd);
    var textStr = prompt(msg + "\r\n\r\n" + pgmname + " 암호 복사 완료!\r\n★ 변경하실려면 새로운 암호를 입력하신 후 확인을 누르십시오.", pwd);

	if (pwd!=textStr.trim()) {
		if (textStr!=null && textStr!='' && confirm("[품번:"+no+"] " + pgmname + " 암호를\r\n\r\n'" + pwd + "' 에서 '" + textStr + "' 로\r\n\r\n변경하시겠습니까?"))
		{
			pwd = pwd.trim();
			textStr = textStr.trim();
			if (textStr!=null && textStr!='') {
				$(".divwait").css("display","flex");
				$.ajax({
					url: 'index_admin_list_pwdview_ajax_v2.php',
					type: 'POST',
					dataType: 'html',
					data: {
						s: $('#s').text(),
						no: no,
						pwd: textStr,
						pgmname: pgmname,
						action:'ajax'
					},
					success:function(data)
					{
						if(data)
						{
							if (data == 'ok')
							{
								alert("변경 되었습니다!");
								setTimeout(timer_datatable_reload, 1000);
								//location.reload();
							}
						} else {
							alert("변경실패!");
						}
					}
				});
			}
		}
	}
}

function SvrMove(stat,no,storeid) {
	switch (stat) {
		case 'exec':
			var textStr = prompt("*** 서버교체/변경 기능 안내 ***\r\n\r\n선택하신 서버 품번은 ( "+no+" ) 번 입니다.\r\n선택하신 서버로 교체/변경 업무를 시작합니다.\r\n고객이 기존에 사용하던 원래 품번을 입력 하십시오.\r\n");
			if (textStr!=null && textStr!='') {
				no = no.trim();
				textStr = textStr.trim();
				if (no == textStr) {
					alert('동일한 품번으로의 서버교체/변경 절차는 불필요합니다.');
					return false;
				} else if (textStr!=null && textStr!='') {
					// 대상 서버 precheck
					$.ajax({
						url: 'index_admin_smart_rental_comspec_migration_precheck_ajax_v2.php',
						type: 'POST',
						dataType: 'html',
						data: {
							s: $('#s').text(),
							from_no: no,
							from_storeid: storeid,
							to_no : textStr,
							stat: stat,
							force: '0',
							action:'ajax'
						},
						success:function(data)
						{
							if(data!='ok')
							{
								var data_arr = data.split("|");
								if (data_arr[0] == "Q1") {
									if (confirm(data_arr[1])) {
										$(".divwait").css("display","flex");
										$.ajax({
											url: 'index_admin_smart_rental_comspec_migration_ajax_v2.php',
											type: 'POST',
											dataType: 'html',
											data: {
												s: $('#s').text(),
												from_no: no,
												from_storeid: storeid,
												to_no : textStr,
												stat: stat,
												force: '1',
												action:'ajax'
											},
											success:function(data)
											{
												if(data)
												{
													if (data == 'ok')
													{
														alert("서버교체/변경 작업을 완료 하였습니다.\r\n상세조회 품번 ( " + textStr + " ) 의 결과 페이지가 표시됩니다.");
														location.href="index_admin_list_v2bdel.php?s="+$('#s').text()+"&k="+$('#k').text()+"&g="+$('#g').text()+"&d1="+textStr+"&d2=&type=numS";
														return false;
													} else {
														alert('서버교체/변경 관련업무가 처리되지 않았습니다. 관리자에게 반드시 신고하여 주십시오! (E-'+data+'))');
														$(".divwait").css("display","none");
														return false;
													}
												}
											}
										});
									} else {
										timer_datatable_reload();
										tmrst();
										alert("서버교체/변경 절차가 취소 되었습니다!");
										$(".divwait").css("display","none");
									}
								} else {
									alert(data);
								}
								return false;
							} else if (data=='ok') {
								if (confirm("정말로 서버교체/변경 하시겠습니까?\r\n\r\n[유의사항]\r\n1) 변경후 삭제되는 품번은 (" + no + ") 입니다.\r\n2) 변경후 유지되는 품번은 현재 고객이 이용중인 (" + textStr + ") 입니다."))
								{
									$(".divwait").css("display","flex");
									$.ajax({
										url: 'index_admin_smart_rental_comspec_migration_ajax_v2.php',
										type: 'POST',
										dataType: 'html',
										data: {
											s: $('#s').text(),
											from_no: no,
											from_storeid: storeid,
											to_no : textStr,
											stat: stat,
											action:'ajax'
										},
										success:function(data)
										{
											if(data)
											{
												if (data == 'ok')
												{
													alert("서버교체/변경 작업을 완료 하였습니다.\r\n상세조회 품번 ( " + textStr + " ) 의 결과 페이지가 표시됩니다.");
													location.href="index_admin_list_v2bdel.php?s="+$('#s').text()+"&k="+$('#k').text()+"&g="+$('#g').text()+"&d1="+textStr+"&d2=&type=numS";
													return false;
												} else {
													alert('서버교체/변경 관련업무가 처리되지 않았습니다. 관리자에게 반드시 신고하여 주십시오! (E-'+data+'))');
													$(".divwait").css("display","none");
													return false;
												}
											}
										}
									});
								} else {
									timer_datatable_reload();
									tmrst();
									alert("서버교체/변경 절차가 취소 되었습니다!");
									$(".divwait").css("display","none");
									return false;
								}
							} else {
								alert("오류가 발생하였습니다.\n관리자에게 신고하여 주십시오! (E-SM09)");
								$(".divwait").css("display","none");
								return false;
							}
						}
					});
				}
			}
			break;
		case 'cancel':
			var textStr = prompt("품번 ( "+ no + " ) 을 서버교체/변경 하기전 상태로 복원 하실려면\r\n입력창에 '복원'를 입력하신 후에 확인 버튼을 누르십시오.\r\n");
			if (textStr=="복원") {
				no = no.trim();
				textStr = textStr.trim();
				if (confirm("정말로 서버교체/변경 하기전 상태로 복원 하시겠습니까?\r\n\r\n선택하신 품번 : " + no))
				{
					$(".divwait").css("display","flex");
					$.ajax({
						url: 'index_admin_smart_rental_comspec_migration_ajax_v2.php',
						type: 'POST',
						dataType: 'html',
						data: {
							s: $('#s').text(),
							to_no: no,
							from_storeid: storeid,
							stat: stat,
							action:'ajax'
						},
						success:function(data)
						{
							if(data)
							{
								if (data.substr(0, 2) == 'ok')
								{
									alert("품번: " + no + " 을 품번: " + data.substr(3, 99) + " 로 분리복원 하였습니다.\r\n(서버교체/변경 직전 상태로 복원됨)");
									timer_datatable_reload();
									tmrst();
								} else {
									timer_datatable_reload();
									tmrst();
									alert('서버교체/변경 복원업무가 처리되지 않았습니다.\r\n관리자에게 신고하여 주십시오 (E-'+data+'))');
									$(".divwait").css("display","none");
									return false;
								}
							}
						}
					});
				}
			} else {
				timer_datatable_reload();
				tmrst();
				alert("'복원'문구를 정확하게 입력해 주십시오.");
				$(".divwait").css("display","none");
			}
			break;

		default :
			timer_datatable_reload();
			tmrst();
			alert('오류가 발생하였습니다. 오류코드: E8700'+action+no);
			$(".divwait").css("display","none");
	}

}

function copyToClipboard(textToCopy) {
    // navigator clipboard api needs a secure context (https)
    if (navigator.clipboard && window.isSecureContext) {
        // navigator clipboard api method'
        return navigator.clipboard.writeText(textToCopy);
    } else {
        // text area method
        let textArea = document.createElement("textarea");
        textArea.value = textToCopy;
        // make the textarea out of viewport
        textArea.style.position = "fixed";
        textArea.style.left = "-999999px";
        textArea.style.top = "-999999px";
        document.body.appendChild(textArea);
        textArea.focus();
        textArea.select();
        return new Promise((res, rej) => {
            // here the magic happens
            document.execCommand('copy') ? res() : rej();
            textArea.remove();
        });
    }
}

function history_refresh() {
	//console.log("history_refresh...");
	$.ajax({
		url: 'index_admin_list_history_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			storeid: $("#dstoreid").text().trim(),
			s: $('#s').text(),
			g: $('#g').text(),
			action:'ajax'
		},
		success:function(data)
		{
			if(data)
			{
				$("#history").html(data);
			}
		}
	});
}

function dup_mgrname_check_refresh() {
	$.ajax({
		url: 'index_admin_list_dup_mgrname_check_item6_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			storeid: $("#dstoreid").text().trim(),
			s: $('#s').text(),
			g: $('#g').text(),
			action:'ajax'
		},
		success:function(data)
		{
			//console.log("dup_mgrname_check_refresh="+data);
			if(data)
			{
				$("#dup_mgrname_msg_item6").html(data);
			}
		}
	});
	$.ajax({
		url: 'index_admin_list_dup_mgrname_check_item8_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			storeid: $("#dstoreid").text().trim(),
			s: $('#s').text(),
			g: $('#g').text(),
			action:'ajax'
		},
		success:function(data)
		{
			//console.log("dup_mgrname_check_refresh="+data);
			if(data)
			{
				$("#dup_mgrname_msg_item8").html(data);
			}
		}
	});
	$.ajax({
		url: 'index_admin_list_dup_mgrname_check_item9_ajax_v2.php',
		type: 'POST',
		dataType: 'html',
		data: {
			storeid: $("#dstoreid").text().trim(),
			s: $('#s').text(),
			g: $('#g').text(),
			action:'ajax'
		},
		success:function(data)
		{
			//console.log("dup_mgrname_check_refresh="+data);
			if(data)
			{
				$("#dup_mgrname_msg_item9").html(data);
			}
		}
	});
}

$(function(){
	$('#slt_opt').change("propertychange change keyup paste input", function() {
		var selected_name = $("#slt_opt option:selected").text();
		var selected_val = $(this).val();
		switch (selected_val) {
			case 'date':
				$("#opt_date_st").attr("type", "date");
				$("#opt_date_st").attr("placeholder", "");
				$("#opt_date_st").val($("#d1").text());
				$("#opt_date_stop").attr("type", "date");
				$("#opt_date_stop").val(getTimeStamp());
				$("#opt_type").text(selected_val);
				$("#btn_opt_search4top").html(" <span class='material-icons' style='font-size:1.3rem;'> manage_search </span> ");
				$("#opt_date_st").css("width", "90px");
				$("#opt_date_stop").css("width", "90px");
				$("#opt_tilde_sign").css("display", "");
				break;
			case 'trfS':
				$("#opt_date_st").attr("type", "number");
				$("#opt_date_st").attr("placeholder", "최소 Mbps");
				if (parseFloat($("#d1").text()) >= 10000.0) {
					$("#opt_date_st").val("10.0");
				} else {
					$("#opt_date_st").val($("#d1").text());
				}
				$("#opt_date_stop").attr("type", "number");
				$("#opt_date_stop").attr("placeholder", "최대 Mbps");
				if (parseFloat($("#d2").text()) >= 10000.0) {
					$("#opt_date_stop").val("500.0");
				} else {
					$("#opt_date_stop").val($("#d2").text());
				}
				$("#opt_type").text(selected_val);
				$("#btn_opt_search4top").html(" <span class='material-icons' style='font-size:1.3rem;'> manage_search </span> ");
				$("#opt_date_st").css("width", "100px");
				$("#opt_date_stop").css("width", "100px");
				$("#opt_tilde_sign").css("display", "");
				break;
			case 'numS':
			case 'mgrnumS':
			case 'ipS':
			case 'cpuS':
			case 'gpuS':
			case 'odnumS':
			case 'mbidS':
			case 'mbnameS':
			case 'mbnickS':
			case 'anydeskidS':
			case 'teamvieweridS':
				$("#opt_date_st").attr("type", "text");
				$("#opt_date_st").attr("placeholder", "여러개 입력시 콤마(,)로 구분 (예: A,B,C)");
				$("#opt_date_st").val("");
				$("#opt_date_stop").attr("type", "hidden");
				$("#opt_date_stop").val("");
				$("#opt_type").text(selected_val);
				$("#btn_opt_search4top").html(" <span class='material-icons' style='font-size:1.3rem;'> manage_search </span> ");
				$("#opt_date_st").css("width", "300px");
				$("#opt_date_stop").css("width", "300px");
				$("#opt_tilde_sign").css("display", "none");
				break;
			case 'oddateS':

			default:
				alert(selected_name + "은(는) 현재 개발중인 검색항목입니다.\n빠른 시일내에 개발완료토록 하겠습니다.");
				return false;
			}

		//chkbox_manual_distribution(selected_storeid,selected_storename);
	});

	$('#slt_opt4top').change("propertychange change keyup paste input", function() {
		var selected_name = $("#slt_opt4top option:selected").text();
		var selected_val = $(this).val();
		switch (selected_val) {
			case 'date':
				$("#opt_date_st4top").attr("type", "date");
				$("#opt_date_st4top").attr("placeholder", "");
				$("#opt_date_st4top").val("");
				$("#opt_date_st4top").val($("#d1").text());
				$("#opt_date_stop4top").attr("type", "date");
				$("#opt_date_stop4top").val(getTimeStamp());
				$("#opt_type4top").text(selected_val);
				$("#btn_opt_search4top").html(" <span class='material-icons' style='font-size:0.9rem;'> search </span> ");
				$("#opt_date_st4top").css("width", "90px");
				$("#opt_date_st4top").css("padding", "4px");
				$("#opt_date_stop4top").css("width", "90px");
				$("#opt_date_stop4top").css("padding", "4px");
				$("#opt_tilde_sign4top").css("display", "");
				break;
			case 'trfS':
				$("#opt_date_st4top").attr("type", "number");
				$("#opt_date_st4top").attr("placeholder", "최소 Mbps");
				if (parseFloat($("#d1").text()) >= 10000.0) {
					$("#opt_date_st4top").val("10.0");
				} else {
					$("#opt_date_st4top").val($("#d1").text());
				}
				$("#opt_date_stop4top").attr("type", "number");
				$("#opt_date_stop4top").attr("placeholder", "최대 Mbps");
				if (parseFloat($("#d2").text()) >= 10000.0) {
					$("#opt_date_stop4top").val("500.0");
				} else {
					$("#opt_date_stop4top").val($("#d2").text());
				}
				$("#opt_type").text(selected_val);
				$("#btn_opt_search4top").html(" <span class='material-icons' style='font-size:0.9rem;'> search </span> ");
				$("#opt_date_st4top").css("width", "50px");
				$("#opt_date_st4top").css("padding", "4px");
				$("#opt_date_stop4top").css("width", "50px");
				$("#opt_date_stop4top").css("padding", "4px");
				$("#opt_tilde_sign4top").css("display", "");
				break;
			case 'numS':
			case 'mgrnumS':
			case 'ipS':
			case 'cpuS':
			case 'gpuS':
			case 'odnumS':
			case 'mbidS':
			case 'mbnameS':
			case 'mbnickS':
			case 'anydeskidS':
			case 'teamvieweridS':
				$("#opt_date_st4top").attr("type", "text");
				$("#opt_date_st4top").attr("placeholder", "콤마(,)로 구분입력 (예: A,B,C)");
				if ($("#opt_date_st4top").val().match(/^\d{4}-\d{2}-\d{2}$/)) {
					$("#opt_date_st4top").val("");
				}
				$("#opt_date_stop4top").attr("type", "hidden");
				$("#opt_date_stop4top").val("");
				$("#opt_type").text(selected_val);
				$("#btn_opt_search4top").html(" <span class='material-icons' style='font-size:0.9rem;'> search </span> ");
				$("#opt_date_st4top").css("width", "150px");
				$("#opt_date_st4top").css("padding", "5px");
				$("#opt_date_stop4top").css("width", "150px");
				$("#opt_date_stop4top").css("padding", "5px");
				$("#opt_tilde_sign4top").css("display", "none");
				break;
			case 'oddateS':

			default:
				alert(selected_name + "은(는) 현재 개발중인 검색항목입니다.\n빠른 시일내에 개발완료토록 하겠습니다.");
				return false;
			}

		//chkbox_manual_distribution(selected_storeid,selected_storename);
	});
});

function reload_option_page() {
	var selected_name = $("#slt_opt option:selected").text();
	var selected_val = $("#slt_opt option:selected").val();
	var d1 = $("#opt_date_st").val();
	var d2 = $("#opt_date_stop").val();

	console.log("#"+selected_val+"#"+d1+"#"+d2);
	switch (selected_val) {
		case 'date':
			if (d1=="") {
				d1 = d2;
			} else if (d2=="") {
				d2 = d1;
			} else {
				if (d2 < d1) {
					alert("정렬순서상 오래된 날짜를 조회 시작일로 변경한 후 조회합니다.");
					var d_tmp = d1;
					d1 = d2;
					d2 = d_tmp;
				}
			}
			if (d1=='') {
				alert('조회시작일을 입력하세요');
				$("#opt_date_st").focus();
			} else if (d2=='') {
				alert('조회종료일을 입력하세요');
				$("#opt_date_stop").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'numS':
			if (d1=='') {
				alert('조회할 품번들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				console.log(link);
				location.href=link;
			}
			break;

		case 'mgrnumS':
			if (d1=='') {
				alert('조회할 관리넘버들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'odnumS':
			if (d1=='') {
				alert('조회할 주문번호들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'oddateS':
			if (d1=='') {
				alert('조회할 결제일자들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'mbidS':
			if (d1=='') {
				alert('조회할 회원ID들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'mbnameS':
			if (d1=='') {
				alert('조회할 회원명들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'mbnickS':
			if (d1=='') {
				alert('조회할 닉네임들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'ipS':
			if (d1=='') {
				alert('조회할 IP주소들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'trfS':
			if (d1=="") {
				d1 = d2;
			} else if (d2=="") {
				d2 = d1;
			} else {
				if (parseFloat(d2) < parseFloat(d1)) {
					alert("정렬순서상 작은 수치를 시작수치로 변경한 후 조회합니다.");
					var d_tmp = d1;
					d1 = d2;
					d2 = d_tmp;
				}
			}

			if (d1=='') {
				alert('조회할 트래픽 최소 Mbps를 입력하세요.');
				$("#opt_date_st").focus();
			} else if (d2=='') {
				alert('조회할 트래픽 최대 Mbps를 입력하세요.');
				$("#opt_date_stop").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'cpuS':
			if (d1=='') {
				alert('조회할 CPU들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'gpuS':
			if (d1=='') {
				alert('조회할 GPU들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'anydeskidS':
			if (d1=='') {
				alert('조회할 애니데스크ID를 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'teamvieweridS':
			if (d1=='') {
				alert('조회할 팀뷰어ID를 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		default:
			alert("현재 개발중인 검색항목입니다.\n빠른 시일내에 개발완료토록 하겠습니다.");

	}
}

function reload_option_page4top() {
	var selected_name = $("#slt_opt4top option:selected").text();
	var selected_val = $("#slt_opt4top option:selected").val();
	var d1 = $("#opt_date_st4top").val();
	var d2 = $("#opt_date_stop4top").val();

	console.log("#"+selected_val+"#"+d1+"#"+d2);
	switch (selected_val) {
		case '':
		case 'none':
			alert('검색항목선택 → 검색어 입력 → 검색버튼클릭 순서로 진행해 주십시오.');
			$("#slt_opt4top").focus();
			break;

		case 'date':
			if (d1=="") {
				d1 = d2;
			} else if (d2=="") {
				d2 = d1;
			} else {
				if (d2 < d1) {
					alert("정렬순서상 오래된 날짜를 조회 시작일로 변경한 후 조회합니다.");
					var d_tmp = d1;
					d1 = d2;
					d2 = d_tmp;
				}
			}
			if (d1=='') {
				alert('조회시작일을 입력하세요');
				$("#opt_date_st4top").focus();
			} else if (d2=='') {
				alert('조회종료일을 입력하세요');
				$("#opt_date_stop4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'numS':
			if (d1=='') {
				alert('조회할 품번들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				console.log(link);
				location.href=link;
			}
			break;

		case 'mgrnumS':
			if (d1=='') {
				alert('조회할 관리넘버들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'odnumS':
			if (d1=='') {
				alert('조회할 주문번호들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'oddateS':
			if (d1=='') {
				alert('조회할 결제일자들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'mbidS':
			if (d1=='') {
				alert('조회할 회원ID들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'mbnameS':
			if (d1=='') {
				alert('조회할 회원명들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'mbnickS':
			if (d1=='') {
				alert('조회할 닉네임들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'ipS':
			if (d1=='') {
				alert('조회할 IP주소들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'trfS':
			if (d1=="") {
				d1 = d2;
			} else if (d2=="") {
				d2 = d1;
			} else {
				if (parseFloat(d2) < parseFloat(d1)) {
					alert("정렬순서상 작은 수치를 시작수치로 변경한 후 조회합니다.");
					var d_tmp = d1;
					d1 = d2;
					d2 = d_tmp;
				}
			}

			if (d1=='') {
				alert('조회할 트래픽 최소 Mbps를 입력하세요.');
				$("#opt_date_st4top").focus();
			} else if (d2=='') {
				alert('조회할 트래픽 최대 Mbps를 입력하세요.');
				$("#opt_date_stop4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'cpuS':
			if (d1=='') {
				alert('조회할 CPU들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'gpuS':
			if (d1=='') {
				alert('조회할 GPU들을 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'anydeskidS':
			if (d1=='') {
				alert('조회할 애니데스크ID를 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		case 'teamvieweridS':
			if (d1=='') {
				alert('조회할 팀뷰어ID를 입력하세요.\n콤마(,)로 구분하여 여러개 입력가능 합니다.');
				$("#opt_date_st4top").focus();
			} else {
				var link = "index_admin_list_v2b.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+d1+"&d2="+d2+"&type="+selected_val;
				//console.log(link);
				location.href=link;
			}
			break;

		default:
			alert("현재 개발중인 검색항목입니다.\n빠른 시일내에 개발완료토록 하겠습니다.");

	}
}

$(document).keyup(function(event) {
    if (event.which === 13 && $(':focus').attr('id') == 'opt_date_st4top' ) { // 엔터키와 input focus id 일치하는지 체크
        reload_option_page4top(); // 조회페이지 실행
    }
});

function getTimeStamp() {
    var d = new Date();

    var s =
        leadingZeros(d.getFullYear(), 4) + '-' +
        leadingZeros(d.getMonth() + 1, 2) + '-' +
        leadingZeros(d.getDate(), 2);

    return s;
}

function leadingZeros(n, digits) {
    var zero = '';
    n = n.toString();

    if (n.length < digits) {
        for (i = 0; i < digits - n.length; i++)
            zero += '0';
    }

    return zero + n;
}

function history_detail_view(itemval,typeval) {
	switch (typeval) {
		case 'numS':
			$.ajax({
				url: 'index_admin_smart_rental_history_detail_view_ajax_v2.php',
				type: 'POST',
				dataType: 'html',
				data: {
					s: $('#s').text(),
					storeid: $("#g").text(),
					typeval: typeval,
					itemval: itemval,
					action:'ajax'
				},
				success:function(data)
				{
					if(data)
					{
						var link = "index_admin_list_v2bdel.php?s="+$("#s").text()+"&k="+$("#k").text()+"&g="+$("#g").text()+"&d1="+data+"&d2=&type="+typeval+"&item="+itemval;
						location.href=link;
					}
				}
			});
			break;
		default:
	}
}

function shop_id_linkage_process(s,url) {
	$.ajax({
		type: "POST",
		url: "/bbs/login_check_for_id_linkage.php", // 로그인 처리를 하는 PHP 파일 경로
		data: {
			s: s,
		},
		success: function(response) {
			var data = $.trim(response);
			if (data === "success") {
				window.open(url+'&s='+s, s, 'width=1250,height=1000');
			} else {
				alert(data);
				return false;
			}
		},
		error: function(xhr, status, error) {
			// 로그인 실패 시 처리
			alert("로그인에 문제가 발생하였습니다 : " + xhr.responseText);
		}
	});
}


function jobstat_modal_save(num, mgrname, shopid, memid, jobact, jobend_deadline, jobend_datetime, jobstat_modal_disp) {

	$("#jobstat_modal_id").html(jobstat_modal_disp);
	$("#jobstat_modal_num").val(num);
	$("#jobstat_modal_mgrname").val(mgrname);
	$("#jobstat_modal_shopid").val(shopid);
	$("#jobstat_modal_memid").val(memid);
	$("#jobstat_modal_jobact").val(jobact);

	var jobend_deadline_formatted = jobend_deadline;
	if (jobend_deadline.match(/^\d{4}-\d{2}-\d{2}$/)) {
		jobend_deadline_formatted += " 23:59:59"; // 시간 추가
	}
	$("#jobstat_modal_jobend_deadline").val(jobend_deadline_formatted);

	var jobend_datetime_formatted = jobend_datetime;
	if (jobend_datetime.match(/^\d{4}-\d{2}-\d{2}$/)) {
		jobend_datetime_formatted += " 23:59:59"; // 시간 추가
	}
	$("#jobstat_modal_jobend_datetime").val(jobend_datetime_formatted);

	$("#jobstat_modal_submit").html("적용");

	// 모달 창 가져오기
	var modal = document.getElementById("myModal");
	// 모달 창을 여는 함수
	function openModal() {
		modal.style.display = "block";
		$("#jobstat_modal_jobact").focus();
	}
	// 모달 창을 닫는 함수
	function closeModal() {
		modal.style.display = "none";
	}
	// 'X' 버튼을 클릭하면 모달 창 닫기
	document.getElementsByClassName("close")[0].onclick = function() {
		closeModal();
	}

	if (true) {
		// 모달 창을 열어서 사용자 입력 받기
		$("#jobstat_modal_prompt").html("※업무요청내용을 입력하신 후, '적용'버튼을 누르십시오.");
		openModal();
	}
}

function jobstat_modal_save_process() {
	var jobstat_modal_select = document.getElementById("jobstat_modal_select").value;
	var jobstat_modal_id = document.getElementById("jobstat_modal_id").value;
	var jobstat_modal_num = document.getElementById("jobstat_modal_num").value;
	var jobstat_modal_mgrname = document.getElementById("jobstat_modal_mgrname").value;
	var jobstat_modal_shopid = document.getElementById("jobstat_modal_shopid").value;
	var jobstat_modal_memid = document.getElementById("jobstat_modal_memid").value;
	var jobstat_modal_jobact = document.getElementById("jobstat_modal_jobact").value;
	var jobstat_modal_jobend_deadline = document.getElementById("jobstat_modal_jobend_deadline").value;
	var jobstat_modal_jobend_datetime = document.getElementById("jobstat_modal_jobend_datetime").value;

	setTimeout(function() {
		if (confirm(jobstat_modal_select + " : 입력하신 내용으로 적용하시겠습니까?"))
		{
			$.ajax({
				url: 'index_admin_register_jobstat_modal_ajax_v2.php',
				type: 'POST',
				dataType: 'html',
				data: {
					s: $('#s').text(),
					num: jobstat_modal_num,
					mgrname: jobstat_modal_mgrname,
					shop_id: jobstat_modal_shopid,
					memid: jobstat_modal_memid,
					jobstat: jobstat_modal_select,
					jobact: jobstat_modal_jobact,
					jobend_deadline: jobstat_modal_jobend_deadline,
					jobend_datetime: jobstat_modal_jobend_datetime,
					action:'ajax'
				},
				success:function(data)
				{
					if(data)
					{
						if (data == 'success')
						{
							alert("품번 : "+jobstat_modal_num+"\n관리번호 : "+jobstat_modal_mgrname+"\n업무구분 : '"+ jobstat_modal_select + "\n적용 되었습니다.");
							$(".divwait").css("display","flex");
							// 모달 창 가져오기
							var modal = document.getElementById("myModal");
							// 모달 창을 여는 함수
							function openModal() {
								modal.style.display = "block";
							}
							// 모달 창을 닫는 함수
							function closeModal() {
								modal.style.display = "none";
							}
							// 'X' 버튼을 클릭하면 모달 창 닫기
							document.getElementsByClassName("close")[0].onclick = function() {
								closeModal();
							}

							closeModal();
							timer_datatable_reload();

						} else {
							alert(data);
						}
					}
				}
			});
		}
	}, 10); // 1000밀리초 지연

}

function jobstat_modal_process(s,url) {
	$.ajax({
		type: "POST",
		//url: "/bbs/login_check_for_id_linkage.php", // 로그인 처리를 하는 PHP 파일 경로
		data: {
			s: s,
		},
		success: function(response) {
			var data = $.trim(response);
			if (data === "success") {
				window.open(url+'&s='+s, s, 'width=1250,height=1000');
			} else {
				alert(data);
				return false;
			}
		},
		error: function(xhr, status, error) {
			// 로그인 실패 시 처리
			alert("로그인에 문제가 발생하였습니다 : " + xhr.responseText);
		}
	});
}

function load_data_v2bdel_popup(no, s, type, g) {
	open_form001_popup(no, s, type, g)
}


function open_form001_popup(no, s, type, g) {
    //8d7c1bcc733ff0ae1db4f67fcb078c271285ec | rcmd_pcinfo_1006 | 1006

    var winWidth = $(window).width();
    var winHeight = $(window).height();

    // 초기 스타일 설정
	$('#divform001_popup').attr("style", "position:fixed; top:0px; left:50%; transform:translateX(-50%); z-index: 1000; display:none; justify-content:flex-start; align-items:flex-start; width:50%; height:165px; overflow-x:auto; overflow-y:hidden; background:#fff; padding:15px 10px 5px; border-top:6px dashed transparent; border-right:6px dashed #000000; border-bottom:6px dashed #000000; border-left:6px dashed #000000; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5); border-radius: 0 0 20px 20px; margin:0 auto 0;"); // 높이 고정 및 스크롤 설정
    //$('#divform001_popup').attr("style", "display:none; justify-content:flex-start; align-items:flex-start; width:" + winWidth + "px; height:165px; overflow-x:hidden; overflow-y:hidden; position:fixed; top:0px; left:50%; transform:translateX(-50%); z-index: 1000; background:#fff; padding:15px 10px 5px; border-width: 5px; border-style: solid; border-image: linear-gradient(to right, #0064ff, transparent, #0064ff, transparent) 1; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);"); // 높이 고정 및 스크롤 설정

    $('#divform001subiframe_popup').attr("style", "width:100%; height:100%; border:none; overflow-x:scroll; overflow-y:hidden; padding:0; margin:0 auto 0;"); // ifrrame 스타일 설정

    $("#divform001subiframe_popup").attr("src", "./index_admin_list_v2bdel_popup.php?s=" + s + "&d1=" + no + "&d2=" + "&type=" + type + "&ispopup=y" + "&g=" + g + "&wh=" + winHeight);

    // 로딩 바 추가
    var loadingBar = $('<div id="loadingBar" style="position:absolute; top:0px; left:0; right:0; height:165px; background-color: rgba(0, 0, 0, 0.0); display:none; text-align: center; color: #555; line-height: 165px; margin-top:5px; margin-bottom:5px;"><div class="loader"></div></div>');
    $('#divform001_popup').append(loadingBar);

    // 로딩 애니메이션 스타일 추가
    $('<style>')
    .prop('type', 'text/css')
    .html(`
        .loader {
            border: 8px solid #f3f3f3; /* Light grey */
            border-top: 8px solid #007bff; /* Blue */
            border-radius: 50%; /* 원형으로 만들기 위해 50%로 수정 */
            width: 40px;
            height: 40px;
            animation: spin 1s linear infinite;
            display: inline-block;
            margin-left: 10px; /* 간격 조정 */
            vertical-align: middle; /* 또는 제거 가능 */
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
    `)
    .appendTo('head');

    // 토글 바가 이미 존재하는지 확인
    if ($('#toggleBar').length === 0) {
        // 토글 바 추가
        var toggleBar = $('<div id="toggleBar" style="position:fixed; top:6px; left:700px; transform:translateX(-50%); cursor:pointer; background-color: #000000; padding: 2px 20px; text-align: center; border: 1px solid #ccc; border-radius: 0px; width: fit-content; font-size: 0.7em; color: #fff; z-index: 1001;">품번 ' + no + ' 상세조회 접기</div>');
        $('body').prepend(toggleBar); // body의 최상단에 추가

        // 토글 바 클릭 이벤트
        toggleBar.on("click", function() {
            $("#divform001_popup").slideToggle(400, function() {
                // 상태에 따라 텍스트 변경
                if ($("#divform001_popup").is(":visible")) {
                    toggleBar.text("품번 " + no + " 상세조회 접기");
                } else {
                    toggleBar.text("품번 " + no + " 상세조회 펼치기");
                }
            });
        });
    } else {
        // 기존 toggleBar 삭제
        $('#toggleBar').remove();
        // 토글 바 추가
        var toggleBar = $('<div id="toggleBar" style="position:fixed; top:6px; left:700px; transform:translateX(-50%); cursor:pointer; background-color: #000000; padding: 2px 20px; text-align: center; border: 1px solid #ccc; border-radius: 0px; width: fit-content; font-size: 0.7em; color: #fff; z-index: 1001;">품번 ' + no + ' 상세조회 접기</div>');
        $('body').prepend(toggleBar); // body의 최상단에 추가

        // 토글 바 클릭 이벤트
        toggleBar.on("click", function() {
            $("#divform001_popup").slideToggle(400, function() {
                // 상태에 따라 텍스트 변경
                if ($("#divform001_popup").is(":visible")) {
                    toggleBar.text("품번 " + no + " 상세조회 접기");
                } else {
                    toggleBar.text("품번 " + no + " 상세조회 펼치기");
                }
            });
        });
    }

    // 슬라이드 다운 전에 로딩 바 표시
    loadingBar.show(); // 로딩 바 표시

    $("#divform001_popup").slideDown(400, function() {
        // 슬라이드가 완료된 후 로딩 바 숨기기
        // 로딩 바는 iframe 로드가 완료될 때까지 숨기지 않음
    });

    $("#divform001subiframe_popup").on("load", function() {
        // 총 높이 계산
        var totalHeight = 147;

        // 총 높이를 divform001_popup에 적용
        $("#divform001_popup").css("height", totalHeight + "px");
        $("#divform001_popup").css("width", winWidth + "px");

        // 로딩 바 숨기기
        loadingBar.hide();
    });
}

function openInNewWindow(url) {
    // 디스플레이 크기 계산
    const screenWidth = window.screen.availWidth;
    const screenHeight = window.screen.availHeight;

    // 여백 설정 (30px)
    const margin = 30;
    const width = screenWidth - margin * 2;
    const height = screenHeight - margin * 2;

    // 새 창 위치 계산
    const left = margin;
    const top = margin;

    // 새 창 열기
    window.open(url, '_blank', `width=${width},height=${height},left=${left},top=${top},scrollbars=yes,resizable=yes`);
}