/*
 * 공통적으로 사용할 자바함수
 *
 * Author : Bum-Mo. Chung
 * Since  : 2001.10.29
 * Update : 2002. 03. 08
 * Version : 0.1 (build 1004)
 */

// popup 창 간단히 띄우기
// m_name : URL, m_title : 제목, w : width, h : height
// m : menubar, s : scrollbars  -->> 0 = no, 1 = yes
function mini_popup(m_name, m_title,width, height, menubar, scrollbars, left, top) {
	if (m_name == ""){
		alert("찾는 대상이 없습니다.");
	}else{
		if (left == "" && top == ""){
			add_parameter = "width="+width+",height="+height+",menubar="+menubar+",scrollbars="+scrollbars+",left="+(screen.availWidth-width)/2+",top="+(screen.availHeight-height)/2;
		}else{
			add_parameter = "width="+width+",height="+height+",menubar="+menubar+",scrollbars="+scrollbars+",left="+left+",top="+top;
		}
		var wp
		wp = window.open(m_name, m_title, add_parameter);
		wp.focus();
	}
}

// 변환 1 = yes  ,  0 = no
function convertYesNo(a){
	if (a == "1"){
		a = "yes";
	}else {
		a = "no";
	}
	return a;
}

// checked 값을 리턴해주는 함수
function GetRadioVaule(bgLength, bgObject) 
{ 
	alert(bgLength);
	if(bgLength > 1 ){
		for (var x=0; x < bgLength; x++){
			if (bgObject[x].checked) return bgObject[x].value
		}
	}else{
		if (bgObject.checked) return bgObject.value
	}
  return false;
}

// checkbox checked 여부
function GetCBChecked(obj) 
{ 
	if (obj.checked) return true;
	else return false;
}

// Select Box 에서 선택된 값을 리턴해주는 함수
function GetSelectedValue(bgObject){
	var sv = "";
	if (bgObject.selectedIndex >= 0)	{
		sv = bgObject.options[bgObject.selectedIndex].value;
	}
	return sv; 
}

// 버튼의 사용여부를 콘트롤하는 함수
function ButtonControl(bgObject, bgBoolean) 
{ 
	var obj = eval(bgObject);
	for (var x=0; x < obj.length; x++) {
		obj[x].disabled = bgBoolean;
	}
}

// 빈칸 경고창
// 약간변경 블랭크이면 true 리턴
function BlankCheck(bgObject, bgContent) {
	if (NullCheck(bgObject.value) == ''){
		alert(bgContent + "(을)를 입력하여 주십시요.");
		bgObject.focus();
		bgObject.select();
		return true;
	}
	return false;
}

// 라디오 버튼 빈칸 경고창
// 약간변경 블랭크이면 true 리턴
function RadioBlankCheck(bgObject, bgContent) {
	alert(bgObject);
	rNull = GetRadioVaule(bgObject.length, bgObject);
	if (rNull == false){
		alert(bgContent + "(을)를 선택해주세요.");
		return true;
	}
	return false;
}

// Null Check
function NullCheck(bgValue) {
	if (trim(bgValue) == "") bgValue = trim(bgValue);
	return bgValue;
}

// trim 메소드 
function trim(content) { 
  var count = content.length; 
  var len = count;                 
  var st = 0; 

  var array = new Array(len); 

  for(var i = 0; i < len; i ++ ){ 
     array[i] = content.charAt(i);                         
  } 
  while ((st < len) && (array[st] <= ' ')) { 
     st++; 
  } 
  while ((st < len) && (array[len - 1] <= ' ')) { 
     len--; 
  }                 
   return ((st > 0) || (len < count)) ? 
                   content.substring(st, len) : content ;                    
}

// Valid 체크
function validate_number(bgObject) { 
	var valid = "0123456789" // 유효한 값 
	var ok = "yes"; 
	var temp; 

	for (var i=0; i<bgObject.value.length; i++) { 
		temp = "" + bgObject.value.substring(i, i+1); 
		if (valid.indexOf(temp) == "-1") ok = "no"; 
	} 
	if (ok == "no") { 
		alert("숫자만 입력 가능합니다"); 
		bgObject.value='';
		bgObject.focus();
		bgObject.select(); 
		return false;
   }
   return true;
}

function maxCheck(bgObject, maxValue) {
	if (bgObject.value.length < maxValue)	{
		alert(maxValue + "자를 입력하셔야합니다. ");
		bgObject.focus();
		bgObject.select(); 
		return false;
	}
	return true;
}

function validate_email(bgObject, email_value) { 

	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check=/@[\w\-]+\./;
	var checkend=/\.[a-zA-Z]{2,3}$/;
	
	if(email_value < 1){
		alert("email주소를 넣어");
		bgObject.focus();
		return false;
	}
	if (email_value != '') {
		if(((email_value.search(exclude) != -1)||(email_value.search(check)) == -1)||(email_value.search(checkend) == -1)){
				alert(email_value + "는 이메일 형식이 아닙니다");
				bgObject.focus();
				bgObject.select();
				return false;
		}	
	}
	
	return true;
}

/*
checkValue(target, cmt, lmin, lmax) - 아이디/패스워드 체크할때 사용 (영문+숫자 조합체크)
- target : 체크할 폼 이름
- cmt : alert 에 보여줄 이름 (ex:id/pass)
- lmin : 비교할 최소값
- lmax : 비교할 최대값
*/
function checkValue(target, cmt, lmin, lmax){
    var Alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var Digit = '1234567890';
	var astr = Alpha+Digit;
	var i;
	var tValue = target.value;

	if(tValue.length < lmin || tValue.length > lmax){
		if(lmin==lmax) alert(cmt+'는'+lmin+'자이어야 합니다.');
		else alert(cmt+'는'+lmin+'~'+lmax+'자 이내로 입력하셔야 합니다.');
		target.focus();
		return false;
	}

	if(astr.length > 1){
		for (i=0; i<tValue.length; i++){
			if(astr.indexOf(tValue.substring(i,i+1))<0){
				alert(cmt+'에 허용할 수 없는 문자가 입력되었습니다.');
				target.focus();
				return false;
			}
		}
	}
	var chek=0;
	if(Alpha.length > 1){
		for(j=0; j<tValue.length; j++){
			if(Alpha.indexOf(tValue.substring(j,j+1))<0){
				chek=chek+1;
				break;
			}
		}
	}
	if(Digit.length > 1){
		for(k=0; k<tValue.length; k++){
			if(Digit.indexOf(tValue.substring(k,k+1))<0){
				chek=chek+1;
				break;
			}
		}
	}

	if(chek < 2){
		alert(cmt+'에 반드시 영문과 숫자가 조합되어야합니다!.');
		target.focus();
		return false;
	}
	
	return true;
}

function jm_verify(bgObject) {
	if (!validate(bgObject)){return false;}

	/*--필드 값을 숫자형으로 바꾸는 부분--*/
	var jm1=parseInt(bgObject.value.charAt(0));
	var jm2=parseInt(bgObject.value.charAt(1));
	var jm3=parseInt(bgObject.value.charAt(2));
	var jm4=parseInt(bgObject.value.charAt(3));
	var jm5=parseInt(bgObject.value.charAt(4));
	var jm6=parseInt(bgObject.value.charAt(5));

	var jm7=parseInt(bgObject.value.charAt(6));
	var jm8=parseInt(bgObject.value.charAt(7));
	var jm9=parseInt(bgObject.value.charAt(8));
	var jm10=parseInt(bgObject.value.charAt(9));
	var jm11=parseInt(bgObject.value.charAt(10));
	var jm12=parseInt(bgObject.value.charAt(11));
	var jm13=parseInt(bgObject.value.charAt(12));
	/*----연산------*/
	var lastnum=11-((jm1*2+jm2*3+jm3*4+jm4*5+jm5*6+jm6*7+jm7*8+jm8*9+jm9*2+jm10*3+jm11*4+jm12*5)%11);

	if (lastnum>9) lastnum=lastnum % 10;

	/*----결과 창 보이기----*/
	if (lastnum !=jm13) {
		alert(bgObject.value + "은 유효하지 않은 주민등록번호입니다.");	 
		bgObject.focus();
		bgObject.select();
		return false; 
	}
	return true;
	/*
	if ( (jm3*10+jm4)<1 || (jm3*10+jm4)>12 || (jm5*10+jm6)<1)  ) {
		alert(bgObject.value + "은 유효하지 않은 주민등록번호입니다.");	 
		bgObject.focus();
		return false; 
	}
	var tempyear;
	tempyear=1900+jm1*10+jm2;
	if ( ((jm5*10+jm6)>hasdays(jm3*10+jm4,tempyear) ) || ( jm7!=1 && jm7!=2 )) {
		alert(bgObject.value + "은 유효하지 않은 주민등록번호입니다.");	 
		bgObject.focus();
		return false; 
	}

	if (lastnum!=jm13)	{
		alert(bgObject.value + "은 유효하지 않은 주민등록번호입니다.");
		bgObject.focus();
	}
	*/
}
// 한글로된 화일을 올릴수 없게하는 함수
function validate_eng(bgObject) { 

	var checkStr=/[^A-Za-z0-9]/;
	
	if (bgObject.value != '') {
		if(bgObject.value.search(checkStr) != -1){ 
				alert("["+ bgObject.value + "] 는 영문이 아닙니다");
				bgObject.focus();
				bgObject.select();
				return false;
		}
	}
	return true;
}

// 한글로된 화일을 올릴수 없게하는 함수
function validate_engfile(bgObject, file_value) { 

	var checkStr=/[^A-Za-z0-9\.\/\\\:\_\-]/;
	
	if (file_value != '') {
		if(file_value.search(checkStr) != -1){
				alert("["+ file_value + "] 는 저장할수 있는 화일의 형식이 아닙니다");
				bgObject.focus();
				bgObject.select();
				return false;
		}
	}
	return true;
}

// 화일이름을 가져오는 함수
function GetFileName(bgObject) {

	var f = bgObject;
	var fv = f.value;
	var strSplit = fv;
	strSplit = fv.split("\\");
	var i
/*
// 여러개 나눠서 볼수 있는 For 문	
	for(i=1; i<strSplit.length; i++)
	{
		fv = strSplit[i];
	}
*/
	fv = strSplit[strSplit.length-1];
	return fv;
}

function popUpload(bgObject){
	if (FileBlankMultiCheck(bgObject, bgObject.length))	{
		theUniqueID = (new Date()).getTime() % 1000000000;
		var incDir = "/common/";
		var W = 500;
		var H = 120;
		var u = incDir + "progressbar.asp?TID=" + theUniqueID;
		var X;
		var Y;
		var n = theUniqueID;
		var cD = incDir + 'img/close_dwn.gif'
		var cU = incDir + 'img/close_up.gif'
		var cO = incDir + 'img/close_ovr.gif'
		var cL = incDir + 'img/clock.gif'
		var tH ='<font face=verdana size=2>업로드 진행창</font>'
		var tW ='Uploading...'
		var wB ='#000000'
		var wBs ='#FFFFFF'
		var wBG = '#C9E9FF'
		var wBGs='#8BD0FF'
		var wNS ='toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0'
		var fSO ='scrolling=Yes noresize'

		winBarLess_v1(u,n,W,H,X,Y,cD,cU,cO,cL,tH,tW,wB,wBs,wBG,wBGs,wNS,fSO)
		return true
	}else{
		return false
	}
}

// 파일 빈칸 체크 (멀티)
function FileBlankMultiCheck(bgObject) {
	var obj = eval(bgObject);
	if(obj.length > 1){
		for (var x=0; x < obj.length; x++){
			if (NullCheck(obj[x].value) != ""){
				return true;
			}
		}
	}else if (obj.length = 1){
		if (NullCheck(obj.value) != "") {
			return true;
		}
	}else{
		return false;
	}
	return false;
}

// 홀수짝수 체크 함수
function odd_even_check(num){
	if (num%2 == 0) {
		// 짝수
		return 2
	}else if (num%2 == 1) {
		// 홀수
		return 1
	}
	return 0
}

// 엔터눌렀을때..
function EnterKeyPress () { 
    var keycode; 

    // keycode를 감지하는 부분
    if (window.event) keycode = window.event.keyCode; 
    else if (e) keycode = e.which; 
    else return true; 

    // 엔터키를 눌렀을때
    if (keycode == 13) {
	return true;
    } 

   return false; 
}


/*======================================================================
Function    : getParam(파라미터배열)
Purpose     : 파라미터 객체생성을 해주는 함수
Input       : 파라미터배열
ex)	param.getValue("custid");
======================================================================*/
function getParam(q) {
		/*
			dvn, eql = 환경설정에 DVN_TOKEN, DVN_VALUE 와 같은 값으로 세팅해준다.
		*/
		var dvn = "§";	// 그림문자임
		var eql = "＝";	// 그림문자임
        if(q.length > 1) this.q = q.substring(1, q.length); 
        else this.q = null; 
        this.keyValuePairs = new Array(); 
        if(q) { 
                for(var i=0; i < this.q.split(dvn).length; i++) { 
                        this.keyValuePairs[i] = this.q.split(dvn)[i]; 
                } 
        } 
        this.getKeyValuePairs = function() { return this.keyValuePairs; } 
        this.getValue = function(s) { 
                for(var j=0; j < this.keyValuePairs.length; j++) { 
                        if(this.keyValuePairs[j].split(eql)[0] == s) 
                                return this.keyValuePairs[j].split(eql)[1]; 
                } 
                return -1; 
        } 
        this.getParameters = function() { 
                var a = new Array(this.getLength()); 
                for(var j=0; j < this.keyValuePairs.length; j++) { 
                        a[j] = this.keyValuePairs[j].split(eql)[0]; 
                } 
                return a; 
        } 
        this.getLength = function() { return this.keyValuePairs.length; }         
} 


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 search = name + "="
  if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
    offset = document.cookie.indexOf(search)
    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))
    }
  }
  return "";
}

function DeleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);
    document.cookie = name + "=''; path=/; expires=" + exp.toGMTString() + ";" 
}

function number_format(numstr) {
  var numstr = String(numstr);
  var re0 = /(\d+)(\d{3})($|\..*)/;
  if (re0.test(numstr))
    return numstr.replace(
      re0,
      function(str,p1,p2,p3) { return number_format(p1) + "," + p2 + p3; }
    );
  else
    return numstr;
}

/*------TextArea Resize ---------*/
/*
<img src="/images/squar_gray.gif" width="10" height="10" alt="Drag me!" ondragstart="return RCdragstart('document.sendform.tm', this)" ondrag="return RCdrag('document.sendform.tm', this, 100,450,50,200)">
*/
function RCdragstart(taObj, btObj) {
	var obj = eval(taObj);
	RCobjX = obj.style.pixelWidth;
	RCobjY = obj.style.pixelHeight;
	RCeventX = event.x;
	RCeventY = event.y;
}
function RCdrag(taObj, btObj, sx, bx, sy, by) {
	var error = 0;
	var obj = eval(taObj);
	btObj.style.position = "absolute";
/*
	if ((RCobjX - RCeventX + event.x) < sx){
		btObj.style.pixelLeft = event.x + 5;
		obj.style.pixelWidth = (RCobjX - RCeventX + event.x) + 1
		error = 1;
	}
	if ((RCobjX - RCeventX + event.x) > bx){
		btObj.style.pixelTop = event.y + 5;
		obj.style.pixelWidth = (RCobjX - RCeventX + event.x) - 1
		error = 1;
	}
	if ((RCobjY - RCeventY + event.y) < sy) {
		obj.style.pixelHeight = (RCobjY - RCeventY + event.y) +1;
		error = 1;
	}
	if ((RCobjY - RCeventY + event.y) > by){
		obj.style.pixelHeight = (RCobjY - RCeventY + event.y) -1;
		error = 1;
	}
	if (error > 0){return false;}
*/
	btObj.style.pixelLeft = event.x - 5;
	btObj.style.pixelTop = event.y - 5;
	obj.style.pixelWidth = RCobjX - RCeventX + event.x;
	obj.style.pixelHeight = RCobjY - RCeventY + event.y;
}
/*------/TextArea Resize ---------*/


 function clearField(field){
     if (field.value == field.defaultValue) {
         field.value = "";
     }else{
		field.select();
	 }
 }
 function checkField(field){
     if (!field.value) {
         field.value = field.defaultValue;
     }
 }

 function SelectedBlankCheck(bgObject, bgContent){
	sNull = GetSelectedValue(bgObject);
	if (sNull == ""){
		alert(bgContent + "(을)를 선택해주세요.");
		return true;
	}
	return false;
}

function textarea_row_plus(objstr){
	var obj = eval(objstr);
	obj.rows = obj.rows + 5
}
function textarea_row_minus(objstr){
	var obj = eval(objstr);
	with(obj){
		if (rows > 2){
			rows = rows - 5
		}
	}
}
function textarea_row_minimum(objstr){
	var obj = eval(objstr);
	obj.rows= 2;
}

function int1to2(d) {      // 2자리 숫자로 변경
    var str = new String();
    
    if (parseInt(d) < 10) {
        str = "0" + parseInt(d);
    } else {
        str = "" + parseInt(d);
    }
    return str;
}


function plusDate(date, n){
	var pDate
	var tmpDate = new Date();
	pDate = date.getTime() + (1000*60*60*24*n);
	tmpDate.setTime(pDate);
	return tmpDate.getYear() + "-" + int1to2(tmpDate.getMonth()+1) + "-" + int1to2(tmpDate.getDate());
}
function minusDate(date, n){
	var mDate
	var tmpDate = new Date();
	mDate = date.getTime() - (1000*60*60*24*n);
	tmpDate.setTime(mDate);
	return tmpDate.getYear() + "-" + (tmpDate.getMonth()+1) + "-" + tmpDate.getDate();
}

function project_lastdate(sDate, pWeek){
	//var sDate = "2003-11-28";	 // 프로젝트 시작일
	//var eDate = "";					 // 프로젝트 종료일
	//var pWeek = 1;					 // 프로젝트 주

	// 시작일 설정
	var arrayDate = new dateSplit(sDate);
	var iYear = arrayDate.Year;
	var iMonth = arrayDate.Month-1;
	var iDay = arrayDate.Day;

	var nDate = new Date(iYear, iMonth, iDay);
	var nWeek = nDate.getDay();
	var startDate = minusDate(nDate, nWeek-1);						// 프로젝트 주 시작일자 (월요일)

	// 종료일 설정
	var arrayDate2 = new dateSplit(startDate);	
	var iYear2 = arrayDate2.Year;
	var iMonth2 = arrayDate2.Month-1;
	var iDay2 = arrayDate2.Day;

	var nDate2 = new Date(iYear2, iMonth2, iDay2);
	var nWeek2 = nDate2.getDay();
	var lastDate = plusDate(nDate2,(7*(pWeek-1))+(6-nWeek2));	// 프로젝트 주 마지막 일자(토요일)

	return lastDate;
}

function dateSplit(date){

	var strSplit = date.split("-");
	var now = new Date();

	// 입력된 값이 올바르지 않다면 현재 시간을 리턴
    this.Year = strSplit.length >= 1 ? strSplit[0] : now.getYear();
    this.Month = strSplit.length >= 2 ? strSplit[1] : now.getMonth() - 1;
    this.Day = strSplit.length >= 3 ? strSplit[2] : now.getDate();
}

