/*INISEAL:[m4oXIvxLTJ%2FOMaHDnfel6S2olZA%3D%0A]*/
/*****************************************************************************
 * ÆÄÀÏ¸í : JHanaUtils.js
 * ÀÛ¼ºÀÏ : 2008. 03.03
 * ÀÛ¼ºÀÚ : ork
 * ¼³   ¸í : ÀÏ¹ÝÀûÀÎ Util ¿¡ ´ëÇØ ±â¼úÇÑ´Ù. (Static function ¸ðÀ½)
 * Dependency  : prototype.js , ext-base.js , ext-all.js, pbk-extJS.js (alert ¸Þ¼¼Áö Ãâ·ÂÀ» À§ÇØ)
 * ¸Þ¼¼ÁöÈ¿°ú¸¦ À§ÇÏ¿© ExtJs ¾Æ·¡ Á¤ÀÇ µÇ¾î¾ß ÇÕ´Ï´Ù.
 * ===========================================================================
 * º¯°æÀÌ·Â:
 * DATE                AUTHOR        DESCRIPTION
 * ---------------------------------------------------------------------------
 * 2008.03.03   Oh,Ryunkyong     Initial
 * 2008.05.13   Oh,Ryunkyong    input.toBizNo() Ãß°¡, replaceDashFromObj() Ãß°¡
 * 2008.06.18   Kim,sangjun     updater »èÁ¦
 * 2009.02.24   Lee,JeKyung     hana.JHanaUtils.window.popup.modal Ãß°¡
 * º¯°æ ÀÌ·ÂÀº ÀÌ°÷¿¡ Ãß°¡ ÇÕ´Ï´Ù.
 *****************************************************************************/

hana.JHanaUtils = function(){

    /**
     * SortableTable class°¡ »ý¼º µÈ instance¸¦ ÀúÀåÇÏ´Â º¯¼ö
     */
    var sortInstance;


    /**
     * toMoney ÇÔ¼ö¿¡¼­ ³»ºÎÀûÀ¸·Î »ç¿ë
     * ÀÔ·Â º¯¼ö¿¡ 3 ÀÚ¸®¸¶´Ù ÄÞ¸¶(,)¸¦ ºÙ¿© ¹ÝÈ¯ÇÑ´Ù.
     * @param field ÄÞ¸¶¸¦ ºÙÀÏ °ª
     */
    var formatCommas = function(numString) {
        var re = /,|\s+/g;
        numString = numString.replace(re, "");

        re = /(-?\d+)(\d{3})/;
        while (re.test(numString)) {
            numString = numString.replace(re, "$1,$2");
        }
        return numString;
    };

    /**
     * toKoreanFromMoney ¿¡¼­ ³»ºÎÀûÀ¸·Î »ç¿ë
     * ÄÞ¸¶(,)¸¦ Á¦°ÅÇÏ¿© ¹ÝÈ¯ÇÑ´Ù.
     * @param {Object} numString ÄÞ¸¶¸¦ Á¦°ÅÇÒ °ª
     */
    var stripCommas = function(numString) {
        var re = /,/g;
        return numString.replace(re, "");
    };

    return {

		print : {
			/**
			 * DIV ¿µ¿ªÀÎ¼â 
			 * @param {Object} targetDiv
			 */
			printDiv : function(targetDiv){
				/* 20090310 printmade ÀÎ¼â¸¦ ÀÌ¿ëÇÑ´Ù. printmade.js */
				if (targetDiv && targetDiv != null && targetDiv != '') {
					print_div(targetDiv, 0, 0, 0, 0, 0);
				}
				else {
					print_div(pbk.CONTENT_WRAP, 0, 0, 0, 0, 0);
				}				
			}
		},
		
        /**
         * ÄíÅ°¿¡ ´ëÇÑ function ¸ðÀ½
         */
        cookie: {
            /**
             * ÄíÅ°¿¡ ÀúÀåµÈ °ªÀ» ¹ÝÈ¯ÇÑ´Ù.
             * @param name ÄíÅ° ÀÌ¸§
             * @return ÄíÅ° ÀÌ¸§¿¡ ´ëÇÑ °ªÀ» ¹ÝÈ¯. ¾ø´Â °æ¿ì¿¡´Â ""¸¦ ¹ÝÈ¯.
             */
             getCookie :  function(name) {
                var arg = name + "=";
                var alen = arg.length;
                var clen = document.cookie.length;
                var i = 0;
                while (i < clen) {
                    var j = i + alen;
                    if (document.cookie.substring(i, j) == arg) {
                        return hana.JHanaUtils.cookie.getCookieVal(j);
                    }
                    i = document.cookie.indexOf(" ", i) + 1;
                    if (i == 0) break;
                }
                return "";
            },


            /**
             * ÄíÅ°¸¦ ÀúÀåÇÑ´Ù.
             * @param name ÄíÅ° ÀÌ¸§
             * @param value ÄíÅ° °ª
             * @param expires ÄíÅ°ÀÇ À¯È¿ ÀÏ
             * @param path
             * @param domain
             * @param secure
             */
             setCookie : function(name, value, expires, path, domain, secure) {
                if (!path) {
                    path = "/";
                }
                document.cookie = name + "=" + escape (value) +
                                ((expires) ? "; expires=" + expires : "") +
                                ((path) ? "; path=" + path : "") +
                                ((domain) ? "; domain=" + domain : "") +
                                ((secure) ? "; secure" : "");
            },


            /**
             * ÄíÅ°¸¦ »èÁ¦ÇÑ´Ù.
             * @param name »èÁ¦ÇÒ ÄíÅ° ÀÌ¸§
             * @param path
             * @param domain
             */
            deleteCookie : function(name, path, domain) {
                if (!path)
                    path = "/";

                if (hana.JHanaUtils.cookie.getCookie(name)) {
                    document.cookie = name + "=" +
                        ((path) ? "; path=" + path : "") +
                        ((domain) ? "; domain=" + domain : "") +
                        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
                }
            },


            /**
             * ÄíÅ°¸¦ ÀúÀåÇÒ ¶§ ÇÊ¿äÇÑ ÀûÇÕÇÑ Çü½ÄÀÇ À¯È¿±â°£À» ¹ÝÈ¯ÇÑ´Ù.
             * @param days ÄíÅ°°¡ À¯È¿ÇÒ ÀÏ (¿¹¸¦ µé¾î 3 ÀÏ µ¿¾È À¯È¿ÇØ¾ß ÇÏ¸é 3À» ÀÔ·Â)
             * @param hours ÄíÅ°°¡ À¯È¿ÇÒ ½Ã°£ (¿¹¸¦ µé¾î 2 ½Ã°£ µ¿¾È À¯È¿ÇØ¾ß ÇÏ¸é 2¸¦ ÀÔ·Â)
             * @param minutes ÄíÅ°°¡ À¯È¿ÇÒ ºÐ (¿¹¸¦ µé¾î 30 ºÐ µ¿¾È À¯È¿ÇØ¾ß ÇÏ¸é 30À» ÀÔ·Â)
             */
            getExpDate : function(days, hours, minutes) {
                var expDate = new Date( );
                if (typeof days == "number" && typeof hours == "number" &&
                    typeof hours == "number") {
                    expDate.setDate(expDate.getDate( ) + parseInt(days));
                    expDate.setHours(expDate.getHours( ) + parseInt(hours));
                    expDate.setMinutes(expDate.getMinutes( ) +
                    parseInt(minutes));
                    return expDate.toGMTString( );
                }
            },

            /**
             * ÄíÅ° °ªÀ» ÀÐÀ» ¶§ »ç¿ëÇÏ´Â º¸Á¶ ÇÔ¼ö
             * @param {Object} offset
             */
            getCookieVal :  function(offset) {
                var endstr = document.cookie.indexOf (";", offset);
                if (endstr == -1) {
                    endstr = document.cookie.length;
                }
                return unescape(document.cookie.substring(offset, endstr));
            }
        },

        html : {
            /**
             * div ¿µ¿ª³» ÆùÆ®»çÀÌÁî attribute
             */
            divFontSize : {},
            /**
             * ÆùÆ® »çÀÌÁî
             */
            divFontNum : 12,
            /**
             * ÁÖ¾îÁø ÅØ½ºÆ®(source)¿¡ Æ¯Á¤ ¹®ÀÚ(query)°¡ ³ªÅ¸³ª´Â È½¼ö¸¦ ¹ÝÈ¯ÇÑ´Ù.
             * @param source ´ë»óÀÌ µÇ´Â ÅØ½ºÆ®
             * @param query °Ë»öÇÏ·Á´Â ÅØ½ºÆ®
             * @return ÁÖ¾îÁø ÅØ½ºÆ®¿¡ Æ¯Á¤ ¹®ÀÚ°¡ ³ªÅ¸³ª´Â È½¼ö
             */
            countInstances : function(source, query) {
                var re = new RegExp(query, "g");
                var result = source.match(re);
                return (result) ? result.length : 0;
            },

            /**
             * <div> ÅÂ±×ÀÇ ³»¿ë Áß Æ¯Á¤ ÅØ½ºÆ®(before)¸¦ Æ¯Á¤ ÅØ½ºÆ®(after)·Î º¯°æÇÑ´Ù.
             * @param id <div> ÅÂ±×ÀÇ id ¼Ó¼º °ª
             * @param before º¯°æ Àü ÅØ½ºÆ®
             * @param after º¯°æ ÈÄ ÅØ½ºÆ®
             */
            replaceTextInDiv : function(id, before, after) {
                var element = document.getElementById(id).firstChild;
                var re = new RegExp(before, "g");
                element.nodeValue = element.nodeValue.replace(re, after);
                return false;
            },

            /**
             * textNode ¸¦ Ãß°¡ÇÑ´Ù.
             * @param {String} id
             * @param {String} text
             */
            writeTextInElement : function(id, text) {
                var element = document.getElementById(id);
                if (element.firstChild) {
                    element.firstChild.nodeValue = text;
                } else {
                    var child = document.createTextNode(text);
                    element.appendChild(child);
                }
                return false;
            },


            /**
             * Æ¯Á¤ ³ëµå°¡ °¡Áö°í ÀÖ´Â ¸ðµç ¼Ó¼ºÀ» TEXTAREA¿¡ Ãâ·ÂÇÑ´Ù. °³¹ß ÆíÀÇ¸¦ À§ÇØ¼­
             * Á¦°øµÇ´Â ÇÔ¼öÀÌ´Ù.
             * @param obj ¼Ó¼º °ªÀ» ¾Ë°íÀÚ ÇÏ´Â ³ëµå
             */
            listProperties : function(obj) {
                var objName;

                if (obj.nodeName) {
                    objName = obj.nodeName;
                } else {
                    objName = "navigator";
                }

                var result = "";
                for (var i in obj) {
                    result += objName + "." + i + "=" + obj[i] + "\n";
                }

                var area = document.createElement("textarea");
                area.rows = 20;
                area.cols = 50;
                var body = document.getElementsByTagName("BODY");
                if (body) {
                    body[0].appendChild(area);
                } else {
                    alert("body ÅÂ±×°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.");
                    return false;
                }
                area.value = result;
                return false;
            },

            /**
             * QueryStringÀ» ¹ÝÈ¯ÇÑ´Ù.
             */
            getQueryString : function() {
                var result = "";
                var queryTags = document.getElementsByTagName("input");
                for (var i = 0; i < queryTags.length; i++) {
                    var name = queryTags[i].name;
                    if (name) {
                        result += "&" + name + "=" + queryTags[i].value;
                    }
                }

                queryTags = document.getElementsByTagName("select");
                for (var i = 0; i < queryTags.length; i++) {
                    var name = queryTags[i].name;
                    if (name ) {
                        result += "&" + name + "=" + queryTags[i].value;
                    }
                }
                return result;
            },

            /**
             * DIV ¸¦ ¼û±ä´Ù.
             * @param {String} divId
             */
            hiddenDiv: function(/*String*/divId){
                var divObj = $(divId);
                divObj.style.visibility = 'hidden';

                hana.JHanaUtils.selectbox.selectBoxVisible(divId);

            },

            /**
             * DIV ¸¦ º¸¿©ÁØ´Ù.
             * @param {String} divId
             */
            showDiv: function(/*String*/divId){
                var divObj = $(divId);
                divObj.style.visibility = 'visible';

                hana.JHanaUtils.selectbox.selectBoxHidden(divId);
            },

            /**
             *
             * @param {Object} furl
             * @param {Object} fwidth
             * @param {Object} fheight
             * @param {Object} transoption
             * @param {Object} id_name
             */
            swfprint : function(furl,fwidth,fheight,transoption,id_name)    {
                var id_names = "main_flash";
                if(typeof(id_name) != 'undefined') id_names = id_name;
                document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="'+ fwidth +'" height="' + fheight +'" align="middle">');
                document.write('<param name="movie" value="'+ furl +'"/>');
                if (transoption == "t") {
                    document.write('<param name="wmode" value="transparent"/>');
                }
                else {
                    if (transoption == "o") {
                        document.write('<param name="wmode" value="opaque"/>');
                    }
                }

                document.write('<!-- Hixie method -->');
                document.write('<!--[if !IE]> <-->');
                document.write('<object type="application/x-shockwave-flash" data="'+ furl +'" width="'+ fwidth +'" height="' + fheight +'"');
                if (transoption == "t") {
                    document.write(' wmode="transparent"');
                }
                else {
                    if (transoption == "o") {
                        document.write(' wmode="opaque"');
                    }
                }

                document.write('></object>');
                document.write('<!--> <![endif]-->');
                document.write('</object>');
                if (id_names == "top_flash") {
                    //window.onload = fn_resize_top_flash;
                    window.attachEvent("onload", fn_resize_top_flash)
                    window.onresize = fn_resize_top_flash;
                }
            },

            /**
             * ´çÇà(ÇÏ³ªÀºÇà) °èÁÂ ¹øÈ£ Çü½ÄÀÇ Æ÷¸ËÀ¸·Î º¯È¯ÇÑ ¹®ÀÚ¿­À» ¹ÝÈ¯ÇÕ´Ï´Ù.
             * @param {String} acctNo °èÁÂ¹øÈ£
             */
            toAcctNo : function(acctNo){
				
                if(acctNo == null ) return "";
                if(acctNo.length == 14){
                    return acctNo.substring(0, 3) + "-" + acctNo.substring(3, 9) + "-" + acctNo.substring(9, 14);
                }
                else if(acctNo.length == 12){
                    return acctNo.substring(0, 5) + "-" + acctNo.substring(5, 12);
                }
				else{
					return acctNo;
				}
            },
			
			/**
			 * ¸ðµçÀºÇà °èÁÂ ¹øÈ£ Çü½ÄÀÇ Æ÷¸ËÀ¸·Î º¯È¯ÇÑ ¹®ÀÚ¿­À» ¹ÝÈ¯ÇÕ´Ï´Ù.
			 * @param {String} acctNo
			 * @param {String} bnkCd
			 */
            toAcctNoExt : function(acctNo,bnkCd){
				if(acctNo == null ) return "";
				if(bnkCd == null ) return "";
				if (bnkCd){
					// ÇÏ³ªÀºÇà
					if (bnkCd == '081') {
						if(acctNo.length == 14){
		                    return acctNo.substring(0, 3) + "-" + acctNo.substring(3, 9) + "-" + acctNo.substring(9, 14);
		                }
		                else if(acctNo.length == 12){
		                    return acctNo.substring(0, 5) + "-" + acctNo.substring(5, 12);
		                }	
						else {
							return acctNo;
				        }
					} else {
						return acctNo;
					}
				}				
            },			

			/**
             * »ç¾÷ÀÚ¹øÈ£ Çü½ÄÀÇ Æ÷¸ËÀ¸·Î º¯È¯ÇÑ ¹®ÀÚ¿­À» ¹ÝÈ¯ÇÕ´Ï´Ù.
             * @param {String} toBizNo »ç¾÷ÀÚ¹øÈ£
             */
            toBizNo : function(bizNo){
                if(bizNo == null ) return "";
                if(bizNo.length == 10){
                    return bizNo.substring(0, 3) + "-" + bizNo.substring(3, 5) + "-" + bizNo.substring(5, 10);
                }
                else if(bizNo.length == 13){
                    return bizNo.substring(3, 6) + "-" + bizNo.substring(6, 8) + "-" + bizNo.substring(8, 13);
                }
				else{
					return bizNo;
				}
            },

			/**
             * Ä«µå¹øÈ£ Çü½ÄÀÇ Æ÷¸ËÀ¸·Î º¯È¯ÇÑ ¹®ÀÚ¿­À» ¹ÝÈ¯ÇÕ´Ï´Ù.
             * @param {String} toCardNo »ç¾÷ÀÚ¹øÈ£
             */
            toCardNo : function(cardNo){
                if(cardNo == null ) return "";
                if(cardNo.length == 16){
                    return cardNo.substring(0, 4) + "-" + cardNo.substring(4, 8) + "-" + cardNo.substring(8, 12) + "-" + cardNo.substring(12, 16);
                }
				else{
					return cardNo;
				}
            },

            /**
             * ÀÎÀÚ·Î ³Ñ¾î¿Â value°ªÀ» Money Çü½ÄÀ¸·Î º¯È¯ÇØ¼­ return ÇÕ´Ï´Ù.
             * @param val {String} º¯È¯½ÃÅ³ ¹®ÀÚ
             */
            toMoney : function(val){
                val = val.toString();
                
                // Ã¹ÀÚ¸® 0 »èÁ¦. 20090303jk
                for(var i=0; i<val.length; i++){
                    if(val.length > 1 && val.indexOf('0') == 0 && val.indexOf('.') != 1) val = val.substring(1);   
                    else break;
                }
                
                var indexOfPoint = val.indexOf(".");
                if (indexOfPoint == -1) {
                    val = formatCommas(val);
                }else if(indexOfPoint == 0){
                    val = '0' + val.substring(indexOfPoint, val.length);
                } else {
                    val = formatCommas(val.substring(0, indexOfPoint)) +
                                    val.substring(indexOfPoint, val.length);
                }
                return val;
            },

            /**
             * date format ÀÔ´Ï´Ù....
             */
            toDate : function(str){
                var formatedDate;
                if( str ){
                    str = str.replace(/[^\d]/,"");
                    var dt;
                    if( str.length == 6 ){
                        dt = Date.parseDate(str, 'his');
                        formatedDate = dt.format("H:i:s");
                    }else if( str.length == 8 ){
                        dt = Date.parseDate(str, 'Ymd');
                        formatedDate = dt.format("Y-m-d");
                    }else if( str.length == 12 ){
                        dt = Date.parseDate(str, 'Ymdhi');
                        formatedDate = dt.format("Y-m-d H:i");
                    }else if( str.length == 14 ){
                        dt = Date.parseDate(str, 'Ymdhis');
                        formatedDate = dt.format("Y-m-d H:i:s");
                    }
                }

                return formatedDate;
            },

            /**
             *
             * @param {String} divId »çÀÌÁî Á¶Á¤ÇÏ°íÀÚ ÇÏ´Â
             * @param {String} flag +,-
             */
            changeFontSize :function(divId, flag) {
                if($(divId).style.fontSize == undefined || $(divId).style.fontSize == null || $(divId).style.fontSize == '') {
                    $(divId).setAttribute("style","font-size : 12px");
                    hana.JHanaUtils.html.divFontSize = 12;
                    alert('¾ø´Ù. '+hana.JHanaUtils.html.divFontSize);
                } else {
                    hana.JHanaUtils.html.divFontSize = parseInt(($(divId).style.fontSize).replace('px',""));
                }
                hana.JHanaUtils.html.divFontNum = hana.JHanaUtils.html.divFontSize;
                alert(hana.JHanaUtils.html.divFontNum);
                if(!isNaN(hana.JHanaUtils.html.divFontNum)){
                    if(flag=='+'){
                        if (hana.JHanaUtils.html.divFontNum > 24) {
                            hana.JHanaUtils.message.alert("¹üÀ§¿À·ù", "´õÀÌ»ó Å©°Ô ÇÒ ¼ö ¾ø½À´Ï´Ù.");
                        }
                        else
                            $(divId).style.fontSize = eval(hana.JHanaUtils.html.divFontNum + 2)+'px';
                    } else{
                        if(hana.JHanaUtils.html.divFontNum > 10)
                             $(divId).style.fontSize = eval(hana.JHanaUtils.html.divFontNum - 2)+'px';
                        else
                             hana.JHanaUtils.message.alert("¹üÀ§¿À·ù","´õÀÌ»ó ÀÛ°Ô ÇÒ ¼ö ¾ø½À´Ï´Ù.");
                    }
                }
            },

            /**
             * ¸Ç À§·Î scroll À» ¿Ã¸³´Ï´Ù.
             */
            scrollToTop : function(){
                $('WRAP').scrollTo('HANA_TOP');
            },
			
			/**
			 * È­¸éÀÇ Æ¯Á¤À§Ä¡ (id ¿¡ ÇØ´çÇÏ´Â ¿¤·¹¸àÆ®) ·Î ½ºÅ©·ÑÀ» ¿Å±ä´Ù.
			 * @param {Object} id
			 */
			goPosition : function(id){
				var obj = $(id);
				var curleft = curtop = 0;
				//ID ¿¡ ÇØ´çÇÏ´Â ¿¤·¹¸àÆ®ÀÇ À§Ä¡°ªÀ» °¡Á®¿Â´Ù.
				if (obj.offsetParent) {
					curleft = obj.offsetLeft
					curtop = obj.offsetTop
					while (obj = obj.offsetParent) {
						curleft += obj.offsetLeft	// ¿ÞÂÊ À§Ä¡°ª
					curtop += obj.offsetTop			// À§¿¡¼­ºÎÅÍ À§Ä¡°ª
					}
				}
				window.scrollTo(0,curtop);
				
			},
			
			/**
			 * Æ÷Ä¿½º¸¦ ¾ø¾Ø´Ù. 
			 */
			allblur : function() {
				if(document.getElementsbyTagName=="A"||document.getElementsbyTagName=="IMG") document.body.focus(); 
			}
        },

        viewport : {
            /**
             * ViewPort¸¦ °¡Á®¿Â´Ù.
             */
            getViewport : function() {
                var w =0;
                var h =0;

                if(window.innerWidth) w=window.innerWidth;
                if(document.documentElement.clientWidth){
                    var w2 = document.documentElement.clientWidth;
                    if(!w || w2 && w2 < w) w=w2;
                }else if(document.body){
                    w=document.body.clientWidth;
                }

                if(window.innerHeight) h=window.innerHeight;
                if(document.documentElement.clientHeight) h=document.documentElement.clientHeight;
                else if(document.body) h=document.body.clientHeight;

                return [w,h];
            },

            /**
             * Scroll OffesetÀ» °¡Á®¿Â´Ù.
             */
            getScrollOffset : function() {
                var x = 0;
                var y = 0;

                // ºê¶ó¿ìÀúº° scrollTop À§Ä¡ ¾ò¾î¿À±â
                if (window.pageYOffset)
                {
                    x = window.pageXOffset;
                    y = window.pageYOffset;
                }
                else if (document.documentElement && document.documentElement.scrollTop != undefined)
                {
                    x = document.documentElement.scrollLeft;
                    y = document.documentElement.scrollTop;
                }
                else if (document.body)
                {
                    x = document.body.scrollLeft;
                    y = document.body.scrollTop;
                }

                return [x,y];
            },

            /**
             * clientHeight¸¦ °¡Á®¿Â´Ù.
             */
            getClientHeight : function() {
                var x = 0;
                var y = 0;

                if (window.innerHeight)
                {
                    x = window.innerWidth;
                    y = window.innerHeight;
                }
                else if (document.documentElement && document.documentElement.clientHeight != undefined)
                {
                    x = document.documentElement.clientWidth;
                    y = document.documentElement.clientHeight;
                }
                else if (document.body)
                {
                    x = document.body.clientWidth;
                    y = document.body.clientHeight;
                }

                return [x,y];
            },

            /**
             * ScrollHeight¸¦ °¡Á®¿Â´Ù.
             */
            getScrollHeight : function() {
                var x,y;
                var _scrollHeight = document.body.scrollHeight;
                var _offsetHeight = document.body.offsetHeight

                if (_scrollHeight > _offsetHeight) {
                    x = document.body.scrollWidth;
                    y = document.body.scrollHeight;
                }
                else {
                    x = document.body.offsetWidth;
                    y = document.body.offsetHeight;
                }

                return [x,y];
            },

            /**
             * dialog¸¦ È­¸é °¡¿îµ¥¿¡ À§Ä¡½ÃÅ²´Ù.
             * @param {Object} _panelTarget ÂüÁ¶ÇÒ ¿ÀºêÁ§Æ®
             * @param {Object} _panelDlg °¡¿îµ¥ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®
             */
            centerPositioning : function (/*Object*/_panelTarget, /*Object*/ _panelDlg){
                // preparing
                var dlgPos = new Array(2);            // MaskLayerÀ§¿¡ ¿Ã·Á³õÀ» ¿ÀºêÁ§Æ®ÀÇ À§Ä¡
                var scrViewport = new Array(2);     // È­¸é Viewport
                var elViewport = new Array(2);      // MaskLayer¸¦ µ¤À» ¿ÀºêÁ§Æ®ÀÇ Viewport
                var tmpTarget = new Array(2);        // MaskLayer¸¦ µ¤À» ¿ÀºêÁ§Æ®ÀÇ Å©±â
                var tmpDlg = new Array(2);            // MaskLayerÀ§¿¡ ¿Ã·Á³õÀ» ¿ÀºêÁ§Æ®ÀÇ Å©±â
                var scrollOffset = new Array(2);    // »ó´Ü¿¡¼­ºÎÅÍ ½ºÅ©·ÑµÈ Å©±â
                var w;                                // ÁöÁ¤µÈ ¿ÀºêÁ§Æ®ÀÇ ³ÊºñÀÇ °¡¿îµ¥ Position
                var h;                                // ÁöÁ¤µÈ ¿ÀºêÁ§Æ®ÀÇ ³ôÀÌÀÇ °¡¿îµ¥ Position

                Position.prepare();

                // set position
                var scrPos = new Array(Position.deltaX, Position.deltaY);

                // MaskLayer¸¦ µ¤À» ¿µ¿ªÀÌ Á¤ÇØÁöÁö ¾Ê¾Ò´Ù¸é ÇöÀç º¸ÀÌ´Â È­¸éÀ»
                // Å¸ÄÏÀ¸·Î °¡¿îµ¥¸¦ ¼³Á¤ÇÑ´Ù.
                if (null != _panelTarget || _panelTarget != undefined) {
                    //
                    // MaskLayer¸¦ µ¤À» ¿µ¿ªÀ» Á¤ÇØ³õÀº °æ¿ì
                    //

                    // MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ ÁÂÇ¥¸¦ ±¸ÇÑ´Ù. [x,y]
                    elViewport = Position.cumulativeOffset(_panelTarget);

                    // ViewPort¸¦ °¡Á®¿Â´Ù. [w,h]
                    scrViewport = hana.JHanaUtils.viewport.getViewport();

                    // MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ Å©±â¸¦ ±¸ÇÑ´Ù. (width, height)
                    tmpTarget = Element.getDimensions(_panelTarget);

                    // MaskLayerÀ§¿¡ ¿Ã·Á³õÀ» LoadingÄÁÆ®·ÑÀÇ Å©±â¸¦ ±¸ÇÑ´Ù. (width, height)
                    tmpDlg = Element.getDimensions(_panelDlg);

                    // ½ºÅ©·Ñ À§Ä¡¸¦ ±¸ÇÑ´Ù. [x,y];
                    scrollOffset = pbk.getScrollOffset();

                    // MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ ÃÑ ³ôÀÌ°¡ ÇöÀç º¸´Â È­¸éÀÇ ³ôÀÌº¸´Ù Å¬ °æ¿ì
                    // Áï, MaskLayer¸¦ µ¤À» ¿µ¿ªÀÌ ÇöÀç È­¸éÀÇ ¿µ¿ªÀÇ À§ ¶Ç´Â ¾Æ·¡¿¡ °è¼ÓµÇ´Â °æ¿ì
                    // ÇöÀç È­¸é¿¡ º¸ÀÌ´Â ¿µ¿ª¿¡¼­ÀÇ °¡¿îµ¥·Î ¼³Á¤
                    if ((elViewport[1] + tmpTarget.height) - scrViewport[1] >= 0){
                        // MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ yÁÂÇ¥°ªÀÌ ÇöÀç º¸ÀÌ´Â È­¸éÀÇ À§ÂÊÀ¸·Î ³Ñ¾î°¬À» °æ¿ì
                        // Áï, MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ »ó´Ü ½ÃÀÛºÎºÐÀÌ ½ºÅ©·Ñ À§ÂÊÀ¸·Î ¹þ¾î³µÀ» °æ¿ì
                        if (elViewport[1] - scrollOffset[1] < 0) {
                            // ÄÁÆ®·ÑÀÇ ½ÃÀÛºÎºÐÀÌ ½ºÅ©·Ñ À§ÂÊÀ¸·Î ¹þ¾î³µÀ¸¹Ç·Î
                            // ÇöÀç º¸ÀÌ´Â È­¸éÀÇ ¸ðµç ¿µ¿ªÀÌ MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ ÄÁÆ®·Ñ¸¸ º¸ÀÌ°Ô µÈ´Ù.
                            // ±×·¡¼­ ³ôÀÌ´Â ÇöÀç º¸ÀÌ´Â È­¸éÀÇ °¡¿îµ¥·Î ÁöÁ¤
                            h = scrViewport[1] / 2;
                        }
                        else {
                            // ÄÁÆ®·ÑÀÇ ½ÃÀÛºÎºÐÀÌ ½ºÅ©·Ñ À§ÂÊÀ¸·Î ¹þ¾î³ªÁö ¾ÊÀº °æ¿ì.
                            // ÀÌ·² °æ¿ì¿¡´Â ÇöÀç º¸ÀÌ´Â ¿µ¿ª¿¡¼­ÀÇ °¡¿îµ¥·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù.
                            //
                            // ½ºÅ©·ÑÀÌ µÇ¸é¼­ ÇöÀç È­¸éÀÇ MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ ³ôÀÌ°¡ º¯È­ÇÏ¸é
                            // CenterPositionÀº ÇöÀç º¸ÀÌ´Â È­¸éÀÇ MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ °¡¿îµ¥¸¦ Ã£¾Æ¾ß ÇÑ´Ù.
                            // ÇöÀç º¸ÀÌ´Â È­¸é¿¡¼­ÀÇ ÄÁÆ®·ÑÀÇ ³ôÀÌ¸¦ ±¸ÇÒ¶§´Â ÇöÀç È­¸éÀÇ ³ôÀÌ¿¡¼­ ÄÁÆ®·ÑÀÇ yÁÂÇ¥°ªÀ» »« ÈÄ¿¡
                            // ½ºÅ©·ÑµÈ y°ª ¸¸Å­ Á¦°ÅÇØÁà¾ß ½ÇÁ¦ È­¸é¿¡ º¸ÀÌ´Â ÄÁÆ®·ÑÀÇ ³ôÀÌ¸¦ ±¸ÇÒ ¼ö ÀÖ´Ù.
                            // ÄÁÆ®·ÑÀÇ yÁÂÇ¥°ª¿¡¼­ ±¸ÇÑ ³ôÀÌÀÇ °¡¿îµ¥¸¦ ´õÇØÁÖ¸é ½ÇÁ¦ À§Ä¡ÇÒ yÃà ÁÂÇ¥°ªÀ» ±¸ÇÒ ¼ö ÀÖ´Ù.
                            h = elViewport[1] + ((scrViewport[1] - elViewport[1] - scrollOffset[1]) / 2);
                        }

                        // ³ôÀÌÀÇ °æ¿ì´Â ÇöÀç ÄÁÆ®·ÑÀÇ xÃà ÁÂÇ¥°ª¿¡ ÄÁÆ®·ÑÀÇ ³ÐÀÌÀÇ Àý¹ÝÀ» °¡¿îµ¥·Î ±¸ÇÑ´Ù.
                        w = elViewport[0] + tmpTarget.width / 2;
                    }else {
                        // MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ ÃÑ ³ôÀÌ°¡ ÇöÀç º¸´Â È­¸éÀÇ ³ôÀÌº¸´Ù ÀÛÀ» °æ¿ì¿¡´Â
                        // ÇöÀç º¸ÀÌ´Â x, y ÁÂÇ¥°ª¿¡ ³ÐÀÌ¿Í ³ôÀÌ¸¦ ´õÇÑ Àý¹ÝÀÌ °¡¿îµ¥°¡ µÈ´Ù.
                        h = elViewport[1] + tmpTarget.height / 2;
                        w = elViewport[0] + tmpTarget.width / 2;
                    }

                    // MaskLayer¸¦ µ¤À» ¿µ¿ªÀÇ ¾Æ·§ºÎºÐÀ» ¹þ¾î³¯ °æ¿ì °¡¿îµ¥ À§Ä¡½ÃÅ³ ¿ÀºêÁ§Æ®´Â ¿µ¿ªÀÇ ¾Æ·§ºÎºÐ¿¡¼­ ¹þ¾î³ªÁö ¾Êµµ·Ï °íÁ¤ÇÑ´Ù.
                    if ((elViewport[1] + tmpTarget.height) <= (scrollOffset[1] + h + tmpDlg.height / 2)){
                        h = ((elViewport[1] + tmpTarget.height) - scrollOffset[1]) - tmpDlg.height / 2;
                    }

                    // °¡¿îµ¥ÀÇ À§Ä¡¸¦ ±¸Çß´Ù ÇÏ´õ¶óµµ
                    // ±×°÷¿¡ ¿Ã·Á³õÀ» ÄÁÆ®·ÑÀÇ ³ôÀÌ¿Í ³ÊºñÀÇ Àý¹Ý¾¿À» »©Áà¾ß Á¤ °¡¿îµ¥°¡ µÈ´Ù.
                    dlgPos[0] = scrPos[0] + w - tmpDlg.width / 2;
                    dlgPos[1] = scrPos[1] + h - tmpDlg.height / 2;
                }
                else {
                    //
                    // MaskLayer¸¦ µ¤À» ¿µ¿ªÀ» Á¤ÇÏÁö ¾ÊÀº °æ¿ì (ÇöÀç º¸ÀÌ´Â È­¸éÀ» Å¸ÄÏÀ¸·Î ÁøÇà)
                    //

                    // ViewPort¸¦ °¡Á®¿Â´Ù. [w,h]
                    scrViewport = hana.JHanaUtils.viewport.getViewport();

                    // MaskLayerÀ§¿¡ ¿Ã·Á³õÀ» LoadingÄÁÆ®·ÑÀÇ Å©±â¸¦ ±¸ÇÑ´Ù. (width, height)
                    tmpDlg = Element.getDimensions(_panelDlg);

                    // ÇöÀç º¸ÀÌ´Â x, y ÁÂÇ¥°ª¿¡ ³ÐÀÌ¿Í ³ôÀÌ¸¦ ´õÇÑ Àý¹ÝÀÌ °¡¿îµ¥°¡ µÈ´Ù.
                    // °¡¿îµ¥ÀÇ À§Ä¡¸¦ ±¸Çß´Ù ÇÏ´õ¶óµµ
                    // ±×°÷¿¡ ¿Ã·Á³õÀ» ÄÁÆ®·ÑÀÇ ³ôÀÌ¿Í ³ÊºñÀÇ Àý¹Ý¾¿À» »©Áà¾ß Á¤ °¡¿îµ¥°¡ µÈ´Ù.
                    dlgPos[0] = scrPos[0] + scrViewport[0] / 2 - tmpDlg.width / 2;
                    dlgPos[1] = scrPos[1] + scrViewport[1] / 2 - tmpDlg.height / 2;
                }

                // drawing dialogBox
                _panelDlg.style.left = dlgPos[0] + 'px';
                _panelDlg.style.top = dlgPos[1] + 'px';
            }
        },

        radio : {
            /**
             * ¼±ÅÃµÈ radio ¹öÆ°ÀÇ value ¸¦ return ÇÕ´Ï´Ù.
             * ¸¸¾à value °¡ ¾ø°Å¸¸ ¼±ÅÃ µÇÁö ¾Ê¾ÒÀ¸¸é ""¸¦ return ÇÕ´Ï´Ù.
             * @param radioObj {Object} radio ¹öÆ° Obj
             */
            getCheckedValue : function (radioObj) {
                if(!radioObj){
                    return "";
                }
                var radioLength = radioObj.length;
                if(radioLength == undefined){
                    if(radioObj.checked){
                        return radioObj.value;
                    }
                    else{
                        return "";
                    }
                }

                for(var i = 0; i < radioLength; i++) {
                    if(radioObj[i].checked) {
                        return radioObj[i].value;
                    }
                }
                return "";
            },

            /**
             * newValue °ªÀ¸·Î radio ¹öÆ°À» ¼±ÅÃ ÇÕ´Ï´Ù.
             * ¸¸¾à radio ¹öÆ° obj °¡ ¾øÀ¸¸é ¾Æ¹«°Íµµ ÇÏÁö ¾Ê½À´Ï´Ù.
             * ¸¸¾à ÇØ´ç °ªÀÌ ¾øÀ¸¸é radio ¹öÆ°ÀÇ check ¸¦ unchecked ÇÕ´Ï´Ù.
             * @param radioObj
             * @param newValue
             */
            setCheckedValue : function(radioObj, newValue) {
                if(!radioObj)
                    return;
                var radioLength = radioObj.length;
                if(radioLength == undefined) {
                    radioObj.checked = (radioObj.value == newValue.toString());
                    return;
                }
                for(var i = 0; i < radioLength; i++) {
                    radioObj[i].checked = false;
                    if(radioObj[i].value == newValue.toString()) {
                        radioObj[i].checked = true;
                    }
                }
            },

            /**
             * ¼±ÅÃµÈ radio ¹öÆ°ÀÇ value ¸¦ return ÇÕ´Ï´Ù.
             * ¸¸¾à value °¡ ¾ø°Å¸¸ ¼±ÅÃ µÇÁö ¾Ê¾ÒÀ¸¸é ""¸¦ return ÇÕ´Ï´Ù.
             * @param radioObj {Object} radio ¹öÆ° Obj
             */
            getCheckedObj : function (radioObj) {
                if(!radioObj){
                    return "";
                }
                var radioLength = radioObj.length;
                if(radioLength == undefined){
                    if(radioObj.checked){
                        return radioObj;
                    }
                    else{
                        return "";
                    }
                }

                for(var i = 0; i < radioLength; i++) {
                    if(radioObj[i].checked) {
                        return radioObj[i];
                    }
                }
                return null;
            }

        },

        input : {
            /**
			 *
			 * @param {String} name1
			 * @param {Object} inputObj1
			 * @param {String} name2
			 * @param {Object} inputObj2
			 */
			isShoudEqual : function(name1,inputObj1,name2,inputObj2) {
				if (inputObj1 !=null && inputObj2 !=null) {
					if (inputObj1.value != inputObj2.value) {
						pbk.extJS.messageBox.errMsgBox({
							isConfirm: false,
							title: 'ÀÔ·Â¿À·ù',
							message: name1+' °ú '+name2+ ' ÀÇ °ªÀº °°¾Æ¾ß ÇÕ´Ï´Ù.',
							callback: function(e){
								return false;
							}
						});
					} else {
						return true;
					}
				} else {
					return true;
				}
			},

            /**
             * ÀÔ·Â¹ÞÀ» ¼ö ÀÖ´Â °ªÀ» ÇÊÅÍ¸µÇÑ´Ù.
             * ex : <input type="text" ..... onkeypress="filterKey('[0-9]', event)"> ; ¼ýÀÚ¸¸ Å°ÀÔ·ÂÀÌ °¡´ÉÇÑ text filed
             * ex : <input type="text" ..... onkeypress="filterKey('[0-9a-zA-Z]', event)"> ; ¿µ¹®,¼ýÀÚ¸¸ Å°ÀÔ·ÂÀÌ °¡´ÉÇÑ text filed
             * @param filter : ÇÊÅÍ¸µÇÒ Á¤±ÔÇ¥Çö½Ä ex) '[0-9]':0~9ÀÇ °ª¸¸ Çã¿ë, '[a-zA-Z]':¾ËÆÄºª¸¸ Çã¿ë
             * @return
             */
            filterInputData : function(filter, e) {
                if (filter) {
                    var evt = e || window.event;
                    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);

                    /* Á¶ÀÛÅ°ÀÌ¸é Á¾·á */
                    for (var i=0; i<controlKeys.length; i++) {
                        if (controlKeys[i] == kCode) return;
                    }

                    var sKey = String.fromCharCode(kCode);

                    var re = new RegExp(filter);
                    if (!re.test(sKey)) {
                        Event.stop(evt);
                    }
                    // ÇÑ±Û Ã¼Å©
                    /*
                    var re = new RegExp('[\u3130-\u318f\uac00-\ud7af]');
                    if (re.test(sKey)) {
                        Event.stop(evt);
                    }
                    */
                }
            },

            /**
             * ¼ýÀÚ·Î ¹ÝÈ¯
             */
            toNumber : function( numStr ){
                return stripCommas(numStr);
            },

            /**
             * , ¼ýÀÚ·Î ¹ÝÈ¯
             * @param numStr
             */
            toFormatMoney : function(numStr){
                return formatCommas(numStr);
            },

            /**
             * ÅØ½ºÆ® ÇÊµå¿¡ ÀÔ·ÂÇÑ °ª¿¡ 3ÀÚ¸®¸¶´Ù ÄÞ¸¶(,)¸¦ ºÙÀÎ´Ù.
             * ÅØ½ºÆ® ÇÊµå¿¡ ¾Æ·¡¸¦ ±âÀÔÇÑ´Ù. onkeyup="toMoney(this)"
             * @param field ÅØ½ºÆ® ÇÊµå
             */
            toMoney : function(field) {
                var value = field.value;
                
                // Ã¹ÀÚ¸® 0 »èÁ¦. 20090303jk
                for(var i=0; i<value.length; i++){
                    if(value.length > 1 && value.indexOf('0') == 0 && value.indexOf('.') != 1) value = value.substring(1);   
                    else break;
                }              
                
                var indexOfPoint = value.indexOf(".");
                if (indexOfPoint == -1) {
                    field.value = formatCommas(value);
                }else if(indexOfPoint == 0){
                    field.value = '0' + value.substring(indexOfPoint, value.length);                    
                } else {
                    field.value = formatCommas(value.substring(0, indexOfPoint)) +
                                    value.substring(indexOfPoint, value.length);
                }
            },
            /**
             * , ´Þ·¯ Çü½ÄÀ¸·Î ¹ÝÈ¯
             * @param numStr
             */
            toFormatDollarMoney : function(numStr){
                var money = pbk.stripCommas(numStr.toString().replace(/-|\s+/g, ""));
                
                if(money.length == 0) return '0.00';
                
                var moneySplit = money.split('.');     // Áö¼ö/¼Ò¼öºÎ ºÐ¸®.
                var pointMoney = '00';
                
                if(moneySplit.length > 1){             // ¼Ò¼öºÎ ÀÚ¸´¼ö 2 ÀÚ¸®·Î ¸ÂÃã.
                    pointMoney = moneySplit[1].length == 1 ? moneySplit[1]+'0' : moneySplit[1].substring(0,2);
                }
                return formatCommas(moneySplit[0]) +'.'+ pointMoney;
            },            
            /**
             * ÅØ½ºÆ® ÇÊµå¿¡ ÀÔ·ÂÇÑ °ª¿¡ µÚ¿¡ .00 Æ÷¸ËÀ» ÁØ´Ù.
             * @param {Object} field ÅØ½ºÆ® ÇÊµå
             */
            toDollarMoney : function (field){
			    var value = field.value;
			    var indexOfPoint = value.indexOf(".");
			    //alert(value);
			    if (indexOfPoint ==0 ){
			        field.value = '0.00';
			    }
			    else if (indexOfPoint == -1) {		
			        if (value == ".00") {
			            field.value = value + '0.00';
			        } else if (value !=''){
						// 20081103 ¿À·û°æ , 0 À¸·Î ½ÃÀÛÇÏ´Â ¼ýÀÚ Ã³¸® 
				        var valueLength      = value.length;
						var tempValue = '';
						for (var i =0 ; i < valueLength; i++ ) {
							var chracter = value.charAt(i);						
							if (parseInt(chracter,10) > 0) {
								tempValue = tempValue + chracter;
							} else if (parseInt(chracter,10) == 0){
								if (parseInt(tempValue, 10) > 0) {
									tempValue = tempValue + '0';
								}
								else {
									tempValue = '';
								}
							} 
						}			
                        if(tempValue == '') tempValue = '0';
			            field.value = tempValue + '.00';
			        }
			
			    }
			    else {
			        var temp0 = parseFloat('0.' + value.substring(indexOfPoint + 1, value.length));
			        var fTemp = '';
			        //alert('µÞÀÚ¸® ==> '+temp0);
			        if (temp0 != 0.0) {
			            fTemp = '' + Math.round(temp0 * 100);
			            var inxTempPoint = fTemp.indexOf(".");
			            var tempFloatString = fTemp.substring(inxTempPoint + 1, fTemp.length);
			            if (tempFloatString.length < 2) {
			                fTemp = tempFloatString + "0";
			            }
			        }
			        else {
			            fTemp = '00';
			        }
					// 20081103 ¿À·û°æ , 0 À¸·Î ½ÃÀÛÇÏ´Â ¼ýÀÚ Ã³¸® 
					var beforeIndexValue = value.substring(0, indexOfPoint);
					var valueLength      = beforeIndexValue.length;
					var tempValue = '';
					for (var i =0 ; i < valueLength; i++ ) {
						var chracter = beforeIndexValue.charAt(i);						
						if (parseInt(chracter,10) > 0) {
							tempValue = tempValue + chracter;
						} else if (parseInt(chracter,10) == 0){
							if (parseInt(tempValue, 10) > 0) {
								tempValue = tempValue + '0';
							}
							else {
								tempValue = '';
							}
						} 
					}	
                    if(tempValue == '') tempValue = '0';
			        field.value = tempValue + '.' + fTemp;
			    }

            },
            /**
             * ¼ýÀÚÅ¸ÀÔÀÇ ¹®ÀÚ¸¦ ÇÑ±Û·Î Ç¥ÇöÇÑ´Ù.
             * @param {String} numStr  Number typeÀÇ String
             * @param {String} targetDivId ÇÑ±Û·Î Ç¥ÇöµÉ DivId
             * @param {int} rangeLength Á¦ÇÑÀÚ¸´¼ö
             * @param {HTMLElemtnt} targetEl ¿¡·¯½Ã ÃÊ±âÈ­ÇÒ Element (optional)
             * @return {boolean} Á¦ÇÑÀÚ¸®¸¦ Åë°úÇß´ÂÁö ¿©ºÎ
             *
             */
            toKoreanFromMoney : function (numStr,targetDivId,rangeLength, targetEl){
                var arrayNum=new Array("","ÀÏ","ÀÌ","»ï","»ç","¿À","À°","Ä¥","ÆÈ","±¸");
                var arrayUnit=new Array("","½Ê","¹é","Ãµ","¸¸ ","½Ê¸¸ ","¹é¸¸ ","Ãµ¸¸ ",
                                    "¾ï ","½Ê¾ï ","¹é¾ï ","Ãµ¾ï ","Á¶ ","½ÊÁ¶ ","¹éÁ¶");
                var arrayStr= new Array();
                var numStr = stripCommas(numStr);
                var len = numStr.length;

                var isValid = true;
                // Á¦ÇÑ ÀÚ¸´¼ö°¡ ³ÑÀ¸¸é ¸®ÅÏÇÑ´Ù.
                if (len > rangeLength) {
                    // ¿À·ù¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ´Ù.
                    hana.JHanaUtils.message.alert("ÀÔ·Â¿À·ù","¹üÀ§¸¦ ÃÊ°úÇÏ¿´½À´Ï´Ù.");

                    if (targetEl) {
                        targetEl.value = "0";
                    }
                    isValid = false;
                }


                var hanStr = "";
                if (isValid) {
                    for (i = 0; i < len; i++) {
                        arrayStr[i] = numStr.substr(i, 1)
                    }
                    code = len;
                    for (i = 0; i < len; i++) {
                        code--;
                        tmpUnit = "";
                        if (arrayNum[arrayStr[i]] != "") {
                            tmpUnit = arrayUnit[code];
                            if (code > 4) {
                                if ((Math.floor(code / 4) == Math.floor((code - 1) / 4) &&
                                arrayNum[arrayStr[i + 1]] != "") ||
                                (Math.floor(code / 4) == Math.floor((code - 2) / 4) &&
                                arrayNum[arrayStr[i + 2]] != "")) {
                                    tmpUnit = arrayUnit[code].substr(0, 1);
                                }
                            }
                        }
                        hanStr += arrayNum[arrayStr[i]] + tmpUnit;
                    }
                }

                if (targetDivId && targetDivId != "") {
                    var oTargetDiv = $(targetDivId);
                    if (oTargetDiv) {
                        var oTextNode = new Object();
                        var oChildNode = new Object();
                        if (hanStr != "") {
                            oTextNode = document.createTextNode('(' + hanStr + '¿ø)');
                            oChildNode = oTargetDiv.childNodes[0];
                        } else {
                            oTextNode = document.createTextNode(' ');
                            oChildNode = oTargetDiv.childNodes[0];
                        }
                        if (oTargetDiv.childNodes.length != 0) {
                            oTargetDiv.removeChild(oChildNode);
                        }
                        oTargetDiv.appendChild(oTextNode);
                    }
                }
				
				if (isValid == false){
					targetEl.value = '0';
				}
                return isValid;
            },

            /**
             * ÅØ½ºÆ® ÇÊµå¿¡ ÀÔ·ÂÇÑ °ª¿¡ 6ÀÚ¸® ÀÌÈÄ¿¡ ´ë½Ã(-)¸¦ ºÙÀÎ´Ù.
             * ÅØ½ºÆ® ÇÊµå¿¡ ¾Æ·¡¸¦ ±âÀÔÇÑ´Ù. onkeyup="toSsn(this)"
             * @param field ÅØ½ºÆ® ÇÊµå
             */
            toSsn : function(field) {
                var number = String(field.value);
                number = number.replace(/-|\s+/g, "");

                var length = number.length;

                if (length < 6) {
                    field.value = number;
                } else {
                    var result = number.substring(0, 6) + "-";
                    result += number.substring(6, length);
                    field.value = result;
                }
            },

            /**
             * ÅØ½ºÆ® ÇÊµå¿¡ ÀÔ·ÂÇÑ °ª¿¡ 3ÀÚ¸® ÀÌÈÄ¿¡ ´ë½Ã(-), 5ÀÚ¸®ÀÌÈÄ¿¡ (-)¸¦ ºÙÀÎ´Ù.
             * ÅØ½ºÆ® ÇÊµå¿¡ ¾Æ·¡¸¦ ±âÀÔÇÑ´Ù. onkeyup="toBizNo(this)"
             * @param field ÅØ½ºÆ® ÇÊµå
             */
            toBizNo : function(field) {
                var number = String(field.value);
                number = number.replace(/-|\s+/g, "");

                var length = number.length;

                if (length < 3) {
                    field.value = number;
                } else {
                    var result = number.substring(0, 3) + "-";
                    if (length > 3) {
                        result += number.substring(3, 5) + "-";
                    }
                    if (length > 5) {
                        result += number.substring(5, length);
                    }
                    field.value = result;
                }
            },
            /**
             * ´ë½¬ '-' ¸¦ Á¦°ÅÇÑ´Ù.
             */
            stripDash : function(field) {
                var numString = field.value;
                var re = /-/g;
                return numString.replace(re, "");
            },

            /**
             * ÄÞ¸¶(,)¸¦ Á¦°ÅÇÏ¿© ¹ÝÈ¯ÇÑ´Ù.
             * @param {Object} numString ÄÞ¸¶¸¦ Á¦°ÅÇÒ °ª
             */
            stripComma : function(field) {
                var numString = field.value;
                var re = /,/g;
                return numString.replace(re, "");
            },
            /**
             * formObj ·Î ºÎÅÍ input type=text ¸¦ °Ë»öÇØ¼­ class="className" ÀÎ °ÍÀ» °ñ¶ó - ¸¦ Á¦¿Ü½ÃÅ²´Ù.
             * @param {Object} formObj
             * @param {String} className
             */
            replaceDashFromObj : function(formObj,className){
                var inputs = Form.getInputs(formObj,'text');
                if (inputs) {
                    for (var i =0, len = inputs.length; i < len ; i++) {
                        var inputClassName = inputs[i].niceClass || inputs[i].className;
                        if (inputClassName.indexOf(className) != -1){
                            inputs[i].value = input.stripDash(inputs[i]);
                        }
                    }
                }
                return formObj;
            },
            /**
             * formObj ·Î ºÎÅÍ input type=text ¸¦ °Ë»öÇØ¼­ class="className" ÀÎ °ÍÀ» °ñ¶ó , ¸¦ Á¦¿Ü½ÃÅ²´Ù.
             * @param {Object} formObj
             * @param {String} className
             */
            replaceCommaFromObj : function(formObj,className){
                var inputs = Form.getInputs(formObj,'text');
                if (inputs) {
                    for (var i =0, len = inputs.length; i < len ; i++) {
                        var inputClassName = inputs[i].niceClass || inputs[i].className;
                        if (inputClassName.indexOf(className) != -1){
                            inputs[i].value = input.stripComma(inputs[i]);
                        }
                    }
                }
                return formObj;
            },

            filterInputKorean : function(inputObj) {

                var i;
                var ch;
                var fullStr = inputObj.value.toString();
                var fullStrLength = fullStr.length;
                for (i=0;i<fullStrLength;i++) {
                    ch = escape(fullStr.charAt(i)); //ISO-Latin-1 ¹®ÀÚ¼ÂÀ¸·Î º¯°æ

                    if (hana.JHanaUtils.input.strCharByte(ch) == 2) { //ÇÑ±ÛÀÌ¸é
                        fullStr = fullStr.substring(0, i)+fullStr.substring(i+1,fullStr.length);
                    }
                }
                inputObj.value = fullStr;
            },

            strCharByte : function(chStr) {
                if (chStr.substring(0, 2) == '%u') {
                    if (chStr.substring(2,4) == '00')
                        return 1;
                        else
                        return 2;        //ÇÑ±Û
                    } else if (chStr.substring(0,1) == '%') {
                    if (parseInt(chStr.substring(1,3), 16) > 127)
                        return 2;        //ÇÑ±Û
                    else
                        return 1;
                    } else {
                        return 1;
                }
            },

            /**
             * ÀÔ·Â°ªÀÌ ÀÏÁ¤ÇÑ length °¡ µÇ¸é focus¸¦ ÀÌµ¿ ½ÃÅµ´Ï´Ù.
             * ex : <input type="text" ..... onkeyup="input.autoShift(this, 'nextElId', 3);">
             * @param {Object} fromObj this
             * @param {String} toFld   Æ÷Ä¿½º ÀÌµ¿ ½ÃÅ³ element id
             * @param {int} satisfyFldLen Æ÷Ä¿½º ÀÌµ¿ Á¶°ÇÀ» ¸¸Á·½ÃÅ³ ÀÔ·Â ±æÀÌ
             */
            autoShift : function(fromObj, toFld, satisfyFldLen){
                if(fromObj.value.length == satisfyFldLen){
                    document.getElementById(toFld).focus();
//                    document.getElementById(toFld).select();
                }
            },
            /**
             * ÀÔ·Â°ªÀ» ¸¶½ºÅ·ÇÑ´Ù.
             * @param {String} inputValue ¿ø·¡ ¹®ÀÚ¿­
             * @param {Number} orginCharlength ¿ø·¡´ë·Î º¸¿©ÁÙ ¹®ÀÚ¼ö
             * @param {String} maskingChar maskingÇÒ character
             * @return {String} ¸¶½ºÅ·ÇÑ ¹®ÀÚ¿­
             */
            maskInputBox : function(inputValue,orginCharlength, maskingChar){
                var tempValue = inputValue;
                var strtmp = "";
                if (tempValue) {
                    if (tempValue.length > orginCharlength) {
                        strtmp = tempValue.substr(0, orginCharlength);
                        for (i = orginCharlength; i < tempValue.length; i++) {
                            strtmp += maskingChar;
                        }
                    }
                }
                return     strtmp;
            },
            /**
             * ÈÞ´ë¹øÈ£¸¦ split ÇÏ¿© target Object¿¡ ÇÒ´çÇÑ´Ù.
             * input.splitMobilePhoneNo('01012341234',targetObj1,targetObj2,targetObj3)
             * @param {String} sourceValue split ÇÒ ¼Ò½º
             * @param {Object} targetObj1 ±¹¹ø Object
             * @param {Object} targetObj2 Áß°£¹øÈ£ Object
             * @param {Object} targetObj3 ¸¶Áö¸·¹øÈ£ Object
             */
            splitMobilePhoneNo : function(sourceValue,targetObj1,targetObj2,targetObj3) {
                var fullChar = sourceValue;
                if (null!=fullChar & fullChar !='') {
                    var firstStr = '';
                    var secodeStr = '';
                    var thirdStr = '';
                    var pos = fullChar.indexOf("-");
                    // ±¸ºÐÀÚ°¡ ÀÖ´Â °æ¿ì
                    var count = 0;
                    while ( pos != -1 ) {
                        count++;
                        pos = fullChar.indexOf("-", pos+1);
                    }
                    // 010-1234-1234 => ÀÌ·¯ÇÑ °æ¿ì
                    if (count == 2) {
                        var secondInx = fullChar.indexOf('-');
                        firstStr = fullChar.substring(0,secondInx);

                        secodeStr = fullChar.substring(secondInx+1,fullChar.lastIndexOf('-'));
                        thirdStr = fullChar.substring(fullChar.lastIndexOf('-')+1,fullChar.length);
                        targetObj1.value = firstStr;
                        targetObj2.value = secodeStr;
                        targetObj3.value = thirdStr;
                    }
                    // 010-12341234 => ÀÌ·¯ÇÑ °æ¿ì
                    else if (count == 1){
                        var secondInx = fullChar.indexOf('-');
                        firstStr = fullChar.substring(0,secondInx);
                        if (null != firstStr && firstStr.length == 3) {
                            var tmpStr = fullChar.substring(secondInx + 1, fullChar.length);
                            if (tmpStr.length == 8) {
                                secodeStr = tmpStr.substring(0,4);
                                thirdStr = tmpStr.substring(4,8);
                            } else if(tmpStr.length == 7) {
                                secodeStr = tmpStr.substring(0,3);
                                thirdStr = tmpStr.substring(3,7);
                            }
                        }
                        targetObj1.value = firstStr;
                        targetObj2.value = secodeStr;
                        targetObj3.value = thirdStr;
                    }
                    // 01012341234 ==> ÀÌ·¯ÇÑ °æ¿ì
                    else {
                        firstStr = fullChar.substring(0,3);

                        var tmpStr = fullChar.substring(3, fullChar.length);
                        if (tmpStr.length == 8) {
                            secodeStr = tmpStr.substring(0,4);
                            thirdStr = tmpStr.substring(4,8);
                        } else if(tmpStr.length == 7) {
                            secodeStr = tmpStr.substring(0,3);
                            thirdStr = tmpStr.substring(3,7);
                        }

                        targetObj1.value = firstStr;
                        targetObj2.value = secodeStr;
                        targetObj3.value = thirdStr;
                    }
                }
            },
			filterEngData : function(e,obj,length) {
				var evt = e || window.event;
		        var kCode = evt.which || evt.keyCode;
				hana.JHanaUtils.input.setMaxLength(obj,length);
				
		        /* 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;
		        }
		
		        var keyCode = parseInt(kCode);
				var sKey = String.fromCharCode(kCode);
		
				// SHIFT ÀÌ¸é¼­ ¿µ¹®ÀÌ ¾Æ´Ï¸é return
				var reTemp = new RegExp('[a-zA-Z]');
				if ((evt.shiftKey && !(reTemp.test(sKey))) ) {
					Event.stop(evt);
					return;
				}
                //else if (('' + keyCode != '32')) { // ½ºÆäÀÌ½º(°ø¹é)Àº Çã¿ë
					if (!reTemp.test(sKey)) {
		                Event.stop(evt);
		            }
			    //}				
		        				
			},
			
			filterAcctNumData : function(e,obj,length) {
				var evt = e || window.event;
		        var kCode = evt.which || evt.keyCode;
	            if(length && parseInt(length,10) > 3){
	                length = parseInt(length,10);
	                length = length + parseInt((length-1) / 3,10);
	            }
				hana.JHanaUtils.input.setMaxLength(obj,length);
                /* 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;
		        }
		
				var keyCode = parseInt(kCode);
				// SHIFT ÀÌ¸é ¸®ÅÏ
				if (evt.shiftKey) {
					Event.stop(evt);
					return;
				}
		
		        /*  48 ~ 57 (»ó´Ü ¼ýÀÚ Å°ÄÚµå), 96 ~ 105 (¿ìÃø ¼ýÀÚ Å°ÄÚµå) ¹üÀ§°¡ ¾Æ´Ï¸é event false  */
		        if ( !( keyCode >= 48 && keyCode <= 57 ) && !(keyCode >= 96 && keyCode <= 105)) {
		            Event.stop(evt);
		        }				
			},			
            filterNumberData : function(e,obj,length) {
		        var evt = e || window.event;
		        var kCode = evt.which || evt.keyCode;
                hana.JHanaUtils.input.setMaxLength(obj,length);		
		        /* 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;
		        }
		
				var keyCode = parseInt(kCode);
				// SHIFT ÀÌ¸é ¸®ÅÏ
				if (evt.shiftKey) {
					Event.stop(evt);
					return;
				}
		
		        /*  48 ~ 57 (»ó´Ü ¼ýÀÚ Å°ÄÚµå), 96 ~ 105 (¿ìÃø ¼ýÀÚ Å°ÄÚµå) ¹üÀ§°¡ ¾Æ´Ï¸é event false  */
		        if ( !( keyCode >= 48 && keyCode <= 57 ) && !(keyCode >= 96 && keyCode <= 105)) {
		            Event.stop(evt);
		        }
			},			
			filterEngNumData : function(e,obj,length) {
		        var evt = e || window.event;
		        var kCode = evt.which || evt.keyCode;
		        hana.JHanaUtils.input.setMaxLength(obj,length);
				
		        /* 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_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;
		        }
				var keyCode = parseInt(kCode);
				// SHIFT ÀÌ¸é ¸®ÅÏ

				// CTRL ÀÌ¸é ¸®ÅÏ 
				if (evt.ctrlKey){
					Event.stop(evt);
					return;
				}
		 		var sKey = String.fromCharCode(kCode);
				
				var reTemp1 = new RegExp('[A-Z]');
				// ½¬ÇÁÆ® + ¿µ¹®ÀÌ ¾Æ´Ï¸é ¸®ÅÏ 
				if (evt.shiftKey && !reTemp1.test(sKey)) {
					Event.stop(evt);
					return;
				}
				
				//¿ìÃø ¼ýÀÚÆÇÀÇ '0' ÀÇ Å°°ª Ãß°¡ÇÔ. 2009.02.11 ±è»óÁØ
				var filter = '[`0-9a-zA-Z¨ú]';
		        var re = new RegExp(filter);
		        if (!re.test(sKey)) {
		            Event.stop(evt);
		        }				
			},
		    /**
		     * maxlength ÁöÁ¤
		     * focus ÀÌµ¿??
		     * @param obj
		     * @param length
		     */
		    setMaxLength : function (obj,length){
		        if( length ){
		            obj.maxLength = length;
		        }
		    },	
			
		    /**
			 * ´ÙÀ½ input tag°¡ ÀÖ´Â °÷À¸·Î focus¸¦ ÀÌµ¿½ÃÅ²´Ù.
			 * @param {Object} obj
			 */
			nextFocus : function (obj,length) {
				if (obj && obj.value != undefined && obj.value != ''){
					if (obj.maxLength == obj.value.length) {
		
						var frm = obj.form;
		
						if (frm) {
							var matchIdx = 0;
		                    for (var i=0 ; i < frm.elements.length ; i++) {
								var el = frm.elements[i];
		                        if( obj == el ){
		                            matchIdx = i;
		                            break;
		                        }
							}
		
		                    var nextEl = frm.elements[matchIdx+1];
		                    //ÇöÀç obj ´ÙÀ½¿¡ ÀÖ´Â input text,password¸¦ Ã£¾Æ¾ß ÇÔ
		                    if (nextEl!=undefined && nextEl.tagName == 'INPUT' && (nextEl.type == 'text' || nextEl.type =='password')) {
		                        if (!nextEl.disabled) {
		                        
		                            try
		                            {
		                                nextEl.focus();
		                                //el.select();
		                            }catch(ex){
		                                // control ¿¡ focus¸¦ °¡Á®°¡Áö ¸øÇÏ´Â °æ¿ì ¾Æ¹«Ã³¸®µµ ÇÏÁö ¾Ê´Â´Ù. (20090302 ±â¾÷ °ø°ú±Ý ½Åµ¿Çö ¼öÁ¤)
		                            }
		                        }
		                    }
		                }		
					}
				}
			}				
        },

        checkbox : {
           /**
             * ÁöÁ¤ÇÑ ±×·ìÀÇ Ã¼Å©¹Ú½ºÁß ÇÑ°³ ÀÌ»óÀÌ Checked µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù.
             * @param {Object} chkListName Ã¼Å©¹Ú½º Name(ID¾Æ´Ô)
             * @return {Boolean} Ã¼Å©¹Ú½º ¼±ÅÃÀ¯¹«
             */
            isGroupChecked: function(chkListName){
                var chkList = document.getElementsByName(chkListName);
                var isChecked =  false;
                for (var idx = 0; idx < chkList.length; idx++){
                    if (chkList[idx].checked){
                        isChecked = true;
                    }
                }

                return isChecked;
            },

            /**
             * ÁöÁ¤ÇÑ ±×·ìÀÇ Ã¼Å©¹Ú½ºÁß ÇÑ°³¸¸ Checked µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù.
             * @param {Object} chkListName Ã¼Å©¹Ú½º Name(ID¾Æ´Ô)
             * @return {String} ¼±ÅÃµÈ ³»¿ëÀÇ value °ª
             * @author Geumjo Park
             */
            setSingleChecked: function(chkListName){
                var chkList = document.getElementsByName(chkListName);
                var checkCnt = 0;
                var checkValue = "";
                for (var idx = 0; idx < chkList.length; idx++){
                    if (chkList[idx].checked){
                        checkCnt++;
                        checkValue = chkList[idx].value;
                    }
                }
                if (checkCnt == 0) {
                    // ¸Þ¼¼Áö Ã¢ È£Ãâ
                    pbk.extJS.messageBox.infoMsgBox({
                        isConfirm: false,
                        title: 'Ã¼Å©¹Ú½º ¼±ÅÃ',
                        message: 'Ã¼Å©¹Ú½º ÇÑ°ÇÀ» ¼±ÅÃÇØÁÖ¼¼¿ä.',
                        callback: function(e){
                            if (e == true) { // È®ÀÎ¹öÆ° Å¬¸¯½Ã
                            }
                            else { // Ã¢ ´Ý±â ¶Ç´Â Ãë¼Ò ¹öÆ° Å¬¸¯½Ã
                            }
                        }
                    });
                    return null;
                }
                if(checkCnt > 1){ // 2°ÇÀÌ»ó
                    // ¸Þ¼¼Áö Ã¢ È£Ãâ
                    pbk.extJS.messageBox.infoMsgBox({
                        isConfirm: false,
                        title: 'Ã¼Å©¹Ú½º ¼±ÅÃ',
                        message: 'Ã¼Å©¹Ú½º ¼±ÅÃÀº ÇÑ°Ç¸¸ °¡´ÉÇÕ´Ï´Ù.',
                        callback: function(e){
                            if (e == true){    // È®ÀÎ¹öÆ° Å¬¸¯½Ã

                            } else {    // Ã¢ ´Ý±â ¶Ç´Â Ãë¼Ò ¹öÆ° Å¬¸¯½Ã

                            }
                        }
                    });
                    return null;
                }
                return checkValue;
            },

            /**
             * Ã¼Å©¹Ú½º ÀÏ°ý Ã¼Å© Åä±Û±â´É
             * @param {Boolean} isCheck Ã¼Å©À¯¹«
             * @param {String} chkListName Ã¼Å©¹Ú½º Name (ID¾Æ´Ô)
             */
            setChkboxChecked: function(isCheck, chkListName){
                var chkAccountList = document.getElementsByName(chkListName);

                for (var idx = 0; idx < chkAccountList.length; idx++) {
                    chkAccountList[idx].checked = isCheck;
                }
            },


            /**
             * Ã¼Å©¹Ú½º ÀÏ°ý Ã¼Å© Åä±Û±â´É
             * @param {String} checkbox °¡ À§Ä¡ÇØ ÀÖ´Â formObjId
             * @param {String} toggle ±â´ÉÀ» ¼öÇà ÇÏ´Â checkbox id (NAME ¾Æ´Ô)
             * @param {String} chkListName Ã¼Å©¹Ú½º Name (ID¾Æ´Ô)
             */
            toggleChkboxCheck: function(formObjId, checkId, chkListName){
                var isChecked = document.getElementById(checkId).checked;
				// NiceForm ÀÇ ÀÌ¹ÌÁö Ä¡È¯ ±â´É »èÁ¦·Î ÀÎÇØ comment (¿À·û°æ comment)
//              var formObj = $(formObjId);
                // niceform ÀÎ °æ¿ì
//                if( formObj.className == "niceform"){
//                    for (var idx = 0; idx < hana.JHanaNiceForms.checkboxes.length; idx++) {
//
//                        if(hana.JHanaNiceForms.checkboxes[idx].name == chkListName) {
//                            //var tester = false;
//                            if (isChecked) {
//                                hana.JHanaNiceForms.checkboxes[idx].checked = isChecked;
////                                hana.JHanaNiceForms.checkboxLabels[idx].className = "chosen";     // NiceForm checkbox Á¦¿Ü¶ó°í ½á³õ°í
//                            }
//                            else {
//                                hana.JHanaNiceForms.checkboxes[idx].checked = false;
////                               hana.JHanaNiceForms.checkboxLabels[idx].className = "";
//
//                            }
////                            hana.JHanaNiceForms.checkboxes[idx].checked = isChecked;
////                            hana.JHanaNiceForms.checkCheckboxes(idx, isChecked);
//                        }
//                    }
//                }else{
                    hana.JHanaUtils.checkbox.setChkboxChecked(isChecked,chkListName);
//                }
            },
            /**
             * ¼±ÅÃµÈ checkboxÀÇ °ªÀ» ¹è¿­·Î ¸®ÅÏÇÑ´Ù.
             * ¸¸¾à value °¡ ¾ø°Å¸¸ ¼±ÅÃ µÇÁö ¾Ê¾ÒÀ¸¸é ºó Array ¸¦ return ÇÕ´Ï´Ù.
             * @param checkBoxObj {Object} checkbox
             */
            getCheckedValue : function (checkBoxObj) {
                var returnArray = new Array();
                if(!checkBoxObj){
                    return new Array();
                }
                var checkboxLength = checkBoxObj.length;
                if (checkboxLength == undefined) {
                    if (checkBoxObj.checked) {
                        returnArray.push(checkBoxObj.value);
                    }
                }
                else {
                    for (var i = 0; i < checkboxLength; i++) {
                        if (checkBoxObj[i].checked) {
                            returnArray.push(checkBoxObj[i].value);
                        }
                    }
                }
                return returnArray;
            }
        },

        selectbox : {
            /**
             * ÀÌ¸ÞÀÏÁÖ¼Ò µµ¸ÞÀÎ Á÷Á¢ÀÔ·Â ¼±ÅÃ½Ã ÀÔ·ÂÇÊµå È°¼ºÈ­
             * @param {Object} selectObj selectBox Object
             * @param {String} fieldId InputField ID
             */
            setEmailToggle: function(selectObj, fieldId){
                // Á÷Á¢ÀÔ·Â Value°ª
                var toggleMsg = 'Á÷Á¢ÀÔ·Â';
                var fieldObj = document.getElementById(fieldId);
				if(fieldObj != null && fieldObj != undefined){
               		fieldObj.value = '';
               	}
                if (selectObj.value == toggleMsg){
                    fieldObj.style.display = 'inline';
                    fieldObj.focus();
                } else {
                    fieldObj.style.display = 'none';
                }
            },

            /**
             * selectbox¿¡ ¼±ÅÃµÈ optionµéÀ» array·Î return ÇÕ´Ï´Ù.
             * ¸¸¾à itemÀÌ nullÀÌ¸é ºó array¸¦ return ÇÕ´Ï´Ù.
             *
             * @param {HTMLElment} °¡Á®¿Ã selectbox element
             */
            selectedOptions : function (item) {
                if (item == null) return new Array();
                var result = new Array();

                for (var i = 0; i < item.length; i++) {
                    if (item[i].selected) {
                        result.push(new Option(item[i].text,item[i].value));
                    }
                }
                return result;
            },

            /**
             * selectbox¿¡ ¼±ÅÃ µÈ optionÇ×¸ñÀ» Á¦°Å ÇÕ´Ï´Ù.
             *
             * @param {HTMLElment} Áö¿ï selectbox element
             */
            removeSelectedOptions : function (item) {
                if (item == null) return;

                for (var i = 0; i < item.length; i++) {
                    if (item[i].selected) {
                        item[i] = null;
                        --i;
                    }
                }
            },

            /*
             * SELECTÀÇ OPTIOINSÀ» Á¦°ÅÇÑ´Ù. ´Ü, INDEX 0ÀÎ Ç×¸ñÀº ³²°ÜµÐ´Ù.
             *
             * @param {selectElement} optioinsÀ» Á¦°ÅÇÒ selectbox
             */
            clearOptions: function(selectElement) {
                if (selectElement.options.length > 1)
                    for (idx = selectElement.length - 1; idx > 0; idx--)
                        selectElement.options[idx] = null;
            },

            /*
             * SELECT¿¡ OPTIONÀ» Ãß°¡ÇÑ´Ù.
             *
             * @param {selectElement} optionsÀ» Ã¤¿ï selectbox
             * @param {collection} option Collection
             */
            addOptions: function(selectElement, collection) {
                for (idx = 0; idx < collection.length; idx++) {
                    var optionElement = document.createElement("option");
                    var val = collection[idx];
                    optionElement.text = val;
                    optionElement.value = val;
                    selectElement.options.add(optionElement);
                }
            },

            /*
             * index°¡ 0ÀÎ "¼±ÅÃ" optionÀ» "Á¶È¸Áß..."À¸·Î º¯°æÇÑ´Ù.
             */
            searchOnOptions: function(selectElement) {
                selectElement.disabled = true;
                selectElement.options[0].text = "Á¶È¸Áß...";
            },

            /*
             * index°¡ 0ÀÎ "¼±ÅÃ" optionÀ» "¼±ÅÃ"À¸·Î º¯°æÇÑ´Ù.
             */
            searchOffOptions: function(selectElement) {
                selectElement.options[0].text = "¼±ÅÃ";
                selectElement.disabled = false;
            },

            /**
             * ·¹ÀÌ¾î ¹Ø¿¡ ÄÁÆ®·ÑÀ» ¼û±ä´Ù.
             * @param {Object} layer_id
             */
            selectBoxHidden : function(layer_id)  {
                var ly = $(layer_id);

                // ·¹ÀÌ¾î ÁÂÇ¥
                var ly_left  = ly.offsetLeft;
                var ly_top    = ly.offsetTop;
                var ly_right  = ly.offsetLeft + ly.offsetWidth;
                var ly_bottom = ly.offsetTop + ly.offsetHeight;

                // ¼¿·ºÆ®¹Ú½ºÀÇ ÁÂÇ¥
                var el;

                for (i=0; i<document.forms.length; i++) {
                    for (k=0; k<document.forms[i].length; k++) {
                        el = document.forms[i].elements[k];

                        if (el.type == "select-one") {
                            var el_left = el_top = 0;
                            var obj = el;
                            if (obj.offsetParent) {
                                while (obj.offsetParent) {
                                    el_left += obj.offsetLeft;
                                    el_top  += obj.offsetTop;
                                    obj = obj.offsetParent;
                                }
                            }
                            el_left  += el.clientLeft;
                            el_top    += el.clientTop;
                            el_right  = el_left + el.clientWidth;
                            el_bottom = el_top + el.clientHeight;

                            // ÁÂÇ¥¸¦ µûÁ® ·¹ÀÌ¾î°¡ ¼¿·ºÆ® ¹Ú½º¸¦ Ä§¹üÇßÀ¸¸é ¼¿·ºÆ® ¹Ú½º¸¦ hidden ½ÃÅ´
                            if ( (el_left >= ly_left && el_top >= ly_top && el_left <= ly_right && el_top <= ly_bottom) ||
                                (el_right >= ly_left && el_right <= ly_right && el_top >= ly_top && el_top <= ly_bottom) ||
                                (el_left >= ly_left && el_bottom >= ly_top && el_right <= ly_right && el_bottom <= ly_bottom) ||
                                (el_left >= ly_left && el_left <= ly_right && el_bottom >= ly_top && el_bottom <= ly_bottom) )
                                el.style.visibility = 'hidden';
                        }
                    }
                }
            },

            /**
             * °¨Ãß¾îÁø ¼¿·ºÆ® ¹Ú½º¸¦ ¸ðµÎ º¸ÀÌ°Ô ÇÔ
             */
            selectBoxVisible : function () {
                for (i=0; i<document.forms.length; i++) {
                    for (k=0; k<document.forms[i].length; k++) {
                        el = document.forms[i].elements[k];
                        if (el.type == "select-one" && el.style.visibility == 'hidden')
                            el.style.visibility = 'visible';
                    }
                }
            }

        },

        form : {
            /**
             * ÀÌ¸ÞÀÏ ÁÖ¼Ò Á¶ÇÕ input ¸¸µé±â
             * @param {Object} formObj Hidden Field Ãß°¡ÇÒ Form
             * @param {String} fieldId »ý¼ºµÉ Hidden Field ID
             * @param {String} idId email id ÀÔ·Â ÇÊµå id
             * @param {String} domainÀ» Á÷Á¢ ÀÔ·Â ÇÏ´Â ÇÊµå ID
             * @param {String} domainÀ» ¼±ÅÃ ÇÏ´Â selectbox id
             */
            createEmailAddrField: function(formObj, emailId, idId,domainFieldId,domainSelectId) {
                var id = idId || 'email_01';
                var field = domainFieldId || 'email_02';
                var select = domainSelectId || 'email_03';

                var idObj = document.getElementById(id);
                var domainFieldObj = document.getElementById(field);
                var domainSelectObj = document.getElementById(select);
                var email = '';

                if (domainSelectObj.selectedIndex != 0) {
                    if(domainSelectObj.options.value  == '¼±ÅÃ' || domainSelectObj.options.value  == 'Á÷Á¢ÀÔ·Â'){
                        email = idObj.value + '@' + domainFieldObj.value;
                    }else{
                        email = idObj.value + '@' + domainSelectObj.value;
                    }
                }
                hana.JHanaUtils.form.createHiddenField(formObj, emailId, email);
            },

            /**
             * ÀüÈ­¹øÈ£ Á¶ÇÕ Input Obj »ý¼º
             * @param {Object} formObj Hidden Field Ãß°¡ÇÒ Form
             * @param {String} fieldId »ý¼ºµÉ Hidden Field ID(Á¶ÇÕµÈ ÀüÈ­¹øÈ£¿ë Field)
             * @param {String} phoneNo1 Áö¿ª¹øÈ£ Field ID(ÈÞ´ëÆùÀÎ °æ¿ì »ç¾÷ÀÚ¹øÈ£)
             * @param {String} phoneNo2 ±¹¹ø Field ID
             * @param {String} phoneNo3 ÀüÈ­¹øÈ£ Field ID
             */
            createTelNoField: function(formObj, fieldId, phoneNo1, phoneNo2, phoneNo3){
                var phoneNoObj1 = $(phoneNo1);
                var phoneNoObj2 = $(phoneNo2);
                var phoneNoObj3 = $(phoneNo3);
                var phoneNumber = '';

                if (phoneNoObj1 && phoneNoObj2 && phoneNoObj3) {
                    var phone1Value = phoneNoObj1.value.trim();
                    var phone2Value = phoneNoObj2.value.trim();
                    var phone3Value = phoneNoObj3.value.trim();

                    if (phone1Value != '' && phone2Value != '' && phone3Value != '') {
                        phoneNumber = phone1Value + phone2Value + phone3Value;
                    }
                }

                form.createHiddenField(formObj, fieldId, phoneNumber);
            },

            /**
             * È÷µçÆûÀ» »ý¼ºÇÏ¿© ÁöÁ¤ÇÑ Form¿¡ Ãß°¡ÇÕ´Ï´Ù.
             * ¸¸¾à fieldId ¿¡ ÇØ´çÇÏ´Â object °¡ ÀÖÀ»°æ¿ì Á¸ÀçÇÏ´Â objectÀÇ value
             * value °¡ µé¾î°©´Ï´Ù.
             * @param {Object} formObj Æû ¿ÀºêÁ§Æ®
             * @param {Object} fieldId ÇÊµå ¾ÆÀÌµð
             * @param {Object} value °ª
             * @param {boolean} form ¿¡ °°Àº ÀÌ¸§ÀÌ Á¸ÀçÇÒ °æ¿ì Áßº¹ »ý¼º Çã¿ë¿©ºÎ true : Çã¿ë, false : Çã¿ë¾ÈÇÔ ( default : false )
             * @param {String} ÀüÀÚ¼­¸í °ËÁõ¿¡ ÇÊ¿äÇÑ signid °ª
             */
            createHiddenField: function(formObj, fieldId, value, isDuplicate , signid){
                var checkDuplicate = false;
                if( isDuplicate ){
                    checkDuplicate = isDuplicate;
                }

                if( formObj[fieldId] && !checkDuplicate ){
                    formObj[fieldId].value = value;
                }else{
                    var fieldObj = document.createElement('input');

                    fieldObj.type = 'hidden';
                    fieldObj.id = fieldId;
                    fieldObj.name = fieldId;
                    fieldObj.value = value;
                    
                    if (signid != undefined && signid != null){
                    	fieldObj.signid = signid;
                    }

                    formObj.appendChild(fieldObj);
                }
            },

            /**
            * ÁöÁ¤ÇÑ Æû ³»¿¡ È÷µçÇÊµå¸¦ Á¦°ÅÇÕ´Ï´Ù.
            * @param {Object} formObj Æû ¿ÀºêÁ§Æ®
            * @param {String} fieldId »èÁ¦ÇÒ È÷µçÇÊµåÀÇ ID
            */
            removeHiddenField: function(formObj, fieldId){
                /*if (formObj.childNodes) {
                    for (var idx = 0; idx < formObj.childNodes.length; idx++) {
                        if (formObj.childNodes[idx].id == fieldId) {
                            formObj.removeChild(formObj.childNodes[idx]);
                        }
                    }
                }*/
                
                // 2009³â 04¿ù 02ÀÏ ÀÌÁ¾¹Î
                var elements = Form.getElements(formObj);
                elements.each(function(element) {
                    if(element.id == fieldId){
                        element.remove();
                    }
                });                
                
                
            },

            /**
             * FormÀ» »ý¼ºÇÏ¿© ¸®ÅÏÇÕ´Ï´Ù.
             * @param {Array} data È÷µçÇÊµå¿¡ ÀúÀåÇÒ µ¥ÀÌÅÍ [{key: value}]
             * @return {Object} È÷µçÇÊµå Á¤º¸°¡ µé¾îÀÖ´Â form Object
             */
            createForm: function(data){
                var virtualForm = document.createElement('form');

                if (data != null && data != undefined) {
                    for (var i = 0; i < data.length; i++) {
                        // ±âÁ¸ ·ÎÁ÷´ë·Î Áßº¹ Çã¿ëÇÔ.
                        hana.JHanaUtils.form.createHiddenField(virtualForm, data[i].id, data[i].value, true);
                    }
                }

                return virtualForm;
            },

            /**
             * grid¿¡¼­ ¹ÝÈ¯ÇÑ jsonStrÀ» ÀÌ¿ëÇØ¼­ FormÀ» »ý¼ºÇÏ¿© ¸®ÅÏÇÕ´Ï´Ù.
             *
             * @param {jsonStr} grid¿¡¼­ ¹ÝÈ¯ÇÑ jsonStr "[{"trscDt":"45","trscBrNo":"245","trscBnkCd":"235"}]"
             * @return {Object} È÷µçÇÊµå Á¤º¸°¡ µé¾îÀÖ´Â form Object
             */
            createFormByJsonStr: function(jsonStr, formObj){
//                var virtualForm = formObj || document.createElement('form');
                var virtualForm = document.createElement('form');

                if(formObj){
                    var formHash = Form.serialize(formObj, true);

                    for(var formFieldName in formHash){
                        hana.JHanaUtils.form.createHiddenField(virtualForm, formFieldName, formHash[formFieldName], true);
                    }
                }

                var json = jsonStr.evalJSON();

                for (var i = 0, len = json.length; i < len; i++) {
                    var hash = new Hash(json[i]);
                    var keys = hash.keys();
                    for(var j = 0; j < keys.length; j++){
                        var key = keys[j];
						//alert(key+"---"+hash[key]);
                        hana.JHanaUtils.form.createHiddenField(virtualForm, key, hash[key], true);
                    }
                }

                return virtualForm;
            },

            /**
             * FormÀ» »ý¼ºÇÏ¿© ÁöÁ¤ÇÑ URL·Î Submit ÇÕ´Ï´Ù.
             * @param {Config} data È÷µçÇÊµå¿¡ ÀúÀåÇÒ µ¥ÀÌÅÍ [{key: value}]
             * @param {String} url Submit ÇÒ URL
             * @param {String} contentUrl index ÆäÀÌÁö·Î ÀÌµ¿ÇÒ °æ¿ì content ¿µ¿ª¿¡ Ç¥½ÃÇÒ url
             */
            createFormSubmit: function(data, url, contentUrl,formObj){
                var virtualForm = formObj || document.createElement('form');

                virtualForm.method = 'post';
				virtualForm.acceptCharset = 'UTF-8';
                virtualForm.action = pbk.APPLICATION_CONTEXT_ROOT + url;

                if( data != null){
                    for (var i = 0; i < data.length; i++){
                        // ±âÁ¸ ·ÎÁ÷´ë·Î Áßº¹ Çã¿ëÇÔ.
                        hana.JHanaUtils.form.createHiddenField(virtualForm, data[i].id, data[i].value, true);
                    }
                }

                if( contentUrl ){
                    hana.JHanaUtils.form.createHiddenField(virtualForm, "contentUrl", contentUrl);
                }

                document.body.appendChild(virtualForm);

                virtualForm.submit();
            },


            /**
             * ¿¢¼¿ ´Ù¿î·Îµå¸¦ À§ÇÑ FormÀ» »ý¼ºÇÏ¿© ÁöÁ¤ÇÑ URL·Î Submit ÇÕ´Ï´Ù.
             * @param {Config} data È÷µçÇÊµå¿¡ ÀúÀåÇÒ µ¥ÀÌÅÍ [{key: value}]
             * @param {String} url Submit ÇÒ URL
             * @param {String} contentUrl index ÆäÀÌÁö·Î ÀÌµ¿ÇÒ °æ¿ì content ¿µ¿ª¿¡ Ç¥½ÃÇÒ url
             */
            createFormSubmitForExcelDown: function(data, url, contentUrl){

                this.createFormSubmit(data, url, contentUrl);

                // ÆäÀÌÁö ÀÌµ¿ ½Ã ·Îµù¹Ù close
                pbk.extJS.loadingLayer.close();
            },

            /**
             * ¿¢¼¿ ´Ù¿î·Îµå¸¦ À§ÇÑ form submit ÇÔ¼ö ÀÔ´Ï´Ù.
             * @param {HTMLElement} form Element
             */
            formSubmitForExcelDown: function(formObj){

                formObj.submit();

                // ÆäÀÌÁö ÀÌµ¿ ½Ã ·Îµù¹Ù close
                pbk.extJS.loadingLayer.close();
            },


            /**
             * form ¼Ó¼ºÀ» json String À¸·Î º¯È¯ÇØ¼­ ¹ÝÈ¯ÇÕ´Ï´Ù.
             * @param {HTMLElement} form Element
             */
            toJsonStr : function(formObj){
                var HashForm = Form.serialize(formObj, true);

                var array = new Array();
                array.push(HashForm);

                return array.toJSON();
            }
        },

        date : {
            /**
             * µÎ ³¯Â¥ »çÀÌÀÇ ÀÏ¼ö¸¦ °è»êÇÏ¿© ¹ÝÈ¯ÇÑ´Ù.
             * @param date1 ¹®ÀÚ¿­ µ¥ÀÌÅÍ·Î '20041012' Çü½Ä
             * @param date2 ¹®ÀÚ¿­ µ¥ÀÌÅÍ·Î '20041012' Çü½Ä
             */
            daysBetween : function(date1, date2) {
                date1 = new Date(date1.substring(0, 4), date1.substring(4, 6)-1, date1.substring(6,8));
                date2 = new Date(date2.substring(0, 4), date2.substring(4, 6)-1, date2.substring(6,8)).add();
                var DSTAdjust = 0;
                var oneMinute = 1000 * 60;
                var oneDay = oneMinute * 60 * 24;
                date1.setHours(0);
                date1.setMinutes(0);
                date1.setSeconds(0);
                date2.setHours(0);
                date2.setMinutes(0);
                date2.setSeconds(0);
                DSTAdjust = (date2.getTimezoneOffset( ) -
                                 date1.getTimezoneOffset( )) * oneMinute;
                var diff = date2.getTime( ) - date1.getTime() - DSTAdjust;
                return Math.ceil(diff/oneDay);
            },

            /**
             * date ¿¡¼­ ÀÏÁ¤ ³¯Â¥¸¦ addÇÑ ³¯Â¥¸¦ ±¸ÇÕ´Ï´Ù.
             * @param {String} date (yyyyMMdd Çü½ÄÀÇ String ¹®ÀÚ¿­)
             * @param {int} add ÇÒ ³¯ ¼ö
             */
            getAddDate : function(date, addDay){
                date = date.replace(/[^\d]/g,"");
                var dt = Date.parseDate(date, "Ymd");
                dt = dt.add(Date.DAY, addDay);
                return dt.format('Ymd');
            },

            /**
             * ÇöÀç½Ã°¢À» timeÇü½ÄÀ¸·Î ¹ÝÈ¯
             */
            getCurrentTime : function(){
                return this.toTimeString(new Date());
            },

            /**
            * ÀÚ¹Ù½ºÅ©¸³Æ® Date °´Ã¼¸¦ Time ½ºÆ®¸µÀ¸·Î º¯È¯
            * parameter date: JavaScript Date Object
            */
            toTimeString : function(date) { //formatTime(date)
               var year  = date.getFullYear();
               var month = date.getMonth() + 1; // 1¿ù=0,12¿ù=11ÀÌ¹Ç·Î 1 ´õÇÔ
               var day   = date.getDate();
               var hour  = date.getHours();
               var min   = date.getMinutes();

               if (("" + month).length == 1) { month = "0" + month; }
               if (("" + day).length   == 1) { day   = "0" + day;   }
               if (("" + hour).length  == 1) { hour  = "0" + hour;  }
               if (("" + min).length   == 1) { min   = "0" + min;   }

               return ("" + year + month + day + hour + min)
            },

            /**
            * ÇöÀç Ò´À» YYYYÇü½ÄÀ¸·Î ¸®ÅÏ
            */
            getYear : function(){
               var todayNow = new Date();
               return todayNow.getFullYear();
            },

            /**
            * ÇöÀç êÅÀ» MMÇü½ÄÀ¸·Î ¸®ÅÏ
            */
            getMonth : function() {
               var todayNow = new Date();

               var month = todayNow.getMonth() + 1; // 1¿ù=0,12¿ù=11ÀÌ¹Ç·Î 1 ´õÇÔ
               if (("" + month).length == 1) { month = "0" + month; }

               return month;
            },

            /**
            * ÇöÀç ìíÀ» DDÇü½ÄÀ¸·Î ¸®ÅÏ

            */
            getDay : function() {
               var todayNow = new Date();

               var day = todayNow.getDate();
               if (("" + day).length == 1) { day = "0" + day; }

               return day;
            },
			
			/**
			 * template_master °¡ ½ÇÇàµÉ¶§ ·ÎÄÃ°ú ¼­¹ö»çÀÌÀÇ ½Ã°£À» °è»êÇÑ´Ù.
			 */
			initServerTime : function(){
				//¿À´Ã ³¯Â¥ Àü¿ªº¯¼ö°¡ ¼±¾ðµÈ °æ¿ì
				if(SYSTEM_TODAY){
					var sysDt = new Date(SYSTEM_TODAY);
					var localdt = new Date();
					
					SYSTEM_LOCAL_SECONDS = sysDt.valueOf() - localdt.valueOf();
				} else {
					SYSTEM_LOCAL_SECONDS = 0;
				}
			},

            /**
             * YYYYMMDD ·Î ¿À´Ã ³¯Â¥ ¹ÝÈ¯
             */
            getToday : function(format){
				//format ¿¹Á¦ : 'Ymd' -> 20080301
				//             'Y-m-d H:i:s' -> 2008-03-01 14:50:20
				var fmt = format || "Ymd";
                var localDt = new Date();
				
				// ¼­¹ö¿ÍÀÇ ½Ã°£Â÷¸¦ °¡Á®¿Í¼­ °è»êÇØ¼­ ³»·ÁÁØ´Ù.
				var calculatedDt = new Date(localDt.valueOf() + SYSTEM_LOCAL_SECONDS);
				
				var today = calculatedDt.format(fmt);
				
				return today;
            },
			
			/**
             * ÇöÀç ½Ã°£ °´Ã¼¸¦ °¡Á®¿Â´Ù.
             */
            getDateObject : function(){
                var localDt = new Date();
				
				// ¼­¹ö¿ÍÀÇ ½Ã°£Â÷¸¦ °¡Á®¿Í¼­ °è»êÇØ¼­ ³»·ÁÁØ´Ù.
				var calculatedDt = new Date(localDt.valueOf() + SYSTEM_LOCAL_SECONDS);
				
				return calculatedDt;
            },
			

            /**
             * ³¯Â¥¸¦ ±¸ÇÑ´Ù.
             * @param days
             */
            getDays : function( days ){
                var before = this.getToday();
                var date = new Date(before.substring(0,4),Number(before.substring(4,6))-1,Number(before.substring(6,8))+Number(days));
                var year=String(date.getFullYear());
                var month=String(date.getMonth()+1);
                var day=String(date.getDate());

                if(month.length==1) month = "0"+ month;
                if(day.length==1) day= "0" + day;

                return ''+year+''+month+''+day;
            },

			/**
             * ¿ùÀ» ±¸ÇÑ´Ù.
             * @param months
             */
            getMonths : function( months ){
                var before = this.getToday();
                var date = new Date(before.substring(0,4),Number(before.substring(4,6))-1+Number(months),Number(before.substring(6,8)));
                var year=String(date.getFullYear());
                var month=String(date.getMonth()+1);
                var day=String(date.getDate());

                if(month.length==1) month = "0"+ month;
                if(day.length==1) day= "0" + day;

                return ''+year+''+month+''+day;
            },

            /**
             * Æ¯Á¤³¯Â¥ÀÇ ¿äÀÏÀ» ±¸ÇÑ´Ù
             * @param date1
             */
            getDayOfWeek: function(date1){
                var d = new Date(date1.substring(0,4), date1.substring(4,6)-1, date1.substring(6,8));
                var ww = d.getDay();
                return ww;
            },

            /**
             * Æ¯Á¤³¯Â¥ ´õÇÏ±â
             *
             * »ç¿ë¹ý : date.addDate('20041012', 'D', 3 )
             *
             * @param date1 ¹®ÀÚ¿­ µ¥ÀÌÅÍ·Î '20041012' Çü½Ä
             * @param type ¹®ÀÚ¿­ µ¥ÀÌÅÍ·Î 'Y','M','D' Çü½Ä
             * @param cnt ¹®ÀÚ¿­ µ¥ÀÌÅÍ·Î '3' Çü½Ä
             */
            addDate : function(date1, type, cnt) {
				var dt = Date.parseDate(date1, "Ymd");
	            var addType = Date.DAY;
				if( type == 'Y' ){
					addType = Date.YEAR;	
				}
				if( type == 'M' ){
					addType = Date.MONTH;
				}
				if( type == 'D' ){
					addType = Date.DAY;
				}
				
				dt = dt.add(addType, new Number(cnt));
	            return dt.format('Ymd');
            },

            /**
             * date format ÀÔ´Ï´Ù....
             */
            formatDate : function(str){
                var formatedDate;
                if( str ){
                    str = str.replace(/[^\d]/,"");
                    var dt;
					if (str.length == 6) {
						var yyyy = str.substring(0,4);
						var mm = str.substring(4,6);
						
						formatedDate = yyyy +'-'+ mm;
					} else if( str.length == 8 ){
                        dt = Date.parseDate(str, 'Ymd');
                        formatedDate = dt.format("Y-m-d");
                    } else if( str.length == 14 ){
                        dt = Date.parseDate(str, 'YmdHis');
                        formatedDate = dt.format("Y-m-d H:i:s");
                    } else if (str.length == 12 ) {
						dt = Date.parseDate(str, 'YmdHi');
                        formatedDate = dt.format("Y-m-d H:i");
					}
                }

                return formatedDate;
            }
        },

        message : {
            /**
             * ¾Ë¸² alert Ç¥½Ã
             * errMsgBox ¸¦ »ç¿ëÇÔ.
             * @param {String} alert ¿¡ Ç¥½ÃÇÒ title
             * @param {String} alert ¿¡ Ç¥½ÃÇÒ msg
             */
            alert : function (title, msg){
                pbk.extJS.messageBox.infoMsgBox({
                    title    : title,
                    message  : msg,
                    callback : null
                });
            },

            /**
             * ¼±ÅÃ confirm Ç¥½Ã
             * @param {String} alert ¿¡ Ç¥½ÃÇÒ title
             * @param {String} alert ¿¡ Ç¥½ÃÇÒ msg
             * @param {Function} callback ÈÄ ½ÇÇà ÇÒ ÇÔ¼ö
             */
            confirm : function (title, msg, func){
                pbk.extJS.messageBox.infoConfirmMsgBox({
                    isConfirm: true,
                    title    : title,
                    message  : msg,
                    callback : func
                });
            },

			/**
			 * ¿¡·¯ ¸Þ¼¼Áö ¹Ú½º (¿À·ù ¾ÆÀÌÄÜ)
			 * @param {String} title alert ¿¡ Ç¥½ÃÇÒ title
			 * @param {String} msg alert ¿¡ Ç¥½ÃÇÒ msg
			 * @param {Function} func callback ÈÄ ½ÇÇà ÇÒ ÇÔ¼ö
			 * @param {boolean} isConfirm
			 * @author 2008.07.02 ¿À·û°æ
			 */
			alertErr :function (title, msg, func, isConfirm) {
				var bIsConfirm = false;
				var fCallback = null;
				if (isConfirm) {
					bIsConfirm = isConfirm;
				}
				if (func) {
					fCallback = func;
				}

				if (Ext) {
					pbk.extJS.messageBox.errMsgBox({
						isConfirm: bIsConfirm,
						title: title,
						message: msg,
						callback: fCallback
					});
				} else {
					if (bIsConfirm) {
						if (confirm(msg)){
							if (fCallback){
								// fCallback.call();
								fCallback();
							}
						}
					} else {
						alert(msg);
					}
				}
			},
			
			/**
	        *   Æ¯Á¤ ³»¿ë ¸¶¿ì½º ¿À¹ö ÆË¾÷
	        */
	        popupDesc : function (linkObj, title , desc , size){
	            pbk.extJS.staticSubPop.show2(linkObj, 'descDiv',title, desc, size);
	        },
	        closeDesc : function (){
	            pbk.extJS.staticSubPop.close();
	        }
        },


        sort : {
            /**
             * sort ±â´ÉÀ» init ÇÕ´Ï´Ù.
             * sort ±â´É ¼öÇà ½Ã ¹Ýµå½Ã init ¸¦ ¼öÇà ÈÄ ½ÇÇàÇØ¾ß ÇÕ´Ï´Ù.
             * @param tblId {String} Å×ÀÌºí ID
             * @param colArr column type ¹è¿­
             */
            initSort : function(tblId, colArr) {
                sortInstance = new SortableTable(document.getElementById(tblId), colArr);
                pbk.changeImageObject = null;
            },


            /**
             * sort Çîµé·¯
             * @param type
             * @param actionObj
             */
            handleSort : function(type, actionObj,bDescending) {
                pbk.changeSortImage(actionObj);
                sortInstance.sort(type, bDescending );
            }
        },

        util : {
            /**
             * ÁÖ¹Î¹øÈ£ Ã¼Å©
             */
            juminCheck : function( juminNumber ){
                var return_check = false;

                var str = juminNumber;

                num = 0;

                num7 = 0;

                num13 = 0;

                totalnum = 0;

                chknum = 0;

                num7 = parseInt(str.substring(6,7),10) ;

                num  = parseInt(str.substring(0,1),10)   * 2 +

                        parseInt(str.substring(1,2),10)   * 3 +

                        parseInt(str.substring(2,3),10)   * 4 +

                        parseInt(str.substring(3,4),10)   * 5 +

                        parseInt(str.substring(4,5),10)   * 6 +

                        parseInt(str.substring(5,6),10)   * 7 +

                        parseInt(str.substring(6,7),10)   * 8 +

                        parseInt(str.substring(7,8),10)   * 9 +

                        parseInt(str.substring(8,9),10)   * 2 +

                        parseInt(str.substring(9,10),10)  * 3 +

                        parseInt(str.substring(10,11),10) * 4 +

                        parseInt(str.substring(11,12),10) * 5;

                num13 = parseInt(str.substring(12,13),10);
                totalnum = num % 11;

                chknum   = 11 - totalnum;

                if(chknum >= 10 ) chknum = chknum - 10;

                if((num13 == chknum) && ( num7 == 1 || num7 == 2 ||  num7 == 3 ||  num7 == 4 ||  num7 == 5 ||  num7 == 6))    {

                    return_check = true;

                } else {

                    if (num7 == 5 || num7 == 6){

                        return_check =  true;

                    }else{

                        return_check =  false;

                    }

                }

                return return_check;
            },

            /**
             * »ç¾÷ÀÚ ¹øÈ£ Ã¼Å©
             * @param vencod
             */
            isBinNo : function(vencod){
                var sum = 0;

                var getlist =new Array(10);

                var chkvalue =new Array("1","3","7","1","3","7","1","3","5");

                for(var i=0; i<10; i++) { getlist[i] = vencod.substring(i, i+1); }

                for(var i=0; i<9; i++) { sum += getlist[i]*chkvalue[i]; }

                sum = sum + parseInt((getlist[8]*5)/10,10);

                sidliy = sum % 10;

                sidchk = 0;

                if(sidliy != 0) { sidchk = 10 - sidliy; }

                else { sidchk = 0; }

                if(sidchk != getlist[9]) { return false; }

                return true;
            },

            /**
             * ÀÌ¸ÞÀÏ Ã¼Å©
             * @param email
             */
            checkEmail : function( email ){
                var ascii;
                var j = 0;
                var k = 0;

                for( i = 0; i < email.length; i++) {
                    ascii = email.charCodeAt(i);
                     if (ascii == 64)  j++;   // ÀÌ¸ÞÀÏ¿¡ @ Ã¼Å©
                     if (ascii == 46)  k=1;   // ÀÌ¸ÞÀÏ¿¡ . Ã¼Å©
                    // ¼ýÀÚÀÎÁö ¿µ¹®ÀÚÀÎÁö Ã¼Å©
                     if ( !((ascii >= 97 && ascii <= 122 ) || (ascii >= 64 && ascii <= 90 ) || (ascii >= 48 && ascii <= 57 ) || (ascii == 45) || (ascii == 46) || (ascii == 95) )) {
                        pbk.extJS.messageBox.errMsgBox({
                            title: 'ÀÌ¸ÞÀÏ Ã¼Å©',
                            message: "ÀÌ¸ÞÀÏ ÁÖ¼Ò¿¡ ¼ýÀÚ ¶Ç´Â ¿µ¹®ÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä."
                        });
                        return false;
                    }
                }

                if ( !(j==1) ) {
                    pbk.extJS.messageBox.errMsgBox({
                            title: 'ÀÌ¸ÞÀÏ Ã¼Å©',
                            message: "ÀÌ¸ÞÀÏ¿¡ @ Ç¥½Ã°¡ ¾ø°Å³ª 2°³ ÀÌ»óÀÔ´Ï´Ù. È®ÀÎ ÈÄ ÀçÀÔ·ÂÇØÁÖ¼¼¿ä."
                        });
                    return false;
                }

                if ( !(k==1) ) {
                    pbk.extJS.messageBox.errMsgBox({
                            title: 'ÀÌ¸ÞÀÏ Ã¼Å©',
                            message: "ÀÌ¸ÞÀÏ¿¡ . Ç¥½Ã°¡ ¾ø½À´Ï´Ù. È®ÀÎ ÈÄ ÀçÀÔ·ÂÇØÁÖ¼¼¿ä."
                        });
                    return false;
                }

                if (ascii==46) {  // ¸Ç ¸¶Áö¸· °ªÀÌ . ÀÌ¸é
                    pbk.extJS.messageBox.errMsgBox({
                            title: 'ÀÌ¸ÞÀÏ Ã¼Å©',
                            message: " . Ç¥½Ã µÚ¿¡ ±ÛÀÚ°¡ ¾ø½À´Ï´Ù. È®ÀÎ ÈÄ ÀçÀÔ·ÂÇØÁÖ¼¼¿ä."
                        });
                    return false;
                }

               return true ;
            },

            /**
             * °ø¹éÀ» Á¦°Å ÇÑ´Ù.
             * @param strMsg
             */
            trim : function( stringToTrim ){
                return stringToTrim.replace(/(^\s*)|(\s*$)|($\s*)/g, "");
            },

            /**
             *
             * @param str1
             * @param str2
             */
            replaceAll : function( target, str1, str2 ){

                var temp_str = "";

                //target ÀÌ null ÀÏ°æ¿ì ¿¡·¯ ¹ß»ýÇÔ. target ÀÌ Á¸ÀçÇÒ °æ¿ì¸¸ ½ÇÇàÇÔ 2009.02.19 ±è»óÁØ.
                if (target && this.trim( target ) != "" && str1 != str2)
                {
                    temp_str = this.trim( target );

                    while (temp_str.indexOf(str1) > -1)
                    {
                        temp_str = temp_str.replace(str1, str2);
                    }
                }
                return temp_str;
            },

			/**
             * ÀÚ¸´¼ö ¸¸Å­ °ø¹éÀ» 0À¸·Î Ã¤¿î´Ù.
             *
             * @param nValue
             * @param len
             */
			prependZero : function(nvalue, len) {
		        while(nvalue.toString().length < len) {
		            nvalue = "0" + nvalue;
		        }
		        return nvalue;
			}

        },


        /**
         * ±×¸®µå ¼³Á¤ Á¤º¸
         */
        gridConfig : {
            /**
             * °Ë»ö Á¶°Ç
             */
            SearchCondition : "",
            /**
             * ??
             */
            ItemsetView : true,

            /**
             * ¿¢¼¿ ¾÷·Îµå ÆË¾÷Ã¢
             */
            FILE_TYPE : {
                         "1":"Excel File(*.Xls)|*.xls|",
                         "2":"Excel File(*.csv)|*.csv|",
                         "3":"Text File(*.TXT)|*.txt|"
                        }
        },

        grid : {

            /**
             * ±×¸®µå ¼³Á¤ Á¤º¸¸¦ init ÇÕ´Ï´Ù.
             */
            initConfig : function(){
                hana.JHanaUtils.gridConfig.SearchCondition = "";
                hana.JHanaUtils.gridConfig.ItemsetView = true;
            },

            /**
             * grid ÀÇ print ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
             * »ç¿ë¹ý : onclick="grid.gridPrint('grid¸í')"
             * @param grid {String} grid
             */
            gridPrint : function(grid){
                var gridObj = hana.JHanaUtils.grid.findGrid(grid,"gridPrint");

                if( gridObj ){
                    gridObj.SearchCondition = hana.JHanaUtils.gridConfig.SearchCondition;
                    gridObj.ShowPrint();
                }

                hana.JHanaUtils.grid.initConfig();
            },

            /**
             * grid ÀÇ excel ÆË¾÷ ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
             * »ç¿ë¹ý : onclick="grid.excelDown('grid¸í')"
             * @param grid {String} grid
             */
            excelDown : function(grid){
                var gridObj = hana.JHanaUtils.grid.findGrid(grid,"excelDown");

                if( gridObj ){
                    gridObj.SearchCondition = hana.JHanaUtils.gridConfig.SearchCondition;
                    gridObj.ItemsetView = hana.JHanaUtils.gridConfig.ItemsetView;
                    gridObj.ShowSaveForm();
                }

                hana.JHanaUtils.grid.initConfig();
            },

            /**
             * grid ÀÇ ÀüÃ¼ º¸±â ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
             * »ç¿ë¹ý : onclick="grid.showAll('grid¸í')"
             * @param grid {String} grid
             */
            showAll : function(grid){
                var gridObj = hana.JHanaUtils.grid.findGrid(grid,"showAll");

                gridObj.showAll();
            },

            /**
             * grid checkbox ÇÊµå toggle ±â´É
             * @param checked (booleaan} Ã¼Å© true, false
             * @param columnname Ã¼Å©¹Ú½º ÇÊµå ÀÌ¸§
             */
            toggleCheck : function(grid, checked, columnname){
                var gridObj = hana.JHanaUtils.grid.findGrid(grid,"toggleCheck");
                
                var culomnNm = columnname || "¼±ÅÃ";
                if(checked){
                    setSelectedAll(gridObj, culomnNm);
                }else{
                    setUnSelectedAll(gridObj, culomnNm);
                }
            },

            /**
             * grid¸¦ Ã£½À´Ï´Ù.
             * @param grid
             */
            findGrid : function(grid, func){
                var gridObj = document.getElementById(grid);

                if( gridObj != null ){
                    return gridObj;
                }

                //°³¹ß ½Ã ¿¡¸¸ »ç¿ëÇÔ..
                message.alert("¿À·ù", func + " : È£Ãâ ½Ã '"+grid+"' ¿¡ ÇØ´çÇÏ´Â ±×¸®µå¸¦ Ã£À» ¼ö ¾ø½À´Ï´Ù.<br/> ±×¸®µå ID ¸¦ È®ÀÎÇØ ÁÖ¼¼¿ä!!");
            },

            /**
             * @deprecated °¢ ±â´É¿¡ ¸Â°Ô ±¸ÇöÇÒ°Í..
             *
             * grid ÆÄÀÏ µî·Ï ÆË¾÷ Ã¢ ¿­±â
             * @param grid
             * @param fileType
             */
            openPopFileRegist : function(grid, fileType, chnlSvcCd){

                var gridObj = hana.JHanaUtils.grid.findGrid(grid,"openPopFileRegist");

                if( null == fileType || fileType == "" ){
                    message.alert("¼±ÅÃ","ÆÄÀÏÁ¾·ù¸¦ ¼±ÅÃÇÏ¼¼¿ä");
                    return;
                }

                gridObj.OpenFileFilter = hana.JHanaUtils.gridConfig.FILE_TYPE[fileType] + 'ALL File(*.*)|*.*';
                gridObj.FileEditYN = true;
                // CollectRegisterFormDetailListGrid.FileOpenFormDesignType = 1;
                gridObj.DeleteConfirm = true;
                gridObj.ShowFileOpenForm();
                //gridObj.CheckInvalidate(pbk.acct.inquiry.large.test());

                var GFileToRowTotalCount = gridObj.FileToRowTotalCount; //ÆÄÀÏ¿¡¼­ ÀÐ¾îµéÀÎ ÀüÃ¼°Ç¼ö
                var GFileToRowTrueCount = gridObj.FileToRowTrueCount; //ÆÄÀÏ¿¡¼­ ÀÐ¾îµéÀÎ Á¤»ó°Ç¼ö
                var GFileToRowFalseCount = gridObj.FileToRowFalseCount; //ÆÄÀÏ¿¡¼­ ÀÐ¾îµéÀÎ ½ÇÆÐ°Ç¼ö
                var GFileToResultMsgs = gridObj.FileToResultMsgs; //ÆÄÀÏ¿¡¼­ ÀÐ¾îµéÀÎ À¯È¿¼º °Ë»ç ½ÇÆÐ ¸Þ½ÃÁö(±¸ºÐÀÚ´Â #1, )

                // ¿À·ù ¸Þ¼¼Áö Ã³¸® ºÎºÐ
                if (GFileToResultMsgs != "")
                    message.alert("ÀÔ·Â ¿À·ù", GFileToResultMsgs.replace(//g, "</br>"));
            },


            /**
             * Ã¼Å© µÈ Çà ÀÏ°ý »èÁ¦
             * default message ¾È¶ç¿ò..
             * @param grid
             */
            deleteSelectedRows : function(grid, baseColumn, isCallMsg){

                var isCallMsgVal = false;

                if( isCallMsg ){
                    isCallMsgVal = true;
                }
				
                var gridObj = hana.JHanaUtils.grid.findGrid(grid,"deleteSelectedRows");
				
                if( !new hana.JGrid(gridObj).checkedData().validate() ){
                    return;
                }
				
                if( isCallMsgVal ){
                    message.confirm("È®ÀÎ","Á¤¸»·Î »èÁ¦ ÇÏ½Ã°Ú½À´Ï±î?",
                        function(e){
                            if(e){
                                hana.JHanaUtils.grid.deleteRows(gridObj, baseColumn);
                            }
                        }
                    )
                }else{
                    hana.JHanaUtils.grid.deleteRows(gridObj, baseColumn);
                }
            },

            /**
             * »èÁ¦ ¼öÇà
             * @param grid
             * @param baseColumn
             */
            deleteRows : function(gridObj, baseColumn) {
                var i;
                var nRecIdx;
                var nCol_idx = gridObj.GetItemIndexFromCaption(baseColumn);
                if (nCol_idx < 0) return;

                gridObj.BeginUpdate();

                try {
                    for(i=gridObj.RowCount-1; i>=0; i--) {
                        nRecIdx = gridObj.GetRecordFromRow(i);
                        if (gridObj.GetValue(nRecIdx, nCol_idx) == true) {
                            gridObj.DeleteRecord(nRecIdx);
                        }
                    }
                } finally {
                    gridObj.EndUpdate();
                }
            },

            /**
             * grid¿¡ formObj ÀÇ °ªÀ» ³Ö½À´Ï´Ù.
             * ÀÌ¶§ grid¿¡´Â SetJsonBaseInfomation À¸·Î formObjÀÇ ÇÊµå¸íÀÌ Á¤ÀÇ µÇ¾îÀÖ¾î¾ß ÇÕ´Ï´Ù.
             *
             * @param grid
             * @param formObj
             * @param jsonRecId
             */
            insertFormIntoGrid : function(grid, formObj, jsonRecId){

                var gridObj = hana.JHanaUtils.grid.findGrid(grid,"insertFormIntoGrid");

                var HashForm = new Hash(Form.serialize(formObj, true));

                var array = new Array();
                array.push(HashForm);

                var result = new Hash();
                result[jsonRecId] = array;

                gridObj.SetJsonData(result.toJSON());
            }
        },

        json : {
            /**
             * jsonµ¥ÀÌÅÍ¸¦ StringÀ¸·Î º¯È¯ÇÑ´Ù.
             * @param {Object} jsonObject jsonTypeÀÇ Object
             */
            jsonToString : function(jsonObject) {
                var jsonText;
                jsonText = JSON.stringify(jsonObject);
                jsonText= jsonText.replace(/\\"/g,"\"").replace(/\\\\/g,"\\").replace(/:"\[/g,":[").replace(/\}\]"\}/g,"}]}");
                return jsonText;
            }
        },
		
		window: {
			submitForm : null,
			popUpDrmWindow : function(url,width,height,formObj,tileAction){
				 hana.JHanaUtils.window.submitForm = formObj;
				 var win=null;
				 var w=width;   // ÆË¾÷Ã¢ ³ÐÀÌ
				 var h=height;   // ÆË¾÷Ã¢ ³ôÀÌ  
				 var winl = (screen.width-w)/2;
				 var wint = (screen.height-h)/2;
				 var settings  ='height='+h+',';
				  settings +='width='+w+',';
				  settings +='top='+wint+',';
				  settings +='left='+winl+',';
				  settings +='scrollbars=no,';
				  settings +='resizable=no';
				  	
				 win=window.open("","popupWindow",settings);

				 var submitForm = formObj;
				 var formId = null;
				 if (formObj==null || formObj == undefined){ 
					if ($('_FormDRMExta')==null || $('_FormDRMExta') == undefined) {										
					    submitForm = hana.JHanaUtils.form.createForm();
					    document.body.appendChild(submitForm);
						submitForm.id = '_FormDRMExta';	
					 	hana.JHanaUtils.form.createHiddenField($('_FormDRMExta'),'contentUrl',url); 
					} else {
						submitForm = $('_FormDRMExta');
						hana.JHanaUtils.form.removeHiddenField($('_FormDRMExta'),'contentUrl'); 
						hana.JHanaUtils.form.createHiddenField($('_FormDRMExta'),'contentUrl',url); 
					}
					formId = submitForm.id;
					hana.JHanaUtils.window.submitForm = submitForm;
					document.forms[formId].target = 'popupWindow';
					document.forms[formId].action = tileAction;
					document.forms[formId].submit();
				 } else {	
				    if (submitForm.id) {
						formId = submitForm.id;
					}
					else {
						submitForm.id = '_FormDRMExta';
						formId = submitForm.id;
					}	 	
				 	hana.JHanaUtils.form.removeHiddenField(submitForm,'contentUrl');
				 	hana.JHanaUtils.form.createHiddenField(submitForm,'contentUrl',url); 
					document.forms[formId].target = 'popupWindow';
					document.forms[formId].action = tileAction;
                    document.forms[formId].method = "post";
					document.forms[formId].submit();
				 }
				 hana.JHanaUtils.window.submitForm = null;
				 
				 if(parseInt(navigator.appVersion) >= 4){win.window.focus();}	
			},
			popup : {
				modal : {
			
			        /**
			         * window.showModalDialog ½ÇÇà
			         * @param {config}
			         * »ç¿ë¹ý : hana.JHanaUtils.window.popup.modal.openPop({url:'/wizard/index.do',dialogWidth:'885px',dialogHeight:'633px'});
			         */		
					openPop : function(config){
						var defultConfigObj = {
							url				: "",				//ÁÖ¼Ò
							popupModalDiv 	: "popupWindow", 	//¸ð´ÞÃ¢ ÀÌ¸§
							dialogWidth 	: "300",			//°¡·Î
							dialogHeigth 	: "200",			//¼¼·Î
							center			: "yes",			//À§Ä¡
							status			: "no",				//
							scroll			: "no",				//
							resizable		: "no"				//
						};
						
						var configObj;
						
						configObj = Ext.apply({},config,defultConfigObj);
						var url = configObj.url;
						var configTemp = 'dialogWidth:'+configObj.dialogWidth;
							configTemp += ';dialogHeight:'+configObj.dialogHeight;
							configTemp += ';center:'+configObj.center;
							configTemp += ';status:'+configObj.status;
							configTemp += ';scroll:'+configObj.scroll;
							configTemp += ';resizable:'+configObj.resizable;
			
						window.showModalDialog(pbk.APPLICATION_CONTEXT_ROOT +url, configObj.popupModalDiv, configTemp);
						
					},
					
					closePopup : function(){
						window.close(this);
					}
					
				}
			}
			
		}
    }
}();

/**
 * µ¿ÀûÀ¸·Î Å×ÀÌºíÀÇ Row¸¦ Ãß°¡ÇÏ´Â ±â´ÉÀ» Á¦°øÇÏ´Â Å¬·¡½ºÀÔ´Ï´Ù.
 *
 * »ç¿ë ½Ã
 * var table = new hana.JTable('id', 4, hana.JTableFormat);
 *
 * <button onclick="return table.createRow()">Ãß°¡</button>
 *
 * <button onclick="return table.deleteRow(this)">»èÁ¦</button>
 *
 * ÀÌ ¶§ TableFormat Å¬·¡½º´Â
 * formatRow ¸Þ¼Òµå¿Í formatCell ¸Þ¼Òµå¸¦ ÀÛ¼ºÇØ¾ßÇÕ´Ï´Ù.
 *
 * TableFormat Å¬·¡½º ¿¹Á¦
 *
 *    hana.JTableFormat = function(){
 *        return{
 *
 *            formatRow : function(row, rowNumber) {
 *                row.bgColor = "red";
 *            },
 *
 *            formatCell : function (cell, index, rowNumber) {
 *                if (index == 0) {
 *                    cell.innerHTML = rowNumber;
 *                    cell.align = "center";
 *                } else if (index == 1) {
 *                    cell.bgColor = "blue";
 *                    cell.innerHTML = "<input type='text' name='age'/>";
 *                } else if (index == 2) {
 *                    cell.innerHTML = "<input type='text' name='age'/>";
 *                } else if (index == 3) {
 *                    cell.bgColor = "blue";
 *                    cell.innerHTML = "<button onclick='return table.deleteRow(this)'>»èÁ¦</button>";
 *                }
 *            }
 *        }
 *    }();
 *
 * @param id <tbody/> ÅÂ±×ÀÇ id ¼Ó¼ºÀÇ °ª
 * @param cellNumber Ä®·³(<td/>) ÅÂ±×ÀÇ ¼ýÀÚ
 * @param tableFormat Ãß°¡µÇ´Â Row ¹× Ä®·³¿¡ ´ëÇØ Æ÷¸äÀ» Á¤ÀÇÇÏ´Â Å¬·¡½º (°¢°¢ »ç¿ë ¿ëµµ¿¡ ¸Â°Ô ±¸ÇöÇÕ´Ï´Ù.)
 */
hana.JTable = function (id, cellNumber, tableFormat) {
    this.id = id;
    this.cellNumber = cellNumber;
    this.tableFormat = tableFormat;

    this.rowNumber = document.getElementById(id).rows.length;
}

hana.JTable.prototype =  {

    /**
     * JTable createRow ¸Þ¼ÒµåÀÇ ±¸Çö
     * @param model tableFormat ±¸Çö °´Ã¼¿¡¼­ »ç¿ëÇÒ ÀÎÀÚ
     */
    createRow : function(model){
        var body = document.getElementById(this.id);
        this.rowNumber += 1;

        var row;
        var cell;

        row = document.createElement("tr");
        body.appendChild(row);

        if (this.tableFormat.formatRow) {
            this.tableFormat.formatRow(row, this.rowNumber, model);
        }

        for (var i = 0; i < this.cellNumber; i++) {
            cell = document.createElement("td");
            row.appendChild(cell);
            this.tableFormat.formatCell(cell, i, this.rowNumber, model);
        }
        return false;
    },


    /**
     * JTable deleteeRow ¸Þ¼ÒµåÀÇ ±¸Çö
     *
     * @param item »èÁ¦ÇÒ TR ÅÂ±×
     */
    deleteRow: function(item){
        var rowIndexToDelete = -1;

        while (rowIndexToDelete == -1) {
            if (item.nodeName == "TR") {
                rowIndexToDelete = item.rowIndex;
            } else {
                item = item.parentNode;
            }
        }

        var body = document.getElementById(this.id);
        var rows = body.rows;
        for (var i = 0; i < rows.length; i++) {
            if (rows[i].rowIndex == rowIndexToDelete) {
                body.deleteRow(i);
                return false;
            }
        }
        return false;
    }
}

var cookie = hana.JHanaUtils.cookie;
var html   = hana.JHanaUtils.html;
var viewport = hana.JHanaUtils.viewport;
var input    = hana.JHanaUtils.input;
var checkbox = hana.JHanaUtils.checkbox;
var selectbox = hana.JHanaUtils.selectbox;
var radiobox     = hana.JHanaUtils.radio;
var radio     = hana.JHanaUtils.radio;
var form      = hana.JHanaUtils.form;
var date      = hana.JHanaUtils.date;
var print = hana.JHanaUtils.print;


var message   = hana.JHanaUtils.message;
var sort      = hana.JHanaUtils.sort;
var grid      = hana.JHanaUtils.grid;
var json      = hana.JHanaUtils.json;
var util      = hana.JHanaUtils.util;
var windowutil = hana.JHanaUtils.window;
