/*
자동변경 (한/영 전환가)     style="ime-mode:auto"     
영문모드 (한글사용불가능)   style="ime-mode:disabled"
영문모드 (한/영 전환가)     style="ime-mode:inactive" 
한글모드 (한/영 전환가)     style="ime-mode:active"  
한글모드 (한/영 전환가)     style="ime-mode:deactivated" 
*/
//####################################################################################
// 일반체크
// parameter: Form 
//####################################################################################

function check_value(field,msg) 
{
    if ( !field.value ) {
        alert(msg);
        field.focus();
        return true;
    }
}

//####################################################################################
// String 알파벳과 숫자만~ Check
// parameter: Form 
//####################################################################################
function check_alpha_number(field,msg)
{

   for (var i=0; i < field.value.length; i++)
   {
      if ( ( (field.value.charAt(i) < "0") || (field.value.charAt(i) > "9") ) &&
           ( ( (field.value.charAt(i) < "A") || (field.value.charAt(i) > "Z") ) &&
             ( (field.value.charAt(i) < "a") || (field.value.charAt(i) > "z") ) ) )
	  {
         alert(msg);
		 
		 field.select();
		 return true;
	   }
   }

   return false;
}

//####################################################################################
// Select Box, Radio Button Check 선택여부 검사 
// parameter : field, msg
//####################################################################################
/* 왜안될까???
function check_checkbox(field, msg) { //document.form.check[0]
	if (field.checked == false ){
		alert(msg);
		field.focus();
		return false;
	}
}
*/
function check_selected(field, msg) {
	if(field.selectedIndex == 0) {
		alert(msg);
		field.focus() ;
		return true;
	} else {
		return false;
	}
}
function check_radio(field, msg) {
	if ( field == null ) {
		alert(msg);
		return true;
	}
	if ( field.length == null ) {
		if ( field.checked == true ) {
			return false;
		} else {
			alert(msg);
			return true;
		}
	}
	for(i = 0; i < field.length; i++) {
		if(field[i].checked == true) {
			return false;
		}
	}
	alert(msg);
	return true;
}

//####################################################################################
// 글자수확인 영문/숫자
//####################################################################################

function CheckLen(frm,cnt1,cnt2) {
	var frm
	if(frm.value.length < cnt1 || frm.value.length > cnt2) {
		return false;
	}
	for(var i = 0; i < frm.value.length; i++) {
		var chr = frm.value.substr(i,1);
		if((chr < '0' || chr > '9') && (chr < 'a' || chr > 'z')) {
			return false;
		}
	}
	return true;
}
//####################################################################################
// 이메일체크
//####################################################################################
function select_email(frm) {
	//alert(frm.emaillist.value);
	if( frm.emaillist.value != "" ) {
		frm.emailurl.value = frm.emaillist.value;
		frm.emailurl.readonly = true;
	} else	{
		frm.emailurl.value = "";
		frm.emailurl.readonly = false;
		frm.emailurl.focus();
	}
}
/*
function check_email(frm) {
	var maillist = frm.emaillist.options[frm.emaillist.selectedIndex].value;
	var mailurl;
	if(maillist=='') {
		mailurl = frm.emailurl.value;
	} else {
		mailurl = emaillist;
	}

	var chk_email = frm.emailid.value + '@' + frm.emailurl.value;
	if (!(check_email_str(chk_email)))	{
		alert('잘못된 이메일 주소입니다');
		frm.emailid.focus();
		return false;
	}
}

function check_email_str(emailStr)	{
	var emailStr = emailStr;
	
	// Email 주소 체크
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
			
	if (matchArray==null) {
		return false
	}	
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null) {
		return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null)	{
		for (var i=1;i<=4;i++)	{
			if (IPArray[i]>255)	{
					return false
			}
		}
		return true
	}
	var domainArray=domain.match(domainPat)
		
	if (domainArray==null) {
		return false
	}
	var atomPat=new RegExp(atom,'g')
	var domArr=domain.match(atomPat)
	var len=domArr.length

	if (domArr[domArr.length-1].length<2 ||	domArr[domArr.length-1].length>3) {
		return false
	}
	if (len<2) {
		return false
	}
	return true;
}
*/
//####################################################################################
// 주민번호체크
//####################################################################################

function check_juminNO(frm) {

	var year = frm.juminNO1.value.substring(0,2); // 주민등록번호 앞 부분에서 생년월일을 알아냄
	var month = frm.juminNO1.value.substring(2,4);
	var day = frm.juminNO1.value.substring(4,6);
	var sex = frm.juminNO2.value.substring(0,1); // 주민등록번호 뒷 부분에서 남녀 성별 정보 찾아냄

	// 주민등록번호 앞 부분 체크하기
	if(sex == 3 || sex == 4) {
		if ((month<1 || month>12 ||day<1) ) {
			alert ("11 잘못된 형식의 주민등록번호입니다");
			frm.juminNO1.focus();
			return false;
		}
	} else {
		if ((year <25 || month<1 || month>12 ||day<1) ) {
			alert ("12 잘못된 형식의 주민등록번호입니다");
			frm.juminNO1.focus();
			return false;
		}
	}
	// 주빈등록번호 뒷 부분 체크하기
	if ( (sex != 1 && sex != 2 && sex != 3 && sex != 4) || (frm.juminNO2.value.length != 7 ) ) {
		alert("21 잘못된 형식의 주민등록번호입니다");
		frm.juminNO2.focus();
		return false;
	}
	var val = 0;
	for (var i = 0; i <=5 ; i++){ 
		val = val + ((i%8+2) * parseInt(frm.juminNO1.value.substring(i,i+1)))
	}
	for (var i = 6; i <=11 ; i++){ 
		val = val + ((i%8+2) * parseInt(frm.juminNO2.value.substring(i-6,i-5)))
	}
	val = 11 - (val %11)
	val = val % 10
	if (val != frm.juminNO2.value.substring(6,7)) {
		alert ("22 잘못된 형식의 주민등록번호입니다");
		frm.juminNO2.focus();
		return false;
	}
	return true;
}

//####################################################################################
// 천단위구분
//####################################################################################

//계산에 사용함
function JSnumberformat(Number){ //숫자와 콤마를 찍을자리수를 매개변수로 받음 
	var str=new Array(); //콤마스트링을 조합할 배열 
	Number=String(Number); //숫자를 스트링으로 변환 
	for(var i=1;i<=Number.length;i++){ //숫자의 길이만큼 반복 
		if(i%3) str[Number.length-i]=Number.charAt(Number.length-i); //자리수가 아니면 숫자만삽입 
		else  str[Number.length-i]=','+Number.charAt(Number.length-i); //자리수 이면 콤마까지 삽입 
	} 
	return str.join('').replace(/^,/,''); //스트링을 조합하여 반환 
} 

//input box 적용
function AddComma(obj) {
    if (event.keyCode == 37 || event.keyCode == 39 ) { //방향키 인식하게..
        alert("aa");
    }
    else {
        var str = obj.value;
        var nRtn="";
        var Dotcount = 0;
        var strTmp = new Array();
        for ( var i=0; i < str.length; i++ ) {
            strTmp[i] = str.charCodeAt(i);
            if ( (str.charCodeAt(i) > 47 && str.charCodeAt(i) < 58) || str.charCodeAt(i) == 45 || str.charCodeAt(i) == 46 ) {
                if ( str.charCodeAt(i) == 46 ) {  // 도트가 입력되었을 경우
                    Dotcount++;
                    if ( Dotcount > 1 ){ //도트가 두번이상 표기 되었는지확인하다.
                        break;
                    }

                    if(i == 0 ) {    //도트가 맨앞에 오지 않았는지 확인한다.
                        break;
                    }

                    if(strTmp[0] == 45 && strTmp[1] == 46) {    //마이너스 다음에 도트가 왔을 경우
                        break;
                    }
                }
                nRtn = nRtn+str.charAt(i);
            }
        }
        obj.value = nRtn;

        var tmp = str.split(".");

        if( tmp.length > 1 ){   //소수점 입력시 분리
            var strInt = str.split(".")[0];
            var strFloat = "." + str.split(".")[1];
        }else{
            var strInt = str;
            var strFloat = "";
        }

        //콤마 제거
        re = /,/g;
        strInt = strInt.replace(re, "");

        fl=""
        if(isNaN(strInt)) {
        //  alert("문자는 사용할 수 없습니다.");
            return 0
        }

        if(strInt==0) return strInt

        if(strInt<0){
            strInt=strInt*(-1)
            fl="-"
        }else{
            strInt=strInt*1 //처음 입력값이 0부터 시작할때 이것을 제거한다.
        }

        strInt = new String(strInt)
        temp=""
        co=3
        strInt_len=strInt.length
        while (strInt_len>0){
            strInt_len=strInt_len-co
            if(strInt_len<0){co=strInt_len+co;strInt_len=0}
            temp=","+strInt.substr(strInt_len,co)+temp
        }
        obj.value =  fl+temp.substr(1)+strFloat;
    }
}





/************************************************************
*  기능 :  문자열 Valid 검사처리
*  수정일 : 2007-07-21
*  parameter : string, space
*************************************************************/
function CheckValid(String, space) {

   var retvalue = false;

   for (var i=0; i<String.length; i++)
   {		//String이 0("" 이나 null)이면 무조건 false
      if (space == true)
      {
         if (String.charAt(i) == ' ')
         {			//String이 0이 아닐때 space가 있어야만 true(valid)
            retvalue = true;
            break;
         }
      } else {
         if (String.charAt(i) != ' ')
         {			//string이 0이 아닐때 space가 아닌 글자가 있어야만 true(valid)
            retvalue = true;
            break;
         }
      }
   }

   return retvalue;
}


/************************************************************
*  적용기능 :  Empty 및 공백 처리
*  수정일자 :  2007-07-21
*  parameter:  field, msg 
*************************************************************/

function isEmpty(field, msg) {

	// msg가 ""이면 alert와 focusing을 하지 않는다
	if(msg == "") {
		if(!CheckValid(field.value, false)) 	{
			return true;
		} else {
			return false;
		}
	} else {
		if(!CheckValid(field.value, false)) {
			alert(msg);
			field.focus() ;
			return true;
		} else {
			return false;
		}
	}
}
/******************************
*  기능 :  onlyNumber           *
*  수정일 : 2007-07-24            *
*  parameter : *
*******************************/
function onlyNumber(){
	if((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105)) {
		event.returnValue = true;
	} else {
		switch(event.keyCode) {
			case 8:		/* Backspace */
			case 9:		/* Tab */
			case 13:	/* Enter */
			case 35:	/* End */
			case 36:	/* Home */
			case 37:	/* Left Arrow */
			case 38:	/* Up Arrow */
			case 39:	/* Right Arrow */
			case 40:	/* Down Arrow */
			case 45:
			case 46:	/* Del */
			case 109:
			case 144:	/* Num lock */
			case 189:	/* - */
				event.returnValue = true;
				break;
			default:
				event.returnValue = false;
				break;
		}
	}
}
/*
  기능 :  NumberCheck           
  수정일 : 2002-03-29(denial)              
  parameter : field, msg  
*/
function isNotNumber(field, msg)
{
	var val = field.value;

	if(isNaN(val) ) {
		if(msg.length > 0) {
			alert(msg);
			field.focus();
			field.select();
		}
		return true;
	} else {
		return false;
	}
}

