	/**
	 * Copyright (c) 2009 by saltcake
	 * All rights reserved.
	 *
	 * 자바스크립트 공통함수
	 *	 
	 * @version 1.0, 2009/07/06
	 * @author 
	 */
	var context = "/skcc";
	/* ==== png file ==== */
	function setPng24(obj) {
		obj.width=obj.height=1;
		obj.className=obj.className.replace(/\bpng24\b/i,'');
		obj.style.filter =
		"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');"
		obj.src=''; 
		return '';
	}

	/* ==== scroll top control ==== */

	onscroll = function() {
		if(document.getElementById('hidn_top')){
			if(document.body.scrollTop > 700 || document.documentElement.scrollTop > 700){
				document.getElementById('hidn_top').style.display = 'inline';
			} else if(document.body.scrollTop < 700 || document.documentElement.scrollTop < 700){
				document.getElementById('hidn_top').style.display = 'none';
			}
		}
	}

	/* ==== scroll top control ==== */
	function show_family(){
		if(document.getElementById('family_site').style.display == 'inline') document.getElementById('family_site').style.display = 'none';
		else document.getElementById('family_site').style.display = 'inline';
	}
	function hide_family(){
		 document.getElementById('family_site').style.display = 'none';
	}

	function show_family01(){
		if(document.getElementById('family_site01').style.display == 'inline') document.getElementById('family_site01','family_site').style.display = 'none';
		else document.getElementById('family_site01').style.display = 'inline';
	}
	function hide_family01(){
		 document.getElementById('family_site01').style.display = 'none';
	}


	/* ==== slider nameSpace ==== */
	var slider = function() {
		/* ==== private methods ==== */
		function getElementsByClass(object, tag, className) {
			var o = object.getElementsByTagName(tag);
			for ( var i = 0, n = o.length, ret = []; i < n; i++) {
				if (o[i].className == className) ret.push(o[i]);
			}
			if (ret.length == 1) ret = ret[0];
			return ret;
		}
		function setOpacity (obj,o) {
			alert(obj);
			if (obilters) obj.filters.alpha.opacity = Math.round(o);
			else obj.style.opacity = o / 50;
		}
		
		
		/* ==== Slider Constructor ==== */
		function Slider(oCont, speed, iW, iH, oP) {
			this.slides = [];
			this.over   = true;//first over
			this.S      = this.S0 = speed;
			this.iW     = iW;
			this.iH     = iH;
			this.oP     = oP;
			this.oc     = document.getElementById(oCont);
			this.frm    = getElementsByClass(this.oc, 'div', 'slide');
			this.NF     = this.frm.length;
			this.resize();
			for (var i = 0; i < this.NF; i++) {
				this.slides[i] = new Slide(this, i);
			}
			this.oc.parent = this;
			this.view      = this.slides[0];
			this.Z         = this.mx;
			/* ==== on mouse out event ==== */
			/*
			this.oc.onmouseout = function () {
				this.parent.mouseout();
				return false;
			}
			*/
		}
		Slider.prototype = {
			/* ==== animation loop ==== */
			run : function () {
				this.Z += this.over ? (this.mn - this.Z) * .5 : (this.mx - this.Z) * .5;
				this.view.calc();
				var i = this.NF;
				while (i--) this.slides[i].move();
			},
			/* ==== resize  ==== */
			resize : function () {
				this.wh = this.oc.clientWidth;
				this.ht = this.oc.clientHeight;
				this.wr = this.wh * this.iW;
				this.r  = this.ht / this.wr;
				this.mx = this.wh / this.NF;
				this.mn = (this.wh * (1 - this.iW)) / (this.NF - 1);
			},
			/* ==== rest  ==== */
			mouseout : function () {
				this.over      = true;//false; 100503
				//setOpacity(this.view.img, this.oP);
				//setOpacity(this.view.img, 100);//100503
			}
		}
		/* ==== Slide Constructor ==== */
		Slide = function (parent, N) {
			this.parent = parent;
			this.N      = N;
			this.x0     = this.x1 = N * parent.mx;
			this.v      = 0;
			this.loaded = false;
			this.cpt    = 0;
			this.start  = new Date();
			this.obj    = parent.frm[N];
			this.txt    = getElementsByClass(this.obj, 'div', 'text');
			this.img    = getElementsByClass(this.obj, 'img', 'diapo');
			this.bkg    = document.createElement('div');
			this.bkg.className = 'backgroundText';
			this.obj.insertBefore(this.bkg, this.txt);
			if (N == 0) this.obj.style.borderLeft = 'none';
			this.obj.style.left = Math.floor(this.x0) + 'px';
			//setOpacity(this.img, parent.oP);
			//setOpacity(this.img, 100);
			/* ==== mouse events ==== */
			this.obj.parent = this;
			this.obj.onmouseover = function() {
				this.parent.over();
				return false;
			}
		}
		Slide.prototype = {
			/* ==== target positions ==== */
			calc : function() {
				var that = this.parent;
				// left slides
				for (var i = 0; i <= this.N; i++) {
					that.slides[i].x1 = i * that.Z;
				}
				// right slides
				for (var i = this.N + 1; i < that.NF; i++) {
					that.slides[i].x1 = that.wh - (that.NF - i) * that.Z;
				}
			},
			/* ==== HTML animation : move slides ==== */
			move : function() {
				var that = this.parent;
				var s = (this.x1 - this.x0) / that.S;
				/* ==== lateral slide ==== */
				if (this.N && Math.abs(s) > .5) {
					this.obj.style.left = Math.floor(this.x0 += s) + 'px';
				}
				/* ==== vertical text ==== */
				var v = (this.N < that.NF - 1) ? that.slides[this.N + 1].x0 - this.x0 : that.wh - this.x0;
				if (Math.abs(v - this.v) > .5) {
					this.bkg.style.top = this.txt.style.top = Math.floor(2 + that.ht - (v - that.Z) * that.iH * that.r) + 'px';
					this.v = v;
					this.cpt++;
				} else {
					if (!this.pro) {
						/* ==== adjust speed ==== */
						this.pro = true;
						var tps = new Date() - this.start;
						if(this.cpt > 1) {
							that.S = Math.max(2, (28 / (tps / this.cpt)) * that.S0);
						}
					}
				}
				if (!this.loaded) {
					if (this.img.complete) {
						this.img.style.visibility = 'visible';
						this.loaded = true;
					}
				}
			},
			/* ==== light ==== */
			over : function () {
				this.parent.resize();
				this.parent.over = true;
				//setOpacity(this.parent.view.img, this.parent.oP);
				//setOpacity(this.parent.view.img, 100); //100503
				this.parent.view = this;
				this.start = new Date();
				this.cpt = 0;
				this.pro = false;
				this.calc();
				//setOpacity(this.img, 100);
			}
		}
		/* ==== public method - script initialization ==== */
		return {
			init : function() {
				// create instances of sliders here
				// parameters : HTMLcontainer name, speed (2 fast - 20 slow), Horizontal ratio, vertical text ratio, opacity
				this.s1 = new Slider("slider", 12, 2.45/3, 1/3.2, 70);
				setInterval("slider.s1.run();", 14);
			}
		}
	}();

	
	/*
	 * 롤링 하--> 상
	 * var scrollCtrls = new ScrollControls('scrollstageIngiTop', {inteval:10,stop:5000,line:'1',height:'18'});
	 */
	var ScrollControls    = function(objId,options){ 
	    this.init(objId,options); 
	} 
	ScrollControls.prototype    = { 
	    stage : {}, 
	    options : {}, 
	    isover : false, 
	    freeze : true, 
	    course : 'top', 
	    itimes : 0, 
	    top : 0, 

	    init : function(objId,options){ 
	        this.setOptions(options); 
	        this.setStage(objId); 
	        this.setTrueData(); 

	        this.move(); 
	    }, 
	    setOptions : function(options){ 
	        options.inteval    = options.inteval    || 10; 
	        options.freeze    = options.freeze    || 3000; 
	        options.height    = parseInt(options.height, 10)    || 20; 
	        options.style    = options.style || 'scroll'; 
	        options.line    = options.line || 1; 
	        options.stopline    = options.stopline || options.line; 
	        options.reverse    = options.reverse || ''; 
	        options.debug    = options.debug || false; 

	        options.blockHeight    = options.height * options.line; 
	        options.stopHeight    = options.height * (options.stopline || options.line); 

	        options.cMarginTop    = 1; 
	        options.cHeight        = options.height - options.cMarginTop; 
	        options.freeze        = (options.style == 'no-freeze') ? options.inteval : options.freeze; 

	        switch(options.style){ 
	            case 'jump' :        options.style = options.style;    break; 
	            default :            options.style = 'scroll';    break; 
	        } 


	        this.course        = options.start || 'top'; 
	        this.options    = options; 
	    }, 
	    setTrueData : function(){ 
	        var cObjs        = this.stage.childNodes; 
	        var cObjLen        = cObjs.length; 
	        var removes        = []; 

	        for(var i=0;i<cObjs.length;i++){ 
	            if(!cObjs[i].tagName){ 
	                removes.push(cObjs[i]);    //바로 삭제 시 데이터 꼬이는듯 하여 일단 킵함. 
	            }else{ 
	                cObjs[i].style.margin        = "0"; 
	                cObjs[i].style.marginTop    = this.options.cMarginTop; 
	                cObjs[i].style.height        = this.options.cHeight+'px'; 
	            }
	        }

	        // 찾은 데이터를 삭제함.(FF의 경우 text 노드가 첨부됨.) 
	        for(var i=0;i<removes.length;i++){ 
	            this.stage.removeChild(removes[i]); 
	        }

	        if(!this.options.debug && cObjLen <= this.options.line ){
	            var attachLen    = parseInt(this.options.line/cObjLen, 10); 
	            for(var i=0; i<attachLen; i++){ 
	                for(var j=0; j<cObjLen; j++){ 
	                    this.stage.appendChild( cObjs[j].cloneNode(true) ); 
	                } 
	            } 
	        } 

	    }, 
		setStage : function(objId){
	        var This    = this; 
	        this.stage        = document.getElementById(objId); 

	        this.stage.style.height        = this.options.blockHeight+'px'; 
	        this.stage.style.padding    = "0px"; 
	        this.stage.style.margin        = "0px"; 

	        if(!this.options.debug) 
	            this.stage.style.overflow    = "hidden";
				
	        this.stage.onmouseover    = function(){
				This.isover=true;
			}
			
	        this.stage.onmouseout    = function(){
				This.isover=false;
			} 

	        this.stage.scrollTop        = 0;    //파폭에서 리프래시 문제 
	    },
	    setCourse : function(course){
	        if(this.course != 'down' && course == 'down' && this.stage.scrollTop <= 0){ 
	            this.changeChild(); 
	            this.stage.scrollTop = this.options.height; 
	        }else if(course == 'top' && this.stage.scrollTop >= this.options.height){ 
	            if(this.options.reverse != 'all'){ 
	                this.changeChild(this.options.line); 
	                this.stage.scrollTop = this.stage.scrollTop - this.options.stopHeight; 
	            } 
	        } 

	        this.course    = course; 
	        if(this.itimes > 0){ 
	            window.clearTimeout(this.itimes); 
	            this.move(); 
	        } 
	    }, 
	    changeChild : function(count){ 
			if(count == undefined){    count    = this.stage.childNodes.length - 1;} 
	        for(var i=0; i<count;i++ ){ 
	            this.stage.appendChild( this.stage.childNodes[0] );    // 항상 첫번째것을 뒤로 이동 
	        } 
	    }, 
	    actionTop : function(){ 
	        if(this.options.style == 'jump'){ 
	            this.changeChild(this.options.stopline); 
	            this.stage.scrollTop = 0; 
	            this.freeze            = true;
	        }else{ 
	            this.top++; 
	            this.stage.scrollTop++;

	            if( this.stage.scrollTop >= this.options.height ){
	                this.changeChild(1);
	                this.stage.scrollTop = this.stage.scrollTop - this.options.height; 

	                //if문 안에 있는게 효율 
	                if( this.top >= this.options.stopHeight ){ 
	                    this.top            = 0; 
	                    this.freeze            = true; 
	                    if(this.options.reverse == 'top' || this.options.reverse == 'all')    this.setCourse("down"); 
	                } 
	            } 
	        } 
	    }, 
	    actionDown : function(){
	        if(this.options.style == 'jump'){ 
	            this.freeze                = true; 
	            for(var i=0; i<this.options.stopline;i++){ 
	                this.changeChild(); 
	            } 
	        }else{ 
	            this.top--; 
	            this.stage.scrollTop--; 

	            if( this.stage.scrollTop <= 0 ){ 
	                this.changeChild(); 
	                this.stage.scrollTop = this.stage.scrollTop + this.options.height; 
					
	                //Math.abs 로 구할 수 있지만, Math함수가 무거운 관계로 음수 처리함.(if문 안에 있는게 효율) 
	                if( -(this.top) >= this.options.stopHeight ){ 
	                    for(var i=1; i<this.options.stopline;i++){ 
	                        this.changeChild(); 
	                    } 

	                    this.top            = this.top + this.options.stopHeight;
	                    this.freeze            = true; 
	                } 
	            } 
	        } 

	        if(this.freeze){ 
	            this.stage.scrollTop    = this.options.stopHeight; 
	            if(this.options.reverse == 'down' || this.options.reverse == 'all')    this.setCourse("top"); 
	        } 

	    }, 
	    move : function(){ 
	        this.itimes    = 0; 
			
	        if(!this.isover){ 
	            if(this.course == 'top')    this.actionTop(); 
	            else                        this.actionDown(); 
	        } 

	        var This    = this; 
	        if(this.freeze){    this.itimes    =        window.setTimeout(function(){This.move()}, this.options.freeze); }
	        else{                window.setTimeout(function(){This.move()}, this.options.inteval); } 
	        this.freeze    = false; 
	    }
	}
	
	
	
	/* =======================================================================================================================================
	 /**
	 * string String::cut(int len)
	 * 글자를 앞에서부터 원하는 바이트만큼 잘라 리턴합니다.
	 * 한글의 경우 2바이트로 계산하며, 글자 중간에서 잘리지 않습니다.
	 */
	 String.prototype.cut = function(len) {
	  var str = this;
	  var l = 0;
	  for (var i=0; i<str.length; i++) {
	   l += (str.charCodeAt(i) > 128) ? 2 : 1;
	   if (l > len) return str.substring(0,i);
	  }
	  return str;
	 }
	
	 /**
	 * bool String::bytes(void)
	 * 해당스트링의 바이트단위 길이를 리턴합니다. (기존의 length 속성은 2바이트 문자를 한글자로 간주합니다)
	 */
	 String.prototype.bytes = function() {
	  var str = this;
	  var l = 0;
	  for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
	  return l;
	 }
	
	// 엔터키를 누를때 이벤트 발생하기
	function enterDownPost()
	{
		if(event.keyCode == 13)
		{
			btn_postid_chk_click();
		}
	}
	function enterDownId()
	{
		if(event.keyCode == 13)
		{
			btn_userid_chk_click();
			return;
		}
	}
	
	//숫자만입력가능하게  onkeypress에 사용하면됨. 숫자가 아닌 다른글자 입력시 입력안됨.
	function onlyNum(name){
		flag = false;
		//alert("event.keyCode = " +event.keyCode);
		
		if(((event.keyCode >= 48) && (event.keyCode <= 57)) || ((event.keyCode >= 96) && (event.keyCode <= 105))){
			//숫자
			flag = true;
		}else if((event.keyCode == 46) || (event.keyCode == 8) || (event.keyCode == 27) || (event.keyCode == 13) || (event.keyCode == 45)){
			//delete, backspace, esc, f5, enter
			flag = true;
		}else if((event.keyCode == 9) || (event.keyCode == 37) || (event.keyCode == 39) || (event.keyCode == 35) || (event.keyCode == 36) || (event.keyCode == 38) || (event.keyCode == 40)){
			//tab, <-, -> , home, end, 위, 아
		//	alert(3);
		    flag = true;
		//}else if((event.keyCode == 16) || (event.keyCode == 17) || (event.keyCode == 18) || (event.keyCode == 20) || (event.keyCode == 25)){
		//	//shift, Lctrl, Lalt, caps lock, Rctrl
		//	flag = true;
		//	alert(4);
		}else{
			alert("Please fill up all fields.");
			//name.value="";
			name.focus();
			flag = false;
		}
		event.returnValue=flag;
	}
	
	//숫자/영문만 입력가능하게  onkeypress에 사용하면됨. 숫자/영문이 아닌 다른글자 입력시 입력안됨.
	function onlyNumEng(name){
		flag = false;
		if(((event.keyCode >= 48) && (event.keyCode <= 57)) || ((event.keyCode >= 96) && (event.keyCode <= 105))){
			//숫자
			flag = true;
		}else if((event.keyCode >= 65) && (event.keyCode <= 90)){
			//영문
			flag = true;
		}else if((event.keyCode == 46) || (event.keyCode == 8) || (event.keyCode == 27) || (event.keyCode == 116)){
			//delete, backspace, esc, f5
			flag = true;
		}else if((event.keyCode == 9) || (event.keyCode == 37) || (event.keyCode == 39) || (event.keyCode == 35) || (event.keyCode == 36) || (event.keyCode == 38) || (event.keyCode == 40)){
			//tab, <-, -> , home, end, 위, 아
			flag = true;
		}else if((event.keyCode == 16) || (event.keyCode == 17) || (event.keyCode == 18) || (event.keyCode == 20) || (event.keyCode == 25)){
			//shift, Lctrl, Lalt, caps lock, Rctrl
			flag = true;
		}else{
			alert("Please fill up all fields.");
			name.value="";
			name.focus();
			flag = false;
		}
		event.returnValue=flag;
	}
	
	//숫자/영문만 입력가능하게  onkeypress에 사용하면됨. 숫자/영문이 아닌 다른글자 입력시 입력안됨.
	function validate(field) { 
		var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" 
		var ok = "yes"; 
		var temp; 
		for (var i=0; i<field.value.length; i++) { 
			temp = "" + field.value.substring(i, i+1); 
			if (valid.indexOf(temp) == "-1") ok = "no"; 
		} 
		if (ok == "no") { 
			alert("숫자와 영문만 입력할 수 있습니다!"); 
			field.focus(); 
			field.select(); 
		}
	}
	
	// 영문만 가능하도록
	function onlyEng(name){
		flag = false;
		if((event.keyCode >= 65) && (event.keyCode <= 90)){
			//영문
			flag = true;
		}else if((event.keyCode == 46) || (event.keyCode == 8) || (event.keyCode == 27) || (event.keyCode == 116)){
			//delete, backspace, esc, f5
			flag = true;
		}else if((event.keyCode == 9) || (event.keyCode == 37) || (event.keyCode == 39) || (event.keyCode == 35) || (event.keyCode == 36) || (event.keyCode == 38) || (event.keyCode == 40)){
			//tab, <-, -> , home, end, 위, 아
			flag = true;
		}else if((event.keyCode == 16) || (event.keyCode == 17) || (event.keyCode == 18) || (event.keyCode == 20) || (event.keyCode == 25)){
			//shift, Lctrl, Lalt, caps lock, Rctrl
			flag = true;
		}else{
			alert("영문만 사용하실 수 있습니다.");
			name.value="";
			name.focus();
			flag = false;
		}
		event.returnValue=flag;
	}
	
	function onlyEng1(objValue, strName){
		var tmp = objValue;
		
		for (i = 0; i < tmp.length; i++) {
			if (tmp.charAt(i) >= 'a' && tmp.charAt(i) <= 'z')
				continue;
			else if (tmp.charAt(i) >= 'A' && tmp.charAt(i) <= 'Z')
				continue;
			else if (tmp.charAt(i) == '_' || tmp.charAt(i) == '-')
				continue;
			else if (tmp.charAt(i) == ' ')
				continue;
			else {
				alert(strName + "은(는) 영문만 사용하실 수 있습니다.");
				return false;
			}
		}
		return true;
	}
	
	
	//한글만가능하도록
	function onlyKor(){
		//alert(event.keyCode);
		flag = false;
		if((event.keyCode >= 48) && (event.keyCode <= 57) || (event.keyCode >= 96) && (event.keyCode <= 105)){
			//숫자
			flag = false;
		}else if((event.keyCode >= 65) && (event.keyCode <= 90)){
			//영문
			flag = false;
		}else if((event.keyCode >= 186) && (event.keyCode <= 192) || (event.keyCode >= 219) && (event.keyCode <= 222)){
			//특수문자~_+|}{:">?
			flag = false;
		}else if((event.keyCode >= 110) && (event.keyCode <= 111) || (event.keyCode >= 106) && (event.keyCode <= 109)){
			//특수문자/*-+
			flag = false;
		}else if((event.keyCode == 46) || (event.keyCode == 8)){
			//delete, backspace
			flag = true;
		}else if((event.keyCode == 9) || (event.keyCode == 37) || (event.keyCode == 39)){
			//tab, <-, ->
			flag = true;
		}else{
			flag = true;
		}
		event.returnValue=flag;
	}
	
	//인자의 val과 같은 오브젝트 checked 
	function setCheckedValue(obj, val) {
	    
	    for ( i=0; i<obj.length; i++ )  {
	        if ( obj[i].value == val )  {
	            obj[i].checked = true;
	            break;
	        }
	    }
	}
	
	//인자의 val과 같은 오브젝트 checked 
	function setCheckedValueName(obj, name) {
	    
	    for ( i=0; i<obj.length; i++ )  {
	        if ( obj[i].name == name )  {
	            obj[i].checked = true;
	            break;
	        }
	    }
	}
	
	//배열의 공통코드명에 해당하는 코드 찾기
	function findArrCode(arrCd, arrNm, name) {
	    var retValue = "";
	    for ( i=0; i<arrNm.length; i++ )  {
	        	
	        if ( arrNm[i] == name )  {
	            retValue = arrCd[i];
	            break;
	        }
	    }
	    
	    return retValue;
	}
	
	//라디오 버튼의 체크된 값 알아오기
	function getRadioCheckedValue(obj) {
	    var checkedValue = "";
	    for ( i=0; i<obj.length; i++ )  {
	        if ( obj[i].checked == true && obj[i].disabled != true )  {
	            checkedValue = obj[i].value;
	            break;
	        }
	    }
	    return checkedValue;
	}
	
	//체크박스에 체크된 값 알아오기 콤마로구분
	function getCheckboxCheckedValue(obj) {
	    var checkedValue = "";
	    
	    try {
	   		if(obj.length == undefined) {
	   			 if ( obj.checked == true ) {
	   			 	checkedValue = obj.value;
	   			 }

	   		} else {
			    for ( i=0; i<obj.length; i++ )  {
			        if ( obj[i].checked == true )  {
						if (checkedValue.length>0){
							checkedValue = checkedValue+","+obj[i].value;
						}else{
							checkedValue = obj[i].value;
						}
			
			        }
			    }
			}
		} catch(err) {
			checkedValue = "";
		}
		 
	    return checkedValue;
	}
	
	
	/**
	 * 입력값이 NULL인지 체크
	 */
	function movePgae(obj, target, action) {
	    obj.target = target;
	    obj.action = action;
	    obj.submit();
	}
	
	
	/**
	 * 입력값이 NULL인지 체크
	 */
	function isNull(input) {
	    if (input.value == null || input.value == "") {
	        return true;
	    }
	    return false;
	}
	
	/**
	 * 입력값에 스페이스 이외의 의미있는 값이 있는지 체크
	 */
	function isEmpty(input) {
	    if (input.value == null || input.value.replace(/ /gi,"") == "") {
	        return true;
	    }
	    return false;
	}
	
	/**
	 * 입력값에 특정 문자(chars)가 있는지 체크
	 * 특정 문자를 허용하지 않으려 할 때 사용
	 * ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
	 *         alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
	 *     }
	 */
	function containsChars(input,chars) {
	    for (var inx = 0; inx < input.value.length; inx++) {
	       if (chars.indexOf(input.value.charAt(inx)) != -1)
	           return true;
	    }
	    return false;
	}
	
	/**
	 * 입력값이 특정 문자(chars)만으로 되어있는지 체크
	 * 특정 문자만 허용하려 할 때 사용
	 * ex) if (!containsCharsOnly(form.blood,"ABO")) {
	 *         alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
	 *     }
	 */
	function containsCharsOnly(input,chars) {
	    for (var inx = 0; inx < input.length; inx++) {
	       if (chars.indexOf(input.charAt(inx)) == -1)
	           return false;
	    }
	    return true;
	}
	
	/**
	 * 문자가 들어있는지 체크
	 * 특정 문자를 사용불가할때
	 * ex) if (containsChars(form.blood,"ABO")) {
	 *         alert("혈액형 필드에는 A,B,O는 사용불가 합니다.");
	 *     }
	 */
	function containsChars(input,chars) {
	    for (var inx = 0; inx < input.value.length; inx++) {
	       if (chars.indexOf(input.value.charAt(inx)) > -1)
	           return true;
	    }
	    return false;
	}
	
	/**
	 * 입력값이 알파벳인지 체크
	 * 아래 isAlphabet() 부터 isNumComma()까지의 메소드가
	 * 자주 쓰이는 경우에는 var chars 변수를
	 * global 변수로 선언하고 사용하도록 한다.
	 * ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	 *     var lowercase = "abcdefghijklmnopqrstuvwxyz";
	 *     var number    = "0123456789";
	 *     function isAlphaNum(input) {
	 *         var chars = uppercase + lowercase + number;
	 *         return containsCharsOnly(input,chars);
	 *     }
	 */
	function isAlphabet(input) {
	    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	    return containsCharsOnly(input,chars);
	}
	
	/**
	 * 입력값이 알파벳 대문자인지 체크
	 */
	function isUpperCase(input) {
	    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	    return containsCharsOnly(input,chars);
	}
	
	/**
	 * 입력값이 알파벳 소문자인지 체크
	 */
	function isLowerCase(input) {
	    var chars = "abcdefghijklmnopqrstuvwxyz";
	    return containsCharsOnly(input,chars);
	}
	
	/**
	 * 입력값에 숫자만 있는지 체크
	 */
	function isNumber(input) {
	    var chars = "0123456789";
	    return containsCharsOnly(input,chars);
	}
	
	/**
	 * 숫자만 입력 받도록..
	 */
	function jsOnlyNumberKey() {
    if ( event != null) {
      if ( event.keyCode < 48 || event.keyCode > 57 ) {
        event.returnValue = false;
        alert("숫자만 입력하실 수 있습니다.");
      }
    }
   }
	/**
	 * 숫자만 입력 받도록..영문
	 */
	function jsOnlyNumberKey_en() {
	    if ( event != null) {
	      if ( event.keyCode < 48 || event.keyCode > 57 ) {
	        event.returnValue = false;
	        alert("Please fill up all fields.");
	      }
	    }
	   }
	/**
	 * 입력값에 특정 문자(chars)가 있는지 체크
	 * 특정 문자를 허용하지 않으려 할 때 사용
	 * ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
	 *         alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
	 *     }
	 */
	function isNumberCnt(input) {
		var chars = "0123456789.";
		var temp = "";
	    for (var inx = 0; inx < input.value.length; inx++) {
	       if (chars.indexOf(input.value.charAt(inx)) != -1){
	           temp = temp + input.value.charAt(inx);
	       }
	    }
	    
	    if(temp == "") temp = "0";
	    input.value = temp;
	}
	
	/**
	 * 입력값이 알파벳,숫자로 되어있는지 체크
	 */
	function isAlphaNum(input) {
	    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	    return containsCharsOnly(input,chars);
	}
	
	/**
	 * 입력값이 알파벳,숫자,:,/,~,. 로 되어있는지 체크
	 */
	function isAlphaNumPlus(input) {
	    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789:/~.";
	    return containsCharsOnly(input,chars);
	}
	
	/**
	 * 입력값이 숫자,대시(-)로 되어있는지 체크
	 */
	function isNumDash(input) {
	    var chars = "-0123456789";
	    return containsCharsOnly(input,chars);
	}
	
	/**
	 * 입력값이 숫자,콤마(,)로 되어있는지 체크
	 */
	function isNumComma(input) {
	    var chars = ",0123456789";
	    return containsCharsOnly(input,chars);
	}
	
	/**
	 * 입력값에서 콤마를 없앤다.
	 */
	function removeComma(input) {
	    return input.value.replace(/,/gi,"");
	}
	
	/**
	 * 입력값이 사용자가 정의한 포맷 형식인지 체크
	 * 자세한 format 형식은 자바스크립트의 'regular expression'을 참조
	 */
	function isValidFormat(input,format) {
	    if (input.value.search(format) != -1) {
	        return true; //올바른 포맷 형식
	    }
	    return false;
	}
	
	/**
	 * 입력값이 사용자가 정의한 포맷 형식인지 체크
	 * 자세한 format 형식은 자바스크립트의 'regular expression'을 참조
	 */
	function isValidFormat1(input,format) {
	    if (input.search(format) != -1) {
	        return true; //올바른 포맷 형식
	    }
	    return false;
	}
	
	/**
	 * 입력값이 이메일 형식인지 체크
	 */
	function isValidEmail(input) {
	//  var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
	   var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
	   return isValidFormat1(input,format);
	}
	
	/**
	 * 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
	 */
	function isValidPhone(input) {
	    var format = /^(\d+)-(\d+)-(\d+)$/;
	    return isValidFormat(input,format);
	}
	
	/**
	 * 선택된 라디오버튼이 있는지 체크
	 */
	function hasCheckedRadio(input) {
	    if (input.length > 1) {
	        for (var inx = 0; inx < input.length; inx++) {
	            if (input[inx].checked) return true;
	        }
	    } else {
	        if (input.checked) return true;
	    }
	    return false;
	}
	
	
		/**
	 * 선택된 라디오버튼이 있는지 체크
	 */
	function hasRadioChecked(input, strName) {
	
	    if (input.length > 1) {
	        for (var inx = 0; inx < input.length; inx++) {
	            if (input[inx].checked) return true;
	        }
	    } else {
	        if (input.checked) return true;
	    }
	    	msg = "[" + strName + "] : 선택해주십시오!";
			alert(msg);
	    return false;
	}
	
	/**
	 * 선택된 라디오버튼이 있는지 체크
	 */
	function hasRadioChecked_en(input, strName) {
	
	    if (input.length > 1) {
	        for (var inx = 0; inx < input.length; inx++) {
	            if (input[inx].checked) return true;
	        }
	    } else {
	        if (input.checked) return true;
	    }
	    	msg = "Please fill up all fields.";
			alert(msg);
	    return false;
	}
	/**
	 * 선택된 체크박스가 있는지 체크
	 */
	function hasCheckedBox(input) {
	    return hasCheckedRadio(input);
	}
	
	/**
	 * 입력값의 바이트 길이를 리턴
	 * Author : Wonyoung Lee
	 */
	function getByteLength(input) {
	    var byteLength = 0;
	    for (var inx = 0; inx < input.value.length; inx++) {
	        var oneChar = escape(input.value.charAt(inx));
	        if ( oneChar.length == 1 ) {
	            byteLength ++;
	        } else if (oneChar.indexOf("%u") != -1) {
	            byteLength += 2;
	        } else if (oneChar.indexOf("%") != -1) {
	            byteLength += oneChar.length/3;
	        }
	    }
	    return byteLength;
	}
	
	/**
	 * 입력한 값이 날짜유형인지 체크
	 */
	function checkDateType(v_date, flag)
	{
	    return true;
	}
	
	/**
	 * 유효한 날짜인지 체크
	 */
	function checkDate(v_year,v_month,v_day )
	{
		var err=0
		if ( v_year.length != 4) err=1
		if ( v_month.length != 1 &&  v_month.length !=  2 ) err=1
		if ( v_day.length != 1  &&  v_day.length !=  2) err=1
	
	
		r_year = eval(v_year) ;
		r_month = eval(v_month);
		r_day = eval(v_day)  ;
	
		if (r_month<1 || r_month>12) err = 1
		if (r_day<1 || r_day>31) err = 1
		if (r_year<0 ) err = 1
	
	
		if (r_month==4 || r_month==6 || r_month==9 || r_month==11){
			if (r_day==31) err=1
		}
	
		// 2,윤년체크
		if (r_month==2){
			var g=parseInt(r_year/4)
	
			if (isNaN(g)) {
				err=1
			}
			if (r_day>29) err=1
			if (r_day==29 && ((r_year/4)!=parseInt(r_year/4))) err=1
		}
	
		if (err==1)
		{
			return false
		}
		else
		{
	   return true;
		}
	}
	
	
	//사업자등록번호체크
	function isRegNumber(input)
	{
	    var num= input.value.substring(0,3) + input.value.substring(4,6) + input.value.substring(7,12);
	
	    var w_c,w_e,w_f,w_tot
	    w_c=num.charAt(8)*5       // 9번째자리의 숫자에 5를 곱한다.
	    w_e=parseInt((w_c/10),10) // 10으로 나누고 10진수 형태의 숫자형으로 만든당..나눈몫
	    w_f=w_c % 10              // 10으로 나눈 나머지....
	    w_tot=num.charAt(0)*1
	    w_tot+=num.charAt(1)*3
	    w_tot+=num.charAt(2)*7
	    w_tot+=num.charAt(3)*1
	    w_tot+=num.charAt(4)*3
	    w_tot+=num.charAt(5)*7
	    w_tot+=num.charAt(6)*1
	    w_tot+=num.charAt(7)*3
	    w_tot+=num.charAt(9)*1
	    w_tot+=(w_e+w_f)
	
		if ((w_tot % 10))         // 10으로 나누어 지면 false를 그렇지 않으면 true를 반환합니당..
	    {
	       return false;
	    }
	    else
	    {
	      return true;
	    }
	}
	
	
	// desc     : 주민번호 유효성 체크한다.
	// input    : [jumin1, jumin2]
	// return   : boolean
	function chkJumin(jumin1, jumin2) 
	{
		var	i;
		var IDtot = 0;

		for (i=0 ; i<=5 ; i++)
			IDtot = IDtot + ((i%8+2) * parseInt(jumin1.substring(i,i+1))) ;
		for (i=6 ; i<=11 ; i++)
			IDtot = IDtot + ((i%8+2) * parseInt(jumin2.substring(i-6,i-5))) ;

		IDtot = 11 - (IDtot % 11);
		IDtot = IDtot % 10;

		if (IDtot != jumin2.substring(6,7)) {
			msg = "주민등록번호가 유효하지 않습니다!\r\n다시 입력하십시오!";
			alert(msg);
			return false;
		}
		return true;
	}

	//주민등록번호 체크
	function regitNumberCheck(regitNum1, regitNum2)
	{
	    errfound = false;
	    var str_jumin1 = regitNum1.value;
	    var str_jumin2 = regitNum2.value;
	    var checkImg='';
	
	
	    var i3=0
	    for (var i=0;i<str_jumin1.length;i++)
	    {
	        var ch1 = str_jumin1.substring(i,i+1);
	        if (ch1<'0' || ch1>'9') { i3=i3+1 }
	    }
	    if ((str_jumin1 == '') || ( i3 != 0 ))
	    {
	        error(regitNum1,'없는 주민등록번호 입니다. 다시 입력해 주세요!');
	        return false;
	    }
	
	
	
	    var i4=0
	    for (var i=0;i<str_jumin2.length;i++)
	    {
	        var ch1 = str_jumin2.substring(i,i+1);
	        if (ch1<'0' || ch1>'9') { i4=i4+1 }
	    }
	    if ((str_jumin2 == '') || ( i4 != 0 ))
	    {
	      error(regitNum2,'없는 주민등록번호 입니다. 다시 입력해 주세요!');
	        return false;
	    }
	
	    if(str_jumin1.substring(0,1) < 4)
	    {
	        error(regitNum2,'없는 주민등록번호 입니다. 다시 입력해 주세요!');
	        return false;
	    }
	
	    if(str_jumin2.substring(0,1) > 2)
	    {
	        error(regitNum2,'없는 주민등록번호 입니다. 다시 입력해 주세요!');
	        return false;
	    }
	
	    if((str_jumin1.length > 7) || (str_jumin2.length > 8))
	    {
	        error(regitNum2,'없는 주민등록번호 입니다. 다시 입력해 주세요!');
	        return false;
	    }
	
	    if ((str_jumin1 == '72') || ( str_jumin2 == '18'))
	    {
	        error(regitNum1,'없는 주민등록번호 입니다. 다시 입력해 주세요!');
	        return false;
	    }
	
	    var f1=str_jumin1.substring(0,1)
	    var f2=str_jumin1.substring(1,2)
	    var f3=str_jumin1.substring(2,3)
	    var f4=str_jumin1.substring(3,4)
	    var f5=str_jumin1.substring(4,5)
	    var f6=str_jumin1.substring(5,6)
	    var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7
	    var l1=str_jumin2.substring(0,1)
	    var l2=str_jumin2.substring(1,2)
	    var l3=str_jumin2.substring(2,3)
	    var l4=str_jumin2.substring(3,4)
	    var l5=str_jumin2.substring(4,5)
	    var l6=str_jumin2.substring(5,6)
	    var l7=str_jumin2.substring(6,7)
	    hap=hap+l1*8+l2*9+l3*2+l4*3+l5*4+l6*5
	    hap=hap%11
	    hap=11-hap
	    hap=hap%10
	    if (hap != l7)
	    {
	    	error(regitNum1,'없는 주민등록번호 입니다. 다시 입력해 주세요!');
	        return false;
	    }
	
	
	    var i9=0
	
	    return true;
	    //if (!errfound)
	    //        submit();
	}
	
	
	// 주민등록번호를 한줄에 입력받았을경우 ' - '없이
	// 예) 7911020000000 인자값 문자로 줄것
	function regitNumberCheck2(juminNumber)
	{
	    errfound = false;
	    var str_jumin1 = juminNumber.substring(0,6);
	    var str_jumin2 = juminNumber.substring(6,juminNumber.length);
	
	    var checkImg='';
	
	    var i3=0
	    for (var i=0;i<str_jumin1.length;i++)
	    {
	        var ch1 = str_jumin1.substring(i,i+1);
	        if (ch1<'0' || ch1>'9') { i3=i3+1 }
	    }
	    if ((str_jumin1 == '') || ( i3 != 0 ))
	    {
	        //alert(str_jumin1 + "-" + str_jumin2 + ' 은 없는 주민등록번호 입니다. 다시 입력해 주세요!!');
	        return false;
	    }
	
	
	
	    var i4=0
	    for (var i=0;i<str_jumin2.length;i++)
	    {
	        var ch1 = str_jumin2.substring(i,i+1);
	        if (ch1<'0' || ch1>'9') { i4=i4+1 }
	    }
	    if ((str_jumin2 == '') || ( i4 != 0 ))
	    {
	        //alert(str_jumin1 + "-" + str_jumin2 + ' 은 없는 주민등록번호 입니다. 다시 입력해 주세요!!');
	        return false;
	    }
	
	    /*if(str_jumin1.substring(0,1) < 4)
	    {
	        alert(str_jumin1 + "-" + str_jumin2 + ' 은 없는 주민등록번호 입니다. 다시 입력해 주세요!!');
	        return false;
	    }*/
	
	    if(str_jumin2.substring(0,1) > 4)
	    {
	        //alert(str_jumin1 + "-" + str_jumin2 + ' 은 없는 주민등록번호 입니다. 다시 입력해 주세요!!');
	        return false;
	    }
	
	    if((str_jumin1.length > 7) || (str_jumin2.length > 8))
	    {
	        //alert(str_jumin1 + "-" + str_jumin2 + ' 은 없는 주민등록번호 입니다. 다시 입력해 주세요!!');
	        return false;
	    }
	
	    if ((str_jumin1 == '72') || ( str_jumin2 == '18'))
	    {
	        //alert(str_jumin1 + "-" + str_jumin2 + ' 은 없는 주민등록번호 입니다. 다시 입력해 주세요!!');
	        return false;
	    }
	
	    var f1=str_jumin1.substring(0,1)
	    var f2=str_jumin1.substring(1,2)
	    var f3=str_jumin1.substring(2,3)
	    var f4=str_jumin1.substring(3,4)
	    var f5=str_jumin1.substring(4,5)
	    var f6=str_jumin1.substring(5,6)
	    var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7
	    var l1=str_jumin2.substring(0,1)
	    var l2=str_jumin2.substring(1,2)
	    var l3=str_jumin2.substring(2,3)
	    var l4=str_jumin2.substring(3,4)
	    var l5=str_jumin2.substring(4,5)
	    var l6=str_jumin2.substring(5,6)
	    var l7=str_jumin2.substring(6,7)
	    hap=hap+l1*8+l2*9+l3*2+l4*3+l5*4+l6*5
	    hap=hap%11
	    hap=11-hap
	    hap=hap%10
	    if (hap != l7)
	    {
	        //alert(str_jumin1 + "-" + str_jumin2 + ' 은 없는 주민등록번호 입니다. 다시 입력해 주세요!!');
	        return false;
	    }
	
	
	    var i9=0
	
	    return true;
	    //if (!errfound)
	    //        submit();
	}
	
	//외국인 주민등록번호 체크
	function isRegNo_fgnno(fgnno)
	{
		var sum=0;
		var odd=0;
		var msg="주민등록번호가 유효하지 않습니다!\r\n다시 입력하십시오!";
		buf = new Array(13);
		
		for(i=0; i<13; i++) { buf[i]=parseInt(fgnno.charAt(i)); }
		odd = buf[7]*10 + buf[8];
		if(odd%2 != 0) { 
			alert(msg);
			return false; 
		}
		if( (buf[11]!=6) && (buf[11]!=7) && (buf[11]!=8) && (buf[11]!=9) )
		{
			alert(msg);
			return false;
		}
		multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
		for(i=0, sum=0; i<12; i++) { sum += (buf[i] *= multipliers[i]); }
		sum = 11 - (sum%11);
		if(sum >= 10) { sum -= 10; }
		sum += 2;
		if(sum >= 10) { sum -= 10; }
		if(sum != buf[12]) { 
			alert(msg);
			return false 
		}
		return true;
	}
	
	function error (elem,text) {
	    if (errfound) return;
	    window.alert(text);
	    elem.select();
	    elem.focus();
	    errfound=true;
	}
	
	function ck_tag(text) {
		var tmp  = /</gi;
		var temp = text.replace(tmp,"%lt;");
		return temp;
	}
/**------------------------------------------------------------------------------------------**/




	/*===============================================*/
	// 일반 텍스트 확인
	/*===============================================*/
	// 공백 존재여부 확인
	function check_TextBlank(strName,objText,strContent){
	
		if (char_trim(objText.value) == ""){
			alert(strName + "을(를) 입력하십시오!" + "\n\n" + strContent);
			objText.focus();
			return false;
		}
		return true;
	}
	/*===============================================*/
	// 텍스트 길이 확인
	/*===============================================*/
	function check_length(sourceOBJ,targetOBJ){
		var str = sourceOBJ.value;
		targetOBJ.value = str.length;
	}
	/*===============================================*/
	// 공백 없애기
	//
	function char_trim(str){
	
		if (str == 0){
			result = str;
		}
		else{
			v_len = str.length;
			result="";
			for (var i=0; i<v_len; i++){
				schar = str.charAt(i);
				if (schar != " ") {
					result = result + schar;
				}
	
			}
		}
		return result;
	}
	
	
	//문자열에 공백이 포함되었는지 검사하는 함수
	function ckBlank(getValue)
	{
	    var temp = "";
	    for(var i = 0 ; i < getValue.length ; i++)
	    {
	        temp = getValue.substring(i,i+1);
	        if(temp == " ") return true;
	    }
	    return false;
	}

	//문자열에 특수문자가 포함되었는지 검사하는 함수
	function ckFieldStr(getValue)
	{
	    var temp = 0;
	    for(var i = 0 ; i < getValue.length ; i++)
	    {
	        temp = getValue.substring(i,i+1).charCodeAt();
	        if(((temp < 97 || temp > 122) && (temp < 48 || temp > 57)) && (temp != 95))
	        {
	            return true;
	        }
	    }
	    return false;
	}



	// desc     : 창이름으로 새창
	function openWinByName(uri,name,width,height,scroll)
	{
		var left = (screen.width-width)/2;
		var top = (screen.height-height)/2;
		newWin=window.open(uri,name,'width='+width+',height='+height+',left='+left+',top='+top+', scrollbars='+scroll+', toolbar=no');
		newWin.focus();
	}


	function openWinByFullScreen(uri, name, scroll) {

		var left = (screen.width)/2;
		var top = (screen.height)/2;
		newWin=window.open(uri, name,'left='+left+',top='+top+', scrollbars=auto, fullscreen=yes, toolbar=no, scrollbars='+scroll);
		newWin.focus();
	}


	// desc     : 문구 선택시 라디오버튼까지 선택
	// input    : [obj]
	// return   : boolean
	function captionclick(obj) {
		if ("INPUT" == event.srcElement.tagName)
			event.cancelBubble = true;
		else {
			obj.children[0].click();
			return false;
		}
	}

	/* 필수 길이 체크 */
	function essentialityLength(strValue, num, strMsg)
	{
		var cnt  = strValue.bytes();
		
		if ( cnt !=  num ) {
			msg = "[" + strMsg + "] : " + num + "자리를 입력하십시오!";
			alert(msg);
			return false;
		}

		return true;
	}

	/* 전화번호 숫자/- 허용 */
	function checkPhoneNumber(strValue, num, strMsg)
	{
		var chars = "0123456789-";
		var rvalue = "";

		for (var inx = 0; inx < strValue.length; inx++) {
		   if (chars.indexOf(strValue.charAt(inx)) == -1) {
			   alert(strMsg + "는 숫자와 '-'만 입력할 수 있습니다!" );
			   return false;
		   }
		}

		if ( strValue.length != 0 && strValue.length > num ) {
			msg = "[" + strValue + "]를 " + num + "자리 이하로 입력하십시오!";
			alert(msg);
			return false;
		}

		return true;
	}

	/* 숫자/, 허용 */
	function checkCommaNumber(strValue, num, strMsg)
	{
		if (!isNumComma(strValue)) {
		   alert(strMsg + "는 숫자와 ','만 입력할 수 있습니다!" );
		   return false;
	    }
	    
		if ( num > 0 ) {
			if ( strValue.length != 0 && strValue.length > num ) {
				msg = "[" + strValue + "]를 " + num + "자리 이하로 입력하십시오!";
				alert(msg);
				return false;
			}
		}

		return true;
	}


	// 숫자 체크
	function chkNumber(){
	   if((event.keyCode < 48)||(event.keyCode > 57))
	      event.returnValue = false;
	}

	// desc  : 문자열의 길이가 원하는 길이보다 작을때 부족한 길이만큼 특정 문자를 더하여 반환하는 함
	// input  : [ strValue, strLength, val ]
	// return : string
	function intToString( strValue, strLength, val )
	{
		var nsize = 0;
		var param = "";

		nsize = GetLength(strValue);

		if ( nsize < strLength ) {
			for (var i=0; i<strLength-nsize ;i++ )
			{
				param += val;
			}
		}

		var result = param+strValue;

		return result;
	}

	// Email Check
	function EmailCheck(strEmail) {
		if(strEmail == "") return true;
		var regDoNot = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
		var regMust = /^[a-zA-Z0-9\-\.\_]+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3})$/;

		if ( !regDoNot.test(strEmail) && regMust.test(strEmail) ) {
			return true;
		} else {
			msg = "이메일 주소를 확인해 주십시오!";
			alert(msg);
			return false;
		}
	}

	// desc  : 문자 뒤의 공백문자를 제거하는 함수
	// input  : string
	// return : string
	function rTrim ( str ) {
		str = str + "";
		var len = str.length;

		for(var i = (len - 1); (str.charAt(i) == ' '); i--);
		str = str.substring(0, i + 1);

		return str;
	}

	// desc  : 문자 맨 앞의 공백문자를 제거하는 함수
	// input  : string
	// return : string
	function lTrim ( str ) {
		var len = str.length;
		var i = 0;

		for(i = 0; str.charAt(i) == ' '; i++);
		str = str.substring(i, len);

		return str;
	}

	// desc  : 문자 앞뒤의 공백문자를 제거하는 함수
	// input  : string
	// return : string
	function Trim( strValue ) {
	 		strValue = lTrim(rTrim(strValue));
	 		return strValue;
	}

String.prototype.trim = function(Obj) {
	var returnValue = this.replace(/(^ *)|( *$)/g, "");

	if(Obj)
		Obj.value = returnValue;

	return returnValue;
}
	// desc     : 숫자만 허용하기
	// input    : [str, strName]
	// return   : boolean
	function onlyNumber(str, strName)
	{
		var regMust = /[^_(0-9)-]/;

		if ( regMust.test(str) ) {
			msg = "[" + strName + "] : 숫자만 입력하실 수 있습니다!\r\n\r\n다시 한번 확인하십시오!";
			alert(msg);
			return false;
		}
		return true;
	}
	
	// desc     : 숫자, 소숫점 허용
	// input    : [str, strName]
	// return   : boolean
	function onlyNumberPoint(str, strName)
	{
		var regMust = /[^_(0-9)\.,]/;
		if ( regMust.test(str) ) {
			msg = "[" + strName + "] : 숫자만 입력하실 수 있습니다!\r\n\r\n다시 한번 확인하십시오!";
			alert(msg);
			return false;
		}
		return true;
	}
	

	// desc     : 숫자로만 된 스트링 허용 안함
	// input    : [str, strName]
	// return   : boolean
	function notOnlyNumber(str, strName)
	{
		var regMust = /[^_(0-9)]/;

		if ( !regMust.test(str) ) {
			msg = "[" + strName + "] : 숫자만 입력하실 수 없습니다!\r\n\r\n다시 한번 확인하십시오!";
			alert(msg);
			return false;
		}
		return true;
	}

	// desc     : 첫글자를 숫자로만 된 스트링 허용 안함
	// input    : [str, strName]
	// return   : boolean
	function firstnotOnlyNumber(str, strName)
	{
		var regMust = /[^_(0-9)]/;

		if ( !regMust.test(str.substring(0,1)) ) {
			msg = "[" + strName + "] : 첫글자는 숫자로 입력하실 수 없습니다!\r\n\r\n다시 한번 확인하십시오!";
			alert(msg);
			return false;
		}
		return true;
	}	

	// desc     : 첫글자를 영문으로만 된 스트링 허용
	// input    : [str, strName]
	// return   : boolean
	function firstOnlyEng(str, strName)
	{
		var regMust = /[^(a-zA-Z)]/;

		if ( regMust.test(str.substring(0,1)) ) {
			msg = "[" + strName + "] : 첫글자는 영문만 입력하실 수 있습니다!\r\n\r\n다시 한번 확인하십시오!";
			alert(msg);
			return false;
		}
		return true;
	}


	// desc     : 입력여부 체크하기
	// input    : [str, strName]
	// return   : boolean
	function EmptyCheck( strValue, strName ) {
		var strlength = char_trim(strValue).length;

		if ( strlength == 0 ) {
			msg = "[" + strName + "] : 입력해주십시오!";
			alert(msg);
			return false;
		} else
			return true;
	}

	// desc     : 선택여부 체크하기
	// input    : [str, strName]
	// return   : boolean
	function SelEmptyCheck( strValue, strName ) {
		var strlength = strValue.length;

		if ( strlength == 0 ) {
			msg = "[" + strName + "] : 선택해주십시오!";
			alert(msg);
			return false;
		} else
			return true;
	}
	

	// desc     : 선택여부 체크하기
	// input    : [str, strName]
	// return   : boolean
	function SelEmptyCheck_en( strValue, strName ) {
		var strlength = strValue.length;

		if ( strlength == 0 ) {
			msg = "Please fill up all fields.";
			alert(msg);
			return false;
		} else
			return true;
	}
	
	// desc     : 문자열의 길이를 체크하여 절삭후 문자열 리턴
	// input    : [obj,maxlen]
	// return   : String
	function CheckStrLenCut(obj,maxlen) { 
		 var temp; //들어오는 문자값... 
		 var msglen; 
		 
		 msglen = maxlen*2; 
		 // var value= document.frmNotice.note.value; 
		 var value = obj.value.bytes();
		 // l = document.frmNotice.note.value.length;
		 l = obj.value.length;
		if(obj.value.bytes()>maxlen){
			
		}
				
		 tmpstr = "" ; 
		
		 if (l == 0) { 
		  value = maxlen*2; 
		 } else  { 
		  for(k=0;k<l;k++) { 
		   temp =value.charAt(k); 
	 
		   if (escape(temp).length > 4) 
		    msglen -= 2; 
		   else 
		    msglen--; 
		
		   if(msglen < 0)  { 
		    // document.frmNotice.note.value= tmpstr;
		    obj.value = tmpstr; 
		    break; 
		   } else { 
		    tmpstr += temp; 
		   } 
		  }//for 
		 } 
		 return tmpstr;
	 }

	// desc     : 문자열의 최저, 최대 길이를 체크하여 결과를 리턴한다.
	// input    : [strValue, strName, lowLength, highLength]
	// return   : boolean
	function LengthCheck( strValue, strName, lowLength, highLength )
	{
		var nsize = 0;
		nsize = GetLength(Trim(strValue));
		
		if ( lowLength > 0 && nsize == 0 ) {
			msg = "[" + strName + "] : 입력해주십시오!";
			alert(msg);
			return false;
		}

		if ( nsize < lowLength || nsize > highLength ) {
			if ( lowLength == highLength ) {
				msg = "[" + strName + "] : " + lowLength + "자를 입력해주십시오!\r\n\r\n (주의: 한글 1자는 2자로 계산함.)";
				alert(msg);
				return false;
			} else {
				msg = "[" + strName + "] : " + lowLength + " - " + highLength + " 자를  입력해주십시오!\r\n\r\n (주의: 한글 1자는 2자로 계산함.)";
				alert(msg);
				return false;
			}
		}
		else
			return true;
	}
	// desc     : 문자열의 최저, 최대 길이를 체크하여 결과를 리턴한다.(영문)
	// input    : [strValue, strName, lowLength, highLength]
	// return   : boolean
	function LengthCheck_en( strValue, strName, lowLength, highLength )
	{
		var nsize = 0;
		nsize = GetLength(Trim(strValue));
		
		if ( lowLength > 0 && nsize == 0 ) {
			msg = "Please fill up all fields.";
			alert(msg);
			return false;
		}

		if ( nsize < lowLength || nsize > highLength ) {
			if ( lowLength == highLength ) {
				msg = "Please fill up all fields.";
				alert(msg);
				return false;
			} else {
				msg = "Please fill up all fields.";
				alert(msg);
				return false;
			}
		}
		else
			return true;
	}
	function LengthCheck2_en( strValue, strName, lowLength, highLength )
	{
		var nsize = 0;
		nsize = GetLength(Trim(strValue));
		if ( lowLength > 0 && nsize == 0 ) {
			msg = "Please fill up all fields.";
			alert(msg);
			return false;
		}

		if ( nsize < lowLength || nsize > highLength ) {
			if ( lowLength == highLength ) {
				msg = "Please fill up all fields.";
				alert(msg);
				return false;
			} else {
				msg = "Please fill up all fields.";
				alert(msg);
				return false;
			}
		}
		else
			return true;
	}

	function LengthCheck2( strValue, strName, lowLength, highLength )
	{
		var nsize = 0;
		nsize = GetLength(Trim(strValue));
		if ( lowLength > 0 && nsize == 0 ) {
			msg = "[" + strName + "] : 입력해주십시오!";
			alert(msg);
			return false;
		}

		if ( nsize < lowLength || nsize > highLength ) {
			if ( lowLength == highLength ) {
				msg = "[" + strName + "] : " + lowLength + "자를 입력해주십시오!";
				alert(msg);
				return false;
			} else {
				msg = "[" + strName + "] : " + lowLength + " - " + highLength + " 자를  입력해주십시오!";
				alert(msg);
				return false;
			}
		}
		else
			return true;
	}
	
	// desc     : 문자열의 길이를 리턴한다.
	// input    : [strValue]
	// return   : int
	function GetLength( strValue )
	{
		var nsize = 0;
		var chrOrig;
		var charEscaped;

		for( var intinx = 0; intinx <= strValue.length -1 ; intinx++ ){
			chrOrig = strValue.substring(intinx,intinx+1);
			chrEscaped = escape(chrOrig);
			if ( chrEscaped.substring(0,2) == "%u" )
				nsize = nsize + 2;
			else
				nsize++;
		}
		return nsize;
	}
	
	

	/**
	title 	: 영문/숫자만 허용
	desc 	: 영문/숫자만 허용하기
	**/
	function onlyEngNumber(str, strName) {
		//var regMust = /[^_(a-zA-Z0-9)]/;
		var regMust = /[^(a-zA-Z0-9)]/;

		if ( regMust.test(str) ) {
			msg = "[" + strName + "] : 영문과 숫자만 입력하실 수 있습니다!\r\n\r\n  다시 한번 확인하십시오!";
			alert(msg);
			return false;
		}
		return true;
	}

	// desc     : 영문소문자/숫자만 허용하기 
	// input    : [str, strName]
	// return   : boolean
	function onlyLowEngNumber(str, strName)
	{
		var regMust = /[^_(a-z0-9)]/;

		if ( regMust.test(str) ) {
			msg = "[" + strName + "] : 영문 소문자와 숫자만 입력하실 수 있습니다!\r\n\r\n다시 한번 확인하십시오!";
			alert(msg);
			return false;
		}
		return true;
	}

	// desc     : 영문 반드시 포함하기 
	// input    : [xObj, sStr]
	// return   : boolean
	function ifChrChk(xObj, sStr)
	{
		var temp;
		var icount;
		icount = 0;
		len = xObj.value.length;
		for(k=0;k<len;k++)
		{
			temp = xObj.value.charAt(k);
			if((temp >= "A" && temp <= "Z") || (temp >= "a" && temp <= "z"))
			{	
				icount++;
			}
		}
	
		if (icount < 1)
		{
			alert(sStr + "는 영문자를 반드시 포함해야 합니다!");
			xObj.focus();
			return false;
		}

		return true;
	}
	
	// desc     : 한글, 특수문자 제한하기 
	// input    : [xObj, sStr]
	// return   : boolean
	function ifKoChrChk(xObj, sStr)
	{	
		var temp;
		var icount;
		icount = 0;
		len = xObj.length;
		for(k=0;k<len;k++)
		{
			temp = xObj.charAt(k);
			if((temp >= "A" && temp <= "Z") || (temp >= "a" && temp <= "z") || (temp == "_") || (temp == "-") || (temp == ".") || (temp >= "0" && temp <= "9"))
			{
			}
			else
			{		
				icount+= 1;
			}
		}
	
		if (icount > 0)
		{
			alert(sStr + "는 한글 또는 특수문자는 사용불가능합니다!");
			//xObj.focus();
			return false;
		}	

		return true;
	}
	
	// desc     : 회원가입시 아이디, 비밀번호 입력 제한 
	// input    : [xObj, sStr]
	// return   : boolean
	function userJoinInputChk(xObj, sStr, lowLength, highLength)
	{	
		var temp;
		var icount = 0;
		var nsize = xObj.length;
		var msg = "";
		
		if ( lowLength > 0 && nsize == 0 ) {
			msg = "[" + sStr + "] : 입력해주십시오!";
			alert(msg);
			return false;
		}
			
		for(k=0;k<nsize;k++)
		{
			temp = xObj.charAt(k);
			if((temp >= "A" && temp <= "Z") || (temp >= "a" && temp <= "z") || (temp == "_") || (temp >= "0" && temp <= "9"))
			{
			}
			else
			{		
				icount+= 1;
			}
		}
	
		if (icount > 0)
		{
			alert("[" + sStr + "] : "  + "한글 또는 특수문자는 사용불가능합니다!");
			//xObj.focus();
			return false;
		}	
		
		if ( nsize < lowLength || nsize > highLength ) {
			if ( lowLength == highLength ) {
				msg = "[" + sStr + "] : " + lowLength + "자를 입력해주십시오!";
				alert(msg);
				return false;
			} else {
				msg = "[" + sStr + "] : " + lowLength + " - " + highLength + " 자를  입력해주십시오!";
				alert(msg);
				return false;
			}
		}

		return true;
	}
	
	/**
	title 	: 사업자 등록번호 체크
	desc 	: 사업자 등록번호 체크하기
	**/
	function check_companynum(saup1,saup2,saup3) {
		 var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1);
		 var bizID = "" + saup1 + saup2 + saup3;
		 var i, Sum=0, c2, remander;

		 for (i=0; i<=7; i++) Sum += checkID[i] * bizID.charAt(i);

		 c2 = "0" + (checkID[8] * bizID.charAt(8));
		 c2 = c2.substring(c2.length - 2, c2.length);

		 Sum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1));

		 remander = (10 - (Sum % 10)) % 10 ;

		 if (Math.floor(bizID.charAt(9)) != remander) {
			  // alert("정확한 사업자 등록번호를 입력하세요");
			  return false;
		 } else{
			return true;
		 }
	}

	/**
	title 	: 체크 박스  전체 선택 /해제
	desc 	: 체크 박스  전체 선택 /해제
	**/
	function CheckAll(obj_this, obj){
		var b_chk = false;
		if (obj_this.checked == true)
			b_chk = true;

		if (obj) {
			if (obj.length) {
				for (var i=0; i <obj.length; i++ ) {
					obj[i].checked = b_chk ;
				}
			} else {
				obj.checked = b_chk;
			}
		} else {
			//alert("선택할 항목이  없습니다.");
		}
	}

	/* 전화번호 숫자/- 허용 */
	function CheckMenuId(strValue, num, strMsg)
	{
		var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-";
		var rvalue = "";

		for (var inx = 0; inx < strValue.length; inx++) {
		   if (chars.indexOf(strValue.charAt(inx)) == -1) {
			   alert(strMsg + "는 영문과 숫자와 '-'만 입력할 수 있습니다!" );
			   return false;
		   }
		}

		if ( strValue.length != 0 && strValue.length > num ) {
			msg = "[" + strValue + "]를 " + num + "자리 이하로 입력하십시오!";
			alert(msg);
			return false;
		}

		return true;
	}

	/* 한글, 영문, 숫자 허용 */
	function CheckMenuName(strValue, strMsg)
	{
		var pattern = new RegExp("[^가-힝\x20a-zA-Z0-9&/'()]", "i");   
		if (pattern.exec(strValue) == null) {
			return true;
		} else {
		    alert("[" + strMsg + "] : 한글과 영문과 숫자와 특수문자(&, /, ', -)만 입력할 수 있습니다!" );
		    return false;
		}
	}
	  
		
	/******************************************
	 * 년월 날짜 체크
	 ******************************************/	
	function yymmCheck(val, len, strName){
		if(val == "") return true;
		//var tmpDate = val.replace(/-/gi,"");
		var tmpDate = val;
		var tmpMM = tmpDate.substring(tmpDate.length-2);
		var msg;
		
		if (!onlyNumber(val, strName)) {
			return false;
		}
		
		if (tmpDate.length != len || tmpMM < 1 || tmpMM > 12) {
			msg = "[" + strName + "] : 유효하지 않은 날짜 형식입니다!";
			alert(msg);
			return false;
		}
		
		return true;
	} 
		
	/******************************************
	 * 두 날짜 비교하여 결과를 리턴
	 ******************************************/	
	function comparePeriod(fromValue, toValue, fromName, toName){
		if(fromValue == "" || toValue == "") return true;
		var del = /[^(0-9)]/gi;
		var fromDate = fromValue.replace(del,"");
		var toDate = toValue.replace(del,"");
		var msg;
		
		if (fromDate > toDate) {
			msg = fromName + "이  " + toName + "보다 이후일 수 없습니다!";
			alert(msg);
			return false;
		}
		
		return true;
	}


	/* 특수문자 처리*/
	function ChangeSpecialCharacter(str)
	{
		var returnStr;

		returnStr = str;

		returnStr = returnStr.replace(/\</g,		"&lt;");
		returnStr = returnStr.replace(/\>/g,		"&gt;");
		returnStr = returnStr.replace(/\ /g,		"&nbsp;");
		returnStr = returnStr.replace(/\"/g,		"&quot;");
		returnStr = returnStr.replace(/\'/g,		"&#39;");

		return returnStr;
	}


   function truncateString(str, max) {
		if(blen(str) > max) {
			return bsubstring(str, max - 2) + ".."
		} else {
			return str
		}
	}

	function bsubstring(str, to) {
		var bindex = 0
		for(var i = 0; i < str.length; i++) {
			bindex += str.charAt(i) >= 'ㄱ' ? 2 : 1
			if(bindex > to) {
				return str.substring(0, i)
			}
		}
		return str
	}

	function blen(str) {
		if(typeof str == "undefined" || str == null) return str;

		var result = 0
		for(var i = 0; i < str.length; i++) {
			result += str.charAt(i) >= 'ㄱ' ? 2 : 1
		}

		return result
	}

	/* URL에서 확장자 검색 */
	function GetFileExter(URL) {
		var sUrl;
		var fileExiter;
		var idxNumber;
		var sArray;

		if (sUrl == "")	{
			return "";
		}

		sUrl = URL;

		// ? 이후 제거
		if(sUrl.indexOf("?") > 0) {
			sUrl = sUrl.substr(1, sUrl.indexOf("?")-1);
		}

		// 파일 확장자 추출
		if(sUrl.indexOf(".") > 0) {
			sArray = sUrl.split(".");
			fileExiter = sArray[sArray.length-1].toLowerCase();
		} else {
			fileExiter = "";
		}

		return fileExiter;
	}


	 function _loadingHtml() {
	 	var strHtml = "";
 		strHtml = strHtml + "<table width='100%' height='100%'>";
 		strHtml = strHtml + "<tr><td valign='middle' align='center'><img src='/images/loading/loading.gif'></td></tr>";
 		strHtml = strHtml + "</table>";
  		return strHtml;
 	}





	function allBlur() {
		for (i = 0; i < document.links.length; i++){
			document.links[i].onfocus = document.links[i].blur;
		}
	}
	
	function OpenWin(url,w,h) {
		window.open (url,"win",'toolbar=no,location=no,directory=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=' + w +',height=' + h + "'");
	}
	function OpenWin2(url,w,h) {
		window.open (url,"win",'toolbar=no,location=no,directory=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=' + w +',height=' + h + "'");
	}
	
	
	var bExplorer5 = (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5,navigator.appVersion.indexOf("MSIE")+8) < "5.5");
	var bExplorer5Plus = (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5,navigator.appVersion.indexOf("MSIE")+8) >= "5.5");
	
	function InitMenu(){
		var bar = menuBar.children
	
		for(var i=0;i < bar.length;i++)	{
			var menu=eval(bar[i].menu)
			menu.style.visibility = "hidden"
			bar[i].onmouseover = new Function("ShowMenu("+bar[i].id+")")
			var Items = menu.children
			for(var j=0; j<Items.length; j++)	{
				var menuItem = eval(Items[j].id)
	
				if(menuItem.menu != null){
					menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
					FindSubMenu(menuItem.menu)
				}
	
				if(menuItem.cmd != null) {
					menuItem.onclick = new Function("Do("+menuItem.id+")")
				}
	
				menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
			}
		}
	}

	function FindSubMenu(subMenu){
		var menu=eval(subMenu)
		var Items = menu.children
	
		for(var j=0; j<Items.length; j++){
			menu.style.visibility = "hidden"
			var menuItem = eval(Items[j].id)
	
			if(menuItem.menu!= null){
				menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
				//var tmp = eval(menuItem.id+"_Arrow")
				//tmp.style.pixelLeft = 35
				//menuItem.getBoundingClientRect().right - tmp.offsetWidth - 15
				FindSubMenu(menuItem.menu)
			}
	
			if(menuItem.cmd != null){
				menuItem.onclick = new Function("Do("+menuItem.id+")")
			}
			menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
		}
	}
	
	function ShowMenu(obj){
		 HideMenu(menuBar)
		 var menu = eval(obj.menu)
		var bar = eval(obj.id)
		bar.className="barOver"
		menu.style.visibility = "visible"
	
		if (bExplorer5) {
			var a=0;
			for(var i=0;i < menuBar.children.length;i++)	{
				a+=1;
			}
	
			menu.style.pixelTop =  obj.getBoundingClientRect().top + obj.offsetHeight + Bdy.scrollTop + 59
			menu.style.pixelLeft = (122)*a + obj.getBoundingClientRect().left
		}
		else if(bExplorer5Plus) {
			menu.style.pixelTop =  obj.getBoundingClientRect().top + obj.offsetHeight + Bdy.scrollTop+3
			menu.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft - 2
		}
	
	}

	function highlight(obj){
		var PElement = eval(obj.parentElement.id)
		if(PElement.hasChildNodes() == true){
			var Elements = PElement.children
				for(var i=0;i<Elements.length;i++){
				TE = eval(Elements[i].id)
				TE.className = "menuItem"
				}
		}
		obj.className="ItemMouseOver"
		window.defaultStatus = obj.title
		ShowSubMenu(obj)
	}
	
	function Do(obj){
		var cmd = eval(obj).cmd
		window.navigate(cmd)
	}
	
	function HideMenu(obj){
		if(obj.hasChildNodes()==true){
			var child = obj.children
			for(var j =0;j<child.length;j++){
				if (child[j].className=="barOver"){
					var bar = eval(child[j].id)
					bar.className="Bar"
				}
	
				if(child[j].menu != null){
					var childMenu = eval(child[j].menu)
					if(childMenu.hasChildNodes()==true){
						HideMenu(childMenu)
					}
					childMenu.style.visibility = "hidden"
				}
			}
		}
	}
	
	function ShowSubMenu(obj){
		PMenu = eval(obj.parentElement.id)
		HideMenu(PMenu)
	
		if(obj.menu != null){
			var menu = eval(obj.menu)
			menu.style.visibility = "visible"
			menu.style.pixelTop =  obj.getBoundingClientRect().top + Bdy.scrollTop
			menu.style.pixelLeft = obj.getBoundingClientRect().right + Bdy.scrollLeft
			if(menu.getBoundingClientRect().right > window.screen.availWidth )
			menu.style.pixelLeft = obj.getBoundingClientRect().left - menu.offsetWidth
		}
	}
	
	// ******************************************
	// 전체 클릭시(allChk(this, 'chk명'))
	// ******************************************
	function allChk(obj, chk){
		var chkObj = document.getElementsByName(chk);
	
		if(typeof(chkObj) == 'undefined'){
			return;
		}else{
			if(typeof(chkObj.length) == 'undefined'){
				chkObj.checked = obj.checked;
			}else{
				for(var i=0; i < chkObj.length; i++){
					chkObj[i].checked = obj.checked;
				}
			}
		}
	}
	
	
	/* 통화 표시 */
	function getFormatMoney(value)  {
	    if(value == null || value == "" || typeof value == "undefined") return "0";
		 var num  = String(value);
	
		 re   = /^\$|,/g;
		 num   = num.replace(re, "");
		 fl   = "";
	
		 if(num < 0) {
		    num  = num * (-1);
		    fl  = "-";
		 } else  {
		    num  = num * 1;
		 }
	 
		 num   = new String(num);
	
		 var temp = "";
		 var co  = 3;
		 var num_len = num.length;
	
		 while (num_len > 0) {
		     num_len = num_len - co;
	
		   if(num_len < 0) {
		     co = num_len + co;
		     num_len = 0;
		   }
	
		   temp = "," + num.substr(num_len, co) + temp;
		 }
	
		 return fl + temp.substr(1);
	}
	
	/* 주민번호로 나이 리턴 */
	function getAgeInfo(cus_sec_no){
	    var regex = new RegExp(/(\d{2})(\d{2})(\d{2})-(\d{1})\d{6}/);
	    var matches = regex.exec(cus_sec_no);
	    if (!matches || matches.length != 5) {
	        alert("주민번호가 잘못되었습니다!");
	        return;
	        //return {age: 0, sex: null };
	    }
	
	    var year = parseInt(((
	        matches[4] == "3" ||
	        matches[4] == "4" ||
	        matches[4] == "7" ||
	        matches[4] == "8") ? "20" : "19") + matches[1]);
	    var month = parseInt(matches[2]);
	    var day = parseInt(matches[3]);
	    var birthDay = new Date(year, month, day);
	    var toDay = new Date();
	
		var age = toDay.getFullYear() - birthDay.getFullYear() + 1;
	
	    return age;
	}
	
	
	function dtFormat(dt, type, delim){
		var dtFormat = "";
	
		 if (dt == null || dt == "")
				return "-";
	
		 if(typeof delim == "undefined" || delim == null) delim = "/";
	
		 if (type == "Y") {
			dtFormat = dt.substring(0, 4);
		} else if (type =="YM") {
			dtFormat = dt.substring(0, 4) + delim + dt.substring(4, 6);
		} else if (type =="MD") {
			dtFormat = dt.substring(4, 6) + delim + dt.substring(6, 8);
		} else if (type == "YMD") {
			dtFormat = dt.substring(0, 4) + delim + dt.substring(4, 6) + delim + dt.substring(6, 8);
		} else if (type == "YMDHI") {
			dtFormat = dt.substring(0, 4) + delim + dt.substring(4, 6) + delim + dt.substring(6, 8) + " " + dt.substring(8, 10) + ":"  + dt.substring(10, 12);
		} else if (type == "YMDH") {
			dtFormat = dt.substring(0, 4) + delim + dt.substring(4, 6) + delim + dt.substring(6, 8) + " " + dt.substring(8, 10);
		} else if (type =="MDHI") {
			dtFormat = dt.substring(4, 6) + delim + dt.substring(6, 8) + " " + dt.substring(8, 10) + ":" + dt.substring(10, 12);
		} else if (type =="YMDHIS") {
			dtFormat = dt.substring(0, 4) + delim + dt.substring(4, 6) + delim + dt.substring(6, 8) + " " + dt.substring(8, 10) + ":" + dt.substring(10, 12) + ":" + dt.substring(12, 14);
		} else {
			dtFormat = dt;
		}
	
		return dtFormat;
	}

	// 엔터키를 누를때 이벤트 발생하기 - 목록 검색
	function commonEnterCheck()
	{
		if(event.keyCode == 13)
		{
			goSearch();
		}
	}

	// 이미지 파일 체크
	function imageCheck(imageFullName)
	{
		imageFullName = Trim(imageFullName);
		var imageFile  = imageFullName.split(".");
		var imageExte  = imageFile[imageFile.length-1].toLowerCase();    
		if ( imageExte != "gif" && imageExte != "jpg"  && imageExte != "bmp" && imageExte != "png"){
			alert("이미지 파일은 gif, jpg, bmp, png 파일만 등록할 수 있습니다!");
			return false;
		} else {
			return true;
		}
	}	
		
	// 포커스 자동 변경
	function autoFocusChange(checkTag, nextTag, len)
	{
		if ( checkTag.value.length >= len )
		{
			checkTag.blur();
			nextTag.focus();
		}
	}

	// DRM 적용
	function popDrmApplication(type, totalCount, xmlFilePath)
	{
		var url = context + "/drm/popDrmApplication.vw?type=" + type + "&totalCount=" + totalCount + "&xmlFilePath=" + xmlFilePath;
		openWinByName(url,'popDrmApplication','500','200','no');
	}

	// Excel DRM 적용
	function popDrmExcelApplication(type, totalCount, xmlFilePath)
	{
		var url = context + "/drm/popDrmExcelApplication.vw?type=" + type + "&totalCount=" + totalCount + "&xmlFilePath=" + xmlFilePath;
		var name 	= "popDrmExcelApplication";
		var width 	= "600";
		var height	= "600";
		var scroll 	= "no";
		var left 	= (screen.width-width)/2;
		var top 	= (screen.height-height)/2;
				
		returnWin = window.open(url,name,'width='+width+',height='+height+',left='+left+',top='+top+', scrollbars='+scroll+', toolbar=no');
		returnWin.focus();
		return returnWin;
		
	}
	
	// DRM Lodding
	function popDrmLoading(msg)
	{
		var url 	= context + "/drm/popDrmLoading.vw?msg=" + msg;
		var name 	= "popDrmLoading";
		var width 	= "517";
		var height	= "115";
		var scroll 	= "no";
		var left 	= (screen.width-width)/2;
		var top 	= (screen.height-height)/2;
				
		returnWin = window.open(url,name,'width='+width+',height='+height+',left='+left+',top='+top+', scrollbars='+scroll+', toolbar=no');
		returnWin.focus();
		return returnWin;
	}
	
	// ******************************************
	// 연속된 문자/숫자 체크
	// ******************************************		
	function continutyCheck(str, strName)
	{
		var temp 	= "";
		var temp2 	= str.substring(0,1);	//문자열 첫째 자리 값을 할당합니다.
		var con 	= 1; 					//연속3번이 되어야만 con값이 3이 될 수 있습니다.
		var chk		= true;
		
		for(i = 1; i < str.length; i++){
			temp = str.substring(i,i+1);//입력된 값을 하나하나 새로담는다
		
			if(temp == temp2){
				con++; //temp2은 그대로고...con값만 증가
			}else{
				con = 1; //연속된 값이 아니었으므로 다시 첨부터 1
				temp2 = temp;  //temp2 또한 연속된 값이 아니었으므로 다시 temp의 값을 하나 받아서 시작
			}
		
			if(con == 3){ //연속 3번
				alert("["+strName+"] 연속해서 입력하시면 안 됩니다("+temp2+")!");
				chk = false;
				break; 
			}
		}
		return chk;
	}
    
    // desc  : 문자 뒤의 공백문자를 제거하는 함수
	// input  : string
	// return : string
	function rTrim ( str ) {
		str = str + "";
		var len = str.length;

		for(var i = (len - 1); (str.charAt(i) == ' '); i--);
		str = str.substring(0, i + 1);

		return str;
	}
                             
	// ===================================================================                             
	// 파일 다운로드 공통모듈
	// ===================================================================                             
	function goDownload(file_name) {
		var frm = document.getElementById("file_download_from");
		var file_name_obj = document.getElementById("file_name");
		file_name_obj.value = file_name;
		frm.action = context + "/commonModule/fileDownload.vw";
		frm.submit();
//		var url = context + "/commonModule/fileDownload.vw?file_name=" + file_name;
//		location.replace(url);
	} 
	
	/******************************************
	 * 체크박스 선택시 전체 선택/해제됨 
	 ******************************************/
	function checkBoxSel(mode, obj) { 
		
		if(obj){
		   if(obj.length){
		   		for(var i = 0 ; obj.length > i ; i ++ ) { 
		     		obj[i].checked = mode; 
		    	}//for
		   }else{
		    	obj.checked = mode;    
		   }//if
		}//if
	}     

	/******************************************
	 * 체크박스 선택시 입력폼 입력가능/불가됨
	 ******************************************/
	function checkBoxSel2(mode, obj) { 
			if(mode){
		    	obj.style.backgroundColor 				= "#eeeeee";
				obj.disabled = false; 
		    	obj.focus(); 
		    }else{
		    	obj.value    = "";
		    	obj.style.backgroundColor 				= "#ffffff";
		    	obj.disabled = true;
		    }//if
	}     


	/******************************************
	 * 체크박스 선택시 입력폼 입력가능/불가됨
	 ******************************************/
	function checkBoxSel3(mode, obj) { 
			if(mode){
		    	obj.style.backgroundColor 				= "#eeeeee";
				obj.disabled = true; 
		    }else{
		    	obj.style.backgroundColor 				= "#ffffff";
		    	obj.disabled = false;
		    }//if
	} 
	
	/******************************************
	 * 삭제시 CheckBox 선택여부 확인
	 ******************************************/
	function checkBoxCnt(obj, msg) {
		var ckb = obj;
		var cnt = 0;
		
		if(ckb){  
		 	if(ckb.length){
		  		for(var i = 0 ; i < ckb.length ; i++) {
		   			if(ckb[i].checked) {
		    			cnt++;
		   			}//if
		  		}//for
			}else {
		  		if(ckb.checked==true) {
		   			cnt++
		  		}//if
		 	}//if   
		}//if
		
		if(cnt > 0){
			return true;
		}else{
			alert(msg + " 항목을 선택하십시오!");
			return false;
		}
	}


	/******************************************
	 * 삭제시 CheckBox 선택여부 확인
	 ******************************************/
	function checkBoxCnt3(obj, obj2, obj3, msg) {
		var ckb = obj;
		var ckb2 = obj2;
		var ckb3 = obj3;
		var cnt = 0;
		var cnt2 = 0;
		var cnt3 = 0;
		
		if(ckb){  
		 	if(ckb.length){
		  		for(var i = 0 ; i < ckb.length ; i++) {
		   			if(ckb[i].checked) {
		    			cnt++;
		   			}//if
		  		}//for
			}else {
		  		if(ckb.checked==true) {
		   			cnt++
		  		}//if
		 	}//if   
		}//if
		if(ckb2){  
		 	if(ckb2.length){
		  		for(var i = 0 ; i < ckb2.length ; i++) {
		   			if(ckb2[i].checked) {
		    			cnt2++;
		   			}//if
		  		}//for
			}else {
		  		if(ckb2.checked==true) {
		   			cnt2++
		  		}//if
		 	}//if   
		}//if
		if(ckb3){  
		 	if(ckb3.length){
		  		for(var i = 0 ; i < ckb3.length ; i++) {
		   			if(ckb3[i].checked) {
		    			cnt3++;
		   			}//if
		  		}//for
			}else {
		  		if(ckb3.checked==true) {
		   			cnt3++
		  		}//if
		 	}//if   
		}//if
		
		if(cnt > 0 || cnt2 > 0 || cnt3 > 0){
			return true;
		}else{
			alert(msg + " 항목을 선택하십시오!");
			return false;
		}
	}
	
	/******************************************
	 * TextArea의 글자수 체크
	 ******************************************/		
	function countBytes(obj, len, target){
		var cnt  = obj.value.bytes();
		
		if(cnt <= len){
			target.value = cnt;
		}else{
			alert("허용 글자수를 초과하였습니다!");
			obj.value = obj.value.cut(len);
			target.value = len;
		}
	}	 	
	
	/******************************************
	 * Select 초기화
	 ******************************************/
	function initSelect(form, targetNm){
		var target = "document.getElementById('"+form+"')."+targetNm;	
		var obj = eval(target);
		if(obj.length){
			for (var i=obj.length-1; i >= 1 ; i--) {
				obj[i] = null;
			}
		}
	}	 	
	
	/******************************************
	 * Select 초기화
	 ******************************************/
	function initSelectAll(form, targetNm){
		var target = "document.getElementById('"+form+"')."+targetNm;	
		var obj = eval(target);
		if(obj.length){
			for (var i=obj.length-1; i >= 0 ; i--) {
				obj[i] = null;
			}
		}
	}
	
	/******************************************
	 * chkbox 채크된 row 삭제
	 ******************************************/
	function deleteRowByChkBox(checkBoxName){
		var target = "document.getElementsByName('"+checkBoxName+"')";	
		var chkObj = eval(target);
		//var chkobj = document.getElementsByName(checkBoxName);	
		var sourceTr;
		
		if(chkObj.length == 0){
			alert("삭제할 정보가 없습니다.");
			return false;
		}
		
		
		var moveOk = false;
		for(var i = chkObj.length; i > 0; i--){
			if( typeof(chkObj.length) == 'undefined'){
				if(chkObj.checked){
					sourceTr = chkObj.parentNode.parentNode;
					sourceTr.parentNode.deleteRow(sourceTr.sectionRowIndex);
					moveOk = true;
				}
			}else{
				if(chkObj[i-1].checked){
					sourceTr = chkObj[i-1].parentNode.parentNode;
					sourceTr.parentNode.deleteRow(sourceTr.sectionRowIndex);
					moveOk = true;
				}
			}
		}
		
		if(!moveOk){
			alert("삭제할  정보를 선택하여 주십시요!");
			return false;
		}
		
	}
	
	/******************************************
	 * file명 추출
	 ******************************************/
	function getFileNm(str) {
		var fileNm	= "";
		var startIdx = 0;
		var endIdx = 0;
		
		for(var i=str.length-1; i>-1; i--) { 
            if(str.charAt(i) == ".") {
            	endIdx = i;
            	break;
            }
        }
		
		for(var i=str.length-1; i>-1; i--) { 
            if(str.charAt(i) == "\\") {
            	startIdx = i;
            	break;
            }
        }
        
        if(endIdx == 0) {
        	endIdx = str.length;
        }
        
        for(var i=startIdx+1; i<endIdx; i++) {
        	fileNm += str.charAt(i);
        }
        
        return fileNm;
	}
	
	/******************************************
	 * checkbox 동기화
	 ******************************************/	
	function checkBoxSync(sObj, tObj){
		if(sObj){
		   if(sObj.length){
		   		for(var i = 0 ; sObj.length > i ; i ++ ) { 
		     		tObj[i].checked = sObj[i].checked; 
		    	}//for
		   }else{
		    	tObj.checked = sObj.checked;    
		   }//if
		}//if
		
	}
	
	/******************************************
	 * 금액처리
	 ******************************************/	
	function FormatDecimalAsNumberNoComma(c)
	{var max=new Number("100000000");if(c.value>max){c.value=max}var min=new Number("-100000000");if(c.value<min){c.value=min}c.value=DecimalToNumber(c.value,2).replace(',','');c.style.color=(c.value.match(/\x2D/)==null?c.getAttribute("positiveColor"):c.getAttribute("negativeColor"));}
	
	function FormatDecimalAsNumberComma(c)
	{var max=new Number("100000000");if(c.value>max){c.value=max}var min=new Number("-100000000");if(c.value<min){c.value=min}c.value=DecimalToNumber(c.value,2);c.style.color=(c.value.match(/\x2D/)==null?c.getAttribute("positiveColor"):c.getAttribute("negativeColor"));}
	
	function FormatNumberAsDecimal(c)
	{c.value=NumberToDecimal(c.value);}
	
	function FormatNumberAsDecimal1000000(c)
	{c.value=Number(NumberToDecimal(c.value)) * 1000000;}
	
	function FormatNumberAsDecimal1000(c)
	{c.value=Number(NumberToDecimal(c.value)) * 1000;}
	
	function NumberToDecimal(n)
	{n=n.toString();n=n.replace(/[^\d\x2D\x2E]/g,'');return n;}
	
	function DecimalToNumber(n,p)
	{n=n.toString();if(p==null){p=2;}var sy=new Array('-','');var neg=(n.match(/\x2D/)!=null?true:false);n=n.replace(/[^\d\x2E]/g,'');var m=n.match(/(\d*)(\x2E*)(\d*)/);var f=m[3];if(f.length>p){f=f/Math.pow(10,(f.length-p));f=Math.round(f);while(f.toString().length<p){f='0'+f};}else{while(f.toString().length<p){f+='0'};}var w=new Number(m[1]);if(f==Math.pow(10,p)){w+=1;f=f.toString().substr(1);}w=w.toString();var s=3;var l=w.length-s;while(l>0){w=w.substr(0,l)+'\x2C'+w.substr(l);l-=s;}if(p==0){m[2]='';f=''}else{m[2]='\x2E'}return (neg?sy[0]+w+m[2]+f+sy[1]:w+m[2]+f);}

	//이미지 swap 관련
	function MM_swapImgRestore() { //v3.0
	  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	 
	function MM_preloadImages() { //v3.0
	  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}
	 
	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	 
	function MM_swapImage() { //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}
	
	/******************************************
	 * 년수계산
	 ******************************************/
	function yearCnt(startdt, enddt){
		var result = 0;
		if(startdt == "" || enddt == ""){
			return "";
		}
		
		var v1=startdt.split(".");
		var v2=enddt.split(".");
		
		var a1=new Date(v1[0],v1[1] -1 ,v1[2]).getTime();
		var a2=new Date(v2[0],v2[1] -1 ,v2[2]).getTime();
		result=(a2-a1)/(1000*60*60*24);
		result = result / 365;
		return result; 
	}
	
	
	/******************************************
	 * 년월 포맷 제거
	 ******************************************/
	function replaceYYMMForm(str){
		var result = "";
		
		result = str.replace(/\-/gi, "");
		return result; 
	}	
	
	/******************************************
	 * 쿠키 생성
	 ******************************************/
	function setCookie(name, value, expiredays) {
		var today = new Date();
    	today.setDate(today.getDate() + expiredays);

	    document.cookie = name + '=' + escape(value) + '; path=/; expires=' + today.toGMTString() + ';'
	}
		
	/******************************************
	 * 쿠키 가져오기
	 ******************************************/
	function getCookie(name) {
	    var nameOfCookie = name+"=";
	    var x=0;
	    while (x <= document.cookie.length) {
	        var y = (x+nameOfCookie.length);
	        if (document.cookie.substring(x, y) == nameOfCookie) {
	            if((endOfCookie=document.cookie.indexOf(";", y)) == -1) endOfCookie = document.cookie.length;
	            return unescape(document.cookie.substring(y, endOfCookie));
	        }
	        x = document.cookie.indexOf(" ", x) + 1;
	        if (x == 0) break;
	    }
	    return "";
	}
	
	
	/******************************************
	 * 프로그래스바 만들기
	 ******************************************/
	var imgObj = document.createElement("img");
	imgObj.setAttribute("id", "img_progress");
	imgObj.setAttribute("src", context + "/images/prog.gif");
	imgObj.border = 0;
	imgObj.width = "220";
	imgObj.height = "8";

	function show_progress() {
		if(!document.getElementById("div_progress")){
			var divObj = document.createElement("div");
			divObj.setAttribute("id", "div_progress");
			var width = 300;
			var height = 100;
			var text = "<font style='font-size:9pt;font-family:굴림;color:#25407B;'>작업 중 입니다! 잠시만 기다려 주십시오! </font><br><br>";
			divObj.innerHTML = text;
			divObj.appendChild(imgObj);
			divObj.style.position="absolute";
			divObj.style.backgroundColor="#FFFFFF";
			divObj.style.border="2px solid #c3c3c3";
			divObj.style.textAlign="center";
			divObj.style.paddingTop="30px";
			divObj.style.zIndex="10000";
			divObj.style.width=width;
			divObj.style.height=height;
			//divObj.style.left=(document.body.scrollWidth - width) / 2;
			divObj.style.left="50%";
			//divObj.style.top=(document.body.scrollHeight - height) / 2;
			divObj.style.top="50%";
			divObj.style.marginLeft="-150px";
			divObj.style.marginTop="-50px";
			document.body.appendChild(divObj);
		}
		
		
	}

	function show_progress_pop() {
		
		if(!document.getElementById("div_progress")){
			var divObj = document.createElement("div");
			divObj.setAttribute("id", "div_progress");
			var width = 300;
			var height = 100;
			
			var text = "<font style='font-size:9pt;font-family:굴림;color:#25407B;'>작업 중 입니다. 잠시만 기다려 주십시요.</font><br><br>";
			divObj.innerHTML = text;
			divObj.appendChild(imgObj);
			divObj.style.position="absolute";
			divObj.style.backgroundColor="#FFFFFF";
			divObj.style.border="2px solid #c3c3c3";
			divObj.style.textAlign="center";
			divObj.style.paddingTop="30px";
			divObj.style.zIndex="10"; 
			divObj.style.width=width;
			divObj.style.height=height;
			divObj.style.left=(document.body.scrollWidth - width) / 2;
			divObj.style.top=(document.body.scrollHeight - height) / 2;
			document.body.appendChild(divObj);
		}
		
		
	}

	function remove_progress() {
		try{
			var divObj = document.getElementById("div_progress");
			var imgObj = document.getElementById("img_progress");
			divObj.removeChild(imgObj);
			document.body.removeChild(divObj);
			
		}catch(error){
			
		}
	}
	
	function printArea(){
		/*
		printIframe.document.body.style.zoom = 1.5;
		var area = document.getElementById("center_area").innerHTML;
		printIframe.document.getElementById("center_area").innerHTML = area;
		printIframe.focus(); //인쇄할 영역으로 포커스를 맞춘 뒤
		printIframe.printIframeArea();
		/*
		window.print();
		*/
		window.print();
		
	}
	
	function goPopup(url, w, h,ScrollbarsYn){
	
		if (ScrollbarsYn=='Y')		{
			ScrollbarsYn="yes";
		}else{
			ScrollbarsYn="no";
		}
		var x = (screen.availWidth - w) / 2;
		var y = (screen.availHeight - h) / 2;
		var win = window.open(url, 'pop','width='+w+', height='+h+', left='+x+', top='+y+', location=no ,scrollbars='+ScrollbarsYn);
		win.focus();
	}
	function dEI(elementID){
		return document.getElementById(elementID);
	}
	function imgRollover(imgBoxID){
		var MenuCounts;
		try{
			MenuCounts = dEI(imgBoxID).getElementsByTagName("li");
		} catch(e){alert(e);}
		alert(MenuCounts.length);
		for (i=0;i<MenuCounts.length;i++) {
			MenuCounts.onmouseover = function () {
				//MenuCounts.style.display = "inline";
				document.getElementById(imgBoxID).style.display == 'inline'
			}
			MenuCounts[i].onmouseout = function () {
				//MenuCounts[i].style.display = "none";
				hide_family();
			}
		}
	}

	

	


