﻿<!-- 
//오류메세지 표준
var INSERTSUCCESS = "성공적으로 등록되었습니다.";
var UPDATESUCCESS = "성공적으로 수정되었습니다.";
var DELETESUCCESS = "성공적으로 삭제되었습니다.";
var INSERTFAIL    = "등록에 실패했습니다.";
var UPDATEFAIL    = "수정에 실패했습니다.";
var DELETEFAIL    = "삭제에 실패했습니다.";

var FILESUCCESS   = "FILE이 성공적으로 UPLOAD 되었습니다.";
var FILEFAIL      = "FILE UPLOAD에 실패했습니다.";
var FILEOVERFAIL  = "FILE 용량을 초과하였습니다.";
var FILEDOWNFAIL  = "파일이 존재하지 않거나, 읽을수 없습니다.\n다시 시도해 주십시오.";

var LOGINFAILURE  = "아이디 혹은 비밀번호가 정확하지 않습니다.\n다시 시도해 주십시오.";

var ADMINSESSIONFAILURE = "사용권한이 없습니다.";

var INPUTFAIL = "\" 또는 ' 문자는 입력하실수 없습니다.";
var NOTEMAIL = "이메일 주소형식이 아닙니다.\n다시 입력해 주십시오.";

var LOGINFAIL         = "로그인이 되어 있지 않습니다.\n\n로그인 페이지로 이동합니다.";
var ADMINCHECKFAIL    = "해당 페이지는 관리자 권한이 필요한 페이지 입니다.";
var MASTERCHECKFAIL   = "해당 페이지는 기업마스터 권한이 필요한 페이지 입니다.";
var COMPANYCHECKFAIL  = "해당 페이지는 기업회원 권한이 필요한 페이지 입니다.";
var PERSONALCHECKFAIL = "해당 페이지는 기업회원 권한이 필요한 페이지 입니다.";

var PORTALCDFAIL = "지역코드번호가 설정되어 있지 않습니다.\n\n회원정보수정페이지로 이동합니다.\n\n회원정보수정페이지에서 공단분류를 선택하세요";

var KLOGIS_LOGIN_FAIL = "회원님은 물류사이트의 회원이십니다.\n\n동일한 아이디로 e-클러스터 사이트에 회원가입 하시면 별도의 Login 없이 이용하실 수 있습니다.";

//onBlur
/*-----------------------------------------------------
  인자로 입력되는 Form Element의 Value를 체크하고
  YYYYMMDD에서 YYYY-MM-DD 형식으로 변환
-----------------------------------------------------*/
function fnValiDate() {
  var dateForm = event.srcElement;
  if(!isNum(dateForm, "-")) return;
	dateVal = dateForm.value;
	if(dateVal != "") {
		if( dateVal.length!=6 && dateVal.length!=8 && dateVal.length!=10 ) {
			alert("날자형식은 yyyyMMdd 또는 yyyyMM 형식으로 하여주십시오");
			dateForm.select();
			return;
		}
		else if(dateVal.length==6) {
			tYear  = dateVal.substring(0,4);
			tMonth = dateVal.substring(4,6);
			if( (parseFloat(tMonth)<1) || (parseFloat(tMonth)>12) ) {
				alert("월은 01~12 사이의 값을 입력해주십시오.");
				dateForm.focus();
				return;
			}

			dateForm.value = tYear + "-" + tMonth;
		}
		else if(dateVal.length==8) {
			tYear  = dateVal.substring(0,4);
			tMonth = dateVal.substring(4,6);
			tDate  = dateVal.substring(6);
			if( (parseFloat(tMonth)<1) || (parseFloat(tMonth)>12) ) {
				alert("월은 01~12 사이의 값을 입력해주십시오.");
				dateForm.focus();
				return;
			}

			tempDate = new Date(tYear, (parseFloat(tMonth)-1), tDate);
			if(tempDate.getMonth()!=parseFloat(tMonth)-1) {
				alert("날자가 해당월의 최종일을 넘었습니다.");
				dateForm.focus();
				return;
			}

			dateForm.value = tYear + "-" + tMonth + "-" + tDate;
		}
		else if(dateVal.length==10) {
			if(dateVal.charAt(4)!="-" || dateVal.charAt(7)!="-") {
				alert("날자형식은 yyyy-MM-dd 형식으로 하여 주십시오");
				dateForm.focus();
				return;
			}
		}
	}
}

function checkValiDate(el) {
  var dateForm = el;
  if(!isNum(dateForm, " ")) return;
	dateVal = dateForm.value;
	if(dateVal != "") {
		if( dateVal.length!=6 && dateVal.length!=8 && dateVal.length!=10 ) {
			alert("날자형식은 yyyyMMdd 또는 yyyyMM 형식으로 하여주십시오");
			dateForm.select();
			return;
		} else if(dateVal.length==8) {
			tYear  = dateVal.substring(0,4);
			tMonth = dateVal.substring(4,6);
			tDate  = dateVal.substring(6);
			if( (parseFloat(tMonth)<1) || (parseFloat(tMonth)>12) ) {
				alert("월은 01~12 사이의 값을 입력해주십시오.");
				dateForm.focus();
				return;
			}

			tempDate = new Date(tYear, (parseFloat(tMonth)-1), tDate);
			if(tempDate.getMonth()!=parseFloat(tMonth)-1) {
				alert("날자가 해당월의 최종일을 넘었습니다.");
				dateForm.focus();
				return;
			}

			dateForm.value = tYear + tMonth + tDate;
		}
	}
}

//onFocus
  /*-----------------------------------------------------
      YYYY-MM-DD 형식을 YYYYMMDD형식으로 변환
  -----------------------------------------------------*/
function fnReplDate() {
  var dateForm = event.srcElement;
	var temp = "";
	for(i=0; i<dateForm.value.length; i++) {
		if(dateForm.value.charAt(i)=='-')
			continue;
		temp += dateForm.value.charAt(i);
	}
	dateForm.value = temp;
  dateForm.select();
}


  /*-----------------------------------------------------
      YYYY-MM-DD 형식의 날자 데이터간의 대/소 비교
      -1  : dtFrom <  dtTo
      0   : dtFrom == dtTo
      1   : dtFrom >  dtTo
  -----------------------------------------------------*/
function fnCompDate(dtFrom, dtTo) {
  var re = /-/g;

  dtFrom  = dtFrom.replace(re, "");
  dtTo    = dtTo.replace(re, "");

  if ( (dtFrom.length < 1) || (dtTo.length < 1) )
    return 0;

  if (dtFrom.length < 8)
    dtFrom = parseInt(dtFrom + "00");
  if (dtTo.length < 8)
    dtTo = parseInt(dtTo + "00");

  if ( dtFrom < dtTo )
    return -1;
  else if ( dtFrom > dtTo )
    return 1;
  else
    return 0;
}

/*-----------------------------------------------------
  인자로 입력되는 Form Element의 Value를 체크하고
  HHMM에서 HH:MM 형식으로 변환
-----------------------------------------------------*/
function fnValidTime() {
  var objTime = event.srcElement;
  var iHour, iMin;

  if (objTime.value != "") {
    if ( (isNaN(objTime.value)) || (objTime.value.length != 4) ) {
			alert("시간형식은 HHMI 형식으로 입력하십시오.");
			objTime.select();
			return;
    }
    iHour = parseInt(objTime.value.substring(0,2));
    iMin  = parseInt(objTime.value.substring(2,4));
    if (iHour>23) {
			alert("시간은 0~23 사이의 값을 입력해 주십시오.");
			objTime.select();
			return;
    }
    if (iMin>59) {
			alert("분은 0~59 사이의 값을 입력해 주십시오.");
			objTime.select();
			return;
    }
    objTime.value = fnMakeNumFormat(iHour, 2, "0") + ":" + fnMakeNumFormat(iMin, 2, "0");
  }
}

  /*-----------------------------------------------------
      HH:MM 형식을 HHMM형식으로 변환
  -----------------------------------------------------*/
function fnReplTime() {
  var objTime = event.srcElement;
  var re = /:/g;
  objTime.value = objTime.value.replace(re, "");
  objTime.select();
}

  /*-----------------------------------------------------
	인자로 입력된 값을 3자리 단위로 "," 추가
  -----------------------------------------------------*/
function fnMakeComma()
{

  var num = event.srcElement.value;
  num = fnDelSeparator(num, ",");

  var code = event.keyCode;
/*
  if(code==229 || code==8 || code==13) return;
  
  if((code<48 || code>57) && (code<96 || code>105) && code!=190 && code!=110) {
	  num = num.substring(0, num.length-1);
	  event.srcElement.value = num;
  }
*/
  var aNum = num.split(".");

  if ( aNum.length > 2 ) {
    alert("소수점은 1개까지만 허용됩니다.");
    event.srcElement.select();
    return;
  }

  num = aNum[0];

  new_num = "";
  num = num + new_num;

  for(i=0;i<num.length;i++) {
    new_num=num.substr(num.length-i-1,1) + new_num;
    if( num.substr(num.length-i-2,1) !=  '-' ) {
      if (  ((i+1) % 3 == 0  ) && ( ((i+1) != num.length)  )) {
        new_num = "," + new_num ;
      }
    }
  }

  if (aNum.length > 1)
    event.srcElement.value = new_num + "." + aNum[1];
  else
    event.srcElement.value = new_num;
}

function fnMakeComma2(val){
	var new_num = "";
	for(i=0;i<val.length;i++) {
		new_num=val.substr(val.length-i-1,1) + new_num;
		if( val.substr(val.length-i-2,1) !=  '-' ) {
			if (  ((i+1) % 3 == 0  ) && ( ((i+1) != val.length)  )) {
				new_num = "," + new_num ;
			}
		}
	}
	return new_num;
}

/*-----------------------------------------------------
	인자로 입력된 값에서 "," 제거
  -----------------------------------------------------*/
function fnRmComma()
{

  var num = event.srcElement.value;

  var re = /,/g;

  new_num = num.replace(re, "");

  event.srcElement.value =  new_num;
  event.srcElement.select();
}

  /*-----------------------------------------------------
    # 숫자 src 의 자릿수가 전체 길이 len 보다 작으면 남은 공간을 prefix로 채운다.
  -----------------------------------------------------*/
function fnMakeNumFormat(src, len, prefix) {
  var sTmp = "";
  src = src + "";
  if (parseInt(src.length) < parseInt(len)) {
    for(var p=0; p<(len-src.length); p++)
      sTmp = sTmp + prefix;
    return sTmp + src;
  }
  else
    return src;
}

  /*-----------------------------------------------------
      인자로 입력되는 문자열의 바이트 수 반환
      ( 한글: 2바이트, 영문: 1바이트로 계산 )
  -----------------------------------------------------*/
function getByteLength(str)
{
	var len = 0;
	if ( str == null ) return 0;
	for(var i=0;i<str.length;i++){
		var c = escape(str.charAt(i));
		if ( c.length == 1 ) len ++;
		else if ( c.indexOf("%u") != -1 ) len += 2;
		else if ( c.indexOf("%") != -1 ) len += c.length/3;
	}
	return len;
}

function fnNVL(arg) {
  if (arg == null)
    return "";
  else
    return arg;
}

  /*-----------------------------------------------------
    # 특정 콤보박스에서 이름으로 인덱스 찾기
  -----------------------------------------------------*/
function fnGetIndexBySelName(obj, sTxt) {
  for(var g=0; g<obj.options.length; g++) {
    if (obj.options[g].text == sTxt)
      return parseInt(g);
  }
}

  /*-----------------------------------------------------
    # Form Name 저장 배열에서 이름으로 인덱스 찾기
  -----------------------------------------------------*/
function fnGetIdxByFrmName(sFrmNm) {
  for(k=0; k<g_aFrmName.length; k++){
    if (g_aFrmName[k][0] == sFrmNm) {
      break;
    }
  }
  return parseInt(k);
}


/*-----------------------------------------------------------
	# 인자로 받은 val값을 delim을 구분자로 짤라 반환한다.
	Array Type으로 반환
  두 delim 간에 문자가 없는 경우(즉, 두 delim이 맞붙은 경우)
  빈 배열요소로서 포함시키기 위해 수정
-----------------------------------------------------------*/
function token(val, delim) {
	var returnval = new Array();
	var count = 0;
  var re;
  re = /\$/g;
  delim = delim.replace(re, "\\$");
  re = /\*/g;
  delim = delim.replace(re, "\\*");
  re = /\^/g;
  delim = delim.replace(re, "\\^");
/*
	for(si=0, j=0; si<val.length; si++) {
		if(val.charAt(si) == delim) {
			returnval[j] = val.substring(count, si);
			count = si+1;
			j++;
		}
	}
*/
  if ((delim.split("$")).length > 1)
    count++;
  if ((delim.split("*")).length > 1)
    count++;
  if ((delim.split("^")).length > 1)
    count++;

  re = new RegExp(delim, "g")
  var idx;
  while((idx=val.search(re)) > -1) {
    returnval.push(val.substring(0, idx));
    val = val.substring(idx+delim.length-count);
  }
  returnval.push(val);


	return returnval;
}

/*--------------------------------------------------
	# 숫자 입력 Check함수
--------------------------------------------------*/
function isNum(obj, delim) {
	if(isNaN(fnDelSeparator(obj.value, delim))) {
		alert("숫자만 입력하여 주십시오");
		obj.value = "";
		obj.focus();
		return false;
	}

	return true;
}

/*--------------------------------------------------
	# String 변수에서 구분자를 떼어낸다.
--------------------------------------------------*/
function fnDelSeparator(val, delim) {
	var temp = "";
	for(var i=0; i<val.length; i++) {
		if(val.charAt(i) == delim) continue;
		temp += val.charAt(i);
	}

	return temp;
}
/*--------------------------------------------------
# 숫자 입력 Check함수
--------------------------------------------------*/
function checkNumber(obj) {
if(isNaN(obj.value)) {
	alert("숫자만 입력하여 주십시오");
	obj.value = "";
	obj.focus();
	return false;
}

return true;
}
/*-----------------------------------------------------
# 현재 선택중인 combobox의 Text를 반환한다.
-----------------------------------------------------*/
function fnGetText(obj) {
	var returnval = "";
	for(var i=0; i<obj.length; i++) {
		if(obj.options[i].selected && obj.options[i].value != "-1")
			returnval = obj.options[i].text;
	}
	return returnval;
}

/*-----------------------------------------------------
# 특정 Text와 동일한 combobox의 Text에 해당하는 Option의 Value를 설정한다.
  txt 에 해당하는 옵션이 없을 경우, 새 option을 생성, value=""로 한다.
-----------------------------------------------------*/
function fnSetValueByTxt(obj, txt) {
	var iCurSel = -2;
	for(var iR=0; iR<obj.length; iR++) {
		if(obj.options[iR].text == txt) {
			iCurSel =obj.options[iR].value;
      obj.options[iR].selected = true;
		}
	}

  if ( (txt.length > 0) && (iCurSel == -2) ) {
    obj.options.add(new Option(txt, ""));
    obj.options.selectedIndex = obj.options.length-1;
  }

}

/*#########################################################
  ShowModal[less]Dialog 사용 시, window.returnValue 값의
  설정 및 추출 함수
#########################################################*/

/*-----------------------------------------------------
# Key=Value_$%_Key=Value ... 형식의 문자열을 받아서,
  원하는 Value 를 추출한다.
-----------------------------------------------------*/
function fnGetRetValOfKeySet(sSrc, sKey) {
  var aKeySet, aRowSet;
  var sRetVal = "";

  aKeySet = sSrc.split(TOKEN_DELIMITER);

  for(var x=0; x<aKeySet.length; x++) {
    aRowSet = aKeySet[x].split("=");
    if ( aRowSet[0] == sKey ) {
      sRetVal = aRowSet[1];
      break;
    }
  }

  return sRetVal;
}

/*-----------------------------------------------------
# Key=Value_$%_Key=Value ... 형식의 문자열로
  Key & Value Set을 구성하여 반환한다.
-----------------------------------------------------*/
function fnAddRetValOfKeySet(sSrc, sKey, sVal) {
  if (sSrc.length < 1)
    return sKey + "=" + sVal;
  else
    return sSrc + TOKEN_DELIMITER + sKey + "=" + sVal;
}

/*-----------------------------------------------------
# 입력된 인자의 앞,뒤 공백문자를 잘라낸다.
  동작mode(0:앞&뒤, 1:앞, 2:뒤)
-----------------------------------------------------*/
function fnTrimStr(sVal, mode) {
  var re;

  if (mode == null) mode = 0;
  switch(mode) {
    case 0:
      re = /^\s|\s$/g;
      break;
    case 1:
      re = /^\s/g;
      break;
    case 2:
      re = /\s$/g;
      break;
  }

  while(sVal.search(re) != -1)
    sVal = sVal.replace(re, "");

  return sVal;
}

// onKeyUp
/*------------------------------------------------------
# input type="text" 인 경우 입력글자중 " , ' 포함시 alert를 한다.
---------------------------------------------------------*/
function chkQuot(form){
	i = form.value.indexOf("\"");
	j = form.value.indexOf("'");
	if(i != -1 || j != -1){
		alert(INPUTFAIL);
		form.value = form.value.substring(0,form.value.length-1);
	}  
	form.focus();
}
// onBlur
/*------------------------------------------------------
# email 형식인지 체크
---------------------------------------------------------*/
function chkEmail(form){
	if (form.value.length > 0 ){
		var fmt3 = /^[-!#$%&\'*+\\./0-9=?A-Z^_a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_a-z{|}~]+$/;
		if (!fmt3.test(form.value)){
			alert (NOTEMAIL);
			form.value = "";
			form.focus();
			return;
		}
	}
  }


/**
 * 우편번호창이 1개일 경우
 * form : form객체
 * zipText   : 우편번호가 들어갈 TextBox name
 * jusoText1 : 오픈창에서 뿌려주는 주소창 name
 * jusoText2 : 입력받을 주소창 name
**/
function openZipcodeWindow1(form, zipText, jusoText1, jusoText2) {
	var param = "formName=" + form.name;
	param += "&zipText1=" + zipText;
	param += "&jusoText1=" + jusoText1;
	param += "&jusoText2=" + jusoText2;
	
	var winl = (screen.width - 448) / 2;
	var wint = (screen.height - 440) / 2;

	window.open("../../common/zipcodeSearch.jsp?" + param, "zipWin", "width=448,height=440,top="+wint+",left="+winl);
	openWindowAtCenter();
}


/**
 * 우편번호창이 2개일 경우
 * form : form객체
 * zipText1  : 우편번호가 들어갈 첫번째 TextBox name
 * zipText2  : 우편번호가 들어갈 두번째 TextBox name
 * jusoText1 : 오픈창에서 뿌려주는 주소창 name
 * jusoText2 : 입력받을 주소창 name
**/
function openZipcodeWindow2(form, zipText1, zipText2, jusoText1, jusoText2) {
	var param = "formName=" + form.name;
	param += "&zipText1=" + zipText1;
	param += "&zipText2=" + zipText2;
	param += "&jusoText1=" + jusoText1;
	param += "&jusoText2=" + jusoText2;
	
	var winl = (screen.width - 450) / 2;
	var wint = (screen.height - 202) / 2;

	window.open("../../common/zipcodeSearch.jsp?" + param, "zipWin", "width=450,height=202,scrollbars=no,top="+(wint-200)+",left="+winl);
}

function num_only(){
	if(event.keyCode==229 || event.keyCode==8 || event.keyCode==13 || event.keyCode==16 ||
		event.keyCode==37 || event.keyCode==38 || event.keyCode==39 || event.keyCode==40 ||
		event.keyCode==46 || event.keyCode==9) return;
	if((event.keyCode<48 || event.keyCode>57) &&
		(event.keyCode<96 || event.keyCode>105)) {
		if(event.keyCode != 190 && event.keyCode != 110){
			event.returnValue=false;
			return;
		}
	}
}

function checkYearMonth(form){
	var length = form.value.length;
	if(length != 6){
		alert("시간형식은 YYYYMM 형식으로 입력하십시오");
		form.value = "";
		form.focus();
		return false; 
	}else{
		var year  = form.value.substring(0,4);
		var month = form.value.substring(4,6);
		if((parseFloat(month)<1) || (parseFloat(month)>12)){
			alert("월은 01~12 사이의 값을 입력해주십시오.");
			form.value = year;
			form.focus();
			return false;
		}else{
			return true;
		}
	}
}

function fnMakeRegNo() {
//	alert(event.keyCode);
	var obj = event.srcElement;
	if(event.keyCode==8 || event.keyCode==13 || 
	   event.keyCode==37 || event.keyCode==39 ||
	   event.keyCode==46) return;
	if((event.keyCode<48 || event.keyCode>57) &&
		(event.keyCode<96 || event.keyCode>105)) {
		if(event.keyCode != 190 && event.keyCode != 110){
			event.returnValue=false;
			obj.focus();
			return;
		}
	}

	var val = obj.value;

	if(val.length==6) obj.value = val + "-";
}

function fnMakeCompRegNo() {
	var obj = event.srcElement;
	if(event.keyCode==8 || event.keyCode==13 || 
	   event.keyCode==37 || event.keyCode==39 ||
	   event.keyCode==46) return;
	if((event.keyCode<48 || event.keyCode>57) &&
		(event.keyCode<96 || event.keyCode>105)) {
		if(event.keyCode != 190 && event.keyCode != 110){
			event.returnValue=false;
			obj.focus();
			return;
		}
	}

	var val = obj.value;

	if(val.length==3) obj.value = val + "-";
	else if(val.length==6) obj.value = val + "-";
}

function checkSpace(str) {   
	
	if (str == null){
		return false;
	}
	var len = str.length;
	for(var i = 0; str.charAt(i) == ' '; i++);   
		str = str.substring(i, len);
		
	return str;
}

/**
 * 입력값에 특정 문자(chars)가 있는지 체크
 * 특정 문자를 허용하지 않으려 할 때 사용
 * ex) if (Check_Chars(form.name,"!,*&^%$#@~;")) {
 *         alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
 *     }
 */
function Check_Chars(input,chars) {
    for (var inx = 0; inx < input.value.length; inx++) {
       if (chars.indexOf(input.value.charAt(inx)) != -1)
           return true;
    }
    return false;
}
// 유효한 날짜 체크
function checkDate(stryyyy,strmm,strdd)
{ 
	
	var yyyy = stryyyy ;
	var mm = strmm ;
	var dd = strdd ;

	if (yyyy < "1980" || yyyy > "2050" )
	    return false ;
	if (mm < "01" || mm > "12" )
	    return false ;
	if (dd < "01" || dd > "31" )
	    return false ;

	if (mm == "02" || mm == "04" || mm == "06" || mm == "09" || mm == "11")
	{
		if (dd > "30")
		    return false ;
		
		var modBy4 = yyyy % 4 ;
		var modBy100 = yyyy % 100 ;
		var modBy400 = yyyy % 400 ;

/*
		if (mm == "02")
		   if (dd > "29")
		      return false ;

		if ((modBy4 == 0 && modBy100 != 0 || modBy400 == 0)) 
		   if (mm == "02")
		      if (dd > "28")
			return false ;
*/	

		if ((modBy4 == 0 && modBy100 != 0 || modBy400 == 0)) {
		   if (mm == "02")
		      if (dd > "29")
		   	return false ;
			
		} else {
			if (mm == "02")
			   if (dd > "28")
				return false ;

		}

		//return false;
	}

	return true; 
}


// 컴마 삭제 ( string )
function del3Comma ( str )
{
	str = str==null?"":str;
    str_new = "";   
    str = checkZero ( str );
    
	if ( str.length > 0 )
		for ( var i = 0 ; i < str.length ; i++ )
			if ( str.charAt (i) != ',' )
				str_new += str.charAt (i);

	return str_new;
}



// 콤마 추가, 정수부 길이 체크, 소수점 체크( object, 정수 자리수, 소수자리수 )
function set3Comma( obj, num, point )
{
    str =  obj.value ;
    var strTemp = "";       // 소수점구분
    var strArr ;            // 소수점구분 
    var flag = "1";         // 소수점구분
    var reValue = "";
    var minus = "" ;
    str = checkZero ( str );

    if ( str.indexOf ( "-" ) != -1 )
    {
        minus = "-";
        str = str.substring ( 1, str.length );
    }

    if ( str.indexOf ( "." ) == -1 )
        strTemp = del3Comma ( str ) ;
    else
    {
        strArr = str.split ( "." ) ;
        strTemp = del3Comma ( strArr[0] );
        if (strTemp == "" ) strTemp = "0";
        flag = "2" ;
    }

    if ( !isNumStr ( strTemp ) )
        obj.select ( );

    if ( flag == 2 )
    {
        if ( !isNumStr ( strArr[1] ) )
            obj.select ( );

        if ( strArr[1].length > point )
        {
            alert ( "소숫점이하 " + point +" 자리만 입력가능합니다.");
            obj.select ( );
        }
    }

    if ( strTemp.length <= num )
    {
        for( i=0; i< strTemp.length; i++)
        {
                if(i > 0 && (i%3)==0)
                    reValue = strTemp.charAt(strTemp.length - i -1) + "," + reValue;
                else
                    reValue = strTemp.charAt(strTemp.length - i -1) + reValue;
        }

        if ( flag == 2 ){
            if( strArr[1] == "0" )
                reValue = reValue
            else    
                reValue = reValue + "." + strArr[1] ;
            if( reValue == "" || reValue == "0" )
                reValue = "0";
        }else{
            reValue = reValue ; //+ "." + "00" ;
        }
        reValue = minus + reValue ;
        obj.value = reValue ;
    }
    else
    {
        alert ( "정수부분은 " + num + "자리 이하만 입력가능합니다." );
        obj.select ( );
    }
}


/*
function fnCheckRegNum(obj) {
	var val = obj.value;
	if(val.length!=13 && val.length!=14) {
		alert("값을 정확히 입력해 주십시오");
		obj.value="";
		obj.focus();
	}
	if(isNum(obj, "-")) {
		if(obj.length==14) 
	}
}
*/

//onKeyup
/*-----------------------------------------------------
인자로 입력된 값을 3자리 단위로 "," 추가하면서 소수점 자리 체크
ex) fnMakeComma1('0') : 자릿수 체크 안함
	fnMakeComma1('2') : 소숫점 2째자리까지 체크
필히 onKeyDown이벤트에 num_only()를 걸어준다.
-----------------------------------------------------*/
function fnCommaLimit(val)
{
	var numOrig  = event.srcElement.value;
	var num      = fnDelSeparator(numOrig, ",");
	var aNum     = num.split(".");
	var code     = event.keyCode;

	if(code==229 || code==9  || code==8  || code==16 || code==46 ||
		code==13  || code==37 || code==38 || code==39 || code==40) return;

	if((code<48 || code>57) && (code<96 || code>105) && code!=190 && code!=110) {
		num = num.substring(0, num.length);
		event.srcElement.value = num;
	}

	var nPoint = numOrig.indexOf(".",0);
	if(nPoint > 0 && (parseInt(val)>0)){
		var sText = numOrig.substr(nPoint+1,numOrig.length);
		if(sText.length > val){
			alert("소수점은 " + val + "째자리까지만 허용됩니다.");
			numOrig = numOrig.substring(0, nPoint + parseInt(val)+1);
			event.srcElement.value = numOrig;
			return;
		}
	}

	if ( aNum.length > 2 ) {
		alert("소수점은 1개까지만 허용됩니다.");
		num = num.substring(0, num.length -1);
		event.srcElement.value = num;
		event.srcElement.select();
		return;
	}

	num = aNum[0];

	new_num = "";
	num = num + new_num;

	for(i=0;i<num.length;i++) {
		new_num=num.substr(num.length-i-1,1) + new_num;
		if( num.substr(num.length-i-2,1) !=  '-' ) {
			if (  ((i+1) % 3 == 0  ) && ( ((i+1) != num.length)  )) {
			new_num = "," + new_num ;
			}
		}
	}

	if (aNum.length > 1)
		event.srcElement.value = new_num + "." + aNum[1];
	else
		event.srcElement.value = new_num;

}

/*-----------------------------------------------------
  숫자만 입력 가능 하게 한다.	시작 
-----------------------------------------------------*/
function onlyNumberForPlan() {
    var objEv = event.srcElement;
 if(!isNumComma(objEv)){
        alert("숫자만 입력가능합니다.");
        objEv.value = "";
        objEv.focus();
        return false;
    }
    return true;
}
function isNumComma(input) {
    var chars = "0123456789";
    return containsCharsOnly(input,chars);
}
function containsCharsOnly(input,chars) {
    for (var inx = 0; inx < input.value.length; inx++) {
       if (chars.indexOf(input.value.charAt(inx)) == -1)
           return false;
    }
    return true;
}

/*-----------------------------------------------------
  숫자만 입력 가능 하게 한다.	끝 
-----------------------------------------------------*/

/**
*   달력을 띄우고, 날짜를 선택하는 메소드
*/

function openDate(curObj, nextObj, dateSize){
//	alert(""+curObj);
//	alert(""+nextObj);
//	alert(""+dateSize);

  openCalendar(document.all(curObj), document.all(nextObj), dateSize);
}

/******
 *날짜입력
 *p_obj : 날짜 컨트롤
 *p_next: 다음 포커스 컨트롤
 *p_type: 날짜 길이
 */
function openCalendar(p_obj, p_next, p_type){
//			alert(p_obj);
//	alert(p_next);
//	alert(p_type);
  var p_objLoc = p_obj;
  var cLeft = window.screenLeft + document.body.clientLeft;
  var cTop = window.screenTop + document.body.clientTop;
  /** Left위치와 top위치를 찾는다. */
  while(p_objLoc.tagName!="BODY"){
    cLeft = cLeft+p_objLoc.offsetLeft;
    cTop = cTop+p_objLoc.offsetTop;
    p_objLoc = p_objLoc.offsetParent;
  }
  cTop = cTop+p_obj.clientHeight+3;

  retval = showModalDialog("../../common/calendar.jsp", "", "title:no; dialogLeft:"+cLeft+"; dialogTop:"+cTop+"; dialogWidth:196px; dialogHeight:223px; status:no; help:no");
  if(retval==null) return;

  p_obj.value = retval.substr(0,p_type);
  p_obj.focus();
  p_next.focus();
}																  


//소수점 이하 처리 함수
//@param intTarget      대상
//@param intCutPosition 소수점 자리 수
function CutDecimalPoint(intTarget, intCutPosition) {
	var objEv = event.srcElement;
	intTarget = objEv.value;
	var intResult = 0;
	var strTarget = String(intTarget).split('.');
	if(strTarget[1]!=null && strTarget[1].length > intCutPosition) {
		strTarget[1] = strTarget[1].slice(0, intCutPosition);
	}else{
		strTarget[1] = "00";
	}
	intResult = Number(strTarget[0]+'.'+strTarget[1]);
	return intResult;
} 


//팝업 중앙정렬
//@param r_sUrl      URL
//@param r_sEnv		 옵션
//@param r_iWidth	 넓이
//@param r_iHeight	 높이
//@param r_sWinName	 이름
  function openWindowAtCenter(r_sUrl, r_sEnv, r_iWidth, r_iHeight, r_sWinName) {
		// URL 이 없는 경우 null 값을 리턴한다.
		if(r_sUrl == null) {
			return null;
		}
		
		// open window name
		var e_sWinName = "sicc";
		// screen x 좌표
		var e_iXPosition = (window.screen.width / 2);
		// screen y 좌표
		var e_iYPosition = (window.screen.height / 2);
		// 현재 윈도우의 width
		var e_iWidth = window.outerWidth;
		// 현재 윈도우의 height
		var e_iHeight = window.outerHeight;
		// PopUp 윈도우 환경 변수 값
		var e_sEnv = "";
		
		// Window 이름을 전달받은 경우
		if(r_sWinName != null) {
			e_sWinName = r_sWinName;
		}
		
		// window의 width를 전달 받은 경우
		if(r_iWidth != null) {
			e_iWidth = r_iWidth;
		}
		
		// window의 height을 전달 받은 경우
		if(r_iHeight != null) {
			e_iHeight = r_iHeight;
		}
		
		e_iXPosition = (window.screen.width / 2) - (e_iWidth / 2 + 10);
		e_iYPosition = (window.screen.height / 2) - (e_iHeight / 2 + 20);
		e_sEnv += ("width=" + r_iWidth + ",height=" + r_iHeight);
		e_sEnv += (",left=" + e_iXPosition + ",top=" + e_iYPosition);
		e_sEnv += (",screenX=" + e_iXPosition + ",screenY=" + e_iYPosition);

		// window의 환경 변수 값을 전달 받은 경우
		if(r_sEnv != null) {
			e_sEnv += (","+r_sEnv);
		}

		return window.open(r_sUrl, e_sWinName, e_sEnv);
	}
  
  /**
   * 윈도우를 팝업시킨다
   * @param url 화면 URL
   * @param target 오픈할폼이름
   * @param width 오픈윈도우가로길이
   * @param height 오픈윈도우세로길이
   */
  function openWindow(url, target, width, height) { 
  		var win;
  		
  		var iLeft = (window.screen.width / 2) - (Number(width) / 2);
        var iTop = (window.screen.height / 2) - (Number(height) / 2);
  		var features = "menubar=0,toolbar=0,status=0,resizable=0,scrollbars=0";
  		features += ",left=";
  	    features += iLeft;
  	    features += ",top=";
  	    features += iTop;
  	    features += ",width=";
  	    features += width;
  	    features += ",height=";
  	    features += height;
  		win = window.open(url, target, features);
  		win.focus();
  		return win;
  }
  
  /**
   * 체크박스 중  선택된 것의 값을 리턴
   * @param obj 체크박스 오브젝트
   * @return 선택된 값 string
   */
  function getCheckedValues(obj){
  	var str = "";
  	if(obj!=null){ //obj null check
  		if(obj.length){	//length가 존재한다면 obj가 2이상이라는 뜻
  			for(var i=0;i<obj.length;i++){	//1개라도 체크된것이 있으면 true return;
  				if(obj[i].checked==true){
  					str += obj[i].value+";";
  				}
  			}
  		}else{	//length가 존재하지 않으면 obj가 1개라는 뜻
  			if(obj.checked==true){
  				str += obj.value;
  			}
  		}
  	}
  	return str;
  }
  
  /**
   * 전체 체크박스를 체크혹은 체크해제
   * @param obj form객체
   * @param targetName 체크할 객체의 이름
   */
  function checkOneMoreCheckbox(obj, targetName) {
      var bCheck = false;
      fObj = obj.elements;
      for (i = 0 ; i < fObj.length; i++) {
          if (fObj[i].type == "checkbox" && fObj[i].name == targetName) {
              if (fObj[i].checked) {
                  bCheck = true;
                  break;
              }
          }
      }
      if (!bCheck) {
          alert("체크박스를 하나이상  선택해 주세요.");
      }
      return bCheck
  }
  
function trim(value) { 
	return value.replace(/^\s+|\s+$/g,"");
}

/**
 * 문자열의 BYTE체크 
 * @param index 바이트체크할 대상문자열 
 * @return num 바이트수 리턴
 */
function getByteLength(index) {
	var i,cnt = 0;
	for (i = 0; i < index.length; i++) {
		if (escape(index.charAt(i)).length >= 4){ 
			cnt+= 2;
		}else {
			cnt++;
		}
	}
	return cnt;
}

/**
 * 최대 입력 BYTE체크
 * @param Obj 체크할 대상 객체
 * @return (true:정상, false:체크에러)
 */
function checkMaxlength(Obj) {
    	if (Obj.getAttribute("maxlength") != null && Obj.value != "") {
    	    var maxlength = Obj.getAttribute("maxlength");
    	    str = Obj.value
    	    if (getByteLength(str) > maxlength) {
    			return false;
    		}     
    	}
}                        

/**
 * 두 날짜를 비교한다.
 * @param startDate 시작일(YYYYMMDD) 
 * @param endDate 종료일(YYYYMMDD)
 * @return true/false
 */
function compareSdateEdate(startDate, endDate){
	if(startDate!="" && endDate!=""){
		var start_yyyy = startDate.substring(0,4);
		var start_mm = startDate.substring(4,6);
		var start_dd = startDate.substring(6,startDate.length);
		var sDate = new Date(start_yyyy, start_mm-1, start_dd);
	
		var end_yyyy = endDate.substring(0,4);
		var end_mm = endDate.substring(4,6);
		var end_dd = endDate.substring(6,endDate.length);
		var eDate = new Date(end_yyyy, end_mm-1, end_dd);
	   
		var diff = Math.ceil((eDate.getTime() - sDate.getTime())/(1000*60*60*24));
		if(diff<0){
			//종료일이 시작일 보다 작을 경우
			return false;
		}
	}
	return true;
}
