<!--	
function txtClear(){
   		var getobj = document.getElementsByTagName("input"); 
   		for(var i=0; i<getobj.length; i++){ 			    		
					if(getobj[i].type.toLowerCase() == "text" ||  getobj[i].type.toLowerCase() == "hidden") {
						getobj[i].value = ""; 
					}
	     }    	     
   }

   function txtDefaultSet(){
   		var getobj = document.getElementsByTagName("input"); 
   		for(var i=0; i<getobj.length; i++){ 			    		
					if(getobj[i].type.toLowerCase() == "text") {
						getobj[i].value = "1"; 
					}
	     }    	     
   }
   
function autoMoveNextBox(thisBox,nextBox){
  	//주민번호 입력칸에서 앞의 텍스트박스 다 입력받고 난뒤 뒤의 박스로 자동으로 넘어가는 함수
  	//텍스트박스의 키다운 이벤트에 걸어주면 됨.
	//현재 박스 값이 6자리이면 다음박스으로 포인트넘겨줌.
  	//thisBox = 앞의 박스	, nextBox = 뒤 박스
  	if(thisBox.value.length >= 6){
  		nextBox.focus();
	}
}//end func


function winZipCode(src,zipID,addrID){
	//우편번호를 찾을 수 있는 새창을 띄운다.
	//src : zipcode.php 의 경로.. 새창에띄울 문서경로..
	//txtZipcode  txtAddr 입력값을 넣어줄 텍스트박스의 아이디값..
	//사용 예 : <img src="/img/member/btnZipcode.gif" onClick="javascript:winZipCode('/lib/ZipCode.php','txtZipCode','txtAddr1');" >
	
	if(this.cntWinZip==null){ //값이 설정되어있는지 검사
		this.cntWinZip=0;
	}else{
		this.cntWinZip++;
	}
	
	var winName = 'winZip'+this.cntWinZip;
	
	if(this.arrZipCodeID==null){ //값이 설정되어있는지 검사
		this.arrZipCodeID=new Array();
	}
	this.arrZipCodeID[winName] = zipID;
	
	
	if(this.arrAddrID==null){ //값이 설정되어있는지 검사
		this.arrAddrID=new Array();
	}
	this.arrAddrID[winName] = addrID;

	
	//새창을 띄움
	window.open(src,winName,'width=500,height=400, titlebar=no, toolbar=no, menubar=no, statusbar=no, scrollbars=yes, status=no');
	
	//현재 문서에 값 입력해주는 함수를 저장시켜놓음.
	//나중에 우편번호 문서에서 입력해줄 값을 넘겨줄 함수.
	if(this.zipCodeInput==null){ //함수가 설정되어있는지 검사
		this.zipCodeInput= zipCodeInput();
	}
	
}// end func winZipCode

function zipCodeInput(name,zipcode,address){
	//name : 우편번호 윈도우창의 이름.. 그 이름값으로 배열에 텍스트박스 아이디가 등록되어있음. 
	//zipcode,addr 넣어줄 값
	var zip = this.document.getElementById(this.arrZipCodeID[name]);
	var addr = this.document.getElementById(this.arrAddrID[name]);
	zip.value=zipcode;
	addr.value=address;
}// end func


function onlyEditableNumber(obj){
	//숫자만 입력을 받는다.
	//obj에는 텍스트박스를 넣어주면 된다.
	var str = obj.value;
	str = new String(str);
	var Re = /[^0-9]/g;  
	str = str.replace(Re,''); 
	obj.value = str;
}

//by lsc start Mon Nov 02 13:46:57 KST 2009
	function selectList(sltBox,txtBox){
		//이메일 /은행 셀렉트박스 값 바뀌는거에따라 텍스트 박스에 같은 값 넘겨줌.
		//직접입력선택되면, 텍스트박스를 화면에 보여줌
		//sltBox : 셀렉트 박스.. 셀렉트 박스의 현재 선택값이 "" 공백이면 txtBox를 안보이게함.
		//txtBox : 텍스트 박스..
		if(sltBox.value == ""){//직접입력선택인경우
			txtBox.style.visibility = "visible";			
		}else{
			txtBox.style.visibility = "hidden";
		}
		txtBox.value = sltBox.value;
	}
//by lsc End Mon Nov 02 13:46:57 KST 2009

function isRadioSelect(rdo){
	//라디오버튼이 선택되었는지 검사해줌.
	//선택된거면.. 트루 아니면 펄스
	var r = false; //리턴값
	
	
	if(rdo.length == null){//1개인 경우 렝스가 없어서.. 
		if(rdo.checked){
			r = true;
		}//end if
		
	}else{
		//여러개인경우..
		for (var i=0; i<rdo.length; i++) {
			if (rdo[i].checked){
				r = true;
			}//end if
	  }//end for
	  
	}//end if
		
	
	return r;
}


/*
changeNextSelectBox , changeNSB_data
앞의 셀렉박스를 선택했을때 뒤의 셀렉박스 리스트를 바꿔주는.. 함수..
* 기본적으로 선택값이 공백이면.. 기본옵션노드만 추가하고 나감.

사용방법 :
var code2Data = new changeNSB_data();
code2Data.addOption("a1","발루","텍스트");
code2Data.addOption("a1","발루1","텍스트1");
code2Data.addOption("a1","발루2","텍스트2");
code2Data.addOption("a1","발루3","텍스트3");

var baseOpt = 옵션노드..;
<select name="Ccode1" id="sltCcode1" onchange="changeNextSelectBox('sltCcode1','sltCcode2',code2Data,baseOpt);">
	<option value="a1">대분류 전체</option>
</select>
*/
function changeNextSelectBox(sltID1,sltID2,data){
/*
changeNextSelectBox
현재 셀렉트박스의 선택값이 변경되면.. 다음 셀렉트박스의 리스트를 바꿔주는 함수..
sltID1 : 선택되는 현재 셀렉박스 아이디
sltID2 : 변경될 셀렉박스 아이디
data :changeNSB_data
*/
	var slt1 = document.getElementById(sltID1); //현재 셀렉
	var slt2 = document.getElementById(sltID2); //변경 셀렉

	var selectKey = slt1.value;//선택된키값

	//변경셀렉의 모든 값 제거..
	var opts = slt2.options;
	var opts_cnt = opts.length;
		
	for(var i = 0; i<opts_cnt;i++){
		slt2.remove(0); //ㅡㅡ;; 이거.. 리무브할때.. i로 하면안됨.. 지울때마다 인덱스 값이 바껴서 .. 0으로 계속지워줘야 다 지워짐..ㅡㅡ
	}//end for


	//기본옵션노드 가 설정되어있으면 맨위에 추가함.
	if(data.getBaseOption() != null) opts[opts.length]=data.getBaseOption();

	//셀렉키가 빈값이면 옵션노드 추가 없음.
	if(selectKey != ""){
		
		//변경셀렉에 옵션노드 추가
		var arrOpts = data.getOptions(selectKey);//추가될 옵션노드배열
		if(arrOpts != null){ //추가될 옵션노드가 존재해야 추가함.
			for(var i = 0; i<arrOpts.length;i++){
				
				opts[opts.length]=arrOpts[i];
			}//end for
		}//end if 추가될 옵션노듲 ㅗㄴ재
	}//end if 셀렉키가 빈값인지
	
}//end func

function changeNSB_data(){
	//changeNextSelectBox 에 넘겨줄.. 객체함수..
	//객체안에.. 배열을 갖고있고,
	//2차원 배열이고, 1차원에는 현재셀렉박스에서 선택한 키값이, 2차원에는 숫자를 키값으로 옵션노드들이 등록됨..
	//addOption : 옵션을 추가해주는 메소드
	//getOptions : 해당 현재셀렉 키값으로 옵션배열을 반환함.
	//setBaseOption : 기본 옵션노드를 등록해줌.
	//getBaseOption : 기본 옵션노드를 반환해줌.

	this.arrData = new Array(); //객체 전역변수.. 옵션노드가 등록될 배열..
	this.baseOption = null;//기본 옵션 노드..
	
	/*addOption 메소드*/
	this.addOption = function(selectKey,value,text){
		// selectKey : 현재 셀렉박스의 키값..
		// value : 옵션노드의 발루값

		if(this.arrData[selectKey] == null)  this.arrData[selectKey] = new Array();//현재셀렉박스 키값으로 ..배열이 생성되어있지않으면 생성..
	
		/*옵션노드 생성*/
		var opt_node = createOptionNode(value,text);
		/*옵션노드 생성 끝*/

		var tmpLength = this.arrData[selectKey].length//옵션노드가 추가될 배열번호 구함
		this.arrData[selectKey][tmpLength] = opt_node;//옵션노드.. 전체배열에 추가

	}//end func anomy
	/*addOption 메소드 끝*/
	
	/*getOptions 메소드*/
	this.getOptions = function(selectKey){
		//selectKey : 넘겨줄 옵션배열의 키값 
		return this.arrData[selectKey];
	}
	/*getOptions 메소드 끝*/
	
	/*setBaseOption*/
	this.setBaseOption = function(value,text){
		this.baseOption = createOptionNode(value,text);
	}
	/*setBaseOption 끝*/
	
	/*getBaseOption*/
	this.getBaseOption = function(value,text){
		return this.baseOption;
	}
	/*getBaseOption 끝*/

}//end func 

function createOptionNode(value,text){
	//주어진값으로 옵션노드를 생산함. 생산한거 리턴해줌
	var opt_node = new Option(text,value);
	return opt_node;
}// end func

/*
문서내의 모든 체크박스 선택...
*/
function chkAll(all,chks){
	//체크박스 모두 선택함.
	//all : 대상 체크박스말고, 전체선택을 위해서 누르는 체크박스
	//chks 대상체크박스들.. 체크박스 이름을 aaa[] 이런식으로 배열로 지어야함.그리고 넘길때는 aaa 자체를 넘겨야함.
	
	//chks 가  존재하지 않을 수도 있음.
	if(chks == null) return;
	
	if(chks.length > 1){
		for(var i = 0; i < chks.length; i++){
			chks[i].checked = all.checked;
		}
	}else{
		chks.checked = all.checked;
	}//end if
}//end func

/// $ 함수.. 아이디로 개체 얻어올때 계속 같은부분 쓰기 너무불편해서 만든함수..
/// 다른곳에서 이렇게 쓰길래 만듬.
function $(id){
	return document.getElementById(id);
}//end func
function $t(elem,tagname){ 
	return elem.getElementsByTagName(tagname);
}//end func
function $n(name){
	return document.getElementsByName(name);
}//end func
function $c(str){ //create 함수.. 
	return document.createElement(str);
}//end func
function $cTxt(str){ //create 텍스트노드 함수.. 
	return document.createTextNode(str);
}//end func
function $move(url){// 이동함수
	document.location=url;
}//end func
function $cH(name,value){ //히든객체를 하나 생성해서돌려준다.
	var  elem = $c("input");
	elem.type = "hidden";
	elem.name = name;
	elem.value = value;
	elem.id = name;
	return elem;
}//end func


// 게시판 형태의 tr에 마우스 오버되었을때 배경색 바꿔주는.. 기능.
function eBoardMouseOver(tr){
	//tr : 마우스 오버된 tr 자기자신.을 보내면됨..
	var clsName = tr.className;
	
	clsName += "Over"; //기본 클래스 네임 뒤에 Over를 붙인걸로 변경해줌.
	tr.className = clsName;
}
function eBoardMouseOut(tr){
	//tr : 마우스 아웃 tr 자기자신.을 보내면됨..
	var clsName = tr.className;
	//클래스 네임 뒤에 Over를 뗀로 변경해줌.
	clsName = clsName.replace(/Over/g, "");
	tr.className = clsName;
}



function popupSetCookie( name, value, expiredays ) {  //팝업 쿠키 설정 - 오늘만 보기..
	var todayDate = new Date(); 
	todayDate.setDate( todayDate.getDate() + expiredays ); 
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
}//end func

function popupCloseWin(cookieName,checked){  //새창 팝업 종료할때 처리..
	//cookieName 쿠키네임..,checked 체크박스에 체크되었느지..
	
	if ( checked ) {
		popupSetCookie( cookieName, "done" , 1);// 1=하루동안 공지 창을 열지 않음 
	}
	self.close(); 
} //end func

function popupCloseLayer(cookieName,checked,div){  //레이어 팝업 종료할때 처리..
	//cookieName 쿠키네임.. div : 레이어팝업 div 개체..
	if ( checked ) {
		popupSetCookie( cookieName, "done" , 1);// 1=하루동안 공지 창을 열지 않음 
	}
	div.style.display="none"; 
} //end func

function setCookie( name, value, expiredays ) {  //쿠키저장한다.
	var todayDate = new Date(); 
	todayDate.setDate( todayDate.getDate() + expiredays ); 
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
}//end func

function  getCookieVal(offset) { 
	var  endstr  =  document.cookie.indexOf  (";",  offset); 
	if  (endstr  ==  -1) {
		endstr  =  document.cookie.length; 
	}
	return  unescape(document.cookie.substring(offset,  endstr)); 
} //end func

function  GetCookie  (name)  {  //쿠키이름으로 쿠키값을 가져온다.
	
	var  arg  =  name  +  "="; 
	var  alen  =  arg.length; 
	var  clen  =  document.cookie.length;  
	var  i  =  0;  
	while  (i  <  clen)  {  //while  open  
		var  j  =  i  +  alen;  
		
		if  (document.cookie.substring(i,  j)  ==  arg) {
			
			return  getCookieVal  (j);  
		}
		i  =  document.cookie.indexOf(" ",  i)  +  1;  
		
		if  (i  ==  0) {
			break;  
		}
	}//while  close  
	return  null;  
} //end func

function moveLayerPopup(div){ //이동 레이어 팝업을.. 이동시킨다. 마우스 무브 이벤트에 적용될 함수
	//div : 해당 레이어..개체
	if(! div.isMove){ //움직이는게 아니라면 나가기
		return;
	}//end if
	
	//처음 클릭됐을때보다 얼마나 이동했는지 구하기
	var moveX = event.clientX - div.clickX ;
	var moveY = event.clientY - div.clickY;
	
	
	
	//div.clickTop 은 px 라는 단어가 붙어있어서.. 빼야한다.
	div.clickTop = div.clickTop.replace(/px$/i,""); //대소문자구분없이 맨끝에 px 빼기..
	div.clickLeft = div.clickLeft.replace(/px$/i,""); //대소문자구분없이 맨끝에 px 빼기..
	
	//처음클릭되었을때 top , left 에 이동한만큼 더해준다.
	div.style.top = ( parseInt(div.clickTop) + parseInt(moveY) )+ "px";
	div.style.left = ( parseInt(div.clickLeft) + parseInt(moveX) ) + "px";
	
	//div.innerHTML=moveX+"/"+moveY+"<br>"+div.clickTop;
	
}//end func


function viewTabDisplay(obj,tabName){ //탭 디스플레이에서.. 클릭되거나 마우스 오버되었을때 , 탭 내용바꿔주는 함수..
	// obj : 탭진열 에 대한 정보가 담겨있는객체
	// tabName : 진열을 해줄 탭 이름...
	
	
	var arrTab = obj.tab;
	/// 등록된 탭들 전부 display:none 처리하고..
	for(var i in arrTab){
		
		arrTab[i].style.display="none";
	}//end for
	
	//선택된 탭 디스플레이 시키기..
	arrTab[tabName].style.display="";
	
	
}//end func


function createTabDisplay(){ //탭 진열에서 사용될 정보객체를 생성해서 돌려준다.
	
	var obj = new Object();
	obj.tab = new Array(); //이  배열안에 탭내용에 해당하는 div 객체들이 들어가게 된다.
	return obj; //
	
}//end func 


function getCommaNumber(n) { //주어진 숫자를 천단위 컴마찍힌걸로.. 바꿔줌.. 맨앞에 +- 표시 상관없고 소수점 들어간것도 상관없음..
  var reg = /(^[+-]?\d+)(\d{3})/;   // 정규식
  n += '';                          // 숫자를 문자열로 변환

  while (reg.test(n)){
    n = n.replace(reg, '$1' + ',' + '$2');
  }
  return n ;
}//end func



//주민등록번호 체크
function bsshChek(str_jumin1,str_jumin2)
{
	var resno = str_jumin1 + str_jumin2;
	var fmt = /^\d{6}[1234]\d{6}$/;
	if (!fmt.test(resno))
		return false;

	birthYear = parseInt(resno.charAt(6)) <= 2 ? "19" : "20";	//1900년대 : 1,2	2000년대 : 3,4
	birthYear += resno.substr(0, 2);
	birthMonth = resno.substr(2, 2) - 1;
	birthDate = resno.substr(4, 2);
	birth = new Date(birthYear, birthMonth, birthDate);
	if (birth.getFullYear() % 100 != resno.substr(0, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate)
		return false;

	var sum = 0;
	for (i = 0; i < 12; i++) sum += parseInt(resno.charAt(i)) * (i%8 + 2);
	if ((11 - (sum % 11)) % 10 != resno.charAt(12))
		return false;

	return true;
}//end func

//이메일체크
function isEmail(str)
{
	var supported = 0;
	if (window.RegExp)
	{
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}
	if (!supported) return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(str) && r2.test(str));
}// end func


function checkRegNo(checkType , strRegNo1, strRegNo2){//주민번호를 올바른지 검증한다.
	//checkType : 검증 방식.. 0: 검증없음, 1 : 스크립트검증, 3 : 사이렌검증
	//strRegNo1 , strRegNo2 : 주민번호
	//리턴값은 올바르면 트루, 올바르지 않으면 펄스리턴.
	
	if(checkType == 0){ //검증안함 무조건 ok
		return true;
	}else if(checkType == 1){ /// 스크립트 검증
		return bsshChek(strRegNo1,strRegNo2);
	}else if(checkType == 2){ //사이렌
		return true ; //이미 검증된 상태이므로 패스
	}//end if
	 
}//end func




//문자열길이.. 한글2바이트, 영문, 아스키 1바이트
 function getStringLength (str)
  {
   var strLength = 0;

   for (i = 0; i < str.length; i++)
   {
    var ch = str.substr(i,1);

     strLength = strLength + chr_byte(ch);

   }
   return strLength;
  }//end func

//문자열길이.. 한글2바이트, 영문, 아스키 1바이트 끝

//문자열 바이트 단위로 자르기
 
function cutStr(str,limit){
	var strLength = 0;

	
	 for (i = 0; i < str.length; i++)
   {
    var ch = str.substr(i,1);

     strLength = strLength + chr_byte(ch);
     if(strLength > limit ){//지정한 길이보다 커졌으면 리턴함.. 
     
     	
     	return str.substring(0,i); //마지막문자 빼고 자른다
     }

   }

	return str;
}
function chr_byte(chr){
	if(escape(chr).length > 4)
		return 2;
	else
		return 1;
}
 

function trim (strSource) {
    var re = /^\s+|\s+$/g;
    return strSource.replace(re, '');
}

//문자열 바이트 단위로 자르기 끝


function SetDate(Day,txtDateS,txtDateE){ //날짜를 텍스트박스에 자동으로 셑팅해주는 함수
	
	//오늘날짜 구하기
	var now = new Date();	
    var year= now.getFullYear();
    var mon = (now.getMonth()+1)>9 ? ''+(now.getMonth()+1) : '0'+(now.getMonth()+1);
    var day = now.getDate()>9 ? ''+now.getDate() : '0'+now.getDate();
    var DateE=year+mon+day ;    
	
    //Date값에 따라서 오늘 날짜 - Date 하기 
	var yesterday = new Date(now-(24*60*60*1000*Day));
	var year1= yesterday.getFullYear();
    var mon1= (yesterday.getMonth()+1)>9 ? ''+(yesterday.getMonth()+1) : '0'+(yesterday.getMonth()+1);
    var day1 = yesterday.getDate()>9 ? ''+yesterday.getDate() : '0'+yesterday.getDate();    
    var DateS=year1+mon1+day1;
    
    
    //Day가 0이면 전체
    if(Day == 0){
    		DateS='';
    		DateE='';
    }
	//해당 값을 객체에 셑팅하기
	document.getElementById(txtDateS).value=DateS;
	document.getElementById(txtDateE).value=DateE;
}









//-->  
