document.addEventListener('keydown', (event) => {

	var RESERVED_FUNCTION_KEYS = ["F1","F2","F3","F4","F6","F7","F8","F9","F10","F11","PageDown","PageUp"];
	var KEYS_FOR_GLOBAL = ["F9","F10","F11"];
	
	if(RESERVED_FUNCTION_KEYS.includes(event.key)){
		
		event.preventDefault();
		
		var activeBasckdropYn = isActiveBackdrop();
		
		var curArea = getCurrentAreaForShortcutKey();
		
		if(KEYS_FOR_GLOBAL.includes(event.key)){ //전역 기능
		
			if(!activeBasckdropYn){
				//TODO : do somthing
			}
			
		} else { //페이지별,다이얼로그별 버튼

			if(curArea != null){

				var targetButton = $(curArea).find("button.btn-"+event.key);
				
				if(targetButton.length == 1){
					targetButton.click();
				} else {
					if(targetButton.length > 1){
						debug('단축키 버튼 중복 : ' + targetButton.length + "개");
					}
				}
				
			}
			
		}
		
		return false;
	}
});

//단축키 기능이 사용될 영역을 반환한다. 
function getCurrentAreaForShortcutKey(){
	
	if(isActiveBackdrop()){
		return getLastDialog();
	} else {
		return getActiveRootTabArea();
	}

	return null;
}

//현재 활성화된 최상위 탭 영역을 반환한다.
function getActiveRootTabArea(){
	return $("#innerPageTabContents").children(".active")[0];
}

//마지막으로 열린 다이얼로그 영역을 반환한다.
function getLastDialog(){
	return $("div.modal.show").last()[0];
}

//백드롭 영역 활성화 여부를 반환한다.
function isActiveBackdrop(){
	
	if($("div.modal-backdrop").length < 1){
		return false;
	}
	
	var isActiveYn = false;
	$("div.modal-backdrop").each(function(){
		if($(this).hasClass("show")){
			isActiveYn = true;
		};
	});
	
	return isActiveYn;
}
