

var INPUT_MAX_NUMBER = Math.pow(10, 14);








function trim__(str) {
	if (str == null) return '';
	return str.replace(/(^\s*)|(\s*$)/gi, "");
}

function bytelength__(str) {
	var len = 0;
	for(var i=0; i < str.length; i++)  {
		len += (str.charCodeAt(i) > 127?2:1);
	}
	return len;
}

function escape__(str) {
	return (''+str)
		.replace(/&/g, '&amp;')
		.replace(/[.]/g, '&dot;')
		.replace(/[/]/g, '&slash;');
}

function unescape__(str) {
	return (''+str)
		.replace(/&slash;/g, '/')
		.replace(/&dot;/g, '.')
		.replace(/&amp;/g, '&');
}

//* tab 은 사용하지 않지만 일단 그냥 둔다
var dp_all_tabclass = 'showLayer:hideLayer^NonLayer:BlcLayer';
var dp_all_tabs = '';
function findTab__(obj) {
	while (obj != null) {
		if (obj.className != null) {
			if (('^'+dp_all_tabclass+'^').indexOf('^'+obj.className+':') != -1 ||
				('^'+dp_all_tabclass+'^').indexOf(':'+obj.className+'^') != -1
				) {
				return obj.id;
			}
		}

		if (obj.parentElement == null) return null;
		obj = obj.parentElement;
	}
	
	return null;
}

function isSibling__(a,b) {
	if (a == null || b == null) return false;
	a = nameToObj__(a);
	b = nameToObj__(b);
	if (a == null || b == null) return false;

	var aa;

	aa = a;
	while (aa.previousSibling != null) {
		if (aa.previousSibling == b) return true;
		aa = aa.previousSibling;
	}

	aa = a;
	while (aa.nextSibling != null) {
		if (aa.nextSibling == b) return true;
		aa = aa.nextSibling;
	}

	return false;
}

function changeTab__(tab) {
	if (tab != null) {
		var lclassname = nameToObj__(tab).className;
		var rclassname = '';
		rclassname = getLeftPair__(dp_all_tabclass,lclassname);
		if (rclassname == null)
			rclassname = getRightPair__(dp_all_tabclass,lclassname);

		if (rclassname != null) {
			var tabs = (dp_all_tabs+'/').split('/');
			var showhidelayers = '';
			var idnclass;

			for (var i=0;i < tabs.length;i++) {
				if (tabs[i] == '') continue;

				idnclass = tabs[i].split('@');
				if (idnclass[1] != lclassname &&
					idnclass[1] != rclassname) continue;

				if (tab != idnclass[0] && !isSibling__(tab,idnclass[0])) continue;

				if (showhidelayers != '') showhidelayers += ',';
				if (idnclass[0] == tab)
					showhidelayers += '\''+idnclass[0]+'\',\'\',\'show\'';
				else
					showhidelayers += '\''+idnclass[0]+'\',\'\',\'hide\'';
			}

			if (lclassname.indexOf('show') != -1 || lclassname.indexOf('hide') != -1) {
				if (showhidelayers != '' && typeof(MM_showHideLayers) != 'undefined') {
					showhidelayers = 'MM_showHideLayers('+showhidelayers+')';
					eval(showhidelayers);
				}
			} else {
				if (showhidelayers != '' && typeof(MM_SHLayers) != 'undefined') {
					showhidelayers = 'MM_SHLayers('+showhidelayers+')';
					eval(showhidelayers);
				}
			}
		}
	}
}

function selectAll__(obj,bFocus) {
	
	

	var bFocus_;
	bFocus_=true;
	if (typeof(bFocus)!='undefined') bFocus_=bFocus;
	if (obj.type!='hidden'&&typeof(obj.style)!='undefined'&&obj.style.display!='none'&&obj.disabled!=true) {
		if (bFocus_) {
			if (document.activeElement!=null &&
				document.activeElement!=obj
				) {
				var tag = document.activeElement.tagName;
				if (tag == null) tag = "";
				tag = tag.toLowerCase();

				if (tag == 'input' ||
					tag == 'select' ||
					tag == 'textarea') {
					if (document.selection) {
						document.selection.empty();
					}
					document.activeElement.blur();
				}
			}

			var tab = findTab__(obj);

			changeTab__(tab);

			obj.focus();
		}
		
		if (typeof(obj.readOnly)!='undefined') {
			if (!obj.readOnly) obj.select();
		}

	}
	
}

//* 개별처리
function checkVar(obj,strNE,iFloat,strNN,iMin,iMax,strOF) {
	
	if (typeof(obj) == 'string') {
		obj = nameToObj__(obj);
	}
	var value,pow;
	if (typeof(obj)=='undefined') return true;
	value=obj.value.replace(/^[ ]+/g,'').replace(/[ ]+$/g,'');
	if (value==''&&strNE=='') return true;
	if (value==''&&strNE!='') {
		if (strNE!='') alert(strNE);
		selectAll__(obj);
		return false;
	}
	if (typeof(strNN)!='undefined') {
		if (iFloat==0) value=parseInt(obj.value,10);
		else {
			value=parseFloat(obj.value);
			if (!isNaN(value)) {
				pow=Math.pow(10,iFloat);
				value=Math.round(value*pow)/pow;
			}
		}
		if (isNaN(value)) {
			if (strNN!='') alert(strNN);
			selectAll__(obj);
			return false;
		}
//		if (obj.value<0) {
//			alert('음수는 입력하실 수 없습니다.');
//			selectAll__(obj);
//			return false;
//		}
		if (iFloat!=9) obj.value=value;
		if (typeof(iMin)!='undefined') {
			if (parseInt(obj.value) < parseInt(iMin)) {
				if (strOF!='') alert(strOF);
				selectAll__(obj);
				return false;
			}
		}
		if (typeof(iMax)!='undefined') {
			if (parseInt(obj.value)>parseInt(iMax)) {
				if (strOF!='') alert(strOF);
				selectAll__(obj);
				return false;
			}
		}
	} else {
		if (obj.value.indexOf("'")!=-1) {
			alert("'는 입력하실 수 없습니다.");
			selectAll__(obj);
			return false;
		}
	}
	return true;
}

function validateYear__(v) {
	v = v.replace(/[^0-9]/g,'');
	if (v.length!=4) {
		return '';
	} else {
		var d=new Date(parseInt(v.substr(0,4),10),0,1);
		var yy=d.getYear();
		if (yy>99) yy='0000'+yy; else yy='0000'+(1900+yy);
        yy=yy.substr(yy.length-4,4);
		v=yy;
	}

	return v;
}

function validateDate__(v,sep) {
	v = v.replace(/[^0-9]/g,'');
	if (v.length!=8) {
		return '';
	} else {
		var sep_ = '';
		if (sep != null) sep_=sep;

		var d=new Date(parseInt(v.substr(0,4),10),parseInt(v.substr(4,2),10)-1,parseInt(v.substr(6,2),10));
		var yy=d.getYear();
		if (yy>99) yy='0000'+yy; else yy='0000'+(1900+yy);
		var mm='00'+(d.getMonth()+1);
		var dd='00'+d.getDate();
        yy=yy.substr(yy.length-4,4);
        mm=mm.substr(mm.length-2,2);
        dd=dd.substr(dd.length-2,2);
		v=yy+sep_+mm+sep_+dd;
	}

	return v;
}

function adjustInputDate__(obj,oldValue,permitBlank) {
	
	var v;
	v=obj.value.replace(/[^0-9]/g,'');

	var utype = obj.utype;
	if (utype == null) {
		utype = 'date';
	}
	utype = utype.toLowerCase();

	if (utype == 'date') {
		if (v.length!=8) {
			if (permitBlank != null && permitBlank == true && v.length == 0 )  {
				obj.value = v;
				return v;
			}
			v=oldValue;
		} else {
			v = validateDate__(v,'-');
		}
	}
	if (utype == 'dateyyyy') {
		if (v.length!=4) {
			if (permitBlank != null && permitBlank == true && v.length == 0 )  {
				obj.value = v;
				return v;
			}
			v=oldValue;
		} else {
			v = validateYear__(v);
		}
	}
	if (utype == 'time') {
		if (v.length!=6) {
			if (permitBlank != null && permitBlank == true && v.length == 0 )  {
				obj.value = v;
				return v;
			}
			v=oldValue;
		} else {
			v = validateTime__(v,false,':');
		}
	}
	if (utype == 'timehm') {
		if (v.length!=4) {
			if (permitBlank != null && permitBlank == true && v.length == 0 )  {
				obj.value = v;
				return v;
			}
			v=oldValue;
		} else {
			v = validateTime__(v,true,':');
		}
	}
	obj.value=v;
	return v;
}

function checkDatePair__(obj) {
	if (obj == null) return ;
	
	var len = dp_all_datePairs.length;
	var i;
	for (i = 0; i < len; i ++) {
		if (dp_all_datePairs[i].leftDt == obj.name ||
			dp_all_datePairs[i].leftHm == obj.name ||
			dp_all_datePairs[i].rightDt == obj.name ||
			dp_all_datePairs[i].rightHm == obj.name ||
			false) {
			break;
		}
	}

	if (i == len) {
		return ;
	} 

	if (obj.value == '') {
		var subObj = null;
		if (dp_all_datePairs[i].leftDt == obj.name) {
			subObj = nameToObj__(dp_all_datePairs[i].leftHm);
		}
		if (dp_all_datePairs[i].leftHm == obj.name) {
			subObj = nameToObj__(dp_all_datePairs[i].leftDt);
		}
		if (dp_all_datePairs[i].rightDt == obj.name) {
			subObj = nameToObj__(dp_all_datePairs[i].rightHm);
		}
		if (dp_all_datePairs[i].rightHm == obj.name) {
			subObj = nameToObj__(dp_all_datePairs[i].rightDt);
		}
		if (subObj != null) {
			subObj.value = '';
		}
		return ;
	}

	var rightDate, leftDate, rightHm, leftHm, tempDate;

	rightDate = nameToObj__(dp_all_datePairs[i].rightDt);
	leftDate = nameToObj__(dp_all_datePairs[i].leftDt);
	rightHm = nameToObj__(dp_all_datePairs[i].rightHm);
	leftHm = nameToObj__(dp_all_datePairs[i].leftHm);

	if (rightDate != null && leftDate != null &&
		rightDate.value != '' && leftDate.value != '' &&
		((rightHm == null && leftHm == null) || (
		rightHm != null && leftHm != null &&
		rightHm.value != '' && leftHm.value != '')) &&
		(rightDate.value + (rightHm == null ? '' : rightHm.value))< (leftDate.value + (leftHm == null ? '' : leftHm.value))) {
		tempDate = rightDate.value;
		rightDate.value = leftDate.value;
		leftDate.value = tempDate;
		if (rightHm != null && leftHm != null) {
			tempDate = rightHm.value;
			rightHm.value = leftHm.value;
			leftHm.value = tempDate;
		}
	}
}

function dp_all_ownReturnFunction(obj) {
	if (obj != null) {
		checkDatePair__(obj);
	}
}

function validateTime__(v,short,sep) {
	v = v.replace(/[^0-9]/g,'');
	if (short == null) short = false;
	if ((short == false && v.length!=6)||
		(short == true  && v.length!=4)) {
		return '';
	} else {
		var sep_ = '';
		if (sep != null) sep_=sep;

		v += '00';

		var d=new Date(0,0,0,parseInt(v.substr(0,2),10),parseInt(v.substr(2,2),10),parseInt(v.substr(4,2),10));
		var hh='00'+d.getHours();
		var mm='00'+d.getMinutes();
		var ss='00'+d.getSeconds();
        hh=hh.substr(hh.length-2,2);
        mm=mm.substr(mm.length-2,2);
        ss=ss.substr(ss.length-2,2);

		v=hh+sep_+mm+(short?'':(sep_+ss));
	}

	return v;
}

function maskOffDigit__(inStr) {
	return inStr.replace(/[^0-9]/g,'');
}

function maskOffEDigit__(inStr) {
	return inStr.replace(/[^A-Za-z0-9]/g,'');
}

function maskOffAmount__(inStr) {
	var onlyDigit = inStr.replace(/[^0-9\.]/g,'');
	if (onlyDigit.length == 0) return "0";
	return onlyDigit;
}

function maskOnStr__(mask, str) {
	var i = 0;
	var mIndex = mask.length - 1;
	var sIndex = str.length - 1;
	var result = "";

	for (i = 0; i < mask.length; i++) {
		if (sIndex < 0) break;
		if (mask.charAt(mIndex) == '#') {
			if (str.charAt(sIndex) >= '0' && str.charAt(sIndex) <= '9') {
				result = str.charAt(sIndex) + result;
				sIndex--;
				mIndex--;
			} else {
				sIndex--;
			}
		} else
		if (mask.charAt(mIndex) == 'A') {
			if (str.charAt(sIndex) >= 'A' && str.charAt(sIndex) <= 'Z') {
				result = str.charAt(sIndex) + result;
				sIndex--;
				mIndex--;
			} else
			if (str.charAt(sIndex) >= 'a' && str.charAt(sIndex) <= 'z') {
				result = str.charAt(sIndex).toUpperCase() + result;
				sIndex--;
				mIndex--;
			} else
			{
				sIndex--;
			}
		} else
		if (mask.charAt(mIndex) == 'a') {
			if (str.charAt(sIndex) >= 'A' && str.charAt(sIndex) <= 'Z') {
				result = str.charAt(sIndex).toLowerCase() + result;
				sIndex--;
				mIndex--;
			} else
			if (str.charAt(sIndex) >= 'a' && str.charAt(sIndex) <= 'z') {
				result = str.charAt(sIndex) + result;
				sIndex--;
				mIndex--;
			} else
			{
				sIndex--;
			}
		} else
		if (mask.charAt(mIndex) == '*') {
			if ((str.charAt(sIndex) >= '0' && str.charAt(sIndex) <= '9') ||
				(str.charAt(sIndex) >= 'A' && str.charAt(sIndex) <= 'Z') ||
				(str.charAt(sIndex) >= 'a' && str.charAt(sIndex) <= 'z')) {
				result = str.charAt(sIndex) + result;
				sIndex--;
				mIndex--;
			} else
			{
				sIndex--;
			}
		} else
		{
			result = mask.charAt(mIndex) + result;
			mIndex --;
		}
	}
	return result;
}

/**
  * 해당 텍스트 필드(금액 위주)를 주어진 Mask형태로 입력받는다.
  * @param maskStr 입력 Mask
  * Mask Sample : 마스크는 반드시 '#'로 시작해야 함.
  *               8자리 Currency형태 : "##,###,###",
  *               주민등록번호       : "######-#######-##"
  *               전화번호           : "####)###-####"
  *               날짜               : "##/##/##" or "####/##/##"
  * @param inObj 텍스트필드
  */
function maskField__ (maskStr, inObj) {
	if (inObj.maxLength < maskStr.length) maskStr = maskStr.substr(maskStr.length - inObj.maxLength);
	if (maskStr.indexOf('A') != -1 ||
		maskStr.indexOf('a') != -1 ||
		maskStr.indexOf('*') != -1)
		inObj.value = maskOnStr__(maskStr, maskOffEDigit__(inObj.value));
	else
		inObj.value = maskOnStr__(maskStr, maskOffDigit__(inObj.value));
}

function maskReverseOnStr__(mask, str) {
	var i = 0;
	var mIndex = 0;
	var sIndex = 0;
	var result = "";

	for (i = 0; i < mask.length; i++) {
		if (sIndex >= str.length) break;
		if (mask.charAt(mIndex) == '#') {
			if (str.charAt(sIndex) >= '0' && str.charAt(sIndex) <= '9') {
				result = result + str.charAt(sIndex);
				sIndex++;
				mIndex++;
			} else {
				sIndex++;
			}
		} else
		if (mask.charAt(mIndex) == 'A') {
			if (str.charAt(sIndex) >= 'A' && str.charAt(sIndex) <= 'Z') {
				result = result + str.charAt(sIndex);
				sIndex++;
				mIndex++;
			} else
			if (str.charAt(sIndex) >= 'a' && str.charAt(sIndex) <= 'z') {
				result = result + str.charAt(sIndex).toUpperCase();
				sIndex++;
				mIndex++;
			} else
			{
				sIndex++;
			}
		} else
		if (mask.charAt(mIndex) == 'a') {
			if (str.charAt(sIndex) >= 'A' && str.charAt(sIndex) <= 'Z') {
				result = result + str.charAt(sIndex).toLowerCase();
				sIndex++;
				mIndex++;
			} else
			if (str.charAt(sIndex) >= 'a' && str.charAt(sIndex) <= 'z') {
				result = result + str.charAt(sIndex);
				sIndex++;
				mIndex++;
			} else
			{
				sIndex++;
			}
		} else
		if (mask.charAt(mIndex) == '*') {
			if ((str.charAt(sIndex) >= '0' && str.charAt(sIndex) <= '9') ||
				(str.charAt(sIndex) >= 'A' && str.charAt(sIndex) <= 'Z') ||
				(str.charAt(sIndex) >= 'a' && str.charAt(sIndex) <= 'z')) {
				result = result + str.charAt(sIndex);
				sIndex++;
				mIndex++;
			} else
			{
				sIndex++;
			}
		} else
		{
			result = result + mask.charAt(mIndex);
			mIndex ++;
		}
	}
	return result;
}

/**
* 해당 텍스트 필드(스트링 위주)를 주어진 Mask형태로 입력받는다.
* @param maskStr 입력 Mask
* Mask Sample : 마스크는 반드시 '#'로 시작해야 함.
*               8자리 Currency형태 : "##,###,###",
*               주민등록번호       : "######-#######-##"
*               전화번호           : "####)###-####"
*               날짜               : "##/##/##" or "####/##/##"
* @param inObj 텍스트필드
*/
function maskReverseField__(maskStr, inObj) {
	if (maskStr.indexOf('A') != -1 ||
		maskStr.indexOf('a') != -1 ||
		maskStr.indexOf('*') != -1)
		inObj.value = maskReverseOnStr__(maskStr, maskOffEDigit__(inObj.value));
	else
		inObj.value = maskReverseOnStr__(maskStr, maskOffDigit__(inObj.value));
}

//************************************************************* OBJECT CONTROL

var dp_all_objectSequences = "";


function setObjectSequences(newSequence) {
	var lastSequence = dp_all_objectSequences;
	dp_all_objectSequences = (newSequence == null ? "" : newSequence);
	return lastSequence;
}


function getObjectSequences() {
	return dp_all_objectSequences;
}

var globalidheader__ = 'GID' + ((new Date()).getTime());
var globalidseq__ = 0
function makeObjectSequence() {
	var forms = document.forms;
	var lenForms = forms.length;
	var form;
	var eles;
	var lenEles;
	var ele;
	var sequence = "";
	var tagName;
	
	for (var f = 0; f < lenForms; f ++) {
		form = forms[f];
		eles = form.elements;
		lenEles = eles.length;
		for (var e = 0; e < lenEles; e ++) {
			ele = eles[e];
			tagName = ('' + ele.tagName).toLowerCase();
			if ((tagName == 'input' && ('' + ele.type).toLowerCase() != 'hidden') ||
				tagName == 'textarea' ||
				tagName == 'select' ||
				tagName == 'button' ||
				false) {
				if (ele.name == null || ele.name == '') {
					ele.name = globalidheader__ + (globalidseq__ ++);
				}
				sequence += '' + objToName__(ele) + ':';
			}
		}
	}
	
//alert(sequence);
	
	setObjectSequences(sequence);
}

function objToName__(obj) {
	if (obj == null) {
		return '';
	}
	if (obj.name == '') {
		return '';
	}
	var form = obj.form;
	
	var eles;
	var lenEles;
	var ele;
	var idx = 0;

	eles = document.getElementsByName(obj.name);
	lenEles = eles.length;
	for (var e = 0; e < lenEles; e ++) {
		if (eles[e] == obj) {
			break;
		}
		
		if (eles[e].form == form) {
			idx ++;
		}
	}
	
	var name = form.name + '.' + escape__(obj.name);
	if (lenEles > 1) {
		name += '/' + idx;
	}
	
	return name;
}

//* name : "formName.elementName/index" or "elementName/index" or "elementName"
function nameToObj__(name) {
	var name_ = name;
	
	var temp = (name+'//').split('/');
	var temp2;

	var form;
	var name;

	if (temp[0] == '') return null;
	temp2 = (temp[0]+'..').split('.');
	if (temp2[1] == '') {
		form = null;
		name = unescape__(temp2[0]);
	} else {
		form = document.forms[temp2[0]];
		name = unescape__(temp2[1]);
	}

	var iidx = parseInt('0' + temp[1], 10);

	var eles;
	var lenEles;
	var ele;
	var idx = 0;

	eles = document.getElementsByName(name);
	lenEles = eles.length;
	for (var e = 0; e < lenEles; e ++) {
		if (form == null || eles[e].form == form) {
			if (idx == iidx) {
				return eles[e];
			}
			
			idx ++;
		}
	}

	return document.all[name_];
}

function getNextObjectFromSequence__(objID,formname_) {
	var src,dst,index;

	src = ":"+dp_all_objectSequences+":";
	dst = ":"+objID+":";

	index = src.indexOf(dst);
	if (index == -1 && objID.indexOf('.') == -1) {
		var obj = nameToObj__(objID);

		if (obj == null) return null;

		var formname;
		if (formname_ != null) formname = formname_;
		else {
			formname = obj.form;
			if (formname == null) return null;
			formname = formname.name;
		}

		dst = ":"+formname+"."+objID+":";

		index = src.indexOf(dst);
		if (index == -1) return null;
	}

	src = src.substr(index + dst.length);

	index = src.indexOf("^");
	if (index != -1) {
		src = src.substr(0,index);
	}

	index = src.indexOf(":");
	if (index == -1) return null;
	if (index == 0) return null;

	dst = src.substr(0,index);

	if (dst.length == 0) return null;
	return dst;
}

function getPreviousObjectFromSequence__(objID,formname_) {
	var src,dst,index;

	src = ":"+dp_all_objectSequences+":";
	dst = ":"+objID+":";

	index = src.indexOf(dst);
	if (index == -1 && objID.indexOf('.') == -1) {
		var obj = nameToObj__(objID);

		if (obj == null) return null;

		var formname;
		if (formname_ != null) formname = formname_;
		else {
			formname = obj.form;
			if (formname == null) return null;
			formname = formname.name;
		}

		dst = ":"+formname+"."+objID+":";

		index = src.indexOf(dst);
		if (index == -1) return null;
	}

	src = src.substr(0,index);

	index = src.lastIndexOf("^");
	if (index != -1) {
		src = src.substr(index+1);
	}

	index = src.lastIndexOf(":");
	if (index == -1) return null;
	if (index+1 == src.length) return null;

	dst = src.substr(index+1);

	if (dst.length == 0) return null;
	return dst;
}

function isFocusable__(obj) {
	if (obj == null) return false;

	var tagName;

	tagName = obj.tagName;
	if (tagName == null) tagName = '';
	tagName = tagName.toLowerCase();

	var oo = obj;
	var display = 'block';
	while (oo != null) {
		if (typeof(oo.style) != 'undefined' && oo.style.display == 'none') {
			display = oo.style.display;
			break;
		}
		oo = oo.parentElement;
	}

	if ((typeof(obj.disabled) == 'undefined' || obj.disabled == false) &&
		(typeof(obj.readOnly) == 'undefined' || obj.readOnly == false) &&
		(display != 'none') &&
		(tagName != 'input' || typeof(obj.type) != 'undefined' && obj.type != 'hidden'))
		return true;

	return false;
}

function tofirstobj__(obj) {
	if (obj == null) return obj;

	var formname;

	if (obj.form != null) formname = obj.form.name;
	else formname = '';

	obj = objToName__(obj);

	var fromobj = obj;
	var toobj = obj;
	var moveobj ;

	while (true) {
		moveobj = getPreviousObjectFromSequence__(obj,formname);
		if (moveobj == null || moveobj == fromobj) {
			if (toobj != fromobj) selectAll__(nameToObj__(toobj));
			return (nameToObj__(fromobj) == nameToObj__(toobj) ? nameToObj__(fromobj) : nameToObj__(toobj));
		}
		if (nameToObj__(moveobj) != null) {
			if (isFocusable__(nameToObj__(moveobj))) {
				toobj = moveobj;
			}
		}

		obj = moveobj;
		formname = null;
	}
}

function tolastobj__(obj) {
	if (obj == null) return obj;

	var formname;

	if (obj.form != null) formname = obj.form.name;
	else formname = '';

	obj = objToName__(obj);

	var fromobj = obj;
	var toobj = obj;
	var moveobj ;

	while (true) {
		moveobj = getNextObjectFromSequence__(obj,formname);
		if (moveobj == null || moveobj == fromobj) {
			if (toobj != fromobj) selectAll__(nameToObj__(toobj));
			return (nameToObj__(fromobj) == nameToObj__(toobj) ? nameToObj__(fromobj) : nameToObj__(toobj));
		}
		if (nameToObj__(moveobj) != null) {
			if (isFocusable__(nameToObj__(moveobj))) {
				toobj = moveobj;
			}
		}

		obj = moveobj;
		formname = null;
	}
}

function toprevobj__(obj) {
	if (obj == null) return obj;

	var formname;

	if (obj.form != null) formname = obj.form.name;
	else formname = '';

	obj = objToName__(obj);

	var fromobj = obj;
	var toobj = obj;
	var moveobj ;

	while (true) {
		moveobj = getPreviousObjectFromSequence__(obj,formname);
		if (moveobj == null || moveobj == fromobj) return nameToObj__(fromobj);
		if (nameToObj__(moveobj) != null) {
			if (isFocusable__(nameToObj__(moveobj))) {
				if (moveobj != fromobj) selectAll__(nameToObj__(moveobj));
				return (nameToObj__(fromobj) == nameToObj__(moveobj) ? nameToObj__(fromobj) : nameToObj__(moveobj));
			}
		}

		obj = moveobj;
		formname = null;
	}
}

function tonextobj__(obj) {
	if (obj == null) return obj;

	var formname;

	if (obj.form != null) formname = obj.form.name;
	else formname = '';

	obj = objToName__(obj);

	var fromobj = obj;
	var toobj = obj;
	var moveobj ;

	while (true) {
		moveobj = getNextObjectFromSequence__(obj,formname);
		if (moveobj == null || moveobj == fromobj) return nameToObj__(fromobj);
		if (nameToObj__(moveobj) != null) {
			if (isFocusable__(nameToObj__(moveobj))) {
				if (moveobj != fromobj) selectAll__(nameToObj__(moveobj));
				return (nameToObj__(fromobj) == nameToObj__(moveobj) ? nameToObj__(fromobj) : nameToObj__(moveobj));
			}
		}

		obj = moveobj;
		formname = null;
	}
}


function DatePair__(leftDt, leftHm, rightDt, rightHm) {
	this.leftDt = leftDt;
	this.leftHm = leftHm;
	this.rightDt = rightDt;
	this.rightHm = rightHm;
}

var dp_all_datePairs = new Array();


function clearDatePairs() {
	dp_all_datePairs.length = 0;
}


function addDatePairs(leftDt, leftHm, rightDt, rightHm) {
	dp_all_datePairs[dp_all_datePairs.length] = new DatePair__(leftDt, leftHm, rightDt, rightHm);
}

function getLeftPair__(pairs,objID) {
	var index;

	var src,dst;

	src = "^"+pairs+"^";
	dst = ":"+objID+"^";

	index = src.indexOf(dst);
	if (index == -1) return null;

	src = src.substr(0,index);

	index = src.lastIndexOf("^");
	if (index == -1) return null;
	if (index+1 == src.length) return null;

	return src.substr(index+1);
}

function getRightPair__(pairs,objID) {
	var index;

	var src,dst;

	src = "^"+pairs+"^";
	dst = "^"+objID+":";

	index = src.indexOf(dst);
	if (index == -1) return null;

	src = src.substr(index + dst.length);

	index = src.indexOf("^");
	if (index == -1) return null;
	if (index == 0) return null;

	return src.substr(0,index);
}

function submitall__() {
	if (this.submitonce != null) {
		if (this.submitted != null && this.submitted) {
			if (''+this.submitonce != '') alert(this.submitonce);
			return ;
		}
		this.submitted = true;
	}
	if (this.dp_all_oldsubmit != null) this.dp_all_oldsubmit();
}

function onsubmitall__() {
	var obj = event.srcElement;

	if (obj == null) return false;

	if (obj.submitonce != null) {
		if (obj.submitted != null && obj.submitted) {
			if (''+obj.submitonce != '') alert(obj.submitonce);
			return false;
		}

		if (obj.dp_all_oldonsubmit != null) obj.submitted = this.dp_all_oldonsubmit()
		obj.submitted = true;

		return obj.submitted;
	}

	if (obj.dp_all_oldonsubmit != null) return this.dp_all_oldonsubmit();
	return true;
}

function onfocusall__() {
	if (blurin__) blurinfocus__ = event.srcElement;
	else blurinfocus__ = null;

	
	if (arguments.callee.caller != null) {
		
		return ;
	}

	var obj = event.srcElement;
	if (obj == null) {
		
		return ;
	}

	var utype = obj.utype;
	if (utype == null) {
		if (obj.dp_all_oldonfocus != null) this.dp_all_oldonfocus();
		
		return ;
	}

	utype = utype.toLowerCase();

	if (utype != '') {
		obj.oldValue = obj.value ;
	}
	obj.oldValue4Change = obj.value ;

	selectAll__(obj);
	if (obj.dp_all_oldonfocus != null) this.dp_all_oldonfocus();
	
}

function fireOnChange__(obj) {
	if (obj == null) return ;
	
	//On IE
	if (obj.fireEvent) {
		obj.fireEvent('onchange');
	}

	//On Gecko based browsers
	if (document.createEvent) {
		var evt = document.createEvent('HTMLEvents');
		if (evt.initEvent) {
			evt.initEvent('change', true, true);
		}
		if (txt.dispatchEvent) {
			txt.dispatchEvent(evt);
		} 
	}
} 

var blurin__ = false;
var blurinfocus__ = null;
function onblurall__() {
	blurin__ = true;
	if (blurinfocus__ != null && blurinfocus__ == event.srcElement) {
		blurin__ = false;
		blurinfocus__ = null;
		return ;
	}
	blurinfocus__ = null;

	
	if (arguments.callee.caller != null) {
		blurin__ = false;
		blurinfocus__ = null;
		
		return ;
	}

	var obj = event.srcElement;
	if (obj == null) {
		blurin__ = false;
		blurinfocus__ = null;
		
		return ;
	}

	if (!checkObj__(obj)) {
		event.returnValue = false;
		blurin__ = false;
		blurinfocus__ = null;
		
		return ;
	}

	var utype = obj.utype;
	if (utype == null) {
		if (obj.dp_all_oldonblur != null) this.dp_all_oldonblur();
		blurin__ = false;
		blurinfocus__ = null;
		
		return ;
	}

	utype = utype.toLowerCase();

	if (utype == 'date' ||
		utype == 'dateyyyy' ||
		utype == 'time' ||
		utype == 'timehm') {
		adjustInputDate__(obj,obj.oldValue,true /*obj.required == null*/);

		checkDatePair__(obj);
	}

	if (obj.dp_all_oldonblur != null) this.dp_all_oldonblur();
	if (obj.oldValue4Change != obj.value) {
		obj.oldValue4Change = obj.value;
		fireOnChange__(obj);
	}
	blurin__ = false;
	blurinfocus__ = null;
	
}

function onclickall__() {
	
	if (arguments.callee.caller != null) {
		
		return ;
	}

	var obj = event.srcElement;
	if (obj == null) {
		
		return ;
	}

	var utype = obj.utype;
	if (utype == null) {
		if (obj.dp_all_oldonclick != null) this.dp_all_oldonclick();
		
		return ;
	}

	utype = utype.toLowerCase();

	if (obj.dp_all_oldonclick != null) this.dp_all_oldonclick();
	
}

function onkeydownall__() {
	
	var obj = event.srcElement;
	if (obj == null) {
		
		return ;
	}
	var kcode = event.keyCode;
	switch (kcode) {
	case 9 :
		if (getObjectSequences() != '') {
			if (checkObj__(obj)) {
				if (event.shiftKey) {
					toprevobj__(obj);
				} else {
					tonextobj__(obj);
				}
			}
			event.returnValue = false;
		} else {
			if (!checkObj__(obj)) {
				event.returnValue = false;
			}
		}
		break;
	case 107 : // numpad + (next field)
		event.returnValue = false;
		break;
	}
	
}

function onkeypressall__() {
	
	if (arguments.callee.caller != null) {
		
		return ;
	}

	var obj = event.srcElement;
	if (obj == null) {
		
		return ;
	}

	var utype = obj.utype;
	if (utype == null) {
		if (kcode == 43) { // numpad + (next field)
			event.returnValue = false;
		}

		if (obj.dp_all_oldonkeypress != null) this.dp_all_oldonkeypress();
		
		return ;
	}

	event.returnValue = true;

	utype = utype.toLowerCase();
	var kcode = event.keyCode;

	//* 영숫자 입력 체크
	if (utype == 'numeric' ||
		utype == 'numericdash' ||
		utype == 'rnno' ||
		utype == 'rno' ||
		utype == 'rnopart1' ||
		utype == 'rnopart2' ||
		utype == 'bsmno' ||
		utype == 'bsmnopart1' ||
		utype == 'bsmnopart2' ||
		utype == 'bsmnopart3' ||
		utype == 'telno' ||
		utype == 'telnopart2' ||
		utype == 'telnopart3' ||
		utype == 'amount' ||
		utype == 'date' ||
		utype == 'dateyyyy' ||
		utype == 'time' ||
		utype == 'timehm' ||
		utype == 'mbrid' ||
		false) {

		if (event.shiftKey && utype != 'mbrid') {
			event.returnValue = false;
			if (obj.dp_all_oldonkeypress != null) this.dp_all_oldonkeypress();
			
			return;
		}
		if (event.altKey) {
			event.returnValue = false;
			if (obj.dp_all_oldonkeypress != null) this.dp_all_oldonkeypress();
			
			return;
		}
		if (event.ctrlKey) {
			event.returnValue = false;
			if (obj.dp_all_oldonkeypress != null) this.dp_all_oldonkeypress();
			
			return;
		}
		if (kcode > 57/*9*/) {
			//* 영문 대문자 입력가능한 타입 체크. 나머지는 숫자만 입력가능
			if (utype != 'mbrid') {
				event.returnValue = false;
				if (obj.dp_all_oldonkeypress != null) this.dp_all_oldonkeypress();
				
				return;
			}
			if (kcode < 65/*A*/ || (kcode > 90/*Z*/ && kcode < 97/*a*/) || kcode > 122/*z*/) {
				event.returnValue = false;
				if (obj.dp_all_oldonkeypress != null) this.dp_all_oldonkeypress();
				
				return;
			}
		} else if (kcode < 48/*0*/) {
			if (kcode != 8 && kcode != 13 && kcode != 46/*.*/ && (utype != 'numericdash' || kcode != 45/*-*/)) {
				event.returnValue = false;
				if (obj.dp_all_oldonkeypress != null) this.dp_all_oldonkeypress();
				
				return;
			}
		}
	}

	if (kcode == 43) { // numpad + (next field)
		event.returnValue = false;
	}

	if (obj.dp_all_oldonkeypress != null) this.dp_all_oldonkeypress();
	
}

//* 가변 마스크 예제
function acnoMask__(v) {
	var len = v.length;
	var temp;

	if (len < 1) return ''; //* 미정
	temp = v.substr(0,1);

	if (temp <= '5') {
		if (len < 4) return '###**********'; //* 미정
		temp = v.charAt(3);
		if ((temp >= 'A' && temp <= 'Z') ||
			(temp >= 'a' && temp <= 'z')) {
			if (len < 13) return '###-AAA-######@'; //* 12자리 외화계좌
			return '###-AAA-######-#'; //* 13자리 외화계좌
		} else {
			if (len < 5) return '###-#*********'; //* 미정
			temp = v.substr(3,2);
			if (temp == '04' ||
				temp == '05' ||
				temp == '06') return '###-##-#####-###'; //* 가상계좌
			if (len<=11) return '###-##-#####-#'; //* 구계좌

			//* 입력중에는 발생하지 않는다.
			//* 값이 이미 채워져 있는 경우에만 해당된다.
			return '###-######-###'; //* 몰라(별단신규때문)
		}
	} else {
		if (len < 3) return '##***********'; //* 미정
		temp = v.substr(0,3);
		if (temp == '926' ||
			temp == '930' ||
			temp == '931' ||
			temp == '946' ||
			temp == '986') return '###-##-#####-#'; //* 구계좌

		if (temp == '948' && ((v+'99999999').substr(3)).replace(/[9 ]/g,'') == '')
			return '###-##-#####-#'; //* 구계좌 - '94899999999'

		return '###-######-###'; //* 신계좌
	}
}

/* 샘플
var dp_all_maskacno = "###-##-#####-#";
var dp_all_maskeacno1 = "###-AAA-######-#";
var dp_all_maskeacno2 = "###-AAA-######";
var dp_all_maskaacno1 = "###-**-*####-#";
var dp_all_maskaacno2 = "###-***-######-#";
var dp_all_maskaacno3 = "###-***-######";
*/

var dp_all_maskrnno1 = "###-##-#####";
var dp_all_maskrnno2 = "######-#######";
var dp_all_maskrno = "######-#######";
var dp_all_maskrnopart1 = "######";
var dp_all_maskrnopart2 = "#######";
var dp_all_maskbsmno = "###-##-#####";
var dp_all_maskbsmnopart1 = "###";
var dp_all_maskbsmnopart2 = "##";
var dp_all_maskbsmnopart3 = "#####";
var dp_all_maskdate = "####-##-##";
var dp_all_maskdateyyyy = "####";
var dp_all_masktime = "##:##:##";
var dp_all_masktimehm = "##:##";
var dp_all_maskmbrid = "A#############";
var dp_all_masktelno1 = "##-###-####";
var dp_all_masktelno2 = "##-####-####";
var dp_all_masktelno3 = "###-###-####";
var dp_all_masktelno4 = "###-####-####";
var dp_all_masktelnopart2_3 = "###";
var dp_all_masktelnopart2_4 = "####";
var dp_all_masktelnopart3 = "####";
function maskObj__(obj) {
	var utype = obj.utype;
	if (utype == null) return ;

	utype = utype.toLowerCase();

	if (utype == 'rnno') {
		if (maskOffDigit__(obj.value).length==10) maskReverseField__(dp_all_maskrnno1,obj);
		else maskReverseField__(dp_all_maskrnno2,obj);
	} else
	if (utype == 'rno') {
		maskReverseField__(dp_all_maskrno,obj);
	} else
	if (utype == 'rnopart1') {
		maskReverseField__(dp_all_maskrnopart1,obj);
	} else
	if (utype == 'rnopart2') {
		maskReverseField__(dp_all_maskrnopart2,obj);
	} else
	if (utype == 'bsmno') {
		maskReverseField__(dp_all_maskbsmno,obj);
	} else
	if (utype == 'bsmnopart1') {
		maskReverseField__(dp_all_maskbsmnopart1,obj);
	} else
	if (utype == 'bsmnopart2') {
		maskReverseField__(dp_all_maskbsmnopart2,obj);
	} else
	if (utype == 'bsmnopart3') {
		maskReverseField__(dp_all_maskbsmnopart3,obj);
	} else
	if (utype == 'telno') {
		if (obj.value.substring(0,2) == '02') {
			if (maskOffDigit__(obj.value).length == 9)
				maskReverseField__(dp_all_masktelno1,obj);
			else
				maskReverseField__(dp_all_masktelno2,obj);
		} else {
			if (maskOffDigit__(obj.value).length == 10)
				maskReverseField__(dp_all_masktelno3,obj);
			else
				maskReverseField__(dp_all_masktelno4,obj);
		}
	} else
	if (utype == 'telnopart2') {
		if (maskOffDigit__(obj.value).length == 3)
			maskReverseField__(dp_all_masktelnopart2_3,obj);
		else
			maskReverseField__(dp_all_masktelnopart2_4,obj);
	} else
	if (utype == 'telnopart3') {
		maskReverseField__(dp_all_masktelnopart3,obj);
	} else
	if (utype == 'ueng') {
		obj.value = obj.value.toUpperCase();
	} else
	if (utype == 'uengkor') {
		obj.value = obj.value.toUpperCase();
	} else
	if (utype == 'amount') {
		obj.value = obj.value.replace(/^0+/, '');
		if (obj.value == '') {
			obj.value = '0';
		}
		var decimals = (obj.value + ".").split(".");
		obj.value = decimals[0];
		maskField__("###,###,###,###,###,###,###,###,###,###,###",obj);
		if (false && obj.decimal) {
			var dmask = "";
			for (i = obj.decimal; i > 0; i --) { 
				dmask += "#";
			}
			var rslt = obj.value;
			obj.value = decimals[1];
			maskField__(dmask,obj);
			if (obj.value != '') {
				rslt += "." + obj.value;
			}
			obj.value = rslt;
		}
	} else
	if (utype == 'date') {
		maskReverseField__(dp_all_maskdate,obj);
	} else
	if (utype == 'dateyyyy') {
		maskReverseField__(dp_all_maskdateyyyy,obj);
	} else
	if (utype == 'time') {
		maskReverseField__(dp_all_masktime,obj);
	} else
	if (utype == 'timehm') {
		maskReverseField__(dp_all_masktimehm,obj);
	} else
	if (utype == 'mbrid') {
		maskReverseField__(dp_all_maskmbrid,obj);
	}
}

function onkeyupall__() {
	
	if (arguments.callee.caller != null) {
		
		return ;
	}

	var obj = event.srcElement;
	if (obj == null) {
		
		return ;
	}

	var utype = obj.utype;
	if (utype == null) utype = "";
	utype = utype.toLowerCase();

	var type = obj.type;
	if (type == null) type = "";
	type = type.toLowerCase();

	var tag = obj.tagName;
	if (tag == null) tag = "";
	tag = tag.toLowerCase();

	var kcode = event.keyCode;
	var controlled = true;

	if (kcode==229) {
		
		return;
	}

	switch (kcode) {
	case  36 : // home
		break;
	case  35 : // end
		break;
	case  27 : // esc
	//	obj.value = '';
	//	controlled = false;
		break;
	case  13 : // enter
		if (true) break;
		if (tag != 'textarea') {
			if (checkObj__(obj))
				tonextobj__(obj);
		} else controlled = false;
		break;
	case   9 : // tab
	//*	setTabIndexes() 를 이용하여 처리한다
		event.returnValue = false;
		break;
	case   16 : // shift + tab ??
	//*	setTabIndexes() 를 이용하여 처리한다
		event.returnValue = false;
		break;
	case   8 : // backspace
		controlled = false;
		break;
	case  33 : // pgup
		if (true) break;
		if (tag != 'textarea' && tag != 'select') {
			if (checkObj__(obj))
				tofirstobj__(obj);
		} else controlled = false;
		break;
	case  34 : // pgdn
		if (true) break;
		if (tag != 'textarea' && tag != 'select') {
			if (checkObj__(obj))
				tolastobj__(obj);
		} else controlled = false;
		break;
	case  38 : // up
		if (tag != 'textarea' && tag != 'select') {
			if (checkObj__(obj))
				toprevobj__(obj);
		} else controlled = false;
		break;
	case  40 : // dn
		if (tag != 'textarea' && tag != 'select') {
			if (checkObj__(obj))
				tonextobj__(obj);
		} else controlled = false;
		break;
	case  37 : // left
		if (true) break;
		if (tag != 'textarea') {
			if (checkObj__(obj))
				toprevobj__(obj);
		} else controlled = false;
		break;
	case  39 : // right
		if (true) break;
		if (tag != 'textarea') {
			if (checkObj__(obj))
				tonextobj__(obj);
		} else controlled = false;
		break;
	case  46 : // del
		break;
	case  45 : // ins
		controlled = false;
		break;
	case 144 : // num lock
		controlled = false;
		return ;
	case 107 : // numpad + (next field)
		if (checkObj__(obj))
			toprevobj__(obj);
		event.returnValue = false;
		break;
	default :
		controlled = false;
		break;
	}

	//* 입력할 때마다 뭔가 하고 싶을 때 처리		
//	//* numpad insert 키 누르면 000 을 추가해 줌
//	if (utype == 'amount') {
//		var mask = "###,###,###,###,###,###,###,###,###,###,###";
//		if (event.keyCode == 110 ) {
//			var iIndex;
//			iIndex=obj.value.indexOf('.');
//			if (iIndex!=-1) {
//				var tempStr;
//
//				tempStr = obj.value.replace(/[.]+/,'.').replace(/[.]/g,'000');
//				if (maskOnStr__(mask,maskOffDigit__(tempStr)).length<=obj.maxLength) obj.value=tempStr;
//				else {
//					tempStr = obj.value.replace(/[.]+/,'.').replace(/[.]/g,'00');
//					if (maskOnStr__(mask,maskOffDigit__(tempStr)).length<=obj.maxLength) obj.value=tempStr;
//					else {
//						tempStr = obj.value.replace(/[.]+/,'.').replace(/[.]/g,'0');
//						if (maskOnStr__(mask,maskOffDigit__(tempStr)).length<=obj.maxLength) obj.value=tempStr;
//					}
//				}
//			}
//		}
//	}

	if (!controlled) {
		maskObj__(obj);

		if (utype == 'rnno') {
			if (obj.value.length == dp_all_maskrnno2.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'rno') {
			if (obj.value.length == dp_all_maskrno.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'rnopart1') {
			if (obj.value.length == dp_all_maskrnopart1.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'rnopart2') {
			if (obj.value.length == dp_all_maskrnopart2.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'bsmno') {
			if (obj.value.length == dp_all_maskbsmno.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'bsmnopart1') {
			if (obj.value.length == dp_all_maskbsmnopart1.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'bsmnopart2') {
			if (obj.value.length == dp_all_maskbsmnopart2.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'bsmnopart3') {
			if (obj.value.length == dp_all_maskbsmnopart3.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'telno') {
			if (obj.value.length == dp_all_masktelno4.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'telnopart2') {
			if (obj.value.length == dp_all_masktelnopart2_4.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'telnopart3') {
			if (obj.value.length == dp_all_masktelnopart3.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'date') {
			if (obj.value.length == dp_all_maskdate.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'dateyyyy') {
			if (obj.value.length == dp_all_maskdateyyyy.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'time') {
			if (obj.value.length == dp_all_masktime.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'timehm') {
			if (obj.value.length == dp_all_masktimehm.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		} else
		if (utype == 'mbrid') {
			if (obj.value.length == dp_all_maskmbrid.length) {
				if (checkObj__(obj))
					tonextobj__(obj);
			}
		}
	}

	if (obj.dp_all_oldonkeyup != null) this.dp_all_oldonkeyup();
	
}

function onchangeall__() {
	
	if (arguments.callee.caller != null) {
		if ((arguments.callee.caller+"(").split("(")[0].indexOf('selectAll__') == -1 &&
			(arguments.callee.caller+"(").split("(")[0].indexOf('fireOnChange__') == -1) {
			
			return ;
		}
	}

	var obj = event.srcElement;
	if (obj == null) {
		
		return ;
	}

	obj.oldValue4Change = obj.value ;

	var utype = obj.utype;
	if (utype == null) utype = "";
	utype = utype.toLowerCase();

	var type = obj.type;
	if (type == null) type = "";
	type = type.toLowerCase();

	var tag = obj.tagName;
	if (tag == null) tag = "";
	tag = tag.toLowerCase();

	if (tag == 'select') {
	//* 미정
	//	if (checkObj__(obj))
	//		tonextobj__(obj);
	}

	maskObj__(obj);

	if (obj.dp_all_oldonchange != null) this.dp_all_oldonchange();
	
}

function onmouseoverall__() {
	var obj = event.srcElement;
	if (obj == null) {
		return ;
	}

	if (obj.tip != undefined && obj.tip != null && obj.tip.trim() != '') {
		try {
			Tip(obj.tip, OFFSETX, -17, BALLOON, true, ABOVE, true, BALLOONSTEMWIDTH, 17, BALLOONSTEMHEIGHT, 9);
		} catch (e) {}
	}
}

function onmouseoutall__() {
	var obj = event.srcElement;
	if (obj == null) {
		return ;
	}

	if (obj.tip != undefined && obj.tip != null && obj.tip.trim() != '') {
		try {
			UnTip();
		} catch (e) {}
	}
}

function setTipHandlers__(obj) {
	if (obj.tip != undefined && obj.tip != null && obj.tip.trim() != '') {
		if (typeof(obj.onmouseover) != 'undefined')
		if (obj.onmouseover != onmouseoverall__) {
			obj.dp_all_oldonmouseover = obj.onmouseover;
			obj.onmouseover = onmouseoverall__;
		}
		if (typeof(obj.onmouseout) != 'undefined')
		if (obj.onmouseout != onmouseoutall__) {
			obj.dp_all_oldonmouseout = obj.onmouseout;
			obj.onmouseout = onmouseoutall__;
		}
	}

	var childNodes = obj.childNodes;
	if (childNodes != null) {
		var lenChildNodes = childNodes.length;
		for (var c = 0; c < lenChildNodes; c ++) {
			setTipHandlers__(childNodes[c]);
		}
	}
}

var dp_all_requiredbackgroundcolor = '';
function setObjEventHandlers__(obj) {
	var utype;

	if (obj == null) return ;

	var tagName = obj.tagName;
	if (tagName == null) tagName = "";
	else tagName = tagName.toLowerCase();
	if (tagName == 'form') {
		if (typeof(obj.onsubmit) != 'undefined')
		if (obj.onsubmit != onsubmitall__) {
			obj.dp_all_oldonsubmit = obj.onsubmit;
			obj.onsubmit = onsubmitall__;
		}
		if (typeof(obj.submit) != 'undefined')
		if (obj.submit != submitall__) {
			obj.dp_all_oldsubmit = obj.submit;
			obj.submit = submitall__;
		}
		return ;
	}

	if (typeof(obj.onfocus) != 'undefined')
	if (obj.onfocus != onfocusall__) {
		obj.dp_all_oldonfocus = obj.onfocus;
		obj.onfocus = onfocusall__;
	}
	if (typeof(obj.onblur) != 'undefined')
	if (obj.onblur != onblurall__) {
		obj.dp_all_oldonblur = obj.onblur;
		obj.onblur = onblurall__;
	}
	/*
	if (typeof(obj.onclick) != 'undefined')
	if (obj.onclick != onclickall__) {
		obj.dp_all_oldonclick = obj.onclick;
		obj.onclick = onclickall__;
	}
	*/
	if (typeof(obj.onkeydown) != 'undefined')
	if (obj.onkeydown != onkeydownall__) {
		obj.dp_all_oldonkeydown = obj.onkeydown;
		obj.onkeydown = onkeydownall__;
	}
	if (typeof(obj.onkeypress) != 'undefined')
	if (obj.onkeypress != onkeypressall__) {
		obj.dp_all_oldonkeypress = obj.onkeypress;
		obj.onkeypress = onkeypressall__;
	}
	if (typeof(obj.onkeyup) != 'undefined')
	if (obj.onkeyup != onkeyupall__) {
		obj.dp_all_oldonkeyup = obj.onkeyup;
		obj.onkeyup = onkeyupall__;
	}
	if (typeof(obj.onchange) != 'undefined')
	if (obj.onchange != onchangeall__) {
		obj.dp_all_oldonchange = obj.onchange;
		obj.onchange = onchangeall__;
	}

	if (obj.required != null) {
		if (dp_all_requiredbackgroundcolor != '') {
			obj.style.backgroundColor = dp_all_requiredbackgroundcolor;
		}
	}

	utype = obj.utype;

	if (utype != null) {
		utype = utype.toLowerCase();

		if (utype == 'numeric') {
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'numericdash') {
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'rnno') {
			obj.size = 14;
			obj.maxLength = 14;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'rno') {
			obj.size = 14;
			obj.maxLength = 14;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'rnopart1') {
			obj.size = 6;
			obj.maxLength = 6;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'rnopart2') {
			obj.size = 7;
			obj.maxLength = 7;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'bsmno') {
			obj.size = 12;
			obj.maxLength = 12;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'bsmnopart1') {
			obj.size = 3;
			obj.maxLength = 3;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'bsmnopart2') {
			obj.size = 2;
			obj.maxLength = 2;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'bsmnopart3') {
			obj.size = 5;
			obj.maxLength = 5;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'telno') {
			obj.size=13;
			obj.maxLength = 14;
			obj.style.imeMode = 'disabled';
			obj.value = obj.value.replace(/[-]/g,'');
			if (obj.value.length == 12) {
				obj.value = ''
					+ obj.value.substring(0, 4).replace(/[^0-9]/g,'')
					+ obj.value.substring(4, 8).replace(/[^0-9]/g,'')
					+ obj.value.substring(8,12).replace(/[^0-9]/g,'')
					;
			} else obj.value = obj.value.replace(/[^0-9]/g,'');
		} else
		if (utype == 'telnopart2') {
			obj.size=4;
			obj.maxLength = 4;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'telnopart3') {
			obj.size=4;
			obj.maxLength = 4;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'date') {
			obj.size = 10;
			obj.maxLength = 10;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'dateyyyy') {
			obj.size = 4;
			obj.maxLength = 4;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'time') {
			obj.size = 8;
			obj.maxLength = 8;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'timehm') {
			obj.size = 5;
			obj.maxLength = 6; //* '00' 을 자동으로 붙이기 위해
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'amount') {
			obj.style.textAlign = 'right';
			obj.style.paddingRight = 2;
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'kor') {
			obj.style.imeMode = 'active';
		} else
		if (utype == 'eng') {
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'engkor') {
			obj.style.imeMode = 'inactive';
		} else
		if (utype == 'uengkor') {
			obj.style.imeMode = 'inactive';
		} else
		if (utype == 'ueng') {
			obj.style.imeMode = 'disabled';
		} else
		if (utype == 'mbrid') {
			obj.size = 14;
			obj.maxLength = 14;
			obj.style.imeMode = 'disabled';
		}

		maskObj__(obj);
	}
}


function setEventHandlers() {
	var i,ii,j,jj;
	var obj;
	var classname;
	
	if ("" == getObjectSequences()) {
		makeObjectSequence();
	}

	ii = document.all.length;
	for (i=0;i < ii;i++) {
		obj = document.all[i];

		classname = obj.className;
		if (classname == null) continue;
		if (classname == "") continue;
		if (('^'+dp_all_tabclass+'^').indexOf('^'+classname+':') != -1 ||
			('^'+dp_all_tabclass+'^').indexOf(':'+classname+'^') != -1
			) {
			if (('/'+dp_all_tabs+'/').indexOf('/'+obj.id+'@'+classname+'/') == -1) {
				dp_all_tabs += obj.id+'@'+classname+'/';
			}
		}
	}

	ii = document.styleSheets.length;
	for (i = 0; i < ii; i++ ) {
		jj = document.styleSheets[i].rules.length
		for (j = 0; j < jj; j++ ) {
			if (document.styleSheets[i].rules[j].selectorText.toLowerCase() == '.required') {
				dp_all_requiredbackgroundcolor = document.styleSheets[i].rules[j].style.backgroundColor;
				break;
			}
		}
		if (dp_all_requiredbackgroundcolor != '') break;
	}

	ii = document.forms.length;
	for (i=0;i < ii;i++) {
		jj = document.forms[i].elements.length;
		setObjEventHandlers__(document.forms[i]);
		for (j=0;j < jj;j++) {
			obj = document.forms[i].elements[j];
			setObjEventHandlers__(obj);
		}
	}
	
	setTipHandlers__(document);
}


function setTabIndexes() {
	var sequences = (dp_all_objectSequences + '"^').split('^')
	var i,ii,j,jj;
	var sequence;
	var tabIndex = 1000;

	ii = sequences.length;
	for (i=0;i < ii;i++) {
		if (sequences[i] == '') continue;
		sequence = (sequences[i]+'::').split(':');
		jj = sequence.length;

		for (j=0;j < jj;j++) {
			if (sequence[j] == '') continue;
			if (nameToObj__(sequence[j]) != null) {
				nameToObj__(sequence[j]).tabIndex = tabIndex;
				tabIndex += 10;
			}
		}
	}
}

var dp_all_javascript = 'javascript';
function checkObj__(obj) {
	if (obj == null) return false;

	if ((typeof(obj.disabled) != 'undefined' && obj.disabled == true) ||
		(typeof(obj.readOnly) != 'undefined' && obj.readOnly == true))
		return true;

	tag = obj.tagName;
	if (tag == null) tag = "";
	tag = tag.toLowerCase();

	if (tag == 'textarea') {
		if (obj.maxlength != null) {
			var len = bytelength__(obj.value);
			var maxLen = obj.maxlength;
			var delLen = len - maxLen;
			if (len > maxLen) {
				alert("이 항목은 영문 " + maxLen + "자 (한글은 " + Math.floor(maxLen/2) + "자) 까지만 입력해야 합니다 \n"
					+  "입력 내용에서 영문 " + delLen + "자 (한글은 " + Math.ceil(delLen/2) + "자)를 제거하시기 바랍니다");
				selectAll__(obj);
				return false;
			}
		}
	}

	utype = obj.utype;

	type = obj.type;
	if (type == null) type = "";
	type = type.toLowerCase();

	var acceptinvalid = (obj.acceptinvalid == null) ? false : true;

	if (utype != null && obj.value != '') {
		utype = utype.toLowerCase();

		v = maskOffDigit__(obj.value);

		if (utype == 'rnno') {
			if (v.length != 10 && v.length != 13) {
				alert('올바른 주민/사업자번호가 아닙니다.');
				selectAll__(obj);
				return false;
			} else
			if (v.length == 10) {
				if (typeof(validateBsmNo) != 'undefined') {
					if (!validateBsmNo(v)) {
						alert('올바른 사업자번호가 아닙니다.');
						selectAll__(obj);
						return false;
					}
				}
			} else {
				if (!acceptinvalid) {
					if (typeof(validateRno) != 'undefined') {
						if (!validateRno(v)) {
							alert('올바른 주민번호가 아닙니다.');
							selectAll__(obj);
							return false;
						}
					}
				}
			}
		} else
		if (utype == 'rno') {
			if (v.length != 13) {
				alert('올바른 주민번호가 아닙니다.');
				selectAll__(obj);
				return false;
			} else {
				if (!acceptinvalid) {
					if (typeof(validateRno) != 'undefined') {
						if (!validateRno(v)) {
							alert('올바른 주민번호가 아닙니다.');
							selectAll__(obj);
							return false;
						}
					}
				}
			}
		} else
		if (utype == 'rnopart1') {
			if (v.length != 6) {
				alert('올바른 주민번호가 아닙니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'rnopart2') {
			if (v.length != 7) {
				alert('올바른 주민번호가 아닙니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'bsmno') {
			if (v.length != 10) {
				alert('올바른 사업자번호가 아닙니다.');
				selectAll__(obj);
				return false;
			} else {
				if (typeof(validateBsmNo) != 'undefined') {
					if (!validateBsmNo(v)) {
						alert('올바른 사업자번호가 아닙니다.');
						selectAll__(obj);
						return false;
					}
				}
			}
		} else
		if (utype == 'bsmnopart1') {
			if (v.length != 3) {
				alert('올바른 사업자번호가 아닙니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'bsmnopart2') {
			if (v.length != 2) {
				alert('올바른 사업자번호가 아닙니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'bsmnopart3') {
			if (v.length != 5) {
				alert('올바른 사업자번호가 아닙니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'telno') {
			if (v.length != 9 && v.length != 10 && v.length != 11) {
				alert('전화번호는 9~11자리입니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'telnopart2') {
			if (v.length != 3 && v.length != 4) {
				alert('전화번호는 3~4자리입니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'telnopart3') {
			if (v.length != 4) {
				alert('전화번호는 4자리입니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'date') {
			if (v.length != 8 || v != validateDate__(v)) {
				alert('올바른 날짜가 아닙니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'dateyyyy') {
			if (v.length != 4 || v != validateYear__(v)) {
				alert('올바른 년도가 아닙니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'time') {
			if (v.length != 6 || v != validateTime__(v)) {
				alert('올바른 시간이 아닙니다.');
				selectAll__(obj);
				return false;
			}
		} else
		if (utype == 'timehm') {
			if (v.length != 4 || v != validateTime__(v,true)) {
				alert('올바른 시간이 아닙니다.');
				selectAll__(obj);
				return false;
			}
		}
	}

	return true;
}


function checkRequired(formname) {
	var i,ii,j,jj;
	var obj;
	var type;
	var utype;
	var index;
	var tag;

	if (formname != null && formname.name != null) formname = formname.name;

	ii = document.forms.length;
	for (i=0;i < ii;i++) {
		if (formname != null) {
			if (formname != document.forms[i].name) continue;
		}

		jj = document.forms[i].elements.length;
		for (j=0;j < jj;j++) {
			obj = document.forms[i].elements[j];

			utype = obj.utype;

			type = obj.type;
			if (type == null) type = "";
			type = type.toLowerCase();

			if (obj.required != null && (
				(type != 'checkbox' && (obj.value == '' || obj.value == obj.emptyvalue)) ||
				(type == 'checkbox' && obj.checked == false)
				)
				) {
				if (''+obj.required != '') {
					index = obj.required.indexOf(dp_all_javascript);
					if (index != -1) eval(obj.required);
					else alert(obj.required);

					selectAll__(obj);

					return false;
				}
			}

			if (!checkObj__(obj)) return false;

			maskObj__(obj);
		}
	}

	return true;
}


function prepareSubmit(formname) {
	var i,ii,j,jj;
	var obj,utype;

	if (formname != null && formname.name != null) formname = formname.name;

	ii = document.forms.length;
	for (i=0;i < ii;i++) {
		if (formname != null) {
			if (formname != document.forms[i].name) continue;
		}

		jj = document.forms[i].elements.length;
		for (j=0;j < jj;j++) {
			obj = document.forms[i].elements[j];

			utype = obj.utype;

			if (utype == 'numeric' ||
				utype == 'rnno' ||
				utype == 'rno' ||
				utype == 'rnopart1' ||
				utype == 'rnopart2' ||
				utype == 'bsmno' ||
				utype == 'bsmnopart1' ||
				utype == 'bsmnopart2' ||
				utype == 'bsmnopart3' ||
				utype == 'date' ||
				utype == 'dateyyyy' ||
				utype == 'timehm' ||
				utype == 'time') {
				obj.value = maskOffDigit__(obj.value);
				if (utype == 'timehm') {
					if (obj.value.length == 4) {
						obj.value = obj.value+'00';
					}
				}
			} else
			if (utype == 'amount') {
				obj.value = maskOffAmount__(obj.value);
			} else
			if (utype == 'telno') {
				;
			}
		}
	}
}


function cancelSubmit(formname) {
	var i,ii,j,jj;
	var obj,utype;

	if (formname != null && formname.name != null) formname = formname.name;

	ii = document.forms.length;
	for (i=0;i < ii;i++) {
		if (formname != null) {
			if (formname != document.forms[i].name) continue;
		}

		jj = document.forms[i].elements.length;
		for (j=0;j < jj;j++) {
			obj = document.forms[i].elements[j];

			utype = obj.utype;

			if (utype != null) {
				maskObj__(obj);
			}
		}
	}
}

function setProperty(objName,objProperty,value) {
	var obj;

	if (typeof(objName).toLowerCase() == 'string')
		obj = nameToObj__(objName);
	else
		obj = objName;

	if (obj == null) return ;

//	if (eval('obj.'+objProperty+'') == null) return ;

	eval('obj.'+objProperty+' = \''+value+'\'');
}

