
// 날짜 계산 함수
function subDate(diff_day, format){
	var now = new Date();
	var new_dt = new Date(Date.parse(now) + diff_day * 1000 * 60 * 60 * 24)
	var yyyy = new_dt.getFullYear();
	var mm = new_dt.getMonth()+1;
	var dd = new_dt.getDate();
	if(mm < 10) mm = '0'+mm;
	if(dd < 10) dd = '0'+dd;
	var str = yyyy+format+mm+format+dd;
	return str;		
}



// 로딩이미지 관련
function lodinStart(sec){
	document.getElementById('loding').style.display = '';
	setTimeout("lodinStop()", sec*1000);
}
function lodinStop(){
	if(lodingStopChk) document.getElementById('loding').style.display = 'none';
}

 // XML을 XML로 취급하기  
/*  
//URL = "http://gsbc.intoin.or.kr/app/rss_fcompany.ashx";
http://cafe.naver.com/kosjava.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=338
http://www.captain.at/howto-ajax-xml-javascript.php
http://narei79.blog.me/150087879738
http://netmenos.tistory.com/27

* XML 문서를 처리하기 위한 DOM 요소의 속성  
	- childNodes : 현재 요소의 자식을 배열로 표현한다.  
	- firstChild : 현재 요소의 첫번째 자식이다.  
	- lastChild : 현재 요소의 마지막 자식이다.  
	- nextSibling : 현재 요소의 바로 다음의 요소를 의미한다.  
	- nodeValue : 해당 요소의 값을 읽고 쓸 수 있는 속성을 정의한다.  
	- parentNode : 해당 요소의 부모노드이다.  

* XML 도큐먼트를 다루는 유용한 DOM 요소의 메소드  
	- getElementById(id) : 도큐먼트에서 특정한 id 속성값을 가지고 있는 요소를 반환한다.  
	- getElementsByTagName(name) : 특정한 태그 이름을 가지고 있는 자식 요소를 구성된 배열을 리턴한다.  
	- hasChildNodes() : 해당 요소가 자식 요소를 포함하고있는지를 나타내는 boolean 값을 리턴한다.  
	- getAttribute(name) : 특정한 name 에 해당하는 요소의 속성값을 리턴한다.  
*/ 

// XML 데이터 파싱
function createXml(str){
	var xmlDoc;
	if(window.DOMParser){
		var parser = new DOMParser();
		xmlDoc = parser.parseFromString(str, 'text/xml');
	}else{
		try {
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		} catch(e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		xmlDoc.async = false; 
		xmlDoc.loadXML(str); 
	}
	return xmlDoc;
}

// Ajax 
function getHttprequest(URL) {
	var xmlHttp = null;
	if(window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else {
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) { 
				return false; 
			}
		}
	}
	xmlHttp.open('GET', URL, false);
	/*
	xmlHttp.onreadystatechange = function() {
		alert(mlHttp.readyState+'/'+xmlHttp.status+'/'+xmlHttp.statusText);
		if(xmlHttp.readyState==4 && xmlHttp.status == 200 && xmlHttp.statusText=='OK') {
			// 불필요?
		}
	}
	*/

	try{
		xmlHttp.send('');
	}catch(e){
		return false;
	}

	//alert('==>'+xmlHttp.getAllResponseHeader());

	return xmlHttp.responseText;
}


// 로그아웃
function logout(){
	if(confirm('로그아웃 하시겠습니까?')){
		location.href = "/login/log_out.asp";
	}
}

// 포커스이동
function focus_move(obj1, obj2, num){
	if(obj1.value.length == num) {
		obj2.focus();
	}
}

// 주민번호 체크
function juminCheck(jumin){
   for(var i=0; i<jumin.length; i++) {
       if(isNaN(parseInt(jumin.charAt(i)))){
			return false;
       }
    }
	var total = 0;
	for(var i = 0; i < jumin.length; i++){
		if(i <= 7){
			total += parseInt(jumin.charAt(i)) * (i + 2);
		}else if(i >= 8 && i <=11){
			total += parseInt(jumin.charAt(i)) * (i - 6);
		}
	}
	var check = (11 - (total % 11)) % 10;
	if(parseInt(check) == parseInt(jumin.charAt(12))){
		return true;
	}else{
		return false;
	}
}

// 체크박스 전체를 선택한다. 1
function checkAll(frm, name) {
	if (frm.checkboxAll.checked == true) {
		for(i = 0; i < frm.elements.length; ++i) {
			if(frm.elements[i].name == name) frm.elements[i].checked = true;
		}
	}else{
		for(i = 0; i < frm.elements.length; ++i) {
			if(frm.elements[i].name == name) frm.elements[i].checked = false;
		}
	}
}



// 체크박스 전체를 선택한다. 2
function checkAll(frm) {
	if (frm.checkboxAll.checked == true) {
		for (var i=0; i<frm.length;i++) {
			if (frm[i].type == "checkbox" && frm[i].checked == false) {
				frm[i].checked = true;
			}
		}
	}else{
		for (var i=0; i<frm.length;i++) {
			if (frm[i].type == "checkbox" && frm[i].checked == true) {
				frm[i].checked = false;
			}
		}
	}
}

// 체크박스의 선택한 갯수를 가져온다
function get_chk_cnt(form, name){
	var chk_cnt = 0;
	for(i = 0; i < form.elements.length; ++i) {
		if(form.elements[i].name == name && form.elements[i].checked == true) {
			chk_cnt ++;
		}
	}
	return chk_cnt;
}

// 체크박스의 선택한 갯수를 가져온다 2
function isChecked(list) {
    if (list == null) return 0;
    var result = 0;
    var cnt = 0;
    if (!list.length) cnt = 1;
    else cnt = list.length;	
    for (var i = 0; i < cnt; i++) {
    	if (!list.length){
	        if (list.checked) {
	            result++;
	        }
    	}else{
	        if (list[i].checked) {
	            result++;
	        }
	    }
    }	
    return result;
    
}

// 숫자 체크
function isNumer(s){
	var isNum = /^[\d]+$/;
	if( s.search(isNum) ) return false;
	return true;
}

// 숫자 체크, 사용: onKeyup="isNumerPress(this)"
function isNumerPress(obj){
	var isNum = /^[\d]+$/;
	if(obj.value && !isNum.test(obj.value) ){
		alert('숫자만 입력이 가능합니다.');
		obj.value = '';
		return;
	}
}



// 공백체크
function checkSpace( str ){
	if(str.search(/\s/) != -1){
		return true;
	}else {
		return false;
	}
}

// 쿠키를 셋팅한다.
function setCookie(name, value, expiredays){
	var todayDate = new Date();
	todayDate.setDate( todayDate.getDate() + expiredays );
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}	

// 쿠키정보를 가져온다.
function getCookie( name ){
	var nameOfCookie = name + "=";
	var x = 0;
	while ( x <= document.cookie.length ){
		var y = (x+nameOfCookie.length);
		if( document.cookie.substring( x, y ) == nameOfCookie ){
			if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 ) endOfCookie = document.cookie.length;
			return unescape( document.cookie.substring( y, endOfCookie ) );
		}
		x = document.cookie.indexOf( " ", x ) + 1;
		if ( x == 0 )	break;
	}
	return "";
}

// 라디오 버튼의 값을 가져온다.
function get_radio_val(obj){
	if(obj.length){
		for(i=0; i < obj.length; i++){
			if(obj[i].checked == true){
				return obj[i].value;
			}
		}
	}else{
		return obj.value;
	}
}
