﻿//////////////////////////////////////////////////////////////////////////
//   Copyright (c) eFusioni                                             //
//   All rights reserved.                                               //
//                                                                      //
//   자바스크립트 공통함수 For ECM                                      //
//                                2004-10-10                            //
//////////////////////////////////////////////////////////////////////////

//***** 미디어 파일 패치 *****
function EP_activate(num) {
    document.write(document.getElementById("DEACTIVATED_TEXT" + num).value);
}

//***** 롤오버 *****
function imgOver(param) {
	param.src = param.src.replace("_out.gif", "_over.gif");
}
function imgOut(param) {
	param.src = param.src.replace("_over.gif", "_out.gif")
}

function imgOverExt(param, ext) {
	param.src = param.src.replace("_out."+ext, "_over."+ext);
}
function imgOutExt(param, ext) {
	param.src = param.src.replace("_over."+ext, "_out."+ext)
}

function imgerr(param){
    param.src = '/images/common/trans_dot.png';
    //param.align = 'absmiddle';
}

//폼객체의 종류를 자동으로 인식하여 값이 비어 있으면 메시지를 뿌려주고 필요하면 focusing한다.
function checkField(obj, message) {
    var tag = "";

    if (obj.tagName == null || obj.tagName == "null") {
        if (obj[0].type == "checkbox") tag = "CHECK";
        else if (obj[0].type == "radio") tag = "RADIO";
    }
    else {
        if (obj.tagName == "SELECT") tag = "SELECT";
        else if (obj.tagName == "INPUT") {
            if (obj.type == "text") tag = "TEXT";
            else if (obj.type == "hidden") tag = "HIDDEN";
            else if (obj.type == "file") tag = "FILE";
            else if (obj.type == "password") tag = "PASSWORD";
        }
        else if (obj.tagName == "TEXTAREA") tag = "TEXTAREA";
    }
    
    var valid = true;

    if (tag == "SELECT") {
        if (obj.options[obj.selectedIndex].value == '') valid = false;
    }
    else if (tag == "TEXT" || tag == "TEXTAREA" || tag == "FILE" || tag == "PASSWORD" || tag == "HIDDEN") {
        if (obj.value.trim() == "") valid = false;
    }
    else if (tag == "CHECK" || tag == "RADIO") {
        var isHit = false;
        for (var i=0; i<obj.length; i++) {
            if (obj[i].checked) {
                isHit = true;
                break;
            }
        }
        valid = isHit;
    }

	if (message != null){
		if (!valid) {
			alert(message);
			if (tag != "CHECK" && tag != "RADIO" && tag != "HIDDEN") obj.focus();
		}
	}

    return valid;
}

function checkDigit(obj, digit, message){
	var tag = "";
	var isValid = false;
	if (obj.tagName == "SELECT" || obj.tagName == "TEXTAREA" || obj.tagName == null){
		isValid = true;
	}
	if (obj.value.length == digit){
		isValid = true;
	}
	if (message != null){
		if (!isValid){
			alert(message);
			obj.focus();
		}
	}

	return isValid;
}

// 입력값이 숫자가 아니면 메시지를 뿌려준다.
function checkNumber(obj, message) {
    var valid = obj.value.isNumber();
    if (!valid) {
        alert(message);
        obj.focus();
    }

    return valid;
}

// 입력값이 이메일이 아니면 메시지를 뿌려준다.
function checkEmail(obj, message) {
    var valid = obj.value.isEmail();
    if (!valid) {
        alert(message);
        obj.focus();
    }

    return valid;
}

// 입력값이 주민등록번호 형식이 아니면 메시지를 뿌려준다.
function checkJumin(obj, message) {
    var valid = obj.value.isJumin();
    if (!valid) {
        alert(message);
        obj.focus();
    }

    return valid;
}

// 한 문자열이 'YYYYMMDD' 형식의 날짜값인지 판별한다.
String.prototype.isDate = function() {
	if (this.length != 8) return false;

	var year = parseInt(this.substr(0, 4));
	var month = parseInt(this.substr(4, 2));
	var day = parseInt(this.substr(6, 2));

	if (isNaN(year) || isNaN(month) || isNaN(day)) return false;
	if (year < 0) return false;
	if (month < 1 && month > 12) return false;
	if (day < 1 && day > 31) return false;

	var months = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	if (day > months[month - 1]) return false;

	if (month == 2 && day == 29) {
		if (!((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) return false;
	}

	return true;
}

// 한 문자열이 숫자인지 판별한다.
String.prototype.isNumber = function() {
    if (this == "") return false;
    else return this.isRestrictedWithin("0123456789-.");
}

// 한 문자열이 입력값의 Charactor들만 사용했는지 판별한다.
String.prototype.isRestrictedWithin = function (chars) {
    for (var i=0; i<this.length; i++) {
        if (chars.indexOf(this.charAt(i)) < 0) return false;
    }

    return true;
}

//문자열 상의 숫자가 아닌 부분을 삭제하여 숫자를 완성한다.
// 예 : "1234ajefcd45dk" -> "123445"
String.prototype.removeNonNumericChars = function () {
    return this.replace(/[^0-9]/g, "");
}

// input field에 숫자만 넣어야 할경우에  onKeyPress이벤트에서 호출한다..
// 사용예 : <input type=text name="aField" onKeyPress="return isNumberPressed(this)">
function isNumberPressed(obj) {
    return !(event.keyCode < 48 || event.keyCode > 57);
}

// textarea에서 입력 길이를 제한할 경우에 onKeyPress이벤트에서 호출한다..
// 사용예 : <textarea name="aField" onKeyUp="limitTextLength(this, 50)"></textarea>
function limitTextLength(obj, len) {
    if (obj.value.length > len) {
        alert(len + " 자 이상 입력하실 수 없습니다.");
        obj.value = obj.value.substr(0, len);
    }
}

// 앞뒤 공백을 자른다..
String.prototype.trim = function() {
    var format = /^\s*/g;
    var str = this;
    str = str.replace(format, "");
    format = /\s*$/g;
    str = str.replace(format, "");

    return str;
}

// 문자열이 이메일 형식인지 판별한다.
String.prototype.isEmail = function() {
    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
    return (this.search(format) > -1);
}

String.prototype.isJumin = function() {
    var sum = 0 ;
    sum = this.charAt(0) * 2 + this.charAt(1) * 3 + this.charAt(2) * 4 + this.charAt(3) * 5 +
          this.charAt(4) * 6 + this.charAt(5) * 7 + this.charAt(6) * 8 + this.charAt(7) * 9 +
          this.charAt(8) * 2 + this.charAt(9) * 3 + this.charAt(10) * 4 + this.charAt(11) * 5;

    if (sum == "0") return false;
    else {
        sum = 11 - sum % 11 ;
        if (sum > 9) sum = sum - 10;

        if (sum == this.charAt(12)) return true;
        else return false;
    }
}

// 숫자를 money포맷으로 3자리씩 끊어 표현한다.
String.prototype.formatMoney = function() {
    if (!this.isNumber()) return null;

	var start = 0;
	var distance =  parseInt(this.length % 3);
	var nComma =  parseInt(this.length / 3);

	if (distance == 0){
		distance = 3;
		nComma -= 1;
	}

	var arr = new Array();
	for (var i=0; i<nComma + 1; i++) {
		arr[i] = this.substring(start, start + distance);	

		start += distance;
		distance = 3;
	}

	var sReturn = ""
	var isFirst = true;
	for (var i=0; i<arr.length; i++) {
		sReturn += (isFirst ? "" : ",") + arr[i];
		isFirst = false;
	}

	return sReturn;
}

// 해당 년도의 날짜 수를 반환
function getDaysOfYear(year) {
    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) return 366;
    else return 365;
}

//상수 정의
var DIFF_YEAR = 0;
var DIFF_MONTH = 1;
var DIFF_DAY = 2;

// 해당 년, 월의 날짜 수를 반환
Date.prototype.getLastDateOfMonth = function() {
    var month = this.getMonth();
    var year = this.getFullYear();
    if (month == 0 || month == 2 || month == 4 || month == 6 || month == 7 || month == 9 || month == 11) {
        return 31;
    }
    else if (month == 3 || month == 5 || month == 8 || month == 10) {
        return 30;
    }
    else {
        if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) return 29;
        else return 28;
    }
}

// 현 날짜의 지정된 간격에 해당하는 날짜를 반환 (날짜 밑의 시간은 무시된다.)
Date.prototype.add = function(opt, nDiff) {
    //참조가 아닌 Value로 복사
    var rDate = this.getInstanceByVal();

    switch (opt) {
    case DIFF_YEAR :
        var year = rDate.getFullYear() + nDiff;

        //2월 29일이고 변경할 년도가 2월 28일까지 밖에 없다면 2월 28일로 변경
        if (this.getMonth() == 1 && this.getDate() == 29 && getDaysOfYear(year) == 365) {
            rDate.setFullYear(year, 1, 28);
        }
        else {
            rDate.setFullYear(year, rDate.getMonth(), rDate.getDate());
        }

        break;
    case DIFF_MONTH :
        var diffYear;
        var diffMonth;

        if (nDiff >= 0) {
            diffYear = Math.floor(nDiff / 12);
        }
        else {
            diffYear = Math.ceil(nDiff / 12);
        }

        diffMonth = nDiff % 12;

        var year = rDate.getFullYear() + diffYear;
        var month = rDate.getMonth() + diffMonth;

        if (month > 11) {
            year++;
            month -= 12;
        }
        else if (month < -11) {
            year--;
            month += 12;
        }

        //2월 29일이고 변경할 년도가 2월 28일까지 밖에 없다면 2월 28일로 변경
        if (rDate.getMonth() == 1 && rDate.getDate() == 29 && month == 1 && getDaysOfYear(year) == 365) {
            rDate.setFullYear(year, 1, 28);
        }
        else {
            rDate.setFullYear(year, month, rDate.getDate());
        }

        break;
    case DIFF_DAY :
        // 1970년 1월 1일부터 경과한 milliseconds 계산
        var tms = rDate.getFullMilliseconds();
        tms += nDiff * 24 * 60 * 60 * 1000;

        rDate = new Date(tms);
        break;
    }

    return rDate;
}

Date.prototype.getFullMilliseconds = function() {
    var tms = 0;
    if (this.getFullYear() >= 1970) {
        //년도
        for (var i=1970; i<this.getFullYear(); i++) {
            tms += getDaysOfYear(i) * 24 * 60 * 60 * 1000;
        }

    }
    else {
        for (var i=this.getFullYear(); i<1970; i++) {
            tms += getDaysOfYear(i) * 24 * 60 * 60 * 1000;
        }

        tms = -tms;
    }

    //월
    for (var i=0; i<this.getMonth(); i++) {
        var aDate = new Date(this.getFullYear(), i, 1);
        tms += aDate.getLastDateOfMonth() * 24 * 60 * 60 * 1000;
    }

    //일
    tms += (this.getDate() - 1) * 24 * 60 * 60 * 1000;

    //시
    tms += this.getHours() * 60 * 60 * 1000;

    //분
    tms += this.getMinutes() * 60 * 1000;

    //초
    tms += this.getSeconds() * 1000;

    //Milliseconds
    tms += this.getMilliseconds();

    //타임존 고려.. 9시간을 빼준다. (검증 안된 코드)
    tms -= 9 * 60 * 60 * 1000;

    return tms;
}

Date.prototype.getInstanceByVal = function() {
    return new Date(this.toString());
}


// 날짜를 지정한 날짜 형식으로 반환한다. 현재 YYYY, MM, DD 만 작동
// 사용예) 현재날짜 2004년 10월 19일 기준
// var str = (new Date()).formatString("YYYY/MM/DD"); "2004/10/19"를 반환
// var str = (new Date()).formatString("YYYYMMDD"); "20041019"를 반환
Date.prototype.formatString = function(format) {
    var year = this.getFullYear();
    var month = this.getMonth() >= 9 ? parseInt(this.getMonth() + 1) : "0" + parseInt(this.getMonth() + 1);
    var day = this.getDate() >= 10 ? this.getDate() : "0" + this.getDate();

    var str = format.toUpperCase();
    str = str.replace("YYYY", year);
    str = str.replace("MM", month);
    str = str.replace("DD", day);

    return str;
}

// Select Box를 index가 아닌 value 값을 기준으로 선택하는 함수
function selectByVal(obj, val) {
    var i;

    for ( i = 0 ; i < obj.length ; i++ )
        if ( obj[i].value == val ) {
            obj.selectedIndex = i;
            return i;
        }

    return -1;
}

/* 소수점이 포함된 숫자 입력 제어
// 사용예) ...style='ime-mode:disabled;' onKeyPress="return isPoint(this);">
*/

String.prototype.locationPonit = function()
{
	if((this.length == 0 && event.keyCode == 46))
	{
		alert("처음에 소수점이 올수 없습니다.");
		return false;
	}else if((this.length > 0 && event.keyCode == 46)) {
		for(i = 0 ; i < this.length ; i++) {
			if(this.charAt(i) == ".") {
				return false;
			}
		}
		return true;
	}else return true;
}

function isPoint(obj) {
	if(!obj.value.locationPonit())
	{
	  return false;
	}
  return !((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 46);
}
/* 숫자와 - 을 포함한 전화번호 입력 제어
// 사용예) ..... style='ime-mode:disabled;' onKeyPress="return isTelephone(this);">
*/
String.prototype.locationHyphen= function()
{
	var cnt = 0 ;
	var j ;
	if((this.length == 0 && event.keyCode == 45))
	{
		alert("잘못된 형식입니다.");
		return false;
	}else if((this.length > 0 && event.keyCode == 45)) {
		for(i = 0 ; i < this.length ; i++) {
			if(this.charAt(i) == "-") {
				cnt++;
			    if(this.charAt(this.length-1) == this.charAt(i)){
					alert("잘못된 형식입니다.");
					return false
				}
			}
		}
		return true;
	}else return true;
}

function isTelephone(obj) {
    if(!obj.value.locationHyphen()){
	   return false;
	}
	if(!((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 45)) {
		return true;
	}else{
	  alert("숫자와 '-' 이외의 문자는 입력할 수 없습니다.");
	  return false;
  }
}
//-----------------------------------------------------------------------//
// checkform(formField, checkName, message, maxlength, minlength)
// 입력 필드를 입력받아 숫자/아이디/문자/전화번호/영문/최소글자/최대글자등을
// 체크하여 메세지를 전달하고 반환한다.
//-----------------------------------------------------------------------//
	String.prototype.IsId = function() {
		if (this.search(/[^A-Za-z0-9_-]/) == -1)
			return true;
		else
			return false;
	}

	String.prototype.IsTel = function() {
		if (this.search(/[^0-9_-]/) == -1)
			return true;
		else
			return false;
	}

	String.prototype.IsMoney = function() {
		if (this.search(/[^0-9_,]/) == -1)
			return true;
		else
			return false;
	}

	String.prototype.IsAlpha = function() {
		if (this.search(/[^A-Za-z]/) == -1)
			return true;
		else
			return false;
	}

	String.prototype.IsNumber = function() {
		if (this.search(/[^0-9]/) == -1)
			return true;
		else
			return false;
	}

	String.prototype.IsJumin = function() {
		var jumin= this
		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 ;
		}
	}

	String.prototype.IsEmail = function() {
		if (this.search(/(.+)@.+\..+/) == -1)
			return false;
		else {
			for(var i=0; i < this.length;i++)
				if (this.charCodeAt(i) > 256)
					return false;
			return true;
		}
	}

	String.prototype.IsDate = function() {
		if (this.search(/\d{4}\.\d{2}\.\d{2}/) == -1)
			return false;
		else {
			return true;
		}
	}

	String.prototype.IsDate2 = function() {
	    if (this.search(/\d{4}\-\d{2}\-\d{2}/) == -1)
	        return false;
	    else {
	        return true;
	    }
	}

	String.prototype.StrLen = function() {
		var temp;
		var set = 0;
		var mycount = 0;

		for( k = 0 ; k < this.length ; k++ ){
			temp = this.charAt(k);

			if( escape(temp).length > 4 ) {
				mycount += 2
			}
			else mycount++;
		}

		return mycount;
	}

	String.prototype.LTrim = function() {
		var i, j = 0;
		var objstr

		for ( i = 0; i < this.length ; i++){
			if (this.charAt(i) == ' ' ){
				j = j + 1;
			}
			else{
				break;
			}
		}
		return this.substr(j, this.length - j+1)
	}

	String.prototype.RTrim = function() {
		var i, j = 0;

		for ( i = this.length - 1; i >= 0 ; i--){
			if (this.charAt(i) == ' ' ){
				j = j + 1
			}
			else{
				break;
			}
		}
		return 	this.substr(0, this.length - j);
	}

	String.prototype.Trim = function() {
		return this.replace(/\s/g, "");
	}

	function _cmdfocus(formobj){
		formobj.select();
		formobj.focus();
	}

	function Go_Next(curField, nextField, curLength){
		if (curField.value.length >= curLength){
			nextField.focus();
		}
	}

	//입력형식:"YYYY/MM/DD"(다른 형식은 에러입니다.)
	function DateDiff(FromDate, ToDate){
		var D1,D2,Diff;						//변수를 선언합니다.
		var MinMilli = 1000 * 60;			//변수를 초기화합니다.
		var HrMilli = MinMilli * 60;
		var DyMilli = HrMilli * 24;
		D1 = Date.parse(FromDate);			//구문 분석합니다.
		D2 = Date.parse(ToDate);			//구문 분석합니다.
		Diff = Math.round(Math.abs((D2-D1) / DyMilli))
		if (Diff>-1) {
			Diff= Diff + 1;
		} else {
			Diff= Diff - 1;
		}
		return(Diff);						//결과를 반환합니다.
	}

	function checkform(formField, checkName, message, maxlength, minlength) {

	//각 필드별 입력값 체크
	//주민등록시 반드시 값으로 넘긴다.
	//필수입력 check
	//글자수 check
	//field 유효성 check

	formValue = formField.value.LTrim().RTrim();

		if(checkName != 'jumin'){
			if (formField == null ) {
				return false;
			}

			if (formValue == '' && minlength > 0){
				alert(message + " 필수입력 항목입니다.");
				_cmdfocus(formField);
				return false;
			}

			if (formValue.StrLen() < minlength) {
				alert(message + " 최소" + minlength + "자이상 입력하세요.");
				_cmdfocus(formField);
				return false;
			}

			if (formValue.StrLen() > maxlength) {
				alert(message + " 최대" + maxlength + "자(한글" + maxlength/2 + " 자)까지 입력 가능합니다.");
				_cmdfocus(formField);
				return false;
			}
		}

		switch(checkName) {
			case "" :
				return true;
			case "alpha" :
				if (formValue.IsAlpha()) {
					return true;
				} else {
					alert(message + " 영문자만 입력 가능 합니다.");
					_cmdfocus(formField);
					return false;
				}
				break;
			case "number" :

				if (formValue.IsNumber()) {
					return true;
				} else {
					alert(message + " 숫자만 입력 가능 합니다.");
					_cmdfocus(formField);
					return false;
				}
				break;
			case "id" :
				if (formValue.IsId()) {
					return true;
				} else {
					alert(message + " 영문자와 숫자만 입력 가능 합니다.");
					_cmdfocus(formField);
					return false;
				}
				break;
			case "tel" :
				if (formValue.IsTel()) {
					return true;
				} else {
					alert(message + " 숫자와 - 만 입력 가능합니다.");
					_cmdfocus(formField);
					return false;
				}
				break;
			case "email" :
				if (formValue.IsEmail()) {
					return true;
				} else {
					alert(message + " 이메일 형식이 틀립니다. 다시 입력해 주세요(형식: account@localhost.com");
					_cmdfocus(formField);
					return false;
				}
				break;
			case "date" :
				if (formValue.IsDate2()) {
					return true;
				} else {
					alert(message + " 날짜 형식이 틀립니다. 다시 입력해 주세요(형식: 1999-09-09)");
					_cmdfocus(formField);
					return false;
				}
				break;
			case "jumin" :
				if(formValue.StrLen() != 13){
					alert("주민등록번호를 정확히 입력해주세요");
					return false
				}

				if (formValue.IsJumin()) {
					return true;
				} else {
					alert("주민등록번호를 정확히 입력해주세요");
					return false;
				}
				break;
		}
	}
/*---------------------------------------------------------------------*/
/* func name: SetFocus_Select_2 (object,value)                         */
/* purpose  : SELECT object 의 options 중에 value 파라메터의 값을      */ 
/*                        맨 처음 디스플레이 한다.                     */
/* select option의 각각의 value 값으로 비교한다. 		       */
/*---------------------------------------------------------------------*/
function   SetFocus_Select_2(obj,value) {
  var i ;
  var flag=0;

  if ( obj.length == null ) {
       if ( obj.value  == value ) {
            obj.options[0].selected = true;
       }
  }
  else {
     for (i=0; i < obj.length ;i++) {
       if ( obj.options[i].value == value) {
            obj.options[i].selected=true;
	    flag = 1;
       }
     }
     if ( flag == 0  ){
            obj.options[0].selected=true;
     }
  }
}
function get_selected_value (obj) {
    var i;

    if ( obj.length == null || obj.length == "" ) {
         if ( obj.options[0].selected == true) {
              return obj.options[0].value;
         }
                 return "";
    }
    else {
         for (i=0; i < obj.length ; i++) {
              if ( obj.options[i].selected == true) {
                   return obj.options[i].value;
              }
         }
         return "";
        }
}
//반복된 문자
function repeatChars(str, num)
{ 
	var cnt = str.length; 
	var repeat = ""; 
	var R=1;
	 
	for(var i=0; i<cnt; i++) { 
	  tmp = str.substr(i, 1); 
	  key = tmp; 
	  if(key == repeat) { R++; } 
	  else { R=1; repeat = key; } 
	  if(R >= num) { return repeat; } 
	} 
	return ""; 
}

//연속된 문자
function sequenceChars(str, num)
{
	var cnt = str.length; 
	var repeat = 0; 
	var R=1;
	 
	for(var i=0; i<cnt; i++) { 
	  asc = str.charCodeAt(i);
	  key = asc; 
	  if(key == repeat + 1) { R++; repeat = key; } 
	  else { R=1; repeat = key; }
	  if(R >= num) { return repeat; } 
	} 
	return 0;
}

/*
	대상 셀렉트객체와 선택될 값을 던져주면 for문을 실행하여 selected 상태로 만들어준다.
*/
function executeForSelector(targetObj, targetValue){
	for(i = 0; i < targetObj.length; i++)
		if(targetObj[i].value == targetValue) targetObj[i].selected = true;
}

/*
	대상 체크 객체의 선택될 값을 던져주면 for문을 실행하여 checked 상태로 만들어준다.
*/
function executeForCheck(targetObj, targetValue){
	if(targetObj.length == undefined){
		if(targetObj.value == targetValue) targetObj.checked = true;
	}else{
		for(i = 0; i < targetObj.length; i++)
			if(targetObj[i].value == targetValue) targetObj[i].checked = true;
	}		
}


function executeForChecks(targetObj, targetValues){

	if(targetObj.length == undefined){
		if(targetObj.value == targetValues) targetObj.checked = true;
	}else{
	
	    var arr = targetValues.split( "," );
	    
	    for(var j = 0; j < arr.length; j++){
		    for(i = 0; i < targetObj.length; i++){
		    //alert(targetObj[i].value + "/"+ arr[j]);
			    if(targetObj[i].value == arr[j]) targetObj[i].checked = true;
    	    }
    	}
	}
}
/*
	대상 체크 객체의 선택될 값을 던져주면 for문을 실행하여 checked 상태로 만들어준다.
*/
function executeForRadio(targetObj, targetValue) {		
	var leng = ((isNaN(targetObj.length*1))?1:targetObj.length*1);
	
	if (leng == 1)
	{
		targetObj.checked = true;
	}
	else {
		var n = targetObj.length;			
		for (i=0; i<n; i++) {
			if (targetObj[i].value == targetValue) {					
				targetObj[i].checked = true;
			}
		}
	}
}
//-----------------------------------------------------------------------//

//////////////////////////////////////////////////////////////////////////
//
//  여기서부터 Old Source
//  사용 "자제" 하기 바람
//
//////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////
//   Copyright (c) FID                                                  //
//   All rights reserved.                                               //
//                                                                      //
//   자바스크립트 공통함수                                              //
//                                                                      //
//    주의: 아래의 모든 메소드는 입력폼의 필드이름(myform.myfield)을    //
//         파라미터로 받는다. 필드의 값(myform.myfield.value)이 아님을  //
//         유념할 것.                                                   //
//                                                                      //
//////////////////////////////////////////////////////////////////////////




// 용    도 : 입력값이 NULL인지 체크
// return :  boolean
//           NULL이면 true, 아니면 false가 돌아간다.

function isNull(input) {
    if (input.value == null || input.value == "") {
        return true;
    }
    return false;
}

// 용    도 : 입력값이 NULL인지 확인하여 NULL이면 "입력값이 없습니다."라는
//            메시지 창을 보여주고 그 결과를 돌려준다.
// return :  boolean
//           NULL이면 true, 아니면 false가 돌아간다.
function isNullAlert(input) {
    var ret=isNull(input);
    if(ret)
    {
        alert("입력값이 없습니다.");
    }
    return ret;
}


// 용    도 : 입력값에 스페이스 이외의 의미있는 값이 있는지 체크
// return :  boolean
//           있으면 true, 아니면 false가 돌아간다.

function isEmpty(input) {
    if (input.value == null || input.value.replace(/ /gi,"") == "") {
        return true;
    }
    return false;
}

// 용    도 : 입력값에 Space 이외의 의미밌는 값이 없으면 "입력값이 없습니다."라는
//            메시지 창을 보여주고 그 결과를 돌려준다.
// return :  boolean
//           space 이외의 의미있는 값이 없으면 true, 아니면 false가 돌아간다.

function isEmptyAlert(input) {
    var ret=isEmpty(input);
    if(ret)
    {
        alert("입력값이 없습니다.");
    }
    return ret;
}

// 용    도 : 입력값에 특정 문자(chars)가 있는지 체크
//           특정 문자를 허용하지 않으려 할 때 사용
// return :  boolean 있으면 true, 없으면 false
//사 용 예 :  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)만으로 되어있는지 체크
//           특정 문자만 허용하려 할 때 사용
// return :  boolean  확인하려는 대상 문자만 있으면 true, 아니면 false
// 사 용 예 :  if (!containsCharsOnly(form.blood,"ABO")) {
//          alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
//      }


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;
}


// 용    도:  입력값이 알파벳인지 체크
//           아래 isAlphabet() 부터 isNumComma()까지의 메소드가
//           자주 쓰이는 경우에는 var chars 변수를
//           global 변수로 선언하고 사용하도록 한다.
// return :  boolean, A에서 Z 까지의 문자만으로 되어있으면 true, 아니면 false
//
// 사 용 예 :  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);
}

// 용    도:  입력값이 알파벳인지 확인하여 알파벳 이외의 문자가 있으면 "영문자만
//           입력가능 합니다." 메시지를 보여주고 결과를 돌려준다.
// return :  boolean, A에서 Z 까지의 문자만으로 되어있으면 true, 아니면 false

function isAlphabetAlert(input) {
    var ret=isAlphabet(input);
    if(!ret)
    {
        alert("영문자만 입력가능 합니다.");
    }
    return ret;
}

// 용    도: 입력값이 알파벳 대문자인지 체크
// return :  boolean, 대문자만이면 true, 아니면 false

function isUpperCase(input) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    return containsCharsOnly(input,chars);
}

// 용    도: 입력값이 알파벳 대문자인지 확인하여 대문자 이외의 문자가 있으면
//          "알파벳 대문자만 입력하실수 있습니다."라는 메시지를 보여주고 돌려준다.
// return :  boolean, 대문자만이면 true, 아니면 false

function isUpperCaseAlert(input) {
    var ret=isUpperCase(input);
    if(!ret)
    {
        alert("알파벳 대문자만 입력하실수 있습니다.");
    }
    return ret;
}


// 용    도: 입력값이 알파벳 소문자인지 체크
// return :  boolean  소문자만이면 true, 아니면 false

function isLowerCase(input) {
    var chars = "abcdefghijklmnopqrstuvwxyz";
    return containsCharsOnly(input,chars);
}

// 용    도: 입력값이 알파벳 소문자인지 확인하여 소문자 이외의 문자가 있으면
//          "알파벳 소문자만 입력하실수 있습니다."라는 메시지를 보여주고 돌려준다.
// return :  boolean  소문자만이면 true, 아니면 false

function isLowerCaseAlert(input) {
    var ret=isLowerCase(input);
    if(!ret)
    {
        alert("알파벳 소문자만 입력하실수 있습니다.");
    }
    return ret;
}


// 용    도: 입력값에 숫자만 있는지 체크
// return :  boolean  숫자만 있으면 true, 아니면 false

function isNumber(input) {
    var chars = "0123456789";
    return containsCharsOnly(input,chars);
}

// 용    도: 입력값에 숫자만 있는지 확인하여 숫자 이외의 문자가 있으면 "숫자만
//          가능합니다"라는 메시지를 보여주고 돌려준다.
// return :  boolean 숫자만 있으면 true, 아니면 false

function isNumberAlert(input) {
    var ret=isNumber(input);
    if(!ret)
    {
        alert("숫자만 가능합니다");
    }
    return ret;
}

// 용    도: 입력값이 알파벳,숫자로 되어있는지 체크
// return :  boolean  알파벳과 숫자만이면 true, 아니면 false

function isAlphaNum(input) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    return containsCharsOnly(input,chars);
}

// 용    도: 입력값이 알파벳,숫자로 되어있는지 확인하여 알파벳과 숫자 이외의
//           문자가 있으면 "영문자와 숫자 입력만 가능합니다."라는 메시지를 보여주고
//           돌려준다.
// return :  boolean  알파벳과 숫자만이면 true, 아니면 false

function isAlphaNumAlert(input) {
    var ret=isAlphaNum(input);
    if(!ret)
    {
        alert("영문자와 숫자 입력만 가능합니다.");
    }
    return ret;
}



// 용    도: 입력값이 숫자,대시(-)로 되어있는지 체크
// return :  boolean  숫자와 대시(-)로 되어 있으면 true, 아니면 false

function isNumDash(input) {
    var chars = "-0123456789";
    return containsCharsOnly(input,chars);
}

// 용    도: 입력값이 숫자,대시(-)로 되어있는지 확인하여 숫자와 대시(-) 이외의
//          문자가 있으면 체크 "숫자와 '-' 입력만 가능합니다."라는 메시지를
//          보여주고 돌려준다.
// return :  boolean  숫자와 대시(-)로 되어 있으면 true, 아니면 false

function isNumDashAlert(input) {
    var ret=isNumDash(input);
    if(!ret)
    {
        alert(" 숫자와 '-' 입력만 가능합니다.");
    }
    return ret;
}


// 용    도: 입력값이 숫자,콤마(,)로 되어있는지 체크
// return :  boolean  숫자와 콤마(,)로 되어 있으면 true 아니면 false

function isNumComma(input) {
    var chars = ",0123456789";
    return containsCharsOnly(input,chars);
}

// 용    도: 입력값이 숫자,콤마(,)로 되어있는지 확인하여 숫자와 콤마(,) 이외의
//          문자가 있으면 체크 " 숫자와 ',' 입력만 가능합니다."라는 메시지를
//          보여주고 돌려준다.
// return :  boolean  숫자와 콤마(,)로 되어 있으면 true, 아니면 false

function isNumCommaAlert(input) {
    var ret=isNumComma(input);
    if(!ret)
    {
        alert("숫자와 ',' 입력만 가능합니다.");
    }
    return ret;
}


// 용    도: 입력값에서 콤마를 없앤다.
// return :  string, 입력값에서 콤마를 없앤 값

function removeComma(input) {
    return input.value.replace(/,/gi,"");
}


// 용    도: 입력값이 사용자가 정의한 포맷 형식인지 체크
//           자세한 format 형식은 자바스크립트의 'regular expression'을 참조
// return :  boolean 올바른 포맷이면 true, 아니면 false

function isValidFormat(input,format) {
    if (input.value.search(format) != -1) {
        return true; //올바른 포맷 형식
    }
    return false;
}

// 용    도: 입력값이 사용자가 정의한 포맷 형식인지 확인하여 올바르지 않은
//           형식이면 "올바른 입력형식이 아닙니다." 메시지를 보여주고 돌려준다.
// return :  boolean 올바른 포맷이면 true, 아니면 false

function isValidFormatAlert(input,format) {
    var ret=isValidFormat(input,format);
    if(!ret)
    {
        alert("올바른 입력형식이 아닙니다.");
    }
    return ret;
}

//용    도: 입력값이 이메일 형식인지 체크
// return :  boolean 이메일 형식이면 true, 아니면 false

function isValidEmail(input) {
//    var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
    return isValidFormat(input,format);
}

function isValidEmail2(val) {
//    var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
    if (val.search(format) != -1) {
        return true; //올바른 포맷 형식
    }
    return false;
}

//용    도: 입력값이 이메일 형식인지 확인하여 올바르지 않으면 "이메일 입력형식이
//          잘못되었습니다. \n 확인후 다시 입력해주세요"라는 메시지를 보여주고
//          돌려준다.
// return :  boolean 이메일 형식이면 true, 아니면 false

function isValidEmailAlert(input) {
    var ret=isValidEmail(input);
    if(!ret)
    {
        alert("이메일 입력형식이 잘못되었습니다. \n 확인후 다시 입력해주세요");
    }
    return ret;
}

// 용    도: 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
// return :  boolean 전화번호 형식이면 true, 아니면 false

function isValidPhone(input) {
    var format = /^(\d+)-(\d+)-(\d+)$/;
    return isValidFormat(input,format);
}

// 용    도: 입력값이 전화번호 형식(숫자-숫자-숫자)인지 확인하여 전화번호 형식이
//           아니면 "전화번호 입력이 잘못되었습니다. \n 확인후 다시 입력해주세요"
//           라는 메시지를 보여주고 돌려준다.
// return :  boolean 전화번호 형식이면 true, 아니면 false

function isValidPhoneAlert(input) {
    var ret=isValidPhone(input);
    if(!ret)
    {
        alert("전화번호 입력이 잘못되었습니다. \n 확인후 다시 입력해주세요");
    }
    return ret;
}

// 용    도: 선택된 라디오버튼이 있는지 체크
// return :  boolean 있으면 true, 없으면 false

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;
}

// 용    도: 선택된 라디오 버튼이 있는지 확인하여 없으면 "선택항목을 적어도 한개는
//          선택해주세요."라는 메시지를 보여주고 돌려준다.
// return :  boolean 있으면 true, 없으면 false

function hasCheckedRadioAlert(input) {
    var ret=hasCheckedRadio(input);
    if(!ret)
    {
        alert("선택항목을 적어도 한개는 선택해주세요.");
    }
    return ret;
}

// 용    도: 선택된 체크 박스가 있는지 체크
// return :  boolean 있으면 true, 없으면 false

function hasCheckedBox(input) {
    return hasCheckedRadio(input);
}

// 용    도: 선택된 체크박스가 있는지 확인하여 없으면 "선택항목을 적어도 한개는
//          선택해주세요."라는 메시지를 보여주고 돌려준다.
// return :  boolean 있으면 true, 없으면 false

function hasCheckedBoxAlert(input) {
    var ret=hasCheckedRadio(input);
    if(!ret)
    {
        alert("선택항목을 적어도 한개는 선택해주세요.");
    }
    return ret;
}


//용    도: 입력값의 바이트 길이를 리턴
// return :  int, 입력값의 길이

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;
}

//용    도: 공백을 제거하는 함수
// return :  string, 공백을 제거한 문자열

function IsTrimStr(checkStr)
{
    var str = "";

    for( i = 0 ; i < checkStr.length ; i ++ )
    {
        ch = checkStr.charAt(i);
        if (ch != " ")
            str = str + ch;
    }
    return str;
}

//용    도: 주민번호 체크
//형   식: xxxxxx-yyyyyyy
// return :  boolean

function newJumin(value)
{
    this.value = value;
}

function common_Jumin_Check( jumin1, jumin2 )
{
    var ok = true ;
    var Str1 = "" + jumin1 + jumin2 ;
    var Str = new newJumin(Str1);
    return jumin_Check( Str ) ;
}

//용    도: 주민번호 체크
//형    식:  xxxxxxyyyyyyy
//return :  boolean
//매개변수 : 주민등록번호 13자리
//사 용 예 : jumin_Check(xxxxxxyyyyyyy);
//참고사항 : 주민등록번호가 잘못되었다면 주민등록번호가 잘못되었다는 메세지를 출력하고 boolean 을 return 한다.

function jumin_Check( juminnum )
{
   if( !jumin_Check_Confirm(juminnum) )
      alert("주민등록번호가 잘못 되었습니다.\n확인후 다시 입력해 주십시오");
}

//용    도: 주민번호 체크
//형    식: xxxxxxyyyyyyy
//return :  boolean
//매개변수 : 주민등록번호 13자리
//사 용 예 : jumin_Check_Confirm(xxxxxxyyyyyyy);
//참고사항 : 주민등록번호가 잘못되어도 메세지를 출력하지 않고 boolean 만 return 한다.

function jumin_Check_Confirm( juminnum )
{

}

//용    도:  사업자등록번호를 확인
//형    식: XXXXXXXXXX
// return :  boolean 맞으면 true, 아니면 false

function RegNoCheck( membNo )
{
    if (membNo.length == 10)
    {
        a   = membNo.charAt(0);
        b   = membNo.charAt(1);
        c   = membNo.charAt(2);
        d   = membNo.charAt(3);
        e   = membNo.charAt(4);
        f   = membNo.charAt(5);
        g   = membNo.charAt(6);
        h   = membNo.charAt(7);
        i   = membNo.charAt(8);
        Osub    = membNo.charAt(9);

        suma = a*1 + b*3 + c*7 + d*1 + e*3 + f*7 + g*1 + h*3;
        sumb = (i*5) %10;
        sumc = parseInt((i*5) / 10,10);
        sumd = sumb + sumc;
        sume = suma + sumd;
        sumf = a + b + c + d + e + f + g + h + i
        k = sume % 10;
        Modvalue = 10 - k;
        LastVal = Modvalue % 10;

        if (sumf == 0)
            return false;
    }
    else return false;

    if ( Osub == LastVal ) return true;
    else return false;
}

//용    도:  사업자등록번호를 확인하여 비정상적이면 "사업자 등록번호가 잘못
//           되었습니다. \n확인후 다시 입력해 주십시오"라는 메시지를 보여주고
//          돌려준다.
//형    식: XXXXXXXXXX
// return :  boolean 맞으면 true, 아니면 false

function    RegNO_check(membNo)
{
    var bRet = RegNoCheck( membNo ) ;
    if( !bRet )
        alert("사업자 등록번호가 잘못 되었습니다.\n확인후 다시 입력해 주십시오");

    return bRet ;
}

//용    도:  사업자등록번호를 확인하여 비정상적이면 "사업자 등록번호가 잘못
//           되었습니다. \n확인후 다시 입력해 주십시오"라는 메시지를 보여주고
//          돌려준다.
//형    식: XXX-XX-XXXXX
// return :  boolean 맞으면 true, 아니면 false

function    RegNO_check_formatted(membNo){

    var str = "" ;
    var ar  = membNo.split( "-" ) ;
    for( var i = 0 ; i < ar.length ; i++ )
        str += ar[i] ;

    return RegNO_check( str ) ;
}

// 용    도:  임의의 HTML 테그 내용을 변경
// 매개변수 :  obj - 구성할 HTML Tag Object
//            html  - Tag 이름
// return :   void

function makeTags( obj, html )
{
    var tmp = obj.outerHTML ;
    var idx = 0 ;
    if( IsTrimStr( obj.innerHTML ).length <= 0 )
        idx = tmp.indexOf( "</" + obj.tagName + ">" ) ;
    else
        idx = tmp.indexOf( obj.innerHTML ) ;

    tmp = tmp.substring( 0, idx ) ;
    tmp += html ;
    tmp += "</" + obj.tagName + ">" ;
    obj.outerHTML = tmp ;
}


// 용    도:     ComboCreater.getComboOption()의 결과를 기초로
//           콤보의 항목을 변경
// 매개변수 : obj - 구성할 콤보 Object
//           option - ComboCreater.getComboOption()의 결과
// return  : void

function makeCombo( obj, option )
{
    makeTags( obj, option ) ;
    obj.selectedIndex = 0 ;
}

//용    도: 모달 대화상자 활성화
//param : url   : 호출할 URL
//    title : dialog title 명
//    x : 대화상자 x 좌표( 0보다 작으면 Center ) ;
//    y : 대화상자 y 좌표( 0보다 작으면 Center ) ;
//    w : 대화상자 폭
//    h : 대화상자 높이
//return : ret  : URL에서 반환활 결과 Object

function showDlg( url, title, x, y, w, h )
{
    var bModal = true ;
    if( showDlg.arguments.length == 7 )
    {
        bModal = showDlg.arguments[6] ;
    }

    if( w <= 0 || h <= 0 )
    {
        alert( "대화상자 크기를 확인하세요" ) ;
        return null ;
    }

    var ar = new Array() ;
    ar[0] = window ;
    ar[1] = url ;
    ar[2] = title ;

    var opt = "status:no;scroll:no;help:no;" ;
    if( x >= 0 ) opt += "dialogLeft:"   + x + "px;" ;
    if( y >= 0 ) opt += "dialogTop:"    + y + "px;" ;

    opt += "dialogWidth:"  + w + "px;" ;
    opt += "dialogHeight:" + h + "px;" ;

    if( bModal )
        return window.showModalDialog( "/common/modalDlg.htm", ar, opt ) ;
    else
        return window.showModelessDialog( "/common/modalDlg.htm", ar, opt ) ;
}

//용    도: 주소입력 찾기
//param :   part = 업무명( JANGKI, CAR, etc )
//      gb   = 구분( ZP=우편번호, DN=읍면동명, DR=대량처리명
//      var  = gb에 해당하는 조회키
//return :
//      null == 취소
//      ret.code1  = 우편번호 앞 3자리
//      ret.code2  = 우편번호 뒤 3자리
//      ret.juso  = 주소
//      ret.bunji = 번지
//
//사 용 예:
// ex1 )    우편번호를 조회할때
//      var ret = openFUA1053R0( "JANGKI" ) ;
//      if( ret != null )
//      {
//          alert( ret.code1 ) ;
//          alert( ret.code2 ) ;
//          alert( ret.juso  ) ;
//          alert( ret.bunji ) ;
//      }

//ex2 ) 우편번호를 파라미터로 넘겨 조회할때
//      var ret = openFUA1053R0( "JANGKI", "ZP", "130010" ) ;
//      if( ret != null )
//      {
//          alert( ret.code1 ) ;
//          alert( ret.code2 ) ;
//          alert( ret.juso  ) ;
//          alert( ret.bunji ) ;
//      }
//
//ex2 ) 동명을 파라미터로 넘겨 조회할때
//      var ret = openFUA1053R0( "JANGKI", "DN", "청량" ) ;
//      if( ret != null )
//      {
//          alert( ret.code1 ) ;
//          alert( ret.code2 ) ;
//          alert( ret.juso  ) ;
//          alert( ret.bunji ) ;
//      }
//
//ex3 ) 대량처리를 파라미터로 넘겨 조회할때
//      var ret = openFUA1053R0( "JANGKI", "DR", "한신" ) ;
//      if( ret != null )
//      {
//          alert( ret.code1 ) ;
//          alert( ret.code2 ) ;
//          alert( ret.juso  ) ;
//          alert( ret.bunji ) ;
//      }
//

function openFUA1053R0()
{
    if( openFUA1053R0.arguments.length <= 0 )
    {
        alrt( "업무구분이 없습니다." ) ;
        return ;
    }

    var part = openFUA1053R0.arguments[0] ;
    var param = "/common/servlet/post/FUA1053R0?PARTNM=" + part ;

    if( openFUA1053R0.arguments.length >= 3 )
    {
        var tmp = "" ;
        var key = openFUA1053R0.arguments[1] ;
        var val = openFUA1053R0.arguments[2] ;

        var ar  = val.split( "-" ) ;
        for( var i = 0 ; i < ar.length ; i++ )
            tmp += ar[i] ;

        if( key != "" )
        {
            if( key == "ZP" )
            {
                if( tmp.length < 3 )
                {
                    alert( "우편번호를 확인하세요" ) ;
                    return null ;
                }

                param += "&UU_UZIP1=" + tmp.substring( 0, 3 ) ;
                param += "&UU_UZIP2=" + tmp.substring( 3    ) ;
            }
            else if( key == "DN" )
            {
                var bun = "" ;
                try
                {
                    bun = openFUA1053R0.arguments[3] ;
                }
                catch( e )
                {
                    bun = "0" ;
                }

                param += "&HU_UEUPMY=" + val ;
//              param += "&UU_BUNJI=" + bun ;
            }
            else if( key == "DR" )
            {
                param += "&HU_UDAEYA=" + val ;
            }
            param += "&CTRL_ID=FRT&PAGE_NO=1" ;
        }
    }

    return showDlg( param, "주소입력", -1, -1, 770, 590 ) ;
}

//용    도: 메뉴 바꾸기
//        프로그램이 클릭되어 실행할 때 메뉴를 적절히 바꿔준다.
//매개변수 : 프로그램 id
//사 용 예 : jumin_Check(xxxxxxyyyyyyy);

function replaceMenu( pgm )
{
    if( pgm == '' )
    {
        alert( "Program ID가 없습니다." ) ;
        return ;
    }

    try
    {
        parent.left.replaceMenu( pgm ) ;
    }
    catch( e )
    {
    }
}

//용    도: 날짜의 기본 타입에 맞는 함수
//          프로그램이 클릭되어 실행할 때 옵션을 적절히 바꿔준다.
//매개변수 : 프로그램 form

function chkDateBasicOption(form) {
    today = new Date();
    var currentYear = today.getYear();// 현재년도
    var currentMonth = today.getMonth();// 현재월
    var currentDay = today.getDate();// 현재일

    if (form.cond.selectedIndex == 0) { // 전체
        form.fromYear.value = '';
        form.fromMonth.value = '';
        form.fromDay.value = '';
        form.toYear.value = '';
        form.toMonth.value = '';
        form.toDay.value = '';
    }
    if (form.cond.selectedIndex == 1) { // 당일
        form.fromYear.value = currentYear;
        form.fromMonth.value = currentMonth + 1;
        form.fromDay.value = currentDay;
        form.toYear.value = today.getYear();
        form.toMonth.value = currentMonth + 1;
        form.toDay.value = currentDay;
    }
    if (form.cond.selectedIndex == 2) { // 전일
        form.fromYear.value = currentYear;
        form.fromMonth.value = currentMonth + 1;
        form.fromDay.value = currentDay - 1;
        form.toYear.value = currentYear;
        form.toMonth.value = currentMonth + 1;
        form.toDay.value = currentDay - 1;
    }
    if (form.cond.selectedIndex == 3) { // 당월
        form.fromYear.value = currentYear;
        form.fromMonth.value = currentMonth + 1;
        form.fromDay.value = '1';
        form.toYear.value = currentYear;
        form.toMonth.value = currentMonth + 1;
        form.toDay.value = checkLeapYear(currentYear, currentMonth + 1);
    }
    if (form.cond.selectedIndex == 4) { // 전월
        form.fromYear.value = currentYear;
        form.fromMonth.value = currentMonth;
        form.fromDay.value = '1';
        form.toYear.value = currentYear;
        form.toMonth.value = currentMonth;
        form.toDay.value = checkLeapYear(currentYear, currentMonth);
        if (currentMonth == 0) {
            form.fromYear.value = currentYear - 1;
            form.fromMonth.value = 12;
            form.toYear.value = currentYear - 1;
            form.toMonth.value = 12;
            form.toDay.value = checkLeapYear(currentYear - 1, 12);
        }
    }
    if (form.cond.selectedIndex >= 5 && form.cond.selectedIndex <= 8) { // 분기
        form.fromYear.value = currentYear;
        form.fromMonth.value = (form.cond.selectedIndex - 5) * 3 + 1;
        form.fromDay.value = '1';
        form.toYear.value = currentYear;
        form.toMonth.value = (form.cond.selectedIndex - 4) * 3;
        if(form.cond.selectedIndex == 6 || form.cond.selectedIndex == 7)
            form.toDay.value = '30';
        else
            form.toDay.value = '31';
    }
    if (form.cond.selectedIndex == 9) { // 당기
        form.fromYear.value = currentYear;
        form.fromMonth.value = '1';
        form.fromDay.value = '1';
        form.toYear.value = currentYear;
        form.toMonth.value = '12';
        form.toDay.value = '31';
    }
    if (form.cond.selectedIndex == 10) {    // 전기
        form.fromYear.value = currentYear - 1;
        form.fromMonth.value = '1';
        form.fromDay.value = '1';
        form.toYear.value = currentYear - 1;
        form.toMonth.value = '12';
        form.toDay.value = '31';
    }
}

// 용도 : 윤년 및 해당 월의 최종 날짜 체크
function checkLeapYear(year, month) {
    var stat = false;
    var dday = 31;

    if(year%4 == 0) {
        if(year%100 == 0) {
            if(year%400 == 0) {
                stat = true;
            }
        } else {
            stat = true;
        }
    }
    if(stat) {
        switch(month) {
            case 1: case 3: case 5: case 7: case 8: case 10: case 12: dday = 31; break;
            case 4: case 6: case 9: case 11: dday = 30; break;
            case 2: dday = 29; break;
        }

    } else {
        switch(month) {
            case 1: case 3: case 5: case 7: case 8: case 10: case 12: dday = 31; break;
            case 4: case 6: case 9: case 11: dday = 30; break;
            case 2: dday = 28; break;
        }
    }
    return dday;
}

// 용도 : 날짜 파라미터 셋팅
// 매개변수 : form, 시작 날짜를 셋팅 할 object, 종료 날짜를 셋팅 할 object
// 작성자 : 최철웅
function setDate(frm, fobj,tobj){

    var fdate = frm.fromYear.value + frm.fromMonth.value + frm.fromDay.value;
    var tdate = frm.toYear.value +  frm.toMonth.value + frm.toDay.value;

    if(fdate.length > 0){
        if(frm.fromYear.value.length == 0 || frm.fromMonth.value.length == 0 || frm.fromDay.value.length == 0){
            alert("날짜 조건이 부정확합니다.");
            return false;
        }else{
            fdate = frm.fromYear.value;
            if(frm.fromMonth.value.length < 2) fdate += "0" + frm.fromMonth.value;
            else fdate += frm.fromMonth.value;
            if(frm.fromDay.value.length < 2) fdate += "0"+ frm.fromDay.value;
            else fdate += frm.fromDay.value;

            fobj.value = fdate;
        }
    }

    if(tdate.length > 0){
        if(frm.toYear.value.length == 0 || frm.toMonth.value.length == 0 || frm.toDay.value.length == 0){
            alert("날짜 조건이 부정확합니다.");
            return false;
        }else{
            tdate = frm.toYear.value
            if(frm.toMonth.value.length < 2) tdate += "0" + frm.toMonth.value;
            else tdate += frm.toMonth.value;
            if(frm.toDay.value.length < 2) tdate += "0"+ frm.toDay.value;
            else tdate += frm.toDay.value;

            tobj.value = tdate;
        }
    }

    //20041001 검색시 최종날짜 오류 체크 코드 삽입
        var fdayLastchk = frm.fromDay.value;
        var tdayLastchk = frm.toDay.value;
        var temp = "";
        if(frm.fromYear.value!="" && frm.fromMonth.vaue!=""){

            if(checkLeapYear(parseInt(frm.fromYear.value), parseInt(frm.fromMonth.value)) < fdayLastchk ){
                frm.fromDay.value = checkLeapYear(parseInt(frm.fromYear.value), parseInt(frm.fromMonth.value));
                setDate(frm,frm.fdate,frm.tdate);
            }
        }

        if(frm.toYear.value!="" && frm.toMonth.vaue!=""){
            if(checkLeapYear(parseInt(frm.toYear.value), parseInt(frm.toMonth.value)) < tdayLastchk ){
                frm.toDay.value = checkLeapYear(parseInt(frm.toYear.value), parseInt(frm.toMonth.value));
                setDate(frm,frm.fdate,frm.tdate)
            }
        }
        //20041001 삽입 끝  -chamna

    return true;
}

function setDate2(frm, fobj,tobj){

    var sdate = frm.sYear.value + frm.sMonth.value + frm.sDay.value;
    var edate = frm.eYear.value +  frm.eMonth.value + frm.eDay.value;

    if(sdate.length > 0){
        if(frm.sYear.value.length == 0 || frm.sMonth.value.length == 0 || frm.sDay.value.length == 0){
            alert("날짜 조건이 부정확합니다.");
            return false;
        }else{
            sdate = frm.sYear.value;
            if(frm.sMonth.value.length < 2) sdate += "0" + frm.sMonth.value;
            else sdate += frm.sMonth.value;
            if(frm.sDay.value.length < 2) sdate += "0"+ frm.sDay.value;
            else sdate += frm.sDay.value;

            fobj.value = sdate;
        }
    }

    if(edate.length > 0){
        if(frm.eYear.value.length == 0 || frm.eMonth.value.length == 0 || frm.eDay.value.length == 0){
            alert("날짜 조건이 부정확합니다.");
            return false;
        }else{
            edate = frm.eYear.value
            if(frm.eMonth.value.length < 2) edate += "0" + frm.eMonth.value;
            else edate += frm.eMonth.value;
            if(frm.eDay.value.length < 2) edate += "0"+ frm.eDay.value;
            else edate += frm.eDay.value;

            tobj.value = edate;
        }
    }

    //20041001 검색시 최종날짜 오류 체크 코드 삽입
        var fdayLastchk = frm.sDay.value;
        var tdayLastchk = frm.eDay.value;
        var temp = "";
        if(frm.sYear.value!="" && frm.sMonth.vaue!=""){

            if(checkLeapYear(parseInt(frm.sYear.value), parseInt(frm.sMonth.value)) < fdayLastchk ){
                frm.sDay.value = checkLeapYear(parseInt(frm.sYear.value), parseInt(frm.sMonth.value));
                setDate(frm,frm.sdate,frm.edate);
            }
        }

        if(frm.eYear.value!="" && frm.eMonth.vaue!=""){
            if(checkLeapYear(parseInt(frm.eYear.value), parseInt(frm.eMonth.value)) < tdayLastchk ){
                frm.eDay.value = checkLeapYear(parseInt(frm.eYear.value), parseInt(frm.eMonth.value));
                setDate(frm,frm.sdate,frm.edate)
            }
        }
        //20041001 삽입 끝  -chamna

    return true;
}

//용    도: 폼 강제 reset
//매개변수 : 프로그램 form
// 작성자 : 최철웅

function formReset(frm){

    for(i = 0 ; i < frm.length ; i++){
        var obj = frm.elements[i];
        if( obj.type.toLowerCase() == "submit" ||
                obj.type.toLowerCase() == "reset" ||
                obj.type.toLowerCase() == "button" ||
                obj.type.toLowerCase() == "image" ||
                obj.type.toLowerCase() == "checkbox" ){
        }else{
            obj.value = '';
        }
    }
}

//용     도 : 체크박스 전체 선택
//매개변수 : 체크박스 object
// 작성자 : 최철웅
function checkBoxSelect(check){

    if(check == null) return;

    if(check.length == null){
        check.checked = true;
    }else{
        for(i = 0 ; i < check.length ; i++){
            check[i].checked = true;
        }
    }
}

//용     도 : 체크박스 전체 선택 취소
//매개변수 : 체크박스 object
// 작성자 : 최철웅
function checkBoxCancle(check){

    if(check == null) return;

    if(check.length == null){
        check.checked = false;
    }else{
        for(i = 0 ; i < check.length ; i++){
            check[i].checked = false;
        }
    }
}

//용 도 : 체크박스에 체크 된 값이 값들이 있는지 확인
//매개변수 : 체크박스 object
// 작성자 : 최철웅
function checkBoxConfirm(check){

    if(check == null) return false;

    if(check.length == null){
        if(!check.checked){
            return false;
        }
    }else{
        var cnt = 0;
        for(i = 0 ; i < check.length ; i++){
            if(check[i].checked) cnt++;
        }
        if(cnt == 0){
            return false;
        }
    }

    return true;
}

//용 도 : 체크박스에 체크된 값이 값이 하나 이상인 경우
//매개변수 : 폼 object, 기존 체크된 값, index
//작성자 : 장원규
function checkBoxChecking(form, org, val) {
    var check = 0, cnt = -1;
    if(form.top.length == null) {
        if(form.top.checked == false) {
            alert("대표는 하나 이상 선택하셔야 합니다.");
            form.top.checked = true;
            return;
        }
    }
    else {
        for(var i = 0; i < form.top.length; i++) {
            if(form.top[i].checked == true) {
                check += 1;
                cnt = i;
            }
        }
    }
    if(check > 1) {
        alert("대표는 하나만 선택할 수 있습니다.");
        if(val == cnt)
            form.top[cnt].checked = false;
        else
            form.top[val].checked = false;
    }
}

//용 도 : 체크박스에 체크 된 값이 하나인지 확인
//매개변수 : 체크박스 object
// 작성자 : 장원규
function checkBoxConfirmOne(check){

    if(check == null) {
        alert("선택해 주세요.");
        return false;
    }

    if(check.length == null){
        if(!check.checked){
            alert("선택해 주세요.");
            return false;
        }
    }else{
        var cnt = 0;
        for(i = 0 ; i < check.length ; i++){
            if(check[i].checked) cnt++;
        }
        if(cnt == 0) {
            alert("한 제품만 선택하세요.");
            return false;
        }
        if(cnt > 1){
            alert("한 제품만 선택하셔야 합니다.");
            return false;
        }
    }

    return true;
}

//용 도 : 팝업 띄우기
//매개변수 : url, popup name, width, height, scrollbars(yes/no)
//작성자 : 최철웅
function openPopup(url, popup_name, width, height, scroll){
    var win_pop = window.open(url,popup_name,"status=no,width="+width+",height="+height+",resizable=no,scrollbars="+scroll);
    win_pop.focus();
}

//용    도: popup 띄우기
//매개변수 : form, action, winname, width, height, resizable, scrollbars(yes/no/auto)
//작성자 : 장원규
function openPopup1(form, action, winname, width, height, resize, scroll) {
    var popup = window.open("", winname, "status=no, width="+width+", height="+height+", resizable="+resize+", scrollbars="+scroll);
    form.target = winname
    form.action = action;
    form.submit();
    popup.focus();
}

//용 도 : 팝업 띄우기
//매개변수 : url, popup name, width, height, scrollbars(yes/no)
//작성자 : 최철웅
function openPopup2(url, popup_name, width, height, scroll, type){
    var win_pop = window.open(url,popup_name,"status=no,width="+width+",height="+height+",resizable=no,scrollbars="+scroll);
    win_pop.focus();
}

//용        도: 쇼핑에서 결제금액 총합
//매개변수 : order_price-주문금액총합,cost-부대비용,total_point-총포인트,point_obj-사용포인트
//        : coupon_type-쿠폰타입,coupon_value-쿠폰금액또는비율,pay_obj-결제금액
//작성자     : 최철웅
function calcuPay(order_price,cost,total_point,point_obj,coupon_type,coupon_value,pay_obj){

    //쿠폰 할인금액
    var coupon_discount = 0;

    //쿠폰 할인금액 설정
    if(coupon_type == '1')
        coupon_discount = coupon_value;
    else if(coupon_type == '0')
        coupon_discount = Math.floor(order_price*(coupon_value/100));

    //포인트숫자체크
    if(!isNumber(point_obj) || point_obj.value == ''){
        alert("숫자를 입력하세요.");
        point_obj.value = '0';
        pay_obj.value = order_price + cost - coupon_discount;
        point_obj.focus();
        return;
    }

    //총사용포인트 초과체크
    if(total_point < parseInt(point_obj.value)){
        alert("사용가능한 포인트를 초과합니다.");
        point_obj.value = '0';
        pay_obj.value = order_price + cost - coupon_discount;
        point_obj.focus();
        return;
    }

    //사용포인트 결제금액초과 체크
    if((order_price+cost) < parseInt(point_obj.value)){
        alert("사용하시는 포인트가 결제금액을 초과합니다.");
        point_obj.value = '0';
        pay_obj.value = order_price + cost - coupon_discount;
        point_obj.focus();
        return;
    }

    //쿠폰금액 결제금액초과 체크
    if((order_price+cost) <= coupon_discount){
        alert("쿠폰으로 모든 금액을 결제하실수 없습니다.");
        point_obj.value = '0';
        pay_obj.value = order_price + cost - coupon_discount;
        point_obj.focus();
        return;
    }

    //쿠폰금액+포인트 결제금액초과 체크
    if((order_price+cost) < (coupon_discount+parseInt(point_obj.value))){
        alert("쿠폰과 포인트사용액이 결제금액을 초과합니다.");
        point_obj.value = '0';
        pay_obj.value = order_price + cost - coupon_discount;
        point_obj.focus();
        return;
    }

    setDiscountPay(order_price,cost,point_obj.value,coupon_type,coupon_value,pay_obj);
}

//용        도 : 결제시 discount(할인금액) 산출 , pay(결제총액) 산출
//매개 변수 : order_price-주문금액총합, cost-부가비용,
//         : point_value-사용포인트,coupon_type-쿠폰타입, coupon_value-금액또는 퍼센티지
//         : pay_obj-결제총액을 설정할 obj
//작 성 자  : 최철웅
function setDiscountPay(order_price, cost, point_value, coupon_type, coupon_value, pay_obj){

    var _discount = 0;
    var _pay = 0;

    if(coupon_type == '1')          //금액 할인 쿠폰
        _discount = parseInt(point_value) + coupon_value;
    else if(coupon_type == '0' )    //비율 할인 쿠폰
        _discount = parseInt(point_value) + Math.floor(order_price*(coupon_value/100));
    else if(coupon_type == '-1')    //쿠폰을 사용하지 않을 때
        _discount = parseInt(point_value);

    //결제 총액 계산
    _pay = order_price + cost - _discount;

    //결제총액 셋팅
    pay_obj.value = _pay;
}

//용        도 : 결제타입별 결제 폼 체크
//매개 변수 : form, pay_type(결제타입),url(action 결제페이지)
//작성자       : 최철웅
function submitPay(form,pay_type, url){

    // form.pay 필드가 있을때(수정:황우천)
    if(form.pay){

        //pay가 0일때 포인트결제로 간주하고 submit (포인트결제는 카드와 은행입금일때만 가능)
        if(form.pay.value == '0' && (pay_type == '01' || pay_type == '02') ){
            form.paytype.value='03';

            form.action = url;
            form.submit();

            return;
        }
    }

    if(pay_type == '02'){       //은행 입금

        if(form.bname.value == ''){
            alert("입금자명을 입력하세요");
            form.bname.focus();
            return;
        }

        if(form.bankaccount.value == ''){
            alert("입금은행을 선택하세요");
            return;
        }


    }else if(pay_type == '07'){     //외상 결제

        if(form.reason.value == ''){
            alert("결제사유을 입력하세요");
            form.reason.focus();
            return;
        }

    }else if(pay_type == '08' || pay_type == '09'){ //교환/기타 결제

        if(form.reason.value == ''){
            alert("결제사유을 입력하세요");
            form.reason.focus();
            return;
        }


    }else if(pay_type == 'ES'){     //견적서주문

        if(form.sname.value == ''){
            alert("업체담당자를 입력하세요");
            form.sname.focus();
            return;
        }else if(form.stel.value == ''){
            alert("담당자 연락처를 입력하세요");
            form.stel.focus();
            return;
        }else if(form.comments.value == ''){
            alert("배송/결제조건을 입력하세요");
            form.comments.focus();
            return;
        }

    }

    form.action = url;
    form.submit();

}

// 가격과 비율을 기본판매가로 자동계산함수 - 상품에서 사용하는 스크립트
// method : 가격/비율 중에 어느 것으로 계싼할 것인지
// price : 기본판매가
// valObj : 가격/비율의 값
// targetObj : 가격/비율의 계산 후 입력되는 OBJECT
function autoCaculator(methodType, price, valObj, targetObj) {
	
  //alert("methodType ["+methodType+"], price ["+price.value+"], valObj ["+valObj.name+"], targetObj ["+targetObj.name+"]");

    if(!checkStringEmpty(valObj, "digit")) return;

    if(isEmpty(valObj)) { valObj.value = ""; targetObj.value = ""; return; }

    // 가격으로 계산해서 비율을 구한다
    if(methodType == "B") {
        if(parseInt(valObj.value) > parseInt(price.value)) { alert("기본판매가 보다 큽니다."); valObj.select(); return; }
    }
    // 가격으로 계산해서 비율을 구한다
    else if(methodType == "C") {
        if(isEmpty(price)) { alert("회원등급가를 입력하세요."); valObj.value = ""; price.focus(); return; }
    }
    // 가격으로 계산해서 비율을 구한다
    else if(methodType == "D") {
        if(isEmpty(price)) { alert("회원등급가를 입력하세요."); valObj.value = ""; price.focus(); return; }
        if(parseInt(valObj.value) > parseInt(price.value)) { alert("사이트할인가 보다 큽니다."); valObj.value = ""; return; }
    }
    targetObj.value = compute(price.value, valObj.value, methodType);
}

// 값이 없는 경우에 문자인지 숫자인지를 체크한다. - 상품에서 사용하는 스크립트
// check : 문자(string), 숫자(digit), 문자와 숫자(digit)
// valObj : 체크할 OBJECT
function checkStringEmpty(valObj, check) {
    if(check == "string") {// 값이 있는지 없는지를 체크한다.
        if(isEmpty(valObj)) return msg("값을 입력하세요.", valObj);
        else return true;
    }
    else if(check == "digit") {// 숫자인지 체크한다
        if(!isNumber(valObj)) {
			valObj.value = 0;
			return msg("숫자를 입력하세요.", valObj);
		}
        else return true;
    }
    else if(check == "mix") {// 값이 있는지 없는지 체크한 후에 숫자인지 아닌지 체크한다.
        if(isEmpty(valObj)) {
			valObj.value = 0;    
			return msg("값을 입력하세요.", valObj);
		}
        if(!isNumber(valObj)){
			valObj.value = 0;    
			return msg("숫자를 입력하세요.", valObj);
		}
        return true;
    }
}

// alert BOX를 띄운다 - 상품에서 사용하는 스크립트
// message : 내용
// obj : OBJECT
// flag : return을 사용할 것인지 여부
function msg(message, obj) {
    alert(message); obj.select(); return false;
}

// 값을 계산한다. - 상품에서 사용하는 스크립트
// x : 계산할 수1
// y : 계산할 수2
// type : 계산타입
function compute(x, y, type) {
    var ret = "";
    switch(type) {
        case "A"  : // 할인율을 입력받아서 회원등급가를 구한다.
            ret = Math.floor( x - ( x * ( y / 100 ) ) ); break;
        case "B"  : // 회원등급가를 입력받아서 할인율을 구한다.
            ret = Math.floor( 100 - ( y / x * 100 ) ); break;
        case "C"  :
            ret = Math.floor( ( x * y ) / 100 ); break;
        case "D"  :
            ret = Math.floor( ( y / x ) * 100 ); break;
    }
    return ret;
}

// 현재화면에서 주문상세보기 페이지로 이동한다.
// orderid : 주문번호
function orderDetail(orderid){
    window.location = "/shop/order/orderDetail.jsp?orderid="+orderid;
}

// opener를 주문상세보기 페이지로 이동한다
// orderid : 주문번호
function openerOrderDetail(orderid){
    opener.location = "/shop/order/orderDetail.jsp?orderid="+orderid;
    self.close();
}
// orderid : 주문번호
function orderDetail2(orderid){
    window.location = "/shop/order/orderDetail.jsp.bugs.jsp?orderid="+orderid;
}

// opener를 주문상세보기 페이지로 이동한다
// orderid : 주문번호
function openerOrderDetail2(orderid){
    opener.location = "/shop/order/orderDetail.jsp.bugs.jsp?orderid="+orderid;
    self.close();
}

// 현재화면에서 주문상세보기 페이지로 이동한다.
// orderid : 주문번호
function returnDetail(orderid){
    window.location = "/deo/deosch/DEOSCH02R0.jsp?orderid="+orderid;
}

// object 의 크기 제한 함수
// obj : object
// s   : 제한 크기
// msg : 경고 메세지
function checkObjSize(obj,s,msg){
    if(obj.value.length >= s){
        alert(msg);
        obj.value = "";
    }
}

// setFormObj 함수에서 정의된 값들을 체크한다.
// Object name이 select이면 "값을 선택하세요."를 보여주고 false를 리턴.
// Object name이 text이면 "값을 입력하세요."를 보여주고 false를 리턴.
function checkBeforeSubmit(form, FormObj) {
    for(var i = 0; i < FormObj.length; i++) {
        for(var j = 0; j < form.length; j++) {
            if(FormObj[i] == form.elements[j].name) {
                if(IsTrimStr(form.elements[j].value) == "") {
                    var msg = "";
                    if(form.elements[j].type == "select-one")
                        msg = "값을 선택하세요.";
                    else if(form.elements[j].type == "text" || form.elements[j].type == "textarea")
                        msg = "값을 입력하세요.";

                    alert(msg); form.elements[j].focus(); return false; break;
                } else {
                    if(i == (FormObj.length-1))
                        return true;
                    else
                        continue;
                }
            }
        }
    }
}

function trace(shipcode) {
    var popup = window.open('http://www.hanjinexpress.hanjin.net/customer/plsql/hddcw07.result?wbl_num='+shipcode, 'trace', 'width=550,height=550,scrollbars=yes');
    popup.focus();
}

function traceB(shipcode) {
    var popup = window.open('http://doortodoor.korex.co.kr/servlets/cmnChnnel?invc_no=' + shipcode + '&tc=dtd.cmn.command.c03condiCrg01Cmd&custid=', 'trace', 'width=550,height=550,scrollbars=yes');
    popup.focus();
}

//--------------------------------------------------------------------------------------------------
// 라디오 박스 체크
//	value 반환
//--------------------------------------------------------------------------------------------------
function GetRadioValue(opt) {		
	var leng = ((isNaN(opt.length*1))?1:opt.length*1);
	
	if (leng == 1)
	{
			if (opt.checked)
			{
				return opt.value;
			}
	}
	else {
		var n = opt.length;			
		for (i=0; i<n; i++) {
			if (opt[i].checked) {					
				return opt[i].value;
			}
		}
	}
	return "";
}


function GetRadioProp(opt, prop) {		
	var leng = ((isNaN(opt.length*1))?1:opt.length*1);
	
	if (leng == 1)
	{
			if (opt.checked)
			{
				return eval('opt.'+prop);
			}
	}
	else {
		var n = opt.length;			
		for (i=0; i<n; i++) {
			if (opt[i].checked) {					
				return eval('opt['+i+'].'+prop);
			}
		}
	}
	return "";
}

// focus
function bluring(){ 
	if(event.srcElement.tagName=="A"||event.srcElement.tagName=="img") document.body.focus(); 
} 
document.onfocusin=bluring;


function Show_Hide() { 
	var i,p,v,obj,args=Show_Hide.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=Find_Obj(args[i]))!=null) { v=args[i+2];
	if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
	obj.visibility=v; }
}


var old_sa = '';
	function menuclick( a )
	{
	if( old_sa != a ) {
	if( old_sa!='' ) {
	old_sa.style.display = 'none';
	}
	a.style.display = 'block';
	old_sa = a;
	
	} else {
	
	a.style.display = 'none';
	old_sa = '';
	}
	
	}
//-->

function hide(lname)
{
	if (document.layers)
		document.layers[lname].visibility = 'hide'
	if(document.all)
		document.all(lname).style.visibility = 'hidden'
}

function show(lname)
{
	if(document.layers)
		document.layers[lname].visibility = 'show'
	if(document.all)
		document.all(lname).style.visibility = 'visible'
}




//* 탑메뉴 스크립트 *//

  var menu_layer = "top_";
  var total_top  = 8 + 1;
  var curPos     = 0;
  var MouseOverColor = "#c5792e";

  var temPos;

  function first(top_pos,sub_pos){
    curPos = top_pos;
    resetAnk();
    resetT();
    if(top_pos == 0 )
    {
      showBG();
    } else {
      ishowL(top_pos);
      hideBG();
    }
    nowPosition(top_pos, sub_pos)
  }

  function ishowL(flag){
    var BefPos = temPos;    
    if(temPos!="" && temPos != null && temPos != flag)
    {      
      outMenu(temPos);
      ihideT(temPos);
    }

    if(curPos != "" && curPos != null && curPos != 0)
    { 
        outMenu(curPos);
        ihideT(curPos);      
    }

    overMenu(flag);
    ishowT(flag);
    temPos = flag;

  }

  function ihideL(flag)
  {
    if(temPos != curPos)
    {
      outMenu(temPos);
      ihideT(temPos);
      temPos = "";
    }

    if(curPos != "" && curPos != null && curPos != 0)
    {      
        overMenu(curPos);
        ishowT(curPos);     
    }
  }

  function overMenu(i)
  {
    var omenu = "a" + (i<10 ? "0" : "") + i;
    document.all[omenu].className="menu_on";
  }

  function outMenu(i)
  {
    var omenu = "a" + (i<10 ? "0" : "") + i;
    document.all[omenu].className="menu";
  }

  function ishowT(a) {     
    c = menu_layer + (a<10 ? "0" : "") + a;   
    document.all[c].style.display="";
  }

  function ihideT(a) {
    c = menu_layer + (a<10 ? "0" : "") + a;
    document.all[c].style.display="none";
  }

  function showBG()
  {
    c = menu_layer + "00";
    document.all[c].style.display="";
  }

  function hideBG()
  {
    c = menu_layer + "00";
    document.all[c].style.display="none";
  }

  function nowPosition(top_main, top_sub)
  {
    var link = eval("document.all.top" + (top_main<10 ? "0" : "") + top_main + (top_sub<10 ? "0" : "") + top_sub);
    if(link && top_sub != 0){
      link.style.color= MouseOverColor;
      link.style.fontWeight= "bold";
    }
  }

  function resetAnk()
  {
  	var ank = document.links;
  	for (i = 0; i < ank.length; i++) {
  		if (ank[i] != null)
  			if (ank[i].tagName == "A")
  				ank[i].style.color = '';
          ank[i].style.fontWeight= "normal";
  	}
  }

  function resetT()
  {
    for (var i = 1; i < total_top; i++){      
      ihideT(i)
    }
  }


/* 링크관련 스크립트 */
function dualHref(leftLink, mainLink) {
		parent.leftFrame.location.href = leftLink;
		parent.mainFrame.location.href = mainLink;
}

function openWindow(fileName, winName, width, height, scrollbars) {
  var center = new Array();
  center = window_center(width, height);
  openWin(fileName, winName, center.left, center.top, width, height, scrollbars)
}

function openWin(fileName, winName, left, top, width, height, scrollbars) {
  var win = window.open(fileName, winName, "width=" + width+ ", height=" + height + ", left=" + left + ", top=" + top + ", scrollbars='" + scrollbars + "'");
  if (win) win.focus();
}

function window_center(width, height) {
  var sw = parseInt(screen.availWidth);
  var sh = parseInt(screen.availHeight);
  var nw = parseInt(width) + 10;
  var nh = parseInt(height) + 36;
  var center = new Array();
  center.left = 0;
  center.top = 0;
  if ( sw > nw ) {
    center.left = (sw - nw) / 2;
  }
  if ( sh > nh ) {
    center.top = (sh - nh) / 2;
  }
  return center;
}

function logOut(){
	goURL('/one_admin/login/logout.jsp');
}

function goURL(url){
	location.href = url;
}

function resetForm(frm){
	for (var i=0 ; i < frm.elements.length ; i++){
		var formField = frm.elements[i];
		if (formField.tagName == 'INPUT'){
			if (formField.type == 'text'){
				formField.value = '';
			}else if(formField.type == 'radio'){
				formField.checked = false;
			}else if(formField.type == 'checkbox'){
				formField.checked = false;
			}
		}else if(formField.tagName == 'SELECT'){
			formField.selectedIndex = 0;
		}else if(formField.tagName == 'TEXTAREA'){
			formField.value = '';
		}
	}
}

//지정 name의 이미지를 리사이즈 한다.
function resizeImg(name, maxLength){
	var col = document.getElementsByName(name);
	
	if( col != null ){
		for(i = 0; i < col.length; i++){
			if( col[i].width > maxLength ){
				col[i].width = maxLength;
			}
		}
	}
}

//add scripts

function numberInputValuesChk(value1, value2, value3, msg, defaultNull, messageAlert){
	var ret = true
	if(defaultNull){
		if(value1.value+value2.value+value3.value != ""){
			if( isNull(value1) || isNull(value2) || isNull(value3) || !(value1.value+value2.value+value3.value).isNumber()) {
				if(messageAlert) alert(msg);
				ret =  false;
			}	
		}
	}else{
		if( isNull(value1) || isNull(value2) || isNull(value3) || !(value1.value+value2.value+value3.value).isNumber()) {
			if(messageAlert) alert(msg);
			ret = false;
		}
	}
	 return ret;		
}

function URLDecode(v){
  return decodeURI(v);
}

function URLEncode(v){
  return encodeURI(v);
}



/* 체크박스 tr색 변경
-------------------------*/	
function chk_selected(frm_show) {
    var clintAgent = navigator.userAgent;
    if (clintAgent.indexOf("MSIE") != -1) {
        if (frm_show.checked) {
            frm_show.parentNode.parentNode.className = 'listSelected';
        } else {
            frm_show.parentNode.parentNode.className = 'listBlur';
        }
    }
}
function chk_selected2(frm_show) {
    var clintAgent = navigator.userAgent;
    if (clintAgent.indexOf("MSIE") != -1) {
        if (frm_show.checked) {
            frm_show.parentNode.parentNode.className = 'listSelected';
            frm_show.parentNode.parentNode.style.display = "none"
        } else {
            frm_show.parentNode.parentNode.className = 'listBlur';
        }
    }
}


//javascript로 구현한 Request
function Request(valuename)
{
    var rtnval;
    var nowAddress = unescape(location.href);
    var parameters = new Array();
    parameters = (nowAddress.slice(nowAddress.indexOf("?")+1,nowAddress.length)).split("&");
    for(var i = 0 ; i < parameters.length ; i++){
        if(parameters[i].indexOf(valuename) != -1){
            rtnval = parameters[i].split("=")[1];
            if(rtnval == undefined || rtnval == null){
                rtnval = "";
            }
            return rtnval;
        }
    }
}

//iframe 자동 리사이즈(파이어폭스, 익스 지원)
function resize_frame(obj){  
 var obj_document = obj.contentWindow.document; 
  if(obj_document.height){
  obj.style.height = obj_document.height;
  obj.style.width = obj_document.width; 
 } else {
  obj.style.height = obj_document.body.scrollHeight;
  obj.style.width = obj_document.body.scrollWidth; 
 }
}

function resize_frame2(obj){
 targetFrame=document.all? document.all.TargetUrl : document.getElementById(obj);
 targetFrame.style.top=0;
 targetFrame.style.left=0;
 pageheight=targetFrame.offsetHeight;
 pagewidth=targetFrame.offsetWidth;
 parent.frames(obj).resizeTo(pagewidth,pageheight);
}


//iframe resize
function resizeFrame(){
    self.resizeTo( document.body.scrollWidth, document.body.scrollHeight);
}

function resizeFrame_wh(w, h){
    self.resizeTo( document.body.scrollWidth+w, document.body.scrollHeight+h);
}

function resizeFrameParent(max_w, max_h){
    var w = 0;
    var h = 0;
    
    if(parent.document.body.scrollWidth > max_w)
        w = max_w;
    else
        w = parent.document.body.scrollHeight;
        
    if(parent.document.body.scrollHeight > max_h)
        h = max_h;
    else
        h = parent.document.body.scrollHeight;
        
    self.resizeTo(w, h);
}



function ImeChk(obj){
  l=obj.value.charCodeAt(obj.value.length-1);
  if(l>1000){
   obj.style.background='#ffffff';
  } else
   obj.style.background='#c8c8c8';     
 }
 
 function ImeChkAndObjSelChange(obj, targetObj, koIndex, enIndex){
  l=obj.value.charCodeAt(obj.value.length-1);
  if(Number(l)>1000){
   obj.style.background='#ffffff';
   targetObj.selectedIndex = koIndex;
   }else{
   obj.style.background='#c8c8c8';
   targetObj.selectedIndex = enIndex;
   }
 }
 
function centerPop(url, w, h, resizable, scrollbars){
	w = parseInt(w);
	h = parseInt(h);
	if (screen.width == w) {
		var T = 0;
		var L = 0;
	} else {
		var L = ((screen.width) - w) / 2;
		var T = ((screen.height) - h) / 2;
	}
	var win = window.open(url + '', '', 'width='+w+',height='+h+',top=' + T + ',left=' + L + ',resizable='+resizable+',scrollbars='+scrollbars);
	win.focus();
}


function hideLayer(name) {
	var layer = getLayer(name);
	layer.style.display = "none";
}

function showLayer(name) {
	var layer = getLayer(name);
	layer.style.display = "block";
}

function showOrHideLayer(name) {
	var layer = getLayer(name);
	(layer.style.display=="none" ? showLayer(name) : hideLayer(name));
}

function getLayer(name) {
	return document.getElementById(name);
}

function hideLayerV(name) {
	var layer = getLayer(name);
	layer.style.visibility = "hidden";
}

function showLayerV(name) {
	var layer = getLayer(name);
	layer.style.visibility = "visible";
}

function showOrHideLayerV(name) {
	var layer = getLayer(name);
	(layer.style.visibility=="hidden" ? showLayerV(name) : hideLayerV(name));
}


function FormatZero(number, size)
{
    var tmpString = number;
    var tmpCount = Number(size) - tmpString.length;
    for (var i = 0; i < Number(tmpCount); i++)
    {
        tmpString = "0" + tmpString;
    }
    return tmpString;
}

function insertComma(num)
    {
        if (num < 0) { num *= -1; var minus = true} 
        else var minus = false 
            
        var dotPos = (num+"").split(".") 
        var dotU = dotPos[0] 
        var dotD = dotPos[1] 
        var commaFlag = dotU.length%3 
 
        if(commaFlag) { 
                var out = dotU.substring(0, commaFlag)  
                if (dotU.length > 3) out += "," 
        } 
        else var out = "" 
 
        for (var i=commaFlag; i < dotU.length; i+=3) { 
                out += dotU.substring(i, i+3)  
                if( i < dotU.length-3) out += "," 
        } 
 
        if(minus) out = "-" + out 
        if(dotD) return out + "." + dotD 
        else return out  	
    }



function CheckStrLen(objVal, maxlen) {
    var temp; //들어오는 문자값... 
    var msglen;
    msglen = maxlen * 2;
    var value = objVal;

    l = objVal.length;
    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) {
                alert("총 영문 " + (maxlen * 2) + "자 한글 " + maxlen + "자 까지 보내실수 있습니다.");
                objVal = tmpstr;
                break;
            }
            else {
                tmpstr += temp;
            }
        }
    }
}



function swf(src,w,h,f_var){
 html = '';
 html += '<object type="application/x-shockwave-flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="param1" width="'+w+'" height="'+h+'">';
 html += '<param name="movie" value="'+src+'">';
 html += '<param name="quality" value="high">';
    html += '<param name="FlashVars" value="'+f_var+'">';
    html += '<param name="wmode" value="transparent">';
 html += '<param name="menu" value="false">';
 html += '<param name="swliveconnect" value="true">';
 html += '<embed src="'+src+'" quality=high  width="'+w+'" height="'+h+'" FlashVars="'+f_var+'" menu="false" swliveconnect="true" id="param1" name="param1" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" ><\/embed>';
 html += '<\/object>';
 document.write(html);
}

function StandardOrEm(p_domain, p_url, p_centerp_url){
    if(p_url.replace(p_domain, "").replace("www.", "").replace("http://", "").substring(0, 3).toLowerCase() == "/em" ){
	    document.write('<div style="text-align:left;">');
            document.write('<a href="javascript:centerPop(\''+p_centerp_url+'\', 800, 600, \'yes\', 1);"><img src="/em/images/admin2/btn_image.png" align="absmiddle" alt="이미지등록" border="0"></a><br>');
        document.write('</div>');
    }
}


