<!--
/////////////////////////////////////////////////////////////////////
//         string.js                                               //
//                                                                 //
//         isFieldBlank()                                          //
//         isNumeric()                                             //
//         isDigit()                                               //
//         token()                                                 //
//         removeSpace()                                           //
//         changeSpace()                                           //
//         xReplace()                                              //
/////////////////////////////////////////////////////////////////////


/********************************************************************
*  Function Name : isFieldBlank()                                   *
*  Description   : input Data에 대해 Null Check                     *
*  Input Data    : theField                                         *
*  Output Data   : true/false (Null -> true, notNull -> false)      *
*  사용되는 Function : None                                         *
********************************************************************/
function isFieldBlank(theField) 
{ 
    var str = theField.value;
    var len = removeSpace(str).length;
    
    return(str == "" || len == 0) ? true : false;
} 

/********************************************************************
*  Function Name : isOptionBlank()                                  *
*  Description   : input Data에 대해 Null Check                     *
*  Input Data    : theField                                         *
*  Output Data   : true/false (Null -> true, notNull -> false)      *
*  사용 Function : None                                             *
********************************************************************/
function isOptionBlank(theField) 
{ 
    var str = theField.options[theField.selectedIndex].value;
        return(str == "" || str.charAt(0) == " ") ? true : false;
} 


/********************************************************************
*  Function Name : isNumeric()                                      *
*  Description   : input Data 가 숫자형인지 Check                   *
*  Input Data    : theField                                         *
*  Output Data   : true/false (숫자형 -> true, 문자형 -> false)     *
*  사용 Function : token()                                          *
********************************************************************/
function isNumeric(theField)
{
	var result = token(theField);
	return(result == "invalid" || result == "float") ? false : true;
}


/********************************************************************
*  Function Name : isNumber()                                       *
*  Description   : input Data 가 숫자형인지 Check                   *
*  Input Data    : theField                                         *
*  Output Data   : true  - 숫자형                                   *
*                  false - 문자형                                   *
*                                                                   *
*  사용 Function : token()                                          *
********************************************************************/
function isNumber(theField)
{
	var result = token(theField);
	
	return(result == "invalid") ? false : true;
}


/********************************************************************
*  Function Name : isDigit()                                        *
*  Description   : input Data가 0 ~ 9 사이의 값을 갖는지 Check      *
*  Input Data    : num                                              *
*  Output Data   : true/false                                       *
*  사용 Function : None                                             *
********************************************************************/
function isDigit(num)
{
    return(num >= "0" && num <= "9") ? true : false; 
}


/********************************************************************
*  Function Name : token()                                          *
*  Description   : Input Data 가 integer형 인지 float형 인지 Check  *
*  Input Data    : theField                                         *
*  Output Data   : ctype (integer/float/invalid)                    *
*  사용 Function : isDigit()                                        *
********************************************************************/
function token(theField)
{
    var Status = 0;
    var num    = 0;
    var ctype  = "";
    var i;
    
    i = 0;

    while(i < theField.value.length) {
    	
        num = theField.value.charAt(i);
        
        if(Status == 0) {
            if(isDigit(num)) {
                Status = 1;
                i++;  
            }
            else {
                Status = 10;       // invalid number
                break;
            }
        }
        else if(Status == 1) {
            if(isDigit(num)) {
                Status = 1;        // integer
                i++;
            }
            else if(num == ".") {
                Status = 2;        // is float number
                i++;
            }
            else {
                Status = 10;       // invalid number
                break;
            }
        }
        else if(Status == 2) {
            if(isDigit(num)) {
                i++;
            }
            else {
                Status = 10;
                break;
            }
        }
    }

    if(Status == 1)       ctype = "integer";
    else if(Status == 2)  ctype = "float";
    else if(Status == 10) ctype = "invalid";

    return ctype;
}


/********************************************************************
*  Function Name : removeSpace()                                    *
*  Description   : Input Data 의 Space를 제거한다.                  *
*  Input Data    : str                                              *
*  Output Data   : tar                                              *
*  사용 Function : None                                             *
********************************************************************/
function removeSpace(str)
{
    var src = new String(str);
    var tar = new String();
    var i, len = src.length;

    for(i = 0;i < len;i++) {
        if(src.charAt(i) != " ") {
            tar = tar + src.charAt(i);
        }
    }
    
    return tar;
}


/********************************************************************
*  Function Name : changeSpace()                                    *
*  Description   : Input Data 의 Space를 '+'로 변경한다.            *
*  Input Data    : str                                              *
*  Output Data   : tar                                              *
*  사용 Function : None                                             *
********************************************************************/
function changeSpace(str)
{
    var src = new String(str);
    var tar = new String();
    var i, len = src.length;

    for(i = 0;i < len; i++) {
        if(src.charAt(i) == " ")
            tar += "+";
        else
            tar += src.charAt(i);
    }
    return tar;
}


/********************************************************************
*  Function Name : xReplace()                                       *
*  Description   : 문자열(orgstr)에서 문자(findtxt)와 같은          *
*                  문자를 찾아 문자(replacetxt)로 변경한다.         *
*                  예) "aabbcc","b","x" -> "aaxxcc"                 *
*  Input Data    : orgstr, findtxt, replacetxt                      *
*  Output Data   : orgstr                                           *
*  사용 Function : None                                             *
********************************************************************/
function xReplace(orgstr, findtxt, replacetxt)
{
    var pos = 0;
    
    pos = orgstr.indexOf(findtxt)
    
    while(pos != -1) {
        prestring  = orgstr.substring(0, pos);
        poststring = orgstr.substring(pos + findtxt.length, orgstr.length);
        orgstr = prestring + replacetxt + poststring;
        pos = orgstr.indexOf(findtxt);
    }
    
    return orgstr;
}


/********************************************************************
*  Function Name : convertToUpperCase()                             *
*  Description   : 문자열(orgstr)을 대문자로 변경한다.              *
*                  예) "aabbcc" -> "AABBCC"                         *
*  Input Data    : theField                                         *
*  Output Data   : None                                             *
*  사용 Function : toUpperCase                                      *
********************************************************************/
function convertToUpperCase(fieldObject)
{
    fieldObject.value = fieldObject.value.toUpperCase();
}

/********************************************************************
*  Function Name : isValidFloat()                                   *
*  Description   : 소수의 유효성을 체크한다.                        *
*  Input Data    : theField, intNum, ptNum                          *
*                  예) "111.22" -> intNum:3, ptNum=2                *
*  Output Data   : true/false                                       *
*  사용 Function : toUpperCase                                      *
********************************************************************/
function isValidFloat(theField, intNum, ptNum) {
	
	if ( !isNumber(theField) ) {
		alert('数字を入力してください');
		return false;
	}	
	
    value = new String(theField.value);
    ptindex = value.indexOf('.');
    if (ptindex != -1) {
        intstr = value.substring(0, ptindex);
        ptstr  = value.substring(ptindex+1, value.length);

        if (intstr.length > intNum) {
            alert('入力桁数が多すぎます.');
            return false;
        }    
        
        if (ptstr.length > ptNum) {
            alert('Only down to ' + ptNum + 'decimal point.');
            return false;
        }
        if (ptstr.indexOf('.') != -1) {
            alert('Wrong decimal point position.');
            return false;
        }    
    } else {
        if (value.length > intNum) {
            alert('入力桁数が多すぎます.');
            return false;
        }
    }
    return true;        
}    


/********************************************************************
*  Function Name : isEngChar()                                      *
*  Description   : 영문자 입력을 체크한다.                          *
*  Input Data    : theField, stNum, edNum                           *
*                  예) "ABC11122" -> num:3                          *
*  Output Data   : true/false                                       *
*  사용 Function : None                                             *
********************************************************************/
function isEngChar(theField, stNum, edNum) {
	value = theField.value;
	
	for (i=stNum; i < edNum; i++) {
		ch = value.charAt(i);
		
		if ( (ch < 'A' || ch > 'Z') && (ch < 'a' || ch > 'z') ) {
			alert('First ' + edNum + ' character must be alphabet.');
			return false;
		}	
	}	
	return true;
}

/********************************************************************
*  Function Name : setComma()                                       *
*  Description   : 3자리 마다 ','를 삽입한다.                       *
*  Input Data    : field - text input type                          *
*                  예) "12345.12" -> "123,45.12"                    *
*  Output Data   : String                                           *
*  사용 Function : None                                             *
********************************************************************/

function setComma( field ){
	num = field.value;
	len = 0;
	
	// 계산할 값이 없으면 return
	if( num == "" ) return "";
	// 소숫점의 위치를 찾는다.
	point = num.indexOf( '.' );
	
	// 소숫점의 위지를 못찾으면 계산 길이는 값의 길이가 되고
	if( point == -1 ) len = num.length
	
	// 소숫점의 위치를 찾으면 계산 길이는 소수점 앞자리 까지가 된다.
	else len = point;
	
	// 값에서 계산할 부분만 잘래내고
	newnum = num.substring(0,len);
	
	// 뒤에서부터 3자리씩 잘라서 저장할 배열을 만든다.
	numarray = new Array( len/3 + 1 );
	index = 0;
	
	// 뒤에서부터 3자리씩 잘라서 배열에 저장하고
	for( i = len ; i > 0 ; i -= 3 ){
		numarray[index] = newnum.substring(i - 3, i );
		index++;
	}
	newnum = "";

	// 배열의 뒷부분부터 , 와 함께 붙여 나간다.
	for( i = index-1; i >= 0 ;i-- ){
		if( i < (index-1) ) newnum += ","; // 맨 앞에 , 가 오지 않도록 한다.
		newnum += numarray[i];
	}
	
	// 소숫점이하 값이 있으면 마지막에 붙여 준다.
	if( point > -1 ) newnum += num.substring( point, num.length );
	
	// , 를 삽입한 문자열을 return
	return newnum;
}

function removeComma( field ){
	value = field.value;

	// 계산할 값이 없으면 return
	if( value == "" ) return "";
	i = 0;
	comma = 0;
	newValue = "";

	while( i < value.length ){
		// 현재의 위치부터 ','의 위치를 찾는다.
		comma = value.indexOf(',',i);
		
		// ','의 위치를 못찾은경우 - 현재의 위치부터 마지막까지 추가 한다.
		// 더이상 추가할 값이 없으므로 루프를 빠져 나간다.
		if( comma == -1 ){
			 newValue += value.substring(i, value.length );
			 break;
		}
		// 현재의 위치부터 ','의 위치 앞까지 추가 한다.
		// 현재의 위치를 찾은 ','의 위치 다음으로 설정한다.
		else{
			newValue += value.substring(i,comma );
			i = comma+1;
		}
	} 

	return newValue;
}

function comma_delete(fvalue) {
  
  var rtnValue = "";
  
  if (fvalue.length > 0 ) {

    for (z=0; z<fvalue.length; z++)                                                              
      if (fvalue.substring(z,z+1) != ',')
        rtnValue = rtnValue + fvalue.substring(z,z+1);
  
  }

  return rtnValue;
}

function comma_insert(str) {

	var s_temp = '';
	var val;
	var jj = 1;
        str = str.toString();
	val = str.replace(/,/g,"");
	for(var ii= val.length-1;ii >= 0 ;ii--)
	{
		if(jj%3 == 1 && jj > 3) s_temp = "," + s_temp;
		s_temp = val.charAt(ii) + s_temp;
		jj++;		
	}
	
	return s_temp;
}

/********************************************************************
*  Function Name : isValidLength()                                  *
*  Description   : 자리수를 체크한다.                               *
*  Input Data    : theField, len                                    *
*  Output Data   : true/false                                       *
*  사용 Function : None                                             *
********************************************************************/
function isValidLength(str, theField, len) {
	if (theField.value.length != len) {
		alert('Must be ' + len + ' digit.');
		return false;
	} else {
		return true;
	}
}
/********************************************************************
*  Function Name : setFloor()                                       *
*  Description   : 소수점 이하 자리수를 조절한다.                   *
*  Input Data    : numstr - 숫자 string                             *
*                  예) 1234.6789....                                *
*  Output Data   : String                                           *
*                  예) 1234.67, 1234.01, 1234,1                     *
*  사용 Function : None                                             *
********************************************************************/
function setFloor( str )
{
    var pos = 0;    
    var buf = "";
    var temp = "";   
    
    if( str == "" ) return "0";
   
    pos = str.indexOf(".");
    if( pos < 0 ) return str;
                                
    if( ( str.length - pos ) > 2 )
        buf = str.substring( pos+1, pos+3 );
    else 
        buf = str.substring( pos+1, str.length );
                      
    var i = 0;
    for( i = buf.length; i > 0; i-- ){
        if( buf.charAt(i-1) != '0' ) break;    
    }
    
    if( i > 0 ) 
        buf = buf.substring(0, i);
   
    var lvalue = parseFloat(buf);
  
    if( lvalue > 0 )
        temp = "."+buf;
        
    return str.substring(0, pos)+temp;
    
}

/*
' ------------------------------------------------------------------
' Function    : fc_chk_byte(aro_name)
' Description : 입력한 글자수를 체크
' Argument    : Object Name(글자수를 제한할 컨트롤)
' Return      : 
' ------------------------------------------------------------------
*/
function fc_chk_byte(aro_name,ari_max) {
   var ls_str     = aro_name.value; // 이벤트가 일어난 컨트롤의 value 값
   var li_str_len = ls_str.length;  // 전체길이

   // 변수초기화
   var li_max      = ari_max; // 제한할 글자수 크기
   var i           = 0;  // for문에 사용
   var li_byte     = 0;  // 한글일경우는 2 그밗에는 1을 더함
   var li_len      = 0;  // substring하기 위해서 사용
   var ls_one_char = ""; // 한글자씩 검사한다
   var ls_str2     = ""; // 글자수를 초과하면 제한할수 글자전까지만 보여준다.

   for(i=0; i< li_str_len; i++) {
      // 한글자추출
      ls_one_char = ls_str.charAt(i);

      // 한글이면 2를 더한다.
      if (escape(ls_one_char).length > 4) {
         li_byte += 2;
      }
      // 그밗의 경우는 1을 더한다.
      else
      {
         li_byte++;
      }

      // 전체 크기가 li_max를 넘지않으면
      if(li_byte <= li_max)
      {
         li_len = i + 1;
      }
   }
   
   // 전체길이를 초과하면
   if(li_byte > li_max)  {
      alert( li_max + " Too many character. \n they will be deleted. ");
      ls_str2 = ls_str.substr(0, li_len);
      aro_name.value = ls_str2;
      
      aro_name.focus();   
   }
   //aro_name.focus();   
}

/*
' ------------------------------------------------------------------
' Function    : fc_chk2()
' Description : Enter키를 못치게한다.
' Argument    : 
' Return      : 
' ------------------------------------------------------------------
*/
function fc_chk2()
{
   if(event.keyCode == 13)
      event.returnValue=false;
}

/*
' ------------------------------------------------------------------
' Function    : FormatNumber3()
' Description : 숫자입력 사용하게한다
' Argument    : 
' Return      : 
' ------------------------------------------------------------------
*/
function FormatNumber2(num){
	// 만든이:김인현(jasmint@netsgo.com)
	fl=""
	if(isNaN(num)) { alert("Only number are allowed.");return 0}
	if(num==0) return num

	if(num<0){ 
		num=num*(-1)
		fl="-"
	}else{
		num=num*1 //처음 입력값이 0부터 시작할때 이것을 제거한다.
	}
	num = new String(num)
	temp=""
	co=3
	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 FormatNumber3(num){
	num=new String(num)
	num=num.replace(/,/gi,"")
	return FormatNumber2(num)
}

function num_check() {
	// ie에서만 작동
	var keyCode = event.keyCode

	if((event.keyCode >= 96 && event.keyCode <= 105) || (event.keyCode >= 48 && event.keyCode <= 57) ||
    event.keyCode == 8  || event.keyCode == 46  || event.keyCode == 9 || event.keyCode == 37 ||
    event.keyCode == 39 || event.keyCode == 45  || event.keyCode == 18 || event.keyCode == 17 || 
    event.keyCode == 188 || event.keyCode == 13){
    return true;
  } else {
  	alert("문자는 사용할 수 없습니다."+"["+keyCode+"]");
		event.returnValue=false;	
	}
}

/*
' ------------------------------------------------------------------
' Function    : fnNullCheck()
' Description : 필수항목 체크
' Argument    : 
' Return      : 
' ------------------------------------------------------------------
*/
function fnNullCheck(obj, msg) {
	var str = obj.value;
    var len = removeSpace(str).length;
    
    if (str == "" || len == 0) {
        alert("[" + msg + "] Please input item.");
        obj.focus();
        return true;
    }
    return false;
}

function fnNullCheckEN(obj, msg) {
	var str = obj.value;
    var len = removeSpace(str).length;
    
    if (str == "" || len == 0) {
        alert("[" + msg + "] Please input item.");
        obj.focus();
        return true;
    }
    return false;
}

function removeSpace(str) {
    var src = new String(str);
    var tar = new String();
    var i, len = src.length;

    for(i = 0;i < len;i++) {
        if(src.charAt(i) != " ") tar = tar + src.charAt(i);
    }
    
    return tar;
}

//	#####	Move Next Object Focus		#####
function nextFocus(obj1, len, obj2) {
	if ( obj1.value.length == len) {
		obj2.focus();
	}
}

function isTopEnter(obj1) {
	if(window.event.keyCode == 13)
		obj1.focus();
}	

// 첨부파일 확장자 필터링
function chkFileFilter(obj) {
	var srcName = obj.value;
    var str =  new String(srcName).toLowerCase();

    if(str.lastIndexOf("jpeg") > -1 || str.lastIndexOf("jpg") > -1 || str.lastIndexOf("gif") > -1 || str.lastIndexOf("jpe") > -1 || str.lastIndexOf("txt") > -1 || str.lastIndexOf("hwp") > -1 || str.lastIndexOf("xls") > -1 || str.lastIndexOf("ppt") > -1 || str.lastIndexOf("pdf") > -1 || str.lastIndexOf("zip") > -1 || str.lastIndexOf("doc") > -1 || str == '') {
    	return true;
    } else {
        alert('Not attacable file type.');
        return false;
    }
}  

/*
' ------------------------------------------------------------------
' Function    : flash_object()
' Description : 플래시 스크립트
' Argument    : 
' Return      : 
' ------------------------------------------------------------------
*/
function flash_object(url,value,width,height) { 
  	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="'+width+'" height="'+height+'">');
 	document.write('<param name=movie value="'+url+value+'"');
 	document.write('<param name="wmode" value="transparent">');
 	document.write('<param name="wmode" value="transparent">');
 	document.write('<param name=quality value=high>');
 	document.write('<embed src="'+url+value+'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'">');
 	document.write('</embed> ');
 	document.write('</object>');
}  

// 이름은 띄어쓰기 없이 한글로만 입력받음.
function onlyHan(objtext1) {
	var inText = objtext1.value;
	var ret;

	for (var i = 0; i < inText.length; i++) {
	    ret = inText.charCodeAt(i);
		if (ret > 31 && ret < 127) {
			alert("スペースなしでアルファベットのみ入力してください");
			objtext1.value = "";
			objtext1.focus();
			return false;
		}
	}
	return true;
}

// 아이디 확인(아이디, 시작문자수, 끝문자수
function isID(objtext1, sLen, eLen) {
	var inText = objtext1.value;
      
 	if(inText.length < sLen || inText.length > eLen) return false;

	for(var i = 0; i < inText.length; i++) {
  	var chr = inText.substr(i,1);         
         	
    if((chr < '0' || chr > '9') && (chr < 'a' || chr > 'z')) return false;
 	}
 	return true;   
}

//비밀번호에 문자로만 되어 있는지 확인
function passonlyEng(objtext1) {
	var inText = objtext1.value;
	var ret;
	var j = 0;
				
	var alpha_num_Str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		
	for (var i = 0; i < inText.length; i++) {
		var substr = inText.substring(i,i+1);		
					
		if (alpha_num_Str.indexOf(substr) < 0) {
			//영문자가 아닌값				
		}	else	{
			//영문자
			j = j + 1;
		}
	}
	if (j == inText.length) {
		//영문자만 있는경우
		return false;
	}	else {
		//영문자와 다른 문자가 있는경우
		return true;
	}
}

//비밀번호에 숫자로만 되어있는지 확인
function passonlyNum(objtext1){
	var inText = objtext1.value;
	var ret;

	for (var i = 0; i < inText.length; i++) {
	    ret = inText.charCodeAt(i);
		if (!((ret > 47) && (ret < 58)))  {
			return true;
		}
	}
	return false;
}

	//비밀번호에 숫자,문자로만 되어있는지 체크
	function passwordChk(objtext) {
		if(!(objtext.value == "")) {
			if(passonlyNum(objtext) && passonlyEng(objtext)) {
				return true;
			}	
			else{
				alert("アルファベットと数字の両方を入力してください!!");
				objtext.value = "";
				objtext.focus();
				return false;		
			}
		}
	}
//숫자로만 되어있는지 확인
function onlyNum(objtext1){
	if (isNumber(objtext1)) {
		return true;
	} else {	
		alert("Only numbers are allowed.");
		objtext1.value = "";
		objtext1.focus();
		return false;		
	}	
}

function msgLogin(r_itcode) {
	window.open("/inc/pop_login.asp","login","width=400,height=300");
	
	var form = document.thisForm;

	form.action = "/inc/pop_login.asp";
	form.target = "login";
	form.h_cd.value = r_itcode;
	form.submit();
}	

/*
 이메일을 체크하기 위한 함수
 인수로는 element(input type=text)를 받음.

 정규 표현식 ==> 

^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$
                 ^[0-9a-zA-Z] --> 첫글자는 숫자또는 영문자
                         [-_\.]? --> - 또는 _ 또는 . 이 0번 또는 1번
                  [0-9a-zA-Z] --> 숫자또는 영문자
([-_\.]?[0-9a-zA-Z])*@ --> @앞에(-,_,. 이 0~1번, 그 뒤에는 숫자,영문자)이 한번 또는 여러번
                  [0-9a-zA-Z] --> @ 뒤에는 숫자 또는 영문자
                          [-_\.]? --> - 또는 _ 또는 . 이 0번 또는 1번
([-_\.]?[0-9a-zA-Z])*\. --> . 앞에(-,_,. 이 0~1번, 그 뒤에는 숫자,영문자)이 한번 또는 여러번
               [a-zA-Z]{2,3}$ --> . 뒤 마지막 문자열은 영문자가 2~3개

   가능한 형식 예 : aaa@bbb.com  a7a.dd@bbbb.pe.kr.com  777_d-3@bbb.com
불가능한 형식 예 : -aaa@bbb.com  a#aa@co.kr  aa@bb@cc.com  aaa@bbb.c  aaa@bbb.comp
*/
function valid_email(ele) { 
 //re=/^[a-z]+([0-9\.\-]*_?\w+)*@([0-9_\.\-a-z]+)*(\w{1,3}|[0-9]{1,3})$/i; 
 re=/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*[0-9a-zA-Z-]@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i; 
 //re=/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/i;

 if(re.test(ele.value)) { 
  alert("Valied type");
  return true; 
 } else { 
  alert("Invalid email type.\n Pleaes input again.\n"); 
  ele.select(); 
  ele.focus(); 
  return false; 
 } 
} 

function eScroll() {	
	/*********************************
	 * eScroll ( eNamoo scroll script )
	 * by mirrh
	 * 2006.07.16
	 ********************************/
	
	var thisObj = this;
	this.timeObj = null;
	
	/*** 설정변수 ***/
	this.mode = "top";				// 스크롤 방향 (top|left)
	this.width = "100%";			// 라인당 가로값 (pixel)
	this.height = 20;				// 라인당 높이값 (pixel)
	this.line = 1;					// 출력 라인수
	this.delay = 50;				// 스크롤후 딜레이 시간
	this.speed = 1;					// 스크롤 속도 (작을수록 빠름)
	this.id = 'obj_eScroll';		// 객체 id (클래스 다중 사용시 id 다르게 지정 요망)
	this.contents = new Array();	// 출력 내용 (배열로 내용 지정 요망)
	this.align = "left";			// 내용 aligne
	this.valign = "middle";			// 내용 valigne

	/*** 내장변수 ***/
	this.gap = 0;
	this.direction = 1;

	this.add = add;
	this.exec = exec;
	this.start = start;
	this.stop = stop;
	this.scroll = scroll;
	this.direct = direct;
	this.go = go;

	function add(str)
	{
		this.contents[this.contents.length] = str;
	}
	
	function exec()
	{
		this.basis = (this.mode == "left") ? this.width : this.height;
		var outWidth = this.width * ((this.mode == "left") ? this.line : 1);
		var outHeight = this.height * ((this.mode == "top") ? this.line : 1);
		
		var outline = "<div id=" + this.id + " style='overflow:hidden;width:" + outWidth + ";height:" + outHeight + "'><table></table></div>";
		document.write(outline);
		this.obj = document.getElementById(this.id);
		
		var tb = this.obj.appendChild(document.createElement("table"));
		var tbody = tb.appendChild(document.createElement("tbody"));
		tb.cellPadding = 0 ;
		tb.cellSpacing = 0 ;
		tb.onmouseover = function(){thisObj.stop()};
		tb.onmouseout = function(){thisObj.start()};
		
		if (this.mode=="left") var tr = tbody.appendChild(document.createElement("tr"));
		for (k in this.contents){
			if (this.mode=="top") var tr = tbody.appendChild(document.createElement("tr"));
			var td = tr.appendChild(document.createElement("td"));
			td.noWrap = true;
			td.style.width = this.width;
			td.style.height = this.height;
			td.style.textAlign = this.align;
			td.style.verticalAlign = this.valign;
			td.innerHTML = this.contents[k];
		}
		
		var len = (this.contents.length<this.line) ? this.contents.length : this.line;
		for (i=0;i<len;i++){
			if (this.mode=="top") var tr = tbody.appendChild(document.createElement("tr"));
			td = tr.appendChild(document.createElement("td"));
			td.noWrap = true;
			td.style.width = this.width;
			td.style.height = this.height;
			td.style.textAlign = this.align;
			td.style.verticalAlign = this.valign;
			td.innerHTML = this.contents[i];
		}

		this.obj.parent = this;
		this.tpoint = this.basis * this.contents.length;
		this.start();
	}

	function scroll() {
		var out = (this.mode=="left") ? this.obj.scrollLeft : this.obj.scrollTop;
		if (out%this.basis==0){
			this.gap++;
			if (this.gap>=this.delay) this.gap = 0;
		}
		if (!this.gap){
			var ret = (out==this.tpoint) ? this.direction : out + this.direction;
			if (ret<0) ret = this.tpoint + ret;
			if (this.mode=="left") this.obj.scrollLeft = ret;
			else this.obj.scrollTop = ret;
		}
	}

	function start() {
		this.timeObj = window.setInterval("(document.getElementById('" + this.id + "')).parent.scroll()",this.speed);
	}

	function stop()
	{
		clearTimeout(this.timeObj);
	}

	function direct(d)
	{
		this.direction = d;
	}

	function go()
	{
		this.stop();
		var out = (this.mode=="left") ? this.obj.scrollLeft : this.obj.scrollTop;
		var ret = (parseInt(out / this.basis) + this.direction) * this.basis;
		if (ret<0) ret = this.tpoint + ret;
		if (ret>this.tpoint) ret = this.basis;
		if (this.mode=="left") this.obj.scrollLeft = ret;
		else this.obj.scrollTop = ret;
	}

}

/*
' ------------------------------------------------------------------
' Function    : inputComma
' Description : 천단위마다 콤마찍는 스크립트
' Argument    : 
' Return      : 
' Use					: onkeyup="inputComma(this)" onkeydown="return inputNumberCheck(this, event)"
' ------------------------------------------------------------------
*/
function inputComma(f1) {
    var inputstr = f1.value;
    tmp=inputstr.split('.');
    var str = [];
    var v=tmp[0].replace(/,/gi,''); 

    for(var i=0;i<=v.length;i++){ 
      str[str.length]=v.charAt(v.length-i);
      if(i%3==0&&i!=0&&i!=v.length){
        str[str.length]='.';
      }
    }

    str=str.reverse().join('').replace(/\./gi,','); 
    f1.value = (tmp.length==2)?str+'.'+tmp[1]:str;
}

function inputNumberCheck(f1, event){
	var pointIndex = -1; 
  // .'s key code is 190 & 110, ←'s key code is 8 del's key code 46 tab's key code 9
  if (( event.keyCode<96 || event.keyCode>105) 
    &&( event.keyCode<48 || event.keyCode>57)
    && event.keyCode != 190 && event.keyCode != 110 
    && event.keyCode != 8 && event.keyCode != 46) {
    // 숫자, 소수점, del, backspace, tab을 제외한 다른 키를 무시
    if ( event.keyCode == 9 ) {
      return true;
    }
    return false;
  } 

	for( var i=0;i<f1.value.length;i++) {
  	if("."==f1.value.substring(i,i+1)) {
    // 소수점 위치
    	pointIndex = i;
      break;
     }
  }

  if ( event.keyCode == 190 || event.keyCode == 110) {
  	if ( pointIndex >= 0 ) {
    	// 소수점이 찍혀 있는 경우에 다시 소수점을 찍을 경우 무시한다. 
      return false;
    }
	} else {
  	if ( pointIndex < 0 ){
     	if ( f1.value.length >= 15 ) {
       	alert("Less than 15 characters.");
       	return false;
     	}
    } else {
    	if ( (f1.value.length - pointIndex) > 15 ) {
      	alert("Less than 15 decimal point.");
        return false;
      }
    }
  }
}

/*
' ------------------------------------------------------------------
' Function    : 
' Description : top_memu부분 롤오버
' Argument    : 
' Return      : 
' Use					: onkeyup="inputComma(this)" onkeydown="return inputNumberCheck(this, event)"
' ------------------------------------------------------------------
*/
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(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 uf_popResize() {
	var thisX = document.getElementById("offsetTable").offsetWidth;
	var thisY = document.getElementById("offsetTable").offsetHeight;
	var maxThisX = screen.width - 50;
	var maxThisY = screen.height - 80;
	if (window.navigator.userAgent.indexOf("SV1") != -1){
	var marginY = 50; //마지막 수는 상황에따라 알맞게 넣으세요. (템플릿의 헤더높이 + 풋터 높이 + 알파)
	} else {
	var marginY = 29; //마지막 수는 상황에따라 알맞게 넣으세요. (템플릿의 헤더높이 + 풋터 높이 + 알파)
	}
	
	if (thisX > maxThisX) {
		window.document.body.scroll = "yes";
		thisX = maxThisX;
	}
	if (thisY > maxThisY - marginY) {
		window.document.body.scroll = "yes";
		thisX += 19;
		thisY = maxThisY - marginY;
	}
	
	var windowX = (screen.width - (thisX+10))/2;
	var windowY = (screen.height - (thisY+marginY))/2 - 20;
//	window.moveTo(windowX,windowY);
	//alert(thisX+10);
	//alert(thisY+marginY);
	window.resizeTo(thisX+10,thisY+marginY);
}

/****** 팝업창 리사이즈 **************************************************************/

function fchkJumin(no) {
 	var num;

 	num=(parseInt(no.charAt(0))*2) + (parseInt(no.charAt(1))*3) + (parseInt(no.charAt(2))*4);
 	num+=(parseInt(no.charAt(3))*5)+(parseInt(no.charAt(4))*6)+(parseInt(no.charAt(5))*7);
  num+=(parseInt(no.charAt(6))*8)+(parseInt(no.charAt(7))*9)+(parseInt(no.charAt(8))*2);
  num+=(parseInt(no.charAt(9))*3)+(parseInt(no.charAt(10))*4)+(parseInt(no.charAt(11))*5);
  num=11-(num%11);
  check = (no.charAt(12)==num)?"y":"n";
 
  if(check=="y") {
    return false;
  } else {       
 		alert("주민등록번호를 다시 확인해주세요.");
 		return true;
  }
}
//-->                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
