/*INISEAL:[weAotL65WbYPUhXmswodokLGi9M%3D%0A]*/
/*****************************************************************************
 * ÆÄÀÏ¸í : pbk-common-login.js
 * ÀÛ¼ºÀÏ : 2008. 04. 19
 * ÀÛ¼ºÀÚ : ej
 * ¼³   ¸í : pbk_common.js¸¦ ±â´Éº° ºÐ¸®.
 * ===========================================================================
 * º¯°æÀÌ·Â:
 * DATE				AUTHOR		DESCRIPTION
 * ---------------------------------------------------------------------------
 * º¯°æ ÀÌ·ÂÀº ÀÌ°÷¿¡ Ãß°¡ ÇÕ´Ï´Ù.
 *****************************************************************************/
/**
 * login¿¡ ÇÊ¿äÇÑ script¸¦ Á¤ÀÇ
 */
pbk.common.login = function() {
	// private varibles
	var loginDiv = 'divLoginBox';
	
	// private function
	/**
	 * actionSubmit ¿¡ ´ëÇÑ callback 
	 * @param {Object} res response
	 * @param {Object} arg state
	 */
	 var callbackResult = function(res, arg){
	 	var instance = this;
	}
	
	// public space 
	return {
		hanaAjax : null,
		

        /**
         * Àå¾Ö°øÁö ÆË¾÷ 
         */		
		disableNotice: function() {
            var hanaAjax = new hana.JHanaAjax('', true, true);
            hanaAjax.ajaxSubmit(pbk.APPLICATION_CONTEXT_ROOT + '/common/retrieveDisableNotice.do',
                    null,
                    true,
                    function(res, arg) {
                            var data = eval('(' + res.responseText + ')');
							
							if (cookie.getCookie('notice') == 'Y') {
                                return;
							}
														
							if (data.RESULT == '1') {
                                var width = 400;
                                var height = 332;
                                var topPos = (screen.height) ? (screen.height - height)/2 : 0;
                                var leftPos = (screen.width) ? (screen.width - width)/2 : 0;								
								
								var url = '/common/retrieveDisableNoticeJSP.do';
                                var win = window.open(url, 'notice', 'width=400,height=332,toolbar=no,menubar=no,scrollbars=no,top=' + topPos + ',left=' + leftPos);
							}
					});
		},
				
		
		
		
		/* 20090317 return URL Á¶°Ç Ãß°¡ */
		/**
		 * URI Áß¿¡ ¾×¼Ç¸í¸¸ ¸®ÅÏ
		 * @param {Object} actionURI
		 */
		getActionByParseUrl : function(actionURI) {
			var returnVal = "";
			if ("" !=actionURI && actionURI.indexOf("/") > -1 && actionURI.indexOf(".") > -1 ){
        		returnVal = actionURI.substring((actionURI.lastIndexOf("/") + 1), actionURI.indexOf("."));
    		}				
			return returnVal;
		},
        
		/* 20090317 return URL Á¶°Ç Ãß°¡ */
		/**
		 * URL Áß ÆÄ¶ó¸ÞÅÍ¸¸ ¸®ÅÏ
		 * @param {Object} actionURL
		 */
		getActionParameterString : function(actionURL){
			var returnVal = "";
			if ("" !=actionURL && actionURL.indexOf("/") > -1 && actionURL.indexOf(".") > -1 && actionURL.indexOf("?") > -1){
        		returnVal = actionURL.substring((actionURL.indexOf("?") + 1));
    		}				
			return returnVal;
		},
        
		/**
		 * returnUrl À» Á¶¸³ÇÏ¿© ¸®ÅÏÇÑ´Ù. 
		 * @param {Object} formObj
		 */
        /*
		getReturnUrl : function (formObj){
			//20090317 return URL Á¶°Ç Ãß°¡ 
		    var menuItemId  = null;
			var returnParam = null;
            var tileAction = null;
			var mappingUrl = '';
			
			menuItemId = pbk.common.login.getActionByParseUrl(formObj.returnUrl.value);
			returnParam = pbk.common.login.getActionParameterString(formObj.returnUrl.value);
			if ($('tilesActionUrl')) {
				tileAction = $('tilesActionUrl').value;
			}
			if (null != formObj.returnUrl.value && formObj.returnUrl.value != '') {
				// tileActionÀ» ´ãÀ» °æ¿ì´Â menuItemId°¡ ÇÊ¿ä¾øÀ¸¹Ç·Î tilesAction¸¸ ´ãÀ½.
				if (tileAction != null && tileAction != '' && tileAction == menuItemId ) {
					if (returnParam != null && returnParam != '') {
						mappingUrl = tileAction + '?' + returnParam;
					}
					else {
						mappingUrl = tileAction;
					}
				}
				// tileActionÀÌ ¾Æ´Ñ°æ¿ì´Â ¸Þ´º¿Í ¿¬°á
				else {
					// ¸¶ÀÌÇÏ³ª ÆäÀÌÁöÀÎ °æ¿ì´Â ¸Þ´º°¡ ¾øÀ¸¹Ç·Î ActionÀ» HardCodingÇÑ´Ù. 2009.03.09 ±èÇöÁ¤
					if (menuItemId == 'wcusr700_43m' || menuItemId == 'indexHana') {
						mappingUrl = '/pbk/user/indexHana.do?tabIdx=A';
					} else if (menuItemId == 'index'){
						mappingUrl = tileAction;
						if (returnParam != null && returnParam != '') {
							mappingUrl = mappingUrl + '?' + returnParam;
						}						
					} else {
						mappingUrl = tileAction + '?menuItemId=' + menuItemId;
						if (returnParam != null && returnParam != '') {
							mappingUrl = mappingUrl + '&' + returnParam;
						}						
					}
				}
			} else {
				mappingUrl = '';
			}
			return mappingUrl.toString();		
		},
        */
		
		/**
		 * returnUrl À» Á¶¸³ÇÏ¿© ¸®ÅÏÇÑ´Ù. 
		 * @param {Object} formObj
		 */
		getReturnUrl : function (formObj){
		    var menuItemId  = null;
			var returnParam = null;
            var tileAction = null;
			var mappingUrl = '';
			
			menuItemId = pbk.common.login.getActionByParseUrl(formObj.returnUrl.value);
			returnParam = pbk.common.login.getActionParameterString(formObj.returnUrl.value);
			if ($('tilesActionUrl')) {
				tileAction = $('tilesActionUrl').value;
			}
			if (null != formObj.returnUrl.value && formObj.returnUrl.value != '') {
				// tileActionÀ» ´ãÀ» °æ¿ì´Â menuItemId°¡ ÇÊ¿ä¾øÀ¸¹Ç·Î tilesAction¸¸ ´ãÀ½.
				if (tileAction != null && tileAction != '' && tileAction == menuItemId ) {
					if (returnParam != null && returnParam != '') {
						mappingUrl = tileAction + '?' + returnParam;
					}
					else {
						mappingUrl = tileAction;
					}
				}
				// tileActionÀÌ ¾Æ´Ñ°æ¿ì´Â ¸Þ´º¿Í ¿¬°á
				else {
                
					if (menuItemId.endsWith('index')){
						mappingUrl = tileAction;
						if (returnParam != null && returnParam != '') {
							mappingUrl = mappingUrl + '?' + returnParam;
						}						
					} else {
						mappingUrl = tileAction + '?menuItemId=' + menuItemId;
						if (returnParam != null && returnParam != '') {
							mappingUrl = mappingUrl + '&' + returnParam;
						}						
					}
				}
			} else {
				mappingUrl = '';
			}
			return mappingUrl.toString();		
		},
		
		/**
		 * Æ÷Å» ¿äÃ»ÀÎÁö ±¸ºÐÇÑ´Ù.
		 * 20090324 
		 * @param {Object} formObj
		 */
		isPortalRequest : function() {
			var tileAction = null;
			var mappingUrl = '';
			/* ¾Æ·¡´Â Æ÷Å»¿¡¼­ ¾²´Â »óÀ§ µð·ºÅä¸® Á¤º¸ */
			//20090405 JHanaAjax.js ·Î ¿Å±è.
			//var portalUrlHash = new Hash();
			//portalUrlHash['/contents'] = '/contents';
			//portalUrlHash['/ubk'] = '/ubk';
			//portalUrlHash['/kms'] = '/kms';
			//portalUrlHash['/portal'] = '/portal';
			//portalUrlHash['/csc'] = '/csc';
			//portalUrlHash['/cor'] = '/cor';
			//portalUrlHash['/mkt'] = '/mkt';
		    
		    if ($('tilesActionUrl')) {
				var tileActionUrl = $('tilesActionUrl').value;
				
				if (tileActionUrl.indexOf('/',1)  > -1) {
					var tempTileAction = tileActionUrl.substring(0,tileActionUrl.indexOf('/',1));
					if (portalUrlHash.keys().include(tempTileAction)) {
						//alert('Æ÷Å»url');
						return true;
					} else {
						//alert('Æ÷Å»url ¾Æ´Ô');
						return false;
					}
				}
				
			} else {
				message.alert('¿¡·¯','tilesActionUrl°ªÀÌ ¼³Á¤µÇÁö ¾Ê¾Ò½À´Ï´Ù.<br/>¸¶½ºÅÍÆäÀÌÁö¿¡ ¼±¾ðÇØÁÖ¼¼¿ä.');
				return false;
			}
			return false;
		},
        
		/**
		 * Æ÷Å»¿äÃ»ÀÇ ¸®ÅÏURL À» Á¶¸³ÇÑ´Ù. 
		 * 20090324
		 * @param {Object} formObj
		 */
		getPortalReturnUrl : function (formObj){
			var mappingUrl = '';
			if ($('tilesActionUrl')) {
				var tileActionUrl = $('tilesActionUrl').value;
				var returnParam = pbk.common.login.getActionParameterString(formObj.returnUrl.value);
				var menuItems = eval('(' + hana.JMenuPanel.menus.toJSON() + ')');
				var portalParam = hana.JMenuPanel.getPortalItemParamById(hana.JMenuPanel.selectedItemId,menuItems);
			    mappingUrl = tileActionUrl+'?d='+portalParam.d+'&p1='+portalParam.p1+'&m0='+portalParam.m0+'&m1='+portalParam.m1;	
				if (returnParam != null && returnParam != '') {
					mappingUrl = tileActionUrl+'?d='+portalParam.d+'&p1='+portalParam.p1+'&m0='+portalParam.m0+'&m1='+portalParam.m1+'&' + returnParam;
				}
				
			} else {
				message.alert('¿¡·¯','tilesActionUrl°ªÀÌ ¼³Á¤µÇÁö ¾Ê¾Ò½À´Ï´Ù.<br/>¸¶½ºÅÍÆäÀÌÁö¿¡ ¼±¾ðÇØÁÖ¼¼¿ä.');
			}	
			return mappingUrl.toString();		
		},
		/**
		 * Return KeyÀÏ °æ¿ì ¼­ºê¹ÔÀ» ÇÑ´Ù.
		 * @param {Object} event ÀÌº¥Æ®
		 * @param {Object} obj ¿ÀºêÁ§Æ®
		 * @param {Object} form Æû ¿ÀºêÁ§Æ®
		 */
		actionKeyDown: function(event, obj, form){
			if (pbk.isReturnKey(event.keyCode)) {
				pbk.common.login.submitLogin(form);
			} 
		},
		
		/**
		 * Return KeyÀÏ °æ¿ì ÁöÁ¤ÇÑ ¿ÀºêÁ§Æ®·Î Æ÷Ä¿½º¸¦ ÀÌµ¿ÇÑ´Ù.
		 * @param {Object} event ÀÌº¥Æ®
		 * @param {String} objID FocusÇÒ ¿ÀºêÁ§Æ®ID
		 * @param {Object} formObj form Object 
		 */
		objFocus: function(event, objID,formObj){
			if (pbk.isReturnKey(event.keyCode)) {
				if ($(objID).value == null || $(objID).value == '') {
					$(objID).focus();
				} else {
					pbk.common.login.submitLogin(formObj);
				}
			} 
		},
		
		/**
		 * ´ë¹®ÀÚ·Î º¯È¯ÇÑ´Ù.
		 * @param {HTMLElement} obj
		 */
		toUpperCase : function(obj, event) {
            var evt = event || window.event;
            if( evt ){
                var kCode = evt.which || evt.keyCode;

                /* backspace ,tab(9),enter(13),shift(16),end(35),home(36),¹æÇâÅ°(ÁÂ(37),»ó(38),¿ì(49),ÇÏ(40)),delete(46) µîµî..*/
                var controlKeys = new Array(Event.KEY_BACKSPACE,Event.KEY_TAB,Event.KEY_RETURN,Event.KEY_ESC,Event.KEY_ESC,
                        Event.KEY_LEFT,Event.KEY_UP,Event.KEY_RIGHT,Event.KEY_DOWN,Event.KEY_DELETE,Event.KEY_HOME,
                        Event.KEY_END,Event.KEY_PAGEUP,Event.KEY_PAGEDOWN);

                /* Á¶ÀÛÅ°ÀÌ¸é Á¾·á */
                if( controlKeys.include(kCode) ){
                    return;
                }
            }
            obj.value = obj.value.toUpperCase();
		},
		
		/**
		 * ÁÖ¾îÁø ±æÀÌ°¡ Ã¤¿öÁö¸é ´ÙÀ½ form field ·Î ÀÚµ¿ ÀÌµ¿ 
		 * - ½Å¿ëÄ«µå¹øÈ£ ÀÔ·Â, ÀüÈ­¹øÈ£ ÀÔ·Â µî
		 * @param {Object} fromObj
		 * @param {Object} nextObj 
		 */
		autoShift: function(fromObj, nextObj, satisfyFldLen){
			if(fromFld.value.length == satisfyFldLen){
				nextFld.focus();
				return;
			}
		},
		
	   /**
		* ÀÔ·Â°ªÀÌ ¾ËÆÄºª,¼ýÀÚ·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
		*/
		isAlphaNum : function (value) {
		   var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
		   return pbk.common.login.containsCharsOnly(value,chars);
		},
		
	   /**
		* ÀÔ·Â°ªÀÌ Æ¯Á¤ ¹®ÀÚ(chars)¸¸À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
		* Æ¯Á¤ ¹®ÀÚ¸¸ Çã¿ëÇÏ·Á ÇÒ ¶§ »ç¿ë
		* ex) if (!containsCharsOnly(form.blood,"ABO")) {
		*         alert("Ç÷¾×Çü ÇÊµå¿¡´Â A,B,O ¹®ÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.");
		*     }
		*/
		containsCharsOnly : function (value,chars) {
		   for (var inx = 0; inx < value.length; inx++) {
		      if (chars.indexOf(value.charAt(inx)) == -1)
		          return false;
		   }
		   return true;
		},		
		
		/**
		 * formÀ» ¼­¹ÔÇÑ´Ù.
		 * @param {Object} formObj
		 */
		submitLogin : function(formObj) {
			var jForm = new hana.JForm();
			
            // Å°º¸µå º¸¾È »óÅÂ Á¡°Ë ·ÎÄÃ¿¡¼­ °³¹ßÇÒ¶§´Â »©¾ßÇÑ´ÙÇÔ. ¿Ã¸±¶§´Â ²À ¿Ã·Á¾ßÇÔ!!
            if(!keyStatCheck()){
                return;
            }           
			
			if (!jForm.add(new hana.JText('¾ÆÀÌµð', formObj.userId).range(4,10))
					  .add(new hana.JText('ºñ¹Ð¹øÈ£', formObj.pw).range(4,12)).validate()){ 
				return;
			}

			if (!pbk.common.login.isAlphaNum(formObj.userId.value)){ 
				messages.alert("ÀÔ·Â¿À·ù", "ÀÌ¿ëÀÚ ID´Â ¿µ¹® ¶Ç´Â ¿µ¹®/¼ýÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù.");
				return;
			}
			if (!pbk.common.login.isAlphaNum(formObj.pw.value)){
				messages.alert("ÀÔ·Â¿À·ù", "ÀÌ¿ëÀÚ ºñ¹Ð¹øÈ£´Â ¿µ¹® ¶Ç´Â ¿µ¹®/¼ýÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù.");
				return;
			}
            
			var mappingUrl = '';
			if (pbk.common.login.isPortalRequest()) {
				mappingUrl = pbk.common.login.getPortalReturnUrl(formObj);
			} else {
				mappingUrl = pbk.common.login.getReturnUrl(formObj);
			}
			
			
			if (null != mappingUrl && mappingUrl != '') {
				formObj.returnUrl.value = mappingUrl;
			}
			
			var hanaAjax = new hana.JHanaAjax(pbk.PAGE_WRAP, true, true);
			hanaAjax.ajaxSubmit(pbk.APPLICATION_CONTEXT_ROOT + '/common/pbkLoginSubmit.do',
					formObj,
					true,
					callbackResult,
					'UTF-8');		
/*			hanaAjax.ajaxSubmit(pbk.APPLICATION_CONTEXT_ROOT + '/common/loginSubmitEcho.do',
					formObj,
					true,
					callbackResult,
					'UTF-8');
					*/		
		}, 
        
        /**
         * formÀ» ¼­¹ÔÇÑ´Ù. TODO : ÀÓ½Ã¿ë echo ·Î±ä »èÁ¦ÇØ¾ßÇÔ
         * @param {Object} formObj
         */
        submitLoginEcho : function() {
                        
            hanaAjax = new hana.JHanaAjax(loginDiv, true, true);

            hanaAjax.ajaxSubmit(pbk.APPLICATION_CONTEXT_ROOT + '/common/loginSubmitEcho.do',
                    null,
                    true,
                    callbackResult,
                    'UTF-8');       
        }, 

		/**
		 * formÀ» ¼­¹ÔÇÑ´Ù.
		 * @param {Object} formObj
		 */
		submitCertLogin : function(formObj) {
            // Å°º¸µå º¸¾È »óÅÂ Á¡°Ç
            if(!keyStatCheck()){
                return;
            }			
						
			var mappingUrl = '';
			if (pbk.common.login.isPortalRequest()) {
				mappingUrl = pbk.common.login.getPortalReturnUrl(formObj);
			} else {
				mappingUrl = pbk.common.login.getReturnUrl(formObj);
			}
			
			
			if (null != mappingUrl && mappingUrl != '') {
				formObj.returnUrl.value = mappingUrl;
			}
            
			hanaAjax = new hana.JHanaAjax(pbk.PAGE_WRAP, true, true);

			hanaAjax.ajaxSubmit(pbk.APPLICATION_CONTEXT_ROOT + '/common/pbkCertLoginSubmit.do',
					formObj,
					true,
					callbackResult,
					'UTF-8');		
		},
		
		/**
		 * ÄÁÅÙÃ÷ ¿µ¿ªÀÇ ³»¿ëÀ» Update ÇÑ´Ù.
		 * @param {Object} url ¿äÃ»ÇÒ URL
		 * @param {Object} formObj Parameter°ªÀ» ³Ñ±æ Form Object
		 */
		ajaxUpdate : function(url, formObj) {
			hanaAjax = new hana.JHanaAjax(pbk.CONTENT_WRAP, true, true);
			hanaAjax.ajaxCommSubmit(url, formObj);
		},
		
		/**
		 * ·Î±×ÀÎ ¸¸·á½Ã°£À» 5ºÐÀ¸·Î ÃÊ±âÈ­ ÇÕ´Ï´Ù.
		 */
		extendLoginTime : function() {
			hanaAjax.extendLoginTime();
		},
		isMenuOver : false,
		/**
		 * Roll over 
		 * @param {Object} obj
		 */
		menuOver: function(obj){
			obj.src = obj.src.replace(".gif", "_over.gif");
			pbk.isMenuOver = true;
		},
		
		/**
		 * Roll out
		 * @param {Object} obj
		 */
		menuOut: function(obj){
			obj.src = obj.src.replace("_over.gif", "_on.gif");
		},

		/**
		 * id Á÷Á¢ÀÔ·Â  (Å×½ºÆ®¿ë)
		 * @param {Object} obj
		 */
		changeInputType: function(obj,formObj){
			if(obj.value == ''){
				obj.style.display = 'none';
				formObj.id.style.display = 'block';
				formObj.id.select();
			}else{
				formObj.id.value = obj.value;
			}
		},

        /**
         * ·Î±×ÀÎ ÆäÀÌÁö¿¡¼­ ¾ÆÀÌµð/ºñ¹Ð¹øÈ£ input ¹Ú½º¿¡¼­ Æ÷Ä¿½º°¡ µé¾î°¬À»¶§ ¹è°æÀÌ¹ÌÁö¸¦ º¯°æÇÑ´Ù.
         * @param {Object} obj
         */		
        inputOnFocus: function(obj) {
			var type;
			var bg; 
			
			if (this._getObjType(obj) == '1') { //1¹øÀÌ¸é ¾ÆÀÌµð ¾Æ´Ï¸é ºñ¹Ð¹øÈ£
                bg = 'url(/contents/ionresource/images/login/subMenu_loginCon02_label01_no.gif)';
			} else {
				bg = 'url(/contents/ionresource/images/login/subMenu_loginCon02_label02_no.gif)';
			}
			
            obj.style.background = bg;
        },	

        /**
         * ·Î±×ÀÎ ÆäÀÌÁö¿¡¼­ ¾ÆÀÌµð/ºñ¹Ð¹øÈ£ input ¹Ú½º¿¡¼­ focus out½Ã ¹è°æÀÌ¹ÌÁö¸¦ º¯°æÇÑ´Ù.
         * @param {Object} obj
         */
        inputOnBlur: function(obj) {
            var type;
            var bg; 
            
            type = this._getObjType(obj);
            if (obj.value.length == 0) {
                bg = 'url(/contents/ionresource/images/login/subMenu_loginCon02_label0' + type + '_01.gif)';
            } else {
                bg = 'url(/contents/ionresource/images/login/subMenu_loginCon02_label0' + type + '_no.gif)';
            }
    
            obj.style.background = bg;			
		},
		
		/**
		 * input Å¸ÀÔÀ» ¸®ÅÏÇÑ´Ù (³»ºÎÇÔ¼ö)
		 * @param {Object} obj
		 * @return 1:»ç¿ëÀÚID, 2:ºñ¹Ð¹øÈ£
		 */		
		_getObjType: function(obj) {
            return obj.name == 'userId' ? 1 : 2;
        },
        
        /**
         * ·Î±×¾Æ¿ô
         */
		submitLogout : function() {

            var hanaAjax = new hana.JHanaAjax('', true, true);
			// 20090405 ¿À·û°æ 
			// ¸ðµç ±×¸®µå ¾ø¾Ø´Ù. 
			var gridObjs = Ext.query("object[id$=Grid]");
			if (null != gridObjs) {
				for (var i = 0; i < gridObjs.length; i++) {
					gridObjs[i].style.visibility = 'hidden';
				}
			}
			// 20090407 ¿À·û°æ 
			// ¸ðµç ¼¿·ºÆ® ¹Ú½º¸¦ ¾ø¾Ø´Ù.
			hiddeAllSelectBox();
			pbk.extJS.targetMask.show('logoutMask',pbk.PAGE_WRAP,'#FFFFFF',1.5);	
			// ·Î±×¾Æ¿ô Ã³¸®ÈÄ Æ÷¿öµå ÇÑ´Ù. (·Î±×¾Æ¿ô Æ÷¿öµå ÇÑ´Ù. )			
			hanaAjax.ajaxSubmit(pbk.APPLICATION_CONTEXT_ROOT + '/common/pbkLogoutSubmit.do',
					null,
					true,
					function(xmlHttp){
							hana.isLogin = false;
								hanaAjax.ajaxSubmit(pbk.APPLICATION_CONTEXT_ROOT + '/common/logoutForward.do',
									null,
									true, null, 'UTF-8');
					},
					'UTF-8');
		}
	}
}();