﻿<!--
	function MM_showHideLayers() { //v9.0
	  var i,p,v,obj,args=MM_showHideLayers.arguments;
	  for (i=0; i<(args.length-2); i+=3) 
	  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
	    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
	    obj.visibility=v; }
	}
	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 xyPosition(strIdName,strMode){
		//alert(eval('document.all.'+'Image30'+'.src'));
	    if(document.all[strIdName]){
	       return  eval("document.all."+strIdName+".getBoundingClientRect()."+strMode);
	    }else{
	       return  false;	
	    }
	}
	
	
	/* 자동커서 이동 */
	var isNN = (navigator.appName.indexOf("Netscape") != -1);
	
	function autoTab(obj, len, e)
	{
		e?evt=e:evt=event;
		var keyCode = (isNN) ? e.which : e.keyCode;
		var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	
		if (obj.value.length >= len && !containsElement(filter, evt.keyCode))
		{
			obj.value = obj.value.slice(0, len);
			//e.form[(getEleIndex(e) + 1) % e.form.length].focus();
			obj.form[getEleIndex(obj) + 1].focus();
		}
	
		return;
	}
	
	function containsElement(arr, ele)
	{
		var found = false, i = 0;
	
		while (!found && i < arr.length)
		{
			if (ele == arr[i]) found = true;
			else i++;
		}
	
		return found;
	}
	
	function getEleIndex(e)
	{
		var i = 0, idx = -1;
	
		while (i < e.form.length && idx == -1)
		{
			if (e == e.form[i]) idx = i;
			else i++;
		}
	
		return idx;
	}
	
	/*******************************************************************
        화면 리로드
	 *******************************************************************/
	function ReLoad() {
	 window.location.reload();
	}

	/*******************************************************************
	    설명 : 문자열이 빈문자열이면 0을 채워넣는다.
	           또한 "01" 또는 "000033"처럼 0이나 연속된 0으로
	           시작되는 문자열의 0을 제외시킨다.
	    파라메터
	            str : 문자열
	    반환값 : 문자열
	*******************************************************************/
	function toInteger(str)    {
	    if(str == "")
	        return "0";
	    else
	        return delZero(str);
	}
	
	/*******************************************************************
	    설명 :  재귀함수 사용함
	            toInteger함수는 이함수를 호출한다.
	           "01" 또는 "000033"처럼 0이나 연속된 0으로
	           시작되는 문자열의 0을 제외시킨다.
	    파라메터
	            str : 문자열
	    반환값 : 문자열
	*******************************************************************/
	function delZero(str){
	    if((str.length > 1) && (str.substr(0, 1) == "0"))
	        return delZero(str.substr(1));
	    else
	        return str;
	}
	/*******************************************************************
        설명 : 한자리 숫자일경우 앞에 "0"을 삽입한다.
        파라메터 : 문자열
        반환값 : 문자열
    *******************************************************************/
    function addZero(str){
        if(str.length == 1)
            return "0" + str;
        else
            return str;
    }

    /*******************************************************************
        설명 : 텍스트박스나 텍스트에어리어에 입력되었나 체크하는 함수
        파라메터
                obj : 텍스트박스 Name
                msg : 오류 메시지
        반환값 : 입력 되지 않으면 false 반환
    *******************************************************************/
    function isNull(obj, msg){

        if(trim(obj.value) == "")
        {
            alert(msg + " 입력하십시오.");
            obj.focus();
            return true;
        }
        return false;

    }
    /*******************************************************************
        설명 : 텍스트박스나 텍스트에어리어에 입력되었나 체크하는 함수
        파라메터
                obj : 텍스트박스 Name
                msg : 오류 메시지
        반환값 : 입력 되지 않으면 false 반환
    *******************************************************************/
    function isNullNF(obj, msg){
        if(trim(obj.value) == "")
        {
            alert(msg + " 입력하십시오.");
            return true;
        }
        return false;

    }

    /*******************************************************************
        설명 : select 박스가 선택되었나 체크하는 함수
        (첫번째가 선택되었으면 선택되지 않았다고 간주함)
        파라메터
                obj : select Name
                msg : 오류메시지
        반환값 : 선택되지 않으면 false 반환
    *******************************************************************/
    function isSelected(obj, msg){
        if(obj.selectedIndex == 0)
        {
            alert(msg + " 선택하십시오.");
            obj.focus();
            return false;
        }
        return true;
    }

    /*******************************************************************
        설명 :체크박스나 라디오버튼에 체크되었나 확인하는 함수
        파라메터
                obj : checkbox(radio) Name
        반환값 : 체크되지 않으면 false 반환
    *******************************************************************/
    function isChecked(obj, msg){

        //만약 obj가 하나도 없을 경우 리턴
        if(obj == undefined) return false;

        var count = 0;  //체크된 갯수
        //같은 name의 체크박스(라디오버튼)이 여러개 있을때..

        if(obj.length > 1){
            for(var i=0 ; i<obj.length ; i++){
                if(obj[i].checked)
                    count++;
            }
            if(count <= 0){
                alert(msg + " 선택하십시오.");
                obj[0].focus();
                return false;
            }
        }else{      //같은 name의 체크박스(라디오버튼)이 1개 있을때...
            if(!obj.checked){
                alert(msg + " 선택하십시오.");
                obj.focus();
                return false;
            }
        }
        return true;
    }
    /*******************************************************************
        설명 :체크박스나 라디오버튼에 체크되었나 확인하는 함수
        파라메터
                obj : checkbox(radio) Name
        반환값 : 체크되지 않으면 false 반환
    *******************************************************************/
    function isCheckedNonMsg(obj){

        //만약 obj가 하나도 없을 경우 리턴
        if(obj == undefined) return false;

        var count = 0;  //체크된 갯수
        //같은 name의 체크박스(라디오버튼)이 여러개 있을때..

        if(obj.length > 1){
            for(var i=0 ; i<obj.length ; i++){
                if(obj[i].checked)
                    count++;
            }
            if(count <= 0){
                obj[0].focus();
                return false;
            }
        }else{      //같은 name의 체크박스(라디오버튼)이 1개 있을때...
            if(!obj.checked){
                obj.focus();
                return false;
            }
        }
        return true;
    }

    /*******************************************************************
        설명 :체크박스을 모두 체크하는 함수
        파라메터
                obj : checkbox(radio) Name
    *******************************************************************/
    function CheckAll(obj, val){
        //만약 obj가 하나도 없을 경우 리턴
        if(obj == undefined) return;

        var length = obj.length;

        if(obj.length > 1){
            for(var i=0 ; i<length ; i++)
                obj[i].checked = val;
        }else{        //체크박스가 한개일때
            obj.checked = val;
        }

    }


    /*******************************************************************
        설명 : 왼쪽 Trim 함수
        파라메터
                str : 문자열
        반환값 : 없음
    *******************************************************************/
    function ltrim(str) {
            var s = new String(str);

            if (s.substr(0,1) == " ")
                    return ltrim(s.substr(1));
            else
                    return s;
    }

    /*******************************************************************
        설명 : 오른쪽 Trim 함수
        파라메터
                str : 문자열
        반환값 : 없음
    *******************************************************************/
    function rtrim(str) {
            var s = new String(str);
            if(s.substr(s.length-1,1) == " ")
                    return rtrim(s.substring(0, s.length-1))
            else
                    return s;
    }

    /*******************************************************************
        설명 : 양쪽 Trim 함수
        파라메터
                str : 문자열
        반환값 : 없음
    *******************************************************************/
    function trim(str) {
            return ltrim(rtrim(str));
    }



    /*******************************************************************
        설명 : 숫자인지 체크
        파라메터
                str : 문자열
        반환값 : 없음
    *******************************************************************/
    function isNumeral(str){
        for(var i=0; i<str.length; i++) {
            var uniCode = str.charCodeAt(i);

            if(!(uniCode >= 48 && uniCode <= 57))
                return false;
        }

        return true;
    }

    /*******************************************************************
    *    설명 :영문인지 체크한다.
    ********************************************************************/
    function isAlphabet(str){
        for(var i=0; i<str.length; i++) {
            var uniCode = str.charCodeAt(i);

            if(!(uniCode >= 97 && uniCode <= 122))
                return false;
        }

        return true;
    }
    
    /*******************************************************************
     *  설명 :알파벳이나 숫자가 아닌 문자가 포함되어 있으면 false 리턴
	 ********************************************************************/
	function AlpaNumber(string) {
		valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		for (var i=0; i< string.length; i++) {
			if (valid.indexOf(string.charAt(i)) == -1) {
			return false;
			}
		}
		return true;
	}

	/*******************************************************************
        설명 : 숫자인지 체크
        파라메터
        		obj : textbox 네임
        		type: 체크할 타입
        반환값 : 없음
    *******************************************************************/
	function isRegCheck(obj, val, msg) {
		var strRegExp;
		if (val=="num") {
			strRegExp = /[^0-9]/; 
		} else if(val=="email") {
			strRegExp = /[a-zA-Z\d\-\.]+@([a-zA-Z\d\-]+(\.[a-zA-Z\d\-]+)+)/;
		} else if(val=="alpha") {
			strRegExp = /[^a-zA-Z]/;	
		} else if(val=="pass") {
			strRegExp =  /[^a-zA-Z0-9_]/;
		} else if(val=="id") {
			strRegExp = /[^A-Za-z0-9_-]/;
		}
		
		var str = obj.value;
		if(val=="email") {
			if(str.search(strRegExp)==-1) {
				alert(msg);
				obj.select();
	            obj.focus();
	            return false;
			}
			return true;
		} else {
			if(str.search(strRegExp)!=-1) {
				alert(msg);
				obj.select();
	            obj.focus();
	            return false;
			}
			return true;
		}
	}
	
	function isJumin(obj1, obj2) {
		var jumin= obj1.value +''+ obj2.value;
		if (jumin.length  != 13) 
			return false;
		tval=jumin.charAt(0)*2 + jumin.charAt(1)*3 + jumin.charAt(2)*4
		+ jumin.charAt(3)*5 + jumin.charAt(4)*6 + jumin.charAt(5)*7
		+ jumin.charAt(6)*8+ jumin.charAt(7)*9 + jumin.charAt(8)*2
		+ jumin.charAt(9)*3 + jumin.charAt(10)*4 + jumin.charAt(11)*5;

		tval2=11- (tval % 11);
		tval2=tval2 % 10;
		
		if (jumin.charAt(12)==tval2 &&  (jumin.charAt(6)=="1" ||jumin.charAt(6)=="2")) {
			return true;
		}
		else{
            return false;
		}
	}

	function commify(n) {
		var reg = /(^[+-]?\d+)(\d{3})/;
		n += '';
		
		while(reg.test(n))
			n = n.replace(reg, '$1' + ',' + '$2');
			
		return n;	
	}

    function popUpCenter(theUrl,w,h,s) { 
		var height = screen.height; 
		var width = screen.width; 
		var leftpos = width / 2 - 150; 
		var toppos = height / 2 - 100; 
		var Popwin = window.open(theUrl,'WIN','scrollbars='+s+',status=no,toolbar=no,resizable=1,location=no,menu=no,width='+w+',height='+h+',left=' + leftpos + ',top=' + toppos); 
		Popwin.focus(); 
	} 
	
	var overlayOpacity = 0.5;	// controls transparency of shadow overlay
	var overlayDuration = 0;
	
	function onInteractive(){
		var objBody = document.getElementsByTagName("body").item(0);
	
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id','overlay');
		objOverlay.style.display = 'none';
	
		objBody.appendChild(objOverlay);
	
		var objLightbox = document.createElement("div");
		objLightbox.setAttribute('id','lightbox');
		objLightbox.style.display = 'none';
	
		objBody.appendChild(objLightbox);
	
		var objLoading = document.createElement("div");
		objLoading.setAttribute('id','loading');
		objLoading.style.display = 'none';
		objLightbox.appendChild(objLoading);
	
		var objLoadingImage = document.createElement("img");
		objLoadingImage.setAttribute('src', fileLoadingImage);

		objLoading.appendChild(objLoadingImage);
		
		hideSelectBoxes();
		var arrayPageSize = getPageSize();
		Element.setHeight('overlay', arrayPageSize[1]);
		new Effect.Appear('overlay', { duration: overlayDuration, from: 0.0, to: overlayOpacity });
	
		// calculate top offset for the lightbox and display
		var arrayPageScroll = getPageScroll();
		var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 3);
	
		Element.setTop('lightbox', lightboxTop);
		Element.show('lightbox');
	}
	
	function hideLoadingMessage()
	{
		
		Element.hide('lightbox');
		new Effect.Fade('overlay', { duration: overlayDuration});
		showSelectBoxes();
	}
// --> 
