/*INISEAL:[Iix43NGnhqo0cFD76VkG0uA1XGY%3D%0A]*/
/*****************************************************************************
 * ÆÄÀÏ¸í : pbk-extJS.js
 * ÀÛ¼ºÀÏ : 2008. 01. 10
 * ÀÛ¼ºÀÚ : ÃÖ¹Î¼®
 * ¼³   ¸í : ExtJS 2.0 È®Àå¸ðµâ
 * 2´Ü°è±îÁöÀÇ namespace´Â pbk-package.js ¿¡ Á¤ÀÇ µÇ¾î ÀÖ´Ù.
 * ===========================================================================
 * º¯°æÀÌ·Â:
 * DATE				AUTHOR		DESCRIPTION
 * ---------------------------------------------------------------------------
 * º¯°æ ÀÌ·ÂÀº ÀÌ°÷¿¡ Ãß°¡ ÇÕ´Ï´Ù.
 * 2008.03.16      ¿À·û°æ        pbk.extJS.popup.open() ¿¡ ÀÎÀÚ°ª Ãß°¡ adjustConfig
 * 2009.01.08      ±è»óÁØ        pbk.extJS.popup.open() ·ÎÁ÷ º¯°æ, scroll, resize ÀÌº¥Æ® Á¦°Å
 * 2009.02.10      ¿À·û°æ        20090210-1 errStandardMsgBox() Ãß°¡ -> Ç¥ÁØ ¿¡·¯ ¸Þ¼¼Áö¸¦ ºÐ¸®  
 *****************************************************************************/
Ext.BLANK_IMAGE_URL = pbk.APPLICATION_CONTEXT_ROOT+'/contents/ionresource/js/ext-2.0/contents/ionresources/images/default/s.gif';

/**
 * LayerMask °ü·Ã ÆÐÅ°Áö
 */
pbk.extJS.layerMask = {
	/**
	 * ************************************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ °¡°øÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, ÂüÁ¶´Â °¡´ÉÇÕ´Ï´Ù.
	 * ************************************************************
	 * ÇöÀç »ý¼ºµÇ¾î ÀÖ´Â LayerMask Á¤º¸.
	 */
	maskObject: null,

	/**
	 * ************************************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ °¡°øÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, ÂüÁ¶´Â °¡´ÉÇÕ´Ï´Ù.
	 * ************************************************************
	 * ÇöÀç »ý¼ºµÇ¾î ÀÖ´Â LayerMask°¡ ´ÝÇûÀ» °æ¿ì ÀÌÀü¿¡ »ý¼ºµÇ¾ú´ø LayerMaskÀÇ º¹¿ø¿¡ ÇÊ¿äÇÑ Á¤º¸.
	 */
	maskContainObj: new Array(),

	/**
	 * LayerMask¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {String} zIndex ¿¬°áÇÒ ¿ÀºêÁ§Æ®ÀÇ zIndex °ª
	 */
	show: function(zIndex){
		if (null == pbk.extJS.layerMask.maskObject) {
            // ÀÌ¹Ì LayerMask°¡ »ý¼ºµÇ¾î ÀÖÁö ¾ÊÀ¸¸é LayerMask¸¦ »õ·Î »ý¼ºÇÑ´Ù.
			pbk.extJS.layerMask.maskObject = new Ext.Layer({
				shadow: false,
				zindex: (parseInt(zIndex) - 2)
			});
		}
		else {
			// ÀÌ¹Ì »ý¼ºµÇ¾î ÀÖ´Ù¸é ¼Ó¼ºÀ» º¯°æÇÑ´Ù.
			// LayerMaskÀÇ ¼Ó¼ºÀ» º¯°æÇÏ±â Àü¿¡ º¹¿øÇÒ¶§ »ç¿ëÇÒ Á¤º¸¸¦ ¹è¿­¿¡ ´ã¾ÆµÐ´Ù.
			pbk.extJS.layerMask.maskContainObj.push(pbk.extJS.layerMask.maskObject.zindex);

			pbk.extJS.layerMask.maskObject.zindex = (parseInt(zIndex) - 2);
			pbk.extJS.layerMask.maskObject.setStyle('z-index', parseInt(zIndex) - 2);
		}

		// LayerMask »ý¼ºÇÏ±â
		var screenSize = pbk.getScrollHeight();
		var scrollOffset = pbk.getScrollOffset();

		// LayerMaskÀÇ ½ºÅ¸ÀÏ Á¤ÀÇ
		pbk.extJS.layerMask.maskObject.setStyle('background', '#000000');
		pbk.extJS.layerMask.maskObject.setOpacity(.0);
		pbk.extJS.layerMask.maskObject.setSize(screenSize[0], screenSize[1]);
		pbk.extJS.layerMask.maskObject.setLeft(scrollOffset[0] + 'px');
		pbk.extJS.layerMask.maskObject.setTop(scrollOffset[1] + 'px');

		// LayerMask È­¸é¿¡ Ç¥½ÃÇÏ±â
		pbk.extJS.layerMask.maskObject.show();
		
		// ÀÌº¥Æ® ÁöÁ¤
		Event.observe(window, 'resize', pbk.extJS.layerMask.resizeToLayer);
		Event.observe(window, 'scroll', pbk.extJS.layerMask.resizeToLayer);
	},

	/**
	 * »ý¼ºµÇ¾îÀÖ´Â LayerMask¸¦ È­¸é¿¡¼­ Á¦°ÅÇÕ´Ï´Ù.
	 */
	close: function(){
		if (null != pbk.extJS.layerMask.maskObject && pbk.extJS.layerMask.maskObject != undefined) {
			if (pbk.extJS.layerMask.maskContainObj.length > 0) {
				// ´Ù½Ã º¹¿øÇØ¾ß ÇÒ LayerMask°¡ ÀÖ´Ù¸é º¹¿øÇÑ´Ù.
				var restoreMaskIndex = pbk.extJS.layerMask.maskContainObj.pop();

                pbk.extJS.layerMask.maskObject.zindex = restoreMaskIndex;
				pbk.extJS.layerMask.maskObject.setStyle('z-index', restoreMaskIndex);
			}
			else {
				// º¹¿øÇÒ LayerMask°¡ ¾ø´Ù¸é LayerMask¸¦ »èÁ¦ÇÑ´Ù.

				// ÀÌº¥Æ® Á¾·á
				Event.stopObserving(window, 'resize', pbk.extJS.layerMask.resizeToLayer);
				Event.stopObserving(window, 'scroll', pbk.extJS.layerMask.resizeToLayer);

				// Layer Mask Á¦°Å
				pbk.extJS.layerMask.maskObject.remove();
				pbk.extJS.layerMask.maskObject = null;
			}
		}
	},

	/**
	 * ¿ÀºêÁ§Æ®¿¡ Á¤ÀÇÇÒ z-index °ªÀ» ¸®ÅÏÇÕ´Ï´Ù.
	 * @return {Number} °¡°øÇÑ z-index ÃÖ»óÀ§ °ª.
	 */
	getZIndex: function(){
		var maxZIndex = 0;
		var maskContainObj = pbk.extJS.layerMask.maskContainObj;
		var maskObj = pbk.extJS.layerMask.maskObject;

		// ÇöÀç±îÁö »ý¼ºµÈ LayerMask Á¤º¸¸¦ °Ë»öÇÏ¿© °¡Àå Å« °ªÀÇ zIndex¸¦ Ã£´Â´Ù.
		if (maskContainObj.length > 0) {
			for (var i = 0; i < maskContainObj.length; i++) {
				maxZIndex = (maxZIndex < maskContainObj[i]) ? maskContainObj[i] : 0;
			}
		}

		// ÇöÀç »ý¼ºµÇ¾î ÀÖ´Â LayerMaskÀÇ zIndex °ªº¸´Ù ´õ Å« °ªÀÌ ÀÖ´ÂÁö Check.
		if (null != maskObj && maxZIndex < maskObj.zindex) {
			maxZIndex = maskObj.zindex;
		}

		return maxZIndex + 12;
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Layer Mask¸¦ È­¸é ÀüÃ¼·Î Resize ÇÕ´Ï´Ù.
	 * @param {Object} e
	 */
	resizeToLayer: function(e){
		if (null != pbk.extJS.layerMask.maskObject && pbk.extJS.layerMask.maskObject != undefined) {
			var screenSize = pbk.getViewport();
			var scrollOffset = pbk.getScrollOffset();

			pbk.extJS.layerMask.maskObject.setSize(screenSize[0], screenSize[1]);
			$(pbk.extJS.layerMask.maskObject.id).style.left = scrollOffset[0] + 'px';
			$(pbk.extJS.layerMask.maskObject.id).style.top = scrollOffset[1] + 'px';
		}
	}
};

/**
 * ¿øÇÏ´Â °÷¿¡ ¸¶½ºÅ©¸¦ ¾º¿öÁØ´Ù. 
 */
pbk.extJS.targetMask = {
	/*»ý¼ºµÈ ¸¶½ºÅ©µé */
	maskContainObj: new Array(),
	
	/**
	 * ¸¶½ºÅ©¸¦ »ý¼ºÇÏ°í ¾º¿î´Ù.
	 * @param {String} maskId ¸¶½ºÅ©ÀÇ ¾ÆÀÌµð
	 * @param {String} targetDiv ¸¶½ºÅ©¸¦ ¾º¿ï ´ë»óÀÇ ¾ÆÀÌµð
	 */
	show: function(maskId,targetDiv,fadeInBgColor,fadeInduration, endOpacity){
		var zIndex = $(targetDiv).style.zIndex;
		if (null==zIndex || zIndex =='') {
			zIndex = 1;
		}
		var initDuration = 0.5;
		var initBgColor = '#000000';
		if (fadeInBgColor !='undefined' && fadeInBgColor !=null) {
			initBgColor = fadeInBgColor;
		}
		if (fadeInduration !='undefined' && fadeInduration !=null) {
			initDuration = fadeInduration;
		}		
		var initEndOpacity = 1;
		if (endOpacity != 'undefined' && endOpacity != null) {
			initEndOpacity = endOpacity;
		}					
		
		// ¼Ó¼ºÀ» Ãß°¡ÇÑ »ý¼ºÀÚ ÇÔ¼ö¸¦ ¸¸µé°í
		Ext.ux.TargetMask = function(config){
	        this.targetDiv = null;
            if (config.targetDiv) {
				this.targetDiv = config.targetDiv;
			}
    		Ext.ux.TargetMask.superclass.constructor.call(this, config);
		}
		// ¿ø·¡ ±â´É ¹× ¼Ó¼ºÀ» »ç¿ëÇÏ±â À§ÇØ È®ÀåÇÑ´Ù. 
		Ext.extend(Ext.ux.TargetMask, Ext.Layer);
		
		var maskObject = new Ext.ux.TargetMask({
			shadow: false,
			id : maskId,
			zindex: (parseInt(zIndex) + 2),
			shim :true,
			targetDiv :	targetDiv		
		});
		
		// ¹è¿­¿¡ ³Ö±â 
		pbk.extJS.targetMask.maskContainObj.push(maskObject);
		
		if (fadeInduration == 0) {
			// targetMaskÀÇ ½ºÅ¸ÀÏ Á¤ÀÇ ¹× »ý¼º 
			pbk.extJS.targetMask.setPositionStyle(maskObject, targetDiv, initBgColor, initEndOpacity);			
			maskObject.show();
		} else {
			pbk.extJS.targetMask.setPositionStyle(maskObject, targetDiv, initBgColor);
			Ext.get(maskId).fadeIn({
				endOpacity: initEndOpacity, //can be any value between 0 and 1 (e.g. .5)
				easing: 'easeOut',
				duration: initDuration
			});
		}
		
		// ÀÌº¥Æ® ÁöÁ¤
		Event.observe(window, 'resize', pbk.extJS.targetMask.resizeToLayer);
		Event.observe(window, 'scroll', pbk.extJS.targetMask.resizeToLayer);	
	},	
	
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * @param {String} maskObj
	 * @param {String} targetDiv
	 */
	setPositionStyle: function(maskObj,targetDiv,bgColor,endOpacity){
		
		// targetMask À§Ä¡ ¹× Å©±â 
		var position = Position.cumulativeOffset($(targetDiv));
		var objSize  = Element.getDimensions($(targetDiv));	
		maskObj.setStyle('background', bgColor);
		if (endOpacity != undefined) {
			maskObj.setOpacity(endOpacity);
		}
		maskObj.setSize(objSize.width, objSize.height);
		maskObj.setLeft(position[0] + 'px');
		maskObj.setTop(position[1] + 'px');
		//pbk.extJS.iframe.createCalendarIframe(position[0], position[1], maskObj);
		// targetMask È­¸é¿¡ Ç¥½ÃÇÏ±â
	},
	/**
	 * ÇØ´ç mask ¸¦ ¾ø¾Ø´Ù.
	 * @param {String} maskId
	 */
	remove: function(maskId){
		
		if (pbk.extJS.targetMask.maskContainObj.length > 0) {
			
			for (var i=0; i < pbk.extJS.targetMask.maskContainObj.length; i++){
				var maskObj = pbk.extJS.targetMask.maskContainObj[i];
				if (maskId == maskObj.id) {
					maskObj.remove();
					// ÀÌº¥Æ® Á¾·á
					Event.stopObserving(window, 'resize', pbk.extJS.targetMask.resizeToLayer);
					Event.stopObserving(window, 'scroll', pbk.extJS.targetMask.resizeToLayer);	
					// ¹è¿­¿¡¼­ ÇÏ³ª »«´Ù. 
					var spliced = pbk.extJS.targetMask.maskContainObj.splice(i, 1);
					// ignored..
				} 
			}
			//pbk.extJS.iframe.destoryIframe();								
		}			

	},	
	
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * resizeHandler ÀÌ´Ù.
	 * @param {Object} e
	 */
	resizeToLayer: function(e){
		
		if (pbk.extJS.targetMask.maskContainObj.length > 0) {
			for (var i = 0; i < pbk.extJS.targetMask.maskContainObj.length; i++) {
				var maskObj = pbk.extJS.targetMask.maskContainObj[i];
				// targetMask À§Ä¡ ¹× Å©±â 
				var position = Position.cumulativeOffset($(maskObj.targetDiv));
				var objSize  = Element.getDimensions($(maskObj.targetDiv));	
					
					
				maskObj.setLeft(position[0] + 'px');
				maskObj.setTop(position[1] + 'px');
				
				//pbk.extJS.iframe.createCalendarIframe(position[0], position[1], maskObj);
			}
		}
	}	
}

/**
 * Popup Layer °ü·Ã ÆÐÅ°Áö
 */
pbk.extJS.popup = {

    /**
     * ÀÎ¼â¹öÆ° ¼³Á¤ flag
     */
    isPrint : false,
    /**
	 * ************************************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ °¡°øÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, ÂüÁ¶´Â °¡´ÉÇÕ´Ï´Ù.
	 * ************************************************************
	 * »ý¼ºµÇ¾î ÀÖ´Â Popup ·¹ÀÌ¾î Á¤º¸.
	 */
	layerObject: new Array(),

	eventTargetObject: null,

	/**
	 * ************************************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ °¡°øÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, ÂüÁ¶´Â °¡´ÉÇÕ´Ï´Ù.
	 * ************************************************************
	 * Popup Layer¸¦ È­¸é °¡¿îµ¥¿¡ À§Ä¡½ÃÅµ´Ï´Ù.
	 */
	setEventObserve: function(){
		pbk.extJS.popup.eventTargetObject.center();
	},

	/**
	 * Popup Layer¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {String} contentURL ³»¿ë URL
	 * @param {String} layerID »ý¼ºµÉ ·¹ÀÌ¾îÀÇ ID(ID´Â uniqueÇØ¾ß ÇÑ´Ù)
	 * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
	 * @param {String} parentObjID »óÀ§°èÃþÀÇ ·¹ÀÌ¾î ¾ÆÀÌµð(»óÀ§°èÃþÀÇ ·¹ÀÌ¾î°¡ ´ÝÈú °æ¿ì ÇÏÀ§ ·¹ÀÌ¾î´Â ¸ðµÎ ´ÝÈû)
	 * @param {Object} ÆË¾÷ Ã¢¿¡ ³Ñ±æ form Object
	 * @param {Object} adjustConfig //linkObjId : String,layerId : String, adjustX :Number, adjustY : Number
	 * @param {String} baseCls ÆË¾÷ style classname prefix
	 */
	open: function(contentURL, layerID, layerWidth, parentObjID, formObj, adjustConfig, baseCls){
		/*
		 * ----------------------------------------
		 * Parameters Ç×¸ñ
		 * ----------------------------------------
		 * contentURL	: (required) (String)	URL
		 * layerID		: (required) (String)	»ý¼ºÇÒ Popup Layer¿¡ ÁöÁ¤ÇÒ ID
		 * layerWidth	: (required) (Number)	»ý¼ºÇÒ Popup LayerÀÇ ³ÐÀÌ
		 * parentObjID	: (optional) (String)	ºÎ¸ð°èÃþÀÇ Layer ID (ºÎ¸ð°¡ ¾øÀ» °æ¿ì null ÁöÁ¤)
		 *
		 * ----------------------------------------
		 * example)
		 * ----------------------------------------
		 *  // is000 ¼Ó¼ºÀº ·¹ÀÌ¾î°¡ ¿©·¯°³ ¶ç¿üÀ» °æ¿ì µ¿ÀÏÇÑ ÀÌº¥Æ®¸¦ Àû¿ëÇÒ °ÇÁö À¯¹«¸¦ ÁöÁ¤ÇÑ´Ù.
		 *  // ÀÌ°ÍÀº ¼±ÅÃ»çÇ×ÀÌ¸ç, ÁöÁ¤ÇÏÁö ¾Ê°Å³ª false¸¦ ÁÖ¾úÀ» °æ¿ì
		 *  // ÀÌº¥Æ® Á¤ÀÇ ÈÄ »ý¼ºµÈ Popup Layer¿¡¸¸ ÀÌº¥Æ®°¡ Àû¿ëµÈ´Ù.
		 *  // (Popup Layer¸¦ ¶ç¿ì±â Àü¿¡ Á¤ÀÇÇØ¾ß ÇÑ´Ù.)
		 *  // ±âº»°ªÀº falseÀÌ´Ù (ÇÏ³ªÀÇ Popup Layer¿¡¸¸ Àû¿ëµÈ´Ù)
		 * 	pbk.extJS.popup.event.isShow = true;		// Popup Layer°¡ Ã³À½ Open µÇ¾úÀ» ¶§
		 * 	pbk.extJS.popup.event.isHide = true;		// Popup Layer°¡ ´ÝÇôÁ³À»¶§
		 * 	pbk.extJS.popup.event.isBeforehide = true;	// Popup Layer°¡ ´ÝÈ÷±â Á÷Àü
		 * 	pbk.extJS.popup.event.isActivate = true;	// Popup Layer°¡ ¼±ÅÃµÇ¾úÀ» ¶§
		 * 												   (´ÙÁß °èÃþÀÏ¶§ »ç¿ë, ÇöÀç´Â ModalÀÌ¹Ç·Î »ç¿ëÇÏÁö ¾ÊÀ½)
		 *
		 * 	// ÀÌº¥Æ® Á¤ÀÇ ¹æ¹ý (Popup Layer¸¦ ¶ç¿ì±â Àü Á¤ÀÇÇØ¾ß ÇÑ´Ù.)
		 *
		 * 	// ¹æ¹ý1. ÀÌ¹Ì ±¸ÇöµÇ¾îÀÖ´Â ÇÔ¼ö·Î Á¤ÀÇ
		 *	// Open µÇ¾úÀ» ¶§
		 * 	pbk.extJS.popup.event.show = pbk.inquiry.account.alertEvent;
		 *
		 *
		 * 	// ¹æ¹ý2. Á÷Á¢ Á¤ÀÇ
		 * 	// ¼±ÅÃµÇ¾î È°¼ºÈ­ µÇ¾úÀ» ¶§
		 * 	   (´ÙÁß °èÃþÀÏ¶§ »ç¿ëµÇ¸ç, ÇöÀç´Â Modal·Î OpenµÇ±â ¶§¹®¿¡ »ç¿ëµÇÁö ¾ÊÀ½)
		 * 	pbk.extJS.popup.event.activate = function(obj) {
		 * 		alert(obj.getId() + '·¹ÀÌ¾î°¡ È°¼ºÈ­ µÇ¾ú½À´Ï´Ù');
		 * 	}
		 *
		 * 	// ´ÝÇûÀ» ¶§
		 * 	pbk.extJS.popup.event.hide = function() {
		 * 		alert('·¹ÀÌ¾î°¡ ´ÝÇû½À´Ï´Ù.');
		 * 	}
		 *
		 * 	// ´ÝÀ¸·Á ÇÒ¶§
		 * 	pbk.extJS.popup.event.beforehide = function() {
		 * 		alert('·¹ÀÌ¾î°¡ ´ÝÈü´Ï´Ù.');
		 * 	}
		 *
		 *
		 * 	// Popup Layer ¶ç¿ì±â
		 * 	// À§ ÀÌº¥Æ® °ü·Ã Á¤ÀÇ ¾øÀÌ ¾Æ·¡ ÇÑÁÙ¸¸ ÀÛ¼ºÇÏ°Ô µÉ °æ¿ì ¾Æ¹«·± ÀÌº¥Æ® ¾øÀÌ Popup Layer¸¸ ¶ç¿î´Ù
		 * 	pbk.extJS.popup.open(url, 'excelLayer', 650, null);
		 * ----------------------------------------
		 */
		var eventList = new Array();

		// ¸ðµç ·¹ÀÌ¾î¿¡ activate ÀÌº¥Æ® Àû¿ë¿©ºÎ È®ÀÎ?
		eventList['activate'] = pbk.extJS.popup.event.activate;

		pbk.extJS.popup.event.activate = function(){};

		// ¸ðµç ·¹ÀÌ¾î¿¡ hide ÀÌº¥Æ® Àû¿ë¿©ºÎ È®ÀÎ
		eventList['destroy'] = pbk.extJS.popup.event.hide;

		pbk.extJS.popup.event.hide = function(){};

		// ¸ðµç ·¹ÀÌ¾î¿¡ beforehide ÀÌº¥Æ® Àû¿ë¿©ºÎ È®ÀÎ
		eventList['beforehide'] = pbk.extJS.popup.event.beforehide;

		pbk.extJS.popup.event.beforehide = function(){};

        //popup-temp area ¾øÀ¸¸é ¼³Á¤
        if(!$('popup-temp')){
             Ext.DomHelper.append(Ext.getBody(), {tag:"div",
                                          id : 'popup-temp',  
                                          html : '',
                                          cls :"x-hidden"});
        }

        //popup È£Ãâ ajax
        var hanaAjax = new hana.JHanaAjax('popup-temp',
                    true,
                    true);

        //Æ÷Ä¿½º ÇÒ element¸¦ ÁöÁ¤ÇßÀ¸¸é hanaAjax¿¡ ºÎ¿©
        if (pbk.extJS.popup.focusFlag.isElementFocus) {
            hanaAjax.setFocusElementId(pbk.extJS.popup.focusFlag.focusElementId);
        }

        //ajax callback
        hanaAjax.ajaxCommSubmitCallback(contentURL, formObj, function(isSuccess){

            if (isSuccess) {
				//20100203 Geunwon,Mo Ä«µå¸Þ´º¿¡¼­ ÆË¾÷À» ¶ç¿ï°æ¿ì ÇÏ³ªÄ«µå·Î Ç¥½Ã
                var currentUrl;
                currentUrl = location.href;
                if (currentUrl.indexOf("/card/") > 0){
                    baseCls = 'x-hanacard-window';
                }
                
                //baseCls ÁöÁ¤ ¾È ÇÒ °æ¿ì default °ª 'x-hanabank-window'
                var popupBaseCls = baseCls || 'x-hanabank-window';

                //baseCls ÀÌ 'x-hanabank-window' ÀÎ °æ¿ì closable ¼³Á¤ÇÔ
                var isClosable = ((popupBaseCls == 'x-hanabank-window') || (popupBaseCls == 'x-hanacard-window'));

                var popTitle = $('pop_title');
                var popContent = $('pop_content');

                var popupWidth = layerWidth;

                var titleContent = '';
                var bodyContent = '';

                //ÆË¾÷ title ¿µ¿ªÀÌ ¼³Á¤ µÈ °æ¿ì ( ¼³Á¤ ¾È µÈ °æ¿ìµµ ÀÖÀ½.. )
                //±âº» Å¸ÀÌÆ² ÀÌ¹ÌÁö ¼³Á¤?
                var titleImgSrc = '';
                if(popTitle){
                    //ÆË¾÷ title ¿µ¿µ width °ª¿¡ ¸ÂÃã ( ÁÂÃø ¿©¹é width 23 plus )
					if ($('pop_title').getWidth() > 1024) {
						popupWidth = $('hana_pop').getWidth() + 23;
					}
					else {
						popupWidth = $('pop_title').getWidth() + 23;
					}
					
                    var pop_head = $('pop_title').getElementsBySelector('[class="pop_head"]')[0];
                    if(pop_head){
                        //title img ¸¸ ÃßÃâÇÕ´Ï´Ù..
                        var titleImg = pop_head.getElementsByTagName('img')[0];
                        titleImgSrc = titleImg.src;
                        var parent = titleImg.parentNode;
                        parent.innerHTML = '';
                        parent.appendChild(titleImg);
                        titleContent = parent.innerHTML;
                    }
                }

                bodyContent = popContent.innerHTML;

				//±âÁ¸ ÆË¾÷ÀÌ Á¸Àç ÇÒ °æ¿ì close ÈÄ Àç open
				if( pbk.extJS.popup.layerObject[layerID] ){
					pbk.extJS.popup.layerObject[layerID].close();
				}
				
                var win = new Ext.Window({
                    id       : layerID,
                    parentID : parentObjID,
                    baseCls  : popupBaseCls,
                    closable : isClosable,
                    width    : popupWidth,
                    autoHeight: true,
                    resizable: false,
                    border   : false,
                    bodyBorder: false,
                    footer   : true,
                    modal    : true,
                    shadow   : false,
                    title    : titleContent,
                    html     : bodyContent,
                    listeners: {
                        beforedestroy: function(w){
                            pbk.extJS.privateEvent.destroy(w);
                            try{
                                eventList['destroy']();
                            }catch(e){alert(e.message);}    
                        },

                        beforehide: eventList['beforehide']
                    }
                });

                //ÆË¾÷ º¸¿©ÁÜ..
                win.setVisible(true);

                if((popupBaseCls == 'x-hanabank-window') || (popupBaseCls == 'x-hanacard-window')){
                    //copyright ³Ö±â
                    var copyRightDiv = pbk.extJS.popup.getCopyRight();
                    win.footer.appendChild(copyRightDiv);
                    //ÀÎ¼â ³Ö±â
                    if(pbk.extJS.popup.isPrint){
                        var printBtn = pbk.extJS.popup.getPrintBtn(win, titleImgSrc);
                        win.footer.appendChild(printBtn);
                    }    
                }
				
				//ÇÁ¸°Æ® ¼³Á¤ ÃÊ±âÈ­
				pbk.extJS.popup.initPrint();


                pbk.extJS.popup.layerObject[layerID] = win;

                // ÀÌº¥Æ® Á¤ÀÇÇÒ °´Ã¼ Á¤ÀÇ
                pbk.extJS.popup.eventTargetObject = pbk.extJS.popup.layerObject[layerID];

                // ÃÖÃÊ ·¹ÀÌ¾î È­¸é »ý¼º ÈÄ activate ÀÌº¥Æ® ºÎ¿© (ÃÖÃÊ Ã¢ÀÌ È°¼ºÈ­ µÇ¾úÀ»¶§ ÀÌº¥Æ® ¹ß»ýÀ» ¸·±â À§ÇÔ)
                pbk.extJS.popup.layerObject[layerID].on('activate', eventList['activate']);

                if (adjustConfig==null || adjustConfig == undefined) {
					// ·¹ÀÌ¾î¿¡ ¾÷µ¥ÀÌÆ® µÇ¾úÀ¸¹Ç·Î »çÀÌÁî º¯°æÀ¸·Î ÀÎÇØ ´Ù½Ã È­¸éÀÇ Á¤Áß¾Ó¿¡ À§Ä¡(ÇØ»óµµ ¹®Á¦·Î ·ÎÁ÷ º¯°æ)
					pbk.extJS.popup.setCenterPosition(layerID);
				} else {
					pbk.extJS.popup.setPosition(adjustConfig);
				}

				// ºÎ¸ð·¹ÀÌ¾î°¡ ÁöÁ¤µÇ¾î ÀÖÀ» °æ¿ì ÇöÀç ¶ç¿ì´Â ÆË¾÷À» 20px¾¿ ÀÌµ¿
				if (null != parentObjID && parentObjID != undefined){
					if (adjustConfig==null || adjustConfig == undefined) {
						var parentPos = pbk.extJS.popup.layerObject[parentObjID].getPosition();
						pbk.extJS.popup.layerObject[layerID].setPosition(parentPos[0] + 20, parentPos[1] + 20);
					}
				}

				// ÀçÁ¤ÀÇµÈ show ÀÌº¥Æ® ½ÇÇà  2009.02.10 ±è»óÁØ ajax update ½Ã 10 ms ¼Ò¿ä
				setTimeout( pbk.extJS.popup.event.show, 10);

				// ¸ðµç ·¹ÀÌ¾î¿¡ show ÀÌº¥Æ® Àû¿ë¿©ºÎ È®ÀÎ
				pbk.extJS.popup.event.show = function(){};

                var extScrollDiv = $('hanaScrollDiv');

				if (null != extScrollDiv && extScrollDiv != undefined) {
					extScrollDiv.id = layerID + '-extScrollDiv';
				}

            }

            //popup temp area ÃÊ±âÈ­
            $('popup-temp').innerHTML = '';
        });

    },

    /**
     * ÀÎ¼â ³Ö±â
     */
    getCopyRight : function(){
        var copyRightDiv = document.createElement('DIV');
		//20100203 Geunwon,Mo Ä«µå¸Þ´º¿¡¼­ ÆË¾÷À» ¶ç¿ï°æ¿ì ÇÏ³ªÄ«µå·Î Ç¥½Ã
        var currentUrl;
        currentUrl = location.href;
        if (currentUrl.indexOf("/card/") > 0){
            copyRightDiv.className = 'x-hanacard-window-footer_copy';
        } else {
            copyRightDiv.className = 'x-hanabank-window-footer_copy';
        }

        var copyRightImg = document.createElement('img');
        
		//20100121 Geunwon,Mo Ä«µå¸Þ´º¿¡¼­ ÆË¾÷À» ¶ç¿ï°æ¿ì ÇÏ³ªÄ«µå·Î Ç¥½Ã
        if (currentUrl.indexOf("/card/") > 0){
            copyRightImg.alt = 'Copyright ¨Ï2010 HANACARD. All rights reserved.';
            copyRightImg.src = pbk.APPLICATION_CONTEXT_ROOT + '/resource/images/popup/img_pop_copy_card.gif';			
        } else {
            copyRightImg.alt = 'Copyright ¨Ï2008 HANABANK. All rights reserved.';
            copyRightImg.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/img_pop_copy.gif';
        }
        copyRightDiv.appendChild(copyRightImg);

        return copyRightDiv;
    },

    /**
     * ÇÁ¸°Æ® property ÃÊ±âÈ­
     */
    initPrint : function(){
        pbk.extJS.popup.printArea = "";
        pbk.extJS.popup.isPrint = true;
    },

    /**
     * ÀÎ¼â ¹öÆ°
     */
    getPrintBtn : function(win, titleImgSrc){
		var printDiv = document.createElement('DIV');
        //20100203 Geunwon,Mo Ä«µå¸Þ´º¿¡¼­ ÆË¾÷À» ¶ç¿ï°æ¿ì ÇÏ³ªÄ«µå·Î Ç¥½Ã
        var currentUrl;
        currentUrl = location.href;
        if (currentUrl.indexOf("/card/") > 0){
            printDiv.className = 'x-hanacard-window-footer-print';
        } else {
            printDiv.className = 'x-hanabank-window-footer-print';
        }

        var printImg = document.createElement('img');
        printImg.alt = 'ÀÎ¼âÇÏ±â';
        printImg.style.cursor = 'pointer';
        printImg.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/btn_pop_print.gif';

        printImg.onclick = function(){
            
            //ÀÎ¼â ¿µ¿ª ¼³Á¤
            var printArea;

            var bodyArea = win.body.id;
            var bodyAreaEl = Ext.get(bodyArea);
            var popMidConts = bodyAreaEl.select("[class^=pop_mid_cont]");

            if(popMidConts.elements.length > 0){
                printArea = popMidConts.elements[0];
            }
            
            if(pbk.extJS.popup.printArea){
                printArea = pbk.extJS.popup.printArea;
            }

            //ÇÁ¸°Æ® ¸ÞÀÌµå ÀÎ¼âÇÔ¼ö È£Ãâ
            //¹öÆ° ¿µ¿ª hidden
            var btnAreas = bodyAreaEl.select("[class^=btn_]");
            
            Ext.each(btnAreas.elements, function(el){
				el.className = el.className + " x-hidden";
            });

			//[È®ÀÎÁõ] ÀÎ¼â Å×½ºÆ® Àü - [È®ÀÎÁõ] ÆäÀÌÁöÀÏ °æ¿ì ºÐ±â
			//IE6 ÀÎ °æ¿ì..
			var ua = navigator.userAgent.toLowerCase();
			var isIE = ua.indexOf("msie") > -1;
			var isIE7 = ua.indexOf("msie 7") > -1;
			var isIE8 = ua.indexOf("msie 8") > -1;
			
			/*
			@description : ±â¾÷¹ðÅ·ÀÇ ÀÌÃ¼È®ÀÎ¼­ ¶§¹®¿¡ µé¾îÀÖ´Â ±¸¹®ÀÌ¹Ç·Î °³ÀÎ¹ðÅ·¿¡¼± Á¦°Å
			if (isTransfer) {
				//IE6 ÀÎ °æ¿ì..
				if (isIE && !isIE7 && !isIE8) {
					print_div(printArea, 2, -41, 0, -92, 0, titleImgSrc);
				} else {
					print_div(printArea, 2, -29, 0, -79, 0, titleImgSrc);
				//È­¸éÀÌ ¹Ð¸±°æ¿ì 3¹øÂ°¿Í 5¹øÂ° ÆÄ¶ó¹ÌÅÍ °ªÀ» (-)Áõ°¡ ½ÃÅ²´Ù.
				//¹Ð¸®Áö ¾Ê°í ÁÙ¾îµé °æ¿ì¿£ ÀÌ¿Í ¹Ý´ë·Î °ªÀ» (-)»©ÁØ´Ù.
				}
			} else {
			*/
			
			//IE6 ÀÎ °æ¿ì..
            if(isIE && !isIE7 && !isIE8){
                print_div(printArea, 0, 3, 0, -17, 0, titleImgSrc);
            }else{
                print_div(printArea, 0, 17, -12, -15, 0, titleImgSrc);
            }
			
			/*
			}	
			*/
			
			//¹öÆ° ¿µ¿ª ´Ù½Ã show
            Ext.each(btnAreas.elements, function(el){
				el.className = el.className.replace(' x-hidden','');
            });
        }

        printDiv.appendChild(printImg);

        return printDiv;
    },


    /**
	 * Popup Layer¸¦ È­¸é¿¡¼­ Á¦°ÅÇÕ´Ï´Ù.
	 * @param {String} layerID ´ÝÀ» ·¹ÀÌ¾îÀÇ ID
	 */
	close: function(layerID){
		if (pbk.extJS.popup.layerObject[layerID] != null && pbk.extJS.popup.layerObject[layerID] != undefined) {
//			// ÀÌº¥Æ® Á¦°ÅÇÒ °´Ã¼ Á¤ÀÇ
//			pbk.extJS.popup.eventTargetObject = pbk.extJS.popup.layerObject[layerID];
//
//			// »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ½ÇÇà
//			pbk.extJS.popup.eventTargetObject.customEvent.destroy();

            // È­¸é¿¡¼­ º¸ÀÌÁö ¾Ê°Ô
//            pbk.extJS.fx.fadeOut(layerID,true,0.5);
            pbk.extJS.popup.layerObject[layerID].close();

            // ´ÝÀ¸·Á´Â ·¹ÀÌ¾î ¿ÀºêÁ§Æ®¸¦ ¹è¿­¿¡¼­ »èÁ¦ÇÏ±â
			var tmpObj = new Array();

			for (var item in pbk.extJS.popup.layerObject) {
				if (typeof item == 'string') {
					// ´ÝÀ¸·Á´Â ·¹ÀÌ¾î¸¦ Á¦¿ÜÇÑ ·¹ÀÌ¾î Á¤º¸ ÀÓ½Ã¹è¿­¿¡ ´ã¾ÆµÎ±â
					if (item != layerID) {
						tmpObj[item] = pbk.extJS.popup.layerObject[item];
					}
				}
			}

			// ´ÝÀ¸·Á´Â ·¹ÀÌ¾î¿ÀºêÁ§Æ®¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö ·¹ÀÌ¾î ¿ÀºêÁ§Æ®¸¦ ´ãÀº
			// ÀÓ½Ã¹è¿­À» ·¹ÀÌ¾î ¹è¿­¿¡ Àû¿ëÇÏ±â
			pbk.extJS.popup.layerObject = tmpObj;

			// ´ÝÀ¸·Á´Â ·¹ÀÌ¾îÀÇ ÇÏÀ§·¹º§ÀÇ ·¹ÀÌ¾î°¡ ÀÖÀ» °æ¿ì ÇÔ²² ´Ý±â
			for (var item in pbk.extJS.popup.layerObject) {
				if (typeof item == 'string') {
					var itemObj = pbk.extJS.popup.layerObject[item];

					if (null != itemObj && itemObj != undefined) {
						var p_id = itemObj.parentID;
						if (null != p_id && p_id != undefined && p_id == obj.id) {
							pbk.extJS.popup.close(item);
						}
					}
				}
			}
		}
	},

	/**
	 * Popup LayerÀÇ ³ÐÀÌ¸¦ Á¶ÀýÇÕ´Ï´Ù.
	 * @param {String} layerID Popup Layer ID
	 * @param {Number} width Popup LayerÀÇ º¯°æÇÒ ³Êºñ
	 */
	setWidth: function(layerID, width){
		if (null != pbk.extJS.popup.layerObject[layerID] && pbk.extJS.popup.layerObject[layerID] != undefined) {
			pbk.extJS.popup.layerObject[layerID].setSize(width, 'auto');

			// ³ëÃâµÈ ·¹ÀÌ¾îÀÇ À§Ä¡¸¦ ÇöÀç º¸ÀÌ´Â È­¸éÀÇ Á¤Áß¾Ó¿¡ À§Ä¡(ÇØ»óµµ ¹®Á¦·Î ·ÎÁ÷ º¯°æ)
//			pbk.extJS.popup.layerObject[layerID].center();
			pbk.extJS.popup.setCenterPosition(layerID);
		}
	},

	/**
	 * ÁöÁ¤µÈ ÀÌ¸§ÀÇ ·¹ÀÌ¾î¸¦ Ext.Window Å¸ÀÔÀ¸·Î ¸®ÅÏÇÕ´Ï´Ù.
	 * @param {String} layerID ¸®ÅÏ¹ÞÀ» ·¹ÀÌ¾îÀÇ ID
	 * @return {Ext.Window} °¡Àå ¸¶Áö¸·¿¡ »ý¼ºµÈ ·¹ÀÌ¾î
	 */
	getObject: function(layerID){
		// ¿äÃ»ÇÑ ÀÌ¸§ÀÇ Ext.Window °´Ã¼ ¹ÝÈ¯
		return pbk.extJS.popup.layerObject[layerID];
	},

    focusFlag : {
        isElementFocus : false,
        focusElementId : null
    },

	/**
	 * °¡¿îµ¥·Î À§Ä¡ÇÕ´Ï´Ù.
	 * @param {Object} layerID
	 */
	setCenterPosition: function(layerID) {
        if(pbk.extJS.popup.layerObject[layerID]){
            pbk.extJS.popup.layerObject[layerID].center();

            var popupPos = pbk.extJS.popup.layerObject[layerID].getPosition()

            // È­¸é »ó´Ü ¹ÛÀ¸·Î ¹þ¾î³µÀ» °æ¿ì Top 0px·Î À§Ä¡
            if (popupPos[1] < 0){
                pbk.extJS.popup.layerObject[layerID].setPosition(popupPos[0], 0);
            }
        }    
    },



	/**
	 * elID ¸¦ °¡Áö°í ÀÖ´Â Element ¾Æ·¡¿¡ layerID ¸¦ °¡Áö°í ÀÖ´Â Layer¸¦ À§Ä¡½ÃÅ²´Ù.
	 * @author ¿À·û°æ
	 * @param {String} elID À§Ä¡½ÃÅ°°íÀÚÇÏ´Â ¾ÆÀÌµð
	 * @param {String} layerID ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
	 * @param {Number} adjustConfig (linkObjId : String,layerId : String, adjustX :Number, adjustY : Number)
	 */
	setPosition : function(adjustConfig) {
		var el = $(adjustConfig.linkObjId);
		pbk.extJS.popup.layerObject[adjustConfig.layerId].setPosition();

		if (null != pbk.extJS.popup.layerObject[adjustConfig.layerId] && pbk.extJS.popup.layerObject[adjustConfig.layerId] != undefined) {
			var layerObj = $(pbk.extJS.popup.layerObject[adjustConfig.layerId].getEl().id);
			var position = Position.cumulativeOffset(el);
			var x = position[0] + adjustConfig.adjustX;
			var y = position[1] + adjustConfig.adjustY;

			layerObj.style.position = 'absolute';
			layerObj.style.left = x + 'px';
			layerObj.style.top = y + 'px';
        }
	},

    /**
	 * ·¹ÀÌ¾î¿¡ ´ëÇÑ ÀÌº¥Æ® °ü·Ã ÆÐÅ°Áö ÀÔ´Ï´Ù.
	 */
	event: {
		/**
		 * »ý¼ºµÉ ¸ðµç ·¹ÀÌ¾î¿¡ ÀÛ¼ºÇÑ activate ÀÌº¥Æ® Àû¿ë¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
		 * MEMO : true·Î º¯°æÈÄ Popup Layer »ý¼º½Ã »ý¼ºÇÑ Popup Layer ºÎÅÍ
		 *        ÇöÀç ÆäÀÌÁö¿¡¼­ »ý¼ºµÇ´Â ¸ðµç Popup Layer¿¡ Àû¿ëµÈ´Ù.
		 *        false·Î º¯°æÈÄ Popup Layer »ý¼º½Ã »ý¼ºÇÑ Popup Layer ¿¡¸¸ Àû¿ëµÇ°í ÀÌº¥Æ®´Â »èÁ¦µÈ´Ù.
		 */
		isActivate: false,

		/**
		 * »ý¼ºµÉ ¸ðµç ·¹ÀÌ¾î¿¡ ÀÛ¼ºÇÑ show ÀÌº¥Æ® Àû¿ë¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
		 * MEMO : true·Î º¯°æÈÄ Popup Layer »ý¼º½Ã »ý¼ºÇÑ Popup Layer ºÎÅÍ
		 *        ÇöÀç ÆäÀÌÁö¿¡¼­ »ý¼ºµÇ´Â ¸ðµç Popup Layer¿¡ Àû¿ëµÈ´Ù.
		 *        false·Î º¯°æÈÄ Popup Layer »ý¼º½Ã »ý¼ºÇÑ Popup Layer ¿¡¸¸ Àû¿ëµÇ°í ÀÌº¥Æ®´Â »èÁ¦µÈ´Ù.
		 */
		isShow: false,

		/**
		 * »ý¼ºµÉ ¸ðµç ·¹ÀÌ¾î¿¡ ÀÛ¼ºÇÑ hide ÀÌº¥Æ® Àû¿ë¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
		 * MEMO : true·Î º¯°æÈÄ Popup Layer »ý¼º½Ã »ý¼ºÇÑ Popup Layer ºÎÅÍ
		 *        ÇöÀç ÆäÀÌÁö¿¡¼­ »ý¼ºµÇ´Â ¸ðµç Popup Layer¿¡ Àû¿ëµÈ´Ù.
		 *        false·Î º¯°æÈÄ Popup Layer »ý¼º½Ã »ý¼ºÇÑ Popup Layer ¿¡¸¸ Àû¿ëµÇ°í ÀÌº¥Æ®´Â »èÁ¦µÈ´Ù.
		 */
		isHide: false,

		/**
		 * »ý¼ºµÉ ¸ðµç ·¹ÀÌ¾î¿¡ ÀÛ¼ºÇÑ beforehide ÀÌº¥Æ® Àû¿ë¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
		 * MEMO : true·Î º¯°æÈÄ Popup Layer »ý¼º½Ã »ý¼ºÇÑ Popup Layer ºÎÅÍ
		 *        ÇöÀç ÆäÀÌÁö¿¡¼­ »ý¼ºµÇ´Â ¸ðµç Popup Layer¿¡ Àû¿ëµÈ´Ù.
		 *        false·Î º¯°æÈÄ Popup Layer »ý¼º½Ã »ý¼ºÇÑ Popup Layer ¿¡¸¸ Àû¿ëµÇ°í ÀÌº¥Æ®´Â »èÁ¦µÈ´Ù.
		 */
		isBeforehide: false,

		/**
		 * Virtual Function, ·¹ÀÌ¾î°¡ È°¼ºÈ­ µÇ¾úÀ» °æ¿ì ¹ß»ýÇÒ ÀÌº¥Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù.
		 */
		activate: function(/* Ext.Window */obj){
		},

		/**
		 * Virtual Function, ·¹ÀÌ¾î°¡ È­¸é¿¡ º¸ÀÌ°í ³­ ÈÄ ¹ß»ýÇÒ ÀÌº¥Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù.
		 */
		show: function(/* Ext.Component */obj){
		},

		/**
		 * Virtual Function, ·¹ÀÌ¾î¸¦ ´ÝÀº ÈÄ ¹ß»ýÇÒ ÀÌº¥Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù.
		 */
		hide: function(){
		},

		/**
		 * Virtual Function, ·¹ÀÌ¾î¸¦ ´Ý±â Àü¿¡ ¹ß»ýÇÒ ÀÌº¥Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù.
		 */
		beforehide: function(){
		}
	}
};


/**
 * Indicator Layer °ü·Ã ÆÐÅ°Áö
 */
pbk.extJS.loadingLayer = {
	/**
	 * ************************************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ °¡°øÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, ÂüÁ¶´Â °¡´ÉÇÕ´Ï´Ù.
	 * ************************************************************
	 * Indicator·¹ÀÌ¾î Á¤º¸.
	 */
	indicatorLayer: null,

    /**
     * ·Îµù ·¹ÀÌ¾î¸¦ cache ÇÕ´Ï´Ù.
     */
    cache : function(){
        if(pbk.extJS.loadingLayer.indicatorLayer){
            return;
        }

        // »ý¼ºµÉ Indicator LayerÀÇ È¯°æ¼³Á¤
		var config = {
			id: 'indicatorLayer',
			resizable: false,
			closable: false,
			footer: true,
			border: false,
			bodyBorder: false,
			draggable: false,
			plain: true,
			width: 106,
			autoHeight: true,
			shadow: false,
			modal: true,
			html: pbk.extJS.loadingLayer.loadingMsg(),
            listeners: {
                beforedestroy: function(w){
                    pbk.extJS.privateEvent.destroy(w);
                }
            }
        }

        pbk.extJS.loadingLayer.indicatorLayer = new Ext.Window(config);
        pbk.extJS.loadingLayer.indicatorLayer.setVisible(true);
        pbk.extJS.loadingLayer.indicatorLayer.center();
        pbk.extJS.loadingLayer.indicatorLayer.setVisible(false);


        Event.observe(window, 'resize', pbk.extJS.loadingLayer.resizeHandler);
        Event.observe(window, 'scroll', pbk.extJS.loadingLayer.resizeHandler);
    },


	/**
	 * Indicator Layer¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 */
	loadingMsg: function(){
		var dummyNode = document.createElement('div');
        var embedObj = document.createElement('embed');
		var resource_URL = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/flash/hana_loading_ver8.swf';

		embedObj.setAttribute('src', resource_URL);
		embedObj.setAttribute('wmode', 'transparent');
		embedObj.setAttribute('quality', 'high');
		embedObj.setAttribute('pluginspage', 'http://www.macromedia.com/go/getflashplayer');
		embedObj.setAttribute('type', 'application/x-shockwave-flash');
		embedObj.setAttribute('width', '106');
		embedObj.setAttribute('height', '106');
		embedObj.setAttribute('allowScriptAccess', 'always');
		embedObj.setAttribute('swLiveConnect', true);
		embedObj.setAttribute('id', 'loading_flash');
		embedObj.setAttribute('name', 'loading_flash');

		dummyNode.appendChild(embedObj);
		return dummyNode.innerHTML;
	},


    /**
	 * loading layer ¸¦ º¸¿©ÁÝ´Ï´Ù.
	 */
	show : function(){
        if (null == pbk.extJS.loadingLayer.indicatorLayer) {
            // »ý¼ºµÉ Indicator LayerÀÇ È¯°æ¼³Á¤
            var config = {
                id: 'indicatorLayer',
                resizable: false,
                closable: false,
                footer: true,
                border: false,
                bodyBorder: false,
                draggable: false,
                plain: true,
                width: 106,
                autoHeight: true,
                shadow: false,
                modal: true,
                html: pbk.extJS.loadingLayer.loadingMsg(),
                listeners: {
                    beforedestroy: function(w){
                        pbk.extJS.privateEvent.destroy(w);
                    }
                }
            }

            pbk.extJS.loadingLayer.indicatorLayer = new Ext.Window(config);

            pbk.extJS.loadingLayer.indicatorLayer.setVisible(true);

			/*
			 * MSN_MESSENGER_YN º¯¼ö´Â msn messenger ¹ðÅ· template master¿¡ Á¤ÀÇ µÇ¾î ÀÖÀ½.Jiho Park
			 */
			var isMsnMessenger = false;
			if (MSN_MESSENGER_YN != null && MSN_MESSENGER_YN != undefined) {
				if (MSN_MESSENGER_YN == "Y") {
					isMsnMessenger = true;
				}
			}
	
			if (isMsnMessenger == true) {
				// MSN ¸Þ½ÅÁ® ¹ðÅ·
				pbk.extJS.loadingLayer.indicatorLayer.setPosition(120,110);
			} else {
				// ÀÏ¹Ý ¹ðÅ·
				pbk.extJS.loadingLayer.indicatorLayer.center();
			}

            //Event.observe(window, 'resize', pbk.extJS.loadingLayer.resizeHandler);
            //Event.observe(window, 'scroll', pbk.extJS.loadingLayer.resizeHandler);
        }

        if($('initialMask') && $('initialLoadingLayer')
                && $('initialMask').style.display != "none" && $('initialLoadingLayer').style.display != "none" ) {
			$('initialMask','initialLoadingLayer').invoke('hide');
		}
    },


    /**
	 * close
	 */
	close : function(){
        if (null != pbk.extJS.loadingLayer.indicatorLayer) {
            pbk.extJS.loadingLayer.indicatorLayer.close();

            pbk.extJS.loadingLayer.indicatorLayer = null;
            
//            Event.stopObserving(window, 'resize', pbk.extJS.loadingLayer.resizeHandler);
//            Event.stopObserving(window, 'scroll', pbk.extJS.loadingLayer.resizeHandler);
        }
	},

	/**
	 * ****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * ****************************************
	 * È­¸é Áß¾Ó¿¡ À§Ä¡ÇÏ´Â ÀÌº¥Æ®
	 */
	resizeHandler: function() {
		if (null != pbk.extJS.loadingLayer.indicatorLayer) {
			pbk.extJS.loadingLayer.indicatorLayer.center();
		}
	}
};


/**
 * ·Î±×¾Æ¿ô ÀÜ¿©½Ã°£ ¾Ë¸² Message ÆÐÅ°Áö
 */
pbk.extJS.logoutMessage = {
	/**
	 * ************************************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ °¡°øÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, ÂüÁ¶´Â °¡´ÉÇÕ´Ï´Ù.
	 * ************************************************************
	 * ·Î±×¾Æ¿ô ÀÜ¿©½Ã°£ ¾Ë¸² Message Box Á¤º¸
	 */
	logoutLayer: null,

	/**
	 * ************************************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ °¡°øÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, ÂüÁ¶´Â °¡´ÉÇÕ´Ï´Ù.
	 * ************************************************************
	 * ·Î±×¾Æ¿ô ÀÜ¿©½Ã°£ ¾Ë¸² Message Box ¾÷µ¥ÀÌÆ® ÁØºñ¿Ï·á ¿©ºÎ
	 */
	updateReady: false,

	/**
	 * ·Î±×¾Æ¿ô ÀÜ¿©½Ã°£ ¾Ë¸² Message Box¸¦ È­¸éÀÇ °¡¿îµ¥¿¡ Ç¥½ÃÇÕ´Ï´Ù.
	 */
	show: function(){
		// ±âº» °´Ã¼ »ý¼º
		if (null == pbk.extJS.logoutMessage.logoutLayer) {
			pbk.extJS.logoutMessage.logoutLayer = new Ext.Window({
				resizable: false,
				closable: false,
				footer: true,
				width: 428,
				border: false,
				bodyBorder: false,
				plain: true,
				autoHeight: true,
				shadow: false,
				modal: true,
				listeners: {
                    beforedestroy: function(w){
                        pbk.extJS.privateEvent.destroy(w);
                    }
                },
                onEsc: function(){
					pbk.extJS.logoutMessage.close();
				}
			});
		}

		// È­¸é¿¡ Ãâ·Â
		pbk.extJS.logoutMessage.logoutLayer.setVisible(true);

		if (null != pbk.extJS.logoutMessage.logoutLayer) {
			// Title, Body ºÎºÐÀÇ ³»¿ëÀ» Update ÇÑ´Ù.
//			var dialogID = pbk.extJS.logoutMessage.logoutLayer.getId();
//			pbk.extJS.layerMask.show($(dialogID).style.zIndex);
			pbk.extJS.logoutMessage.logoutLayer.header.update($('pop_logout_title').innerHTML);
			pbk.extJS.logoutMessage.logoutLayer.body.update($('pop_logout_content').innerHTML);

			// ¸ðµç ¼ÂÆÃÀÌ ¿Ï·áµÇ¸é ÀÜ¿©½Ã°£ Update ÁØºñ°¡ µÇ¾úÀ½À» ¼±¾ðÇÑ´Ù.
			pbk.extJS.logoutMessage.updateReady = true;
		}

		// È­¸éÀÇ Áß¾Ó¿¡ À§Ä¡ÇÑ´Ù.
		pbk.extJS.logoutMessage.logoutLayer.center();
	},

	/**
	 * ·Î±×¾Æ¿ô ÀÜ¿©½Ã°£ Message Box¿¡ ÀÜ¿©½Ã°£À» ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù.
	 * @param {String} target UpdateÇÒ ¿µ¿ªÀÇ Class Name
	 * @param {String} data UpdateÇÒ ³»¿ë
	 */
	updateTime: function(target, data){
		// ÃÊ±â ¼ÂÆÃÀÌ ¸ðµÎ ¿Ï·áµÇ¾úÀ»¶§ ÀÜ¿©½Ã°£À» Update¸¦ ÇÑ´Ù.
		if (pbk.extJS.logoutMessage.updateReady) {
			if (null != pbk.extJS.logoutMessage.logoutLayer) {
				var dialogID = pbk.extJS.logoutMessage.logoutLayer.getId();
				var targetObj = $(dialogID).getElementsByClassName(target);
				targetObj[0].innerHTML = data;
			}
		}
	},

	/**
	 * ·Î±×¾Æ¿ô ÀÜ¿©½Ã°£ Message Box¸¦ È­¸é¿¡¼­ Á¦°ÅÇÕ´Ï´Ù.
	 */
	close: function(){
		if (null != pbk.extJS.logoutMessage.logoutLayer) {
            pbk.extJS.logoutMessage.logoutLayer.close();
			pbk.extJS.logoutMessage.logoutLayer = null;
			pbk.extJS.logoutMessage.updateReady = false;
//			pbk.extJS.layerMask.close();
		}
	}
};


/**
 * MessageBox(Alert, Confirm) °ü·Ã ÆÐÅ°Áö
 */
pbk.extJS.messageBox = {
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Messagebox Dialog °´Ã¼Á¤º¸¸¦ ´ã´Â º¯¼ö
	 */
	dialog: null,

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÇöÀç ¶ç¿öÁ® ÀÖ´Â Messagebox Dialog Á¤º¸
	 */
	dialogList: new Array(),

	/**
	 * Alert ¼º°ÝÀÇ Message Box¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {Config} options È¯°æ ¼³Á¤
	 * @return {Boolean} È®ÀÎ: true, Ã¢ ´Ý±â: false
	 */
	alertMsgBox: function(options){
		/*
		 * ---------------------------------------------------
		 * Config ¿É¼Ç
		 * ---------------------------------------------------
		 * title	: (required)(String) MessageBox Á¦¸ñ
		 * message	: (required)(String) ³»¿ë
		 * callback	: (optional)(Function) ¹öÆ°Å¬¸¯ÈÄ ¹ß»ýÇÒ ÀÌº¥Æ®
		 * ---------------------------------------------------
		 *
		 * ---------------------------------------------------
		 * example)
		 * ---------------------------------------------------
		 *   alertMsgBox({
		 *   	title: '°Ë»ç ¿À·ù',
		 *   	message: '¾ÆÀÌµð°¡ Àß¸øµÇ¾ú½À´Ï´Ù.<br><br>È®ÀÎÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.',
		 *   	callback: function(e){
		 *   		if (e == true){	// È®ÀÎ ¹öÆ° Å¬¸¯½Ã
		 *   			objID.focus();
		 *   		}
		 *   	}
		 *   });
		 * ---------------------------------------------------
		 */
		var _options = {
			title: options.title,
			message: options.message,
			callback: options.callback
		}


		pbk.extJS.messageBox.setAlertDialogForm(_options);
	},

	/**
	 * Information ¼º°ÝÀÇ Message Box¸¦ Ãâ·ÂÇÕ´Ï´Ù. (Confirm ½ºÅ¸ÀÏÀÇ ¾ÆÀÌÄÜ - µðÀÚÀÎ ÀÛ¾÷Áß)
	 * @param {Config} options È¯°æ ¼³Á¤
	 * @return {Boolean} È®ÀÎ: true, Ãë¼Ò: false, Ã¢ ´Ý±â: false
	 */
	infoMsgBox: function(options){
		/*
		 * ---------------------------------------------------
		 * Config ¿É¼Ç
		 * ---------------------------------------------------
		 * isConfirm	: (required)(Boolean)  Confirm Çü½ÄÀ¸·Î Dialog¸¦ Ãâ·ÂÇÒÁö ¿©ºÎ
		 * title		: (required)(String)   MessageBox Á¦¸ñ
		 * message		: (required)(String)   ³»¿ë
		 * callback		: (optional)(Function) ¹öÆ° Å¬¸¯ÈÄ ¹ß»ýÇÒ ÀÌº¥Æ®
		 * ---------------------------------------------------
		 *
		 * ---------------------------------------------------
		 * example)
		 * ---------------------------------------------------
		 * 	infoMsgBox({
		 * 		isConfirm: false,
		 * 		title: '¾ÆÀÌµð Áßº¹°Ë»ç',
		 * 		message: 'ÀÌ¹Ì µî·ÏµÈ ¾ÆÀÌµð°¡ ÀÖ½À´Ï´Ù.<br><br>´Ù½Ã ÇÑ¹ø È®ÀÎÇØ ÁÖ¼¼¿ä',
		 * 		callback: function(e){
		 * 			if (e == true){	// È®ÀÎ¹öÆ° Å¬¸¯½Ã
		 * 				objID.focus();
		 * 			}
		 * 			else {	// Ã¢ ´Ý±â ¶Ç´Â Ãë¼Ò ¹öÆ° Å¬¸¯½Ã
		 * 				objID.value = '';
		 * 			}
		 * 		}
		 * 	});
		 * ---------------------------------------------------
		 */

		/*
		 * MSN_MESSENGER_YN º¯¼ö´Â msn messenger ¹ðÅ· template master¿¡ Á¤ÀÇ µÇ¾î ÀÖÀ½.Jiho Park
		 */
		var isMsnMessenger = false;
		if (MSN_MESSENGER_YN != null && MSN_MESSENGER_YN != undefined) {
			if (MSN_MESSENGER_YN == "Y") {
				isMsnMessenger = true;
			}
		}

		if (isMsnMessenger == true) {
			// MSN ¸Þ½ÅÁ® ¹ðÅ·
			var _options = {
				isConfirm: false,
				title: options.title,
				message: options.message,
				icon: 'info',
				callback: options.callback
			}
			pbk.extJS.messageBox.setInfoConfirmDialogForm(_options);

		} else {
			// ÀÏ¹Ý ¹ðÅ·
			var _options = {
				isConfirm: options.isConfirm,
				title: options.title,
				message: options.message,
				icon: 'info',
				callback: options.callback
			}
			pbk.extJS.messageBox.setBaseDialogForm(_options);
		}

	},


	/**
	 * ¾ÆÀÌÄÜÀÌ ¾ø´Â Confirm ¼º°ÝÀÇ Message Box¸¦ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {Config} options È¯°æ ¼³Á¤
	 * @return {Boolean} È®ÀÎ: true, Ãë¼Ò: false, Ã¢ ´Ý±â: false
	 */
	infoConfirmMsgBox: function(options){
		/*
		 * ---------------------------------------------------
		 * Config ¿É¼Ç
		 * ---------------------------------------------------
		 * isConfirm	: (required)(Boolean)  Confirm Çü½ÄÀ¸·Î Dialog¸¦ Ãâ·ÂÇÒÁö ¿©ºÎ
		 * title		: (required)(String)   MessageBox Á¦¸ñ
		 * message		: (required)(String)   ³»¿ë
		 * callback		: (optional)(Function) ¹öÆ° Å¬¸¯ÈÄ ¹ß»ýÇÒ ÀÌº¥Æ®
		 * ---------------------------------------------------
		 *
		 * ---------------------------------------------------
		 * example)
		 * ---------------------------------------------------
		 * 	infoConfirmMsgBox({
		 * 		isConfirm: false,
		 * 		title: '¾ÆÀÌµð Áßº¹°Ë»ç',
		 * 		message: 'ÀÌ¹Ì µî·ÏµÈ ¾ÆÀÌµð°¡ ÀÖ½À´Ï´Ù.<br><br>´Ù½Ã ÇÑ¹ø È®ÀÎÇØ ÁÖ¼¼¿ä',
		 * 		callback: function(e){
		 * 			if (e == true){	// È®ÀÎ¹öÆ° Å¬¸¯½Ã
		 * 				objID.focus();
		 * 			}
		 * 			else {	// Ã¢ ´Ý±â ¶Ç´Â Ãë¼Ò ¹öÆ° Å¬¸¯½Ã
		 * 				objID.value = '';
		 * 			}
		 * 		}
		 * 	});
		 * ---------------------------------------------------
		 */

		var _options = {
			isConfirm: options.isConfirm,
			title: options.title,
			message: options.message,
			icon: 'info',
			callback: options.callback
		}

		pbk.extJS.messageBox.setInfoConfirmDialogForm(_options);
	},

	/**
	 * Error ¼º°ÝÀÇ Message Box¸¦ Ãâ·ÂÇÕ´Ï´Ù. (Alert ½ºÅ¸ÀÏÀÇ ¾ÆÀÌÄÜ)
	 * @param {Config} options È¯°æ ¼³Á¤
	 * @return {Boolean} È®ÀÎ: true, Ãë¼Ò: false, Ã¢ ´Ý±â: false
	 */
	errMsgBox: function(options){
		/*
		 * ---------------------------------------------------
		 * Config ¿É¼Ç
		 * ---------------------------------------------------
		 * isConfirm	: (required)(Boolean)  Confirm Çü½ÄÀ¸·Î Dialog¸¦ Ãâ·ÂÇÒÁö ¿©ºÎ
		 * title		: (required)(String)   MessageBox Á¦¸ñ
		 * message		: (required)(String)   ³»¿ë
		 * callback		: (optional)(Function) ¹öÆ° Å¬¸¯ÈÄ ¹ß»ýÇÒ ÀÌº¥Æ®
		 * ---------------------------------------------------
		 *
		 * ---------------------------------------------------
		 * example)
		 * ---------------------------------------------------
		 * 	infoMsgBox({
		 * 		isConfirm: false,
		 * 		title: '¾ÆÀÌµð Áßº¹°Ë»ç',
		 * 		message: 'ÀÌ¹Ì µî·ÏµÈ ¾ÆÀÌµð°¡ ÀÖ½À´Ï´Ù.<br><br>´Ù½Ã ÇÑ¹ø È®ÀÎÇØ ÁÖ¼¼¿ä',
		 * 		callback: function(e){
		 * 			if (e == true){	// È®ÀÎ¹öÆ° Å¬¸¯½Ã
		 * 				objID.focus();
		 * 			}
		 * 			else {	// Ã¢ ´Ý±â ¶Ç´Â Ãë¼Ò ¹öÆ° Å¬¸¯½Ã
		 * 				objID.value = '';
		 * 			}
		 * 		}
		 * 	});
		 * ---------------------------------------------------
		 */

		/*
		 * MSN_MESSENGER_YN º¯¼ö´Â msn messenger ¹ðÅ· template master¿¡ Á¤ÀÇ µÇ¾î ÀÖÀ½.Jiho Park
		 */
		var isMsnMessenger = false;
		if (MSN_MESSENGER_YN != null && MSN_MESSENGER_YN != undefined) {
			if (MSN_MESSENGER_YN == "Y") {
				isMsnMessenger = true;
			}
		}

		if (isMsnMessenger == true) {
			// MSN ¸Þ½ÅÁ® ¹ðÅ·
			var _options = {
				isConfirm: false,
				title: options.title,
				message: options.message,
				icon: 'error',
				callback: options.callback
			}
			pbk.extJS.messageBox.setInfoConfirmDialogForm(_options);

		} else {
			// ÀÏ¹Ý ¹ðÅ·
			var _options = {
				isConfirm: options.isConfirm,
				title: options.title,
				message: options.message,
				icon: 'error',
				callback: options.callback
			}
			pbk.extJS.messageBox.setBaseDialogForm(_options);
		}

	},

	/**
	 * 20090210-1	 * 
	 * Standard error Message Box¸¦ Ãâ·ÂÇÕ´Ï´Ù. (Alert ½ºÅ¸ÀÏÀÇ ¾ÆÀÌÄÜ)
	 * 
	 * @param {Config} options È¯°æ ¼³Á¤ 
	 * @param {Object} options
	 */
	errStandardMsgBox : function(options){
		var _options = {
			title: options.title,
			message: options.message,
			detailMsg : options.detailMsg,
			detailFunc :  options.detailFunc,
			icon: 'error',
			callback: options.callback
		}
		try {
			pbk.extJS.messageBox.setStrandardErrDialogForm(_options);
		} catch (e){
			alert(e.toString());
		}		
	},
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * È®ÀÎ¹öÆ°À» Å¬¸¯ÇßÀ»¶§ ¹ß»ýÇÒ ÀÌº¥Æ®ÀÔ´Ï´Ù.
	 * @param {Function} callback »ç¿ëÀÚ Á¤ÀÇ Callback ÇÔ¼ö
	 * @param {String} dialogID Ã¢À» ´ÝÀº ´ÙÀÌ¾ó·Î±×ÀÇ ID
	 */
	eventOk: function(callback, dialogID){
		pbk.extJS.messageBox.closeDialog(dialogID);
		if (callback != undefined && null != callback) {
			callback(true);
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ´Ý±â ¶Ç´Â Ãë¼Ò¹öÆ°À» Å¬¸¯ÇßÀ» ¶§ ¹ß»ýÇÒ ÀÌº¥Æ® ÀÔ´Ï´Ù.
	 * @param {Function} callback »ç¿ëÀÚ Á¤ÀÇ Callback ÇÔ¼ö
	 * @param {String} dialogID Ã¢À» ´ÝÀº ´ÙÀÌ¾ó·Î±×ÀÇ ID
	 */
	eventCancel: function(callback, dialogID){
		pbk.extJS.messageBox.closeDialog(dialogID);
		if (callback != undefined && null != callback) {
			callback(false);
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ¾ÆÀÌÄÜÀÌ ¾ø´Â Confirm Message Box¸¦ È­¸é¿¡ ¼ÂÆÃÇÕ´Ï´Ù.
	 * @param {Config} options È¯°æ¼³Á¤
	 */
	setInfoConfirmDialogForm: function(options){
		// 1. ±âº» Dialog ¼ÂÆÃÇÏ±â
		pbk.extJS.messageBox.getBaseDialog(options);
		var dialogID = pbk.extJS.messageBox.dialog.getId();

		// 2. ±âº» µðÀÚÀÎÆû ÀÔÈ÷±â
		var baseHTML = pbk.extJS.messageBox.getInfoConfirmDialogHTML(options);

		// 3. ³»¿ë Update
		pbk.extJS.messageBox.dialog.header.update(baseHTML[0].innerHTML);
		pbk.extJS.messageBox.dialog.body.update(baseHTML[1].innerHTML);

		// 4. ÀÌº¥Æ® ºÎ¿©
		document.getElementById('ext-msg-btnok-' + dialogID).onclick = function(){
			pbk.extJS.messageBox.eventOk(options.callback, dialogID);
			return false;
		};

		if (options.isConfirm != undefined && null != options.isConfirm) {
			if (options.isConfirm) {
				document.getElementById('ext-msg-btncancel-' + dialogID).onclick = function(){
					pbk.extJS.messageBox.eventCancel(options.callback, dialogID)
					return false;
				};
			}
		}

		document.getElementById('ext-msg-close-' + dialogID).onclick = function(){
			pbk.extJS.messageBox.eventCancel(options.callback, dialogID);
			return false;
		};

		// 5. Dialog ³ÐÀÌ Á¶Àý ¹× °¡¿îµ¥¿¡ Ç¥½Ã
		var objMain = $('ext-errmsg-header-' + dialogID);
		pbk.extJS.messageBox.dialog.setSize(objMain.getWidth(), 'auto');

		/*
		 * MSN_MESSENGER_YN º¯¼ö´Â msn messenger ¹ðÅ· template master¿¡ Á¤ÀÇ µÇ¾î ÀÖÀ½.Jiho Park
		 */
		var isMsnMessenger = false;
		if (MSN_MESSENGER_YN != null && MSN_MESSENGER_YN != undefined) {
			if (MSN_MESSENGER_YN == "Y") {
				isMsnMessenger = true;
			}
		}

		if (isMsnMessenger == true) {
			// MSN ¸Þ½ÅÁ® ¹ðÅ·
			pbk.extJS.messageBox.dialog.setPosition(37,150);
		} else {
			// ÀÏ¹Ý ¹ðÅ·
			pbk.extJS.messageBox.dialog.center();
		}

		// 6. ÃÖ»óÀ§ Àû¿ëµÈ z-index °ª °¡Á®¿Í¼­ LayerMask Ç¥Çö
//		var zIndex = pbk.extJS.layerMask.getZIndex();
//		pbk.extJS.layerMask.show(zIndex);
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Alert Message Box¸¦ È­¸é¿¡ ¼ÂÆÃÇÕ´Ï´Ù.
	 * @param {Config} options È¯°æ¼³Á¤
	 */
	setAlertDialogForm: function(options){
		// 1. ±âº» Dialog ¼ÂÆÃÇÏ±â
		pbk.extJS.messageBox.getBaseDialog(options);
		var dialogID = pbk.extJS.messageBox.dialog.getId();

		// 2. ±âº» µðÀÚÀÎÆû ÀÔÈ÷±â
		var baseHTML = pbk.extJS.messageBox.getAlertDialogHTML(options.title, options.message);

		// 3. ³»¿ë Update
		pbk.extJS.messageBox.dialog.header.update(baseHTML[0].innerHTML);
		pbk.extJS.messageBox.dialog.body.update(baseHTML[1].innerHTML);

		// 4. ÀÌº¥Æ® ºÎ¿©
		document.getElementById('ext-msg-btnok-' + dialogID).onclick = function(){
			pbk.extJS.messageBox.eventOk(options.callback, dialogID);
			return false;
		};

		document.getElementById('ext-msg-close-' + dialogID).onclick = function(){
			pbk.extJS.messageBox.eventCancel(options.callback, dialogID);
			return false;
		};

		// 5. Dialog ³ÐÀÌ Á¶Àý ¹× °¡¿îµ¥¿¡ Ç¥½Ã
		var objMain = $('ext-errmsg-header-' + dialogID);
		pbk.extJS.messageBox.dialog.setSize(objMain.getWidth(), 'auto');
		pbk.extJS.messageBox.dialog.center();

		// 6. ÃÖ»óÀ§ Àû¿ëµÈ z-index °ª °¡Á®¿Í¼­ LayerMask Ç¥Çö
//		var zIndex = pbk.extJS.layerMask.getZIndex();
//		pbk.extJS.layerMask.show(zIndex);
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Info, Error Message Box¸¦ È­¸é¿¡ ¼ÂÆÃÇÕ´Ï´Ù.
	 * @param {Config} options È¯°æ¼³Á¤
	 */
	setBaseDialogForm: function(options){
		// 1. ±âº» Dialog ¼ÂÆÃÇÏ±â
		pbk.extJS.messageBox.getBaseDialog(options);
		var dialogID = pbk.extJS.messageBox.dialog.getId();

		// 2. ±âº» µðÀÚÀÎÆû ÀÔÈ÷±â
		var baseHTML = pbk.extJS.messageBox.getBaseDialogHTML(options);

		// 3. ³»¿ë Update
		pbk.extJS.messageBox.dialog.header.update(baseHTML[0].innerHTML);
		pbk.extJS.messageBox.dialog.body.update(baseHTML[1].innerHTML);

		// 4. ÀÌº¥Æ® ºÎ¿©
		document.getElementById('ext-msg-btnok-' + dialogID).onclick = function(){
			pbk.extJS.messageBox.eventOk(options.callback, dialogID);
			return false;
		};

		if (options.isConfirm != undefined && null != options.isConfirm) {
			if (options.isConfirm) {
				document.getElementById('ext-msg-btncancel-' + dialogID).onclick = function(){
					pbk.extJS.messageBox.eventCancel(options.callback, dialogID)
					return false;
				};
			}
		}

		document.getElementById('ext-msg-close-' + dialogID).onclick = function(){
			pbk.extJS.messageBox.eventCancel(options.callback, dialogID);
			return false;
		};

		// 5. Dialog ³ÐÀÌ Á¶Àý ¹× °¡¿îµ¥¿¡ Ç¥½Ã
		var objMain = $('ext-errmsg-header-' + dialogID);
		pbk.extJS.messageBox.dialog.setSize(objMain.getWidth(), 'auto');
		pbk.extJS.messageBox.dialog.center();

		// 6. ÃÖ»óÀ§ Àû¿ëµÈ z-index °ª °¡Á®¿Í¼­ LayerMask Ç¥Çö
//		var zIndex = pbk.extJS.layerMask.getZIndex();
//        pbk.extJS.layerMask.show(zIndex);

	},

	/**
	 * 20090210-1
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Ç¥ÁØ Error Message Box¸¦ È­¸é¿¡ ¼ÂÆÃÇÕ´Ï´Ù.
	 * @param {Config} options È¯°æ¼³Á¤
	 */
	setStrandardErrDialogForm: function(options){
		// 1. ±âº» Dialog ¼ÂÆÃÇÏ±â
		pbk.extJS.messageBox.getBaseDialog(options);
		var dialogID = pbk.extJS.messageBox.dialog.getId();

		// 2. ±âº» µðÀÚÀÎÆû ÀÔÈ÷±â
		var baseHTML = pbk.extJS.messageBox.getBaseStandardErrDialogHTML(options);

		// 3. ³»¿ë Update
		pbk.extJS.messageBox.dialog.header.update(baseHTML[0].innerHTML);
		pbk.extJS.messageBox.dialog.body.update(baseHTML[1].innerHTML);
		
		// 4. ÀÌº¥Æ® ºÎ¿©
		document.getElementById('ext-msg-btnok-' + dialogID).onclick = function(){
			pbk.extJS.messageBox.eventOk(options.callback, dialogID);
			return false;
		};
				
		document.getElementById('ext-msg-close-' + dialogID).onclick = function(){
			pbk.extJS.messageBox.eventCancel(options.callback, dialogID);
			return false;
		};

		// 5. Dialog ³ÐÀÌ Á¶Àý ¹× °¡¿îµ¥¿¡ Ç¥½Ã
		var objMain = $('ext-errmsg-header-' + dialogID);
		pbk.extJS.messageBox.dialog.setSize(objMain.getWidth(), 'auto');
		pbk.extJS.messageBox.dialog.center();

	},	
	
	/**
	 * ÀÛ¾÷Áß
	 * @param {Object} options
	 */
	getInfoConfirmDialogHTML: function(options){
		var dialogID = pbk.extJS.messageBox.dialog.getId();

		var dummyHeader = document.createElement('div');
		var dummyBody = document.createElement('div');

		// Header Layout
		var headerLayout = document.createElement('div');
		headerLayout.setAttribute('id', 'ext-errmsg-header-' + dialogID);
		if (headerLayout.style.cssFloat != undefined) {
			headerLayout.style.cssFloat = 'left';
		}
		else {
			headerLayout.style.styleFloat = 'left';
		}

		var headerGrp = document.createElement('div');
		headerGrp.setAttribute('id', 'pop_error_4');

		var headerGrp_Sub = document.createElement('div');
		headerGrp_Sub.setAttribute('class', 'pop_error_top');

		var headerTitle = document.createElement('div');
		headerTitle.setAttribute('class', 'head');

		if (options.title != undefined && null != options.title) {
			headerTitle.innerHTML = options.title;
		}
		else {
			headerTitle.innerHTML = '';
		}

		var headerImgAnchor = document.createElement('a');
		headerImgAnchor.setAttribute('id', 'ext-msg-close-' + dialogID);
		headerImgAnchor.href = 'javascript:void(0);';

		var headerImg = document.createElement('img');
		headerImg.setAttribute('class', 'close');
		headerImg.setAttribute('alt', 'Ã¢´Ý±â');
		headerImg.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/btn_close_2.gif';

		headerImgAnchor.appendChild(headerImg);

		headerGrp_Sub.appendChild(headerTitle);
		headerGrp_Sub.appendChild(headerImgAnchor);
		headerGrp.appendChild(headerGrp_Sub);
		headerLayout.appendChild(headerGrp);

		// Body Layout
		var bodyLayout = document.createElement('div');
		bodyLayout.setAttribute('id', 'ext-errmsg-body-' + dialogID);
		if (bodyLayout.style.cssFloat != undefined) {
			bodyLayout.style.cssFloat = 'left';
		}
		else {
			bodyLayout.style.styleFloat = 'left';
		}

		var bodyGrp = document.createElement('div');
		bodyGrp.setAttribute('id', 'pop_error_4');

		var bodyGrp_Sub = document.createElement('div');
		bodyGrp_Sub.setAttribute('class', 'pop_error_cont');

		var bodyContent = document.createElement('p');
		if (options.message != undefined && null != options.message) {
			bodyContent.innerHTML = options.message;
		}
		else {
			bodyContent.innerHTML = '';
		}

		var btnGroup = document.createElement('div');
		btnGroup.setAttribute('class', 'btn');

		var btnOk = document.createElement('a');
		var btnOk_Img = document.createElement('img');
		btnOk.setAttribute('id', 'ext-msg-btnok-' + dialogID);
		btnOk.href = 'javascript:void(0);';
		btnOk_Img.setAttribute('alt', 'È®ÀÎ');
		btnOk_Img.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/common/btn/btn_confirm.gif';
		btnOk.appendChild(btnOk_Img);

		var btnCancel = document.createElement('a');
		var btnCancel_Img = document.createElement('img');
		btnCancel.setAttribute('id', 'ext-msg-btncancel-' + dialogID);
		btnCancel.href = 'javascript:void(0);';
		btnCancel_Img.setAttribute('alt', 'Ãë¼Ò');
		btnCancel_Img.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/common/btn/btn_cancel18.gif';
		btnCancel.appendChild(btnCancel_Img);

		btnGroup.appendChild(btnOk);
		if (options.isConfirm != undefined && null != options.isConfirm) {
			if (options.isConfirm) {
				btnGroup.appendChild(btnCancel);
			}
		}

		bodyGrp_Sub.appendChild(bodyContent);
		bodyGrp_Sub.appendChild(btnGroup);
		bodyGrp.appendChild(bodyGrp_Sub);
		bodyLayout.appendChild(bodyGrp);

		dummyHeader.appendChild(headerLayout);
		dummyBody.appendChild(bodyLayout);

		return [dummyHeader, dummyBody];
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Alert Message BoxÀÇ HTMLÀ» »ý¼ºÇÕ´Ï´Ù.
	 * @param {String} title Á¦¸ñ
	 * @param {String} message ³»¿ë
	 * @return {Array} Title, Body ¿µ¿ª HTMLÄÚµå
	 */
	getAlertDialogHTML: function(title, message){
		var dialogID = pbk.extJS.messageBox.dialog.getId();

		var dummyHeader = document.createElement('div');
		var dummyBody = document.createElement('div');

		// Header
		var headerGroup = document.createElement('div');
		headerGroup.setAttribute('id', 'ext-errmsg-header-' + dialogID);
		if (headerGroup.style.cssFloat != undefined) {
			headerGroup.style.cssFloat = 'left';
		}
		else {
			headerGroup.style.styleFloat = 'left';
		}

		var headerLayout = document.createElement('div');
		headerLayout.setAttribute('id', 'pop_error_3');

		var headerTop = document.createElement('div');
		headerTop.setAttribute('class', 'pop_error_top');

		var headerMessage = document.createElement('div');
		headerMessage.setAttribute('class', 'head');

		if (title != undefined && null != title) {
			headerMessage.innerHTML = title;
		}
		else {
			headerMessage.innerHTML = '¿À·ù';
		}

		var headerAnchor = document.createElement('a');
		headerAnchor.setAttribute('id', 'ext-msg-close-' + dialogID);
		headerAnchor.href = 'javascript:void(0);';

		var headerImg = document.createElement('img');
		headerImg.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/btn_close_3.gif';
		headerImg.setAttribute('alt', 'Ã¢´Ý±â');
		headerImg.setAttribute('class', 'close');

		headerAnchor.appendChild(headerImg);
		headerTop.appendChild(headerMessage);
		headerTop.appendChild(headerAnchor);
		headerLayout.appendChild(headerTop);
		headerGroup.appendChild(headerLayout);
		dummyHeader.appendChild(headerGroup);

		// Body
		var bodyGroup = document.createElement('div');
		bodyGroup.setAttribute('id', 'ext-errmsg-body-' + dialogID);
		if (bodyGroup.style.cssFloat != undefined) {
			bodyGroup.style.cssFloat = 'left';
		}
		else {
			bodyGroup.style.styleFloat = 'left';
		}

		var bodyLayout = document.createElement('div');
		bodyLayout.setAttribute('id', 'pop_error_3');

		var bodyContent = document.createElement('div');
		bodyContent.setAttribute('class', 'pop_error_cont');

		var bodyMessage = document.createElement('p');
		if (message != undefined && null != message) {
			bodyMessage.innerHTML = message;
		}
		else {
			bodyMessage.innerHTML = '';
		}

		var bodyButtonDiv = document.createElement('div');
		bodyButtonDiv.setAttribute('class', 'btn');

		var bodyAnchor = document.createElement('a');
		bodyAnchor.setAttribute('id', 'ext-msg-btnok-' + dialogID);
		bodyAnchor.href = 'javascript:void(0);';

		var bodyButton = document.createElement('img');
		bodyButton.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/common/btn/btn_confirm.gif';
		bodyButton.setAttribute('alt', 'È®ÀÎ');

		bodyAnchor.appendChild(bodyButton);
		bodyButtonDiv.appendChild(bodyAnchor);
		bodyContent.appendChild(bodyMessage);
		bodyContent.appendChild(bodyButtonDiv);
		bodyLayout.appendChild(bodyContent);
		bodyGroup.appendChild(bodyLayout);
		dummyBody.appendChild(bodyGroup);

		return [dummyHeader, dummyBody];
	},

	/**
	 * * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Info, Error Message BoxÀÇ HTMLÀ» »ý¼ºÇÕ´Ï´Ù.
	 * @param {Config} options È¯°æ¼³Á¤³»
	 * @return {Array} Title, Body ¿µ¿ª HTMLÄÚµå
	 */
	getBaseDialogHTML: function(options){
		var dialogID = pbk.extJS.messageBox.dialog.getId();

		var dummyHeader = document.createElement('div');
		var dummyBody = document.createElement('div');

		// Header Layout
		var headerLayout = document.createElement('div');
		headerLayout.setAttribute('id', 'ext-errmsg-header-' + dialogID);
		if (headerLayout.style.cssFloat != undefined) {
			headerLayout.style.cssFloat = 'left';
		}
		else {
			headerLayout.style.styleFloat = 'left';
		}

		var headerGrp = document.createElement('div');
		headerGrp.setAttribute('id', 'pop_error_2');

		var headerGrp_Sub = document.createElement('div');
		headerGrp_Sub.setAttribute('class', 'pop_error_top');

		var headerTitle = document.createElement('div');
		headerTitle.setAttribute('class', 'head');

		if (options.title != undefined && null != options.title) {
			headerTitle.innerHTML = options.title;
		}
		else {
			headerTitle.innerHTML = '';
		}

		var headerImgAnchor = document.createElement('a');
		headerImgAnchor.setAttribute('id', 'ext-msg-close-' + dialogID);
		headerImgAnchor.href = 'javascript:void(0);';

		var headerImg = document.createElement('img');
		headerImg.setAttribute('class', 'close');
		headerImg.setAttribute('alt', 'Ã¢´Ý±â');
		headerImg.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/btn_close_2.gif';

		headerImgAnchor.appendChild(headerImg);

		headerGrp_Sub.appendChild(headerTitle);
		headerGrp_Sub.appendChild(headerImgAnchor);
		headerGrp.appendChild(headerGrp_Sub);
		headerLayout.appendChild(headerGrp);

		// Body Layout
		var bodyLayout = document.createElement('div');
		bodyLayout.setAttribute('id', 'ext-errmsg-body-' + dialogID);
		if (bodyLayout.style.cssFloat != undefined) {
			bodyLayout.style.cssFloat = 'left';
		}
		else {
			bodyLayout.style.styleFloat = 'left';
		}

		var bodyGrp = document.createElement('div');
		bodyGrp.setAttribute('id', 'pop_error_2');

		var bodyGrp_Sub = document.createElement('div');
		bodyGrp_Sub.setAttribute('class', 'pop_error_cont');

		var bodyTable = document.createElement('table');
		bodyTable.setAttribute('class', 'ctn_txt');

		var bodyTbody = document.createElement('tbody');
		var bodyTr = document.createElement('tr');
		var bodyTh = document.createElement('th');
		var bodyTd = document.createElement('td');
		var bodyIcon = document.createElement('img');
		bodyIcon.setAttribute('alt', '');

		if (options.icon != undefined && null != options.icon) {
			switch (options.icon) {
				case 'error':
					bodyIcon.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/icon_caution.gif';
					break;
				case 'info':
					bodyIcon.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/icon_caution.gif';
					break;
				default:
					bodyIcon.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/icon_caution.gif';
					break;
			}
		}

		bodyTh.appendChild(bodyIcon);
		if (options.message != undefined && null != options.message) {
			bodyTd.innerHTML = options.message;
		}
		else {
			bodyTd.innerHTML = '';
		}
		bodyTr.appendChild(bodyTh);
		bodyTr.appendChild(bodyTd);
		bodyTbody.appendChild(bodyTr);
		bodyTable.appendChild(bodyTbody);

		var btnGroup = document.createElement('div');
		btnGroup.setAttribute('class', 'btn');

		var btnOk = document.createElement('a');
		var btnOk_Img = document.createElement('img');
		btnOk.setAttribute('id', 'ext-msg-btnok-' + dialogID);
		btnOk.href = 'javascript:void(0);';
		btnOk_Img.setAttribute('alt', 'È®ÀÎ');
		btnOk_Img.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/common/btn/btn_confirm.gif';
		btnOk.appendChild(btnOk_Img);

		var btnCancel = document.createElement('a');
		var btnCancel_Img = document.createElement('img');
		btnCancel.setAttribute('id', 'ext-msg-btncancel-' + dialogID);
		btnCancel.href = 'javascript:void(0);';
		btnCancel_Img.setAttribute('alt', 'Ãë¼Ò');
		btnCancel_Img.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/common/btn/btn_cancel18.gif';
		btnCancel.appendChild(btnCancel_Img);

		btnGroup.appendChild(btnOk);
		if (options.isConfirm != undefined && null != options.isConfirm) {
			if (options.isConfirm) {
				btnGroup.appendChild(btnCancel);
			}
		}

		bodyGrp_Sub.appendChild(bodyTable);
		bodyGrp_Sub.appendChild(btnGroup);
		bodyGrp.appendChild(bodyGrp_Sub);
		bodyLayout.appendChild(bodyGrp);

		dummyHeader.appendChild(headerLayout);
		dummyBody.appendChild(bodyLayout);

		return [dummyHeader, dummyBody];
	},

	/**
	 * 20090210-1
	 * * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Standard Error Message BoxÀÇ HTMLÀ» »ý¼ºÇÕ´Ï´Ù.
	 * @param {Config} options È¯°æ¼³Á¤³»
	 * @return {Array} Title, Body ¿µ¿ª HTMLÄÚµå
	 */
	getBaseStandardErrDialogHTML: function(options){
		var dialogID = pbk.extJS.messageBox.dialog.getId();

		var dummyHeader = document.createElement('div');
		var dummyBody = document.createElement('div');

		// Header Layout
		var headerLayout = document.createElement('div');
		headerLayout.setAttribute('id', 'ext-errmsg-header-' + dialogID);
		if (headerLayout.style.cssFloat != undefined) {
			headerLayout.style.cssFloat = 'left';
		}
		else {
			headerLayout.style.styleFloat = 'left';
		}

		var headerGrp = document.createElement('div');
		headerGrp.setAttribute('id', 'pop_error_2');

		var headerGrp_Sub = document.createElement('div');
		headerGrp_Sub.setAttribute('class', 'pop_error_top');

		var headerTitle = document.createElement('div');
		headerTitle.setAttribute('class', 'head');

		if (options.title != undefined && null != options.title) {
			headerTitle.innerHTML = options.title;
		}
		else {
			headerTitle.innerHTML = '';
		}

		var headerImgAnchor = document.createElement('a');
		headerImgAnchor.setAttribute('id', 'ext-msg-close-' + dialogID);
		headerImgAnchor.href = 'javascript:void(0);';

		var headerImg = document.createElement('img');
		headerImg.setAttribute('class', 'close');
		headerImg.setAttribute('alt', 'Ã¢´Ý±â');
		headerImg.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/btn_close_2.gif';
		
		headerImgAnchor.appendChild(headerImg);

		headerGrp_Sub.appendChild(headerTitle);
		headerGrp_Sub.appendChild(headerImgAnchor);
		headerGrp.appendChild(headerGrp_Sub);
		headerLayout.appendChild(headerGrp);

		// Body Layout
		var bodyLayout = document.createElement('div');
		bodyLayout.setAttribute('id', 'ext-errmsg-body-' + dialogID);
		if (bodyLayout.style.cssFloat != undefined) {
			bodyLayout.style.cssFloat = 'left';
		}
		else {
			bodyLayout.style.styleFloat = 'left';
		}

		var bodyGrp = document.createElement('div');
		bodyGrp.setAttribute('id', 'pop_error_2');

		var bodyGrp_Sub = document.createElement('div');
		bodyGrp_Sub.setAttribute('class', 'pop_error_cont');

		var bodyTable = document.createElement('table');
		bodyTable.setAttribute('class', 'ctn_txt');

		var bodyTbody = document.createElement('tbody');
		var bodyTr = document.createElement('tr');
		var bodyTh = document.createElement('th');
		var bodyTd = document.createElement('td');
		var bodyIcon = document.createElement('img');
		bodyIcon.setAttribute('alt', '');

		if (options.icon != undefined && null != options.icon) {
			switch (options.icon) {
				case 'error':
					bodyIcon.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/icon_caution.gif';
					break;
				case 'info':
					bodyIcon.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/icon_caution.gif';
					break;
				default:
					bodyIcon.src = pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/popup/icon_caution.gif';
					break;
			}
		}

		bodyTh.appendChild(bodyIcon);
		if (options.message != undefined && null != options.message) {
			bodyTd.innerHTML = options.message;
		}
		else {
			bodyTd.innerHTML = '';
		}
		bodyTr.appendChild(bodyTh);
		bodyTr.appendChild(bodyTd);
		bodyTbody.appendChild(bodyTr);
		bodyTable.appendChild(bodyTbody);
		
		/** È®ÀÎ¹öÆ° **/
		var btnGroup = document.createElement('div');
		btnGroup.setAttribute('class', 'btn');

		var btnOk = document.createElement('a');
		var btnOk_Img = document.createElement('img');
		btnOk.setAttribute('id', 'ext-msg-btnok-' + dialogID);
		btnOk.href = 'javascript:void(0);';
		btnOk_Img.setAttribute('alt', 'È®ÀÎ');
		btnOk_Img.src = '/contents/ionresource/images/common/btn/btn_confirm.gif';
		btnOk.appendChild(btnOk_Img);
		btnGroup.appendChild(btnOk);
		
				
        /** ½ÃÀÛ - »ó¼¼ ¸Þ¼¼Áö ¼ÂÆÃ **/
		var detailGroup = document.createElement('div');
		detailGroup.setAttribute('class','detail_togle');
		
		var btnDetail = document.createElement('a');		
		
		btnDetail.href = 'javascript:void(0);';
		var btnDetail_Img = document.createElement('img');
		btnDetail_Img.setAttribute('alt', 'ÀÚ¼¼È÷º¸±â');
		btnDetail_Img.src ='/contents/ionresource/images/common/ico_down3.gif';
		if (options.detailFunc != undefined && options.detailFunc != null) {
			btnDetail_Img.setAttribute('onclick',options.detailFunc);
		}		
		btnDetail.appendChild(btnDetail_Img);
		detailGroup.appendChild(btnDetail);
		
		
		var detailMsgP = document.createElement('p');
		detailMsgP.setAttribute('class','detail');
		detailMsgP.setAttribute('id','_detailMsg');	
		detailMsgP.style.textAlign = 'left';	
		detailMsgP.style.display = 'none';
		if (options.detailMsg != undefined && null != options.detailMsg && options.detailMsg !='') {			
			detailMsgP.innerHTML = options.detailMsg;
		}
		detailGroup.appendChild(detailMsgP);
		
				
		/** ³¡ - »ó¼¼ ¸Þ¼¼Áö ¼ÂÆÃ **/
		
		bodyGrp_Sub.appendChild(bodyTable);
		bodyGrp_Sub.appendChild(btnGroup);
		
		if (options.detailMsg !=undefined && null !=options.detailMsg && options.detailMsg !='') {
			bodyGrp_Sub.appendChild(detailGroup);
		}
		bodyGrp.appendChild(bodyGrp_Sub);
		
		bodyLayout.appendChild(bodyGrp);

		dummyHeader.appendChild(headerLayout);
		dummyBody.appendChild(bodyLayout);

		return [dummyHeader, dummyBody];
	},	
	
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Message Box¸¦ È­¸é °¡¿îµ¥·Î À§Ä¡ÇÕ´Ï´Ù.
	 * @param {Object} e
	 */
	centerToDialog: function(e){
		pbk.extJS.messageBox.dialog.center();
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * MessageboxÀÇ Ã¢À» È­¸é¿¡¼­ Á¦°ÅÇÕ´Ï´Ù.
	 * @param {String} dialogID ´ÝÀ» °´Ã¼ÀÇ ¾ÆÀÌµð
	 */
	closeDialog: function(dialogID){
		var dialogList = pbk.extJS.messageBox.dialogList;

		for (var i = 0; i < dialogList.length; i++) {
			if (dialogList[i].id == dialogID){
				pbk.extJS.messageBox.dialog = dialogList[i];

                //center ÀÌµ¿ ÁÖ¼® 2009.01.06 ±è»óÁØ
//				Event.stopObserving(window, 'resize', pbk.extJS.messageBox.centerToDialog);
//				Event.stopObserving(window, 'scroll', pbk.extJS.messageBox.centerToDialog);

                pbk.extJS.messageBox.dialog.close();
//				pbk.extJS.layerMask.close();

				// ¹è¿­¿¡¼­ Á¦°ÅÇÏ±â
				pbk.extJS.messageBox.dialogList = pbk.extJS.messageBox.dialogList.without(pbk.extJS.messageBox.dialog);

				break;
			}
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * MessageboxÀÇ ±âº» µðÀÚÀÎÆûÀ» ¼ÂÆÃÇÕ´Ï´Ù.
	 */
	getBaseDialog: function(options){
		// ±âº» °´Ã¼ »ý¼º
		pbk.extJS.messageBox.dialog = new Ext.Window({
			resizable: false,
			closable: true, //ESC ¹öÆ° ´­·ÈÀ» °æ¿ì ´Ý±â 2009.05.01
			footer: true,
			width: 600,
			border: false,
			bodyBorder: false,
			plain: true,
			autoHeight: true,
			shadow: false,
			modal: true,
			html: '',
            listeners: {
                beforedestroy: function(w){
                    pbk.extJS.privateEvent.destroy(w);
                }
            }
        });

		pbk.extJS.messageBox.dialogList.push(pbk.extJS.messageBox.dialog);

		pbk.extJS.messageBox.dialog.setVisible(true);
        //2009.05.01 ¿£ÅÍÅ° ÀÌº¥Æ® ¼³Á¤
        var dialogKeyMap = pbk.extJS.messageBox.dialog.getKeyMap();

        dialogKeyMap.addBinding([
            {
                //ENTER ´­·ÈÀ» °æ¿ì È®ÀÎ ¹öÆ° ½ÇÇà
                key: Ext.EventObject.ENTER,
                fn: function(){
                    var dialogId = pbk.extJS.messageBox.dialog.getId();
                    pbk.extJS.messageBox.eventOk(options.callback, dialogId);
                },
                scope: this
            }
        ]);
        ////center ÀÌµ¿ ÁÖ¼® 2009.01.06 ±è»óÁØ
//		Event.observe(window, 'resize', pbk.extJS.messageBox.centerToDialog);
//		Event.observe(window, 'scroll', pbk.extJS.messageBox.centerToDialog);
	}
};


/**
 * *****************************************
 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
 * hana.JPopSubMenu Class ¸¦ ÀÌ¿ëÇÏµµ·Ï ÇÕ´Ï´Ù.
 * *****************************************
 * Popup subMenu °ü·Ã ÆÐÅ°Áö
 */
pbk.extJS.subMenu = {
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Popup subMenuÀÇ ¾ÆÀÌµð
	 */
	subMenuID: 'hana-extjs-submenu',

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÀÌº¥Æ® ¹ß»ýÇÑ ¿ÀºêÁ§Æ®
	 */
	eventObject: null,

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ¸Þ´º¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {Object} obj ¸Þ´º¸¦ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
	 * @param {Array} menuItem ¸Þ´ºÁ¤º¸
	 */
	show: function(obj, menuItem, showId ){
		var menuID = pbk.extJS.subMenu.subMenuID;

		// ÀÌº¥Æ®°¡ ¹ß»ýÇÑ ¿ÀºêÁ§Æ®°¡ ¹Ù·Î ÀÌÀü¿¡ ½ÇÇàµÈ ÀÌº¥Æ®¿Í µ¿ÀÏÇÑ °÷ÀÌ¶ó¸é
		// ¼­ºê¸Þ´º Element¸¦ º¸¿©ÁÜ
		// ¹Ù·Î ÀÌÀü ÀÌº¥Æ®°¡ ¹ß»ýÇÑ ¿ÀºêÁ§Æ®¿Í ´Ù¸£´Ù¸é ¼­ºê¸Þ´º  Element Á¦°Å
		if ($(menuID) != null && $(menuID) != undefined) {
			if (pbk.extJS.subMenu.eventObject != obj) {
				$(menuID).parentNode.removeChild($(menuID));
			}
			else {
				$(menuID).style.display = 'block';
			}
		}

		// ÀÌ¹Ì »ý¼ºµÈ ¼­ºê¸Þ´º°¡ ÀÖÀ» °æ¿ì Pass
		if (!$(menuID)) {
			var htmlData = pbk.extJS.subMenu.getHtmlCode(menuItem);
			var dummyTag = document.createElement('div');

			dummyTag.id = menuID;
			dummyTag.style.position = 'absolute';
			dummyTag.style.display = 'block';

            if( $(showId) != null && $(showId) != undefined ){
                $(showId).appendChild(dummyTag);
            }
            else{
                document.body.appendChild(dummyTag);
            }

			dummyTag.innerHTML = htmlData;

			pbk.extJS.subMenu.eventObject = obj;
		}

		// ¸¶¿ì½ºÀÇ À§Ä¡¸¦ ÃßÀûÇÏ¿© ¼­ºê¸Þ´º¸¦ ¼û±æ½Ã±â ÆÇ´ÜÇÏ¿© Ã³¸®
		pbk.extJS.subMenu.showInArea();

		// ¼­ºê¸Þ´º À§Ä¡ Á¶Á¤
        // dnlcl showIdshowIdshowId
        pbk.extJS.subMenu.setPosition(showId);
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ¸¶¿ì½ºÀÇ À§Ä¡¸¦ °è»êÇÏ¿© ¼­ºê·¹ÀÌ¾î¸¦ ´Ý½À´Ï´Ù.
	 */
	showInArea: function(){

		// ¸¶¿ì½ºÀÇ Position
		var position = Ext.EventObject.getXY();
		// ÀÌº¥Æ®¸¦ ¹ß»ýÇÑ ¿ÀºêÁ§Æ®(¼­ºê¸Þ´º¸¦ ¶ç¿öÁØ ¿ÀºêÁ§Æ®)
		var eventObj = $(pbk.extJS.subMenu.eventObject);
		// ¼­ºê¸Þ´º ¿ÀºêÁ§Æ®
		var menuObj = $(pbk.extJS.subMenu.subMenuID);

		if (eventObj && menuObj) {
			var eventPos = Position.cumulativeOffset(eventObj);
			var eventSize = Element.getDimensions(eventObj);

			var menuPos = Position.cumulativeOffset(menuObj);
			var menuSize = Element.getDimensions(menuObj);

			var isEventObjMouseOut = false;
			var isMenuObjMouseOut = false;
			//myhanaÀÇ °èÁÂÁ¤º¸ÀÏ¶§¸¸ µ¿ÀÛ (³»ºÎ ½ºÅ©·Ñ º¸Á¤)
            if ($('myhanaScrollDiv')){
                var scrollObj = $('myhanaScrollDiv');
                eventPos[1] = eventPos[1] - scrollObj.scrollTop; 
            }

			// ¼­ºê¸Þ´º ¿ÀºêÁ§Æ®·ÎºÎÅÍ ÁÂ¿ì·Î ¸¶¿ì½º°¡ ¹þ¾î³µÀ» °æ¿ì
			if (position[0] < menuPos[0] || position[0] > (menuPos[0] + menuSize.width)) {
				isMenuObjMouseOut = true;
			}

			// ¼­ºê¸Þ´º ¿ÀºêÁ§Æ®·ÎºÎÅÍ »óÇÏ·Î ¸¶¿ì½º°¡ ¹þ¾î³µÀ» °æ¿ì
			if (position[1] < menuPos[1] || position[1] > (menuPos[1] + menuSize.height)) {
				isMenuObjMouseOut = true;
			}

			// Å¬¸¯ÇÑ ¹öÆ°ÀÇ ÁÂ¿ì·Î ¸¶¿ì½º°¡ ¹þ¾î³µÀ» °æ¿ì
			if (position[0] < eventPos[0] || position[0] > (eventPos[0] + eventSize.width)) {
				isEventObjMouseOut = true;
			}

			// Å¬¸¯ÇÑ ¹öÆ°ÀÇ »óÇÏ·Î ¸¶¿ì½º°¡ ¹þ¾î³µÀ» °æ¿ì
			if (position[1] < eventPos[1] || position[1] > (eventPos[1] + eventSize.height)) {
				isEventObjMouseOut = true;
			}

			// Å¬¸¯ÇÑ ¹öÆ°°ú ¼­ºê¸Þ´º¸¦ ¸ðµÎ ¹þ¾î³­ À§Ä¡¿¡¼­ Å¬¸¯ÇßÀ» °æ¿ì
			// ¼­ºê¸Þ´º ¼û±â±â
			if (isMenuObjMouseOut && isEventObjMouseOut) {
				menuObj.style.display = 'none';
			}
			else {
				if (eventObj && menuObj) {
					// ¼­ºê¸Þ´º¸¦ ¼û±æ¶§±îÁö ¸¶¿ì½º À§Ä¡ ÃßÀû °è¼Ó ÁøÇà
					setTimeout(pbk.extJS.subMenu.showInArea, 100);
				}
			}
		}
	},

	/**
	 * ¼­ºê¸Þ´º¸¦ Á¦°ÅÇÕ´Ï´Ù.
	 */
	close: function(){
		var menuObj = $(pbk.extJS.subMenu.subMenuID);

		if (menuObj) {
			menuObj.parentNode.removeChild(menuObj);
		}
	},

    /**
     * *****************************************
     * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
     * *****************************************
     * ·¹ÀÌ¾îÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
     */
    setPosition: function(showId) {
        var menuID = pbk.extJS.subMenu.subMenuID;

        if ($(menuID)) {
            // ¿ÀºêÁ§Æ®¿¡ ¸Þ´º¸¦ À§Ä¡½ÃÅ²´Ù.
            // ÀÌº¥Æ®°¡ ¹ß»ýÇÑ ¿ÀºêÁ§Æ®ÀÇ À§Ä¡·Î ÀÌµ¿
            var position = Position.cumulativeOffset(pbk.extJS.subMenu.eventObject);
            var objSize = Element.getDimensions(pbk.extJS.subMenu.eventObject);
            var positionX = position[0] + objSize.width - 5;
            var positionY = position[1] - (20 - (objSize.height / 2));

            if ($(showId) != null && $(showId) != undefined) {
                var popPosition = Position.cumulativeOffset($(showId));
                positionX = position[0] - popPosition[0] + objSize.width - 5;
                positionY = position[1] - popPosition[1] - (20 - (objSize.height / 2));
            }
            
            //±ÝÀ¶Æ÷Å» ÀçÅ×Å© > Áõ±Ç > ÁÖ°¡Á¶È¸¿¡ ÇÑÇÏ¿© ·¹ÀÌ¾î À§Ä¡º¯°æ(2009.05.13 Á¤ÀÇÇÐ)
           	if(pbk.extJS.subMenu.eventObject.id == "subMenuViewPortal"){
           		positionX = position[0]-6;
           		positionY = position[1]+20;
           	}            
			//myhanaÀÇ °èÁÂÁ¤º¸ÀÏ¶§¸¸ µ¿ÀÛ (³»ºÎ ½ºÅ©·Ñ º¸Á¤)
            if ($('myhanaScrollDiv')){
                var scrollObj = $('myhanaScrollDiv');
                positionY = positionY - scrollObj.scrollTop;
            }

            $(menuID).style.left = positionX + 'px';
            $(menuID).style.top = positionY + 'px';
            //¹«Á¶°Ç ÃÖ»óÀ§·Î
            $(menuID).style.zIndex = 99999;
        }
    },

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÁöÁ¤ÇÑ URL·Î ÆäÀÌÁö¸¦ ÀÌµ¿ÇÕ´Ï´Ù.
	 * @param {Object} url URL ÁÖ¼Ò
	 * @param {Object} isAjax Ajax·Î PageÀÌµ¿ÇÒÁö ¿©ºÎ
	 * @param {Object} params Àü¼ÛÇÒ ÆÄ¶ó¸ÞÅÍ
	 */
	goPage: function(url, isAjax, params){
		var arrParams = params.split('&');
		var submitURL = pbk.APPLICATION_CONTEXT_ROOT + url;
		var frm = '';

		frm = document.createElement('form');
		frm.setAttribute('method', 'post');
		frm.setAttribute('action', submitURL);

		for (var i = 0; i < arrParams.length; i++) {
			var param = arrParams[i];
			var hiddenInput = document.createElement('input');
			hiddenInput.setAttribute('type', 'hidden');
			hiddenInput.setAttribute('id', param.split('=')[0]);
			hiddenInput.setAttribute('name', param.split('=')[0]);
			hiddenInput.setAttribute('value', param.split('=')[1]);

			frm.appendChild(hiddenInput);
		}

		document.body.appendChild(frm);

		if (isAjax) {
			// Ajax È£Ãâ
			var hanaAjax = new hana.JHanaAjax(pbk.CONTENT_WRAP, true, true);
			hanaAjax.ajaxCommSubmit(submitURL, frm);
		}
		else {
			// ÆäÀÌÁö ÀÌµ¿
			frm.submit();
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Popup SubLayer¿¡ ÇÊ¿äÇÑ HTMLÀ» »ý¼ºÇÏ¿© ¸®ÅÏÇÕ´Ï´Ù.
	 * @param {Object} menuItem ¸Þ´ºÁ¤º¸
	 * @return {String} HTMLÄÚµå
	 */
	getHtmlCode: function(menuItem){
		var htmlValue = '';

		htmlValue += '<table id="pocket_1">';
		htmlValue += '	<tr><td class="pocket_tl"></td><td class="pocket_tr"></td></tr>';
		htmlValue += '	<tr>';
		htmlValue += '		<td class="pocket_ml"></td>';
		htmlValue += '		<td class="pocket_mr">';
		htmlValue += '			<ul class="blt_15">';

		for ( var i = 0; i < menuItem.length; i++ ) {
			var href = menuItem[i].href;
			var itemText = menuItem[i].itemText;
			var isAjax = menuItem[i].isAjax;
			var params = decodeURI(menuItem[i].params);
			var funcName = menuItem[i].funcName;

			var onclickScript = '';
			if (null != funcName){
				onclickScript = funcName + '(\'' + href + '\', ' + isAjax + ', \'' + params + '\'); ';
			} else {
				onclickScript = 'pbk.extJS.subMenu.goPage(\'' + href + '\', ' + isAjax + ', \'' + params + '\'); '
			}

			onclickScript += 'pbk.extJS.subMenu.close(); return false;';

			// 2008³â 09¿ù 17ÀÏ ¸µÅ©(Href)°¡ null ÀÌ¸é ¸Þ´º¿¡ ¸µÅ©¸¦ »ý¼ºÇÏÁö ¾Ê´Â´Ù.
			if (null != href) {
				htmlValue += '<li><a href="javascript:void(0);" onclick="javascript:' + onclickScript + '">' + itemText + '</a></li>';
			} else {
				htmlValue += '<li>'+itemText+'</li>';
			}
		}

		htmlValue += '			</ul>';
		htmlValue += '		</td>';
		htmlValue += '	</tr>';
		htmlValue += '	<tr><td class="pocket_bl"></td><td class="pocket_br"></td></tr>';
		htmlValue += '</table>';

		return htmlValue;
	}
};

/**
 * Popup Sub Layer °ü·Ã ÆÐÅ°Áö
 */
pbk.extJS.subPopLayer = {
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Sub Pop Layer °´Ã¼ Á¤º¸ÀÔ´Ï´Ù.
	 */
	subPopLayerObj: null,

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÀÌº¥Æ®¸¦ ¹ß»ýÇÑ ¿ÀºêÁ§Æ® Á¤º¸ÀÔ´Ï´Ù.
	 */
	linkObj: null,
    
	/**
	 * Sub Popup Layer¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {Object} linkObj Sub Popup Layer¸¦ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
	 * @param {String} layerID »ý¼ºÇÒ ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
	 * @param {String} url Layer¿¡ Ãâ·ÂÇÒ URL (Ajax Åë½ÅÀ¸·Î ·¹ÀÌ¾î¿¡ UpdateÇÔ)
	 * @param {Object} formObj ÆÄ¶ó¸ÞÅÍ·Î »ç¿ëµÉ Form Object (Ajax Åë½Å¿¡ »ç¿ëÇÒ ÆÄ¶ó¸ÞÅÍ)
	 */
	show: function(linkObj, layerID, title, layerWidth, url, formObj) {
        var adjustX = 0;
        var adjustY = 0;
		pbk.extJS.subPopLayer.linkObj = linkObj;

		// Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
		pbk.extJS.subPopLayer.setDialog(layerID, title, layerWidth, url, formObj);

		// DialogÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
		pbk.extJS.subPopLayer.setPosition(null,adjustX,adjustY);
	},

    /**
     * Sub Popup Layer¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
     * @param {Object} linkObj Sub Popup Layer¸¦ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
     * @param {String} layerID »ý¼ºÇÒ ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
     * @param {String} title Á¦¸ñ
     * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
     * @param {String} url Layer¿¡ Ãâ·ÂÇÒ URL (Ajax Åë½ÅÀ¸·Î ·¹ÀÌ¾î¿¡ UpdateÇÔ)
     * @param {Object} formObj ÆÄ¶ó¸ÞÅÍ·Î »ç¿ëµÉ Form Object (Ajax Åë½Å¿¡ »ç¿ëÇÒ ÆÄ¶ó¸ÞÅÍ)
     * @param {Number} adjustX XÃàÀÇ ·¹ÀÌ¾îÀ§Ä¡ Á¶Àý °ª
     * @param {Number} adjustY YÃàÀÇ ·¹ÀÌ¾îÀ§Ä¡ Á¶Àý °ª
     */
    showPosition: function(linkObj, layerID, title, layerWidth, url, formObj,adjustX,adjustY) {
        pbk.extJS.subPopLayer.linkObj = linkObj;

        // Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
        pbk.extJS.subPopLayer.setDialog(layerID, title, layerWidth, url, formObj);

        // DialogÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
        pbk.extJS.subPopLayer.setPosition(null,adjustX,adjustY);
    },

	/**
	 * Popup¿¡¼­ Sub Popup Layer¸¦ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {Object} linkObj Sub Popup Layer¸¦ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
	 * @param {String} layerID »ý¼ºÇÒ ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
	 * @param {String} popupID Popup LayerÀÇ ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
	 * @param {String} url Layer¿¡ Ãâ·ÂÇÒ URL (Ajax Åë½ÅÀ¸·Î ·¹ÀÌ¾î¿¡ UpdateÇÔ)
	 * @param {Object} formObj ÆÄ¶ó¸ÞÅÍ·Î »ç¿ëµÉ Form Object (Ajax Åë½Å¿¡ »ç¿ëÇÒ ÆÄ¶ó¸ÞÅÍ)
	 */
	showPopup: function(linkObj, layerID, popupID, title, layerWidth, url, formObj) {
		pbk.extJS.subPopLayer.linkObj = linkObj;

		// Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
		pbk.extJS.subPopLayer.setDialog(layerID, title, layerWidth, url, formObj);

		// DialogÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
		pbk.extJS.subPopLayer.setPosition(popupID);
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Sub Pop Layer¸¦ È­¸é¿¡¼­ Á¦°ÅÇÕ´Ï´Ù.
	 */
	close: function() {
		if (null != pbk.extJS.subPopLayer.subPopLayerObj) {
			// ÀÌº¥Æ® »èÁ¦ 2009.01.05 ¾È¾¸..
//			Event.stopObserving(window, 'resize', pbk.extJS.subPopLayer.setPosition);
//			Event.stopObserving(window, 'scroll', pbk.extJS.subPopLayer.setPosition);

			// È­¸é¿¡¼­ »èÁ¦
			pbk.extJS.subPopLayer.subPopLayerObj.destroy();

			// ¸¶½ºÅ©·¹ÀÌ¾î »èÁ¦
//			pbk.extJS.layerMask.close();

			// °ü·Ã°´Ã¼ »èÁ¦
			pbk.extJS.subPopLayer.subPopLayerObj = null;
			pbk.extJS.subPopLayer.linkObj = null;
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {String} layerID »ý¼ºÇÒ ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
	 * @param {String} url Layer¿¡ Ãâ·ÂÇÒ URL
	 * @param {Object} formObj ÆÄ¶ó¸ÞÅÍ·Î »ç¿ëµÉ Form Object
	 */
	setDialog: function(layerID, title, layerWidth, url, formObj) {
		var config = {
			id: layerID,
			resizable: false,
			closable: false,
			footer: true,
			border: false,
			bodyBorder: false,
			shadow: false,
			plain: true,
			width: layerWidth,
			autoHeight: true,
			modal: true,
            listeners: {
                beforedestroy: function(w){
                    if (w.mask){Ext.destroy(w.mask);}
                    if (w.proxy){Ext.destroy(w.proxy);}
                    if (w.plain){Ext.destroy(w.plain);}
                }
            }
        };

		if (null == pbk.extJS.subPopLayer.subPopLayerObj) {
			pbk.extJS.subPopLayer.subPopLayerObj = new Ext.Window(config);
		}

		// ·¹ÀÌ¾î È­¸é¿¡ ³ëÃâ
		pbk.extJS.subPopLayer.subPopLayerObj.setVisible(true);
        pbk.extJS.subPopLayer.subPopLayerObj.setVisible(false);

        var subPopLayerID = pbk.extJS.subPopLayer.subPopLayerObj.id;
		var baseHTML = pbk.extJS.subPopLayer.getBaseHTML(subPopLayerID, title, layerWidth);

		pbk.extJS.subPopLayer.subPopLayerObj.body.update(baseHTML.html);

		// ÀÌº¥Æ® »èÁ¦ 2009.01.05 ¾È¾¸..
//		Event.observe(window, 'resize', pbk.extJS.subPopLayer.setPosition);
//		Event.observe(window, 'scroll', pbk.extJS.subPopLayer.setPosition);

		// ¸¶½ºÅ©·¹ÀÌ¾î »ý¼º
		pbk.extJS.loadingLayer.show();

		// ³»¿ë Update
		var hanaAjax = new hana.JHanaAjax(baseHTML.contentID, false, true);
		hanaAjax.ajaxCommSubmitCallback(pbk.APPLICATION_CONTEXT_ROOT + url, formObj, function(isSuccess){
            pbk.extJS.loadingLayer.close();

            if(isSuccess){
                pbk.extJS.subPopLayer.subPopLayerObj.setVisible(true);
            }
        });
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Sub Pop LayerÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
	 * @param {String} popupID Popup ¾ÆÀÌµð
	 */
	setPosition: function(popupID,adjustX,adjustY){
		if (null != pbk.extJS.subPopLayer.subPopLayerObj) {
			if (null != pbk.extJS.subPopLayer.linkObj) {
				var popupObj;
				var linkObj = pbk.extJS.subPopLayer.linkObj;
				var position = Position.cumulativeOffset(linkObj);
                
				var objSize = Element.getDimensions(linkObj);
				var popupScrollTop = 0;

				if (null != popupID && popupID != undefined){
					popupObj = $(popupID + '-extScrollDiv');
				}

				if (null != popupObj && popupObj != undefined){
					popupScrollTop = popupObj.scrollTop;
				}

				var positionX = position[0] + adjustX + 'px';
				var positionY = position[1] + adjustY + objSize.height - popupScrollTop + 'px';

				// À§Ä¡ ÀçÁ¶Á¤
				pbk.extJS.subPopLayer.subPopLayerObj.setPosition(positionX, positionY);
			}
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ±âº» HTMLÀ» ¸®ÅÏÇÕ´Ï´Ù.
	 * @param {String} id ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} width ³ÐÀÌ
	 */
	getBaseHTML: function(id, title, width) {
		var baseHTML = '';
		var contID = id + '_subPopLayer_Cont';
		baseHTML += '<table style="width:' + width + 'px">';
		baseHTML += '	<tr><td>';
		baseHTML += '			<div  id="' + contID + '">';
		baseHTML += '<!-- ³»¿ë µé¾î°©´Ï´Ù -->';
		baseHTML += '			</div>';
		baseHTML += '	</td></tr>';
		baseHTML += '</table>';
/*
		baseHTML += '<table id="pocket_2" style="width:' + width + 'px">';
		baseHTML += '	<tr><td class="pocket_tl"></td><td class="pocket_tr"><div class="drc"></div></td></tr>';
		baseHTML += '	<tr>';
		baseHTML += '		<td class="pocket_ml"></td>';
		baseHTML += '		<td class="pocket_mr">';
		baseHTML += '			<div class="conts" id="' + contID + '">';
		baseHTML += '<!-- ³»¿ë µé¾î°©´Ï´Ù -->';
		baseHTML += '			</div>';
		baseHTML += '		</td>';
		baseHTML += '	</tr>';
		baseHTML += '	<tr>';
		baseHTML += '		<td class="pocket_bl">';
		baseHTML += '		<td class="pocket_br">';
		baseHTML += '			<div class="pocket_btm_exp">';
		if (title != null && title != "") {
			baseHTML += '				<div class="msg"><div class="msg_txt">' + title + '</div></div>';
		}
		baseHTML += '				<div class="close"><a href="javascript:void(0);" onclick="javascript:pbk.extJS.subPopLayer.close(); return false;"><img src="' + pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/common/bg_pocket_2_close.gif" alt="Ã¢´Ý±â"  /></div>';
		baseHTML += '			</div>';
		baseHTML += '		</td>';
		baseHTML += '	</tr>';
		baseHTML += '</table>';
*/
		return {
			contentID: contID,
			html: baseHTML
		};
	}
};

var hanaSubPopLayer = pbk.extJS.subPopLayer;

/**
 * help(µµ¿ò¸») Layer ¸¦ Á¤ÀÇÇÑ´Ù.
 */
pbk.extJS.helpLayer = {
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * popLayerObj °´Ã¼ Á¤º¸ÀÔ´Ï´Ù.
	 */
	popLayerObj: null,

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÀÌº¥Æ®¸¦ ¹ß»ýÇÑ ¿ÀºêÁ§Æ® Á¤º¸ÀÔ´Ï´Ù.
	 */
	linkObj: null,
	
	adjustX:0,
	
	adjustY:0,
	
	scrollId : null,

	/**
	 * Sub Popup Layer¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {Object} linkObj Sub Popup Layer¸¦ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
	 * @param {String} layerID »ý¼ºÇÒ ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
	 * @param {String} contents ³»¿ë
	 * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
	 * @param {Number} scrollId ·¹ÀÌ¾î ½ºÅ©·Ñ ID ·¹ÀÌ¾î¿¡ ½ºÅ©·Ñ ÀÖÀ»½Ã ³ÖÀ»°Í. 
	 */
	show: function(linkObj, layerID, contents,layerWidth,adjustX,adjustY, scrollId) {
		if (!adjustX) {
			pbk.extJS.helpLayer.adjustX = 0;
		} else {
			pbk.extJS.helpLayer.adjustX = adjustX;
		}
		if (!adjustY) {
			pbk.extJS.helpLayer.adjustY = 0;
		} else {
			pbk.extJS.helpLayer.adjustY = adjustY;
		}
		
		pbk.extJS.helpLayer.linkObj = linkObj;	
		
		pbk.extJS.helpLayer.scrollId = scrollId;	
		

		// Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
		pbk.extJS.helpLayer.setDialog(layerID, contents,layerWidth);
		
		// DialogÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
		pbk.extJS.helpLayer.setPosition(layerID);		
		pbk.extJS.helpLayer.popLayerObj.setVisible(true);

	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Sub Pop Layer¸¦ È­¸é¿¡¼­ Á¦°ÅÇÕ´Ï´Ù.
	 */
	close: function() {
		if (null != pbk.extJS.helpLayer.popLayerObj) {
			// ÀÌº¥Æ® »èÁ¦
			Event.stopObserving(window, 'resize', pbk.extJS.helpLayer.setPosition);
			Event.stopObserving(window, 'scroll', pbk.extJS.helpLayer.setPosition);

			// È­¸é¿¡¼­ »èÁ¦
			pbk.extJS.helpLayer.popLayerObj.close();

			// °ü·Ã°´Ã¼ »èÁ¦
			pbk.extJS.helpLayer.popLayerObj = null;
			pbk.extJS.helpLayer.linkObj = null;
			pbk.extJS.helpLayer.adjustX = 0;
			pbk.extJS.helpLayer.adjustY = 0;			
		}
	},

    /**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * ***************************************** 
	 * Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù. 
     * @param {Object} layerID
     * @param {Object} contents
     * @param {Object} layerWidth
     */
	setDialog: function(layerID, contents, layerWidth) {
		var config = {
			id: layerID,
			resizable: false,
			closable: false,
			footer: true,
			border: false,
			bodyBorder: false,
			shadow: false,
			plain: true,
			autoHeight: true,
			modal: false,
			autoShow :true,
			html : pbk.extJS.helpLayer.getBaseHTML(layerID, contents, layerWidth),
            listeners: {
                beforedestroy: function(w){
                    if (w.mask){Ext.destroy(w.mask);}
                    if (w.proxy){Ext.destroy(w.proxy);}
                    if (w.plain){Ext.destroy(w.plain);}
                }
            }
        };

		if (null == pbk.extJS.helpLayer.popLayerObj) {
			pbk.extJS.helpLayer.popLayerObj = new Ext.Window(config);
		}

		// ·¹ÀÌ¾î È­¸é¿¡ ³ëÃâ
//        pbk.extJS.fx.fadeIn(layerID,0.5);


		// ÀÌº¥Æ® Á¤ÀÇ
		Event.observe(window, 'resize', pbk.extJS.helpLayer.setPosition);
		Event.observe(window, 'scroll', pbk.extJS.helpLayer.setPosition);
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Sub Pop LayerÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
	 * @param {String} popupID Popup ¾ÆÀÌµð
	 */
	setPosition: function(popupID){
		if (null != pbk.extJS.helpLayer.popLayerObj) {
			if (null != pbk.extJS.helpLayer.linkObj) {
				var popupObj;
				var linkObj = pbk.extJS.helpLayer.linkObj;
				var position = Position.cumulativeOffset(linkObj);
				var objSize = Element.getDimensions(linkObj);
				var popupScrollTop = 0;
				var popupScrollLeft = 0;

				if ($(pbk.extJS.helpLayer.scrollId) != null && $(pbk.extJS.helpLayer.scrollId) != undefined && $(pbk.extJS.helpLayer.scrollId != '')){
					popupObj = $(pbk.extJS.helpLayer.scrollId);
				}

				if (null != popupObj && popupObj != undefined){
					popupScrollTop = popupObj.scrollTop;
					popupScrollLeft = popupObj.scrollLeft;
				}
				
				
				var positionX = position[0] + pbk.extJS.helpLayer.adjustX - popupScrollLeft + 'px';
				var positionY = position[1] + objSize.height + pbk.extJS.helpLayer.adjustY - popupScrollTop + 'px';

				// À§Ä¡ ÀçÁ¶Á¤
				pbk.extJS.helpLayer.popLayerObj.setPosition(positionX, positionY);
				
			}
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ±âº» HTMLÀ» ¸®ÅÏÇÕ´Ï´Ù.
	 * @param {String} id ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} width ³ÐÀÌ
	 */
	getBaseHTML: function(id, contents,layerWidth) {
		var baseHTML = '';
		var contID = id + '_helpLayer_Cont';
		
		baseHTML +='<table id="pocket_3" style="width:' + layerWidth + 'px">';
		baseHTML +='	<tr>'; 
		baseHTML +='		<td class="pocket_tl"></td>'; 
		baseHTML +='		<td class="pocket_tr"><div class="drc"></div></td>'; 
		baseHTML +='	</tr>'; 
		baseHTML +='	<tr>'; 
		baseHTML +='		<td class="pocket_ml"></td>'; 
		baseHTML +='		<td class="pocket_mr">'; 
		baseHTML +='		<!-- ³»¿ë µé¾î°©´Ï´Ù -->'; 
		baseHTML +='		<ul class="blt_15" id="' + contID + '"><li>';
		baseHTML +=          contents; 
		baseHTML +='		</li></ul>'; 
		baseHTML +='		<!-- /³»¿ë µé¾î°©´Ï´Ù -->'; 
		baseHTML +='		</td>'; 
		baseHTML +='	</tr>'; 
		baseHTML +='	<tr>'; 
		baseHTML +='		<td class="pocket_bl"></td>'; 
		baseHTML +='		<td class="pocket_br"></td>'; 
		baseHTML +='	</tr>'; 
		baseHTML +='</table>'; 
		return {
			contentID: contID,
			html: baseHTML
		};
	}	
};




/**
 * ´ÙÁß ´Þ·Â Æû ÀÔ´Ï´Ù.
 */
pbk.extJS.multiCalendar = {
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ´ÙÁß ´Þ·ÂÆû º¯¼ö
	 */
	calendarObj: null,

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÀÌº¥Æ®°¡ ¹ß»ýÇÑ ¿ÀºêÁ§Æ®
	 */
	evnetObj: null,

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ¼±ÅÃÇÑ ³¯Â¥¸¦ ÀÔ·Â¹ÞÀ» ¿ÀºêÁ§Æ®
	 */
	inputObj: null,

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÆË¾÷ ¾ÆÀÌµð
	 */
	popupId: null,
    
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ³¯ÀÚ ¼±ÅÃ½Ã  ÄÝ¹é ÇÔ¼ö.
	 */
	callbackFunc: null,

	/**
	 * ÆË¾÷È­¸é¿¡¼­ ´ÙÁß ´Þ·Â ÆûÀ» Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {String} inputID Å¬¸¯ÇÑ ³¯Â¥¸¦ ÀÔ·ÂÇÒ Text Box ID
	 * @param {Object} eventObj ÀÌº¥Æ®°¡ ¹ß»ýÇÑ ¿ÀºêÁ§Æ®
	 * @Param {String} format (optional) ³¯Â¥¸¦ Ãâ·ÂÇÒ Æ÷¸Ë
	 * @param {Object} popupId ÆË¾÷ ¾ÆÀÌµð
	 */
	showPopup: function(inputID, eventObj, format, popupId, isHoliday){
		pbk.extJS.multiCalendar.show(inputID, eventObj, format, isHoliday);
		pbk.extJS.multiCalendar.popupId = popupId;

		var zIndex = $(popupId).style.zIndex;
		var popupObj = Ext.getCmp(pbk.extJS.multiCalendar.popupId);

		if (null != pbk.extJS.multiCalendar.calendarObj) {
			pbk.extJS.multiCalendar.calendarObj.el.setStyle('z-index',zIndex + 1);
			var iframeEl = pbk.extJS.iframe.findIframe(pbk.extJS.iframe.CALENDAR);
			if (iframeEl) {
				iframeEl.style.zIndex = zIndex;
			}
			popupObj.on('move', pbk.extJS.multiCalendar.setCalendarPosition);
			popupObj.on('beforedestroy', pbk.extJS.multiCalendar.closePopup);
        }
	},

	/**
	 * ´ÙÁß ´Þ·Â ÆûÀ» È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {String} inputID Å¬¸¯ÇÑ ³¯Â¥¸¦ ÀÔ·ÂÇÒ Text Box ID
	 * @param {Object} eventObj ÀÌº¥Æ®°¡ ¹ß»ýÇÑ ¿ÀºêÁ§Æ®
	 * @Param {String} format (optional) ³¯Â¥¸¦ Ãâ·ÂÇÒ Æ÷¸Ë
	 * @param {boolean} isHoliday (optional) ÈÞÀÏ¼³Á¤ÇÑ ³¯Â¥ ¼¿·ºÆ® ¸øÇÔ
	 * @param {noOfMonth} Ãâ·ÂµÉ ´Þ·Â¼ö
	 * @param {Function} ³¯ÀÚ¼±ÅÃ½Ã ¹ß»ýÇÒ ÄÝ¹éÇÔ¼ö.
	   @param (xyposition) º¯°æÇÒ x °ª ¼ÂÆÃ  (2009/04/14 Á¤ÀÇÇÐ)
	 */
	show: function(inputID, eventObj, format, isHoliday, noOfMonth, callbackFunc, xyPosition){
		    
        //ÀÌÃ¼¿¡¼­ ³¯Â¥ÀÔ·ÂÇÊµå°¡ ºñÈ°¼ºÈ­ÀÏ °æ¿ì ´Þ·Â¹öÆ° »ç¿ë±ÝÁöÇÑ´Ù. 
        if($(inputID).disabled == true){
            return;
        }  
            
		if ($(inputID) && null != $(inputID).value && $(inputID).value != '') {
			var temp = $(inputID).value;
			if (temp.length > 5) {
				var inputField = new hana.JDate("³¯Â¥",$(inputID));
				try {
					value = inputField.toDate();
				} catch(e){
					value = date.getDateObject();
				}
			} else {
				value = date.getDateObject();
			}
		} else {
			value = date.getDateObject();
		}
		if (null == noOfMonth || noOfMonth == undefined) {
			noOfMonth = 1;
		}
		eventDates = null;

		if (isHoliday == true) {
			disabledDays = [0, 6];
		} else {
			disabledDays = [];
		}

		minDate = null;
		maxDate = null;

		pbk.extJS.multiCalendar.close();
		pbk.extJS.multiCalendar.inputObj = $(inputID);

		pbk.extJS.multiCalendar.eventObj = eventObj;
        
		pbk.extJS.multiCalendar.callbackFunc = callbackFunc;

		if (null == pbk.extJS.multiCalendar.calendarObj) {
			pbk.extJS.multiCalendar.calendarObj = new Ext.ux.JHanaMultiCalendar({
                value: value,
				noOfMonth: noOfMonth,
				eventDates: eventDates,
				disabledDays: disabledDays,
				minDate: minDate,
				maxDate: maxDate,
				listeners: {
					beforedestroy: function(w){
                        pbk.extJS.privateEvent.destroy(w);
                    },

                    select: function(obj, selectedDate){
						// ÁöÁ¤ÇÑ Date Format¿¡ ¸Â°Ô º¯È¯ÇÏ¿© input box¿¡ ÀÔ·Â
						var dateFormat = (null != format && format != undefined) ? format : 'Y-m-d';

						pbk.extJS.multiCalendar.inputObj.value = selectedDate.format(dateFormat);
						pbk.extJS.multiCalendar.close();
                        
                        // ÁöÁ¤ÇÑ ÄÝ¹é¿¡ ¼±ÅÃÀÏÀÚ ³Ñ°ÜÁØ´Ù.
                        if(pbk.extJS.multiCalendar.callbackFunc != null && pbk.extJS.multiCalendar.callbackFunc != undefined){
                            pbk.extJS.multiCalendar.callbackFunc(selectedDate.format(dateFormat));
                        }
					},

                    beforeshow: function(){
                        
                    }
                }
			});

			//pbk.extJS.multiCalendar.calendarObj.render(Ext.getBody());
		} else {
			//pbk.extJS.multiCalendar.calendarObj.render(Ext.getBody());
			//pbk.extJS.multiCalendar.calendarObj.setVisible(true);
			//pbk.extJS.fx.fadeIn(pbk.extJS.multiCalendar.calendarObj.getEl().id);
		}

        pbk.extJS.multiCalendar.calendarObj.render(Ext.getBody());
		
//        alert(pbk.extJS.multiCalendar.calendarObj.render);

//        pbk.extJS.multiCalendar.calendarObj.setVisible(true);
//        pbk.extJS.fx.fadeIn(pbk.extJS.multiCalendar.calendarObj.getEl().id);

        // ÀÔ·Â¹ÞÀ» ¿ÀºêÁ§Æ®ÀÇ ¹Ù·Î ¾Æ·¡¿¡ À§Ä¡
		pbk.extJS.multiCalendar.setCalendarPosition(xyPosition);		
		
        // ÀÌº¥Æ® ÁöÁ¤
		Event.observe(window, 'resize', pbk.extJS.multiCalendar.setCalendarPosition);
        Event.observe(document, 'click', pbk.extJS.multiCalendar.checkMouseOut);
    },

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ´ÙÁß ´Þ·Â ÆûÀ» È­¸é¿¡¼­ Á¦°ÅÇÕ´Ï´Ù.
	 */
	close: function() {
        if (null != pbk.extJS.multiCalendar.calendarObj && pbk.extJS.multiCalendar.calendarObj != undefined){
			// ÀÌº¥Æ® ÇØÁ¦
			Event.stopObserving(document, 'click', pbk.extJS.multiCalendar.checkMouseOut);
			Event.stopObserving(window, 'resize', pbk.extJS.multiCalendar.setCalendarPosition);

			// ÀÚ¿ø ÇØÁ¦
			//pbk.selectBoxVisible(pbk.extJS.multiCalendar.calendarObj.getEl().id);
			//pbk.extJS.multiCalendar.calendarObj.setVisible(false);
//			pbk.extJS.fx.fadeOut(pbk.extJS.multiCalendar.calendarObj.getEl().id,true,0.1);
//			pbk.extJS.multiCalendar.calendarObj.setVisible(false);
			pbk.extJS.multiCalendar.calendarObj.destroy();

            pbk.extJS.iframe.destoryIframe();

            pbk.extJS.multiCalendar.calendarObj = null;
			pbk.extJS.multiCalendar.inputObj = null;
			pbk.extJS.multiCalendar.eventObj = null;			
        }
    },

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÆË¾÷È­¸é¿¡¼­ ´Þ·ÂÀ» Á¦°ÅÇÕ´Ï´Ù.
	 */
	closePopup: function() {
        var popupObj = Ext.getCmp(pbk.extJS.multiCalendar.popupId);
		// 20090117-¿À·û°æ Ãß°¡ 
        if(pbk.extJS.multiCalendar.calendarObj){
		  pbk.selectBoxVisible(pbk.extJS.multiCalendar.calendarObj.getEl().id);
        }
		popupObj.un('move', pbk.extJS.multiCalendar.setCalendarPosition);
		pbk.extJS.multiCalendar.close();
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * MultiCalendar À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
	 */
	setCalendarPosition: function(xyPosition) {
		// MultiCalendar ½ºÅ¸ÀÏ ÁöÁ¤
		if (null != pbk.extJS.multiCalendar.calendarObj && pbk.extJS.multiCalendar.calendarObj != undefined) {
			var calendarObj = $(pbk.extJS.multiCalendar.calendarObj.getEl().id);
			var position = Position.cumulativeOffset(pbk.extJS.multiCalendar.inputObj);
			var objSize = Element.getDimensions(pbk.extJS.multiCalendar.inputObj);
			var x = position[0];
			var y = position[1] + objSize.height;
			
			calendarObj.style.position = 'absolute';
			if(xyPosition != null && xyPosition != undefined){
				x = x - xyPosition
				calendarObj.style.left = x + 'px';
			}else{
				calendarObj.style.left = x + 'px';
			}
			calendarObj.style.top = y + 'px';		


			// ÀÏ´Ü ¸ðµç SelectBox°¡ º¸ÀÌµµ·Ï Ã³¸® ÈÄ ´Ù½Ã MultiCalendar ¾Æ·¡¿¡ ÀÖ´Â SelectBox ¼û±è
			//pbk.selectBoxVisible(pbk.extJS.multiCalendar.calendarObj.getEl().id);
			//pbk.selectBoxHidden(pbk.extJS.multiCalendar.calendarObj.getEl().id);

            //ActiveX ¿¡ ÀÇÇÑ ·¹ÀÌ¾î °¡¸² ¹æÁö iframe À» ¶ç¿ó´Ï´Ù.
            pbk.extJS.iframe.createCalendarIframe(x, y, calendarObj);
        }
    },

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * »ý¼ºÇÑ MultiCalendar¸¦ Á¦°ÅÇÒÁö ÆÇ´ÜÇÕ´Ï´Ù.
	 */
	checkMouseOut: function(e) {

        var position = new Ext.EventObjectImpl(e).getXY();
        var isEventObjOut = false;
        var isCalendarOut = false;

        var calendarObj = $(pbk.extJS.multiCalendar.calendarObj.getEl().id);
        var calendarPos = Position.cumulativeOffset(calendarObj);
        var calendarSize = Element.getDimensions(calendarObj);

        var eventObj = pbk.extJS.multiCalendar.eventObj;
        var eventObjPos = Position.cumulativeOffset(eventObj);
        var eventObjSize = Element.getDimensions(eventObj);

        // MultiCalendar ¿ÀºêÁ§Æ®·ÎºÎÅÍ ÁÂ¿ì·Î ¸¶¿ì½º°¡ ¹þ¾î³µÀ» °æ¿ì
        if (position[0] < calendarPos[0] || position[0] > calendarPos[0] + calendarSize.width) {
            isCalendarOut = true;
        }

        // MultiCalendar ¿ÀºêÁ§Æ®·ÎºÎÅÍ »óÇÏ·Î ¸¶¿ì½º°¡ ¹þ¾î³µÀ» °æ¿ì
        if (position[1]+10 < calendarPos[1] || position[1] > calendarPos[1] + calendarSize.height) {
            isCalendarOut = true;
        }

        // Å¬¸¯ÇÑ ¹öÆ°ÀÇ ÁÂ¿ì·Î ¸¶¿ì½º°¡ ¹þ¾î³µÀ» °æ¿ì
        if (position[0] < eventObjPos[0] || position[0] > eventObjPos[0] + eventObjSize.width) {
            isEventObjOut = true;
        }

        // Å¬¸¯ÇÑ ¹öÆ°ÀÇ »óÇÏ·Î ¸¶¿ì½º°¡ ¹þ¾î³µÀ» °æ¿ì
        if (position[1] < eventObjPos[1] || position[1] > eventObjPos[1] + eventObjSize.height) {
            isEventObjOut = true;
        }

        // Å¬¸¯ÇÑ ¹öÆ°°ú MultiCalendar¸¦ ¸ðµÎ ¹þ¾î³­ À§Ä¡¿¡¼­ Å¬¸¯ÇßÀ» °æ¿ì
        // MultiCalendar ´Ý±â
        if (isEventObjOut && isCalendarOut) {
            pbk.extJS.multiCalendar.close();
        }
    }

};

/**
 * @classDescription Popup SubLayer ¸Þ´º ¾ÆÀÌÅÛÀÔ´Ï´Ù.
 * @constructor
 * @param {Object} objID ¸Þ´º¸¦ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
 */
hana.JPopSubMenu = function(obj){
	/**
	 * {hana.JMenuItem[]} JMenuItemÀÇ ¹è¿­(ÃÖ»óÀ§ ¸Þ´ºÀÇ ¹è¿­)
	 */
	this.menuItems = new Array();
	this.obj = obj;
}
hana.JPopSubMenu.prototype = {
	/**
	 * ¸Þ´º¸¦ Ãß°¡ÇÕ´Ï´Ù.
	 * @param {String} itemText ¸Þ´ºÀÌ¸§
	 * @param {String} href URL ÁÖ¼Ò
	 * @param {String} isAjax Ajax·Î È£ÃâÇÒÁö ¿©ºÎ
	 * @param {Config} params Àü¼ÛÇÒ ÆÄ¶ó¸ÞÅÍ
	 */
	add : function(itemText, href, isAjax, params) {
	    this.menuItems[this.menuItems.length] = {
			itemText: itemText,
			href: href,
			isAjax: isAjax,
			params: params,
			funcName: null
		};
	},

	/**
	 * ÆË¾÷ Å¸ÀÔÀ¸·Î º¸¿©ÁÙ ¸Þ´º¸¦ Ãß°¡ÇÕ´Ï´Ù.
	 * @param {String} itemText ¸Þ´ºÀÌ¸§
	 * @param {String} href URL ÁÖ¼Ò
	 * @param {String} isAjax Ajax·Î È£ÃâÇÒÁö ¿©ºÎ
	 * @param {Config} params Àü¼ÛÇÒ ÆÄ¶ó¸ÞÅÍ
	 * @param {String} funcName È£ÃâÇÒ Function FullName
	 */
	addFunction: function(itemText, href, isAjax, params, funcName) {
		this.menuItems[this.menuItems.length] = {
			itemText: itemText,
			href: href,
			isAjax: isAjax,
			params: params,
			funcName: funcName
		};
	},

	/**
	 * Ãß°¡ÇÑ ¸Þ´º¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 */
	show: function( showId ){
		pbk.extJS.subMenu.show(this.obj, this.menuItems, showId);
	},

	/**
	 * »ý¼ºµÈ ¸Þ´º¸¦ ´Ý½À´Ï´Ù.
	 */
	close: function(){
		pbk.extJS.subMenu.showInArea();
	}
}

/**
 * ajax¸¦ ÅëÇØ¼­ content ¸¦ °¡Á®¿ÀÁö ¾Ê°í content ¹®ÀÚ¿­·Î content¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
 * static Popup Sub Layer °ü·Ã ÆÐÅ°Áö
 */
pbk.extJS.staticSubPop = {
	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Sub Pop Layer °´Ã¼ Á¤º¸ÀÔ´Ï´Ù.
	 */
	subPopLayerObj: null,

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ÀÌº¥Æ®¸¦ ¹ß»ýÇÑ ¿ÀºêÁ§Æ® Á¤º¸ÀÔ´Ï´Ù.
	 */
	linkObj: null,

	/**
	 * Sub Popup Layer¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {Object} linkObj Sub Popup Layer¸¦ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
	 * @param {String} layerID »ý¼ºÇÒ ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
	 * @param {String} url Layer¿¡ Ãâ·ÂÇÒ URL (Ajax Åë½ÅÀ¸·Î ·¹ÀÌ¾î¿¡ UpdateÇÔ)
	 * @param {Object} formObj ÆÄ¶ó¸ÞÅÍ·Î »ç¿ëµÉ Form Object (Ajax Åë½Å¿¡ »ç¿ëÇÒ ÆÄ¶ó¸ÞÅÍ)
	 */
	show: function(linkObj, layerID, title, content, layerWidth) {
		pbk.extJS.staticSubPop.linkObj = linkObj;

		// Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
		pbk.extJS.staticSubPop.setDialog(layerID, title, content, layerWidth);

		// DialogÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
		pbk.extJS.staticSubPop.setPosition(null);
	},
	show2: function(linkObj, layerID, title, content, layerWidth) {
		pbk.extJS.staticSubPop.linkObj = linkObj;

		// Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
		pbk.extJS.staticSubPop.setDialog2(layerID, title, content, layerWidth);

		// DialogÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
		pbk.extJS.staticSubPop.setPosition(null);
	},

	/**
	 * @author ¿À·û°æ
	 * @param {Object} linkObj
	 * @param {Object} layerID
	 * @param {Object} htmlString
	 * @param {Object} layerWidth
	 */
	showFromString: function(linkObj,layerID, htmlString, layerWidth) {
		pbk.extJS.staticSubPop.linkObj = linkObj;

		// Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
		pbk.extJS.staticSubPop.setDialogFromString(layerID, htmlString, layerWidth);

		// DialogÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
		pbk.extJS.staticSubPop.setPosition(null);
	},

	dialogRegExp : new RegExp('(^| )'+'x-window-mc'+'( |$)'),
	/**
	 * @author ¿À·û°æ
	 * @param {Object} layerID
	 * @param {Object} htmlString
	 * @param {Object} layerWidth
	 */
	setDialogFromString: function(layerID, htmlString, layerWidth) {
		var config = {
			id: layerID,
			resizable: false,
			closable: false,
			footer: true,
			border: false,
			bodyBorder: false,
			shadow: false,
			plain: true,
			width: layerWidth,
			autoHeight: true,
			modal: true,
            listeners: {
                beforedestroy: function(w){
                    if (w.mask){Ext.destroy(w.mask);}
                    if (w.proxy){Ext.destroy(w.proxy);}
                    if (w.plain){Ext.destroy(w.plain);}
                }
            }
        };

		if (null == pbk.extJS.staticSubPop.subPopLayerObj) {
			pbk.extJS.staticSubPop.subPopLayerObj = new Ext.Window(config);
		}

		// ·¹ÀÌ¾î È­¸é¿¡ ³ëÃâ
		pbk.extJS.staticSubPop.subPopLayerObj.setVisible(true);

		//x-window-mc (// IE¿¡¼­ class ¼Ó¼ºÀÌ Àß¸ÔÁö ¾Ê¾Æ extÀÇ class¸¦ Áö¿ö ÇØ°á - ¿À·û°æ comment  )
		var xWindowMcs = document.getElementsByClassName("x-window-mc");

		for (var i=0 ; i< xWindowMcs.length ; i++) {
			Element.removeClassName(xWindowMcs[i],"x-window-mc");
		}


		var subPopLayerID = pbk.extJS.staticSubPop.subPopLayerObj.id;
		var baseHTML = pbk.extJS.staticSubPop.getBaseHTML('', '', '', '');
		baseHTML.setHtml(htmlString);

		pbk.extJS.staticSubPop.subPopLayerObj.body.update(baseHTML.html);

		// ÃÖ»óÀ§ Àû¿ëµÈ z-index °ª °¡Á®¿Í¼­ LayerMask Ç¥Çö
//		var zIndex = pbk.extJS.layerMask.getZIndex();
//		pbk.extJS.layerMask.show(zIndex);
//        pbk.extJS.fx.fadeIn(layerID,0.5);
        pbk.extJS.staticSubPop.subPopLayerObj.setVisible(true);
        // ÀÌº¥Æ® Á¤ÀÇ
		//Event.observe(window, 'resize', pbk.extJS.staticSubPop.setPosition);
		//Event.observe(window, 'scroll', pbk.extJS.staticSubPop.setPosition);
	},

	closeStringLayer :  function () {
		if (null != pbk.extJS.staticSubPop.subPopLayerObj) {
			// ÀÌº¥Æ® »èÁ¦
			Event.stopObserving(window, 'resize', pbk.extJS.staticSubPop.setPosition);
			Event.stopObserving(window, 'scroll', pbk.extJS.staticSubPop.setPosition);

			// È­¸é¿¡¼­ »èÁ¦
			pbk.extJS.staticSubPop.subPopLayerObj.close();

            // È­¸é¿¡¼­ º¸ÀÌÁö ¾Ê°Ô
//			pbk.extJS.fx.fadeOut(pbk.extJS.staticSubPop.subPopLayerObj.id,true,0.5);

			// ¸¶½ºÅ©·¹ÀÌ¾î »èÁ¦
//			pbk.extJS.layerMask.close();

			// °ü·Ã°´Ã¼ »èÁ¦
			pbk.extJS.staticSubPop.subPopLayerObj = null;
			pbk.extJS.staticSubPop.linkObj = null;
		}
	},

	/**
	 * Popup¿¡¼­ Sub Popup Layer¸¦ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {Object} linkObj Sub Popup Layer¸¦ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
	 * @param {String} layerID »ý¼ºÇÒ ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
	 * @param {String} popupID Popup LayerÀÇ ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
	 */
	showPopup: function(linkObj, layerID, popupID, title, content, layerWidth) {
		pbk.extJS.staticSubPop.linkObj = linkObj;

		// Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
		pbk.extJS.staticSubPop.setDialog(layerID, title, content, layerWidth);

		// DialogÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
		pbk.extJS.staticSubPop.setPosition(popupID);
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Sub Pop Layer¸¦ È­¸é¿¡¼­ Á¦°ÅÇÕ´Ï´Ù.
	 */
	close: function() {
		if (null != pbk.extJS.staticSubPop.subPopLayerObj) {
			// ÀÌº¥Æ® »èÁ¦
			Event.stopObserving(window, 'resize', pbk.extJS.staticSubPop.setPosition);
			Event.stopObserving(window, 'scroll', pbk.extJS.staticSubPop.setPosition);

			// È­¸é¿¡¼­ »èÁ¦
			pbk.extJS.staticSubPop.subPopLayerObj.destroy();

			// °ü·Ã°´Ã¼ »èÁ¦
			pbk.extJS.staticSubPop.subPopLayerObj = null;
			pbk.extJS.staticSubPop.linkObj = null;
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Dialog¸¦ È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
	 * @param {String} layerID »ý¼ºÇÒ ·¹ÀÌ¾îÀÇ ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} layerWidth ·¹ÀÌ¾îÀÇ ³ÐÀÌ
	 */
	setDialog: function(layerID, title, content, layerWidth) {
		var config = {
			id: layerID,
			resizable: false,
			closable: false,
			footer: true,
			border: false,
			bodyBorder: false,
			shadow: false,
			plain: true,
			width: layerWidth,
			autoHeight: true
		};

		if (null == pbk.extJS.staticSubPop.subPopLayerObj) {
			pbk.extJS.staticSubPop.subPopLayerObj = new Ext.Window(config);
		}

		// ·¹ÀÌ¾î È­¸é¿¡ ³ëÃâ
		pbk.extJS.staticSubPop.subPopLayerObj.setVisible(true);

		var subPopLayerID = pbk.extJS.staticSubPop.subPopLayerObj.id;
		var baseHTML = pbk.extJS.staticSubPop.getBaseHTML(subPopLayerID, title, content, layerWidth);

		pbk.extJS.staticSubPop.subPopLayerObj.body.update(baseHTML.html);

		// ÀÌº¥Æ® Á¤ÀÇ
		//Event.observe(window, 'resize', pbk.extJS.staticSubPop.setPosition);
		//Event.observe(window, 'scroll', pbk.extJS.staticSubPop.setPosition);
	},
	setDialog2: function(layerID, title, content, layerWidth) {
		var config = {
			id: layerID,
			resizable: false,
			closable: false,
			footer: true,
			border: false,
			bodyBorder: false,
			shadow: false,
			plain: true,
			width: layerWidth,
			autoHeight: true
		};

		if (null == pbk.extJS.staticSubPop.subPopLayerObj) {
			pbk.extJS.staticSubPop.subPopLayerObj = new Ext.Window(config);
		}

		// ·¹ÀÌ¾î È­¸é¿¡ ³ëÃâ
		pbk.extJS.staticSubPop.subPopLayerObj.setVisible(true);

		var subPopLayerID = pbk.extJS.staticSubPop.subPopLayerObj.id;
		var baseHTML = pbk.extJS.staticSubPop.getBaseHTML2(subPopLayerID, title, content, layerWidth);

		pbk.extJS.staticSubPop.subPopLayerObj.body.update(baseHTML.html);

		// ÀÌº¥Æ® Á¤ÀÇ
		//Event.observe(window, 'resize', pbk.extJS.staticSubPop.setPosition);
		//Event.observe(window, 'scroll', pbk.extJS.staticSubPop.setPosition);
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * Sub Pop LayerÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
	 * @param {String} popupID Popup ¾ÆÀÌµð
	 */
	setPosition: function(popupID){
		if (null != pbk.extJS.staticSubPop.subPopLayerObj) {
			if (null != pbk.extJS.staticSubPop.linkObj) {
				var popupObj;
				var linkObj = pbk.extJS.staticSubPop.linkObj;
				var position = Position.cumulativeOffset(linkObj);
				var objSize = Element.getDimensions(linkObj);
				var popupScrollTop = 0;

				if (null != popupID && popupID != undefined){
					popupObj = $(popupID + '-extScrollDiv');
				}

				if (null != popupObj && popupObj != undefined){
					popupScrollTop = popupObj.scrollTop;
				}

				var positionX = (position[0]-35) + 'px';
				var positionY = (position[1] + objSize.height - popupScrollTop + 5) + 'px';

				// À§Ä¡ ÀçÁ¶Á¤
				pbk.extJS.staticSubPop.subPopLayerObj.setPosition(positionX, positionY);
			}
		}
	},

	/**
	 * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * ±âº» HTMLÀ» ¸®ÅÏÇÕ´Ï´Ù.
	 * @param {String} id ¾ÆÀÌµð
	 * @param {String} title Á¦¸ñ
	 * @param {Number} width ³ÐÀÌ
	 */
	getBaseHTML: function(id, title, content, width) {
		var baseHTML = '';
		var contID = id + '_subPopLayer_Cont';

		baseHTML += '<table id="pocket_2" style="width:' + width + 'px">';
		baseHTML += '	<tr><td class="pocket_tl"></td><td class="pocket_tr"><div class="drc"></div></td></tr>';
		baseHTML += '	<tr>';
		baseHTML += '		<td class="pocket_ml"></td>';
		baseHTML += '		<td class="pocket_mr">';
		baseHTML += '			<div class="conts" id="' + contID + '">';
		baseHTML +=                 content;
		baseHTML += '			</div>';
		baseHTML += '		</td>';
		baseHTML += '	</tr>';
		baseHTML += '	<tr>';
		baseHTML += '		<td class="pocket_bl">';
		baseHTML += '		<td class="pocket_br">';
		baseHTML += '			<div class="pocket_btm_exp">';
		baseHTML += '				<div class="msg"><div class="msg_txt">' + title + '</div></div>';
		baseHTML += '				<div class="close"><a href="javascript:void(0);" onclick="javascript:pbk.extJS.staticSubPop.close(); return false;"><img src="' + pbk.APPLICATION_CONTEXT_ROOT + '/contents/ionresource/images/common/bg_pocket_2_close.gif" alt="Ã¢´Ý±â"  /></div>';
		baseHTML += '			</div>';
		baseHTML += '		</td>';
		baseHTML += '	</tr>';
		baseHTML += '</table>';

		return {
			contentID: contID,
			html: baseHTML,
			setHtml : function(html) {
				this.html = html;
			}
		};
	},
	getBaseHTML2: function(id, title, content, width) {
		var baseHTML = '';
		var contID = id + '_subPopLayer_Cont';

		baseHTML += '<table id="pocket_3" onClick="pbk.extJS.staticSubPop.close();" style="width:' + width + 'px">';
		baseHTML += '	<tr>';
		baseHTML += '		<td class="pocket_tl"></td>';
		baseHTML += '		<td class="pocket_tr"><div class="drc"></div></td>';
		baseHTML += '	</tr>';
		baseHTML += '	<tr>';
		baseHTML += '		<td class="pocket_ml"></td>';
		baseHTML += '		<td class="pocket_mr">';
		baseHTML += '			<ul class="blt_15">';
		baseHTML += '				<li>'+content+'</li>';
		baseHTML += '			</ul>';
		baseHTML += '		</td>';
		baseHTML += '	</tr>';
		baseHTML += '	<tr>';
		baseHTML += '		<td class="pocket_bl"></td>';
		baseHTML += '		<td class="pocket_br"></td>';
		baseHTML += '	</tr>';
		baseHTML += '</table>';

		return {
			contentID: contID,
			html: baseHTML,
			setHtml : function(html) {
				this.html = html;
			}
		};
	}
};

/**
 * Æ¯¼öÈ¿°ú¸¦ ³ªÅ¸³»´Â µ¥ ÀÌ¿ë
 */
pbk.extJS.fx = {
	/**
	 * Element ¸¦ ³ªÅ¸³»´Â È¿°ú¸¦ ÁØ´Ù.
	 * @param {String} elObjectId elementId
	 * @param {float} durationSec ÃÊ´ÜÀ§ .1~..
	 */
	fadeIn: function(elObjectId,durationSec){
		Ext.get(elObjectId).fadeIn({
		    endOpacity: 1, //can be any value between 0 and 1 (e.g. .5)
		    easing: 'easeOut',
		    duration: durationSec
		});
	},
	/**
	 * Element ¸¦ »ç¶óÁö°Ô ÇÏ´Â  È¿°ú¸¦ ÁØ´Ù.
	 * @param {String} elObjectId elementId
	 * @param {boolean} isRemove
	 * @param {float} durationSec ÃÊ´ÜÀ§ .1~..
	 */
	fadeOut : function(elObjectId,isRemove,durationSec) {
		Ext.get(elObjectId).fadeOut({
		    endOpacity: 0, //can be any value between 0 and 1 (e.g. .5)
		    easing: 'easeOut',
		    duration: durationSec,
		    remove: isRemove,
		    useDisplay: false
		});
	}
}

/**
 * Page LoadingÀ» ¸ðµÎ ¿Ï·á ÇÑ ÈÄ È£ÃâÇÒ ÇÔ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
 * @param {Function} initFunction ÃÊ±âÈ­ ÀÛ¾÷À» ÇÒ ÇÔ¼ö
 * @param {NameSpace} initNameSpace ÃÊ±âÈ­ ÀÛ¾÷À» ÇÒ NameSpace
 */
pbk.extJS.initializeApplication = function(initFunction, initNameSpace){
	Ext.onReady(initFunction, initNameSpace);
};


/**
 * Ext.Window ¸¦ »ç¿ëÇÏ´Â °÷¿¡¼­ »ç¿ëÇÏ´Â ±Û·Î¹ú ÀÌº¥Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù.
 */
pbk.extJS.privateEvent = {
    /**
     * *****************************************
	 * ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ¹Ç·Î ¿ÜºÎ¿¡¼­ Á¢±ÙÇÏÁö ¾Ê½À´Ï´Ù.
	 * *****************************************
	 * close..
     */
    destroy: function(w) {
        if(w){
            if (w.mask){Ext.destroy(w.mask);}
            if (w.proxy){Ext.destroy(w.proxy);}
            if (w.plain){Ext.destroy(w.plain);}
        }
    }
};


/**
 * activeX ¿¡ ·¹ÀÌ¾î°¡ °¡·ÁÁüÀ» ¹æÁöÇÏ´Â iframe °ü·Ã ÇÔ¼ö Á¤ÀÇ
 */
pbk.extJS.iframe = {

    CALENDAR : "calendar",

    initIframe : function(layerID){
        var iframeEl = document.createElement('IFRAME');

        iframeEl.id = layerID+'iFrame';
        iframeEl.frameBorder = 0;
        iframeEl.scrolling = "no";
        iframeEl.style.border = 0;
        iframeEl.style.position = 'absolute';
        iframeEl.style.height = 0;
        document.body.appendChild(iframeEl);

        return iframeEl;
    },

    /**
     * iframeÀ» Ã£¾Æ¿É´Ï´Ù.
     * @param layerID
     */
    findIframe : function(layerID){
        var iframeEl;
        if( $(layerID+'iFrame') ){
            iframeEl = $(layerID+'iFrame');
        }else{
            iframeEl = pbk.extJS.iframe.initIframe(layerID);
        }

        return iframeEl;
    },

    /**
     * ´Þ·ÂÀ» ¶ç¿ï ¶§ iframe À» ¶ç¿ó´Ï´Ù....
     */
    createCalendarIframe : function(x, y, calendarObj){
        if(this.isMakeIframe()) {
            var iframeEl = pbk.extJS.iframe.findIframe(pbk.extJS.iframe.CALENDAR);
            var layerDimention = Element.getDimensions(calendarObj);

            var calendarObjZindex = calendarObj.style.zIndex;
			if (calendarObjZindex == null || calendarObjZindex == undefined || calendarObjZindex == "") {
				calendarObjZindex = 0;
			}
			calendarObjZindex = parseInt(calendarObjZindex,10);
            if( calendarObjZindex == 0 ){
                calendarObj.style.zIndex = 10;
            }

			iframeEl.style.zIndex = parseInt(calendarObj.style.zIndex,10) - 1;
			iframeEl.style.left = x + 'px';
			iframeEl.style.top = y + 'px';
			iframeEl.style.width = layerDimention.width + 'px';
			iframeEl.style.height = layerDimention.height + 'px';
        }
    },

    /**
     * iframe À» ¾ø¾Û´Ï´Ù.
     */
    destoryIframe : function(){
        var iframes = Ext.query("iframe[id$=iFrame]");

        Ext.each(iframes, function(el){
            Element.remove($(el));
        });
    },

    /**
     * iframe À» ¸¸µé¾î¾ß µÇ´Â »óÈ²ÀÎÁö ÆÇ´ÜÇÕ´Ï´Ù.
     * grid °¡ ÀÖ´Â ie ÀÎ °æ¿ì
     */
    isMakeIframe : function(){
        var flag = false;
//        var isExistGrid = false;
//
//        var gridObjs = Ext.query("object[id$=Grid]");
//        //°Å¸®´Â gridObj °¡ ¾øÀ» ¶§ ÇÑ¹ø ´õ °¡Á®¿É´Ï´Ù.
//        if (gridObjs.length == 0) {
//            gridObjs = Ext.query("object[id$=grid]");
//        }
//        
//        if (gridObjs.length) {
//            isExistGrid = true;
//        }
//
//        if(Ext.isIE && isExistGrid){
//            flag = true;
//        }
		if(Ext.isIE){
            flag = true;
        }

        return flag;
    }
}

/**
 * Ext ÀÇ LoadMask ÀÇ Wrapping Class
 * @param {Object} ele
 * @param {String} msg
 * @param {boolean} isPersist
 * @param {Object} msgCls ¸¶½ºÅ© °´Ã¼ÀÇ ¸Þ¼¼Áö css class
 * @author ¿À·û°æ 
 * @classDescription Ext ÀÇ LoadMask ÀÇ Wrapping Class ¸¶½ºÅ©¸¦ À¯ÁöÇÏ°Å³ª ¾ø¾Ö´Â ±â´É
 */
hana.JloadMask = function(ele, msg, isPersist, msgCls){
	var oEle = ele;
	var oMsg = msg;
	var oIsPersist = isPersist;
	var oMsgCls = msgCls;
	if (!oEle || oEle == null) {
		alert('´ë»óÀÌ ÁöÁ¤µÇÁö ¾Ê¾Ò½À´Ï´Ù.');
		return null;
	}
	if (!oMsg || oMsg == null) {
		oMsg = 'Loading...';
	}
	if (oIsPersist == undefined) {
		oIsPersist = false;
	}	
	if (!oMsgCls || oMsgCls == null) {
		oMsgCls = 'x-mask-loading'; 
	}	

	this.options = {
		msg :oMsg,
		msgCls : oMsgCls,
		removeMask : oIsPersist
	}
	
	this.mask = new Ext.LoadMask(ele,this.options);
}
hana.JloadMask.prototype = {
	/**
	 * ¸¶½ºÅ©¸¦ º¸¿©ÁØ´Ù.
	 */
	show : function() {
		try {
			this.mask.show();
		} catch (e){
			alert(''+e);
		}
	},
	/**
	 * ¸¶½ºÅ©¸¦ ¾ø¾Ø´Ù.
	 */
	hide : function() {
		try {
			this.mask.hide();
		} catch (e) {
			alert(''+e);
		}
	}
}

/**
 * ¸ÞÀÎ È­¸é Layer ¼³Á¤
 */
hana.JMainLayer = function() {
    var mainLayer = new Hash();   //¸ÞÀÎ ·¹ÀÌ¾î

    return{

        /**
         * cookie ¸¦ ÅëÇÑ layer Ãâ·Â À¯¹« Ã¼Å©
         * @param config
         */
        isExpireLayer : function(name){
            var layerCookie = cookie.getCookie(name);
            return (layerCookie != null && !layerCookie.empty() );
        },

        /**
         * ¸¶½ºÅ©¸¦ º¸¿©ÁØ´Ù.
         */
        show : function(config) {

            var defultConfigObj = {
                url : "",				//ÁÖ¼Ò
                id 	: "mainLayer", 	//Layer ÀÌ¸§
                positionX 	: 30,			//¼¼·Î
                positionY	: 30,			//À§Ä¡
                isCenter : false    //°¡¿îµ¥ Ãâ·Â À¯¹«
            };

            var configObj;

            configObj = Ext.apply({},config,defultConfigObj);

            //cookie ¸¦ ÅëÇÑ layer Ãâ·Â À¯¹« Ã¼Å©
            if(this.isExpireLayer(configObj.id)){
                return;
            }

            //popup-temp area ¾øÀ¸¸é ¼³Á¤
            if(!$('layer-temp')){
                 Ext.DomHelper.append(Ext.getBody(), {tag:"div",
                                              id : 'layer-temp',
                                              html : '',
                                              cls :"x-hidden"});
            }


            var hanaAjax = new hana.JHanaAjax('layer-temp',
                    false,
                    false);

            hanaAjax.ajaxCommSubmitCallback(configObj.url, config.formObj, function(isSuccess){

                if (isSuccess) {
                    var win = new Ext.Window({
                        id       : configObj.id,
                        closable : false,
                        width    : configObj.width,
                        autoHeight: true,
                        resizable: false,
                        border   : false,
                        bodyBorder: false,
                        footer   : true,
                        modal    : false,
                        shadow   : false,
                        title    : '',
                        html     : $('layer-temp').innerHTML,
                        listeners: {
                            beforedestroy: function(w){
                                pbk.extJS.privateEvent.destroy(w);
                            }
                        }
                    });

                    //ÆË¾÷ º¸¿©ÁÜ..
                    win.setVisible(true);

					if( configObj.isCenter ){
						win.center();
					}else{
						var layerObj = Ext.get(win.getEl().id);
	                    layerObj.setX(configObj.positionX);
	                    layerObj.setY(configObj.positionY);
					}

					mainLayer[configObj.id] = win;
                }
            });

            //popup temp area ÃÊ±âÈ­
            $('layer-temp').innerHTML = '';
        },

        close : function(id, isSetCookie) {
            //ÄíÅ°¼³Á¤
            if(isSetCookie){
                cookie.setCookie(id, true, cookie.getExpDate(3650,0,0));
//                cookie.setCookie(id, true, cookie.getExpDate(3650,0,0),'/','.hanabank.com');
            }

            if(mainLayer[id]){
                mainLayer[id].close();
            }
        }
    };
}();