
 //Flash
function flash(c,d,e) {
 var flash_tag = "";
 flash_tag = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
 flash_tag +='codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" ';
 flash_tag +='width="'+c+'" height="'+d+'" >';
 flash_tag +='<param name="wmode" value="transparent">'; 

 //이부분은 플래쉬 배경을 투명으로 설정하는 부분으로 필요없다면 삭제해도 무방함
 flash_tag +='<param name="base" value=".">'; //param
 
 flash_tag +='<param name="wmode" value="opaque">';
 flash_tag +='<param name="movie" value="'+e+'">'; 
 flash_tag +='<param name="quality" value="high">';
 flash_tag +='<embed src="'+e+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" base = "." wmode="transparent"';
 flash_tag +='type="application/x-shockwave-flash"  WIDTH="'+c+'" HEIGHT="'+d+'"></embed></object>'
 document.write(flash_tag);
}

/**
 *	금액 필드에 사용하는 금액 표시 함수
 * @param Object form.text
 * @usage onkeyup="moneyUpdate(this)"
 */
function moneyUpdate(el) {
	var pattern = /([1-9]{1}[0-9]*$)+/;
	if (el.value.isNull()) return;
	var str = el.value.trim().split(",").join("")
	if (pattern.test(str) || el.value == "0") {
		var retVal="", s1="";
		if (str.length <= 3) {
			el.value = str;
			return;
		}
		for (var i=str.length -1; i >=0 ; i-- ) s1 += str.charAt(i);
		for (var i=s1.length -1; i >=0 ; i-- ) {
			retVal += s1.charAt(i);
			if(i % 3 == 0 && i != 0) retVal += ",";
		}
		el.value = retVal;
	}else{
		el.value = "";
	}
}

/**
 *	금액 필드에 사용하는 금액 표시 함수2
 * @param String 
 * @return String
 * @usage onkeyup="moneyUpdate2('1000')"
 */
function moneyUpdate2(el) {
	var pattern = /([1-9]{1}[0-9]*$)+/;
	if (el.isNull()) return;
	var str = el.trim().split(",").join("")
	if (pattern.test(str)) {
		var retVal="", s1="";
		if (str.length <= 3) {
			el = str;
			return;
		}
		for (var i=str.length -1; i >=0 ; i-- ) s1 += str.charAt(i);
		for (var i=s1.length -1; i >=0 ; i-- ) {
			retVal += s1.charAt(i);
			if(i % 3 == 0 && i != 0) retVal += ",";
		}
		el = retVal;
	}else{
		el = "0";
	}
	return el;
}

/**
 *	Error Page Interface
 * @param int	 line
 * @param event e
 * @param string user_msg
 */
function goErrorPage(line, e, msg) {
	var errorPage = "/Errors/scriptError.asp";
	var reqUrl = location.href + location.search;
	var strForm = "<form name=\"frmErrorPage\" method=\"post\" action=\""+errorPage+"\">";
	strForm += "<input type=\"hidden\" name=\"line\" value=\""+line+"\" />";
	strForm += "<input type=\"hidden\" name=\"err_num\" value=\""+(e.number & 0xFFFF)+"\" />";
	strForm += "<input type=\"hidden\" name=\"err_name\" value=\""+e.name+"\" />";
	strForm += "<input type=\"hidden\" name=\"err_msg\" value=\" "+e.message+" \" />";
	strForm += "<input type=\"hidden\" name=\"user_msg\" value=\" "+msg+" \" />";
	strForm += "<input type=\"hidden\" name=\"reqUrl\" value=\""+reqUrl+"\" />";
	strForm += "</form>	";
	document.write(strForm);
	frmErrorPage.submit();
}


/*  Function Equivalent to URLEncoder.encode(String, "UTF-8")
    Copyright (C) 2002 Cresc Corp.
    Version: 1.0
*/
function encodeURL(str){
	if (!str) return "";
    var s0, i, s, u;
    s0 = "";                // encoded str
    for (i = 0; i < str.length; i++){   // scan the source
        s = str.charAt(i);
        u = str.charCodeAt(i);          // get unicode of the char
        if (s == " "){s0 += "+";}       // SP should be converted to "+"
        else {
            if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))){     // check for escape
                s0 = s0 + s;           // don't escape
            }
            else {                      // escape
                if ((u >= 0x0) && (u <= 0x7f)){     // single byte format
                    s = "0"+u.toString(16);
                    s0 += "%"+ s.substr(s.length-2);
                }
                else if (u > 0x1fffff){     // quaternary byte format (extended)
                    s0 += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else if (u > 0x7ff){        // triple byte format
                    s0 += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else {                      // double byte format
                    s0 += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
            }
        }
    }
    return s0;
}

/**
 *	XML의
 *
 *
 */
// cdata의 데이터를 가져오는 함수 노드타입 4번//
function getNodeText(node) {
	var sText = "";

	if (!node.hasChildNodes()) return sText;

	node = node.childNodes;

	if (!node) return sText;
	for ( var i=0 ; i < node.length ; i++ ) {
		if (node[i].nodeType == 4) {
			sText = node[i].data;
		}
	}
	return sText;
}


/*
    String name, value
    Date expires
    String path, domain
    Boolean secure

    optional: expires,path,domain,secure
*/
function setCookie(name,value,expires,path,domain,secure) {
//	if (!path) path = "/";
    document.cookie =   name + '=' + escape(value)         + ';'
        + ((expires) ? ' expires=' + expires.toGMTString() + ';' : '')
        + ((path)    ? ' path='    + path                  + ';' : '')
        + ((domain)  ? ' domain='  + domain                + ';' : '')
        + ((secure)  ? ' secure'                           + ';' : '');
}

// Returns a string or false
function getCookie(name) {
    var srch = name + '=';
    if (document.cookie.length > 0) {
        offset = document.cookie.indexOf(srch);
        if (offset != -1) {
            offset += srch.length;
            end = document.cookie.indexOf(';', offset);
            if (end == -1) end = document.cookie.length;
            return unescape(document.cookie.substring(offset, end));
        } else return false;
    } else return false;
}

// optional: path,domain
function delCookie(name,path,domain) {
    if (Q_getCookie(name))
        document.cookie = name                 + '=;'
            + ' expires=Thu, 01-Jan-70 00:00:01 GMT;'
            + ((path)   ? ' path='    + path    + ';' : '')
            + ((domain) ? ' domain='  + domain  + ';' : '');
}

/**
 *	문자열에서 특정문자를 다른 문자로 바꿉니다.
 *
 *	@param string val 문자열
 *	@param string str 특정문자
 *	@param string str2 바꿀문자
 *	@return string
 */
function replace(val, str, str2) {
	if (typeof (val) == 'undefined'
		|| typeof (str) == 'undefined'
		|| typeof (str2) == 'undefined' ) {
		window.status = "function replace(s0,s1,s2) 인수가 넘어 오지 않았습니다!";
		return false;
	}
	if (val.length < 1 || val.length < str.length) return false;

	var newStr = "";
	var rr = Array();
	for (var i=0 ; i < val.length - str.length + 1 ; i++ ) {
		if (str == val.substring(i, i + str.length)) {
			rr[rr.length] = i;
		}
	}
	if (rr.length > 0) {
		var old = 0;
		for (var i=0; i < rr.length ; i++ ) {
			if (rr[i] != old) {
				newStr += val.substring(old,rr[i]);
				old = rr[i] + str.length;
			}
			newStr += str2;
			if (i == rr.length -1) {
				newStr += val.substring(rr[i] + str.length,val.length);
			}
		}
		return newStr;
	}else
		return val;
}

/**
 *	이벤트 핸들러 등록
 *	@useage addEvent(window,'load',func_preload);
 */
function addEvent(obj, evType, fn, useCapture){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		alert("Handler could not be attached");
	}
}

/**
 *	이벤트 핸들러 삭제
 *	@useage removeEvent(window,'load',func_preload);
 */
function removeEvent(obj, evType, fn, useCapture){
	if (obj.removeEventListener){
		obj.removeEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.detachEvent){
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} else {
		alert("Handler could not be removed");
	}
}


/**
 *	인수로 넘긴 분리자로 구분하여 돌려준다.
 *	@param	String separator 생략가능
 *	@return String Date
 *	@EX > YYYY-MM-DD
 *	@ IE,FF 에서 확인됨
 */
Date.prototype.toCalendar = function(separator) {
	if (typeof(separator) == 'undefined' || separator == "") separator = "-";
	var tmp = new Array(3);
	tmp[0] = this.getFullYear(); //
	tmp[1] = this.getMonth() + 1;
	tmp[2] = this.getDate();
	if (tmp[1] < 10) tmp[1] = "0" + tmp[1];
	if (tmp[2] < 10) tmp[2] = "0" + tmp[2];
	return tmp.join(separator);
}

/**
 *	문자열에서 빈문자를 제거하고 돌려준다.(첫,마지막문자에 스페이스와 \n\r\t 등)
 *	@return String
 *	@ IE,FF 에서 확인됨
 */
String.prototype.trim = function(str) {
	str = this != window ? this : str;
	return str.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

/**
 *	문자열에서 원하는 길이(byte형식)를 돌려줍니다.
 *	@return int length
 *	@ IE,FF 에서 확인됨
 */
String.prototype.bytes = function(str) {
	str = this != window ? this : str; len = 0;
	for(var i=0; i < str.length; i++) {
		len += (str.charCodeAt(i) > 128) ? 2 : 1
	}
	return len;
}

/**
 *	문자열에서 원하는 길이(byte형식)만큼 잘라내어 돌려준다.
 *	@param Int (byte의 길이)
 *	@return String
 *	@ IE,FF 에서 확인됨
 */
String.prototype.cut = function(len,str) {
	str = this != window ? this : str;
	var l = 0;
	for (var i=0; i<str.length; i++) {
			l += (str.charCodeAt(i) > 128) ? 2 : 1;
			if (l > len) return str.substring(0,i);
	}
	return str;
}

/**
 *	널값인지 확인
 *	@return boolean
 *	@ IE,FF 에서 확인됨
 */
String.prototype.isNull = function(str) {
	str = this != window ? this : str;
	return (str.trim().length == 0) ? true : false ;
}

/**
 *	숫자형식인지 확인
 *	@return boolean
 *	@ IE,FF 에서 확인됨
 */
String.prototype.isNumeric = function(str) {
	str = this != window ? this : str;
	return (!str.isNull() && !isNaN(str)) ? true : false ;
}

/**
 *	문자열이 인수로 넘어온 문자가 같은지 비교한다.
 *	@param str
 *	@return boolean
 *	@ IE,FF 에서 확인됨
 */
String.prototype.isEqual = function(str, orgStr) {
	orgStr = this != window ? this : orgStr;
	return (orgStr == str) ? true : false ;
}

/**
 *	문자열이 날짜형식과 일치하는지 비교한다. 2006-01-01
 *	@param str
 *	@return boolean
 *	@ IE,FF 에서 확인됨
 */
String.prototype.isDate = function(str) {
	str = this != window ? this : str;
	var pattern = /^([1]{1}[9]{1}[0-9]{2}|[2]{1}[0]{1}[0-9]{2})-?([0]{1}[1-9]{1}|[1]{1}[0-2]{1})-?([0]{1}[1-9]{1}|[3]{1}[0-1]{1}|[12]{1}[0-9]{1})$/
	return (pattern.test(str)) ? true : false ;
}

/**
 *	정진우(nikaej@cloud9.co.kr)
 *	문자열에서 오른쪽 문자 추출하기.
 *	@param len : 오른쪽에서 가져올 문자 수.
 *	@return String
 *	@ IE,FF 에서 확인됨
 *	ex) iChr = "000".concat(1).right(3);		<= 이런식으로 앞에 0을 붙일 때도 사용할 수 있음.(001,002,...)
 */
String.prototype.right = function(len) {
	if (typeof (len) == 'undefined') {
		window.status = "인수가 넘어 오지 않았습니다!";
		return false;
	}
	if (this.length < len){
		window.status = "지정한 인수가 문자열보다 작아야 합니다!";
		return false;
	}
	str = this.substring((this.length-len),this.length);
	return str;
}


/**
 *	XMLHttpRequest 연결을 만든다.
 *	@return XMLHttpRequest
 * 	@주의 연결 실패시 Null
 */
function makeXMLHttpRequest() {
	var conn = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		conn = new XMLHttpRequest();
		if (conn.overrideMimeType) {
			conn.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			conn = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				conn = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	return conn;
}

/**
 *	특정 URL의 XML을 받아 옵니다.
 *	@param url
 *	@return xml Object
 *	@주의 리턴값을 반드시 체크할 것 null 이면 오류임
 */
function getUrlToXml(url) {
	return getXmlFromUrl(url,"GET");
}

function uni2ascii(s) {
    var r = '';
    for(var i=0; i < s.length; i++) {
        if (s.charCodeAt(i) > 128) {
            r += '&#'+s.charCodeAt(i)+';';
        } else {
            r += s.substr(i,1);
        }
    }
    return r;
}

/**
 *	특정 URL의 XML을 받아 옵니다.
 *	@param url
 *	@param method
 *	@param params url 인수형태 예> name=111&kk=xxx
 *	@return xml Object
 *	@주의 리턴값을 반드시 체크할 것 null 이면 오류임
 */
function getXmlFromUrl(url,method,params,charset) {
	var conn = makeXMLHttpRequest();
	var result = null;
	if (typeof(method) == 'undefined' || method.toUpperCase() != "POST") method = "GET";
	if (typeof(charset) == 'undefined') charset = "UTF-8";

	try {
		conn.open( method , url, false );
		conn.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded; charset="+charset );
		if (typeof(params) == 'undefined' || params == "")
			conn.send(null);
		else {
			conn.send(params);
		}

		if (conn.readyState == 4) {
			switch(conn.status) {
				case 200 :
					result = conn.responseXML.documentElement;
					break;
				case 403 :
					window.status = "403 Forbidden";
					break;
				case 404 :
					window.status = "404 Not Found";
					break;
				default :
					window.status = "400 Fault Request";
			}
		}else{
			window.status = "Fault Header";
		}

	} catch (e) {
		window.status = "Nested catch caught " + e;
	} finally {
		return result;
	}
}

/**
 *	동적  url로 부터[POST] 결과를  리턴 받습니다. 결과 셋은 xml 형태여야 합니다.
 *	@param url
 *	@param params 넘길 인수 url형태
 *	@return 결과값
 *	@주의 : 요청하는 곳에서는 반드시 결과를 xml 형태 <main><result>결과값</result></main>로 넘겨야 합니다.
 *	@주의 리턴값을 반드시 체크할 것 null 이면 오류임
 */
function getResultFromUrl(url,params) {
	var xmlDoc = getXmlFromUrl(url, "POST", params);
	if (xmlDoc == null) return null;

	var node = xmlDoc.childNodes;
	for (var i=0; i < node.length ; i++ ) {
		if (node[i].nodeType == 1) {
			return node[i].childNodes[0].data;
		}
	}
	return null;
}


/**
 *	해당하는 URL에 요청을 하여,, 결과 값을 알려 줍니다.
 *	@param	String URL
 *	@return	Status
 */
function getStatusFromUrl(url) {
	var conn = makeXMLHttpRequest();
	var result = null;
	try {
		conn.open( "GET" , url, false );
		conn.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded; charset=UTF-8");
		conn.send(null);
		result = conn.status;
	} catch (e) {
		window.status = "Nested catch caught " + e;
	} finally {
		return result;
	}
}

/**
 *	공용/ 이메일 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidEmail(str){ //이메일 검사
	return (sysIsValidPattern(str.trim(),/^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/)) ? true : false;
}

/**
 *	공용/ 전화번호 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidPhone(str) {
	return (sysIsValidPattern(str.trim(),/^([0]{1}[0-9]{1,2})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/)) ? true : false;
}

/**
 *	공용/ 이동전화 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidMobile(str) {
	return (sysIsValidPattern(str.trim(),/^([0]{1}[1]{1}[167890]{1})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/)) ? true : false;
}

/**
 *	공용/ 알파벳 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidAlpha(str) {
	return (sysIsValidPattern(str.trim(),/^[a-zA-Z]+$/)) ? true : false;
}

/**
 *	공용/ 알파벳 소문자 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidAlphaSmall(str) {
	return (sysIsValidPattern(str.trim(),/^[a-z]+$/)) ? true : false;
}

/**
 *	공용/ 알파벳 대문자 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidAlphaLarge(str) {
	return (sysIsValidPattern(str.trim(),/^[A-Z]+$/)) ? true : false;
}

/**
 *	공용/ 알파벳과 숫자 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidAlphaNum(str) {
	return (sysIsValidPattern(str.trim(),/^[a-zA-Z0-9]+$/)) ? true : false;
}

/**
 *	작성자 : 정진우(nikaej@cloud9.co.kr)
 *	공용/ 알파벳 소문자와 숫자 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidAlphaSmallNum(str) {
	return (sysIsValidPattern(str.trim(),/^[a-z0-9]+$/)) ? true : false;
}

/**
 *	공용/ 한글 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidHangul(str) {
	return (sysIsValidPattern(str.trim(),/[가-힝]/)) ? true : false;
}

/**
 *	공용/ 숫자 형식에 맞는지 검사
 *	@param	String str
 *	@return	boolean
 */
function comIsValidNumeric(str) {
	return (sysIsValidPattern(str.trim(),/[0-9]/)) ? true : false;
}

/**
 *	시스템/ 패턴테스트 결과를 리턴
 *	@param	String str
 *	@param	String pattern
 *	@return	boolean
 */
function sysIsValidPattern(str,pattern) {
	return (pattern.test(str)) ? true : false;
}

/**
 *	공용/ 숫자형식이고, 제한자리 범위일 경우 참을 리턴
 *	@param	String str
 *	@param	int limit
 *	@return	boolean
 */
function comIsValidNumLimit(str,limit) {
	return (str.isNumeric() && str.length <= limit) ? true : false;
}


/**
 *	공용/ 에러를 발생시키고, 경고창을 뛰우며, 해당필드에 포커를 준다.
 *	@param el [폼의 엘리먼트]
 *	@param msg [에러의 메시지]
 *	@return false [항상 false를 리턴한다]
 */
function formError(el,msg){
	alert(msg);
	try {
		el.focus();
	} catch (e) {}
	return false;
}

function raiseError(el,msg){
	return formError(el,msg);
}

/**
 *	공용/ 자동포커스, 폼을 인수로 받을수 있다
 *	@param [form]
 */
function setAutoFocus(f) {
	var el = null;
	if (typeof(f) == 'undefined') {
		if (document.forms.length < 1) return;
		else f = document.forms[0];
	}
	for (var i = 0 ; i < f.elements.length ; i++ ) {
		el = f.elements[i];
		if (el.type == "text" || el.type == "textarea" || el.type == "password") {
			try{
				el.focus();
				break;
			}catch(e) {
				continue;
			}
		}
	}
}


/**
 *	공용/ 필드에 정의한 maxbyte 항목을 체크 한다.
 *	db에서 정의한 필드길이를 제한할때 사용함
 *
 *	@param	[form]
 *	@param	boolean
 */
function checkMaxByte(f) {
	alert(f);
	var el = null;
	var retVal = true;
	if (typeof(f) == 'undefined') {
		if (document.forms.length < 1) return;
		else f = document.forms[0];
	}
	for (var i = 0 ; i < f.elements.length ; i++ ) {
		el = f.elements[i];
		if (el.getAttribute("maxByte") != null) {
			if (el.value.bytes() > el.getAttribute("maxByte")) {
				msg = "\n입력된 데이터의 길이가 최대길이 값을 초과 하였습니다.     \n\n입력데이터를 확인해 주세요!"; // \n\n최대길이 : "+el.getAttribute("maxByte")+" bytes\n\n입력길이 : "+el.value.bytes() +" bytes\n\n";
				/*
				if (el.type != "password") {
					msg += "["+cutString(el.value,50)+"]\n";
				}
				*/
				alert(msg);
				retVal = false;
				try{
					el.focus();
				}catch(e) {}
				break;
			}
		}
	}
	return retVal;
}


function cutString(str,len,dem) {
	if (typeof(dem) == 'undefined')	dem = "...";
	if(str.bytes() > len){
		return str.cut(len) + dem;
	}else{
		return str;
	}
}

/**
 * 	반올림 함수 num 자리 까지 표현 이후에서 반올림
 *	@param	float|double|int val
 *	@param	int num
 *	@return float|int
 */
function round3(val,num) {
	var retval;
	var dm = 1;
	for (var i=0;i < Math.abs(num) ;i++ ) dm *= 10;
	if (num < 0) retval = (parseInt(parseFloat(val) / dm + 0.5) * dm);
	else retval = (parseInt(parseFloat(val) * dm + 0.5) / dm);
	return retval;
}

/**
 * 	화면의 가운데로 새창을 열어줍니다.
 *	@param	String url
 *	@param	String window_name
 *	@param	int width
 *	@param	int height
 *	@param	String scroll 'yes':'no'
 *	@return window
 */
function popWindow(url,name,width,height,scroll) {
	var x = (screen.width - width) / 2 - 4;
	var y = (screen.height - height) / 2 - 16;
	var win = window.open(url,name,"left="+x+",top="+y+",width="+width+",height="+height+",scrollbars="+scroll);
	if (win) {
		win.focus();
		return win;
	}
}

/**
 * 	iframe 의 높이를 재 조정한다
 *	@param	iframe
 */
function iframeAutoResize(iframe) {
	if (typeof(iframe) == 'undefined' || typeof(iframe) != 'Object') return;
	iframe.setExpression('height',iframe.contentWindow.document.body.scrollHeight);
}

/**
 * 	체크상자의 모든 값을 선택(true)하거나, 해제(false) 합니다.
 *	@param	form
 *	@param	fieldname
 *	@param	boolean
 */
function checkboxSelectAll(f,fieldName,bool){
	if(typeof(f.elements[fieldName]) == 'undefined') return false;
	if(typeof(f.elements[fieldName].length) == 'undefined'){
		if(bool)f.elements[fieldName].checked = true;
		else f.elements[fieldName].checked = false;
	}else{
		for(var i=0;i<f.elements[fieldName].length;i++){
			if(bool)f.elements[fieldName][i].checked = true;
			else f.elements[fieldName][i].checked = false;
		}
	}
}

/**
 * 	체크상자의 전체선택(true) 후 하위항목을 해제(false)할 경우 전체선택(checkbox)를 해제(false)함
 *	@param	form
 *	@param	fieldname  전체선택버튼(checkbox)
 */
function checkboxSelectAllCancel(f, fieldName){
	if(typeof(f.elements[fieldName]) == 'undefined') return false;
	f.elements[fieldName].checked = false;
}

/**
 * 	체크상자 혹은 라디오버튼 그룹의 선택여부(갯수)를 리턴합니다.
 *	@param	form
 *	@param	fieldname
 *	@return int
 */
function checkboxSelectedCount(f,fieldName){
	if(typeof(f.elements[fieldName]) == 'undefined') return 0;
	if(typeof(f.elements[fieldName].length) == 'undefined') {
		if(f.elements[fieldName].checked) return 1;
		else return 0;
	}else{
		var cnt = 0;
		for(var i=0;i<f.elements[fieldName].length;i++) {
			if(f.elements[fieldName][i].checked)
				cnt++;
		}
		return cnt;
	}
}

/**
 * 	체크상자 혹은 라디오 버튼의 선택되어진 모든 값을 컴마로 구분하여 문자열로 돌려줍니다.
 *	@param	form
 *	@param	fieldName
 *	@param	fieldGubun
 *	@return String
 */
function checkboxSelectedValue(f,fieldName,fieldGubun){
	if(typeof(f.elements[fieldName]) == 'undefined') return;
	if(typeof(fieldGubun) == 'undefined') fieldGubun = ",";
	if(typeof(f.elements[fieldName].length) == 'undefined') {
		if(f.elements[fieldName].checked) return f.elements[fieldName].value;
		else return;
	}else{
		var checkedCount = 0;
		var tmp = "";
		for(var i=0;i<f.elements[fieldName].length;i++) {
			if(f.elements[fieldName][i].checked) {
				if (checkedCount != 0) tmp += fieldGubun;
				tmp += f.elements[fieldName][i].value;
				checkedCount ++;
			}
		}
		return tmp;
	}
}

/**
 * 	셀렉트 박스의 모든 옵션을 제거한다
 *	@param	selectbox
 */
function selectRemoveAll(el) {
	if (typeof(el) == 'undefined' || el.tagName != "SELECT") return;
	for( i = el.length ; i >= 0 ; i-- ) el.options[i] = null;
}


/**
 *	공용/ 폼에 자동으로 값을 세팅 합니다.
 *
 *	@param 	form [폼]
 *	@param 	data [데이터는 자바스크립트의 배열로 키:값의 형태여야 합니다!]
 *	@see   	ebslang.com.uril/AutoFormScript.java 파일과 함께 사용합니다.
 *  @주의 :  	데이터에 들어가는 값중 textarea에 들어가고, 라인브레이크(엔터 값은) \n으로 초기화 해야 한다.
 */
function autoFormInput(form, data) {
	if (typeof(form) == 'undefined') return;
	var el,nm,i,j,x;
	for (i=0;i < form.elements.length;i++) {
		el = form.elements[i];
		nm = el.name;
		if (data[nm] != undefined) {
			switch (el.tagName) {
				case "SELECT" :
					if (data[nm]) {
						var tmp = data[nm].split(",");
						if (form.elements[nm].length > 1 && tmp.length > 1) {
							for (j=0; j<el.length; j++) {
								if (el == form.elements[nm][j] && typeof(tmp[j]) != 'undefined') {
									for (x=0;x<el.options.length;x++) {
										if (el.options[x].value == tmp[j]) {
											el.selectedIndex = x; break;
										}
									}
								}
							}
						}else{
							for (j=0;j<el.options.length;j++) {
								if (el.options[j].value == data[nm]) {
									el.selectedIndex = j; break;
								}
							}
						}
					}
					break;
				default :
					switch (el.type) {
						case "checkbox" :
							var xtmp = data[nm].split(",");
							for (x=0;x<xtmp.length;x++) {
								if (el.value == xtmp[x].trim()) el.checked = true;
							}
							break;
						case "radio" :
							if (el.value == data[nm]) el.checked = true;
							break;
						case "file" :
							break;
						default :
							el.value = data[nm];
							break;
					}
					break;
			}
		}
	}
}


/**
 *	SELECT TYPE 의 키값을 구분자로 넘겨 줍니다.
 *	@param	el	SELECT Type element
 *	@param	separator	String
 */
function selectGetStringKeys (el,separator) {
	if (typeof(el) == 'undefined' || el.tagName != "SELECT") {
		alert("\n[ERROR] selectGetStringKeys(el[,separator])\n\nRequire el! Or el wasn't SELECT Type!");
		return;
	}
	if (typeof(separator) == 'undefined') separator = ",";
	var retVal = "";
	for (var i=0; i < el.length ; i++) {
		if (retVal != "") retVal += separator;
		retVal += el.options[i].value;
	}
	return retVal;
}


/**
 *	SELECT TYPE의 옵션의 위치를 이동시킵니다.
 *	@param	el	SELECT Type element
 *	@param	flag	String [top,bottom,up,down]
 */
function selectMoveItem(el,flag){
	if (typeof(el) == 'undefined' || el.tagName != "SELECT") {
		alert("\n[ERROR] selectMoveItem(el,flag)\n\nRequire el! Or el wasn't SELECT Type!");
		return;
	}
	if (typeof(flag) == 'undefined' || !(flag.toLowerCase() == "top" || flag.toLowerCase() == "bottom" || flag.toLowerCase() == "up" || flag.toLowerCase() == "down")) {
		alert("\n[ERROR] selectMoveItem(el,flag)\n\nRequire flag! Or flag not in[top,bottom,up,down]!");
		return;
	}
	if(el.selectedIndex == -1){
		alert("이동을 원하는 항목을 선택해주세요!");
		return;
	}
	if (flag == "down") {
		if(el.selectedIndex == el.length-1) return;
		selectMoveStep(el,el.selectedIndex+1);
	}else if(flag == "up") {
		if(el.selectedIndex == 0) return;
		selectMoveStep(el,el.selectedIndex-1);
	}else if(flag == "top") {
		selectMoveTop(el);
	}else if(flag == "bottom") {
		selectMoveBottom(el);
	}
}

/**
 *	SELECT TYPE의 옵션의 위치를 최상위로 이동시킵니다.
 *	@param	el	SELECT Type element
 *	@see	selectMoveItem()
 */
function selectMoveTop(el){
	if (typeof(el) == 'undefined' || el.tagName != "SELECT") {
		alert("\n[ERROR] selectMoveTop(el)\n\nRequire el! Or el wasn't SELECT Type!");
		return;
	}
	var option = new Option(el.options[el.selectedIndex].text,el.options[el.selectedIndex].value,false,true);
	el.options[el.selectedIndex] = null;
	for(i = el.length-1;i>=0;i--){
		var tmp = new Option(el.options[i].text,el.options[i].value);
		el.options[i+1] = tmp;
	}
	el.options[0] = option;
}

/**
 *	SELECT TYPE의 옵션의 위치를 최하위로 이동시킵니다.
 *	@param	el	SELECT Type element
 *	@see	selectMoveItem()
 */
function selectMoveBottom(el){
	if (typeof(el) == 'undefined' || el.tagName != "SELECT") {
		alert("\n[ERROR] selectMoveBottom(el)\n\nRequire el! Or el wasn't SELECT Type!");
		return;
	}
	var option = new Option(el.options[el.selectedIndex].text,el.options[el.selectedIndex].value,false,true);
	el.options[el.selectedIndex] = null;
	el.options[el.length] = option;
}

/**
 *	SELECT TYPE의 옵션의 위치를 지정한 위치로 이동시킵니다.
 *	@param	el	SELECT Type element
 *	@param	to	int index
 *	@see	selectMoveItem()
 */
function selectMoveStep(el,to){
	if (typeof(el) == 'undefined' || el.tagName != "SELECT") {
		alert("\n[ERROR] selectMoveStep(el)\n\nRequire el! Or el wasn't SELECT Type!");
		return;
	}
	if (typeof(to) == 'undefined' || isNaN(to)) {
		alert("\n[ERROR] selectMoveStep(el,to)\n\nRequire to! to not numeric");
		return;
	}
	if (el.length -1 < to ) return;
	var i = el.selectedIndex;
	var option = new Option(el.options[i].text,el.options[i].value,false,true);
	var option2 = new Option(el.options[to].text,el.options[to].value);
	el.options[to] = option;
	el.options[i] = option2;
}

/**
 *	SELECT에 옵션을 추가하는데 상단에 추가를 합니다.
 *	@param	el	SELECT Type element
 *	@param	val	value
 *	@param	text
 *	@param	sel	boolean : 선택여부
 */
function selectAddTop(el,val,text,sel) {
	if (typeof(el) == 'undefined' || el.tagName != "SELECT") {
		alert("\n[ERROR] selectAddTop(el)\n\nRequire el! Or el wasn't SELECT Type!");
		return;
	}
	if (typeof(val) == 'undefined') val = "";
	if (typeof(text) == 'undefined') text = "";
	if (typeof(sel) == 'undefined' || !(sel == true || sel == false)) sel = false;
	el.options[el.length] = new Option(text,val);
	el.selectedIndex = el.options.length - 1;
	selectMoveTop(el);
	if (sel == false) el.selectedIndex = null;
}


/**
 *	Hashtable Class
 *	자바스크립트 해시테이블
 */
function Hashtable() {
	this.length = 0;
	this.keys = new Array();
	this.values = new Array();

	this.add = function (key,value) {
		if (typeof(key) == 'undefined' && typeof(value) == 'undefined') return this.error("missing key,value reference 'HashTalbe.add(key,value)'");
		else if (typeof(value) == 'undefined') {
			value = key;
			key = this.length;
		}
		var index = this.isKey(key);
		if (index != -1) {
			this.values[index] = value;
		}else{
			this.keys[this.length] = key;
			this.values[this.length] = value;
			this.length += 1;
		}
	}
	this.remove = function (key) {
		if (typeof(key) == 'undefined') return this.error("missing key reference 'HashTalbe.remove(key)'");
		var index = this.isKey(key);
		if (index == -1) return;
		else{
			this.keys.remove(index);
			this.values.remove(index);
			this.length--;
		}
	}
	this.removeAll = function () {
		this.length = 0;
		this.keys.length = 0;
		this.values.length = 0;
	}
	this.isEmpty = function () {
		if (this.length == 0) return true;
		else return false;
	}

	/**
	 *	요청한 키값이 존재하는지 여부와 키의 인덱스를 리턴 합니다.
	 *	@param	key
	 *	@return index
	 *	@주의 : 키값이 존재하지 않으면, -1 을 리턴 합니다.
	 */
	this.isKey = function (key) {
		var retVal = -1;
		if (typeof(key) == 'undefined') return this.error("missing key reference 'HashTalbe.isKey(key)'");
		if (this.length == 0) return retVal;
		for (var i=0; i < this.length ;i++ ) {
			if (this.keys[i] == key) {
				retVal = i;
				break;
			}
		}
		return retVal;
	}

	/**
	 *	요청한 키에대한 값을 리턴 합니다.
	 *	@param	key
	 *	@return value
	 *	@주의 : 존재하지 않는 키를 요청하면, undefined를 리턴 합니다.
	 */
	this.get = function (key) {
		if (typeof(key) == 'undefined') return this.error("missing key reference 'HashTalbe.get(key)'");
		if (this.length == 0) return;
		var index = this.isKey(key);
		if (index == -1) return;
		else return this.values[index];
	}
	this.size = function () {
		return this.length;
	}
	this.getKeys = function () {
		return this.keys;
	}
	this.getValues = function () {
		return this.values;
	}
	this.toString = function () {
		var retVal = "";
		for(var i=0;i<this.length;i++) {
			if (i != 0) retVal +=" ,";
			retVal += this.keys[i] + "=" + this.values[i];
		}
		return "Neooz Javascript Hashtable V2006-06-09 : {"+retVal+"}";
	}
	this.copyFrom = function (org) {
		if (typeof(org) == 'undefined' || org.constructor != "Hashtable")
			return this.error("org is not Hashtable!! reference 'HashTalbe.copyFrom(org)'");

		for(var i=0;i<org.length;i++) {
			this.add(org.keys[i],org.values[i]);
		}
	}
	this.constructor = "Hashtable";
	this.fromSelect = function (el) {
		if (typeof(el) == 'undefined' || typeof(el.tagName) == 'undefined' || el.tagName != "SELECT")
			return this.error("el is not SELECT field!! reference 'HashTalbe.fromSelect(el)'");

		for (var i=0; i<el.options.length ;i++) {
			if (el.options[i].value != "") {
				this.add(el.options[i].value,el.options[i].text);
			}
		}
	}
	this.toSelect = function (el, val) {
		if (typeof(el) == 'undefined' || typeof(el.tagName) == 'undefined' || el.tagName != "SELECT")
			return this.error("el is not SELECT field!! reference 'HashTalbe.toSelect(el)'");

		while (el.length = 0) el.options[0] = null;
		for (var i=0; i< this.length ;i++) {
			var option = new Option(this.values[i],this.keys[i]);
			el.options[i] = option;
			if (typeof(val) != 'undefined' && val != null) {
				if (this.keys[i] == (val+"")) el.selectedIndex = i;
			}
		}
	}
	this.error = function (msg) {
		if (typeof(msg) == 'undefined') return;
		alert("\nERROR : "+msg+"\n");
		return;
	}
}


/******************************************************************************
 * prototype 모음
 *****************************************************************************/

//-----------------------------------------------------------------------------
// 문자 앞 뒤 공백을 제거 한다.
//-----------------------------------------------------------------------------
String.prototype.trim = function() { 
    return this.replace(/(^\s*)|(\s*$)/g, ""); 
}

//-----------------------------------------------------------------------------
// 내용이 있는지 없는지 확인하다.
//
// @return : true(내용 있음) | false(내용 없음)
//-----------------------------------------------------------------------------
String.prototype.notNull = function() {
	return (this == null || this.trim() == "") ? false : true; 
}

//-----------------------------------------------------------------------------
// 파일 확장자 반환
//
// @return : String
//-----------------------------------------------------------------------------
String.prototype.getExt = function() {
	var ext = this.substring(this.lastIndexOf(".") + 1, this.length);
	return ext;
}

//-----------------------------------------------------------------------------
// String에 따라서 받침이 있으면 은|이|을 을
//                 받침이 없으면 는|가|를 등을 리턴 한다.
// str.josa("을/를") : 구분자는 항상 "/"로
//
//
// @return : 은/는, 이/가 ...
//-----------------------------------------------------------------------------
String.prototype.josa = function(nm) {
	var nm1 = nm.trim().substring(0, nm.trim().indexOf("/"));
	var nm2 = nm.trim().substring(nm.trim().indexOf("/") + 1, nm.trim().length);
	var a = this.substring(this.length - 1, this.length).charCodeAt();
	a = a - 44032;
	var jongsung = a % 28;
	return (jongsung) ? nm1 : nm2;
}

//-----------------------------------------------------------------------------
// 숫자만 체크
//
// @return : true(맞는 형식) | false(잘못된 형식)
//-----------------------------------------------------------------------------
String.prototype.num = function() {
	return (this.trim().match(/^[0-9]+$/)) ? true : false;
}

//-----------------------------------------------------------------------------
// 영어만 체크
//
// @return : true(맞는 형식) | false(잘못된 형식)
//-----------------------------------------------------------------------------
String.prototype.eng = function() {
	return (this.trim().match(/^[a-zA-Z]+$/)) ? true : false;
}

//-----------------------------------------------------------------------------
// 영어와 숫자만 체크
//
// @return : true(맞는 형식) | false(잘못된 형식)
//-----------------------------------------------------------------------------
String.prototype.engnum = function() {
	return (this.trim().match(/^[0-9a-zA-Z]+$/)) ? true : false;
}

//-----------------------------------------------------------------------------
// 아이디 체크 영어와 숫자만 체크 첫글자는 영어로 시작
//
// @return : true(맞는 형식) | false(잘못된 형식)
//-----------------------------------------------------------------------------
String.prototype.userid = function() {
	return (this.trim().match(/[a-zA-z]{1}[0-9a-zA-Z]+$/)) ? true : false;
}

//-----------------------------------------------------------------------------
// String length 반환
//
// @return : int
//-----------------------------------------------------------------------------
String.prototype.getLength = function() {
	return this.length;
}

//-----------------------------------------------------------------------------
// String length 반환 한글 2글자 영어 1글자
//
// @return : int
//-----------------------------------------------------------------------------
String.prototype.getByteLength = function() {
	var tmplen = 0;
	for (var i = 0; i < this.length; i++) {
		if (this.charCodeAt(i) > 127)
			tmplen += 2;
		else
			tmplen++;
	}
	return tmplen;
}

/******************************************************************************
 * Form에 관련된 메서드
 * 
 * 1. text, textarea
 *    required : 값이 없으면 경고
 *    num : 값에 숫자만 가능
 *    eng : 값에 영어만 가능
 *    han : 값에 한글만 가능
 *    numeng : 값에 숫자와 영어만 가능
 *    min=value : 최소 value자 이상
 *    max=value : 최대 value자 이하
 *    len=value : 정확하게 value자만 가능
 *    len=start~end : start자에서 end자까지 가능
 *    userid : 영어 숫자만 가능하고 첫문자는 영어로
 *    phone=value : value가 ""면 이 필드만 아니면 value가 같은 phone에 관련된 모든 필드 조사
 *    mobile=value : value가 ""면 이 필드만 아니면 value가 같은 mobile에 관련된 모든 필드 조사
 *    email=value : value가 ""면 이 필드만 아니면 value가 같은 email에 관련된 모든 필드 조사
 *    jumin=value : value가 ""면 이 필드만 아니면 value가 같은 jumin에 관련된 모든 필드 조사
 *    biznum=value : value가 ""면 이 필드만 아니면 value가 같은 biznum에 관련된 모든 필드 조사
 * 2. select
 *    required : 값이 없으면 경고
 * 3. radio
 *    required : 아무것도 선택되지 않으면 경고
 * 4. checkbox
 *    required : 아무것도 선택되지 않으면 경고
 *    min=value : 최소 value개 이상 가능
 *    max=value : 최대 value개 이하 가능
 *    len=value : 정확하게 value개 가능
 *    len=start~end : start개에서 end개 까지 가능
 * 5. file
 *    required :  아무것도 선택되지 않으면 경고
 *    allow=value : 확장자가 value 인 파일만 업로드 가능 (allow="gif jpg jpeg png")
 *    deny=value : 확장자가 value 인 파일은 업로드 불가능
 *****************************************************************************/
//-----------------------------------------------------------------------------
// FormUtil Class 생성
//-----------------------------------------------------------------------------
FormUtil = function(obj) {
	this.obj = obj;
}

//-----------------------------------------------------------------------------
// 폼 유효성 체크
//
// @return : true | false
//-----------------------------------------------------------------------------
FormUtil.prototype.success = function() {
	for(var i = 0; i < this.obj.elements.length; i++) {
		var f = this.obj[i];

		var fname = (f.getAttribute("FNAME") == null) ? f.name.toUpperCase() : fname = f.getAttribute("FNAME");

		// checkbox
		if(f.type == "checkbox") {
			if(!this.checkbox(f, fname)) {
				return false;
			}
		}
		// radio
		else if(f.type == "radio") {
			if(!this.radio(f, fname)) {
				return false;
			}
		}
		else { // text, textarea, password, select
			// <input required>
			if(f.getAttribute("REQUIRED") != null) {
				var ftype = f.type;
				var msg = " 입력 하세요";
				if(ftype.indexOf("select") >= 0 || ftype == "file") {
					msg = " 선택하세요";
				}

				if(!f.value.notNull()) {
					if (f.getAttribute("CHECKNO")!=null){
						alert(fname);
					}else{
						alert(fname + fname.josa("을/를") + msg);
						if(f.type!="hidden"){
							f.focus();
						}
					}
					return false;
				}
			}		

			// <input num>
			if(f.getAttribute("NUM") != null && f.value != "") {
				if(!f.value.num()) {
					alert(fname + fname.josa("은/는") + " 숫자로만 구성되어야 합니다.");
					f.value = "";
					f.focus();
					return false;
				}	
			}
			// <input eng>
			if(f.getAttribute("ENG") != null && f.value != "") {
				if(!f.value.eng()) {
					alert(fname + fname.josa("은/는") + " 영어로만 구성되어야 합니다.");
					f.value = "";
					f.focus();
					return false;
				}	
			}
			// <input numeng>
			if(f.getAttribute("NUMENG") != null && f.value != "") {
				if(!f.value.numeng()) {
					alert(fname + fname.josa("은/는") + " 숫자와 영어로만 구성되어야 합니다.");
					f.value = "";
					f.focus();
					return false;
				}	
			}
			// <input han>
			if(f.getAttribute("HAN") != null && f.value != "") {
				if(!f.value.kor()) {
					alert(fname + fname.josa("은/는") + " 한글로만 구성되어야 합니다.");
					f.value = "";
					f.focus();
					return false;
				}	
			}
			// <input userid>
			if(f.getAttribute("USERID") != null && f.value != "") {
				if(!f.value.userid()) {
					alert(fname + fname.josa("은/는") + " 숫자와 영어로만 구성되어야 하며\n\n첫문자는 반드시 영어로 시작해야 합니다.");
					f.value = "";
					f.focus();
					return false;
				}	
			}
			// <input type="file" deny="value">
			if(f.getAttribute("DENY") != null && f.type == "file" && f.value != "") {
				var ext = f.value.getExt().toLowerCase();
				var ext2 = f.getAttribute("DENY").toLowerCase();
				if(ext2.indexOf(ext) >= 0) {
					alert("확장자가 " + f.getAttribute("DENY").toUpperCase() + " 인 파일은 업로드 하실 수 없습니다.");
					return false;
				}
			}
			// <input type="file" deny="value">
			if(f.getAttribute("ALLOW") != null && f.type == "file" && f.value != "") {
				var ext = f.value.getExt().toLowerCase();
				var ext2 = f.getAttribute("ALLOW").toLowerCase();
				if(ext2.indexOf(ext) < 0) {
					alert("확장자가 " + f.getAttribute("ALLOW").toUpperCase() + " 인 파일만 업로드 가능 합니다.");
					return false;
				}
			}
			// <input max="10">
//			if(f.getAttribute("MAX") != null) {
//				return fc_chk_byte(f,f.getAttribute("MAX"));
//			}
			// <input prefix="5"> 구분자는 ,로 제한갯수확인
//			if(f.getAttribute("PREFIX") != null) {
//				alert("d");
//				return fc_chk_prefix(f,f.getAttribute("PREFIX"));
//			}
			// <input min="10">
			if(f.getAttribute("MIN") != null) {
				var tmpLen = f.value.getLength();
				if(tmpLen < parseInt(f.getAttribute("MIN"))) {
					alert(fname + fname.josa("은/는") + " " + f.getAttribute("MIN") + "자 이상으로 입력 하세요.");
					f.focus();
					return false;
				}
			}
			// <input len="10">
			if(f.getAttribute("LEN") != null) {
				var tmpLen = f.value.getLength();
				var val = f.getAttribute("LEN");
				if(val.indexOf(val.noNum()) > 0) {
					var num1 = val.substring(0, val.indexOf(val.noNum()));
					var num2 = val.substring(val.lastIndexOf(val.noNum()) + 1, val.length);
					if(tmpLen < parseInt(num1) || tmpLen > parseInt(num2)) {
						alert(fname + fname.josa("은/는") + " " + num1 + "자 이상 " + num2 + "자 이하로 입력하세요");
						f.focus();
						return false;
					}
				}
				else {
					if(tmpLen != parseInt(val)) {
						alert(fname + fname.josa("은/는") + " " + val + "자리 입니다.");
						f.focus();
						return false;
					}
				}
			}
		}
	}

	return true;
}

/**************************************
	입력글자 제한
**************************************/

/*
' ------------------------------------------------------------------
' Function : fc_chk_byte(aro_name)
' Description : 입력한 글자수를 체크
' Argument : Object Name(글자수를 제한할 컨트롤)
' Return : 
' ------------------------------------------------------------------
*/
function fc_chk_byte(f,max)
{
	var fname = (f.getAttribute("FNAME") == null) ? f.name.toUpperCase() : fname = f.getAttribute("FNAME");
	var ls_str = f.value;
	var li_str_len = ls_str.length;
	var li_max = max;
	var i = 0;
	var li_byte = 0;
	var li_len = 0;
	var ls_one_char = "";
	var ls_str2 = "";

	for(i=0; i< li_str_len; i++)
	{
		ls_one_char = ls_str.charAt(i);
		if (escape(ls_one_char).length > 4)
			li_byte += 2;
		else
			li_byte++;
		if(li_byte <= li_max)
			li_len = i + 1;
	}

	// 전체길이를 초과하면
	if(li_byte > li_max)
	{
		alert(fname + fname.josa("은/는") + "국문 " + li_max/2 + "자, 영문 "  + li_max +  "자 이상을 입력할수 없습니다.");
		return false;
	}
	return true;
}

/*
' ------------------------------------------------------------------
' Function : fc_chk_byte(aro_name)
' Description : 입력한 글자수를 체크
' Argument : Object Name(글자수를 제한할 컨트롤)
' Return : 
' ------------------------------------------------------------------
*/
function fc_chk_prefix(f,max)
{
	var fname = (f.getAttribute("FNAME") == null) ? f.name.toUpperCase() : fname = f.getAttribute("FNAME");

	if(f.value.indexOf(",") > 0)
	{
		arrPrefix = f.value.split(",");
	}
	else
	{
		return true;
	}
	
	if (arrPrefix.length>5)
	{
		alert(fname + fname.josa("은/는") + max + "개 이상을 입력할수 없습니다.");
		return false;		
	}
	return true;
}

//-----------------------------------------------------------------------------
// Checkbox 일때 유효성 체크
//
// @return : true | false
//-----------------------------------------------------------------------------
FormUtil.prototype.checkbox = function(f, fname) {
	var chkObj = eval("this.obj." + f.name);
	// 체크박스를 선택하여야 할 때
	var c = 0;
	var len = chkObj.length;
	if(len) {
		for(var j = 0; j < len; j++) {
			if(chkObj[j].checked) c++;
		}
	}
	else {
		if(chkObj.checked) c = 1;
	}
	
	if(f.getAttribute("REQUIRED") != null) {
		if(c == 0) {
			alert(fname + fname.josa("을/를") + " 선택하여 주세요");
			return false;
		}
	}
	if(f.getAttribute("MAX") != null) {
		var val = f.getAttribute("MAX");
		if(c > parseInt(val)) {
			alert(fname + fname.josa("은/는") + " 최대 " + val + "개 이하로 선택 하셔야 합니다.");
			return false;
		}
	}
	if(f.getAttribute("MIN") != null) {
		var val = f.getAttribute("MIN");
		if(c < parseInt(val)) {
			alert(fname + fname.josa("은/는") + " 최소 " + val + "개 이상 선택 하셔야 합니다.");
			return false;
		}
	}
	if(f.getAttribute("LEN") != null) {
		var val = f.getAttribute("LEN");
		if(val.indexOf(val.noNum()) > 0) {
			var num1 = val.substring(0, val.indexOf(val.noNum()));
			var num2 = val.substring(val.lastIndexOf(val.noNum()) + 1, val.length);
			if(c < parseInt(num1) || c > parseInt(num2)) {
				alert(fname + fname.josa("은/는") + " " + num1 + "개 이상 " + num2 + "개 이하로 선택 하셔야 합니다.");
				return false;
			}
		}
		else {
			if(c != parseInt(val)) {
				alert(fname + fname.josa("은/는") + " " + val + "개 선택 하셔야 합니다.");
				f.focus();
				return false;
			}
		}
	}	
	return true;
}

//-----------------------------------------------------------------------------
// Radio 유효성 체크
//
// @return : true | false
//-----------------------------------------------------------------------------
FormUtil.prototype.radio = function(f, fname) {
	var chkObj = eval("this.obj." + f.name);
	if(f.getAttribute("REQUIRED") != null) {
		var c = 0;
		var len = chkObj.length;
		if(len) {
			for(var j = 0; j < len; j++) {
				if(chkObj[j].checked) c++;
			}
		}
		else {
			if(chkObj.checked) c = 1;
		}

		if(c == 0) {
			alert(fname + fname.josa("을/를") + " 선택하여 주세요");
			return false;
		}
	}
	return true;
}

//-----------------------------------------------------------------------------
// 체크되어 있는 갯수를 리턴해 준다.
//
// @return : int
//-----------------------------------------------------------------------------
FormUtil.prototype.checked = function(btn) {
	var len = btn.length;
	var c = 0;
	if(len) {
		for(var j = 0; j < len; j++) {
			if(btn[j].checked) c++;
		}
	}
	else {
		if(btn.checked) c = 1;
	}
	return c;
}


function setSizeFrame(frameHeight) {
	$("#bbsList").attr("height",frameHeight);
}


function getOnlyListXslt(xmlUrl, xslUrl)
{	
	xml=loadXMLDoc(xmlUrl);
	xsl=loadXMLDoc(xslUrl);
	if (typeof XSLTProcessor != "undefined") {
		var xsl_proc = new XSLTProcessor ();
		xsl_proc.importStylesheet (xsl);
		$("#ajaxList").html("");
		var node = xsl_proc.transformToFragment (xml, document);
		document.getElementById("ajaxList").appendChild (node);
	}
	else if (typeof xml.transformNode != "undefined") {
		data=xml.transformNode(xsl);
		$("#onlyList").html(data);
	}
	else {
		document.getElementById("onlyList").innerHTML = "XSLT not supported in browser.";
	}
}


function loadXMLDoc(fname)
{
	var xmlDoc;
	if (window.ActiveXObject)
	{
	  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	}
	else if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc=document.implementation.createDocument("","",null);
	}
	else
	{
		alert('Your browser cannot handle this script');
	}
	xmlDoc.async=false;
	xmlDoc.load(fname);
	return(xmlDoc);
}


function toggleMenu(currMenu) {	
	//setCookie("smenu", currMenu, 1);
	var isclicked = false;
	if (document.all) {		
		if(typeof(document.all.menu.length) == "undefined")
		{
			if (document.all.menu.style.display=="none")
			{
				document.all.menu.style.display = "block"
			}
			else
			{
				document.all.menu.style.display = "none"
			}
		}
		for (i = 0; i < document.all.menu.length; i++ ){
			if (i == currMenu){
				document.all.menu[i].style.display = "block"
			}else {
				document.all.menu[i].style.display = "none"
			}
		}
	}
	else {
		return false
	}
}
function check_ResidentNO(str_f_num,str_l_num){  
	var i3=0
	for (var i=0;i<str_f_num.length;i++){
	 var ch1 = str_f_num.substring(i,i+1);
		if (ch1<'0' || ch1>'9') i3=i3+1;
	}
	if ((str_f_num == '') || ( i3 != 0 )) return false;
	var i4=0;
	for (var i=0;i<str_l_num.length;i++){
		var ch1 = str_l_num.substring(i,i+1);
		if (ch1<'0' || ch1>'9') i4=i4+1; 
	}
	if ((str_l_num == '') || ( i4 != 0 )) return false;
	if(str_f_num.substring(0,1) < 4) return false;
	if(str_l_num.substring(0,1) > 2) return false;
	if((str_f_num.length > 7) || (str_l_num.length > 8)) return false;
	if ((str_f_num == '72') || ( str_l_num == '18'))  return false;
			
	var f1=str_f_num.substring(0,1)
	var f2=str_f_num.substring(1,2)
	var f3=str_f_num.substring(2,3)
	var f4=str_f_num.substring(3,4)
	var f5=str_f_num.substring(4,5)
	var f6=str_f_num.substring(5,6)
	var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7
	var l1=str_l_num.substring(0,1)
	var l2=str_l_num.substring(1,2)
	var l3=str_l_num.substring(2,3)
	var l4=str_l_num.substring(3,4)
	var l5=str_l_num.substring(4,5)
	var l6=str_l_num.substring(5,6)
	var l7=str_l_num.substring(6,7)
	hap=hap+l1*8+l2*9+l3*2+l4*3+l5*4+l6*5
	hap=hap%11
	hap=11-hap
	hap=hap%10
	if (hap != l7) return false;
	return true; 
   }


function classobj(method) {
	var obj = document.getElementById(method);
	obj.className = "txt_orange_b";
}




function login(){
	var userid = document.logInFrm.userid;
	var userpwd = document.logInFrm.userpwd;
	

	userid.onclick = function(){
		userid.style.background='';
	}
	userid.onblur = function(){
		if(userid.value == "") {
			userid.style.background="url(/images/member/loginbox_id.gif) no-repeat 4px 3px #FFF";
		}
	}
	userid.onkeyup  = function(){
		userid.style.background='';
	} 
	userpwd.onkeyup  = function(){
		userpwd.style.background='';
	} 
	userpwd.onclick = function(){
		userpwd.style.background='';
	}
	userpwd.onblur = function(){
		if(userpwd.value == "") {
			userpwd.style.background="url(/images/member/loginbox_pw.gif) no-repeat 4px 3px #FFF";
		}
	}
}
function breakout(){
	var userid = document.frm.userid;
	var userpwd = document.frm.userpwd;
	

	userid.onclick = function(){
		userid.style.background='';
	}
	userid.onblur = function(){
		if(userid.value == "") {
			userid.style.background="url(/images/member/loginbox_id.gif) no-repeat 4px 3px #FFF";
		}
	}
	userid.onkeyup  = function(){
		userid.style.background='';
	} 
	userpwd.onkeyup  = function(){
		userpwd.style.background='';
	} 
	userpwd.onclick = function(){
		userpwd.style.background='';
	}
	userpwd.onblur = function(){
		if(userpwd.value == "") {
			userpwd.style.background="url(/images/member/loginbox_pw.gif) no-repeat 4px 3px #FFF";
		}
	}
}

function agreeChk(){
	if (document.agreeFrm.agree[1].checked){
		alert("이용약관 및 개인정보보호정책에 동의하셔야 합니다.");
		return false;
	} 
		document.agreeFrm.submit();
}
function validateform(Frm){
	Frm.content.value = SubmitHTML();
	validate_form(Frm);
}

function communityDel(idx,frm){
	if(confirm("삭제하시겠습니까?")){
		location.href=frm+"_act.asp?idx="+idx+"&proc_code=remove";
	}
}

function comIsNumeric(obj){
	if (!comIsValidNumeric(obj.value) && obj.value != "" ) {
		alert("숫자 형식이어야 합니다");
		obj.value="";
		obj.focus();
		return false;
	}
}
function comIsHangul(obj){
	if (!comIsValidHangul(obj.value) && obj.value != "" ) {
		alert("한글 형식이어야 합니다");
		obj.value="";
		obj.focus();
		return false;
	}
}

function nameinput(obj){
	if(obj.value != ""){
		document.getElementById("rent-signature").value = obj.value;
	}
}

function checkreg(reg1,reg2){
	if(!check_ResidentNO(reg1.value,reg2.value)){
		alert("잘못된 주민번호 입니다.");
		reg1.value="";
		reg2.value="";
		reg1.focus();
		return false;
	}
}
var price=0;
function appchk(obj,m,time,day,num){
	if(obj.name == "app1" && obj.checked){
		
			price = price+m*time*day;
		

		document.getElementById("rent-etc").disabled = true;
	} else if (obj.name == "app2" && obj.checked) {
		price = price+m*time*day;
		for (i=1;i<10 ;i++ ){
			document.getElementById("rent-Btheaters"+i).disabled = true;
		}
		document.getElementById("rent-etc").disabled = true;
	} else if (obj.name == "app3" && obj.checked) {
		price = price+m*day
		for (i=1;i<10 ;i++ ){
			document.getElementById("rent-Btheaters"+i).disabled = true;
		}
		
	} else if (!obj.checked) {
		
			document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)-m*time*day;
			price = 0;
		
		
		j = 0;
		if(obj.name == "app1"){
			for (i=1;i<10 ;i++ ){
				if(document.getElementById("rent-Btheaters"+i).checked){
					j ++;		
				}
			}
			if(j == 0){
				for (i=1;i<10 ;i++ ){
						document.getElementById("rent-Btheaters"+i).checked = false;
						
					}
				
				document.getElementById("rent-etc").checked = false;
				
				price = 0;
			}
			
		}
		if(obj.name == "app2"){
			for (i=1;i<5 ;i++ ){
				if(document.getElementById("rent-sunflower"+i).checked){
					j ++;		
				}
			}
			if(j == 0){
				for (i=1;i<10 ;i++ ){
						document.getElementById("rent-Btheaters"+i).checked = false;
						
					}
				for (i=1;i<5 ;i++ ){
					document.getElementById("rent-sunflower"+i).checked = false;
					
				}
				document.getElementById("rent-etc").checked = false;
				
				price = 0;
			}
		}
		if(obj.name == "app3"){
				for (i=1;i<10 ;i++ ){
						document.getElementById("rent-Btheaters"+i).checked = false;
						
					}
				
				document.getElementById("rent-etc").checked = false;
			
				price = 0;
			}
	}

	if (obj.name == "app" && obj.checked) {
		if(price == 0){
			price=62500*day;
		}
		price += m*time;
	}
	document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)+parseInt(price);
	price = 0;
}
function appchkadmin(obj,m,time,day,num){
	if(obj.name == "app1" && obj.checked){
		
			price = price+m*time*day;
		

		//document.getElementById("rent-etc").disabled = true;
	} else if (obj.name == "app2" && obj.checked) {
		price = price+m*time*day;
	//	for (i=1;i<10 ;i++ ){
	//		document.getElementById("rent-Btheaters"+i).disabled = true;
	//	}
		//document.getElementById("rent-etc").disabled = true;
	} else if (obj.name == "app3" && obj.checked) {
		price = price+m*day
	//	for (i=1;i<10 ;i++ ){
		//	document.getElementById("rent-Btheaters"+i).disabled = true;
		//}
		
	} else if (!obj.checked) {
		
			document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)-m*time*day;
			price = 0;
		
		
		j = 0;
		if(obj.name == "app1"){
			for (i=1;i<10 ;i++ ){
				if(document.getElementById("rent-Btheaters"+i).checked){
					j ++;		
				}
			}
			if(j == 0){
				for (i=1;i<10 ;i++ ){
						document.getElementById("rent-Btheaters"+i).checked = false;
						
					}
				
			//	document.getElementById("rent-etc").checked = false;
				
				price = 0;
			}
			
		}
		if(obj.name == "app2"){
			for (i=1;i<5 ;i++ ){
				if(document.getElementById("rent-sunflower"+i).checked){
					j ++;		
				}
			}
			if(j == 0){
				//for (i=1;i<10 ;i++ ){
				//		document.getElementById("rent-Btheaters"+i).checked = false;
						
				//	}
				for (i=1;i<5 ;i++ ){
					document.getElementById("rent-sunflower"+i).checked = false;
					
				}
				//document.getElementById("rent-etc").checked = false;
				
				price = 0;
			}
		}
		if(obj.name == "app3"){
				//for (i=1;i<10 ;i++ ){
				//		document.getElementById("rent-Btheaters"+i).checked = false;
						
				//	}
				
				document.getElementById("rent-etc").checked = false;
			
				price = 0;
			}
	}

	if (obj.name == "app" && obj.checked) {
		if(price == 0){
			price=62500*day;
		}
		price += m*time;
	}
	document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)+parseInt(price);
	price = 0;
}
function validatechk(obj){
	if(!obj.userid.value){
		alert("아이디를 입력해주세요");
		return false;
	}
	if(!obj.userpwd.value){
		alert("비밀번호를 입력해주세요");
		return false;
	}
	obj.submit();
}

function idchkajax(userid){
		if(userid == ""){
			alert("아이디를 입력해주세요");
			return false;
		} else {
			if(!comIsValidAlphaNum(userid)){
				alert("옮바른 아이디형식이 아닙니다.\n영문또는 영문 숫자조합으로 기입해주세요");
				return false;
			}
		}
		ajaxObj.setMode("get",false);
		ajaxObj.setFunction("Resulufunc()");
		ajaxObj.setUrl("/member/idchk_ajax.asp?id="+userid);
		ajaxObj.execute();
	}

function Resulufunc(){
		var result = ajaxObj.returnVar;
		if(result == "no"){
			document.getElementById("idchk").style.color="#FF0000";
			document.getElementById("idchk").innerHTML ="&nbsp;* 아이디를 사용할 수 없습니다."
			document.frm.idchk.value="no";
		} else {
			document.getElementById("idchk").style.color="#339900";
			document.getElementById("idchk").innerHTML ="&nbsp;* 사용할 수 있는 아이디 입니다."
			document.frm.idchk.value="yes";
		}

}

function passchk(obj){
	if(obj.value.length < 4 || obj.value.length > 20){
		alert("비밀번호는 4~20자리이어야 합니다");
		obj.focus();
		return false;
	}
	if(!comIsValidAlphaNum(obj.value)){
		alert("옮바른 비밀번호형식이 아닙니다.\n영문또는 영문 숫자조합으로 기입해주세요");
		obj.value="";
		obj.focus();
		return false;
	}
}

function emailchk(obj,obj2){
	if(obj.value == "self"){
		obj2.value = "";
		obj2.readOnly  = false;
		obj2.focus();
	} else {
		obj2.value = "";
		obj2.readOnly = true;
		obj2.value = obj.value;
	}
}
function idform(obj){
	if (obj.username.value == ""){
		alert("성명을 입력해주세요.");
		obj.username.focus();
		return false;
	}
	if (!comIsValidHangul(obj.username.value)){
		alert("이름은 한글이어야 합니다");
		obj.username.value = "";
		obj.username.focus();
		return false;
	}
	if(obj.userreg1.value=="" || obj.userreg2.value==""){
		alert("주민등록번호를 입력해주세요.");
		obj.userreg1.focus();
		return false;
	}
	if(!comIsValidNumeric(obj.userreg1.value)||!comIsValidNumeric(obj.userreg2.value)){
		alert("주민등록번호형식은 숫자이어야 합니다.");
		obj.userreg1.value = "";
		obj.userreg2.value = "";
		obj.userreg1.focus();
		return false;
	}

	if(!check_ResidentNO(obj.userreg1.value,obj.userreg2.value)){
		alert("잘못된 주민등록번호 입니다.");
		obj.userreg1.value = "";
		obj.userreg2.value = "";
		obj.userreg1.focus();
		return false;
	}
	obj.submit();

}
function loginfrmchk(obj){
	if(obj.idchk.value=="" || obj.idchk.value == "no"){
		alert("아이디 중복검사를 해주세요");
		obj.userid.focus();
		return false;
	}
	if(obj.userpwd1.value == ""){
		alert("비밀번호를 입력해 주세요");
		obj.userpwd1.focus();
		return false;
	}
	if(obj.userpwd2.value == ""){
		alert("비밀번호 확인을 입력해 주세요");
		obj.userpwd2.focus();
		return false;
	}
	if(obj.userpwd1.value != obj.userpwd2.value){
		alert("비밀번호가 서로 같지 않습니다.");
		obj.userpwd1.value = "";
		obj.userpwd2.value = "";
		obj.userpwd1.focus();
		return false;
	}
	if(obj.tel1.value == "" || obj.tel2.value == "" || obj.tel3.value == ""){
		alert("전화번호를 입력해주세요");
		return false;
	}
	if(obj.hp1.value == "" || obj.hp2.value == "" || obj.hp3.value == ""){
		alert("핸드폰번호를 입력해주세요");
		return false;
	}
	if(obj.email1.value == "" || obj.email2.value == ""){
		alert("이메일을 입력해주세요");
		return false;
	}
	if(!comIsValidEmail(obj.email1.value+"@"+obj.email2.value)){
		alert("옮바른 이메일 형식이 아닙니다.");
		obj.email1.value="";
		obj.email2.value=""
		obj.email1.focus();
		return false;
	}
	if(obj.zipcode1.value == "" ||obj.zipcode2.value == "" || obj.addr2.value == ""){
		alert("우편번호를 입력해주세요");
		return false;
	}
	if(obj.addr2.value==""){
		alert("상세주소를 입력해주세요");
		return false;
	}
	obj.submit();
}

function idfind(obj){
	if(obj.username.value==""){
		alert("이름을 입력해주세요");
		obj.username.focus();
		return false;
	}
	if (!comIsValidHangul(obj.username.value)){
		alert("이름은 한글이어야 합니다");
		obj.username.value = "";
		obj.username.focus();
		return false;
	}
	if(obj.userreg1.value=="" || obj.userreg2.value==""){
		alert("주민등록번호를 입력해주세요.");
		obj.userreg1.focus();
		return false;
	}
	if(!comIsValidNumeric(obj.userreg1.value)||!comIsValidNumeric(obj.userreg2.value)){
		alert("주민등록번호형식은 숫자이어야 합니다.");
		obj.userreg1.value = "";
		obj.userreg2.value = "";
		obj.userreg1.focus();
		return false;
	}
	if(!check_ResidentNO(obj.userreg1.value,obj.userreg2.value)){
		alert("잘못된 주민등록번호 입니다.");
		obj.userreg1.value = "";
		obj.userreg2.value = "";
		obj.userreg1.focus();
		return false;
	}

	window.open('', 'popupName', 'width=500,height=255');
	obj.target = 'popupName';
	obj.submit();
}

function pwfind(obj){
	if(obj.userid.value==""){
		alert("아이디를 입력해주세요");
		obj.userid.focus();
		return false;
	}
	if(!comIsValidAlphaNum(obj.userid.value)){
		alert("아이디 형식에 맞지 않습니다.");
		obj.userid.value="";
		obj.userid.focus();
		return false;
	}
	if(obj.username.value==""){
		alert("이름 입력해주세요");
		obj.username.focus();
		return false;
	}
	if (!comIsValidHangul(obj.username.value)){
		alert("이름은 한글이어야 합니다");
		obj.username.value = "";
		obj.username.focus();
		return false;
	}
	if(obj.userreg1.value=="" || obj.userreg2.value==""){
		alert("주민등록번호를 입력해주세요.");
		obj.userreg1.focus();
		return false;
	}
	if(!comIsValidNumeric(obj.userreg1.value)||!comIsValidNumeric(obj.userreg2.value)){
		alert("주민등록번호형식은 숫자이어야 합니다.");
		obj.userreg1.value = "";
		obj.userreg2.value = "";
		obj.userreg1.focus();
		return false;
	}
	if(!check_ResidentNO(obj.userreg1.value,obj.userreg2.value)){
		alert("잘못된 주민등록번호 입니다.");
		obj.userreg1.value = "";
		obj.userreg2.value = "";
		obj.userreg1.focus();
		return false;
	}

	window.open('', 'popupName', 'width=500,height=255');
	obj.target = 'popupName';
	obj.submit();
}

function modifrmchk(obj){

	if(obj.userpwd1.value == ""){
		alert("비밀번호를 입력해 주세요");
		obj.userpwd1.focus();
		return false;
	}
	if(obj.userpwd2.value == ""){
		alert("비밀번호 확인을 입력해 주세요");
		obj.userpwd2.focus();
		return false;
	}
	if(obj.userpwd1.value != obj.userpwd2.value){
		alert("비밀번호가 서로 같지 않습니다.");
		obj.userpwd1.value = "";
		obj.userpwd2.value = "";
		obj.userpwd1.focus();
		return false;
	}
	if(obj.tel1.value == "" || obj.tel2.value == "" || obj.tel3.value == ""){
		alert("전화번호를 입력해주세요");
		return false;
	}
	if(obj.hp1.value == "" || obj.hp2.value == "" || obj.hp3.value == ""){
		alert("핸드폰번호를 입력해주세요");
		return false;
	}
	if(obj.email1.value == "" || obj.email2.value == ""){
		alert("이메일을 입력해주세요");
		return false;
	}
	if(!comIsValidEmail(obj.email1.value+"@"+obj.email2.value)){
		alert("옮바른 이메일 형식이 아닙니다.");
		obj.email1.value="";
		obj.email2.value=""
		obj.email1.focus();
		return false;
	}
	if(obj.zipcode1.value == "" ||obj.zipcode2.value == "" || obj.addr2.value == ""){
		alert("우편번호를 입력해주세요");
		return false;
	}
	if(obj.addr2.value==""){
		alert("상세주소를 입력해주세요");
		return false;
	}
	obj.submit();
}

function dong_ok()
{
	if(frm.dong.value==""){
		alert("찾고자 하시는 지역을 입력하세요.");
		frm.dong.focus();
		return;
	}
	frm.submit();
}

function zip_select(zip1,zip2,addr)
{
		var zip1 = zip1;
		var zip2 = zip2;
		var addr = addr;

		opener.document.getElementById("user-address").value=zip1;
		opener.document.getElementById("user-address2").value=zip2;
		opener.document.getElementById("addr1").value=addr;
		opener.document.getElementById("addr2").focus();
		self.close();
}
function zip_select2(zip1,zip2,addr,z1,z2,a1)
{
		var zip1 = zip1;
		var zip2 = zip2;
		var addr = addr;
		opener.document.getElementById(z1).value=zip1;
		opener.document.getElementById(z2).value=zip2;
		opener.document.getElementById(a1).value=addr;
		self.close();
}

function rentajax(obj){
	var f1
		var f2
	for (i=0;i < 3 ;i++ )
	{
		if (obj.fastival[i].checked == true){
			f1 = obj.fastival[i].value;
		}
	}
	for (i=0;i < 4 ;i++ )
	{
		if (obj.facility[i].checked == true){
			f2 = obj.facility[i].value;
		}
	}

	
	if (f1 == "2"){
		obj.facility[0].disabled = true;
		obj.facility[1].disabled = false;
		obj.facility[2].disabled = true;
		obj.facility[3].disabled = true;
	}else if(f1=="1"){
		obj.facility[0].disabled = false;
		obj.facility[1].disabled = false;
		obj.facility[2].disabled = false;
		obj.facility[3].disabled = false;
		}else {
		obj.facility[0].disabled = false;
		obj.facility[1].checked = false;
		obj.facility[1].disabled = true;
		obj.facility[2].disabled = false;
		obj.facility[3].disabled = false;
	}



	var usesdate = obj.usesdate_yy.value+"-"+obj.usesdate_mm.value+"-"+obj.usesdate_dd.value;
	var useedate = obj.useedate_yy.value+"-"+obj.useedate_mm.value+"-"+obj.useedate_dd.value;
	ajaxObj.setMode("get",false);
	ajaxObj.setFunction("Resulurent()");
	//alert("/rent/rent_ajax.asp?f1="+f1+"&f2="+f2+"&usd="+usesdate+"&ued="+useedate+"&ust="+obj.usestime.value+"&uet="+obj.useetime.value);
	ajaxObj.setUrl("/rent/rent_ajax.asp?f1="+f1+"&f2="+f2+"&usd="+usesdate+"&ued="+useedate+"&ust="+obj.usestime.value+"&uet="+obj.useetime.value);
	ajaxObj.execute();

}

function Resulurent(){
		var result = ajaxObj.returnVar;
		//alert(result);
		if (result != "yes"){
			document.frm.rentimg.src = "/images/rent/btn_rent_no.gif";
			document.frm.rentimg.alt = "대관불가";
		} else {
			document.frm.rentimg.src = "/images/rent/icon_rent_ok.gif";
			document.frm.rentimg.alt = "대관가능";
		}
}

function rent1chk(obj){
	
	var f1
	var f2
	for (i=0;i < 3 ;i++ )
	{
		if (obj.fastival[i].checked == true){
			f1 = obj.fastival[i].value;
		}
	}
	for (i=0;i < 4 ;i++ )
	{
		if (obj.facility[i].checked == true){
			f2 = obj.facility[i].value;
		}
	}

	if (!f1){
		alert("구분을 선택해주세요");
		return false;
	}
	if (!f2){
		alert("장소를 선택해주세요");
		return false;
	}
	//alert(obj.rentimg.src);
	if (obj.rentimg.src == "http://yangcheonart.go.kr/images/rent/btn_rent_no.gif") {
		alert("대관이 불가합니다. 다시한번 확인하시기 바랍니다");
		return false;
	}
	if (f2 == "2" && f1 == "2"){
		obj.action = "/rent/rent_apply03.asp";
	} else {
		obj.action = "/rent/rent_apply02.asp";
	}
	obj.submit();
}
function rent1chk_admin(obj){
	
	var f1
	var f2
	for (i=0;i < 3 ;i++ )
	{
		if (obj.fastival[i].checked == true){
			f1 = obj.fastival[i].value;
		}
	}
	for (i=0;i < 4 ;i++ )
	{
		if (obj.facility[i].checked == true){
			f2 = obj.facility[i].value;
		}
	}

	if (!f1){
		alert("구분을 선택해주세요");
		return false;
	}
	if (!f2){
		alert("장소를 선택해주세요");
		return false;
	}
	//alert(obj.rentimg.src);
	if (obj.rentimg.src == "http://yangcheonart.go.kr/images/rent/btn_rent_no.gif") {
		alert("대관이 불가합니다. 다시한번 확인하시기 바랍니다");
		return false;
	}
	if (f2 == "2" && f1 == "2"){
		obj.action = "/admin/application/?method=rent3";
	} else {
		obj.action = "/admin/application/?method=rent2";
	}
	obj.submit();
}
function rent2chk(obj){
	if(obj.zipcode1.value == ""){
		alert("주소를 입력해주세요");
		return false;
	}
	if(obj.addr2.value == ""){
		alert("상세주소를 입력해주세요");
		obj.addr2.focus();
		return false;
	}
	if(obj.company.value==""){
		alert("상호명을 입력해주세요");
		obj.company.focus();
		return false;
	}
	if (obj.tel1.value=="" || obj.tel2.value=="" || obj.tel3.value==""){
		alert("전화번호를 입력해주세요");
		obj.tel1.focus();
		return false;
	}
	if(obj.ceoname.value==""){
		alert("성명(대표자)을입력해주세요");
		obj.company.focus();
		return false;
	}
	if(obj.reg1.value=="" || obj.reg2.value==""){
		alert("주민등록번호를 입력해주세요");
		obj.reg1.focus();
		return false;
	}
	/*if(obj.compnum.value==""){
		alert("사업자번호(법인신청서)를 입력해주세요");
		obj.compnum.focus();
		return false;
	}
	if(obj.corpnum.value==""){
		alert("법인번호(법인신청서)를 입력해주세요");
		obj.corpnum.focus();
		return false;
	}
	if(obj.useobj.value==""){
		alert("사용목적을 입력해주세요");
		obj.useobj.focus();
		return false;
	}
	if(obj.lcontent.value==""){
		alert("입간판내용을 입력해주세요");
		obj.lcontent.focus();
		return false;
	}
	if(obj.fcontent.value==""){
		alert("행사내용을 입력해주세요");
		obj.fcontent.focus();
		return false;
	}*/
	if(obj.usepeople.value==""){
		alert("이용인원을 입력해주세요");
		obj.usepeople.focus();
		return false;
	}

   obj.submit();

}
function rent2chka(obj){
	
	if(obj.company.value==""){
		alert("상호명을 입력해주세요");
		obj.company.focus();
		return false;
	}
	

   obj.submit();

}

function rent3chk(obj){
	if(obj.zipcode1.value == ""){
		alert("주소를 입력해주세요");
		return false;
	}
	if(obj.addr2.value == ""){
		alert("상세주소를 입력해주세요");
		obj.addr2.focus();
		return false;
	}
	if (obj.tel1.value=="" || obj.tel2.value=="" || obj.tel3.value==""){
		alert("전화번호를 입력해주세요");
		obj.tel1.focus();
		return false;
	}
	if(obj.ceoname.value==""){
		alert("성명을 입력해주세요");
		obj.company.focus();
		return false;
	}
	if(obj.reg1.value=="" || obj.reg2.value==""){
		alert("주민등록번호를 입력해주세요");
		obj.reg1.focus();
		return false;
	}
	if(obj.mname.value==""){
		alert("신랑님 성명을 입력해주세요");
		obj.mname.focus();
		return false;
	}
	if(obj.mreg1.value=="" || obj.mreg2.value==""){
		alert("신랑님 주민등록번호를 입력해주세요");
		obj.mreg1.focus();
		return false;
	}
	if(obj.mzip1.value==""){
		alert("신랑님 주소를 입력해주세요");
		obj.mzip1.focus();
		return false;
	}
	if(obj.mtel1.value=="" || obj.mtel2.value=="" || obj.mtel3.value==""){
		alert("신랑님 전화번호를 입력해주세요");
		obj.mtel1.focus();
		return false;
	}
	if(obj.fname.value==""){
		alert("신부님 성명을 입력해주세요");
		obj.fname.focus();
		return false;
	}
	if(obj.freg1.value=="" || obj.mreg2.value==""){
		alert("신부님 주민등록번호를 입력해주세요");
		obj.freg1.focus();
		return false;
	}
	if(obj.fzip1.value==""){
		alert("신부님 주소를 입력해주세요");
		obj.fzip1.focus();
		return false;
	}
	if(obj.ftel1.value=="" || obj.ftel2.value=="" || obj.ftel3.value==""){
		alert("신부님 전화번호를 입력해주세요");
		obj.ftel1.focus();
		return false;
	}

   obj.submit();

}

function rent3chka(obj){
	

   obj.submit();

}
function Quick_link(val)
	{
		var q_pop = document.getElementById('submenu1');
		if(q_pop.className == 'hidden' || q_pop.className == ''){
			q_pop.className="quick_pop";
		}else{
			q_pop.className="hidden";
		}
	}

var firstCall = true;
function changeFontsize(fSize, increment) {
	if (firstCall) {
		firstCall = false;
		if (increment != "") {
			changeFontsize('12', '');
		}
	}

	if (document.getElementsByTagName) {
		var getElement = document.getElementsByTagName("*");
		var eachElement, currentFontSize, fontIncrease, newFontSize;
		for (i=0; i<getElement.length; i++) {
			eachElement = getElement[i];
			if (increment != "") {
				currentFontSize = parseInt(eachElement.style.fontSize);
				fontIncrease = parseInt(increment);
				newFontSize = currentFontSize + fontIncrease;
			}
			else if (fSize != "") {
				newFontSize = parseInt(fSize);
			}
			if (getElement[i].tagName == "LI") {
				eachElement.style.lineHeight = Math.round(newFontSize*1.2) + "px";
			} else {
				eachElement.style.lineHeight = Math.round(newFontSize*1.5) + "px";
			}
			if (fSize != "") {
				switch(getElement[i].tagName) {
					case "H2": newFontSize += 3; break;
					case "H3": newFontSize += 2; break;
					case "H4": newFontSize += 1; break;
					case "H5": newFontSize += 1; break;
					case "H6": newFontSize += 1;
				}
			}
			eachElement.style.fontSize = newFontSize + "px";
			setCookie('fontSize', newFontSize);
		}
	}
	return false;
}

function setCookies( name, value, expires ) {
document.cookie = name + "=" + escape (value) +
    "; path=/; expires=" + expires.toGMTString();
}

function closeWin(objname,pop) {
 var expdate = new Date();
  expdate.setTime(expdate.getTime() + 24*60*60*1000 ); // *365 365일
 setCookies( pop, "done" , expdate );
document.getElementById(objname).style.display = "none";
}

function getCookies(Name) {
  var search = Name + "=";
	offset = document.cookie.indexOf(search);
  if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면    
    if (offset != -1) { // 쿠키가 존재하면
      offset += search.length;
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset);
      // 쿠키 값의 마지막 위치 인덱스 번호 설정
      if (end == -1)
        end = document.cookie.length;
      return unescape(document.cookie.substring(offset, end));
    }
  }
}
function win_link(url_link) 
{ 
location.href=url_link; 
} 

function DoAutorotationStart() {document.ptviewer.startAutoPan( 0.2, 0.0, 1.0 );}
function DoAutorotationStart1() {document.ptviewer.startAutoPan( -0.2, 0.0, 1.0 );}
function DoAutorotationStop() {document.ptviewer.stopAutoPan();}
function DoZoomIn() {var pv=document.ptviewer; pv.moveTo(pv.pan(),pv.tilt(),55,10);}
function DoZoomIn2() {var pv=document.ptviewer; pv.moveTo(pv.pan(),pv.tilt(),75,10);}
function DoZoomOut() {var pv=document.ptviewer; pv.moveTo(pv.pan(),pv.tilt(),100,10);}
function DoShowHideHotspots() {document.ptviewer.toggleHS();}
function DoReset() {document.ptviewer.gotoView(-33,0,100);}
function DoAutorotationStart_1() {document.ptviewer1.startAutoPan( 0.2, 0.0, 1.0 );}
function DoAutorotationStart1_1() {document.ptviewer1.startAutoPan( -0.2, 0.0, 1.0 );}
function DoAutorotationStop_1() {document.ptviewer1.stopAutoPan();}
function DoZoomIn_1() {var pv=document.ptviewer1; pv.moveTo(pv.pan(),pv.tilt(),55,10);}
function DoZoomIn2_1() {var pv=document.ptviewer1; pv.moveTo(pv.pan(),pv.tilt(),75,10);}
function DoZoomOut_1() {var pv=document.ptviewer1; pv.moveTo(pv.pan(),pv.tilt(),100,10);}
function DoShowHideHotspots_1() {document.ptviewer1.toggleHS();}
function DoReset_1() {document.ptviewer1.gotoView(-33,0,100);}

function chkon(p){
	if(p == "n"){
		document.getElementById("rent-system1").value = "09:00";
		document.getElementById("rent-system2").value = "09:00"
		document.getElementById("rent-system1").disabled = true;
		document.getElementById("rent-system2").disabled = true;
		if (document.getElementById("rent-price").value != ""){
		if (document.getElementById("cond").value != ""){
			document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)-parseInt(document.getElementById("cond").value);
		}
		
	}
		document.getElementById("cond").value = "";
	} else {
		document.getElementById("rent-system1").disabled = false;
		document.getElementById("rent-system2").disabled = false;
	}
}

function conditionprice(f,obj1,obj2,dd){
	var o1 = obj1.substring(0,2);
	var o2 = obj2.substring(0,2);
	var fc = 0;
	if(f == 1){
		fc = 47400;
	} else if(f == 2) {
		fc = 22600;
	} else if(f == 3) {
		fc = 14700;
	} else {
		fc = 11200;
	}
	var dt = o2-o1;
	var price = fc*dt*dd;
	if (document.getElementById("rent-price").value == ""){
		document.getElementById("rent-price").value=price;
	} else {
		if (document.getElementById("cond").value != ""){
			document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)+parseInt(price)-parseInt(document.getElementById("cond").value);
		} else {
			document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)+parseInt(price);
		}
		
	}
	document.getElementById("cond").value = price;
}

function pri(bp,value,day,id){
	if(document.getElementById(id).checked){
	document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)-parseInt(bp);
	document.getElementById("rent-price").value=parseInt(document.getElementById("rent-price").value)+parseInt(value)*day;
	} 

}
function g_pin() {
	    wWidth = 360;
	    wHight = 120;
	    
	    wX = (window.screen.width - wWidth) / 2;
	    wY = (window.screen.height - wHight) / 2;
	    
	    // Request Page Call
	    var w = window.open("/G-PIN/Sample-AuthRequest.asp", "gPinLoginWin", "directories=no,toolbar=no,left="+wX+",top="+wY+",width="+wWidth+",height="+wHight);
}

function iscount(num,f){
	if(f == 1){
		if(num.value > 760){
			alert("제한인원수를 초과하셨습니다.");
			return false
		}
	} else if(f == 2){
		if(num.value > 290){
			alert("제한인원수를 초과하셨습니다.");
			return false
		}
	}
}