window.onload=function(){
	$('body').fadeIn(1000);
};

let table; // global 변수 선언
function timer_datatable_reload() {
	table.ajax.reload(null, false); // 페이지 변경 안되게 reload
}

$(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[1]);

            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_pcinfo_load_data_ajax_v2.php',
			type: 'POST',
			data: {
				cate: $('#cate').text(),
				dstoreid: $('#dstoreid').text(),
				s: $('#s').text(),
				g: $('#g').text(),
				pcinfo_id: $('#pcinfo_id').text(),
				pcinfo_no: $('#pcinfo_no').text(),
				action:'ajax'
			},
			dataSrc: function (jData) {
				console.log(jData); // ##############
				//console.log(jData[0]['title']);
				//$('.title').html(jData[0]['title']);
				return jData;
			},
		},
		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 : [[0, 'desc']],
		pagingType: "full_numbers",
        columns: [
            {"data": "no"},
            {"data": "datetime"},
            {"data": "type"},
            {"data": "field"},
            {"data": "value"},
            {"data": "admin_id"},
        ],
		columnDefs: [
			{ "targets": [0] , "orderable": true },
			{ "targets": [2] , "orderable": true , "className":"alLeft" },
			{ "targets": [3] , "orderable": true , "className":"alLeft" },
			{ "targets": [4] , "orderable": true , "className":"alLeft" }
		],
		drawCallback: function() {
			// Re-apply the input restrictions
			applyInputRestrictions();
		},
        language: {
            "emptyTable": "표시할 데이터가 없습니다.",
            "lengthMenu": "<div style='display:flex; justify-content:center; align-items:center;'><div><input type='checkbox' id='cbx_chkAll' style='zoom:1.7;'><label for='cbx_chkAll' style='position:relative; top:-6px; font-size:1em;'>전체선택</label></div><div style='margin-left:25px;'>페이지당 _MENU_ 개씩 보기</div>",
            "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', 'date');
	$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:0px; left:330px;");

});

let 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
		if (showcnt == 0)
		{
			//console.log("[go] ShowCnt="+showcnt);
			timer_datatable_reload();
			$(document).attr("title",$('.title').html());
		} else {
			//console.log("[stop] ShowCnt="+showcnt);
		}
	}, 86400000);
});

function tmrst() {
	showcnt--;
	if (showcnt < 0)
	{
		showcnt = 0;
	}
}


function tmrend() {
	showcnt++;
}


$(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+"]을 정말로 삭제하시겠습니까?"))
	{
		$.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+"]을 정말로 영구 삭제하시겠습니까?"))
	{
		$.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+"]을 정말로 삭제취소(복원) 하시겠습니까?"))
	{
		$.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 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() {
	$.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(oldno) {
	$.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 (data == oldno)
				{
					$('#newdb_msg').fadeOut('slow');
					$('#newdb_msg_confirm').fadeOut('slow');
				} else {
					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() { // 전원상태 체크 등
	$.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() {
	$('#newdb_msg').fadeOut('fast');
	$('#newdb_msg_confirm').fadeOut('fast');
	$('#lastdb').val($('#newdb').val());
	$("#table_reload").val("1");
	timer_datatable_reload();
}

function 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){
	// var second = $(obj).attr("sec");

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

function setTimeSaleTimer(obj, objSec, num) {

	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, 10000);
				}
			}
		});
		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초 디바운싱 타임아웃

}


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;
	}


}

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

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