    /*************************************************************************************
	 * 이벤트 리스너 설정
	 * @param1 pm_oObject : 이벤트가 발생한 오브젝트
	 * @param2 pm_sEvent : 이벤트 종류 ("click", "keydown" 등 on을 제외한 String 값을 넘긴다.)
	 * @param3 pm_oCallBackFunc : 이벤트 발생시 호출될 callback 메소드명. String이 아님에 주의할것. 
	 *                            ()를 제외한 함수명을 넘긴다.
	 * @param4 pm_bCourse : 이벤트 확산 방향. true-하위방향, false-상위방향, 일반적으로 false 사용.
	 * @return void
	**************************************************************************************/
    function addListener(pm_oObject, pm_sEvent, pm_oCallbackFunc, pm_bCourse) {
        if (pm_oObject.attachEvent) {
            pm_oObject.attachEvent("on" + pm_sEvent, pm_oCallbackFunc);          //IE
        } else {
            pm_oObject.addEventListener(pm_sEvent, pm_oCallbackFunc, pm_bCourse); //IE 이외 브라우져
        }       
    }
    
    
    /**************************************************************************************
	 * 이벤트 리스너 해제
	 * @param1 pm_oObject : 이벤트가 발생한 오브젝트
	 * @param2 pm_sEvent : 이벤트 종류 ("click", "keydown" 등 on을 제외한 String 값을 넘긴다.)
	 * @param3 pm_oCallBackFunc : 이벤트 발생시 호출될 callback 메소드명. String이 아님에 주의할것. 
	 *                            ()를 제외한 함수명을 넘긴다.
	 * @param4 pm_bCourse : 이벤트 확산 방향. true-하위방향, false-상위방향, 일반적으로 false 사용.
	 * @return void
	***************************************************************************************/
    function removeListener(pm_oObject, pm_sEvent, pm_oCallBackFunc, pm_bCourse) {
        if (pm_oObject.detachEvent) {
            pm_oObject.detachEvent("on" + pm_sEvent, pm_oCallBackFunc);              //IE
        } else {
            pm_oObject.removeEventListener(pm_sEvent, pm_oCallBackFunc, pm_bCourse); //IE 이외 브라우져
        }       
    }
    
    
    /*************************************************************
	 * 버블 방지
	 *
	 * <div id="divOut"><div id="divIn"></div></div> 에서 
	 * divOut와 divIn에 click이벤트를 확산방향 false로 추가했을 경우
	 * divIn을 클릭하면 divOut도 클릭한것으로 인식한다. 이것이 버블현상이며 
	 * 이것을 방지하기 위해 divIn클릭시 호출되는
	 * Callback 메소드 첫줄에서 이 함수를 호출하여 이벤트를 끝내도록 한다.
	 *
	 * @param evt : 발생한 이벤트 객체
	 * @return void
	**************************************************************/
    function stopBubble(evt) {
        if (window.event) {
            window.event.cancelBubble = true;   //IE
        } else {
            evt.stopPropagation();              //IE 이외 브라우져
        }
    }
        
    
    /***************************************
	 * 이벤트가 발생한 객체를 반환한다.
	 * @param evt : 발생한 이벤트 객체
	 * @return lm_oObject : 이벤트가 발생한 객체
	****************************************/
    function getChoiceObject(evt) {
        var lm_oObject;
    
        if (evt.srcElement) {
            lm_oObject = evt.srcElement;   //IE
        } else {
            lm_oObject = evt.target;       //IE 이외 브라우져
        }
    
        return lm_oObject;
    }

